|
|
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["/vendor/js/app"],{
|
|
|
|
|
|
/***/ "./node_modules/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.min.js":
|
|
|
/*!***********************************************************************************!*\
|
|
|
!*** ./node_modules/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.min.js ***!
|
|
|
\***********************************************************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
|
|
|
* Font Awesome Icon Picker
|
|
|
* https://farbelous.github.io/fontawesome-iconpicker/
|
|
|
*
|
|
|
* @author Javi Aguilar, itsjavi.com
|
|
|
* @license MIT License
|
|
|
* @see https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE
|
|
|
*/
|
|
|
|
|
|
|
|
|
!function(e){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (e),
|
|
|
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
|
|
|
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
|
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):undefined}(function(j){j.ui=j.ui||{};j.ui.version="1.12.1";!function(){var r,y=Math.max,x=Math.abs,s=/left|center|right/,i=/top|center|bottom/,c=/[\+\-]\d+(\.[\d]+)?%?/,f=/^\w+/,l=/%$/,o=j.fn.pos;function q(e,a,t){return[parseFloat(e[0])*(l.test(e[0])?a/100:1),parseFloat(e[1])*(l.test(e[1])?t/100:1)]}function C(e,a){return parseInt(j.css(e,a),10)||0}j.pos={scrollbarWidth:function(){if(void 0!==r)return r;var e,a,t=j("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),s=t.children()[0];return j("body").append(t),e=s.offsetWidth,t.css("overflow","scroll"),e===(a=s.offsetWidth)&&(a=t[0].clientWidth),t.remove(),r=e-a},getScrollInfo:function(e){var a=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),t=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),s="scroll"===a||"auto"===a&&e.width<e.element[0].scrollWidth;return{width:"scroll"===t||"auto"===t&&e.height<e.element[0].scrollHeight?j.pos.scrollbarWidth():0,height:s?j.pos.scrollbarWidth():0}},getWithinInfo:function(e){var a=j(e||window),t=j.isWindow(a[0]),s=!!a[0]&&9===a[0].nodeType;return{element:a,isWindow:t,isDocument:s,offset:!t&&!s?j(e).offset():{left:0,top:0},scrollLeft:a.scrollLeft(),scrollTop:a.scrollTop(),width:a.outerWidth(),height:a.outerHeight()}}},j.fn.pos=function(h){if(!h||!h.of)return o.apply(this,arguments);h=j.extend({},h);var m,p,d,T,u,e,a,t,g=j(h.of),b=j.pos.getWithinInfo(h.within),k=j.pos.getScrollInfo(b),w=(h.collision||"flip").split(" "),v={};return e=9===(t=(a=g)[0]).nodeType?{width:a.width(),height:a.height(),offset:{top:0,left:0}}:j.isWindow(t)?{width:a.width(),height:a.height(),offset:{top:a.scrollTop(),left:a.scrollLeft()}}:t.preventDefault?{width:0,height:0,offset:{top:t.pageY,left:t.pageX}}:{width:a.outerWidth(),height:a.outerHeight(),offset:a.offset()},g[0].preventDefault&&(h.at="left top"),p=e.width,d=e.height,T=e.offset,u=j.extend({},T),j.each(["my","at"],function(){var e,a,t=(h[this]||"").split(" ");1===t.length&&(t=s.test(t[0])?t.concat(["center"]):i.test(t[0])?["center"].concat(t):["center","center"]),t[0]=s.test(t[0])?t[0]:"center",t[1]=i.test(t[1])?t[1]:"center",e=c.exec(t[0]),a=c.exec(t[1]),v[this]=[e?e[0]:0,a?a[0]:0],h[this]=[f.exec(t[0])[0],f.exec(t[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===h.at[0]?u.left+=p:"center"===h.at[0]&&(u.left+=p/2),"bottom"===h.at[1]?u.top+=d:"center"===h.at[1]&&(u.top+=d/2),m=q(v.at,p,d),u.left+=m[0],u.top+=m[1],this.each(function(){var t,e,c=j(this),f=c.outerWidth(),l=c.outerHeight(),a=C(this,"marginLeft"),s=C(this,"marginTop"),r=f+a+C(this,"marginRight")+k.width,i=l+s+C(this,"marginBottom")+k.height,o=j.extend({},u),n=q(v.my,c.outerWidth(),c.outerHeight());"right"===h.my[0]?o.left-=f:"center"===h.my[0]&&(o.left-=f/2),"bottom"===h.my[1]?o.top-=l:"center"===h.my[1]&&(o.top-=l/2),o.left+=n[0],o.top+=n[1],t={marginLeft:a,marginTop:s},j.each(["left","top"],function(e,a){j.ui.pos[w[e]]&&j.ui.pos[w[e]][a](o,{targetWidth:p,targetHeight:d,elemWidth:f,elemHeight:l,collisionPosition:t,collisionWidth:r,collisionHeight:i,offset:[m[0]+n[0],m[1]+n[1]],my:h.my,at:h.at,within:b,elem:c})}),h.using&&(e=function(e){var a=T.left-o.left,t=a+p-f,s=T.top-o.top,r=s+d-l,i={target:{element:g,left:T.left,top:T.top,width:p,height:d},element:{element:c,left:o.left,top:o.top,width:f,height:l},horizontal:t<0?"left":0<a?"right":"center",vertical:r<0?"top":0<s?"bottom":"middle"};p<f&&x(a+t)<p&&(i.horizontal="center"),d<l&&x(s+r)<d&&(i.vertical="middle"),y(x(a),x(t))>y(x(s),x(r))?i.important="horizontal":i.important="vertical",h.using.call(this,e,i)}),c.offset(j.extend(o,{using:e}))})},j.ui.pos={_trigger:function(e,a,t,s){a.elem&&a.elem.trigger({type:t,position:e,positionData:a,triggered:s})},fit:{left:function(e,a){j.ui.pos._trigger(e,a,"posCollide","fitLeft");var t,s=a.within,r=s.isWindow?s.scrollLeft:s.offset.left,i=s.width,c=e.left-a.collisionPosition.marginLeft,f=r-c,l=c+a.collisionWidth-i-r;a.collisionWidth>i?0<f&&l<=0?(t=e.left+f+a.collisionWidth-i-r,e.left+=f-t):e.left=0<l&&f<=0?r:l<f?r+i-a.collisionWidth:r:0<f?e.left+=f:0<l?e.left-=l:e.left=y(e.left-c,e.left),j.ui.pos._trigger(e,a,"posCollided","fitLeft")},top:function(e,a){j.ui.pos._trigger(e,a,"posCollide","fitTop");var t,s=a.within,r=s.isWindow?s.scrollTop:s.offset.top,i=a.within.height,c=e.top-a.collisionPosition.marginTop,f=r-c,l=c+a.collisionHeight-i-r;a.collisionHeight>i?0<f&&l<=0?(t=e.top+f+a.collisionHeight-i-r,e.top+=f-t):e.top=0<l&&f<=0?r:l<f?r+i-a.collisionHeight:r:0<f?e.top+=f:0<l?e.top-=l:e.top=y(e.top-c,e.top),j.ui.pos._trigger(e,a,"posCollided","fitTop")}},flip:{left:function(e,a){j.ui.pos._trigger(e,a,"posCollide","flipLeft");var t,s,r=a.within,i=r.offset.left+r.scrollLeft,c=r.width,f=r.isWindow?r.scrollLeft:r.offset.left,l=e.left-a.collisionPosition.marginLeft,o=l-f,n=l+a.collisionWidth-c-f,h="left"===a.my[0]?-a.elemWidth:"right"===a.my[0]?a.elemWidth:0,m="left"===a.at[0]?a.targetWidth:"right"===a.at[0]?-a.targetWidth:0,p=-2*a.offset[0];o<0?((t=e.left+h+m+p+a.collisionWidth-c-i)<0||t<x(o))&&(e.left+=h+m+p):0<n&&(0<(s=e.left-a.collisionPosition.marginLeft+h+m+p-f)||x(s)<n)&&(e.left+=h+m+p),j.ui.pos._trigger(e,a,"posCollided","flipLeft")},top:function(e,a){j.ui.pos._trigger(e,a,"posCollide","flipTop");var t,s,r=a.within,i=r.offset.top+r.scrollTop,c=r.height,f=r.isWindow?r.scrollTop:r.offset.top,l=e.top-a.collisionPosition.marginTop,o=l-f,n=l+a.collisionHeight-c-f,h="top"===a.my[1]?-a.elemHeight:"bottom"===a.my[1]?a.elemHeight:0,m="top"===a.at[1]?a.targetHeight:"bottom"===a.at[1]?-a.targetHeight:0,p=-2*a.offset[1];o<0?((s=e.top+h+m+p+a.collisionHeight-c-i)<0||s<x(o))&&(e.top+=h+m+p):0<n&&(0<(t=e.top-a.collisionPosition.marginTop+h+m+p-f)||x(t)<n)&&(e.top+=h+m+p),j.ui.pos._trigger(e,a,"posCollided","flipTop")}},flipfit:{left:function(){j.ui.pos.flip.left.apply(this,arguments),j.ui.pos.fit.left.apply(this,arguments)},top:function(){j.ui.pos.flip.top.apply(this,arguments),j.ui.pos.fit.top.apply(this,arguments)}}},function(){var e,a,t,s,r,i=document.getElementsByTagName("body")[0],c=document.createElement("div");for(r in e=document.createElement(i?"div":"body"),t={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},i&&j.extend(t,{position:"absolute",left:"-1000px",top:"-1000px"}),t)e.style[r]=t[r];e.appendChild(c),(a=i||document.documentElement).insertBefore(e,a.firstChild),c.style.cssText="position: absolute; left: 10.7432222px;",s=j(c).offset().left,j.support.offsetFractions=10<s&&s<11,e.innerHTML="",a.removeChild(e)}()}();j.ui.position}),function(e){"use strict"; true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (e),
|
|
|
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
|
|
|
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
|
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):undefined}(function(l){"use strict";var t=function(e){return!1===e||""===e||null==e},s=function(e){return 0<l(e).length},r=function(e){return"string"==typeof e||e instanceof String},i=function(e,a){return-1!==l.inArray(e,a)},c=function(e,a){this._id=c._idCounter++,this.element=l(e).addClass("iconpicker-element"),this._trigger("iconpickerCreate",{iconpickerValue:this.iconpickerValue}),this.options=l.extend({},c.defaultOptions,this.element.data(),a),this.options.templates=l.extend({},c.defaultOptions.templates,this.options.templates),this.options.originalPlacement=this.options.placement,this.container=!!s(this.options.container)&&l(this.options.container),!1===this.container&&(this.element.is(".dropdown-toggle")?this.container=l("~ .dropdown-menu:first",this.element):this.container=this.element.is("input,textarea,button,.btn")?this.element.parent():this.element),this.container.addClass("iconpicker-container"),this.isDropdownMenu()&&(this.options.placement="inline"),this.input=!!this.element.is("input,textarea")&&this.element.addClass("iconpicker-input"),!1===this.input&&(this.input=this.container.find(this.options.input),this.input.is("input,textarea")||(this.input=!1)),this.component=this.isDropdownMenu()?this.container.parent().find(this.options.component):this.container.find(this.options.component),0===this.component.length?this.component=!1:this.component.find("i").addClass("iconpicker-component"),this._createPopover(),this._createIconpicker(),0===this.getAcceptButton().length&&(this.options.mustAccept=!1),this.isInputGroup()?this.container.parent().append(this.popover):this.container.append(this.popover),this._bindElementEvents(),this._bindWindowEvents(),this.update(this.options.selected),this.isInline()&&this.show(),this._trigger("iconpickerCreated",{iconpickerValue:this.iconpickerValue})};c._idCounter=0,c.defaultOptions={title:!1,selected:!1,defaultValue:!1,placement:"bottom",collision:"none",animation:!0,hideOnSelect:!1,showFooter:!1,searchInFooter:!1,mustAccept:!1,selectedCustomClass:"bg-primary",icons:[],fullClassFormatter:function(e){return e},input:"input,.iconpicker-input",inputSearch:!1,container:!1,component:".input-group-addon,.iconpicker-component",templates:{popover:'<div class="iconpicker-popover popover"><div class="arrow"></div><div class="popover-title"></div><div class="popover-content"></div></div>',footer:'<div class="popover-footer"></div>',buttons:'<button class="iconpicker-btn iconpicker-btn-cancel btn btn-default btn-sm">Cancel</button> <button class="iconpicker-btn iconpicker-btn-accept btn btn-primary btn-sm">Accept</button>',search:'<input type="search" class="form-control iconpicker-search" placeholder="Type to filter" />',iconpicker:'<div class="iconpicker"><div class="iconpicker-items"></div></div>',iconpickerItem:'<a role="button" href="javascript:;" class="iconpicker-item"><i></i></a>'}},c.batch=function(e,a){var t=Array.prototype.slice.call(arguments,2);return l(e).each(function(){var e=l(this).data("iconpicker");e&&e[a].apply(e,t)})},c.prototype={constructor:c,options:{},_id:0,_trigger:function(e,a){a=a||{},this.element.trigger(l.extend({type:e,iconpickerInstance:this},a))},_createPopover:function(){this.popover=l(this.options.templates.popover);var e=this.popover.find(".popover-title");if(this.options.title&&e.append(l('<div class="popover-title-text">'+this.options.title+"</div>")),this.hasSeparatedSearchInput()&&!this.options.searchInFooter?e.append(this.options.templates.search):this.options.title||e.remove(),this.options.showFooter&&!t(this.options.templates.footer)){var a=l(this.options.templates.footer);this.hasSeparatedSearchInput()&&this.options.searchInFooter&&a.append(l(this.options.templates.search)),t(this.options.templates.buttons)||a.append(l(this.options.templates.buttons)),this.popover.append(a)}return!0===this.options.animation&&this.popover.addClass("fade"),this.popover},_createIconpicker:function(){var t=this;this.iconpicker=l(this.options.templates.iconpicker);var e=function(e){var a=l(this);a.is("i")&&(a=a.parent()),t._trigger("iconpickerSelect",{iconpickerItem:a,iconpickerValue:t.iconpickerValue}),!1===t.options.mustAccept?(t.update(a.data("iconpickerValue")),t._trigger("iconpickerSelected",{iconpickerItem:this,iconpickerValue:t.iconpickerValue})):t.update(a.data("iconpickerValue"),!0),t.options.hideOnSelect&&!1===t.options.mustAccept&&t.hide()},a=l(this.options.templates.iconpickerItem),s=[];for(var r in this.options.icons)if("string"==typeof this.options.icons[r].title){var i=a.clone();if(i.find("i").addClass(this.options.fullClassFormatter(this.options.icons[r].title)),i.data("iconpickerValue",this.options.icons[r].title).on("click.iconpicker",e),i.attr("title","."+this.options.icons[r].title),0<this.options.icons[r].searchTerms.length){for(var c="",f=0;f<this.options.icons[r].searchTerms.length;f++)c=c+this.options.icons[r].searchTerms[f]+" ";i.attr("data-search-terms",c)}s.push(i)}return this.iconpicker.find(".iconpicker-items").append(s),this.popover.find(".popover-content").append(this.iconpicker),this.iconpicker},_isEventInsideIconpicker:function(e){var a=l(e.target);return!((!a.hasClass("iconpicker-element")||a.hasClass("iconpicker-element")&&!a.is(this.element))&&0===a.parents(".iconpicker-popover").length)},_bindElementEvents:function(){var a=this;this.getSearchInput().on("keyup.iconpicker",function(){a.filter(l(this).val().toLowerCase())}),this.getAcceptButton().on("click.iconpicker",function(){var e=a.iconpicker.find(".iconpicker-selected").get(0);a.update(a.iconpickerValue),a._trigger("iconpickerSelected",{iconpickerItem:e,iconpickerValue:a.iconpickerValue}),a.isInline()||a.hide()}),this.getCancelButton().on("click.iconpicker",function(){a.isInline()||a.hide()}),this.element.on("focus.iconpicker",function(e){a.show(),e.stopPropagation()}),this.hasComponent()&&this.component.on("click.iconpicker",function(){a.toggle()}),this.hasInput()&&this.input.on("keyup.iconpicker",function(e){i(e.keyCode,[38,40,37,39,16,17,18,9,8,91,93,20,46,186,190,46,78,188,44,86])?a._updateFormGroupStatus(!1!==a.getValid(this.value)):a.update(),!0===a.options.inputSearch&&a.filter(l(this).val().toLowerCase())})},_bindWindowEvents:function(){var e=l(window.document),a=this,t=".iconpicker.inst"+this._id;l(window).on("resize.iconpicker"+t+" orientationchange.iconpicker"+t,function(e){a.popover.hasClass("in")&&a.updatePlacement()}),a.isInline()||e.on("mouseup"+t,function(e){a._isEventInsideIconpicker(e)||a.isInline()||a.hide()})},_unbindElementEvents:function(){this.popover.off(".iconpicker"),this.element.off(".iconpicker"),this.hasInput()&&this.input.off(".iconpicker"),this.hasComponent()&&this.component.off(".iconpicker"),this.hasContainer()&&this.container.off(".iconpicker")},_unbindWindowEvents:function(){l(window).off(".iconpicker.inst"+this._id),l(window.document).off(".iconpicker.inst"+this._id)},updatePlacement:function(e,a){e=e||this.options.placement,this.options.placement=e,a=!0===(a=a||this.options.collision)?"flip":a;var t={at:"right bottom",my:"right top",of:this.hasInput()&&!this.isInputGroup()?this.input:this.container,collision:!0===a?"flip":a,within:window};if(this.popover.removeClass("inline topLeftCorner topLeft top topRight topRightCorner rightTop right rightBottom bottomRight bottomRightCorner bottom bottomLeft bottomLeftCorner leftBottom left leftTop"),"object"==typeof e)return this.popover.pos(l.extend({},t,e));switch(e){case"inline":t=!1;break;case"topLeftCorner":t.my="right bottom",t.at="left top";break;case"topLeft":t.my="left bottom",t.at="left top";break;case"top":t.my="center bottom",t.at="center top";break;case"topRight":t.my="right bottom",t.at="right top";break;case"topRightCorner":t.my="left bottom",t.at="right top";break;case"rightTop":t.my="left bottom",t.at="right center";break;case"right":t.my="left center",t.at="right center";break;case"rightBottom":t.my="left top",t.at="right center";break;case"bottomRightCorner":t.my="left top",t.at="right bottom";break;case"bottomRight":t.my="right top",t.at="right bottom";break;case"bottom":t.my="center top",t.at="center bottom";break;case"bottomLeft":t.my="left top",t.at="left bottom";break;case"bottomLeftCorner":t.my="right top",t.at="left bottom";break;case"leftBottom":t.my="right top",t.at="left center";break;case"left":t.my="right center",t.at="left center";break;case"leftTop":t.my="right bottom",t.at="left center";break;default:return!1}return this.popover.css({display:"inline"===this.options.placement?"":"block"}),!1!==t?this.popover.pos(t).css("maxWidth",l(window).width()-this.container.offset().left-5):this.popover.css({top:"auto",right:"auto",bottom:"auto",left:"auto",maxWidth:"none"}),this.popover.addClass(this.options.placement),!0},_updateComponents:function(){if(this.iconpicker.find(".iconpicker-item.iconpicker-selected").removeClass("iconpicker-selected "+this.options.selectedCustomClass),this.iconpickerValue&&this.iconpicker.find("."+this.options.fullClassFormatter(this.iconpickerValue).replace(/ /g,".")).parent().addClass("iconpicker-selected "+this.options.selectedCustomClass),this.hasComponent()){var e=this.component.find("i");0<e.length?e.attr("class",this.options.fullClassFormatter(this.iconpickerValue)):this.component.html(this.getHtml())}},_updateFormGroupStatus:function(e){return!!this.hasInput()&&(!1!==e?this.input.parents(".form-group:first").removeClass("has-error"):this.input.parents(".form-group:first").addClass("has-error"),!0)},getValid:function(e){r(e)||(e="");var a=""===e;e=l.trim(e);for(var t=!1,s=0;s<this.options.icons.length;s++)if(this.options.icons[s].title===e){t=!0;break}return!(!t&&!a)&&e},setValue:function(e){var a=this.getValid(e);return!1!==a?(this.iconpickerValue=a,this._trigger("iconpickerSetValue",{iconpickerValue:a}),this.iconpickerValue):(this._trigger("iconpickerInvalid",{iconpickerValue:e}),!1)},getHtml:function(){return'<i class="'+this.options.fullClassFormatter(this.iconpickerValue)+'"></i>'},setSourceValue:function(e){return!1!==(e=this.setValue(e))&&""!==e&&(this.hasInput()?this.input.val(this.iconpickerValue):this.element.data("iconpickerValue",this.iconpickerValue),this._trigger("iconpickerSetSourceValue",{iconpickerValue:e})),e},getSourceValue:function(e){var a=e=e||this.options.defaultValue;return void 0!==(a=this.hasInput()?this.input.val():this.element.data("iconpickerValue"))&&""!==a&&null!==a&&!1!==a||(a=e),a},hasInput:function(){return!1!==this.input},isInputSearch:function(){return this.hasInput()&&!0===this.options.inputSearch},isInputGroup:function(){return this.container.is(".input-group")},isDropdownMenu:function(){return this.container.is(".dropdown-menu")},hasSeparatedSearchInput:function(){return!1!==this.options.templates.search&&!this.isInputSearch()},hasComponent:function(){return!1!==this.component},hasContainer:function(){return!1!==this.container},getAcceptButton:function(){return this.popover.find(".iconpicker-btn-accept")},getCancelButton:function(){return this.popover.find(".iconpicker-btn-cancel")},getSearchInput:function(){return this.popover.find(".iconpicker-search")},filter:function(s){if(t(s))return this.iconpicker.find(".iconpicker-item").show(),l(!1);var r=[];return this.iconpicker.find(".iconpicker-item").each(function(){var e=l(this),a=e.attr("title").toLowerCase();a=a+" "+(e.attr("data-search-terms")?e.attr("data-search-terms").toLowerCase():"");var t=!1;try{t=new RegExp("(^|\\W)"+s,"g")}catch(e){t=!1}!1!==t&&a.match(t)?(r.push(e),e.show()):e.hide()}),r},show:function(){if(this.popover.hasClass("in"))return!1;l.iconpicker.batch(l(".iconpicker-popover.in:not(.inline)").not(this.popover),"hide"),this._trigger("iconpickerShow",{iconpickerValue:this.iconpickerValue}),this.updatePlacement(),this.popover.addClass("in"),setTimeout(l.proxy(function(){this.popover.css("display",this.isInline()?"":"block"),this._trigger("iconpickerShown",{iconpickerValue:this.iconpickerValue})},this),this.options.animation?300:1)},hide:function(){if(!this.popover.hasClass("in"))return!1;this._trigger("iconpickerHide",{iconpickerValue:this.iconpickerValue}),this.popover.removeClass("in"),setTimeout(l.proxy(function(){this.popover.css("display","none"),this.getSearchInput().val(""),this.filter(""),this._trigger("iconpickerHidden",{iconpickerValue:this.iconpickerValue})},this),this.options.animation?300:1)},toggle:function(){this.popover.is(":visible")?this.hide():this.show(!0)},update:function(e,a){return e=e||this.getSourceValue(this.iconpickerValue),this._trigger("iconpickerUpdate",{iconpickerValue:this.iconpickerValue}),!0===a?e=this.setValue(e):(e=this.setSourceValue(e),this._updateFormGroupStatus(!1!==e)),!1!==e&&this._updateComponents(),this._trigger("iconpickerUpdated",{iconpickerValue:this.iconpickerValue}),e},destroy:function(){this._trigger("iconpickerDestroy",{iconpickerValue:this.iconpickerValue}),this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"),this._unbindElementEvents(),this._unbindWindowEvents(),l(this.popover).remove(),this._trigger("iconpickerDestroyed",{iconpickerValue:this.iconpickerValue})},disable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!0),!0)},enable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!1),!0)},isDisabled:function(){return!!this.hasInput()&&!0===this.input.prop("disabled")},isInline:function(){return"inline"===this.options.placement||this.popover.hasClass("inline")}},l.iconpicker=c,l.fn.iconpicker=function(a){return this.each(function(){var e=l(this);e.data("iconpicker")||e.data("iconpicker",new c(this,"object"==typeof a?a:{}))})},c.defaultOptions=l.extend(c.defaultOptions,{icons:[{title:"fab fa-500px",searchTerms:[]},{title:"fab fa-accessible-icon",searchTerms:["accessibility","handicap","person","wheelchair","wheelchair-alt"]},{title:"fab fa-accusoft",searchTerms:[]},{title:"fab fa-acquisitions-incorporated",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fas fa-ad",searchTerms:[]},{title:"fas fa-address-book",searchTerms:[]},{title:"far fa-address-book",searchTerms:[]},{title:"fas fa-address-card",searchTerms:[]},{title:"far fa-address-card",searchTerms:[]},{title:"fas fa-adjust",searchTerms:["contrast"]},{title:"fab fa-adn",searchTerms:[]},{title:"fab fa-adversal",searchTerms:[]},{title:"fab fa-affiliatetheme",searchTerms:[]},{title:"fas fa-air-freshener",searchTerms:[]},{title:"fab fa-algolia",searchTerms:[]},{title:"fas fa-align-center",searchTerms:["middle","text"]},{title:"fas fa-align-justify",searchTerms:["text"]},{title:"fas fa-align-left",searchTerms:["text"]},{title:"fas fa-align-right",searchTerms:["text"]},{title:"fab fa-alipay",searchTerms:[]},{title:"fas fa-allergies",searchTerms:["freckles","hand","intolerances","pox","spots"]},{title:"fab fa-amazon",searchTerms:[]},{title:"fab fa-amazon-pay",searchTerms:[]},{title:"fas fa-ambulance",searchTerms:["help","machine","support","vehicle"]},{title:"fas fa-american-sign-language-interpreting",searchTerms:[]},{title:"fab fa-amilia",searchTerms:[]},{title:"fas fa-anchor",searchTerms:["link"]},{title:"fab fa-android",searchTerms:["robot"]},{title:"fab fa-angellist",searchTerms:[]},{title:"fas fa-angle-double-down",searchTerms:["arrows"]},{title:"fas fa-angle-double-left",searchTerms:["arrows","back","laquo","previous","quote"]},{title:"fas fa-angle-double-right",searchTerms:["arrows","forward","next","quote","raquo"]},{title:"fas fa-angle-double-up",searchTerms:["arrows"]},{title:"fas fa-angle-down",searchTerms:["arrow"]},{title:"fas fa-angle-left",searchTerms:["arrow","back","previous"]},{title:"fas fa-angle-right",searchTerms:["arrow","forward","next"]},{title:"fas fa-angle-up",searchTerms:["arrow"]},{title:"fas fa-angry",searchTerms:["disapprove","emoticon","face","mad","upset"]},{title:"far fa-angry",searchTerms:["disapprove","emoticon","face","mad","upset"]},{title:"fab fa-angrycreative",searchTerms:[]},{title:"fab fa-angular",searchTerms:[]},{title:"fas fa-ankh",searchTerms:["amulet","copper","coptic christianity","copts","crux ansata","egyptian","venus"]},{title:"fab fa-app-store",searchTerms:[]},{title:"fab fa-app-store-ios",searchTerms:[]},{title:"fab fa-apper",searchTerms:[]},{title:"fab fa-apple",searchTerms:["food","fruit","mac","osx"]},{title:"fas fa-apple-alt",searchTerms:["fall","food","fruit","fuji","macintosh","seasonal"]},{title:"fab fa-apple-pay",searchTerms:[]},{title:"fas fa-archive",searchTerms:["box","package","storage"]},{title:"fas fa-archway",searchTerms:["arc","monument","road","street"]},{title:"fas fa-arrow-alt-circle-down",searchTerms:["arrow-circle-o-down","download"]},{title:"far fa-arrow-alt-circle-down",searchTerms:["arrow-circle-o-down","download"]},{title:"fas fa-arrow-alt-circle-left",searchTerms:["arrow-circle-o-left","back","previous"]},{title:"far fa-arrow-alt-circle-left",searchTerms:["arrow-circle-o-left","back","previous"]},{title:"fas fa-arrow-alt-circle-right",searchTerms:["arrow-circle-o-right","forward","next"]},{title:"far fa-arrow-alt-circle-right",searchTerms:["arrow-circle-o-right","forward","next"]},{title:"fas fa-arrow-alt-circle-up",searchTerms:["arrow-circle-o-up"]},{title:"far fa-arrow-alt-circle-up",searchTerms:["arrow-circle-o-up"]},{title:"fas fa-arrow-circle-down",searchTerms:["download"]},{title:"fas fa-arrow-circle-left",searchTerms:["back","previous"]},{title:"fas fa-arrow-circle-right",searchTerms:["forward","next"]},{title:"fas fa-arrow-circle-up",searchTerms:[]},{title:"fas fa-arrow-down",searchTerms:["download"]},{title:"fas fa-arrow-left",searchTerms:["back","previous"]},{title:"fas fa-arrow-right",searchTerms:["forward","next"]},{title:"fas fa-arrow-up",searchTerms:[]},{title:"fas fa-arrows-alt",searchTerms:["arrow","arrows","bigger","enlarge","expand","fullscreen","move","position","reorder","resize"]},{title:"fas fa-arrows-alt-h",searchTerms:["arrows-h","resize"]},{title:"fas fa-arrows-alt-v",searchTerms:["arrows-v","resize"]},{title:"fas fa-assistive-listening-systems",searchTerms:[]},{title:"fas fa-asterisk",searchTerms:["details"]},{title:"fab fa-asymmetrik",searchTerms:[]},{title:"fas fa-at",searchTerms:["e-mail","email"]},{title:"fas fa-atlas",searchTerms:["book","directions","geography","map","wayfinding"]},{title:"fas fa-atom",searchTerms:["atheism","chemistry","science"]},{title:"fab fa-audible",searchTerms:[]},{title:"fas fa-audio-description",searchTerms:[]},{title:"fab fa-autoprefixer",searchTerms:[]},{title:"fab fa-avianex",searchTerms:[]},{title:"fab fa-aviato",searchTerms:[]},{title:"fas fa-award",searchTerms:["honor","praise","prize","recognition","ribbon"]},{title:"fab fa-aws",searchTerms:[]},{title:"fas fa-backspace",searchTerms:["command","delete","keyboard","undo"]},{title:"fas fa-backward",searchTerms:["previous","rewind"]},{title:"fas fa-balance-scale",searchTerms:["balanced","justice","legal","measure","weight"]},{title:"fas fa-ban",searchTerms:["abort","ban","block","cancel","delete","hide","prohibit","remove","stop","trash"]},{title:"fas fa-band-aid",searchTerms:["bandage","boo boo","ouch"]},{title:"fab fa-bandcamp",searchTerms:[]},{title:"fas fa-barcode",searchTerms:["scan"]},{title:"fas fa-bars",searchTerms:["checklist","drag","hamburger","list","menu","nav","navigation","ol","reorder","settings","todo","ul"]},{title:"fas fa-baseball-ball",searchTerms:[]},{title:"fas fa-basketball-ball",searchTerms:[]},{title:"fas fa-bath",searchTerms:[]},{title:"fas fa-battery-empty",searchTerms:["power","status"]},{title:"fas fa-battery-full",searchTerms:["power","status"]},{title:"fas fa-battery-half",searchTerms:["power","status"]},{title:"fas fa-battery-quarter",searchTerms:["power","status"]},{title:"fas fa-battery-three-quarters",searchTerms:["power","status"]},{title:"fas fa-bed",searchTerms:["lodging","sleep","travel"]},{title:"fas fa-beer",searchTerms:["alcohol","bar","beverage","drink","liquor","mug","stein"]},{title:"fab fa-behance",searchTerms:[]},{title:"fab fa-behance-square",searchTerms:[]},{title:"fas fa-bell",searchTerms:["alert","notification","reminder"]},{title:"far fa-bell",searchTerms:["alert","notification","reminder"]},{title:"fas fa-bell-slash",searchTerms:[]},{title:"far fa-bell-slash",searchTerms:[]},{title:"fas fa-bezier-curve",searchTerms:["curves","illustrator","lines","path","vector"]},{title:"fas fa-bible",searchTerms:["book","catholicism","christianity"]},{title:"fas fa-bicycle",searchTerms:["bike","gears","transportation","vehicle"]},{title:"fab fa-bimobject",searchTerms:[]},{title:"fas fa-binoculars",searchTerms:[]},{title:"fas fa-birthday-cake",searchTerms:[]},{title:"fab fa-bitbucket",searchTerms:["bitbucket-square","git"]},{title:"fab fa-bitcoin",searchTerms:[]},{title:"fab fa-bity",searchTerms:[]},{title:"fab fa-black-tie",searchTerms:[]},{title:"fab fa-blackberry",searchTerms:[]},{title:"fas fa-blender",searchTerms:[]},{title:"fas fa-blender-phone",searchTerms:["appliance","fantasy","silly"]},{title:"fas fa-blind",searchTerms:[]},{title:"fab fa-blogger",searchTerms:[]},{title:"fab fa-blogger-b",searchTerms:[]},{title:"fab fa-bluetooth",searchTerms:[]},{title:"fab fa-bluetooth-b",searchTerms:[]},{title:"fas fa-bold",searchTerms:[]},{title:"fas fa-bolt",searchTerms:["electricity","lightning","weather","zap"]},{title:"fas fa-bomb",searchTerms:[]},{title:"fas fa-bone",searchTerms:[]},{title:"fas fa-bong",searchTerms:["aparatus","cannabis","marijuana","pipe","smoke","smoking"]},{title:"fas fa-book",searchTerms:["documentation","read"]},{title:"fas fa-book-dead",searchTerms:["Dungeons & Dragons","crossbones","d&d","dark arts","death","dnd","documentation","evil","fantasy","halloween","holiday","read","skull","spell"]},{title:"fas fa-book-open",searchTerms:["flyer","notebook","open book","pamphlet","reading"]},{title:"fas fa-book-reader",searchTerms:["library"]},{title:"fas fa-bookmark",searchTerms:["save"]},{title:"far fa-bookmark",searchTerms:["save"]},{title:"fas fa-bowling-ball",searchTerms:[]},{title:"fas fa-box",searchTerms:["package"]},{title:"fas fa-box-open",searchTerms:[]},{title:"fas fa-boxes",searchTerms:[]},{title:"fas fa-braille",searchTerms:[]},{title:"fas fa-brain",searchTerms:["cerebellum","gray matter","intellect","medulla oblongata","mind","noodle","wit"]},{title:"fas fa-briefcase",searchTerms:["bag","business","luggage","office","work"]},{title:"fas fa-briefcase-medical",searchTerms:["health briefcase"]},{title:"fas fa-broadcast-tower",searchTerms:["airwaves","radio","waves"]},{title:"fas fa-broom",searchTerms:["clean","firebolt","fly","halloween","holiday","nimbus 2000","quidditch","sweep","witch"]},{title:"fas fa-brush",searchTerms:["bristles","color","handle","painting"]},{title:"fab fa-btc",searchTerms:[]},{title:"fas fa-bug",searchTerms:["insect","report"]},{title:"fas fa-building",searchTerms:["apartment","business","company","office","work"]},{title:"far fa-building",searchTerms:["apartment","business","company","office","work"]},{title:"fas fa-bullhorn",searchTerms:["announcement","broadcast","louder","megaphone","share"]},{title:"fas fa-bullseye",searchTerms:["target"]},{title:"fas fa-burn",searchTerms:["energy"]},{title:"fab fa-buromobelexperte",searchTerms:[]},{title:"fas fa-bus",searchTerms:["machine","public transportation","transportation","vehicle"]},{title:"fas fa-bus-alt",searchTerms:["machine","public transportation","transportation","vehicle"]},{title:"fas fa-business-time",searchTerms:["briefcase","business socks","clock","flight of the conchords","wednesday"]},{title:"fab fa-buysellads",searchTerms:[]},{title:"fas fa-calculator",searchTerms:[]},{title:"fas fa-calendar",searchTerms:["calendar-o","date","event","schedule","time","when"]},{title:"far fa-calendar",searchTerms:["calendar-o","date","event","schedule","time","when"]},{title:"fas fa-calendar-alt",searchTerms:["calendar","date","event","schedule","time","when"]},{title:"far fa-calendar-alt",searchTerms:["calendar","date","event","schedule","time","when"]},{title:"fas fa-calendar-check",searchTerms:["accept","agree","appointment","confirm","correct","done","ok","select","success","todo"]},{title:"far fa-calendar-check",searchTerms:["accept","agree","appointment","confirm","correct","done","ok","select","success","todo"]},{title:"fas fa-calendar-minus",searchTerms:["delete","negative","remove"]},{title:"far fa-calendar-minus",searchTerms:["delete","negative","remove"]},{title:"fas fa-calendar-plus",searchTerms:["add","create","new","positive"]},{title:"far fa-calendar-plus",searchTerms:["add","create","new","positive"]},{title:"fas fa-calendar-times",searchTerms:["archive","delete","remove","x"]},{title:"far fa-calendar-times",searchTerms:["archive","delete","remove","x"]},{title:"fas fa-camera",searchTerms:["photo","picture","record"]},{title:"fas fa-camera-retro",searchTerms:["photo","picture","record"]},{title:"fas fa-campground",searchTerms:["camping","fall","outdoors","seasonal","tent"]},{title:"fas fa-cannabis",searchTerms:["bud","chronic","drugs","endica","endo","ganja","marijuana","mary jane","pot","reefer","sativa","spliff","weed","whacky-tabacky"]},{title:"fas fa-capsules",searchTerms:["drugs","medicine"]},{title:"fas fa-car",searchTerms:["machine","transportation","vehicle"]},{title:"fas fa-car-alt",searchTerms:[]},{title:"fas fa-car-battery",searchTerms:[]},{title:"fas fa-car-crash",searchTerms:[]},{title:"fas fa-car-side",searchTerms:[]},{title:"fas fa-caret-down",searchTerms:["arrow","dropdown","menu","more","triangle down"]},{title:"fas fa-caret-left",searchTerms:["arrow","back","previous","triangle left"]},{title:"fas fa-caret-right",searchTerms:["arrow","forward","next","triangle right"]},{title:"fas fa-caret-square-down",searchTerms:["caret-square-o-down","dropdown","menu","more"]},{title:"far fa-caret-square-down",searchTerms:["caret-square-o-down","dropdown","menu","more"]},{title:"fas fa-caret-square-left",searchTerms:["back","caret-square-o-left","previous"]},{title:"far fa-caret-square-left",searchTerms:["back","caret-square-o-left","previous"]},{title:"fas fa-caret-square-right",searchTerms:["caret-square-o-right","forward","next"]},{title:"far fa-caret-square-right",searchTerms:["caret-square-o-right","forward","next"]},{title:"fas fa-caret-square-up",searchTerms:["caret-square-o-up"]},{title:"far fa-caret-square-up",searchTerms:["caret-square-o-up"]},{title:"fas fa-caret-up",searchTerms:["arrow","triangle up"]},{title:"fas fa-cart-arrow-down",searchTerms:["shopping"]},{title:"fas fa-cart-plus",searchTerms:["add","create","new","positive","shopping"]},{title:"fas fa-cat",searchTerms:["feline","halloween","holiday","kitten","kitty","meow","pet"]},{title:"fab fa-cc-amazon-pay",searchTerms:[]},{title:"fab fa-cc-amex",searchTerms:["amex"]},{title:"fab fa-cc-apple-pay",searchTerms:[]},{title:"fab fa-cc-diners-club",searchTerms:[]},{title:"fab fa-cc-discover",searchTerms:[]},{title:"fab fa-cc-jcb",searchTerms:[]},{title:"fab fa-cc-mastercard",searchTerms:[]},{title:"fab fa-cc-paypal",searchTerms:[]},{title:"fab fa-cc-stripe",searchTerms:[]},{title:"fab fa-cc-visa",searchTerms:[]},{title:"fab fa-centercode",searchTerms:[]},{title:"fas fa-certificate",searchTerms:["badge","star"]},{title:"fas fa-chair",searchTerms:["furniture","seat"]},{title:"fas fa-chalkboard",searchTerms:["blackboard","learning","school","teaching","whiteboard","writing"]},{title:"fas fa-chalkboard-teacher",searchTerms:["blackboard","instructor","learning","professor","school","whiteboard","writing"]},{title:"fas fa-charging-station",searchTerms:[]},{title:"fas fa-chart-area",searchTerms:["analytics","area-chart","graph"]},{title:"fas fa-chart-bar",searchTerms:["analytics","bar-chart","graph"]},{title:"far fa-chart-bar",searchTerms:["analytics","bar-chart","graph"]},{title:"fas fa-chart-line",searchTerms:["activity","analytics","dashboard","graph","line-chart"]},{title:"fas fa-chart-pie",searchTerms:["analytics","graph","pie-chart"]},{title:"fas fa-check",searchTerms:["accept","agree","checkmark","confirm","correct","done","notice","notification","notify","ok","select","success","tick","todo","yes"]},{title:"fas fa-check-circle",searchTerms:["accept","agree","confirm","correct","done","ok","select","success","todo","yes"]},{title:"far fa-check-circle",searchTerms:["accept","agree","confirm","correct","done","ok","select","success","todo","yes"]},{title:"fas fa-check-double",searchTerms:["accept","agree","checkmark","confirm","correct","done","notice","notification","notify","ok","select","success","tick","todo"]},{title:"fas fa-check-square",searchTerms:["accept","agree","checkmark","confirm","correct","done","ok","select","success","todo","yes"]},{title:"far fa-check-square",searchTerms:["accept","agree","checkmark","confirm","correct","done","ok","select","success","todo","yes"]},{title:"fas fa-chess",searchTerms:[]},{title:"fas fa-chess-bishop",searchTerms:[]},{title:"fas fa-chess-board",searchTerms:[]},{title:"fas fa-chess-king",searchTerms:[]},{title:"fas fa-chess-knight",searchTerms:[]},{title:"fas fa-chess-pawn",searchTerms:[]},{title:"fas fa-chess-queen",searchTerms:[]},{title:"fas fa-chess-rook",searchTerms:[]},{title:"fas fa-chevron-circle-down",searchTerms:["arrow","dropdown","menu","more"]},{title:"fas fa-chevron-circle-left",searchTerms:["arrow","back","previous"]},{title:"fas fa-chevron-circle-right",searchTerms:["arrow","forward","next"]},{title:"fas fa-chevron-circle-up",searchTerms:["arrow"]},{title:"fas fa-chevron-down",searchTerms:[]},{title:"fas fa-chevron-left",searchTerms:["back","bracket","previous"]},{title:"fas fa-chevron-right",searchTerms:["bracket","forward","next"]},{title:"fas fa-chevron-up",searchTerms:[]},{title:"fas fa-child",searchTerms:[]},{title:"fab fa-chrome",searchTerms:["browser"]},{title:"fas fa-church",searchTerms:["building","community","religion"]},{title:"fas fa-circle",searchTerms:["circle-thin","dot","notification"]},{title:"far fa-circle",searchTerms:["circle-thin","dot","notification"]},{title:"fas fa-circle-notch",searchTerms:["circle-o-notch"]},{title:"fas fa-city",searchTerms:["buildings","busy","skyscrapers","urban","windows"]},{title:"fas fa-clipboard",searchTerms:["paste"]},{title:"far fa-clipboard",searchTerms:["paste"]},{title:"fas fa-clipboard-check",searchTerms:["accept","agree","confirm","done","ok","select","success","todo","yes"]},{title:"fas fa-clipboard-list",searchTerms:["checklist","completed","done","finished","intinerary","ol","schedule","todo","ul"]},{title:"fas fa-clock",searchTerms:["date","late","schedule","timer","timestamp","watch"]},{title:"far fa-clock",searchTerms:["date","late","schedule","timer","timestamp","watch"]},{title:"fas fa-clone",searchTerms:["copy","duplicate"]},{title:"far fa-clone",searchTerms:["copy","duplicate"]},{title:"fas fa-closed-captioning",searchTerms:["cc"]},{title:"far fa-closed-captioning",searchTerms:["cc"]},{title:"fas fa-cloud",searchTerms:["save"]},{title:"fas fa-cloud-download-alt",searchTerms:["import"]},{title:"fas fa-cloud-meatball",searchTerms:[]},{title:"fas fa-cloud-moon",searchTerms:["crescent","evening","halloween","holiday","lunar","night","sky"]},{title:"fas fa-cloud-moon-rain",searchTerms:[]},{title:"fas fa-cloud-rain",searchTerms:["precipitation"]},{title:"fas fa-cloud-showers-heavy",searchTerms:["precipitation","rain","storm"]},{title:"fas fa-cloud-sun",searchTerms:["day","daytime","fall","outdoors","seasonal"]},{title:"fas fa-cloud-sun-rain",searchTerms:[]},{title:"fas fa-cloud-upload-alt",searchTerms:["cloud-upload"]},{title:"fab fa-cloudscale",searchTerms:[]},{title:"fab fa-cloudsmith",searchTerms:[]},{title:"fab fa-cloudversify",searchTerms:[]},{title:"fas fa-cocktail",searchTerms:["alcohol","beverage","drink"]},{title:"fas fa-code",searchTerms:["brackets","html"]},{title:"fas fa-code-branch",searchTerms:["branch","code-fork","fork","git","github","rebase","svn","vcs","version"]},{title:"fab fa-codepen",searchTerms:[]},{title:"fab fa-codiepie",searchTerms:[]},{title:"fas fa-coffee",searchTerms:["beverage","breakfast","cafe","drink","fall","morning","mug","seasonal","tea"]},{title:"fas fa-cog",searchTerms:["settings"]},{title:"fas fa-cogs",searchTerms:["gears","settings"]},{title:"fas fa-coins",searchTerms:[]},{title:"fas fa-columns",searchTerms:["dashboard","panes","split"]},{title:"fas fa-comment",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"far fa-comment",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"fas fa-comment-alt",searchTerms:["bubble","chat","commenting","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"far fa-comment-alt",searchTerms:["bubble","chat","commenting","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"fas fa-comment-dollar",searchTerms:[]},{title:"fas fa-comment-dots",searchTerms:[]},{title:"far fa-comment-dots",searchTerms:[]},{title:"fas fa-comment-slash",searchTerms:[]},{title:"fas fa-comments",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"far fa-comments",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"fas fa-comments-dollar",searchTerms:[]},{title:"fas fa-compact-disc",searchTerms:["bluray","cd","disc","media"]},{title:"fas fa-compass",searchTerms:["directory","location","menu","safari"]},{title:"far fa-compass",searchTerms:["directory","location","menu","safari"]},{title:"fas fa-compress",searchTerms:["collapse","combine","contract","merge","smaller"]},{title:"fas fa-concierge-bell",searchTerms:["attention","hotel","service","support"]},{title:"fab fa-connectdevelop",searchTerms:[]},{title:"fab fa-contao",searchTerms:[]},{title:"fas fa-cookie",searchTerms:["baked good","chips","food","snack","sweet","treat"]},{title:"fas fa-cookie-bite",searchTerms:["baked good","bitten","chips","eating","food","snack","sweet","treat"]},{title:"fas fa-copy",searchTerms:["clone","duplicate","file","files-o"]},{title:"far fa-copy",searchTerms:["clone","duplicate","file","files-o"]},{title:"fas fa-copyright",searchTerms:[]},{title:"far fa-copyright",searchTerms:[]},{title:"fas fa-couch",searchTerms:["furniture","sofa"]},{title:"fab fa-cpanel",searchTerms:[]},{title:"fab fa-creative-commons",searchTerms:[]},{title:"fab fa-creative-commons-by",searchTerms:[]},{title:"fab fa-creative-commons-nc",searchTerms:[]},{title:"fab fa-creative-commons-nc-eu",searchTerms:[]},{title:"fab fa-creative-commons-nc-jp",searchTerms:[]},{title:"fab fa-creative-commons-nd",searchTerms:[]},{title:"fab fa-creative-commons-pd",searchTerms:[]},{title:"fab fa-creative-commons-pd-alt",searchTerms:[]},{title:"fab fa-creative-commons-remix",searchTerms:[]},{title:"fab fa-creative-commons-sa",searchTerms:[]},{title:"fab fa-creative-commons-sampling",searchTerms:[]},{title:"fab fa-creative-commons-sampling-plus",searchTerms:[]},{title:"fab fa-creative-commons-share",searchTerms:[]},{title:"fab fa-creative-commons-zero",searchTerms:[]},{title:"fas fa-credit-card",searchTerms:["buy","checkout","credit-card-alt","debit","money","payment","purchase"]},{title:"far fa-credit-card",searchTerms:["buy","checkout","credit-card-alt","debit","money","payment","purchase"]},{title:"fab fa-critical-role",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fas fa-crop",searchTerms:["design"]},{title:"fas fa-crop-alt",searchTerms:[]},{title:"fas fa-cross",searchTerms:["catholicism","christianity"]},{title:"fas fa-crosshairs",searchTerms:["gpd","picker","position"]},{title:"fas fa-crow",searchTerms:["bird","bullfrog","fauna","halloween","holiday","toad"]},{title:"fas fa-crown",searchTerms:[]},{title:"fab fa-css3",searchTerms:["code"]},{title:"fab fa-css3-alt",searchTerms:[]},{title:"fas fa-cube",searchTerms:["package"]},{title:"fas fa-cubes",searchTerms:["packages"]},{title:"fas fa-cut",searchTerms:["scissors"]},{title:"fab fa-cuttlefish",searchTerms:[]},{title:"fab fa-d-and-d",searchTerms:[]},{title:"fab fa-d-and-d-beyond",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","gaming","tabletop"]},{title:"fab fa-dashcube",searchTerms:[]},{title:"fas fa-database",searchTerms:[]},{title:"fas fa-deaf",searchTerms:[]},{title:"fab fa-delicious",searchTerms:[]},{title:"fas fa-democrat",searchTerms:["american","democratic party","donkey","election","left","left-wing","liberal","politics","usa"]},{title:"fab fa-deploydog",searchTerms:[]},{title:"fab fa-deskpro",searchTerms:[]},{title:"fas fa-desktop",searchTerms:["computer","cpu","demo","desktop","device","machine","monitor","pc","screen"]},{title:"fab fa-dev",searchTerms:[]},{title:"fab fa-deviantart",searchTerms:[]},{title:"fas fa-dharmachakra",searchTerms:["buddhism","buddhist","wheel of dharma"]},{title:"fas fa-diagnoses",searchTerms:[]},{title:"fas fa-dice",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-d20",searchTerms:["Dungeons & Dragons","chance","d&d","dnd","fantasy","gambling","game","roll"]},{title:"fas fa-dice-d6",searchTerms:["Dungeons & Dragons","chance","d&d","dnd","fantasy","gambling","game","roll"]},{title:"fas fa-dice-five",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-four",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-one",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-six",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-three",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-two",searchTerms:["chance","gambling","game","roll"]},{title:"fab fa-digg",searchTerms:[]},{title:"fab fa-digital-ocean",searchTerms:[]},{title:"fas fa-digital-tachograph",searchTerms:[]},{title:"fas fa-directions",searchTerms:[]},{title:"fab fa-discord",searchTerms:[]},{title:"fab fa-discourse",searchTerms:[]},{title:"fas fa-divide",searchTerms:[]},{title:"fas fa-dizzy",searchTerms:["dazed","disapprove","emoticon","face"]},{title:"far fa-dizzy",searchTerms:["dazed","disapprove","emoticon","face"]},{title:"fas fa-dna",searchTerms:["double helix","helix"]},{title:"fab fa-dochub",searchTerms:[]},{title:"fab fa-docker",searchTerms:[]},{title:"fas fa-dog",searchTerms:["canine","fauna","mammmal","pet","pooch","puppy","woof"]},{title:"fas fa-dollar-sign",searchTerms:["$","dollar-sign","money","price","usd"]},{title:"fas fa-dolly",searchTerms:[]},{title:"fas fa-dolly-flatbed",searchTerms:[]},{title:"fas fa-donate",searchTerms:["generosity","give"]},{title:"fas fa-door-closed",searchTerms:[]},{title:"fas fa-door-open",searchTerms:[]},{title:"fas fa-dot-circle",searchTerms:["bullseye","notification","target"]},{title:"far fa-dot-circle",searchTerms:["bullseye","notification","target"]},{title:"fas fa-dove",searchTerms:["bird","fauna","flying","peace"]},{title:"fas fa-download",searchTerms:["import"]},{title:"fab fa-draft2digital",searchTerms:[]},{title:"fas fa-drafting-compass",searchTerms:["mechanical drawing","plot","plotting"]},{title:"fas fa-dragon",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy"]},{title:"fas fa-draw-polygon",searchTerms:[]},{title:"fab fa-dribbble",searchTerms:[]},{title:"fab fa-dribbble-square",searchTerms:[]},{title:"fab fa-dropbox",searchTerms:[]},{title:"fas fa-drum",searchTerms:["instrument","music","percussion","snare","sound"]},{title:"fas fa-drum-steelpan",searchTerms:["calypso","instrument","music","percussion","reggae","snare","sound","steel","tropical"]},{title:"fas fa-drumstick-bite",searchTerms:[]},{title:"fab fa-drupal",searchTerms:[]},{title:"fas fa-dumbbell",searchTerms:["exercise","gym","strength","weight","weight-lifting"]},{title:"fas fa-dungeon",searchTerms:["Dungeons & Dragons","d&d","dnd","door","entrance","fantasy","gate"]},{title:"fab fa-dyalog",searchTerms:[]},{title:"fab fa-earlybirds",searchTerms:[]},{title:"fab fa-ebay",searchTerms:[]},{title:"fab fa-edge",searchTerms:["browser","ie"]},{title:"fas fa-edit",searchTerms:["edit","pen","pencil","update","write"]},{title:"far fa-edit",searchTerms:["edit","pen","pencil","update","write"]},{title:"fas fa-eject",searchTerms:[]},{title:"fab fa-elementor",searchTerms:[]},{title:"fas fa-ellipsis-h",searchTerms:["dots","drag","kebab","list","menu","nav","navigation","ol","reorder","settings","ul"]},{title:"fas fa-ellipsis-v",searchTerms:["dots","drag","kebab","list","menu","nav","navigation","ol","reorder","settings","ul"]},{title:"fab fa-ello",searchTerms:[]},{title:"fab fa-ember",searchTerms:[]},{title:"fab fa-empire",searchTerms:[]},{title:"fas fa-envelope",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"far fa-envelope",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"fas fa-envelope-open",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"far fa-envelope-open",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"fas fa-envelope-open-text",searchTerms:[]},{title:"fas fa-envelope-square",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"fab fa-envira",searchTerms:["leaf"]},{title:"fas fa-equals",searchTerms:[]},{title:"fas fa-eraser",searchTerms:["delete","remove"]},{title:"fab fa-erlang",searchTerms:[]},{title:"fab fa-ethereum",searchTerms:[]},{title:"fab fa-etsy",searchTerms:[]},{title:"fas fa-euro-sign",searchTerms:["eur"]},{title:"fas fa-exchange-alt",searchTerms:["arrow","arrows","exchange","reciprocate","return","swap","transfer"]},{title:"fas fa-exclamation",searchTerms:["alert","danger","error","important","notice","notification","notify","problem","warning"]},{title:"fas fa-exclamation-circle",searchTerms:["alert","danger","error","important","notice","notification","notify","problem","warning"]},{title:"fas fa-exclamation-triangle",searchTerms:["alert","danger","error","important","notice","notification","notify","problem","warning"]},{title:"fas fa-expand",searchTerms:["bigger","enlarge","resize"]},{title:"fas fa-expand-arrows-alt",searchTerms:["arrows-alt","bigger","enlarge","move","resize"]},{title:"fab fa-expeditedssl",searchTerms:[]},{title:"fas fa-external-link-alt",searchTerms:["external-link","new","open"]},{title:"fas fa-external-link-square-alt",searchTerms:["external-link-square","new","open"]},{title:"fas fa-eye",searchTerms:["optic","see","seen","show","sight","views","visible"]},{title:"far fa-eye",searchTerms:["optic","see","seen","show","sight","views","visible"]},{title:"fas fa-eye-dropper",searchTerms:["eyedropper"]},{title:"fas fa-eye-slash",searchTerms:["blind","hide","show","toggle","unseen","views","visible","visiblity"]},{title:"far fa-eye-slash",searchTerms:["blind","hide","show","toggle","unseen","views","visible","visiblity"]},{title:"fab fa-facebook",searchTerms:["facebook-official","social network"]},{title:"fab fa-facebook-f",searchTerms:["facebook"]},{title:"fab fa-facebook-messenger",searchTerms:[]},{title:"fab fa-facebook-square",searchTerms:["social network"]},{title:"fab fa-fantasy-flight-games",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fas fa-fast-backward",searchTerms:["beginning","first","previous","rewind","start"]},{title:"fas fa-fast-forward",searchTerms:["end","last","next"]},{title:"fas fa-fax",searchTerms:[]},{title:"fas fa-feather",searchTerms:["bird","light","plucked","quill"]},{title:"fas fa-feather-alt",searchTerms:["bird","light","plucked","quill"]},{title:"fas fa-female",searchTerms:["human","person","profile","user","woman"]},{title:"fas fa-fighter-jet",searchTerms:["airplane","fast","fly","goose","maverick","plane","quick","top gun","transportation","travel"]},{title:"fas fa-file",searchTerms:["document","new","page","pdf","resume"]},{title:"far fa-file",searchTerms:["document","new","page","pdf","resume"]},{title:"fas fa-file-alt",searchTerms:["document","file-text","invoice","new","page","pdf"]},{title:"far fa-file-alt",searchTerms:["document","file-text","invoice","new","page","pdf"]},{title:"fas fa-file-archive",searchTerms:[".zip","bundle","compress","compression","download","zip"]},{title:"far fa-file-archive",searchTerms:[".zip","bundle","compress","compression","download","zip"]},{title:"fas fa-file-audio",searchTerms:[]},{title:"far fa-file-audio",searchTerms:[]},{title:"fas fa-file-code",searchTerms:[]},{title:"far fa-file-code",searchTerms:[]},{title:"fas fa-file-contract",searchTerms:["agreement","binding","document","legal","signature"]},{title:"fas fa-file-csv",searchTerms:["spreadsheets"]},{title:"fas fa-file-download",searchTerms:[]},{title:"fas fa-file-excel",searchTerms:[]},{title:"far fa-file-excel",searchTerms:[]},{title:"fas fa-file-export",searchTerms:[]},{title:"fas fa-file-image",searchTerms:[]},{title:"far fa-file-image",searchTerms:[]},{title:"fas fa-file-import",searchTerms:[]},{title:"fas fa-file-invoice",searchTerms:["bill","document","receipt"]},{title:"fas fa-file-invoice-dollar",searchTerms:["$","bill","document","dollar-sign","money","receipt","usd"]},{title:"fas fa-file-medical",searchTerms:[]},{title:"fas fa-file-medical-alt",searchTerms:[]},{title:"fas fa-file-pdf",searchTerms:[]},{title:"far fa-file-pdf",searchTerms:[]},{title:"fas fa-file-powerpoint",searchTerms:[]},{title:"far fa-file-powerpoint",searchTerms:[]},{title:"fas fa-file-prescription",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-file-signature",searchTerms:["John Hancock","contract","document","name"]},{title:"fas fa-file-upload",searchTerms:[]},{title:"fas fa-file-video",searchTerms:[]},{title:"far fa-file-video",searchTerms:[]},{title:"fas fa-file-word",searchTerms:[]},{title:"far fa-file-word",searchTerms:[]},{title:"fas fa-fill",searchTerms:["bucket","color","paint","paint bucket"]},{title:"fas fa-fill-drip",searchTerms:["bucket","color","drop","paint","paint bucket","spill"]},{title:"fas fa-film",searchTerms:["movie"]},{title:"fas fa-filter",searchTerms:["funnel","options"]},{title:"fas fa-fingerprint",searchTerms:["human","id","identification","lock","smudge","touch","unique","unlock"]},{title:"fas fa-fire",searchTerms:["caliente","flame","heat","hot","popular"]},{title:"fas fa-fire-extinguisher",searchTerms:[]},{title:"fab fa-firefox",searchTerms:["browser"]},{title:"fas fa-first-aid",searchTerms:[]},{title:"fab fa-first-order",searchTerms:[]},{title:"fab fa-first-order-alt",searchTerms:[]},{title:"fab fa-firstdraft",searchTerms:[]},{title:"fas fa-fish",searchTerms:["fauna","gold","swimming"]},{title:"fas fa-fist-raised",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","hand","ki","monk","resist","strength","unarmed combat"]},{title:"fas fa-flag",searchTerms:["country","notice","notification","notify","pole","report","symbol"]},{title:"far fa-flag",searchTerms:["country","notice","notification","notify","pole","report","symbol"]},{title:"fas fa-flag-checkered",searchTerms:["notice","notification","notify","pole","racing","report","symbol"]},{title:"fas fa-flag-usa",searchTerms:["betsy ross","country","old glory","stars","stripes","symbol"]},{title:"fas fa-flask",searchTerms:["beaker","experimental","labs","science"]},{title:"fab fa-flickr",searchTerms:[]},{title:"fab fa-flipboard",searchTerms:[]},{title:"fas fa-flushed",searchTerms:["embarrassed","emoticon","face"]},{title:"far fa-flushed",searchTerms:["embarrassed","emoticon","face"]},{title:"fab fa-fly",searchTerms:[]},{title:"fas fa-folder",searchTerms:[]},{title:"far fa-folder",searchTerms:[]},{title:"fas fa-folder-minus",searchTerms:["archive","delete","negative","remove"]},{title:"fas fa-folder-open",searchTerms:[]},{title:"far fa-folder-open",searchTerms:[]},{title:"fas fa-folder-plus",searchTerms:["add","create","new","positive"]},{title:"fas fa-font",searchTerms:["text"]},{title:"fab fa-font-awesome",searchTerms:["meanpath"]},{title:"fab fa-font-awesome-alt",searchTerms:[]},{title:"fab fa-font-awesome-flag",searchTerms:[]},{title:"far fa-font-awesome-logo-full",searchTerms:[]},{title:"fas fa-font-awesome-logo-full",searchTerms:[]},{title:"fab fa-font-awesome-logo-full",searchTerms:[]},{title:"fab fa-fonticons",searchTerms:[]},{title:"fab fa-fonticons-fi",searchTerms:[]},{title:"fas fa-football-ball",searchTerms:["fall","pigskin","seasonal"]},{title:"fab fa-fort-awesome",searchTerms:["castle"]},{title:"fab fa-fort-awesome-alt",searchTerms:["castle"]},{title:"fab fa-forumbee",searchTerms:[]},{title:"fas fa-forward",searchTerms:["forward","next"]},{title:"fab fa-foursquare",searchTerms:[]},{title:"fab fa-free-code-camp",searchTerms:[]},{title:"fab fa-freebsd",searchTerms:[]},{title:"fas fa-frog",searchTerms:["amphibian","bullfrog","fauna","hop","kermit","kiss","prince","ribbit","toad","wart"]},{title:"fas fa-frown",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"far fa-frown",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"fas fa-frown-open",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"far fa-frown-open",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"fab fa-fulcrum",searchTerms:[]},{title:"fas fa-funnel-dollar",searchTerms:[]},{title:"fas fa-futbol",searchTerms:["ball","football","soccer"]},{title:"far fa-futbol",searchTerms:["ball","football","soccer"]},{title:"fab fa-galactic-republic",searchTerms:["politics","star wars"]},{title:"fab fa-galactic-senate",searchTerms:["star wars"]},{title:"fas fa-gamepad",searchTerms:["controller"]},{title:"fas fa-gas-pump",searchTerms:[]},{title:"fas fa-gavel",searchTerms:["hammer","judge","lawyer","opinion"]},{title:"fas fa-gem",searchTerms:["diamond"]},{title:"far fa-gem",searchTerms:["diamond"]},{title:"fas fa-genderless",searchTerms:[]},{title:"fab fa-get-pocket",searchTerms:[]},{title:"fab fa-gg",searchTerms:[]},{title:"fab fa-gg-circle",searchTerms:[]},{title:"fas fa-ghost",searchTerms:["apparition","blinky","clyde","floating","halloween","holiday","inky","pinky","spirit"]},{title:"fas fa-gift",searchTerms:["generosity","giving","party","present","wrapped"]},{title:"fab fa-git",searchTerms:[]},{title:"fab fa-git-square",searchTerms:[]},{title:"fab fa-github",searchTerms:["octocat"]},{title:"fab fa-github-alt",searchTerms:["octocat"]},{title:"fab fa-github-square",searchTerms:["octocat"]},{title:"fab fa-gitkraken",searchTerms:[]},{title:"fab fa-gitlab",searchTerms:["Axosoft"]},{title:"fab fa-gitter",searchTerms:[]},{title:"fas fa-glass-martini",searchTerms:["alcohol","bar","beverage","drink","glass","liquor","martini"]},{title:"fas fa-glass-martini-alt",searchTerms:[]},{title:"fas fa-glasses",searchTerms:["foureyes","hipster","nerd","reading","sight","spectacles"]},{title:"fab fa-glide",searchTerms:[]},{title:"fab fa-glide-g",searchTerms:[]},{title:"fas fa-globe",searchTerms:["all","coordinates","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fas fa-globe-africa",searchTerms:["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fas fa-globe-americas",searchTerms:["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fas fa-globe-asia",searchTerms:["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fab fa-gofore",searchTerms:[]},{title:"fas fa-golf-ball",searchTerms:[]},{title:"fab fa-goodreads",searchTerms:[]},{title:"fab fa-goodreads-g",searchTerms:[]},{title:"fab fa-google",searchTerms:[]},{title:"fab fa-google-drive",searchTerms:[]},{title:"fab fa-google-play",searchTerms:[]},{title:"fab fa-google-plus",searchTerms:["google-plus-circle","google-plus-official"]},{title:"fab fa-google-plus-g",searchTerms:["google-plus","social network"]},{title:"fab fa-google-plus-square",searchTerms:["social network"]},{title:"fab fa-google-wallet",searchTerms:[]},{title:"fas fa-gopuram",searchTerms:["building","entrance","hinduism","temple","tower"]},{title:"fas fa-graduation-cap",searchTerms:["learning","school","student"]},{title:"fab fa-gratipay",searchTerms:["favorite","heart","like","love"]},{title:"fab fa-grav",searchTerms:[]},{title:"fas fa-greater-than",searchTerms:[]},{title:"fas fa-greater-than-equal",searchTerms:[]},{title:"fas fa-grimace",searchTerms:["cringe","emoticon","face"]},{title:"far fa-grimace",searchTerms:["cringe","emoticon","face"]},{title:"fas fa-grin",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-alt",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin-alt",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-beam",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin-beam",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-beam-sweat",searchTerms:["emoticon","face","smile"]},{title:"far fa-grin-beam-sweat",searchTerms:["emoticon","face","smile"]},{title:"fas fa-grin-hearts",searchTerms:["emoticon","face","love","smile"]},{title:"far fa-grin-hearts",searchTerms:["emoticon","face","love","smile"]},{title:"fas fa-grin-squint",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin-squint",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-squint-tears",searchTerms:["emoticon","face","happy","smile"]},{title:"far fa-grin-squint-tears",searchTerms:["emoticon","face","happy","smile"]},{title:"fas fa-grin-stars",searchTerms:["emoticon","face","star-struck"]},{title:"far fa-grin-stars",searchTerms:["emoticon","face","star-struck"]},{title:"fas fa-grin-tears",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tears",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-tongue",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tongue",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-tongue-squint",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tongue-squint",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-tongue-wink",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tongue-wink",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-wink",searchTerms:["emoticon","face","flirt","laugh","smile"]},{title:"far fa-grin-wink",searchTerms:["emoticon","face","flirt","laugh","smile"]},{title:"fas fa-grip-horizontal",searchTerms:["affordance","drag","drop","grab","handle"]},{title:"fas fa-grip-vertical",searchTerms:["affordance","drag","drop","grab","handle"]},{title:"fab fa-gripfire",searchTerms:[]},{title:"fab fa-grunt",searchTerms:[]},{title:"fab fa-gulp",searchTerms:[]},{title:"fas fa-h-square",searchTerms:["hospital","hotel"]},{title:"fab fa-hacker-news",searchTerms:[]},{title:"fab fa-hacker-news-square",searchTerms:[]},{title:"fab fa-hackerrank",searchTerms:[]},{title:"fas fa-hammer",searchTerms:["admin","fix","repair","settings","tool"]},{title:"fas fa-hamsa",searchTerms:["amulet","christianity","islam","jewish","judaism","muslim","protection"]},{title:"fas fa-hand-holding",searchTerms:[]},{title:"fas fa-hand-holding-heart",searchTerms:[]},{title:"fas fa-hand-holding-usd",searchTerms:["$","dollar sign","donation","giving","money","price"]},{title:"fas fa-hand-lizard",searchTerms:[]},{title:"far fa-hand-lizard",searchTerms:[]},{title:"fas fa-hand-paper",searchTerms:["stop"]},{title:"far fa-hand-paper",searchTerms:["stop"]},{title:"fas fa-hand-peace",searchTerms:[]},{title:"far fa-hand-peace",searchTerms:[]},{title:"fas fa-hand-point-down",searchTerms:["finger","hand-o-down","point"]},{title:"far fa-hand-point-down",searchTerms:["finger","hand-o-down","point"]},{title:"fas fa-hand-point-left",searchTerms:["back","finger","hand-o-left","left","point","previous"]},{title:"far fa-hand-point-left",searchTerms:["back","finger","hand-o-left","left","point","previous"]},{title:"fas fa-hand-point-right",searchTerms:["finger","forward","hand-o-right","next","point","right"]},{title:"far fa-hand-point-right",searchTerms:["finger","forward","hand-o-right","next","point","right"]},{title:"fas fa-hand-point-up",searchTerms:["finger","hand-o-up","point"]},{title:"far fa-hand-point-up",searchTerms:["finger","hand-o-up","point"]},{title:"fas fa-hand-pointer",searchTerms:["select"]},{title:"far fa-hand-pointer",searchTerms:["select"]},{title:"fas fa-hand-rock",searchTerms:[]},{title:"far fa-hand-rock",searchTerms:[]},{title:"fas fa-hand-scissors",searchTerms:[]},{title:"far fa-hand-scissors",searchTerms:[]},{title:"fas fa-hand-spock",searchTerms:[]},{title:"far fa-hand-spock",searchTerms:[]},{title:"fas fa-hands",searchTerms:[]},{title:"fas fa-hands-helping",searchTerms:["aid","assistance","partnership","volunteering"]},{title:"fas fa-handshake",searchTerms:["greeting","partnership"]},{title:"far fa-handshake",searchTerms:["greeting","partnership"]},{title:"fas fa-hanukiah",searchTerms:["candle","hanukkah","jewish","judaism","light"]},{title:"fas fa-hashtag",searchTerms:[]},{title:"fas fa-hat-wizard",searchTerms:["Dungeons & Dragons","buckle","cloth","clothing","d&d","dnd","fantasy","halloween","holiday","mage","magic","pointy","witch"]},{title:"fas fa-haykal",searchTerms:["bahai","bahá'í","star"]},{title:"fas fa-hdd",searchTerms:["cpu","hard drive","harddrive","machine","save","storage"]},{title:"far fa-hdd",searchTerms:["cpu","hard drive","harddrive","machine","save","storage"]},{title:"fas fa-heading",searchTerms:["header"]},{title:"fas fa-headphones",searchTerms:["audio","listen","music","sound","speaker"]},{title:"fas fa-headphones-alt",searchTerms:["audio","listen","music","sound","speaker"]},{title:"fas fa-headset",searchTerms:["audio","gamer","gaming","listen","live chat","microphone","shot caller","sound","support","telemarketer"]},{title:"fas fa-heart",searchTerms:["favorite","like","love"]},{title:"far fa-heart",searchTerms:["favorite","like","love"]},{title:"fas fa-heartbeat",searchTerms:["ekg","lifeline","vital signs"]},{title:"fas fa-helicopter",searchTerms:["airwolf","apache","chopper","flight","fly"]},{title:"fas fa-highlighter",searchTerms:["edit","marker","sharpie","update","write"]},{title:"fas fa-hiking",searchTerms:["activity","backpack","fall","fitness","outdoors","seasonal","walking"]},{title:"fas fa-hippo",searchTerms:["fauna","hungry","mammmal"]},{title:"fab fa-hips",searchTerms:[]},{title:"fab fa-hire-a-helper",searchTerms:[]},{title:"fas fa-history",searchTerms:[]},{title:"fas fa-hockey-puck",searchTerms:[]},{title:"fas fa-home",searchTerms:["house","main"]},{title:"fab fa-hooli",searchTerms:[]},{title:"fab fa-hornbill",searchTerms:[]},{title:"fas fa-horse",searchTerms:["equus","fauna","mammmal","neigh"]},{title:"fas fa-hospital",searchTerms:["building","emergency room","medical center"]},{title:"far fa-hospital",searchTerms:["building","emergency room","medical center"]},{title:"fas fa-hospital-alt",searchTerms:["building","emergency room","medical center"]},{title:"fas fa-hospital-symbol",searchTerms:[]},{title:"fas fa-hot-tub",searchTerms:[]},{title:"fas fa-hotel",searchTerms:["building","lodging"]},{title:"fab fa-hotjar",searchTerms:[]},{title:"fas fa-hourglass",searchTerms:[]},{title:"far fa-hourglass",searchTerms:[]},{title:"fas fa-hourglass-end",searchTerms:[]},{title:"fas fa-hourglass-half",searchTerms:[]},{title:"fas fa-hourglass-start",searchTerms:[]},{title:"fas fa-house-damage",searchTerms:["devastation","home"]},{title:"fab fa-houzz",searchTerms:[]},{title:"fas fa-hryvnia",searchTerms:["money"]},{title:"fab fa-html5",searchTerms:[]},{title:"fab fa-hubspot",searchTerms:[]},{title:"fas fa-i-cursor",searchTerms:[]},{title:"fas fa-id-badge",searchTerms:[]},{title:"far fa-id-badge",searchTerms:[]},{title:"fas fa-id-card",searchTerms:["document","identification","issued"]},{title:"far fa-id-card",searchTerms:["document","identification","issued"]},{title:"fas fa-id-card-alt",searchTerms:["demographics"]},{title:"fas fa-image",searchTerms:["album","photo","picture"]},{title:"far fa-image",searchTerms:["album","photo","picture"]},{title:"fas fa-images",searchTerms:["album","photo","picture"]},{title:"far fa-images",searchTerms:["album","photo","picture"]},{title:"fab fa-imdb",searchTerms:[]},{title:"fas fa-inbox",searchTerms:[]},{title:"fas fa-indent",searchTerms:[]},{title:"fas fa-industry",searchTerms:["factory","manufacturing"]},{title:"fas fa-infinity",searchTerms:[]},{title:"fas fa-info",searchTerms:["details","help","information","more"]},{title:"fas fa-info-circle",searchTerms:["details","help","information","more"]},{title:"fab fa-instagram",searchTerms:[]},{title:"fab fa-internet-explorer",searchTerms:["browser","ie"]},{title:"fab fa-ioxhost",searchTerms:[]},{title:"fas fa-italic",searchTerms:["italics"]},{title:"fab fa-itunes",searchTerms:[]},{title:"fab fa-itunes-note",searchTerms:[]},{title:"fab fa-java",searchTerms:[]},{title:"fas fa-jedi",searchTerms:["star wars"]},{title:"fab fa-jedi-order",searchTerms:["star wars"]},{title:"fab fa-jenkins",searchTerms:[]},{title:"fab fa-joget",searchTerms:[]},{title:"fas fa-joint",searchTerms:["blunt","cannabis","doobie","drugs","marijuana","roach","smoke","smoking","spliff"]},{title:"fab fa-joomla",searchTerms:[]},{title:"fas fa-journal-whills",searchTerms:["book","jedi","star wars","the force"]},{title:"fab fa-js",searchTerms:[]},{title:"fab fa-js-square",searchTerms:[]},{title:"fab fa-jsfiddle",searchTerms:[]},{title:"fas fa-kaaba",searchTerms:["building","cube","islam","muslim"]},{title:"fab fa-kaggle",searchTerms:[]},{title:"fas fa-key",searchTerms:["password","unlock"]},{title:"fab fa-keybase",searchTerms:[]},{title:"fas fa-keyboard",searchTerms:["input","type"]},{title:"far fa-keyboard",searchTerms:["input","type"]},{title:"fab fa-keycdn",searchTerms:[]},{title:"fas fa-khanda",searchTerms:["chakkar","sikh","sikhism","sword"]},{title:"fab fa-kickstarter",searchTerms:[]},{title:"fab fa-kickstarter-k",searchTerms:[]},{title:"fas fa-kiss",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"far fa-kiss",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"fas fa-kiss-beam",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"far fa-kiss-beam",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"fas fa-kiss-wink-heart",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"far fa-kiss-wink-heart",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"fas fa-kiwi-bird",searchTerms:["bird","fauna"]},{title:"fab fa-korvue",searchTerms:[]},{title:"fas fa-landmark",searchTerms:["building","historic","memoroable","politics"]},{title:"fas fa-language",searchTerms:["dialect","idiom","localize","speech","translate","vernacular"]},{title:"fas fa-laptop",searchTerms:["computer","cpu","dell","demo","device","dude you're getting","mac","macbook","machine","pc"]},{title:"fas fa-laptop-code",searchTerms:[]},{title:"fab fa-laravel",searchTerms:[]},{title:"fab fa-lastfm",searchTerms:[]},{title:"fab fa-lastfm-square",searchTerms:[]},{title:"fas fa-laugh",searchTerms:["LOL","emoticon","face","laugh"]},{title:"far fa-laugh",searchTerms:["LOL","emoticon","face","laugh"]},{title:"fas fa-laugh-beam",searchTerms:["LOL","emoticon","face"]},{title:"far fa-laugh-beam",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-laugh-squint",searchTerms:["LOL","emoticon","face"]},{title:"far fa-laugh-squint",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-laugh-wink",searchTerms:["LOL","emoticon","face"]},{title:"far fa-laugh-wink",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-layer-group",searchTerms:["layers"]},{title:"fas fa-leaf",searchTerms:["eco","flora","nature","plant"]},{title:"fab fa-leanpub",searchTerms:[]},{title:"fas fa-lemon",searchTerms:["food"]},{title:"far fa-lemon",searchTerms:["food"]},{title:"fab fa-less",searchTerms:[]},{title:"fas fa-less-than",searchTerms:[]},{title:"fas fa-less-than-equal",searchTerms:[]},{title:"fas fa-level-down-alt",searchTerms:["level-down"]},{title:"fas fa-level-up-alt",searchTerms:["level-up"]},{title:"fas fa-life-ring",searchTerms:["support"]},{title:"far fa-life-ring",searchTerms:["support"]},{title:"fas fa-lightbulb",searchTerms:["idea","inspiration"]},{title:"far fa-lightbulb",searchTerms:["idea","inspiration"]},{title:"fab fa-line",searchTerms:[]},{title:"fas fa-link",searchTerms:["chain"]},{title:"fab fa-linkedin",searchTerms:["linkedin-square"]},{title:"fab fa-linkedin-in",searchTerms:["linkedin"]},{title:"fab fa-linode",searchTerms:[]},{title:"fab fa-linux",searchTerms:["tux"]},{title:"fas fa-lira-sign",searchTerms:["try","turkish"]},{title:"fas fa-list",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"fas fa-list-alt",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"far fa-list-alt",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"fas fa-list-ol",searchTerms:["checklist","list","numbers","ol","todo","ul"]},{title:"fas fa-list-ul",searchTerms:["checklist","list","ol","todo","ul"]},{title:"fas fa-location-arrow",searchTerms:["address","coordinates","gps","location","map","place","where"]},{title:"fas fa-lock",searchTerms:["admin","protect","security"]},{title:"fas fa-lock-open",searchTerms:["admin","lock","open","password","protect"]},{title:"fas fa-long-arrow-alt-down",searchTerms:["long-arrow-down"]},{title:"fas fa-long-arrow-alt-left",searchTerms:["back","long-arrow-left","previous"]},{title:"fas fa-long-arrow-alt-right",searchTerms:["long-arrow-right"]},{title:"fas fa-long-arrow-alt-up",searchTerms:["long-arrow-up"]},{title:"fas fa-low-vision",searchTerms:[]},{title:"fas fa-luggage-cart",searchTerms:[]},{title:"fab fa-lyft",searchTerms:[]},{title:"fab fa-magento",searchTerms:[]},{title:"fas fa-magic",searchTerms:["autocomplete","automatic","mage","magic","spell","witch","wizard"]},{title:"fas fa-magnet",searchTerms:[]},{title:"fas fa-mail-bulk",searchTerms:[]},{title:"fab fa-mailchimp",searchTerms:[]},{title:"fas fa-male",searchTerms:["human","man","person","profile","user"]},{title:"fab fa-mandalorian",searchTerms:[]},{title:"fas fa-map",searchTerms:["coordinates","location","paper","place","travel"]},{title:"far fa-map",searchTerms:["coordinates","location","paper","place","travel"]},{title:"fas fa-map-marked",searchTerms:["address","coordinates","destination","gps","localize","location","map","paper","pin","place","point of interest","position","route","travel","where"]},{title:"fas fa-map-marked-alt",searchTerms:["address","coordinates","destination","gps","localize","location","map","paper","pin","place","point of interest","position","route","travel","where"]},{title:"fas fa-map-marker",searchTerms:["address","coordinates","gps","localize","location","map","pin","place","position","travel","where"]},{title:"fas fa-map-marker-alt",searchTerms:["address","coordinates","gps","localize","location","map","pin","place","position","travel","where"]},{title:"fas fa-map-pin",searchTerms:["address","coordinates","gps","localize","location","map","marker","place","position","travel","where"]},{title:"fas fa-map-signs",searchTerms:[]},{title:"fab fa-markdown",searchTerms:[]},{title:"fas fa-marker",searchTerms:["edit","sharpie","update","write"]},{title:"fas fa-mars",searchTerms:["male"]},{title:"fas fa-mars-double",searchTerms:[]},{title:"fas fa-mars-stroke",searchTerms:[]},{title:"fas fa-mars-stroke-h",searchTerms:[]},{title:"fas fa-mars-stroke-v",searchTerms:[]},{title:"fas fa-mask",searchTerms:["costume","disguise","halloween","holiday","secret","super hero"]},{title:"fab fa-mastodon",searchTerms:[]},{title:"fab fa-maxcdn",searchTerms:[]},{title:"fas fa-medal",searchTerms:[]},{title:"fab fa-medapps",searchTerms:[]},{title:"fab fa-medium",searchTerms:[]},{title:"fab fa-medium-m",searchTerms:[]},{title:"fas fa-medkit",searchTerms:["first aid","firstaid","health","help","support"]},{title:"fab fa-medrt",searchTerms:[]},{title:"fab fa-meetup",searchTerms:[]},{title:"fab fa-megaport",searchTerms:[]},{title:"fas fa-meh",searchTerms:["emoticon","face","neutral","rating"]},{title:"far fa-meh",searchTerms:["emoticon","face","neutral","rating"]},{title:"fas fa-meh-blank",searchTerms:["emoticon","face","neutral","rating"]},{title:"far fa-meh-blank",searchTerms:["emoticon","face","neutral","rating"]},{title:"fas fa-meh-rolling-eyes",searchTerms:["emoticon","face","neutral","rating"]},{title:"far fa-meh-rolling-eyes",searchTerms:["emoticon","face","neutral","rating"]},{title:"fas fa-memory",searchTerms:["DIMM","RAM"]},{title:"fas fa-menorah",searchTerms:["candle","hanukkah","jewish","judaism","light"]},{title:"fas fa-mercury",searchTerms:["transgender"]},{title:"fas fa-meteor",searchTerms:[]},{title:"fas fa-microchip",searchTerms:["cpu","processor"]},{title:"fas fa-microphone",searchTerms:["record","sound","voice"]},{title:"fas fa-microphone-alt",searchTerms:["record","sound","voice"]},{title:"fas fa-microphone-alt-slash",searchTerms:["disable","mute","record","sound","voice"]},{title:"fas fa-microphone-slash",searchTerms:["disable","mute","record","sound","voice"]},{title:"fas fa-microscope",searchTerms:[]},{title:"fab fa-microsoft",searchTerms:[]},{title:"fas fa-minus",searchTerms:["collapse","delete","hide","minify","negative","remove","trash"]},{title:"fas fa-minus-circle",searchTerms:["delete","hide","negative","remove","trash"]},{title:"fas fa-minus-square",searchTerms:["collapse","delete","hide","minify","negative","remove","trash"]},{title:"far fa-minus-square",searchTerms:["collapse","delete","hide","minify","negative","remove","trash"]},{title:"fab fa-mix",searchTerms:[]},{title:"fab fa-mixcloud",searchTerms:[]},{title:"fab fa-mizuni",searchTerms:[]},{title:"fas fa-mobile",searchTerms:["apple","call","cell phone","cellphone","device","iphone","number","screen","telephone","text"]},{title:"fas fa-mobile-alt",searchTerms:["apple","call","cell phone","cellphone","device","iphone","number","screen","telephone","text"]},{title:"fab fa-modx",searchTerms:[]},{title:"fab fa-monero",searchTerms:[]},{title:"fas fa-money-bill",searchTerms:["buy","cash","checkout","money","payment","price","purchase"]},{title:"fas fa-money-bill-alt",searchTerms:["buy","cash","checkout","money","payment","price","purchase"]},{title:"far fa-money-bill-alt",searchTerms:["buy","cash","checkout","money","payment","price","purchase"]},{title:"fas fa-money-bill-wave",searchTerms:[]},{title:"fas fa-money-bill-wave-alt",searchTerms:[]},{title:"fas fa-money-check",searchTerms:["bank check","cheque"]},{title:"fas fa-money-check-alt",searchTerms:["bank check","cheque"]},{title:"fas fa-monument",searchTerms:["building","historic","memoroable"]},{title:"fas fa-moon",searchTerms:["contrast","crescent","darker","lunar","night"]},{title:"far fa-moon",searchTerms:["contrast","crescent","darker","lunar","night"]},{title:"fas fa-mortar-pestle",searchTerms:["crush","culinary","grind","medical","mix","spices"]},{title:"fas fa-mosque",searchTerms:["building","islam","muslim"]},{title:"fas fa-motorcycle",searchTerms:["bike","machine","transportation","vehicle"]},{title:"fas fa-mountain",searchTerms:[]},{title:"fas fa-mouse-pointer",searchTerms:["select"]},{title:"fas fa-music",searchTerms:["note","sound"]},{title:"fab fa-napster",searchTerms:[]},{title:"fab fa-neos",searchTerms:[]},{title:"fas fa-network-wired",searchTerms:[]},{title:"fas fa-neuter",searchTerms:[]},{title:"fas fa-newspaper",searchTerms:["article","press"]},{title:"far fa-newspaper",searchTerms:["article","press"]},{title:"fab fa-nimblr",searchTerms:[]},{title:"fab fa-nintendo-switch",searchTerms:[]},{title:"fab fa-node",searchTerms:[]},{title:"fab fa-node-js",searchTerms:[]},{title:"fas fa-not-equal",searchTerms:[]},{title:"fas fa-notes-medical",searchTerms:[]},{title:"fab fa-npm",searchTerms:[]},{title:"fab fa-ns8",searchTerms:[]},{title:"fab fa-nutritionix",searchTerms:[]},{title:"fas fa-object-group",searchTerms:["design"]},{title:"far fa-object-group",searchTerms:["design"]},{title:"fas fa-object-ungroup",searchTerms:["design"]},{title:"far fa-object-ungroup",searchTerms:["design"]},{title:"fab fa-odnoklassniki",searchTerms:[]},{title:"fab fa-odnoklassniki-square",searchTerms:[]},{title:"fas fa-oil-can",searchTerms:[]},{title:"fab fa-old-republic",searchTerms:["politics","star wars"]},{title:"fas fa-om",searchTerms:["buddhism","hinduism","jainism","mantra"]},{title:"fab fa-opencart",searchTerms:[]},{title:"fab fa-openid",searchTerms:[]},{title:"fab fa-opera",searchTerms:[]},{title:"fab fa-optin-monster",searchTerms:[]},{title:"fab fa-osi",searchTerms:[]},{title:"fas fa-otter",searchTerms:["fauna","mammmal"]},{title:"fas fa-outdent",searchTerms:[]},{title:"fab fa-page4",searchTerms:[]},{title:"fab fa-pagelines",searchTerms:["eco","flora","leaf","leaves","nature","plant","tree"]},{title:"fas fa-paint-brush",searchTerms:[]},{title:"fas fa-paint-roller",searchTerms:["brush","painting","tool"]},{title:"fas fa-palette",searchTerms:["colors","painting"]},{title:"fab fa-palfed",searchTerms:[]},{title:"fas fa-pallet",searchTerms:[]},{title:"fas fa-paper-plane",searchTerms:[]},{title:"far fa-paper-plane",searchTerms:[]},{title:"fas fa-paperclip",searchTerms:["attachment"]},{title:"fas fa-parachute-box",searchTerms:["aid","assistance","rescue","supplies"]},{title:"fas fa-paragraph",searchTerms:[]},{title:"fas fa-parking",searchTerms:[]},{title:"fas fa-passport",searchTerms:["document","identification","issued"]},{title:"fas fa-pastafarianism",searchTerms:["agnosticism","atheism","flying spaghetti monster","fsm"]},{title:"fas fa-paste",searchTerms:["clipboard","copy"]},{title:"fab fa-patreon",searchTerms:[]},{title:"fas fa-pause",searchTerms:["wait"]},{title:"fas fa-pause-circle",searchTerms:[]},{title:"far fa-pause-circle",searchTerms:[]},{title:"fas fa-paw",searchTerms:["animal","pet"]},{title:"fab fa-paypal",searchTerms:[]},{title:"fas fa-peace",searchTerms:[]},{title:"fas fa-pen",searchTerms:["design","edit","update","write"]},{title:"fas fa-pen-alt",searchTerms:["design","edit","update","write"]},{title:"fas fa-pen-fancy",searchTerms:["design","edit","fountain pen","update","write"]},{title:"fas fa-pen-nib",searchTerms:["design","edit","fountain pen","update","write"]},{title:"fas fa-pen-square",searchTerms:["edit","pencil-square","update","write"]},{title:"fas fa-pencil-alt",searchTerms:["design","edit","pencil","update","write"]},{title:"fas fa-pencil-ruler",searchTerms:[]},{title:"fab fa-penny-arcade",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","pax","tabletop"]},{title:"fas fa-people-carry",searchTerms:["movers"]},{title:"fas fa-percent",searchTerms:[]},{title:"fas fa-percentage",searchTerms:[]},{title:"fab fa-periscope",searchTerms:[]},{title:"fas fa-person-booth",searchTerms:["changing","changing room","election","human","person","vote","voting"]},{title:"fab fa-phabricator",searchTerms:[]},{title:"fab fa-phoenix-framework",searchTerms:[]},{title:"fab fa-phoenix-squadron",searchTerms:[]},{title:"fas fa-phone",searchTerms:["call","earphone","number","support","telephone","voice"]},{title:"fas fa-phone-slash",searchTerms:[]},{title:"fas fa-phone-square",searchTerms:["call","number","support","telephone","voice"]},{title:"fas fa-phone-volume",searchTerms:["telephone","volume-control-phone"]},{title:"fab fa-php",searchTerms:[]},{title:"fab fa-pied-piper",searchTerms:[]},{title:"fab fa-pied-piper-alt",searchTerms:[]},{title:"fab fa-pied-piper-hat",searchTerms:["clothing"]},{title:"fab fa-pied-piper-pp",searchTerms:[]},{title:"fas fa-piggy-bank",searchTerms:["save","savings"]},{title:"fas fa-pills",searchTerms:["drugs","medicine"]},{title:"fab fa-pinterest",searchTerms:[]},{title:"fab fa-pinterest-p",searchTerms:[]},{title:"fab fa-pinterest-square",searchTerms:[]},{title:"fas fa-place-of-worship",searchTerms:[]},{title:"fas fa-plane",searchTerms:["airplane","destination","fly","location","mode","travel","trip"]},{title:"fas fa-plane-arrival",searchTerms:["airplane","arriving","destination","fly","land","landing","location","mode","travel","trip"]},{title:"fas fa-plane-departure",searchTerms:["airplane","departing","destination","fly","location","mode","take off","taking off","travel","trip"]},{title:"fas fa-play",searchTerms:["music","playing","sound","start"]},{title:"fas fa-play-circle",searchTerms:["playing","start"]},{title:"far fa-play-circle",searchTerms:["playing","start"]},{title:"fab fa-playstation",searchTerms:[]},{title:"fas fa-plug",searchTerms:["connect","online","power"]},{title:"fas fa-plus",searchTerms:["add","create","expand","new","positive"]},{title:"fas fa-plus-circle",searchTerms:["add","create","expand","new","positive"]},{title:"fas fa-plus-square",searchTerms:["add","create","expand","new","positive"]},{title:"far fa-plus-square",searchTerms:["add","create","expand","new","positive"]},{title:"fas fa-podcast",searchTerms:[]},{title:"fas fa-poll",searchTerms:["results","survey","vote","voting"]},{title:"fas fa-poll-h",searchTerms:["results","survey","vote","voting"]},{title:"fas fa-poo",searchTerms:[]},{title:"fas fa-poo-storm",searchTerms:["mess","poop","shit"]},{title:"fas fa-poop",searchTerms:[]},{title:"fas fa-portrait",searchTerms:[]},{title:"fas fa-pound-sign",searchTerms:["gbp"]},{title:"fas fa-power-off",searchTerms:["on","reboot","restart"]},{title:"fas fa-pray",searchTerms:[]},{title:"fas fa-praying-hands",searchTerms:[]},{title:"fas fa-prescription",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-prescription-bottle",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-prescription-bottle-alt",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-print",searchTerms:[]},{title:"fas fa-procedures",searchTerms:[]},{title:"fab fa-product-hunt",searchTerms:[]},{title:"fas fa-project-diagram",searchTerms:[]},{title:"fab fa-pushed",searchTerms:[]},{title:"fas fa-puzzle-piece",searchTerms:["add-on","addon","section"]},{title:"fab fa-python",searchTerms:[]},{title:"fab fa-qq",searchTerms:[]},{title:"fas fa-qrcode",searchTerms:["scan"]},{title:"fas fa-question",searchTerms:["help","information","support","unknown"]},{title:"fas fa-question-circle",searchTerms:["help","information","support","unknown"]},{title:"far fa-question-circle",searchTerms:["help","information","support","unknown"]},{title:"fas fa-quidditch",searchTerms:[]},{title:"fab fa-quinscape",searchTerms:[]},{title:"fab fa-quora",searchTerms:[]},{title:"fas fa-quote-left",searchTerms:[]},{title:"fas fa-quote-right",searchTerms:[]},{title:"fas fa-quran",searchTerms:["book","islam","muslim"]},{title:"fab fa-r-project",searchTerms:[]},{title:"fas fa-rainbow",searchTerms:[]},{title:"fas fa-random",searchTerms:["shuffle","sort"]},{title:"fab fa-ravelry",searchTerms:[]},{title:"fab fa-react",searchTerms:[]},{title:"fab fa-reacteurope",searchTerms:[]},{title:"fab fa-readme",searchTerms:[]},{title:"fab fa-rebel",searchTerms:[]},{title:"fas fa-receipt",searchTerms:["check","invoice","table"]},{title:"fas fa-recycle",searchTerms:[]},{title:"fab fa-red-river",searchTerms:[]},{title:"fab fa-reddit",searchTerms:[]},{title:"fab fa-reddit-alien",searchTerms:[]},{title:"fab fa-reddit-square",searchTerms:[]},{title:"fas fa-redo",searchTerms:["forward","refresh","reload","repeat"]},{title:"fas fa-redo-alt",searchTerms:["forward","refresh","reload","repeat"]},{title:"fas fa-registered",searchTerms:[]},{title:"far fa-registered",searchTerms:[]},{title:"fab fa-renren",searchTerms:[]},{title:"fas fa-reply",searchTerms:[]},{title:"fas fa-reply-all",searchTerms:[]},{title:"fab fa-replyd",searchTerms:[]},{title:"fas fa-republican",searchTerms:["american","conservative","election","elephant","politics","republican party","right","right-wing","usa"]},{title:"fab fa-researchgate",searchTerms:[]},{title:"fab fa-resolving",searchTerms:[]},{title:"fas fa-retweet",searchTerms:["refresh","reload","share","swap"]},{title:"fab fa-rev",searchTerms:[]},{title:"fas fa-ribbon",searchTerms:["badge","cause","lapel","pin"]},{title:"fas fa-ring",searchTerms:["Dungeons & Dragons","Gollum","band","binding","d&d","dnd","fantasy","jewelry","precious"]},{title:"fas fa-road",searchTerms:["street"]},{title:"fas fa-robot",searchTerms:[]},{title:"fas fa-rocket",searchTerms:["app"]},{title:"fab fa-rocketchat",searchTerms:[]},{title:"fab fa-rockrms",searchTerms:[]},{title:"fas fa-route",searchTerms:[]},{title:"fas fa-rss",searchTerms:["blog"]},{title:"fas fa-rss-square",searchTerms:["blog","feed"]},{title:"fas fa-ruble-sign",searchTerms:["rub"]},{title:"fas fa-ruler",searchTerms:[]},{title:"fas fa-ruler-combined",searchTerms:[]},{title:"fas fa-ruler-horizontal",searchTerms:[]},{title:"fas fa-ruler-vertical",searchTerms:[]},{title:"fas fa-running",searchTerms:["jog","sprint"]},{title:"fas fa-rupee-sign",searchTerms:["indian","inr"]},{title:"fas fa-sad-cry",searchTerms:["emoticon","face","tear","tears"]},{title:"far fa-sad-cry",searchTerms:["emoticon","face","tear","tears"]},{title:"fas fa-sad-tear",searchTerms:["emoticon","face","tear","tears"]},{title:"far fa-sad-tear",searchTerms:["emoticon","face","tear","tears"]},{title:"fab fa-safari",searchTerms:["browser"]},{title:"fab fa-sass",searchTerms:[]},{title:"fas fa-save",searchTerms:["floppy","floppy-o"]},{title:"far fa-save",searchTerms:["floppy","floppy-o"]},{title:"fab fa-schlix",searchTerms:[]},{title:"fas fa-school",searchTerms:[]},{title:"fas fa-screwdriver",searchTerms:["admin","fix","repair","settings","tool"]},{title:"fab fa-scribd",searchTerms:[]},{title:"fas fa-scroll",searchTerms:["Dungeons & Dragons","announcement","d&d","dnd","fantasy","paper"]},{title:"fas fa-search",searchTerms:["bigger","enlarge","magnify","preview","zoom"]},{title:"fas fa-search-dollar",searchTerms:[]},{title:"fas fa-search-location",searchTerms:[]},{title:"fas fa-search-minus",searchTerms:["minify","negative","smaller","zoom","zoom out"]},{title:"fas fa-search-plus",searchTerms:["bigger","enlarge","magnify","positive","zoom","zoom in"]},{title:"fab fa-searchengin",searchTerms:[]},{title:"fas fa-seedling",searchTerms:[]},{title:"fab fa-sellcast",searchTerms:["eercast"]},{title:"fab fa-sellsy",searchTerms:[]},{title:"fas fa-server",searchTerms:["cpu"]},{title:"fab fa-servicestack",searchTerms:[]},{title:"fas fa-shapes",searchTerms:["circle","square","triangle"]},{title:"fas fa-share",searchTerms:[]},{title:"fas fa-share-alt",searchTerms:[]},{title:"fas fa-share-alt-square",searchTerms:[]},{title:"fas fa-share-square",searchTerms:["send","social"]},{title:"far fa-share-square",searchTerms:["send","social"]},{title:"fas fa-shekel-sign",searchTerms:["ils"]},{title:"fas fa-shield-alt",searchTerms:["achievement","award","block","defend","security","winner"]},{title:"fas fa-ship",searchTerms:["boat","sea"]},{title:"fas fa-shipping-fast",searchTerms:[]},{title:"fab fa-shirtsinbulk",searchTerms:[]},{title:"fas fa-shoe-prints",searchTerms:["feet","footprints","steps"]},{title:"fas fa-shopping-bag",searchTerms:[]},{title:"fas fa-shopping-basket",searchTerms:[]},{title:"fas fa-shopping-cart",searchTerms:["buy","checkout","payment","purchase"]},{title:"fab fa-shopware",searchTerms:[]},{title:"fas fa-shower",searchTerms:[]},{title:"fas fa-shuttle-van",searchTerms:["machine","public-transportation","transportation","vehicle"]},{title:"fas fa-sign",searchTerms:[]},{title:"fas fa-sign-in-alt",searchTerms:["arrow","enter","join","log in","login","sign in","sign up","sign-in","signin","signup"]},{title:"fas fa-sign-language",searchTerms:[]},{title:"fas fa-sign-out-alt",searchTerms:["arrow","exit","leave","log out","logout","sign-out"]},{title:"fas fa-signal",searchTerms:["bars","graph","online","status"]},{title:"fas fa-signature",searchTerms:["John Hancock","cursive","name","writing"]},{title:"fab fa-simplybuilt",searchTerms:[]},{title:"fab fa-sistrix",searchTerms:[]},{title:"fas fa-sitemap",searchTerms:["directory","hierarchy","ia","information architecture","organization"]},{title:"fab fa-sith",searchTerms:[]},{title:"fas fa-skull",searchTerms:["bones","skeleton","yorick"]},{title:"fas fa-skull-crossbones",searchTerms:["Dungeons & Dragons","alert","bones","d&d","danger","dead","deadly","death","dnd","fantasy","halloween","holiday","jolly-roger","pirate","poison","skeleton","warning"]},{title:"fab fa-skyatlas",searchTerms:[]},{title:"fab fa-skype",searchTerms:[]},{title:"fab fa-slack",searchTerms:["anchor","hash","hashtag"]},{title:"fab fa-slack-hash",searchTerms:["anchor","hash","hashtag"]},{title:"fas fa-slash",searchTerms:[]},{title:"fas fa-sliders-h",searchTerms:["settings","sliders"]},{title:"fab fa-slideshare",searchTerms:[]},{title:"fas fa-smile",searchTerms:["approve","emoticon","face","happy","rating","satisfied"]},{title:"far fa-smile",searchTerms:["approve","emoticon","face","happy","rating","satisfied"]},{title:"fas fa-smile-beam",searchTerms:["emoticon","face","happy","positive"]},{title:"far fa-smile-beam",searchTerms:["emoticon","face","happy","positive"]},{title:"fas fa-smile-wink",searchTerms:["emoticon","face","happy"]},{title:"far fa-smile-wink",searchTerms:["emoticon","face","happy"]},{title:"fas fa-smog",searchTerms:["dragon"]},{title:"fas fa-smoking",searchTerms:["cigarette","nicotine","smoking status"]},{title:"fas fa-smoking-ban",searchTerms:["no smoking","non-smoking"]},{title:"fab fa-snapchat",searchTerms:[]},{title:"fab fa-snapchat-ghost",searchTerms:[]},{title:"fab fa-snapchat-square",searchTerms:[]},{title:"fas fa-snowflake",searchTerms:["precipitation","seasonal","winter"]},{title:"far fa-snowflake",searchTerms:["precipitation","seasonal","winter"]},{title:"fas fa-socks",searchTerms:["business socks","business time","flight of the conchords","wednesday"]},{title:"fas fa-solar-panel",searchTerms:["clean","eco-friendly","energy","green","sun"]},{title:"fas fa-sort",searchTerms:["order"]},{title:"fas fa-sort-alpha-down",searchTerms:["sort-alpha-asc"]},{title:"fas fa-sort-alpha-up",searchTerms:["sort-alpha-desc"]},{title:"fas fa-sort-amount-down",searchTerms:["sort-amount-asc"]},{title:"fas fa-sort-amount-up",searchTerms:["sort-amount-desc"]},{title:"fas fa-sort-down",searchTerms:["arrow","descending","sort-desc"]},{title:"fas fa-sort-numeric-down",searchTerms:["numbers","sort-numeric-asc"]},{title:"fas fa-sort-numeric-up",searchTerms:["numbers","sort-numeric-desc"]},{title:"fas fa-sort-up",searchTerms:["arrow","ascending","sort-asc"]},{title:"fab fa-soundcloud",searchTerms:[]},{title:"fas fa-spa",searchTerms:["flora","mindfullness","plant","wellness"]},{title:"fas fa-space-shuttle",searchTerms:["astronaut","machine","nasa","rocket","transportation"]},{title:"fab fa-speakap",searchTerms:[]},{title:"fas fa-spider",searchTerms:["arachnid","bug","charlotte","crawl","eight","halloween","holiday"]},{title:"fas fa-spinner",searchTerms:["loading","progress"]},{title:"fas fa-splotch",searchTerms:[]},{title:"fab fa-spotify",searchTerms:[]},{title:"fas fa-spray-can",searchTerms:[]},{title:"fas fa-square",searchTerms:["block","box"]},{title:"far fa-square",searchTerms:["block","box"]},{title:"fas fa-square-full",searchTerms:[]},{title:"fas fa-square-root-alt",searchTerms:[]},{title:"fab fa-squarespace",searchTerms:[]},{title:"fab fa-stack-exchange",searchTerms:[]},{title:"fab fa-stack-overflow",searchTerms:[]},{title:"fas fa-stamp",searchTerms:[]},{title:"fas fa-star",searchTerms:["achievement","award","favorite","important","night","rating","score"]},{title:"far fa-star",searchTerms:["achievement","award","favorite","important","night","rating","score"]},{title:"fas fa-star-and-crescent",searchTerms:["islam","muslim"]},{title:"fas fa-star-half",searchTerms:["achievement","award","rating","score","star-half-empty","star-half-full"]},{title:"far fa-star-half",searchTerms:["achievement","award","rating","score","star-half-empty","star-half-full"]},{title:"fas fa-star-half-alt",searchTerms:["achievement","award","rating","score","star-half-empty","star-half-full"]},{title:"fas fa-star-of-david",searchTerms:["jewish","judaism"]},{title:"fas fa-star-of-life",searchTerms:[]},{title:"fab fa-staylinked",searchTerms:[]},{title:"fab fa-steam",searchTerms:[]},{title:"fab fa-steam-square",searchTerms:[]},{title:"fab fa-steam-symbol",searchTerms:[]},{title:"fas fa-step-backward",searchTerms:["beginning","first","previous","rewind","start"]},{title:"fas fa-step-forward",searchTerms:["end","last","next"]},{title:"fas fa-stethoscope",searchTerms:[]},{title:"fab fa-sticker-mule",searchTerms:[]},{title:"fas fa-sticky-note",searchTerms:[]},{title:"far fa-sticky-note",searchTerms:[]},{title:"fas fa-stop",searchTerms:["block","box","square"]},{title:"fas fa-stop-circle",searchTerms:[]},{title:"far fa-stop-circle",searchTerms:[]},{title:"fas fa-stopwatch",searchTerms:["time"]},{title:"fas fa-store",searchTerms:[]},{title:"fas fa-store-alt",searchTerms:[]},{title:"fab fa-strava",searchTerms:[]},{title:"fas fa-stream",searchTerms:[]},{title:"fas fa-street-view",searchTerms:["map"]},{title:"fas fa-strikethrough",searchTerms:[]},{title:"fab fa-stripe",searchTerms:[]},{title:"fab fa-stripe-s",searchTerms:[]},{title:"fas fa-stroopwafel",searchTerms:["dessert","food","sweets","waffle"]},{title:"fab fa-studiovinari",searchTerms:[]},{title:"fab fa-stumbleupon",searchTerms:[]},{title:"fab fa-stumbleupon-circle",searchTerms:[]},{title:"fas fa-subscript",searchTerms:[]},{title:"fas fa-subway",searchTerms:["machine","railway","train","transportation","vehicle"]},{title:"fas fa-suitcase",searchTerms:["baggage","luggage","move","suitcase","travel","trip"]},{title:"fas fa-suitcase-rolling",searchTerms:[]},{title:"fas fa-sun",searchTerms:["brighten","contrast","day","lighter","sol","solar","star","weather"]},{title:"far fa-sun",searchTerms:["brighten","contrast","day","lighter","sol","solar","star","weather"]},{title:"fab fa-superpowers",searchTerms:[]},{title:"fas fa-superscript",searchTerms:["exponential"]},{title:"fab fa-supple",searchTerms:[]},{title:"fas fa-surprise",searchTerms:["emoticon","face","shocked"]},{title:"far fa-surprise",searchTerms:["emoticon","face","shocked"]},{title:"fas fa-swatchbook",searchTerms:[]},{title:"fas fa-swimmer",searchTerms:["athlete","head","man","person","water"]},{title:"fas fa-swimming-pool",searchTerms:["ladder","recreation","water"]},{title:"fas fa-synagogue",searchTerms:["building","jewish","judaism","star of david","temple"]},{title:"fas fa-sync",searchTerms:["exchange","refresh","reload","rotate","swap"]},{title:"fas fa-sync-alt",searchTerms:["refresh","reload","rotate"]},{title:"fas fa-syringe",searchTerms:["immunizations","needle"]},{title:"fas fa-table",searchTerms:["data","excel","spreadsheet"]},{title:"fas fa-table-tennis",searchTerms:[]},{title:"fas fa-tablet",searchTerms:["apple","device","ipad","kindle","screen"]},{title:"fas fa-tablet-alt",searchTerms:["apple","device","ipad","kindle","screen"]},{title:"fas fa-tablets",searchTerms:["drugs","medicine"]},{title:"fas fa-tachometer-alt",searchTerms:["dashboard","tachometer"]},{title:"fas fa-tag",searchTerms:["label"]},{title:"fas fa-tags",searchTerms:["labels"]},{title:"fas fa-tape",searchTerms:[]},{title:"fas fa-tasks",searchTerms:["downloading","downloads","loading","progress","settings"]},{title:"fas fa-taxi",searchTerms:["cab","cabbie","car","car service","lyft","machine","transportation","uber","vehicle"]},{title:"fab fa-teamspeak",searchTerms:[]},{title:"fas fa-teeth",searchTerms:[]},{title:"fas fa-teeth-open",searchTerms:[]},{title:"fab fa-telegram",searchTerms:[]},{title:"fab fa-telegram-plane",searchTerms:[]},{title:"fas fa-temperature-high",searchTerms:["mercury","thermometer","warm"]},{title:"fas fa-temperature-low",searchTerms:["cool","mercury","thermometer"]},{title:"fab fa-tencent-weibo",searchTerms:[]},{title:"fas fa-terminal",searchTerms:["code","command","console","prompt"]},{title:"fas fa-text-height",searchTerms:[]},{title:"fas fa-text-width",searchTerms:[]},{title:"fas fa-th",searchTerms:["blocks","boxes","grid","squares"]},{title:"fas fa-th-large",searchTerms:["blocks","boxes","grid","squares"]},{title:"fas fa-th-list",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"fab fa-the-red-yeti",searchTerms:[]},{title:"fas fa-theater-masks",searchTerms:[]},{title:"fab fa-themeco",searchTerms:[]},{title:"fab fa-themeisle",searchTerms:[]},{title:"fas fa-thermometer",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-empty",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-full",searchTerms:["fever","mercury","status","temperature"]},{title:"fas fa-thermometer-half",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-quarter",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-three-quarters",searchTerms:["mercury","status","temperature"]},{title:"fab fa-think-peaks",searchTerms:[]},{title:"fas fa-thumbs-down",searchTerms:["disagree","disapprove","dislike","hand","thumbs-o-down"]},{title:"far fa-thumbs-down",searchTerms:["disagree","disapprove","dislike","hand","thumbs-o-down"]},{title:"fas fa-thumbs-up",searchTerms:["agree","approve","favorite","hand","like","ok","okay","success","thumbs-o-up","yes","you got it dude"]},{title:"far fa-thumbs-up",searchTerms:["agree","approve","favorite","hand","like","ok","okay","success","thumbs-o-up","yes","you got it dude"]},{title:"fas fa-thumbtack",searchTerms:["coordinates","location","marker","pin","thumb-tack"]},{title:"fas fa-ticket-alt",searchTerms:["ticket"]},{title:"fas fa-times",searchTerms:["close","cross","error","exit","incorrect","notice","notification","notify","problem","wrong","x"]},{title:"fas fa-times-circle",searchTerms:["close","cross","exit","incorrect","notice","notification","notify","problem","wrong","x"]},{title:"far fa-times-circle",searchTerms:["close","cross","exit","incorrect","notice","notification","notify","problem","wrong","x"]},{title:"fas fa-tint",searchTerms:["drop","droplet","raindrop","waterdrop"]},{title:"fas fa-tint-slash",searchTerms:[]},{title:"fas fa-tired",searchTerms:["emoticon","face","grumpy"]},{title:"far fa-tired",searchTerms:["emoticon","face","grumpy"]},{title:"fas fa-toggle-off",searchTerms:["switch"]},{title:"fas fa-toggle-on",searchTerms:["switch"]},{title:"fas fa-toilet-paper",searchTerms:["bathroom","halloween","holiday","lavatory","prank","restroom","roll"]},{title:"fas fa-toolbox",searchTerms:["admin","container","fix","repair","settings","tools"]},{title:"fas fa-tooth",searchTerms:["bicuspid","dental","molar","mouth","teeth"]},{title:"fas fa-torah",searchTerms:["book","jewish","judaism"]},{title:"fas fa-torii-gate",searchTerms:["building","shintoism"]},{title:"fas fa-tractor",searchTerms:[]},{title:"fab fa-trade-federation",searchTerms:[]},{title:"fas fa-trademark",searchTerms:[]},{title:"fas fa-traffic-light",searchTerms:[]},{title:"fas fa-train",searchTerms:["bullet","locomotive","railway"]},{title:"fas fa-transgender",searchTerms:["intersex"]},{title:"fas fa-transgender-alt",searchTerms:[]},{title:"fas fa-trash",searchTerms:["delete","garbage","hide","remove"]},{title:"fas fa-trash-alt",searchTerms:["delete","garbage","hide","remove","trash","trash-o"]},{title:"far fa-trash-alt",searchTerms:["delete","garbage","hide","remove","trash","trash-o"]},{title:"fas fa-tree",searchTerms:["bark","fall","flora","forest","nature","plant","seasonal"]},{title:"fab fa-trello",searchTerms:[]},{title:"fab fa-tripadvisor",searchTerms:[]},{title:"fas fa-trophy",searchTerms:["achievement","award","cup","game","winner"]},{title:"fas fa-truck",searchTerms:["delivery","shipping"]},{title:"fas fa-truck-loading",searchTerms:[]},{title:"fas fa-truck-monster",searchTerms:[]},{title:"fas fa-truck-moving",searchTerms:[]},{title:"fas fa-truck-pickup",searchTerms:[]},{title:"fas fa-tshirt",searchTerms:["cloth","clothing"]},{title:"fas fa-tty",searchTerms:[]},{title:"fab fa-tumblr",searchTerms:[]},{title:"fab fa-tumblr-square",searchTerms:[]},{title:"fas fa-tv",searchTerms:["computer","display","monitor","television"]},{title:"fab fa-twitch",searchTerms:[]},{title:"fab fa-twitter",searchTerms:["social network","tweet"]},{title:"fab fa-twitter-square",searchTerms:["social network","tweet"]},{title:"fab fa-typo3",searchTerms:[]},{title:"fab fa-uber",searchTerms:[]},{title:"fab fa-uikit",searchTerms:[]},{title:"fas fa-umbrella",searchTerms:["protection","rain"]},{title:"fas fa-umbrella-beach",searchTerms:["protection","recreation","sun"]},{title:"fas fa-underline",searchTerms:[]},{title:"fas fa-undo",searchTerms:["back","control z","exchange","oops","return","rotate","swap"]},{title:"fas fa-undo-alt",searchTerms:["back","control z","exchange","oops","return","swap"]},{title:"fab fa-uniregistry",searchTerms:[]},{title:"fas fa-universal-access",searchTerms:[]},{title:"fas fa-university",searchTerms:["bank","institution"]},{title:"fas fa-unlink",searchTerms:["chain","chain-broken","remove"]},{title:"fas fa-unlock",searchTerms:["admin","lock","password","protect"]},{title:"fas fa-unlock-alt",searchTerms:["admin","lock","password","protect"]},{title:"fab fa-untappd",searchTerms:[]},{title:"fas fa-upload",searchTerms:["export","publish"]},{title:"fab fa-usb",searchTerms:[]},{title:"fas fa-user",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"far fa-user",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"fas fa-user-alt",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"fas fa-user-alt-slash",searchTerms:[]},{title:"fas fa-user-astronaut",searchTerms:["avatar","clothing","cosmonaut","space","suit"]},{title:"fas fa-user-check",searchTerms:[]},{title:"fas fa-user-circle",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"far fa-user-circle",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"fas fa-user-clock",searchTerms:[]},{title:"fas fa-user-cog",searchTerms:[]},{title:"fas fa-user-edit",searchTerms:[]},{title:"fas fa-user-friends",searchTerms:[]},{title:"fas fa-user-graduate",searchTerms:["cap","clothing","commencement","gown","graduation","student"]},{title:"fas fa-user-injured",searchTerms:["cast","ouch","sling"]},{title:"fas fa-user-lock",searchTerms:[]},{title:"fas fa-user-md",searchTerms:["doctor","job","medical","nurse","occupation","profile"]},{title:"fas fa-user-minus",searchTerms:["delete","negative","remove"]},{title:"fas fa-user-ninja",searchTerms:["assassin","avatar","dangerous","deadly","sneaky"]},{title:"fas fa-user-plus",searchTerms:["positive","sign up","signup"]},{title:"fas fa-user-secret",searchTerms:["clothing","coat","hat","incognito","privacy","spy","whisper"]},{title:"fas fa-user-shield",searchTerms:[]},{title:"fas fa-user-slash",searchTerms:["ban","remove"]},{title:"fas fa-user-tag",searchTerms:[]},{title:"fas fa-user-tie",searchTerms:["avatar","business","clothing","formal"]},{title:"fas fa-user-times",searchTerms:["archive","delete","remove","x"]},{title:"fas fa-users",searchTerms:["people","persons","profiles"]},{title:"fas fa-users-cog",searchTerms:[]},{title:"fab fa-ussunnah",searchTerms:[]},{title:"fas fa-utensil-spoon",searchTerms:["spoon"]},{title:"fas fa-utensils",searchTerms:["cutlery","dinner","eat","food","knife","restaurant","spoon"]},{title:"fab fa-vaadin",searchTerms:[]},{title:"fas fa-vector-square",searchTerms:["anchors","lines","object"]},{title:"fas fa-venus",searchTerms:["female"]},{title:"fas fa-venus-double",searchTerms:[]},{title:"fas fa-venus-mars",searchTerms:[]},{title:"fab fa-viacoin",searchTerms:[]},{title:"fab fa-viadeo",searchTerms:[]},{title:"fab fa-viadeo-square",searchTerms:[]},{title:"fas fa-vial",searchTerms:["test tube"]},{title:"fas fa-vials",searchTerms:["lab results","test tubes"]},{title:"fab fa-viber",searchTerms:[]},{title:"fas fa-video",searchTerms:["camera","film","movie","record","video-camera"]},{title:"fas fa-video-slash",searchTerms:[]},{title:"fas fa-vihara",searchTerms:["buddhism","buddhist","building","monastery"]},{title:"fab fa-vimeo",searchTerms:[]},{title:"fab fa-vimeo-square",searchTerms:[]},{title:"fab fa-vimeo-v",searchTerms:["vimeo"]},{title:"fab fa-vine",searchTerms:[]},{title:"fab fa-vk",searchTerms:[]},{title:"fab fa-vnv",searchTerms:[]},{title:"fas fa-volleyball-ball",searchTerms:[]},{title:"fas fa-volume-down",searchTerms:["audio","lower","music","quieter","sound","speaker"]},{title:"fas fa-volume-mute",searchTerms:[]},{title:"fas fa-volume-off",searchTerms:["audio","music","mute","sound"]},{title:"fas fa-volume-up",searchTerms:["audio","higher","louder","music","sound","speaker"]},{title:"fas fa-vote-yea",searchTerms:["accept","cast","election","politics","positive","yes"]},{title:"fas fa-vr-cardboard",searchTerms:["google","reality","virtual"]},{title:"fab fa-vuejs",searchTerms:[]},{title:"fas fa-walking",searchTerms:[]},{title:"fas fa-wallet",searchTerms:[]},{title:"fas fa-warehouse",searchTerms:[]},{title:"fas fa-water",searchTerms:[]},{title:"fab fa-weebly",searchTerms:[]},{title:"fab fa-weibo",searchTerms:[]},{title:"fas fa-weight",searchTerms:["measurement","scale","weight"]},{title:"fas fa-weight-hanging",searchTerms:["anvil","heavy","measurement"]},{title:"fab fa-weixin",searchTerms:[]},{title:"fab fa-whatsapp",searchTerms:[]},{title:"fab fa-whatsapp-square",searchTerms:[]},{title:"fas fa-wheelchair",searchTerms:["handicap","person"]},{title:"fab fa-whmcs",searchTerms:[]},{title:"fas fa-wifi",searchTerms:[]},{title:"fab fa-wikipedia-w",searchTerms:[]},{title:"fas fa-wind",searchTerms:["air","blow","breeze","fall","seasonal"]},{title:"fas fa-window-close",searchTerms:[]},{title:"far fa-window-close",searchTerms:[]},{title:"fas fa-window-maximize",searchTerms:[]},{title:"far fa-window-maximize",searchTerms:[]},{title:"fas fa-window-minimize",searchTerms:[]},{title:"far fa-window-minimize",searchTerms:[]},{title:"fas fa-window-restore",searchTerms:[]},{title:"far fa-window-restore",searchTerms:[]},{title:"fab fa-windows",searchTerms:["microsoft"]},{title:"fas fa-wine-bottle",searchTerms:["alcohol","beverage","drink","glass","grapes"]},{title:"fas fa-wine-glass",searchTerms:["alcohol","beverage","drink","grapes"]},{title:"fas fa-wine-glass-alt",searchTerms:["alcohol","beverage","drink","grapes"]},{title:"fab fa-wix",searchTerms:[]},{title:"fab fa-wizards-of-the-coast",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fab fa-wolf-pack-battalion",searchTerms:[]},{title:"fas fa-won-sign",searchTerms:["krw"]},{title:"fab fa-wordpress",searchTerms:[]},{title:"fab fa-wordpress-simple",searchTerms:[]},{title:"fab fa-wpbeginner",searchTerms:[]},{title:"fab fa-wpexplorer",searchTerms:[]},{title:"fab fa-wpforms",searchTerms:[]},{title:"fab fa-wpressr",searchTerms:["rendact"]},{title:"fas fa-wrench",searchTerms:["fix","settings","spanner","tool","update"]},{title:"fas fa-x-ray",searchTerms:["radiological images","radiology"]},{title:"fab fa-xbox",searchTerms:[]},{title:"fab fa-xing",searchTerms:[]},{title:"fab fa-xing-square",searchTerms:[]},{title:"fab fa-y-combinator",searchTerms:[]},{title:"fab fa-yahoo",searchTerms:[]},{title:"fab fa-yandex",searchTerms:[]},{title:"fab fa-yandex-international",searchTerms:[]},{title:"fab fa-yelp",searchTerms:[]},{title:"fas fa-yen-sign",searchTerms:["jpy","money"]},{title:"fas fa-yin-yang",searchTerms:["daoism","opposites","taoism"]},{title:"fab fa-yoast",searchTerms:[]},{title:"fab fa-youtube",searchTerms:["film","video","youtube-play","youtube-square"]},{title:"fab fa-youtube-square",searchTerms:[]},{title:"fab fa-zhihu",searchTerms:[]}]})});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$":
|
|
|
/*!**************************************************!*\
|
|
|
!*** ./node_modules/moment/locale sync ^\.\/.*$ ***!
|
|
|
\**************************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
var map = {
|
|
|
"./af": "./node_modules/moment/locale/af.js",
|
|
|
"./af.js": "./node_modules/moment/locale/af.js",
|
|
|
"./ar": "./node_modules/moment/locale/ar.js",
|
|
|
"./ar-dz": "./node_modules/moment/locale/ar-dz.js",
|
|
|
"./ar-dz.js": "./node_modules/moment/locale/ar-dz.js",
|
|
|
"./ar-kw": "./node_modules/moment/locale/ar-kw.js",
|
|
|
"./ar-kw.js": "./node_modules/moment/locale/ar-kw.js",
|
|
|
"./ar-ly": "./node_modules/moment/locale/ar-ly.js",
|
|
|
"./ar-ly.js": "./node_modules/moment/locale/ar-ly.js",
|
|
|
"./ar-ma": "./node_modules/moment/locale/ar-ma.js",
|
|
|
"./ar-ma.js": "./node_modules/moment/locale/ar-ma.js",
|
|
|
"./ar-sa": "./node_modules/moment/locale/ar-sa.js",
|
|
|
"./ar-sa.js": "./node_modules/moment/locale/ar-sa.js",
|
|
|
"./ar-tn": "./node_modules/moment/locale/ar-tn.js",
|
|
|
"./ar-tn.js": "./node_modules/moment/locale/ar-tn.js",
|
|
|
"./ar.js": "./node_modules/moment/locale/ar.js",
|
|
|
"./az": "./node_modules/moment/locale/az.js",
|
|
|
"./az.js": "./node_modules/moment/locale/az.js",
|
|
|
"./be": "./node_modules/moment/locale/be.js",
|
|
|
"./be.js": "./node_modules/moment/locale/be.js",
|
|
|
"./bg": "./node_modules/moment/locale/bg.js",
|
|
|
"./bg.js": "./node_modules/moment/locale/bg.js",
|
|
|
"./bm": "./node_modules/moment/locale/bm.js",
|
|
|
"./bm.js": "./node_modules/moment/locale/bm.js",
|
|
|
"./bn": "./node_modules/moment/locale/bn.js",
|
|
|
"./bn-bd": "./node_modules/moment/locale/bn-bd.js",
|
|
|
"./bn-bd.js": "./node_modules/moment/locale/bn-bd.js",
|
|
|
"./bn.js": "./node_modules/moment/locale/bn.js",
|
|
|
"./bo": "./node_modules/moment/locale/bo.js",
|
|
|
"./bo.js": "./node_modules/moment/locale/bo.js",
|
|
|
"./br": "./node_modules/moment/locale/br.js",
|
|
|
"./br.js": "./node_modules/moment/locale/br.js",
|
|
|
"./bs": "./node_modules/moment/locale/bs.js",
|
|
|
"./bs.js": "./node_modules/moment/locale/bs.js",
|
|
|
"./ca": "./node_modules/moment/locale/ca.js",
|
|
|
"./ca.js": "./node_modules/moment/locale/ca.js",
|
|
|
"./cs": "./node_modules/moment/locale/cs.js",
|
|
|
"./cs.js": "./node_modules/moment/locale/cs.js",
|
|
|
"./cv": "./node_modules/moment/locale/cv.js",
|
|
|
"./cv.js": "./node_modules/moment/locale/cv.js",
|
|
|
"./cy": "./node_modules/moment/locale/cy.js",
|
|
|
"./cy.js": "./node_modules/moment/locale/cy.js",
|
|
|
"./da": "./node_modules/moment/locale/da.js",
|
|
|
"./da.js": "./node_modules/moment/locale/da.js",
|
|
|
"./de": "./node_modules/moment/locale/de.js",
|
|
|
"./de-at": "./node_modules/moment/locale/de-at.js",
|
|
|
"./de-at.js": "./node_modules/moment/locale/de-at.js",
|
|
|
"./de-ch": "./node_modules/moment/locale/de-ch.js",
|
|
|
"./de-ch.js": "./node_modules/moment/locale/de-ch.js",
|
|
|
"./de.js": "./node_modules/moment/locale/de.js",
|
|
|
"./dv": "./node_modules/moment/locale/dv.js",
|
|
|
"./dv.js": "./node_modules/moment/locale/dv.js",
|
|
|
"./el": "./node_modules/moment/locale/el.js",
|
|
|
"./el.js": "./node_modules/moment/locale/el.js",
|
|
|
"./en-au": "./node_modules/moment/locale/en-au.js",
|
|
|
"./en-au.js": "./node_modules/moment/locale/en-au.js",
|
|
|
"./en-ca": "./node_modules/moment/locale/en-ca.js",
|
|
|
"./en-ca.js": "./node_modules/moment/locale/en-ca.js",
|
|
|
"./en-gb": "./node_modules/moment/locale/en-gb.js",
|
|
|
"./en-gb.js": "./node_modules/moment/locale/en-gb.js",
|
|
|
"./en-ie": "./node_modules/moment/locale/en-ie.js",
|
|
|
"./en-ie.js": "./node_modules/moment/locale/en-ie.js",
|
|
|
"./en-il": "./node_modules/moment/locale/en-il.js",
|
|
|
"./en-il.js": "./node_modules/moment/locale/en-il.js",
|
|
|
"./en-in": "./node_modules/moment/locale/en-in.js",
|
|
|
"./en-in.js": "./node_modules/moment/locale/en-in.js",
|
|
|
"./en-nz": "./node_modules/moment/locale/en-nz.js",
|
|
|
"./en-nz.js": "./node_modules/moment/locale/en-nz.js",
|
|
|
"./en-sg": "./node_modules/moment/locale/en-sg.js",
|
|
|
"./en-sg.js": "./node_modules/moment/locale/en-sg.js",
|
|
|
"./eo": "./node_modules/moment/locale/eo.js",
|
|
|
"./eo.js": "./node_modules/moment/locale/eo.js",
|
|
|
"./es": "./node_modules/moment/locale/es.js",
|
|
|
"./es-do": "./node_modules/moment/locale/es-do.js",
|
|
|
"./es-do.js": "./node_modules/moment/locale/es-do.js",
|
|
|
"./es-mx": "./node_modules/moment/locale/es-mx.js",
|
|
|
"./es-mx.js": "./node_modules/moment/locale/es-mx.js",
|
|
|
"./es-us": "./node_modules/moment/locale/es-us.js",
|
|
|
"./es-us.js": "./node_modules/moment/locale/es-us.js",
|
|
|
"./es.js": "./node_modules/moment/locale/es.js",
|
|
|
"./et": "./node_modules/moment/locale/et.js",
|
|
|
"./et.js": "./node_modules/moment/locale/et.js",
|
|
|
"./eu": "./node_modules/moment/locale/eu.js",
|
|
|
"./eu.js": "./node_modules/moment/locale/eu.js",
|
|
|
"./fa": "./node_modules/moment/locale/fa.js",
|
|
|
"./fa.js": "./node_modules/moment/locale/fa.js",
|
|
|
"./fi": "./node_modules/moment/locale/fi.js",
|
|
|
"./fi.js": "./node_modules/moment/locale/fi.js",
|
|
|
"./fil": "./node_modules/moment/locale/fil.js",
|
|
|
"./fil.js": "./node_modules/moment/locale/fil.js",
|
|
|
"./fo": "./node_modules/moment/locale/fo.js",
|
|
|
"./fo.js": "./node_modules/moment/locale/fo.js",
|
|
|
"./fr": "./node_modules/moment/locale/fr.js",
|
|
|
"./fr-ca": "./node_modules/moment/locale/fr-ca.js",
|
|
|
"./fr-ca.js": "./node_modules/moment/locale/fr-ca.js",
|
|
|
"./fr-ch": "./node_modules/moment/locale/fr-ch.js",
|
|
|
"./fr-ch.js": "./node_modules/moment/locale/fr-ch.js",
|
|
|
"./fr.js": "./node_modules/moment/locale/fr.js",
|
|
|
"./fy": "./node_modules/moment/locale/fy.js",
|
|
|
"./fy.js": "./node_modules/moment/locale/fy.js",
|
|
|
"./ga": "./node_modules/moment/locale/ga.js",
|
|
|
"./ga.js": "./node_modules/moment/locale/ga.js",
|
|
|
"./gd": "./node_modules/moment/locale/gd.js",
|
|
|
"./gd.js": "./node_modules/moment/locale/gd.js",
|
|
|
"./gl": "./node_modules/moment/locale/gl.js",
|
|
|
"./gl.js": "./node_modules/moment/locale/gl.js",
|
|
|
"./gom-deva": "./node_modules/moment/locale/gom-deva.js",
|
|
|
"./gom-deva.js": "./node_modules/moment/locale/gom-deva.js",
|
|
|
"./gom-latn": "./node_modules/moment/locale/gom-latn.js",
|
|
|
"./gom-latn.js": "./node_modules/moment/locale/gom-latn.js",
|
|
|
"./gu": "./node_modules/moment/locale/gu.js",
|
|
|
"./gu.js": "./node_modules/moment/locale/gu.js",
|
|
|
"./he": "./node_modules/moment/locale/he.js",
|
|
|
"./he.js": "./node_modules/moment/locale/he.js",
|
|
|
"./hi": "./node_modules/moment/locale/hi.js",
|
|
|
"./hi.js": "./node_modules/moment/locale/hi.js",
|
|
|
"./hr": "./node_modules/moment/locale/hr.js",
|
|
|
"./hr.js": "./node_modules/moment/locale/hr.js",
|
|
|
"./hu": "./node_modules/moment/locale/hu.js",
|
|
|
"./hu.js": "./node_modules/moment/locale/hu.js",
|
|
|
"./hy-am": "./node_modules/moment/locale/hy-am.js",
|
|
|
"./hy-am.js": "./node_modules/moment/locale/hy-am.js",
|
|
|
"./id": "./node_modules/moment/locale/id.js",
|
|
|
"./id.js": "./node_modules/moment/locale/id.js",
|
|
|
"./is": "./node_modules/moment/locale/is.js",
|
|
|
"./is.js": "./node_modules/moment/locale/is.js",
|
|
|
"./it": "./node_modules/moment/locale/it.js",
|
|
|
"./it-ch": "./node_modules/moment/locale/it-ch.js",
|
|
|
"./it-ch.js": "./node_modules/moment/locale/it-ch.js",
|
|
|
"./it.js": "./node_modules/moment/locale/it.js",
|
|
|
"./ja": "./node_modules/moment/locale/ja.js",
|
|
|
"./ja.js": "./node_modules/moment/locale/ja.js",
|
|
|
"./jv": "./node_modules/moment/locale/jv.js",
|
|
|
"./jv.js": "./node_modules/moment/locale/jv.js",
|
|
|
"./ka": "./node_modules/moment/locale/ka.js",
|
|
|
"./ka.js": "./node_modules/moment/locale/ka.js",
|
|
|
"./kk": "./node_modules/moment/locale/kk.js",
|
|
|
"./kk.js": "./node_modules/moment/locale/kk.js",
|
|
|
"./km": "./node_modules/moment/locale/km.js",
|
|
|
"./km.js": "./node_modules/moment/locale/km.js",
|
|
|
"./kn": "./node_modules/moment/locale/kn.js",
|
|
|
"./kn.js": "./node_modules/moment/locale/kn.js",
|
|
|
"./ko": "./node_modules/moment/locale/ko.js",
|
|
|
"./ko.js": "./node_modules/moment/locale/ko.js",
|
|
|
"./ku": "./node_modules/moment/locale/ku.js",
|
|
|
"./ku.js": "./node_modules/moment/locale/ku.js",
|
|
|
"./ky": "./node_modules/moment/locale/ky.js",
|
|
|
"./ky.js": "./node_modules/moment/locale/ky.js",
|
|
|
"./lb": "./node_modules/moment/locale/lb.js",
|
|
|
"./lb.js": "./node_modules/moment/locale/lb.js",
|
|
|
"./lo": "./node_modules/moment/locale/lo.js",
|
|
|
"./lo.js": "./node_modules/moment/locale/lo.js",
|
|
|
"./lt": "./node_modules/moment/locale/lt.js",
|
|
|
"./lt.js": "./node_modules/moment/locale/lt.js",
|
|
|
"./lv": "./node_modules/moment/locale/lv.js",
|
|
|
"./lv.js": "./node_modules/moment/locale/lv.js",
|
|
|
"./me": "./node_modules/moment/locale/me.js",
|
|
|
"./me.js": "./node_modules/moment/locale/me.js",
|
|
|
"./mi": "./node_modules/moment/locale/mi.js",
|
|
|
"./mi.js": "./node_modules/moment/locale/mi.js",
|
|
|
"./mk": "./node_modules/moment/locale/mk.js",
|
|
|
"./mk.js": "./node_modules/moment/locale/mk.js",
|
|
|
"./ml": "./node_modules/moment/locale/ml.js",
|
|
|
"./ml.js": "./node_modules/moment/locale/ml.js",
|
|
|
"./mn": "./node_modules/moment/locale/mn.js",
|
|
|
"./mn.js": "./node_modules/moment/locale/mn.js",
|
|
|
"./mr": "./node_modules/moment/locale/mr.js",
|
|
|
"./mr.js": "./node_modules/moment/locale/mr.js",
|
|
|
"./ms": "./node_modules/moment/locale/ms.js",
|
|
|
"./ms-my": "./node_modules/moment/locale/ms-my.js",
|
|
|
"./ms-my.js": "./node_modules/moment/locale/ms-my.js",
|
|
|
"./ms.js": "./node_modules/moment/locale/ms.js",
|
|
|
"./mt": "./node_modules/moment/locale/mt.js",
|
|
|
"./mt.js": "./node_modules/moment/locale/mt.js",
|
|
|
"./my": "./node_modules/moment/locale/my.js",
|
|
|
"./my.js": "./node_modules/moment/locale/my.js",
|
|
|
"./nb": "./node_modules/moment/locale/nb.js",
|
|
|
"./nb.js": "./node_modules/moment/locale/nb.js",
|
|
|
"./ne": "./node_modules/moment/locale/ne.js",
|
|
|
"./ne.js": "./node_modules/moment/locale/ne.js",
|
|
|
"./nl": "./node_modules/moment/locale/nl.js",
|
|
|
"./nl-be": "./node_modules/moment/locale/nl-be.js",
|
|
|
"./nl-be.js": "./node_modules/moment/locale/nl-be.js",
|
|
|
"./nl.js": "./node_modules/moment/locale/nl.js",
|
|
|
"./nn": "./node_modules/moment/locale/nn.js",
|
|
|
"./nn.js": "./node_modules/moment/locale/nn.js",
|
|
|
"./oc-lnc": "./node_modules/moment/locale/oc-lnc.js",
|
|
|
"./oc-lnc.js": "./node_modules/moment/locale/oc-lnc.js",
|
|
|
"./pa-in": "./node_modules/moment/locale/pa-in.js",
|
|
|
"./pa-in.js": "./node_modules/moment/locale/pa-in.js",
|
|
|
"./pl": "./node_modules/moment/locale/pl.js",
|
|
|
"./pl.js": "./node_modules/moment/locale/pl.js",
|
|
|
"./pt": "./node_modules/moment/locale/pt.js",
|
|
|
"./pt-br": "./node_modules/moment/locale/pt-br.js",
|
|
|
"./pt-br.js": "./node_modules/moment/locale/pt-br.js",
|
|
|
"./pt.js": "./node_modules/moment/locale/pt.js",
|
|
|
"./ro": "./node_modules/moment/locale/ro.js",
|
|
|
"./ro.js": "./node_modules/moment/locale/ro.js",
|
|
|
"./ru": "./node_modules/moment/locale/ru.js",
|
|
|
"./ru.js": "./node_modules/moment/locale/ru.js",
|
|
|
"./sd": "./node_modules/moment/locale/sd.js",
|
|
|
"./sd.js": "./node_modules/moment/locale/sd.js",
|
|
|
"./se": "./node_modules/moment/locale/se.js",
|
|
|
"./se.js": "./node_modules/moment/locale/se.js",
|
|
|
"./si": "./node_modules/moment/locale/si.js",
|
|
|
"./si.js": "./node_modules/moment/locale/si.js",
|
|
|
"./sk": "./node_modules/moment/locale/sk.js",
|
|
|
"./sk.js": "./node_modules/moment/locale/sk.js",
|
|
|
"./sl": "./node_modules/moment/locale/sl.js",
|
|
|
"./sl.js": "./node_modules/moment/locale/sl.js",
|
|
|
"./sq": "./node_modules/moment/locale/sq.js",
|
|
|
"./sq.js": "./node_modules/moment/locale/sq.js",
|
|
|
"./sr": "./node_modules/moment/locale/sr.js",
|
|
|
"./sr-cyrl": "./node_modules/moment/locale/sr-cyrl.js",
|
|
|
"./sr-cyrl.js": "./node_modules/moment/locale/sr-cyrl.js",
|
|
|
"./sr.js": "./node_modules/moment/locale/sr.js",
|
|
|
"./ss": "./node_modules/moment/locale/ss.js",
|
|
|
"./ss.js": "./node_modules/moment/locale/ss.js",
|
|
|
"./sv": "./node_modules/moment/locale/sv.js",
|
|
|
"./sv.js": "./node_modules/moment/locale/sv.js",
|
|
|
"./sw": "./node_modules/moment/locale/sw.js",
|
|
|
"./sw.js": "./node_modules/moment/locale/sw.js",
|
|
|
"./ta": "./node_modules/moment/locale/ta.js",
|
|
|
"./ta.js": "./node_modules/moment/locale/ta.js",
|
|
|
"./te": "./node_modules/moment/locale/te.js",
|
|
|
"./te.js": "./node_modules/moment/locale/te.js",
|
|
|
"./tet": "./node_modules/moment/locale/tet.js",
|
|
|
"./tet.js": "./node_modules/moment/locale/tet.js",
|
|
|
"./tg": "./node_modules/moment/locale/tg.js",
|
|
|
"./tg.js": "./node_modules/moment/locale/tg.js",
|
|
|
"./th": "./node_modules/moment/locale/th.js",
|
|
|
"./th.js": "./node_modules/moment/locale/th.js",
|
|
|
"./tk": "./node_modules/moment/locale/tk.js",
|
|
|
"./tk.js": "./node_modules/moment/locale/tk.js",
|
|
|
"./tl-ph": "./node_modules/moment/locale/tl-ph.js",
|
|
|
"./tl-ph.js": "./node_modules/moment/locale/tl-ph.js",
|
|
|
"./tlh": "./node_modules/moment/locale/tlh.js",
|
|
|
"./tlh.js": "./node_modules/moment/locale/tlh.js",
|
|
|
"./tr": "./node_modules/moment/locale/tr.js",
|
|
|
"./tr.js": "./node_modules/moment/locale/tr.js",
|
|
|
"./tzl": "./node_modules/moment/locale/tzl.js",
|
|
|
"./tzl.js": "./node_modules/moment/locale/tzl.js",
|
|
|
"./tzm": "./node_modules/moment/locale/tzm.js",
|
|
|
"./tzm-latn": "./node_modules/moment/locale/tzm-latn.js",
|
|
|
"./tzm-latn.js": "./node_modules/moment/locale/tzm-latn.js",
|
|
|
"./tzm.js": "./node_modules/moment/locale/tzm.js",
|
|
|
"./ug-cn": "./node_modules/moment/locale/ug-cn.js",
|
|
|
"./ug-cn.js": "./node_modules/moment/locale/ug-cn.js",
|
|
|
"./uk": "./node_modules/moment/locale/uk.js",
|
|
|
"./uk.js": "./node_modules/moment/locale/uk.js",
|
|
|
"./ur": "./node_modules/moment/locale/ur.js",
|
|
|
"./ur.js": "./node_modules/moment/locale/ur.js",
|
|
|
"./uz": "./node_modules/moment/locale/uz.js",
|
|
|
"./uz-latn": "./node_modules/moment/locale/uz-latn.js",
|
|
|
"./uz-latn.js": "./node_modules/moment/locale/uz-latn.js",
|
|
|
"./uz.js": "./node_modules/moment/locale/uz.js",
|
|
|
"./vi": "./node_modules/moment/locale/vi.js",
|
|
|
"./vi.js": "./node_modules/moment/locale/vi.js",
|
|
|
"./x-pseudo": "./node_modules/moment/locale/x-pseudo.js",
|
|
|
"./x-pseudo.js": "./node_modules/moment/locale/x-pseudo.js",
|
|
|
"./yo": "./node_modules/moment/locale/yo.js",
|
|
|
"./yo.js": "./node_modules/moment/locale/yo.js",
|
|
|
"./zh-cn": "./node_modules/moment/locale/zh-cn.js",
|
|
|
"./zh-cn.js": "./node_modules/moment/locale/zh-cn.js",
|
|
|
"./zh-hk": "./node_modules/moment/locale/zh-hk.js",
|
|
|
"./zh-hk.js": "./node_modules/moment/locale/zh-hk.js",
|
|
|
"./zh-mo": "./node_modules/moment/locale/zh-mo.js",
|
|
|
"./zh-mo.js": "./node_modules/moment/locale/zh-mo.js",
|
|
|
"./zh-tw": "./node_modules/moment/locale/zh-tw.js",
|
|
|
"./zh-tw.js": "./node_modules/moment/locale/zh-tw.js"
|
|
|
};
|
|
|
|
|
|
|
|
|
function webpackContext(req) {
|
|
|
var id = webpackContextResolve(req);
|
|
|
return __webpack_require__(id);
|
|
|
}
|
|
|
function webpackContextResolve(req) {
|
|
|
if(!__webpack_require__.o(map, req)) {
|
|
|
var e = new Error("Cannot find module '" + req + "'");
|
|
|
e.code = 'MODULE_NOT_FOUND';
|
|
|
throw e;
|
|
|
}
|
|
|
return map[req];
|
|
|
}
|
|
|
webpackContext.keys = function webpackContextKeys() {
|
|
|
return Object.keys(map);
|
|
|
};
|
|
|
webpackContext.resolve = webpackContextResolve;
|
|
|
module.exports = webpackContext;
|
|
|
webpackContext.id = "./node_modules/moment/locale sync recursive ^\\.\\/.*$";
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/af.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/af.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Afrikaans [af]
|
|
|
//! author : Werner Mollentze : https://github.com/wernerm
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var af = moment.defineLocale('af', {
|
|
|
months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
|
|
|
weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
|
|
|
weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
|
|
|
meridiemParse: /vm|nm/i,
|
|
|
isPM: function (input) {
|
|
|
return /^nm$/i.test(input);
|
|
|
},
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours < 12) {
|
|
|
return isLower ? 'vm' : 'VM';
|
|
|
} else {
|
|
|
return isLower ? 'nm' : 'NM';
|
|
|
}
|
|
|
},
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Vandag om] LT',
|
|
|
nextDay: '[Môre om] LT',
|
|
|
nextWeek: 'dddd [om] LT',
|
|
|
lastDay: '[Gister om] LT',
|
|
|
lastWeek: '[Laas] dddd [om] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'oor %s',
|
|
|
past: '%s gelede',
|
|
|
s: "'n paar sekondes",
|
|
|
ss: '%d sekondes',
|
|
|
m: "'n minuut",
|
|
|
mm: '%d minute',
|
|
|
h: "'n uur",
|
|
|
hh: '%d ure',
|
|
|
d: "'n dag",
|
|
|
dd: '%d dae',
|
|
|
M: "'n maand",
|
|
|
MM: '%d maande',
|
|
|
y: "'n jaar",
|
|
|
yy: '%d jaar',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
|
|
|
ordinal: function (number) {
|
|
|
return (
|
|
|
number +
|
|
|
(number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
|
|
|
); // Thanks to Joris Röling : https://github.com/jjupiter
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Maandag is die eerste dag van die week.
|
|
|
doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return af;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ar-dz.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ar-dz.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Arabic (Algeria) [ar-dz]
|
|
|
//! author : Amine Roukh: https://github.com/Amine27
|
|
|
//! author : Abdel Said: https://github.com/abdelsaid
|
|
|
//! author : Ahmed Elkhatib
|
|
|
//! author : forabi https://github.com/forabi
|
|
|
//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var pluralForm = function (n) {
|
|
|
return n === 0
|
|
|
? 0
|
|
|
: n === 1
|
|
|
? 1
|
|
|
: n === 2
|
|
|
? 2
|
|
|
: n % 100 >= 3 && n % 100 <= 10
|
|
|
? 3
|
|
|
: n % 100 >= 11
|
|
|
? 4
|
|
|
: 5;
|
|
|
},
|
|
|
plurals = {
|
|
|
s: [
|
|
|
'أقل من ثانية',
|
|
|
'ثانية واحدة',
|
|
|
['ثانيتان', 'ثانيتين'],
|
|
|
'%d ثوان',
|
|
|
'%d ثانية',
|
|
|
'%d ثانية',
|
|
|
],
|
|
|
m: [
|
|
|
'أقل من دقيقة',
|
|
|
'دقيقة واحدة',
|
|
|
['دقيقتان', 'دقيقتين'],
|
|
|
'%d دقائق',
|
|
|
'%d دقيقة',
|
|
|
'%d دقيقة',
|
|
|
],
|
|
|
h: [
|
|
|
'أقل من ساعة',
|
|
|
'ساعة واحدة',
|
|
|
['ساعتان', 'ساعتين'],
|
|
|
'%d ساعات',
|
|
|
'%d ساعة',
|
|
|
'%d ساعة',
|
|
|
],
|
|
|
d: [
|
|
|
'أقل من يوم',
|
|
|
'يوم واحد',
|
|
|
['يومان', 'يومين'],
|
|
|
'%d أيام',
|
|
|
'%d يومًا',
|
|
|
'%d يوم',
|
|
|
],
|
|
|
M: [
|
|
|
'أقل من شهر',
|
|
|
'شهر واحد',
|
|
|
['شهران', 'شهرين'],
|
|
|
'%d أشهر',
|
|
|
'%d شهرا',
|
|
|
'%d شهر',
|
|
|
],
|
|
|
y: [
|
|
|
'أقل من عام',
|
|
|
'عام واحد',
|
|
|
['عامان', 'عامين'],
|
|
|
'%d أعوام',
|
|
|
'%d عامًا',
|
|
|
'%d عام',
|
|
|
],
|
|
|
},
|
|
|
pluralize = function (u) {
|
|
|
return function (number, withoutSuffix, string, isFuture) {
|
|
|
var f = pluralForm(number),
|
|
|
str = plurals[u][pluralForm(number)];
|
|
|
if (f === 2) {
|
|
|
str = str[withoutSuffix ? 0 : 1];
|
|
|
}
|
|
|
return str.replace(/%d/i, number);
|
|
|
};
|
|
|
},
|
|
|
months = [
|
|
|
'جانفي',
|
|
|
'فيفري',
|
|
|
'مارس',
|
|
|
'أفريل',
|
|
|
'ماي',
|
|
|
'جوان',
|
|
|
'جويلية',
|
|
|
'أوت',
|
|
|
'سبتمبر',
|
|
|
'أكتوبر',
|
|
|
'نوفمبر',
|
|
|
'ديسمبر',
|
|
|
];
|
|
|
|
|
|
var arDz = moment.defineLocale('ar-dz', {
|
|
|
months: months,
|
|
|
monthsShort: months,
|
|
|
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
|
|
weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
|
|
|
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'D/\u200FM/\u200FYYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /ص|م/,
|
|
|
isPM: function (input) {
|
|
|
return 'م' === input;
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'ص';
|
|
|
} else {
|
|
|
return 'م';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[اليوم عند الساعة] LT',
|
|
|
nextDay: '[غدًا عند الساعة] LT',
|
|
|
nextWeek: 'dddd [عند الساعة] LT',
|
|
|
lastDay: '[أمس عند الساعة] LT',
|
|
|
lastWeek: 'dddd [عند الساعة] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'بعد %s',
|
|
|
past: 'منذ %s',
|
|
|
s: pluralize('s'),
|
|
|
ss: pluralize('s'),
|
|
|
m: pluralize('m'),
|
|
|
mm: pluralize('m'),
|
|
|
h: pluralize('h'),
|
|
|
hh: pluralize('h'),
|
|
|
d: pluralize('d'),
|
|
|
dd: pluralize('d'),
|
|
|
M: pluralize('M'),
|
|
|
MM: pluralize('M'),
|
|
|
y: pluralize('y'),
|
|
|
yy: pluralize('y'),
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/,/g, '،');
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return arDz;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ar-kw.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ar-kw.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Arabic (Kuwait) [ar-kw]
|
|
|
//! author : Nusret Parlak: https://github.com/nusretparlak
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var arKw = moment.defineLocale('ar-kw', {
|
|
|
months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
|
|
weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
|
|
|
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[اليوم على الساعة] LT',
|
|
|
nextDay: '[غدا على الساعة] LT',
|
|
|
nextWeek: 'dddd [على الساعة] LT',
|
|
|
lastDay: '[أمس على الساعة] LT',
|
|
|
lastWeek: 'dddd [على الساعة] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'في %s',
|
|
|
past: 'منذ %s',
|
|
|
s: 'ثوان',
|
|
|
ss: '%d ثانية',
|
|
|
m: 'دقيقة',
|
|
|
mm: '%d دقائق',
|
|
|
h: 'ساعة',
|
|
|
hh: '%d ساعات',
|
|
|
d: 'يوم',
|
|
|
dd: '%d أيام',
|
|
|
M: 'شهر',
|
|
|
MM: '%d أشهر',
|
|
|
y: 'سنة',
|
|
|
yy: '%d سنوات',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 12, // The week that contains Jan 12th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return arKw;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ar-ly.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ar-ly.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Arabic (Lybia) [ar-ly]
|
|
|
//! author : Ali Hmer: https://github.com/kikoanis
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '1',
|
|
|
2: '2',
|
|
|
3: '3',
|
|
|
4: '4',
|
|
|
5: '5',
|
|
|
6: '6',
|
|
|
7: '7',
|
|
|
8: '8',
|
|
|
9: '9',
|
|
|
0: '0',
|
|
|
},
|
|
|
pluralForm = function (n) {
|
|
|
return n === 0
|
|
|
? 0
|
|
|
: n === 1
|
|
|
? 1
|
|
|
: n === 2
|
|
|
? 2
|
|
|
: n % 100 >= 3 && n % 100 <= 10
|
|
|
? 3
|
|
|
: n % 100 >= 11
|
|
|
? 4
|
|
|
: 5;
|
|
|
},
|
|
|
plurals = {
|
|
|
s: [
|
|
|
'أقل من ثانية',
|
|
|
'ثانية واحدة',
|
|
|
['ثانيتان', 'ثانيتين'],
|
|
|
'%d ثوان',
|
|
|
'%d ثانية',
|
|
|
'%d ثانية',
|
|
|
],
|
|
|
m: [
|
|
|
'أقل من دقيقة',
|
|
|
'دقيقة واحدة',
|
|
|
['دقيقتان', 'دقيقتين'],
|
|
|
'%d دقائق',
|
|
|
'%d دقيقة',
|
|
|
'%d دقيقة',
|
|
|
],
|
|
|
h: [
|
|
|
'أقل من ساعة',
|
|
|
'ساعة واحدة',
|
|
|
['ساعتان', 'ساعتين'],
|
|
|
'%d ساعات',
|
|
|
'%d ساعة',
|
|
|
'%d ساعة',
|
|
|
],
|
|
|
d: [
|
|
|
'أقل من يوم',
|
|
|
'يوم واحد',
|
|
|
['يومان', 'يومين'],
|
|
|
'%d أيام',
|
|
|
'%d يومًا',
|
|
|
'%d يوم',
|
|
|
],
|
|
|
M: [
|
|
|
'أقل من شهر',
|
|
|
'شهر واحد',
|
|
|
['شهران', 'شهرين'],
|
|
|
'%d أشهر',
|
|
|
'%d شهرا',
|
|
|
'%d شهر',
|
|
|
],
|
|
|
y: [
|
|
|
'أقل من عام',
|
|
|
'عام واحد',
|
|
|
['عامان', 'عامين'],
|
|
|
'%d أعوام',
|
|
|
'%d عامًا',
|
|
|
'%d عام',
|
|
|
],
|
|
|
},
|
|
|
pluralize = function (u) {
|
|
|
return function (number, withoutSuffix, string, isFuture) {
|
|
|
var f = pluralForm(number),
|
|
|
str = plurals[u][pluralForm(number)];
|
|
|
if (f === 2) {
|
|
|
str = str[withoutSuffix ? 0 : 1];
|
|
|
}
|
|
|
return str.replace(/%d/i, number);
|
|
|
};
|
|
|
},
|
|
|
months = [
|
|
|
'يناير',
|
|
|
'فبراير',
|
|
|
'مارس',
|
|
|
'أبريل',
|
|
|
'مايو',
|
|
|
'يونيو',
|
|
|
'يوليو',
|
|
|
'أغسطس',
|
|
|
'سبتمبر',
|
|
|
'أكتوبر',
|
|
|
'نوفمبر',
|
|
|
'ديسمبر',
|
|
|
];
|
|
|
|
|
|
var arLy = moment.defineLocale('ar-ly', {
|
|
|
months: months,
|
|
|
monthsShort: months,
|
|
|
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
|
|
weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
|
|
|
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'D/\u200FM/\u200FYYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /ص|م/,
|
|
|
isPM: function (input) {
|
|
|
return 'م' === input;
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'ص';
|
|
|
} else {
|
|
|
return 'م';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[اليوم عند الساعة] LT',
|
|
|
nextDay: '[غدًا عند الساعة] LT',
|
|
|
nextWeek: 'dddd [عند الساعة] LT',
|
|
|
lastDay: '[أمس عند الساعة] LT',
|
|
|
lastWeek: 'dddd [عند الساعة] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'بعد %s',
|
|
|
past: 'منذ %s',
|
|
|
s: pluralize('s'),
|
|
|
ss: pluralize('s'),
|
|
|
m: pluralize('m'),
|
|
|
mm: pluralize('m'),
|
|
|
h: pluralize('h'),
|
|
|
hh: pluralize('h'),
|
|
|
d: pluralize('d'),
|
|
|
dd: pluralize('d'),
|
|
|
M: pluralize('M'),
|
|
|
MM: pluralize('M'),
|
|
|
y: pluralize('y'),
|
|
|
yy: pluralize('y'),
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/،/g, ',');
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string
|
|
|
.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
})
|
|
|
.replace(/,/g, '،');
|
|
|
},
|
|
|
week: {
|
|
|
dow: 6, // Saturday is the first day of the week.
|
|
|
doy: 12, // The week that contains Jan 12th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return arLy;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ar-ma.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ar-ma.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Arabic (Morocco) [ar-ma]
|
|
|
//! author : ElFadili Yassine : https://github.com/ElFadiliY
|
|
|
//! author : Abdel Said : https://github.com/abdelsaid
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var arMa = moment.defineLocale('ar-ma', {
|
|
|
months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
|
|
weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
|
|
|
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[اليوم على الساعة] LT',
|
|
|
nextDay: '[غدا على الساعة] LT',
|
|
|
nextWeek: 'dddd [على الساعة] LT',
|
|
|
lastDay: '[أمس على الساعة] LT',
|
|
|
lastWeek: 'dddd [على الساعة] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'في %s',
|
|
|
past: 'منذ %s',
|
|
|
s: 'ثوان',
|
|
|
ss: '%d ثانية',
|
|
|
m: 'دقيقة',
|
|
|
mm: '%d دقائق',
|
|
|
h: 'ساعة',
|
|
|
hh: '%d ساعات',
|
|
|
d: 'يوم',
|
|
|
dd: '%d أيام',
|
|
|
M: 'شهر',
|
|
|
MM: '%d أشهر',
|
|
|
y: 'سنة',
|
|
|
yy: '%d سنوات',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return arMa;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ar-sa.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ar-sa.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Arabic (Saudi Arabia) [ar-sa]
|
|
|
//! author : Suhail Alkowaileet : https://github.com/xsoh
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '١',
|
|
|
2: '٢',
|
|
|
3: '٣',
|
|
|
4: '٤',
|
|
|
5: '٥',
|
|
|
6: '٦',
|
|
|
7: '٧',
|
|
|
8: '٨',
|
|
|
9: '٩',
|
|
|
0: '٠',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'١': '1',
|
|
|
'٢': '2',
|
|
|
'٣': '3',
|
|
|
'٤': '4',
|
|
|
'٥': '5',
|
|
|
'٦': '6',
|
|
|
'٧': '7',
|
|
|
'٨': '8',
|
|
|
'٩': '9',
|
|
|
'٠': '0',
|
|
|
};
|
|
|
|
|
|
var arSa = moment.defineLocale('ar-sa', {
|
|
|
months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
|
|
weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
|
|
|
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /ص|م/,
|
|
|
isPM: function (input) {
|
|
|
return 'م' === input;
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'ص';
|
|
|
} else {
|
|
|
return 'م';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[اليوم على الساعة] LT',
|
|
|
nextDay: '[غدا على الساعة] LT',
|
|
|
nextWeek: 'dddd [على الساعة] LT',
|
|
|
lastDay: '[أمس على الساعة] LT',
|
|
|
lastWeek: 'dddd [على الساعة] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'في %s',
|
|
|
past: 'منذ %s',
|
|
|
s: 'ثوان',
|
|
|
ss: '%d ثانية',
|
|
|
m: 'دقيقة',
|
|
|
mm: '%d دقائق',
|
|
|
h: 'ساعة',
|
|
|
hh: '%d ساعات',
|
|
|
d: 'يوم',
|
|
|
dd: '%d أيام',
|
|
|
M: 'شهر',
|
|
|
MM: '%d أشهر',
|
|
|
y: 'سنة',
|
|
|
yy: '%d سنوات',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string
|
|
|
.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
})
|
|
|
.replace(/،/g, ',');
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string
|
|
|
.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
})
|
|
|
.replace(/,/g, '،');
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return arSa;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ar-tn.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ar-tn.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Arabic (Tunisia) [ar-tn]
|
|
|
//! author : Nader Toukabri : https://github.com/naderio
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var arTn = moment.defineLocale('ar-tn', {
|
|
|
months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
|
|
weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
|
|
|
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[اليوم على الساعة] LT',
|
|
|
nextDay: '[غدا على الساعة] LT',
|
|
|
nextWeek: 'dddd [على الساعة] LT',
|
|
|
lastDay: '[أمس على الساعة] LT',
|
|
|
lastWeek: 'dddd [على الساعة] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'في %s',
|
|
|
past: 'منذ %s',
|
|
|
s: 'ثوان',
|
|
|
ss: '%d ثانية',
|
|
|
m: 'دقيقة',
|
|
|
mm: '%d دقائق',
|
|
|
h: 'ساعة',
|
|
|
hh: '%d ساعات',
|
|
|
d: 'يوم',
|
|
|
dd: '%d أيام',
|
|
|
M: 'شهر',
|
|
|
MM: '%d أشهر',
|
|
|
y: 'سنة',
|
|
|
yy: '%d سنوات',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return arTn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ar.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ar.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Arabic [ar]
|
|
|
//! author : Abdel Said: https://github.com/abdelsaid
|
|
|
//! author : Ahmed Elkhatib
|
|
|
//! author : forabi https://github.com/forabi
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '١',
|
|
|
2: '٢',
|
|
|
3: '٣',
|
|
|
4: '٤',
|
|
|
5: '٥',
|
|
|
6: '٦',
|
|
|
7: '٧',
|
|
|
8: '٨',
|
|
|
9: '٩',
|
|
|
0: '٠',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'١': '1',
|
|
|
'٢': '2',
|
|
|
'٣': '3',
|
|
|
'٤': '4',
|
|
|
'٥': '5',
|
|
|
'٦': '6',
|
|
|
'٧': '7',
|
|
|
'٨': '8',
|
|
|
'٩': '9',
|
|
|
'٠': '0',
|
|
|
},
|
|
|
pluralForm = function (n) {
|
|
|
return n === 0
|
|
|
? 0
|
|
|
: n === 1
|
|
|
? 1
|
|
|
: n === 2
|
|
|
? 2
|
|
|
: n % 100 >= 3 && n % 100 <= 10
|
|
|
? 3
|
|
|
: n % 100 >= 11
|
|
|
? 4
|
|
|
: 5;
|
|
|
},
|
|
|
plurals = {
|
|
|
s: [
|
|
|
'أقل من ثانية',
|
|
|
'ثانية واحدة',
|
|
|
['ثانيتان', 'ثانيتين'],
|
|
|
'%d ثوان',
|
|
|
'%d ثانية',
|
|
|
'%d ثانية',
|
|
|
],
|
|
|
m: [
|
|
|
'أقل من دقيقة',
|
|
|
'دقيقة واحدة',
|
|
|
['دقيقتان', 'دقيقتين'],
|
|
|
'%d دقائق',
|
|
|
'%d دقيقة',
|
|
|
'%d دقيقة',
|
|
|
],
|
|
|
h: [
|
|
|
'أقل من ساعة',
|
|
|
'ساعة واحدة',
|
|
|
['ساعتان', 'ساعتين'],
|
|
|
'%d ساعات',
|
|
|
'%d ساعة',
|
|
|
'%d ساعة',
|
|
|
],
|
|
|
d: [
|
|
|
'أقل من يوم',
|
|
|
'يوم واحد',
|
|
|
['يومان', 'يومين'],
|
|
|
'%d أيام',
|
|
|
'%d يومًا',
|
|
|
'%d يوم',
|
|
|
],
|
|
|
M: [
|
|
|
'أقل من شهر',
|
|
|
'شهر واحد',
|
|
|
['شهران', 'شهرين'],
|
|
|
'%d أشهر',
|
|
|
'%d شهرا',
|
|
|
'%d شهر',
|
|
|
],
|
|
|
y: [
|
|
|
'أقل من عام',
|
|
|
'عام واحد',
|
|
|
['عامان', 'عامين'],
|
|
|
'%d أعوام',
|
|
|
'%d عامًا',
|
|
|
'%d عام',
|
|
|
],
|
|
|
},
|
|
|
pluralize = function (u) {
|
|
|
return function (number, withoutSuffix, string, isFuture) {
|
|
|
var f = pluralForm(number),
|
|
|
str = plurals[u][pluralForm(number)];
|
|
|
if (f === 2) {
|
|
|
str = str[withoutSuffix ? 0 : 1];
|
|
|
}
|
|
|
return str.replace(/%d/i, number);
|
|
|
};
|
|
|
},
|
|
|
months = [
|
|
|
'يناير',
|
|
|
'فبراير',
|
|
|
'مارس',
|
|
|
'أبريل',
|
|
|
'مايو',
|
|
|
'يونيو',
|
|
|
'يوليو',
|
|
|
'أغسطس',
|
|
|
'سبتمبر',
|
|
|
'أكتوبر',
|
|
|
'نوفمبر',
|
|
|
'ديسمبر',
|
|
|
];
|
|
|
|
|
|
var ar = moment.defineLocale('ar', {
|
|
|
months: months,
|
|
|
monthsShort: months,
|
|
|
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
|
|
weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
|
|
|
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'D/\u200FM/\u200FYYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /ص|م/,
|
|
|
isPM: function (input) {
|
|
|
return 'م' === input;
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'ص';
|
|
|
} else {
|
|
|
return 'م';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[اليوم عند الساعة] LT',
|
|
|
nextDay: '[غدًا عند الساعة] LT',
|
|
|
nextWeek: 'dddd [عند الساعة] LT',
|
|
|
lastDay: '[أمس عند الساعة] LT',
|
|
|
lastWeek: 'dddd [عند الساعة] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'بعد %s',
|
|
|
past: 'منذ %s',
|
|
|
s: pluralize('s'),
|
|
|
ss: pluralize('s'),
|
|
|
m: pluralize('m'),
|
|
|
mm: pluralize('m'),
|
|
|
h: pluralize('h'),
|
|
|
hh: pluralize('h'),
|
|
|
d: pluralize('d'),
|
|
|
dd: pluralize('d'),
|
|
|
M: pluralize('M'),
|
|
|
MM: pluralize('M'),
|
|
|
y: pluralize('y'),
|
|
|
yy: pluralize('y'),
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string
|
|
|
.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
})
|
|
|
.replace(/،/g, ',');
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string
|
|
|
.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
})
|
|
|
.replace(/,/g, '،');
|
|
|
},
|
|
|
week: {
|
|
|
dow: 6, // Saturday is the first day of the week.
|
|
|
doy: 12, // The week that contains Jan 12th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ar;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/az.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/az.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Azerbaijani [az]
|
|
|
//! author : topchiyev : https://github.com/topchiyev
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var suffixes = {
|
|
|
1: '-inci',
|
|
|
5: '-inci',
|
|
|
8: '-inci',
|
|
|
70: '-inci',
|
|
|
80: '-inci',
|
|
|
2: '-nci',
|
|
|
7: '-nci',
|
|
|
20: '-nci',
|
|
|
50: '-nci',
|
|
|
3: '-üncü',
|
|
|
4: '-üncü',
|
|
|
100: '-üncü',
|
|
|
6: '-ncı',
|
|
|
9: '-uncu',
|
|
|
10: '-uncu',
|
|
|
30: '-uncu',
|
|
|
60: '-ıncı',
|
|
|
90: '-ıncı',
|
|
|
};
|
|
|
|
|
|
var az = moment.defineLocale('az', {
|
|
|
months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
|
|
|
weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
|
|
|
weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[bugün saat] LT',
|
|
|
nextDay: '[sabah saat] LT',
|
|
|
nextWeek: '[gələn həftə] dddd [saat] LT',
|
|
|
lastDay: '[dünən] LT',
|
|
|
lastWeek: '[keçən həftə] dddd [saat] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s sonra',
|
|
|
past: '%s əvvəl',
|
|
|
s: 'bir neçə saniyə',
|
|
|
ss: '%d saniyə',
|
|
|
m: 'bir dəqiqə',
|
|
|
mm: '%d dəqiqə',
|
|
|
h: 'bir saat',
|
|
|
hh: '%d saat',
|
|
|
d: 'bir gün',
|
|
|
dd: '%d gün',
|
|
|
M: 'bir ay',
|
|
|
MM: '%d ay',
|
|
|
y: 'bir il',
|
|
|
yy: '%d il',
|
|
|
},
|
|
|
meridiemParse: /gecə|səhər|gündüz|axşam/,
|
|
|
isPM: function (input) {
|
|
|
return /^(gündüz|axşam)$/.test(input);
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'gecə';
|
|
|
} else if (hour < 12) {
|
|
|
return 'səhər';
|
|
|
} else if (hour < 17) {
|
|
|
return 'gündüz';
|
|
|
} else {
|
|
|
return 'axşam';
|
|
|
}
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
|
|
|
ordinal: function (number) {
|
|
|
if (number === 0) {
|
|
|
// special case for zero
|
|
|
return number + '-ıncı';
|
|
|
}
|
|
|
var a = number % 10,
|
|
|
b = (number % 100) - a,
|
|
|
c = number >= 100 ? 100 : null;
|
|
|
return number + (suffixes[a] || suffixes[b] || suffixes[c]);
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return az;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/be.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/be.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Belarusian [be]
|
|
|
//! author : Dmitry Demidov : https://github.com/demidov91
|
|
|
//! author: Praleska: http://praleska.pro/
|
|
|
//! Author : Menelion Elensúle : https://github.com/Oire
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function plural(word, num) {
|
|
|
var forms = word.split('_');
|
|
|
return num % 10 === 1 && num % 100 !== 11
|
|
|
? forms[0]
|
|
|
: num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
|
|
|
? forms[1]
|
|
|
: forms[2];
|
|
|
}
|
|
|
function relativeTimeWithPlural(number, withoutSuffix, key) {
|
|
|
var format = {
|
|
|
ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
|
|
|
mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
|
|
|
hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
|
|
|
dd: 'дзень_дні_дзён',
|
|
|
MM: 'месяц_месяцы_месяцаў',
|
|
|
yy: 'год_гады_гадоў',
|
|
|
};
|
|
|
if (key === 'm') {
|
|
|
return withoutSuffix ? 'хвіліна' : 'хвіліну';
|
|
|
} else if (key === 'h') {
|
|
|
return withoutSuffix ? 'гадзіна' : 'гадзіну';
|
|
|
} else {
|
|
|
return number + ' ' + plural(format[key], +number);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var be = moment.defineLocale('be', {
|
|
|
months: {
|
|
|
format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(
|
|
|
'_'
|
|
|
),
|
|
|
standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(
|
|
|
'_'
|
|
|
),
|
|
|
},
|
|
|
monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: {
|
|
|
format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(
|
|
|
'_'
|
|
|
),
|
|
|
standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(
|
|
|
'_'
|
|
|
),
|
|
|
isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/,
|
|
|
},
|
|
|
weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
|
|
|
weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY г.',
|
|
|
LLL: 'D MMMM YYYY г., HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY г., HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Сёння ў] LT',
|
|
|
nextDay: '[Заўтра ў] LT',
|
|
|
lastDay: '[Учора ў] LT',
|
|
|
nextWeek: function () {
|
|
|
return '[У] dddd [ў] LT';
|
|
|
},
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
case 3:
|
|
|
case 5:
|
|
|
case 6:
|
|
|
return '[У мінулую] dddd [ў] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
return '[У мінулы] dddd [ў] LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'праз %s',
|
|
|
past: '%s таму',
|
|
|
s: 'некалькі секунд',
|
|
|
m: relativeTimeWithPlural,
|
|
|
mm: relativeTimeWithPlural,
|
|
|
h: relativeTimeWithPlural,
|
|
|
hh: relativeTimeWithPlural,
|
|
|
d: 'дзень',
|
|
|
dd: relativeTimeWithPlural,
|
|
|
M: 'месяц',
|
|
|
MM: relativeTimeWithPlural,
|
|
|
y: 'год',
|
|
|
yy: relativeTimeWithPlural,
|
|
|
},
|
|
|
meridiemParse: /ночы|раніцы|дня|вечара/,
|
|
|
isPM: function (input) {
|
|
|
return /^(дня|вечара)$/.test(input);
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'ночы';
|
|
|
} else if (hour < 12) {
|
|
|
return 'раніцы';
|
|
|
} else if (hour < 17) {
|
|
|
return 'дня';
|
|
|
} else {
|
|
|
return 'вечара';
|
|
|
}
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'M':
|
|
|
case 'd':
|
|
|
case 'DDD':
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return (number % 10 === 2 || number % 10 === 3) &&
|
|
|
number % 100 !== 12 &&
|
|
|
number % 100 !== 13
|
|
|
? number + '-і'
|
|
|
: number + '-ы';
|
|
|
case 'D':
|
|
|
return number + '-га';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return be;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/bg.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/bg.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Bulgarian [bg]
|
|
|
//! author : Krasen Borisov : https://github.com/kraz
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var bg = moment.defineLocale('bg', {
|
|
|
months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
|
|
|
weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
|
|
|
weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'D.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY H:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Днес в] LT',
|
|
|
nextDay: '[Утре в] LT',
|
|
|
nextWeek: 'dddd [в] LT',
|
|
|
lastDay: '[Вчера в] LT',
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
case 3:
|
|
|
case 6:
|
|
|
return '[Миналата] dddd [в] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[Миналия] dddd [в] LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'след %s',
|
|
|
past: 'преди %s',
|
|
|
s: 'няколко секунди',
|
|
|
ss: '%d секунди',
|
|
|
m: 'минута',
|
|
|
mm: '%d минути',
|
|
|
h: 'час',
|
|
|
hh: '%d часа',
|
|
|
d: 'ден',
|
|
|
dd: '%d дена',
|
|
|
w: 'седмица',
|
|
|
ww: '%d седмици',
|
|
|
M: 'месец',
|
|
|
MM: '%d месеца',
|
|
|
y: 'година',
|
|
|
yy: '%d години',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
|
|
|
ordinal: function (number) {
|
|
|
var lastDigit = number % 10,
|
|
|
last2Digits = number % 100;
|
|
|
if (number === 0) {
|
|
|
return number + '-ев';
|
|
|
} else if (last2Digits === 0) {
|
|
|
return number + '-ен';
|
|
|
} else if (last2Digits > 10 && last2Digits < 20) {
|
|
|
return number + '-ти';
|
|
|
} else if (lastDigit === 1) {
|
|
|
return number + '-ви';
|
|
|
} else if (lastDigit === 2) {
|
|
|
return number + '-ри';
|
|
|
} else if (lastDigit === 7 || lastDigit === 8) {
|
|
|
return number + '-ми';
|
|
|
} else {
|
|
|
return number + '-ти';
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return bg;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/bm.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/bm.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Bambara [bm]
|
|
|
//! author : Estelle Comment : https://github.com/estellecomment
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var bm = moment.defineLocale('bm', {
|
|
|
months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
|
|
|
weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
|
|
|
weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
|
|
|
weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'MMMM [tile] D [san] YYYY',
|
|
|
LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
|
|
|
LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Bi lɛrɛ] LT',
|
|
|
nextDay: '[Sini lɛrɛ] LT',
|
|
|
nextWeek: 'dddd [don lɛrɛ] LT',
|
|
|
lastDay: '[Kunu lɛrɛ] LT',
|
|
|
lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s kɔnɔ',
|
|
|
past: 'a bɛ %s bɔ',
|
|
|
s: 'sanga dama dama',
|
|
|
ss: 'sekondi %d',
|
|
|
m: 'miniti kelen',
|
|
|
mm: 'miniti %d',
|
|
|
h: 'lɛrɛ kelen',
|
|
|
hh: 'lɛrɛ %d',
|
|
|
d: 'tile kelen',
|
|
|
dd: 'tile %d',
|
|
|
M: 'kalo kelen',
|
|
|
MM: 'kalo %d',
|
|
|
y: 'san kelen',
|
|
|
yy: 'san %d',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return bm;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/bn-bd.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/bn-bd.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Bengali (Bangladesh) [bn-bd]
|
|
|
//! author : Asraf Hossain Patoary : https://github.com/ashwoolford
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '১',
|
|
|
2: '২',
|
|
|
3: '৩',
|
|
|
4: '৪',
|
|
|
5: '৫',
|
|
|
6: '৬',
|
|
|
7: '৭',
|
|
|
8: '৮',
|
|
|
9: '৯',
|
|
|
0: '০',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'১': '1',
|
|
|
'২': '2',
|
|
|
'৩': '3',
|
|
|
'৪': '4',
|
|
|
'৫': '5',
|
|
|
'৬': '6',
|
|
|
'৭': '7',
|
|
|
'৮': '8',
|
|
|
'৯': '9',
|
|
|
'০': '0',
|
|
|
};
|
|
|
|
|
|
var bnBd = moment.defineLocale('bn-bd', {
|
|
|
months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
|
|
|
weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm সময়',
|
|
|
LTS: 'A h:mm:ss সময়',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, A h:mm সময়',
|
|
|
LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[আজ] LT',
|
|
|
nextDay: '[আগামীকাল] LT',
|
|
|
nextWeek: 'dddd, LT',
|
|
|
lastDay: '[গতকাল] LT',
|
|
|
lastWeek: '[গত] dddd, LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s পরে',
|
|
|
past: '%s আগে',
|
|
|
s: 'কয়েক সেকেন্ড',
|
|
|
ss: '%d সেকেন্ড',
|
|
|
m: 'এক মিনিট',
|
|
|
mm: '%d মিনিট',
|
|
|
h: 'এক ঘন্টা',
|
|
|
hh: '%d ঘন্টা',
|
|
|
d: 'এক দিন',
|
|
|
dd: '%d দিন',
|
|
|
M: 'এক মাস',
|
|
|
MM: '%d মাস',
|
|
|
y: 'এক বছর',
|
|
|
yy: '%d বছর',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
|
|
|
meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'রাত') {
|
|
|
return hour < 4 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'ভোর') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'সকাল') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'দুপুর') {
|
|
|
return hour >= 3 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'বিকাল') {
|
|
|
return hour + 12;
|
|
|
} else if (meridiem === 'সন্ধ্যা') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'রাত';
|
|
|
} else if (hour < 6) {
|
|
|
return 'ভোর';
|
|
|
} else if (hour < 12) {
|
|
|
return 'সকাল';
|
|
|
} else if (hour < 15) {
|
|
|
return 'দুপুর';
|
|
|
} else if (hour < 18) {
|
|
|
return 'বিকাল';
|
|
|
} else if (hour < 20) {
|
|
|
return 'সন্ধ্যা';
|
|
|
} else {
|
|
|
return 'রাত';
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return bnBd;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/bn.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/bn.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Bengali [bn]
|
|
|
//! author : Kaushik Gandhi : https://github.com/kaushikgandhi
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '১',
|
|
|
2: '২',
|
|
|
3: '৩',
|
|
|
4: '৪',
|
|
|
5: '৫',
|
|
|
6: '৬',
|
|
|
7: '৭',
|
|
|
8: '৮',
|
|
|
9: '৯',
|
|
|
0: '০',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'১': '1',
|
|
|
'২': '2',
|
|
|
'৩': '3',
|
|
|
'৪': '4',
|
|
|
'৫': '5',
|
|
|
'৬': '6',
|
|
|
'৭': '7',
|
|
|
'৮': '8',
|
|
|
'৯': '9',
|
|
|
'০': '0',
|
|
|
};
|
|
|
|
|
|
var bn = moment.defineLocale('bn', {
|
|
|
months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
|
|
|
weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm সময়',
|
|
|
LTS: 'A h:mm:ss সময়',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, A h:mm সময়',
|
|
|
LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[আজ] LT',
|
|
|
nextDay: '[আগামীকাল] LT',
|
|
|
nextWeek: 'dddd, LT',
|
|
|
lastDay: '[গতকাল] LT',
|
|
|
lastWeek: '[গত] dddd, LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s পরে',
|
|
|
past: '%s আগে',
|
|
|
s: 'কয়েক সেকেন্ড',
|
|
|
ss: '%d সেকেন্ড',
|
|
|
m: 'এক মিনিট',
|
|
|
mm: '%d মিনিট',
|
|
|
h: 'এক ঘন্টা',
|
|
|
hh: '%d ঘন্টা',
|
|
|
d: 'এক দিন',
|
|
|
dd: '%d দিন',
|
|
|
M: 'এক মাস',
|
|
|
MM: '%d মাস',
|
|
|
y: 'এক বছর',
|
|
|
yy: '%d বছর',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (
|
|
|
(meridiem === 'রাত' && hour >= 4) ||
|
|
|
(meridiem === 'দুপুর' && hour < 5) ||
|
|
|
meridiem === 'বিকাল'
|
|
|
) {
|
|
|
return hour + 12;
|
|
|
} else {
|
|
|
return hour;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'রাত';
|
|
|
} else if (hour < 10) {
|
|
|
return 'সকাল';
|
|
|
} else if (hour < 17) {
|
|
|
return 'দুপুর';
|
|
|
} else if (hour < 20) {
|
|
|
return 'বিকাল';
|
|
|
} else {
|
|
|
return 'রাত';
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return bn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/bo.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/bo.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Tibetan [bo]
|
|
|
//! author : Thupten N. Chakrishar : https://github.com/vajradog
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '༡',
|
|
|
2: '༢',
|
|
|
3: '༣',
|
|
|
4: '༤',
|
|
|
5: '༥',
|
|
|
6: '༦',
|
|
|
7: '༧',
|
|
|
8: '༨',
|
|
|
9: '༩',
|
|
|
0: '༠',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'༡': '1',
|
|
|
'༢': '2',
|
|
|
'༣': '3',
|
|
|
'༤': '4',
|
|
|
'༥': '5',
|
|
|
'༦': '6',
|
|
|
'༧': '7',
|
|
|
'༨': '8',
|
|
|
'༩': '9',
|
|
|
'༠': '0',
|
|
|
};
|
|
|
|
|
|
var bo = moment.defineLocale('bo', {
|
|
|
months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShortRegex: /^(ཟླ་\d{1,2})/,
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm',
|
|
|
LTS: 'A h:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, A h:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY, A h:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[དི་རིང] LT',
|
|
|
nextDay: '[སང་ཉིན] LT',
|
|
|
nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',
|
|
|
lastDay: '[ཁ་སང] LT',
|
|
|
lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s ལ་',
|
|
|
past: '%s སྔན་ལ',
|
|
|
s: 'ལམ་སང',
|
|
|
ss: '%d སྐར་ཆ།',
|
|
|
m: 'སྐར་མ་གཅིག',
|
|
|
mm: '%d སྐར་མ',
|
|
|
h: 'ཆུ་ཚོད་གཅིག',
|
|
|
hh: '%d ཆུ་ཚོད',
|
|
|
d: 'ཉིན་གཅིག',
|
|
|
dd: '%d ཉིན་',
|
|
|
M: 'ཟླ་བ་གཅིག',
|
|
|
MM: '%d ཟླ་བ',
|
|
|
y: 'ལོ་གཅིག',
|
|
|
yy: '%d ལོ',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (
|
|
|
(meridiem === 'མཚན་མོ' && hour >= 4) ||
|
|
|
(meridiem === 'ཉིན་གུང' && hour < 5) ||
|
|
|
meridiem === 'དགོང་དག'
|
|
|
) {
|
|
|
return hour + 12;
|
|
|
} else {
|
|
|
return hour;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'མཚན་མོ';
|
|
|
} else if (hour < 10) {
|
|
|
return 'ཞོགས་ཀས';
|
|
|
} else if (hour < 17) {
|
|
|
return 'ཉིན་གུང';
|
|
|
} else if (hour < 20) {
|
|
|
return 'དགོང་དག';
|
|
|
} else {
|
|
|
return 'མཚན་མོ';
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return bo;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/br.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/br.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Breton [br]
|
|
|
//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function relativeTimeWithMutation(number, withoutSuffix, key) {
|
|
|
var format = {
|
|
|
mm: 'munutenn',
|
|
|
MM: 'miz',
|
|
|
dd: 'devezh',
|
|
|
};
|
|
|
return number + ' ' + mutation(format[key], number);
|
|
|
}
|
|
|
function specialMutationForYears(number) {
|
|
|
switch (lastNumber(number)) {
|
|
|
case 1:
|
|
|
case 3:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
case 9:
|
|
|
return number + ' bloaz';
|
|
|
default:
|
|
|
return number + ' vloaz';
|
|
|
}
|
|
|
}
|
|
|
function lastNumber(number) {
|
|
|
if (number > 9) {
|
|
|
return lastNumber(number % 10);
|
|
|
}
|
|
|
return number;
|
|
|
}
|
|
|
function mutation(text, number) {
|
|
|
if (number === 2) {
|
|
|
return softMutation(text);
|
|
|
}
|
|
|
return text;
|
|
|
}
|
|
|
function softMutation(text) {
|
|
|
var mutationTable = {
|
|
|
m: 'v',
|
|
|
b: 'v',
|
|
|
d: 'z',
|
|
|
};
|
|
|
if (mutationTable[text.charAt(0)] === undefined) {
|
|
|
return text;
|
|
|
}
|
|
|
return mutationTable[text.charAt(0)] + text.substring(1);
|
|
|
}
|
|
|
|
|
|
var monthsParse = [
|
|
|
/^gen/i,
|
|
|
/^c[ʼ\']hwe/i,
|
|
|
/^meu/i,
|
|
|
/^ebr/i,
|
|
|
/^mae/i,
|
|
|
/^(mez|eve)/i,
|
|
|
/^gou/i,
|
|
|
/^eos/i,
|
|
|
/^gwe/i,
|
|
|
/^her/i,
|
|
|
/^du/i,
|
|
|
/^ker/i,
|
|
|
],
|
|
|
monthsRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
|
|
|
monthsStrictRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,
|
|
|
monthsShortStrictRegex = /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
|
|
|
fullWeekdaysParse = [
|
|
|
/^sul/i,
|
|
|
/^lun/i,
|
|
|
/^meurzh/i,
|
|
|
/^merc[ʼ\']her/i,
|
|
|
/^yaou/i,
|
|
|
/^gwener/i,
|
|
|
/^sadorn/i,
|
|
|
],
|
|
|
shortWeekdaysParse = [
|
|
|
/^Sul/i,
|
|
|
/^Lun/i,
|
|
|
/^Meu/i,
|
|
|
/^Mer/i,
|
|
|
/^Yao/i,
|
|
|
/^Gwe/i,
|
|
|
/^Sad/i,
|
|
|
],
|
|
|
minWeekdaysParse = [
|
|
|
/^Su/i,
|
|
|
/^Lu/i,
|
|
|
/^Me([^r]|$)/i,
|
|
|
/^Mer/i,
|
|
|
/^Ya/i,
|
|
|
/^Gw/i,
|
|
|
/^Sa/i,
|
|
|
];
|
|
|
|
|
|
var br = moment.defineLocale('br', {
|
|
|
months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
|
|
|
weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
|
|
|
weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
|
|
|
weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
|
|
|
weekdaysParse: minWeekdaysParse,
|
|
|
fullWeekdaysParse: fullWeekdaysParse,
|
|
|
shortWeekdaysParse: shortWeekdaysParse,
|
|
|
minWeekdaysParse: minWeekdaysParse,
|
|
|
|
|
|
monthsRegex: monthsRegex,
|
|
|
monthsShortRegex: monthsRegex,
|
|
|
monthsStrictRegex: monthsStrictRegex,
|
|
|
monthsShortStrictRegex: monthsShortStrictRegex,
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: monthsParse,
|
|
|
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D [a viz] MMMM YYYY',
|
|
|
LLL: 'D [a viz] MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Hiziv da] LT',
|
|
|
nextDay: '[Warcʼhoazh da] LT',
|
|
|
nextWeek: 'dddd [da] LT',
|
|
|
lastDay: '[Decʼh da] LT',
|
|
|
lastWeek: 'dddd [paset da] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'a-benn %s',
|
|
|
past: '%s ʼzo',
|
|
|
s: 'un nebeud segondennoù',
|
|
|
ss: '%d eilenn',
|
|
|
m: 'ur vunutenn',
|
|
|
mm: relativeTimeWithMutation,
|
|
|
h: 'un eur',
|
|
|
hh: '%d eur',
|
|
|
d: 'un devezh',
|
|
|
dd: relativeTimeWithMutation,
|
|
|
M: 'ur miz',
|
|
|
MM: relativeTimeWithMutation,
|
|
|
y: 'ur bloaz',
|
|
|
yy: specialMutationForYears,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
|
|
|
ordinal: function (number) {
|
|
|
var output = number === 1 ? 'añ' : 'vet';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn
|
|
|
isPM: function (token) {
|
|
|
return token === 'g.m.';
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
return hour < 12 ? 'a.m.' : 'g.m.';
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return br;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/bs.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/bs.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Bosnian [bs]
|
|
|
//! author : Nedim Cholich : https://github.com/frontyard
|
|
|
//! based on (hr) translation by Bojan Marković
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function translate(number, withoutSuffix, key) {
|
|
|
var result = number + ' ';
|
|
|
switch (key) {
|
|
|
case 'ss':
|
|
|
if (number === 1) {
|
|
|
result += 'sekunda';
|
|
|
} else if (number === 2 || number === 3 || number === 4) {
|
|
|
result += 'sekunde';
|
|
|
} else {
|
|
|
result += 'sekundi';
|
|
|
}
|
|
|
return result;
|
|
|
case 'm':
|
|
|
return withoutSuffix ? 'jedna minuta' : 'jedne minute';
|
|
|
case 'mm':
|
|
|
if (number === 1) {
|
|
|
result += 'minuta';
|
|
|
} else if (number === 2 || number === 3 || number === 4) {
|
|
|
result += 'minute';
|
|
|
} else {
|
|
|
result += 'minuta';
|
|
|
}
|
|
|
return result;
|
|
|
case 'h':
|
|
|
return withoutSuffix ? 'jedan sat' : 'jednog sata';
|
|
|
case 'hh':
|
|
|
if (number === 1) {
|
|
|
result += 'sat';
|
|
|
} else if (number === 2 || number === 3 || number === 4) {
|
|
|
result += 'sata';
|
|
|
} else {
|
|
|
result += 'sati';
|
|
|
}
|
|
|
return result;
|
|
|
case 'dd':
|
|
|
if (number === 1) {
|
|
|
result += 'dan';
|
|
|
} else {
|
|
|
result += 'dana';
|
|
|
}
|
|
|
return result;
|
|
|
case 'MM':
|
|
|
if (number === 1) {
|
|
|
result += 'mjesec';
|
|
|
} else if (number === 2 || number === 3 || number === 4) {
|
|
|
result += 'mjeseca';
|
|
|
} else {
|
|
|
result += 'mjeseci';
|
|
|
}
|
|
|
return result;
|
|
|
case 'yy':
|
|
|
if (number === 1) {
|
|
|
result += 'godina';
|
|
|
} else if (number === 2 || number === 3 || number === 4) {
|
|
|
result += 'godine';
|
|
|
} else {
|
|
|
result += 'godina';
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var bs = moment.defineLocale('bs', {
|
|
|
months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
|
|
|
weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY H:mm',
|
|
|
LLLL: 'dddd, D. MMMM YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[danas u] LT',
|
|
|
nextDay: '[sutra u] LT',
|
|
|
nextWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[u] [nedjelju] [u] LT';
|
|
|
case 3:
|
|
|
return '[u] [srijedu] [u] LT';
|
|
|
case 6:
|
|
|
return '[u] [subotu] [u] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[u] dddd [u] LT';
|
|
|
}
|
|
|
},
|
|
|
lastDay: '[jučer u] LT',
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
case 3:
|
|
|
return '[prošlu] dddd [u] LT';
|
|
|
case 6:
|
|
|
return '[prošle] [subote] [u] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[prošli] dddd [u] LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'za %s',
|
|
|
past: 'prije %s',
|
|
|
s: 'par sekundi',
|
|
|
ss: translate,
|
|
|
m: translate,
|
|
|
mm: translate,
|
|
|
h: translate,
|
|
|
hh: translate,
|
|
|
d: 'dan',
|
|
|
dd: translate,
|
|
|
M: 'mjesec',
|
|
|
MM: translate,
|
|
|
y: 'godinu',
|
|
|
yy: translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return bs;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ca.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ca.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Catalan [ca]
|
|
|
//! author : Juan G. Hurtado : https://github.com/juanghurtado
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var ca = moment.defineLocale('ca', {
|
|
|
months: {
|
|
|
standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split(
|
|
|
'_'
|
|
|
),
|
|
|
isFormat: /D[oD]?(\s)+MMMM/,
|
|
|
},
|
|
|
monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
|
|
|
weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM [de] YYYY',
|
|
|
ll: 'D MMM YYYY',
|
|
|
LLL: 'D MMMM [de] YYYY [a les] H:mm',
|
|
|
lll: 'D MMM YYYY, H:mm',
|
|
|
LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
|
|
|
llll: 'ddd D MMM YYYY, H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: function () {
|
|
|
return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
|
|
|
},
|
|
|
nextDay: function () {
|
|
|
return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
|
|
|
},
|
|
|
nextWeek: function () {
|
|
|
return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
|
|
|
},
|
|
|
lastDay: function () {
|
|
|
return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
|
|
|
},
|
|
|
lastWeek: function () {
|
|
|
return (
|
|
|
'[el] dddd [passat a ' +
|
|
|
(this.hours() !== 1 ? 'les' : 'la') +
|
|
|
'] LT'
|
|
|
);
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: "d'aquí %s",
|
|
|
past: 'fa %s',
|
|
|
s: 'uns segons',
|
|
|
ss: '%d segons',
|
|
|
m: 'un minut',
|
|
|
mm: '%d minuts',
|
|
|
h: 'una hora',
|
|
|
hh: '%d hores',
|
|
|
d: 'un dia',
|
|
|
dd: '%d dies',
|
|
|
M: 'un mes',
|
|
|
MM: '%d mesos',
|
|
|
y: 'un any',
|
|
|
yy: '%d anys',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
|
|
|
ordinal: function (number, period) {
|
|
|
var output =
|
|
|
number === 1
|
|
|
? 'r'
|
|
|
: number === 2
|
|
|
? 'n'
|
|
|
: number === 3
|
|
|
? 'r'
|
|
|
: number === 4
|
|
|
? 't'
|
|
|
: 'è';
|
|
|
if (period === 'w' || period === 'W') {
|
|
|
output = 'a';
|
|
|
}
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ca;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/cs.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/cs.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Czech [cs]
|
|
|
//! author : petrbela : https://github.com/petrbela
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
|
|
|
monthsParse = [
|
|
|
/^led/i,
|
|
|
/^úno/i,
|
|
|
/^bře/i,
|
|
|
/^dub/i,
|
|
|
/^kvě/i,
|
|
|
/^(čvn|červen$|června)/i,
|
|
|
/^(čvc|červenec|července)/i,
|
|
|
/^srp/i,
|
|
|
/^zář/i,
|
|
|
/^říj/i,
|
|
|
/^lis/i,
|
|
|
/^pro/i,
|
|
|
],
|
|
|
// NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
|
|
|
// Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
|
|
|
monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;
|
|
|
|
|
|
function plural(n) {
|
|
|
return n > 1 && n < 5 && ~~(n / 10) !== 1;
|
|
|
}
|
|
|
function translate(number, withoutSuffix, key, isFuture) {
|
|
|
var result = number + ' ';
|
|
|
switch (key) {
|
|
|
case 's': // a few seconds / in a few seconds / a few seconds ago
|
|
|
return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';
|
|
|
case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'sekundy' : 'sekund');
|
|
|
} else {
|
|
|
return result + 'sekundami';
|
|
|
}
|
|
|
case 'm': // a minute / in a minute / a minute ago
|
|
|
return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';
|
|
|
case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'minuty' : 'minut');
|
|
|
} else {
|
|
|
return result + 'minutami';
|
|
|
}
|
|
|
case 'h': // an hour / in an hour / an hour ago
|
|
|
return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
|
|
|
case 'hh': // 9 hours / in 9 hours / 9 hours ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'hodiny' : 'hodin');
|
|
|
} else {
|
|
|
return result + 'hodinami';
|
|
|
}
|
|
|
case 'd': // a day / in a day / a day ago
|
|
|
return withoutSuffix || isFuture ? 'den' : 'dnem';
|
|
|
case 'dd': // 9 days / in 9 days / 9 days ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'dny' : 'dní');
|
|
|
} else {
|
|
|
return result + 'dny';
|
|
|
}
|
|
|
case 'M': // a month / in a month / a month ago
|
|
|
return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';
|
|
|
case 'MM': // 9 months / in 9 months / 9 months ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'měsíce' : 'měsíců');
|
|
|
} else {
|
|
|
return result + 'měsíci';
|
|
|
}
|
|
|
case 'y': // a year / in a year / a year ago
|
|
|
return withoutSuffix || isFuture ? 'rok' : 'rokem';
|
|
|
case 'yy': // 9 years / in 9 years / 9 years ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'roky' : 'let');
|
|
|
} else {
|
|
|
return result + 'lety';
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var cs = moment.defineLocale('cs', {
|
|
|
months: months,
|
|
|
monthsShort: monthsShort,
|
|
|
monthsRegex: monthsRegex,
|
|
|
monthsShortRegex: monthsRegex,
|
|
|
// NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
|
|
|
// Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
|
|
|
monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,
|
|
|
monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: monthsParse,
|
|
|
weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
|
|
|
weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
|
|
|
weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY H:mm',
|
|
|
LLLL: 'dddd D. MMMM YYYY H:mm',
|
|
|
l: 'D. M. YYYY',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[dnes v] LT',
|
|
|
nextDay: '[zítra v] LT',
|
|
|
nextWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[v neděli v] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
return '[v] dddd [v] LT';
|
|
|
case 3:
|
|
|
return '[ve středu v] LT';
|
|
|
case 4:
|
|
|
return '[ve čtvrtek v] LT';
|
|
|
case 5:
|
|
|
return '[v pátek v] LT';
|
|
|
case 6:
|
|
|
return '[v sobotu v] LT';
|
|
|
}
|
|
|
},
|
|
|
lastDay: '[včera v] LT',
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[minulou neděli v] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
return '[minulé] dddd [v] LT';
|
|
|
case 3:
|
|
|
return '[minulou středu v] LT';
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[minulý] dddd [v] LT';
|
|
|
case 6:
|
|
|
return '[minulou sobotu v] LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'za %s',
|
|
|
past: 'před %s',
|
|
|
s: translate,
|
|
|
ss: translate,
|
|
|
m: translate,
|
|
|
mm: translate,
|
|
|
h: translate,
|
|
|
hh: translate,
|
|
|
d: translate,
|
|
|
dd: translate,
|
|
|
M: translate,
|
|
|
MM: translate,
|
|
|
y: translate,
|
|
|
yy: translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return cs;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/cv.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/cv.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Chuvash [cv]
|
|
|
//! author : Anatoly Mironov : https://github.com/mirontoli
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var cv = moment.defineLocale('cv', {
|
|
|
months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
|
|
|
weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
|
|
|
weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD-MM-YYYY',
|
|
|
LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
|
|
|
LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
|
|
|
LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Паян] LT [сехетре]',
|
|
|
nextDay: '[Ыран] LT [сехетре]',
|
|
|
lastDay: '[Ӗнер] LT [сехетре]',
|
|
|
nextWeek: '[Ҫитес] dddd LT [сехетре]',
|
|
|
lastWeek: '[Иртнӗ] dddd LT [сехетре]',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: function (output) {
|
|
|
var affix = /сехет$/i.exec(output)
|
|
|
? 'рен'
|
|
|
: /ҫул$/i.exec(output)
|
|
|
? 'тан'
|
|
|
: 'ран';
|
|
|
return output + affix;
|
|
|
},
|
|
|
past: '%s каялла',
|
|
|
s: 'пӗр-ик ҫеккунт',
|
|
|
ss: '%d ҫеккунт',
|
|
|
m: 'пӗр минут',
|
|
|
mm: '%d минут',
|
|
|
h: 'пӗр сехет',
|
|
|
hh: '%d сехет',
|
|
|
d: 'пӗр кун',
|
|
|
dd: '%d кун',
|
|
|
M: 'пӗр уйӑх',
|
|
|
MM: '%d уйӑх',
|
|
|
y: 'пӗр ҫул',
|
|
|
yy: '%d ҫул',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
|
|
|
ordinal: '%d-мӗш',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return cv;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/cy.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/cy.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Welsh [cy]
|
|
|
//! author : Robert Allen : https://github.com/robgallen
|
|
|
//! author : https://github.com/ryangreaves
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var cy = moment.defineLocale('cy', {
|
|
|
months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
|
|
|
weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
// time formats are the same as en-gb
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Heddiw am] LT',
|
|
|
nextDay: '[Yfory am] LT',
|
|
|
nextWeek: 'dddd [am] LT',
|
|
|
lastDay: '[Ddoe am] LT',
|
|
|
lastWeek: 'dddd [diwethaf am] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'mewn %s',
|
|
|
past: '%s yn ôl',
|
|
|
s: 'ychydig eiliadau',
|
|
|
ss: '%d eiliad',
|
|
|
m: 'munud',
|
|
|
mm: '%d munud',
|
|
|
h: 'awr',
|
|
|
hh: '%d awr',
|
|
|
d: 'diwrnod',
|
|
|
dd: '%d diwrnod',
|
|
|
M: 'mis',
|
|
|
MM: '%d mis',
|
|
|
y: 'blwyddyn',
|
|
|
yy: '%d flynedd',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
|
|
|
// traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
|
|
|
ordinal: function (number) {
|
|
|
var b = number,
|
|
|
output = '',
|
|
|
lookup = [
|
|
|
'',
|
|
|
'af',
|
|
|
'il',
|
|
|
'ydd',
|
|
|
'ydd',
|
|
|
'ed',
|
|
|
'ed',
|
|
|
'ed',
|
|
|
'fed',
|
|
|
'fed',
|
|
|
'fed', // 1af to 10fed
|
|
|
'eg',
|
|
|
'fed',
|
|
|
'eg',
|
|
|
'eg',
|
|
|
'fed',
|
|
|
'eg',
|
|
|
'eg',
|
|
|
'fed',
|
|
|
'eg',
|
|
|
'fed', // 11eg to 20fed
|
|
|
];
|
|
|
if (b > 20) {
|
|
|
if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
|
|
|
output = 'fed'; // not 30ain, 70ain or 90ain
|
|
|
} else {
|
|
|
output = 'ain';
|
|
|
}
|
|
|
} else if (b > 0) {
|
|
|
output = lookup[b];
|
|
|
}
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return cy;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/da.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/da.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Danish [da]
|
|
|
//! author : Ulrik Nielsen : https://github.com/mrbase
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var da = moment.defineLocale('da', {
|
|
|
months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
|
|
|
weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
|
|
|
weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),
|
|
|
weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[i dag kl.] LT',
|
|
|
nextDay: '[i morgen kl.] LT',
|
|
|
nextWeek: 'på dddd [kl.] LT',
|
|
|
lastDay: '[i går kl.] LT',
|
|
|
lastWeek: '[i] dddd[s kl.] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'om %s',
|
|
|
past: '%s siden',
|
|
|
s: 'få sekunder',
|
|
|
ss: '%d sekunder',
|
|
|
m: 'et minut',
|
|
|
mm: '%d minutter',
|
|
|
h: 'en time',
|
|
|
hh: '%d timer',
|
|
|
d: 'en dag',
|
|
|
dd: '%d dage',
|
|
|
M: 'en måned',
|
|
|
MM: '%d måneder',
|
|
|
y: 'et år',
|
|
|
yy: '%d år',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return da;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/de-at.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/de-at.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : German (Austria) [de-at]
|
|
|
//! author : lluchs : https://github.com/lluchs
|
|
|
//! author: Menelion Elensúle: https://github.com/Oire
|
|
|
//! author : Martin Groller : https://github.com/MadMG
|
|
|
//! author : Mikolaj Dadela : https://github.com/mik01aj
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
|
|
var format = {
|
|
|
m: ['eine Minute', 'einer Minute'],
|
|
|
h: ['eine Stunde', 'einer Stunde'],
|
|
|
d: ['ein Tag', 'einem Tag'],
|
|
|
dd: [number + ' Tage', number + ' Tagen'],
|
|
|
w: ['eine Woche', 'einer Woche'],
|
|
|
M: ['ein Monat', 'einem Monat'],
|
|
|
MM: [number + ' Monate', number + ' Monaten'],
|
|
|
y: ['ein Jahr', 'einem Jahr'],
|
|
|
yy: [number + ' Jahre', number + ' Jahren'],
|
|
|
};
|
|
|
return withoutSuffix ? format[key][0] : format[key][1];
|
|
|
}
|
|
|
|
|
|
var deAt = moment.defineLocale('de-at', {
|
|
|
months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
|
|
|
weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D. MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[heute um] LT [Uhr]',
|
|
|
sameElse: 'L',
|
|
|
nextDay: '[morgen um] LT [Uhr]',
|
|
|
nextWeek: 'dddd [um] LT [Uhr]',
|
|
|
lastDay: '[gestern um] LT [Uhr]',
|
|
|
lastWeek: '[letzten] dddd [um] LT [Uhr]',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'in %s',
|
|
|
past: 'vor %s',
|
|
|
s: 'ein paar Sekunden',
|
|
|
ss: '%d Sekunden',
|
|
|
m: processRelativeTime,
|
|
|
mm: '%d Minuten',
|
|
|
h: processRelativeTime,
|
|
|
hh: '%d Stunden',
|
|
|
d: processRelativeTime,
|
|
|
dd: processRelativeTime,
|
|
|
w: processRelativeTime,
|
|
|
ww: '%d Wochen',
|
|
|
M: processRelativeTime,
|
|
|
MM: processRelativeTime,
|
|
|
y: processRelativeTime,
|
|
|
yy: processRelativeTime,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return deAt;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/de-ch.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/de-ch.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : German (Switzerland) [de-ch]
|
|
|
//! author : sschueller : https://github.com/sschueller
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
|
|
var format = {
|
|
|
m: ['eine Minute', 'einer Minute'],
|
|
|
h: ['eine Stunde', 'einer Stunde'],
|
|
|
d: ['ein Tag', 'einem Tag'],
|
|
|
dd: [number + ' Tage', number + ' Tagen'],
|
|
|
w: ['eine Woche', 'einer Woche'],
|
|
|
M: ['ein Monat', 'einem Monat'],
|
|
|
MM: [number + ' Monate', number + ' Monaten'],
|
|
|
y: ['ein Jahr', 'einem Jahr'],
|
|
|
yy: [number + ' Jahre', number + ' Jahren'],
|
|
|
};
|
|
|
return withoutSuffix ? format[key][0] : format[key][1];
|
|
|
}
|
|
|
|
|
|
var deCh = moment.defineLocale('de-ch', {
|
|
|
months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
|
|
|
weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D. MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[heute um] LT [Uhr]',
|
|
|
sameElse: 'L',
|
|
|
nextDay: '[morgen um] LT [Uhr]',
|
|
|
nextWeek: 'dddd [um] LT [Uhr]',
|
|
|
lastDay: '[gestern um] LT [Uhr]',
|
|
|
lastWeek: '[letzten] dddd [um] LT [Uhr]',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'in %s',
|
|
|
past: 'vor %s',
|
|
|
s: 'ein paar Sekunden',
|
|
|
ss: '%d Sekunden',
|
|
|
m: processRelativeTime,
|
|
|
mm: '%d Minuten',
|
|
|
h: processRelativeTime,
|
|
|
hh: '%d Stunden',
|
|
|
d: processRelativeTime,
|
|
|
dd: processRelativeTime,
|
|
|
w: processRelativeTime,
|
|
|
ww: '%d Wochen',
|
|
|
M: processRelativeTime,
|
|
|
MM: processRelativeTime,
|
|
|
y: processRelativeTime,
|
|
|
yy: processRelativeTime,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return deCh;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/de.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/de.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : German [de]
|
|
|
//! author : lluchs : https://github.com/lluchs
|
|
|
//! author: Menelion Elensúle: https://github.com/Oire
|
|
|
//! author : Mikolaj Dadela : https://github.com/mik01aj
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
|
|
var format = {
|
|
|
m: ['eine Minute', 'einer Minute'],
|
|
|
h: ['eine Stunde', 'einer Stunde'],
|
|
|
d: ['ein Tag', 'einem Tag'],
|
|
|
dd: [number + ' Tage', number + ' Tagen'],
|
|
|
w: ['eine Woche', 'einer Woche'],
|
|
|
M: ['ein Monat', 'einem Monat'],
|
|
|
MM: [number + ' Monate', number + ' Monaten'],
|
|
|
y: ['ein Jahr', 'einem Jahr'],
|
|
|
yy: [number + ' Jahre', number + ' Jahren'],
|
|
|
};
|
|
|
return withoutSuffix ? format[key][0] : format[key][1];
|
|
|
}
|
|
|
|
|
|
var de = moment.defineLocale('de', {
|
|
|
months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
|
|
|
weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D. MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[heute um] LT [Uhr]',
|
|
|
sameElse: 'L',
|
|
|
nextDay: '[morgen um] LT [Uhr]',
|
|
|
nextWeek: 'dddd [um] LT [Uhr]',
|
|
|
lastDay: '[gestern um] LT [Uhr]',
|
|
|
lastWeek: '[letzten] dddd [um] LT [Uhr]',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'in %s',
|
|
|
past: 'vor %s',
|
|
|
s: 'ein paar Sekunden',
|
|
|
ss: '%d Sekunden',
|
|
|
m: processRelativeTime,
|
|
|
mm: '%d Minuten',
|
|
|
h: processRelativeTime,
|
|
|
hh: '%d Stunden',
|
|
|
d: processRelativeTime,
|
|
|
dd: processRelativeTime,
|
|
|
w: processRelativeTime,
|
|
|
ww: '%d Wochen',
|
|
|
M: processRelativeTime,
|
|
|
MM: processRelativeTime,
|
|
|
y: processRelativeTime,
|
|
|
yy: processRelativeTime,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return de;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/dv.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/dv.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Maldivian [dv]
|
|
|
//! author : Jawish Hameed : https://github.com/jawish
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var months = [
|
|
|
'ޖެނުއަރީ',
|
|
|
'ފެބްރުއަރީ',
|
|
|
'މާރިޗު',
|
|
|
'އޭޕްރީލު',
|
|
|
'މޭ',
|
|
|
'ޖޫން',
|
|
|
'ޖުލައި',
|
|
|
'އޯގަސްޓު',
|
|
|
'ސެޕްޓެމްބަރު',
|
|
|
'އޮކްޓޯބަރު',
|
|
|
'ނޮވެމްބަރު',
|
|
|
'ޑިސެމްބަރު',
|
|
|
],
|
|
|
weekdays = [
|
|
|
'އާދިއްތަ',
|
|
|
'ހޯމަ',
|
|
|
'އަންގާރަ',
|
|
|
'ބުދަ',
|
|
|
'ބުރާސްފަތި',
|
|
|
'ހުކުރު',
|
|
|
'ހޮނިހިރު',
|
|
|
];
|
|
|
|
|
|
var dv = moment.defineLocale('dv', {
|
|
|
months: months,
|
|
|
monthsShort: months,
|
|
|
weekdays: weekdays,
|
|
|
weekdaysShort: weekdays,
|
|
|
weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'D/M/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /މކ|މފ/,
|
|
|
isPM: function (input) {
|
|
|
return 'މފ' === input;
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'މކ';
|
|
|
} else {
|
|
|
return 'މފ';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[މިއަދު] LT',
|
|
|
nextDay: '[މާދަމާ] LT',
|
|
|
nextWeek: 'dddd LT',
|
|
|
lastDay: '[އިއްޔެ] LT',
|
|
|
lastWeek: '[ފާއިތުވި] dddd LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'ތެރޭގައި %s',
|
|
|
past: 'ކުރިން %s',
|
|
|
s: 'ސިކުންތުކޮޅެއް',
|
|
|
ss: 'd% ސިކުންތު',
|
|
|
m: 'މިނިޓެއް',
|
|
|
mm: 'މިނިޓު %d',
|
|
|
h: 'ގަޑިއިރެއް',
|
|
|
hh: 'ގަޑިއިރު %d',
|
|
|
d: 'ދުވަހެއް',
|
|
|
dd: 'ދުވަސް %d',
|
|
|
M: 'މަހެއް',
|
|
|
MM: 'މަސް %d',
|
|
|
y: 'އަހަރެއް',
|
|
|
yy: 'އަހަރު %d',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/،/g, ',');
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/,/g, '،');
|
|
|
},
|
|
|
week: {
|
|
|
dow: 7, // Sunday is the first day of the week.
|
|
|
doy: 12, // The week that contains Jan 12th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return dv;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/el.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/el.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Greek [el]
|
|
|
//! author : Aggelos Karalias : https://github.com/mehiel
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function isFunction(input) {
|
|
|
return (
|
|
|
(typeof Function !== 'undefined' && input instanceof Function) ||
|
|
|
Object.prototype.toString.call(input) === '[object Function]'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
var el = moment.defineLocale('el', {
|
|
|
monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(
|
|
|
'_'
|
|
|
),
|
|
|
months: function (momentToFormat, format) {
|
|
|
if (!momentToFormat) {
|
|
|
return this._monthsNominativeEl;
|
|
|
} else if (
|
|
|
typeof format === 'string' &&
|
|
|
/D/.test(format.substring(0, format.indexOf('MMMM')))
|
|
|
) {
|
|
|
// if there is a day number before 'MMMM'
|
|
|
return this._monthsGenitiveEl[momentToFormat.month()];
|
|
|
} else {
|
|
|
return this._monthsNominativeEl[momentToFormat.month()];
|
|
|
}
|
|
|
},
|
|
|
monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
|
|
|
weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
|
|
|
weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours > 11) {
|
|
|
return isLower ? 'μμ' : 'ΜΜ';
|
|
|
} else {
|
|
|
return isLower ? 'πμ' : 'ΠΜ';
|
|
|
}
|
|
|
},
|
|
|
isPM: function (input) {
|
|
|
return (input + '').toLowerCase()[0] === 'μ';
|
|
|
},
|
|
|
meridiemParse: /[ΠΜ]\.?Μ?\.?/i,
|
|
|
longDateFormat: {
|
|
|
LT: 'h:mm A',
|
|
|
LTS: 'h:mm:ss A',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY h:mm A',
|
|
|
LLLL: 'dddd, D MMMM YYYY h:mm A',
|
|
|
},
|
|
|
calendarEl: {
|
|
|
sameDay: '[Σήμερα {}] LT',
|
|
|
nextDay: '[Αύριο {}] LT',
|
|
|
nextWeek: 'dddd [{}] LT',
|
|
|
lastDay: '[Χθες {}] LT',
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 6:
|
|
|
return '[το προηγούμενο] dddd [{}] LT';
|
|
|
default:
|
|
|
return '[την προηγούμενη] dddd [{}] LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
calendar: function (key, mom) {
|
|
|
var output = this._calendarEl[key],
|
|
|
hours = mom && mom.hours();
|
|
|
if (isFunction(output)) {
|
|
|
output = output.apply(mom);
|
|
|
}
|
|
|
return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'σε %s',
|
|
|
past: '%s πριν',
|
|
|
s: 'λίγα δευτερόλεπτα',
|
|
|
ss: '%d δευτερόλεπτα',
|
|
|
m: 'ένα λεπτό',
|
|
|
mm: '%d λεπτά',
|
|
|
h: 'μία ώρα',
|
|
|
hh: '%d ώρες',
|
|
|
d: 'μία μέρα',
|
|
|
dd: '%d μέρες',
|
|
|
M: 'ένας μήνας',
|
|
|
MM: '%d μήνες',
|
|
|
y: 'ένας χρόνος',
|
|
|
yy: '%d χρόνια',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}η/,
|
|
|
ordinal: '%dη',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4st is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return el;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/en-au.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/en-au.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : English (Australia) [en-au]
|
|
|
//! author : Jared Morse : https://github.com/jarcoal
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var enAu = moment.defineLocale('en-au', {
|
|
|
months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
|
|
|
weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
|
|
|
weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'h:mm A',
|
|
|
LTS: 'h:mm:ss A',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY h:mm A',
|
|
|
LLLL: 'dddd, D MMMM YYYY h:mm A',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Today at] LT',
|
|
|
nextDay: '[Tomorrow at] LT',
|
|
|
nextWeek: 'dddd [at] LT',
|
|
|
lastDay: '[Yesterday at] LT',
|
|
|
lastWeek: '[Last] dddd [at] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'in %s',
|
|
|
past: '%s ago',
|
|
|
s: 'a few seconds',
|
|
|
ss: '%d seconds',
|
|
|
m: 'a minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'an hour',
|
|
|
hh: '%d hours',
|
|
|
d: 'a day',
|
|
|
dd: '%d days',
|
|
|
M: 'a month',
|
|
|
MM: '%d months',
|
|
|
y: 'a year',
|
|
|
yy: '%d years',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
~~((number % 100) / 10) === 1
|
|
|
? 'th'
|
|
|
: b === 1
|
|
|
? 'st'
|
|
|
: b === 2
|
|
|
? 'nd'
|
|
|
: b === 3
|
|
|
? 'rd'
|
|
|
: 'th';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return enAu;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/en-ca.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/en-ca.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : English (Canada) [en-ca]
|
|
|
//! author : Jonathan Abourbih : https://github.com/jonbca
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var enCa = moment.defineLocale('en-ca', {
|
|
|
months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
|
|
|
weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
|
|
|
weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'h:mm A',
|
|
|
LTS: 'h:mm:ss A',
|
|
|
L: 'YYYY-MM-DD',
|
|
|
LL: 'MMMM D, YYYY',
|
|
|
LLL: 'MMMM D, YYYY h:mm A',
|
|
|
LLLL: 'dddd, MMMM D, YYYY h:mm A',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Today at] LT',
|
|
|
nextDay: '[Tomorrow at] LT',
|
|
|
nextWeek: 'dddd [at] LT',
|
|
|
lastDay: '[Yesterday at] LT',
|
|
|
lastWeek: '[Last] dddd [at] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'in %s',
|
|
|
past: '%s ago',
|
|
|
s: 'a few seconds',
|
|
|
ss: '%d seconds',
|
|
|
m: 'a minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'an hour',
|
|
|
hh: '%d hours',
|
|
|
d: 'a day',
|
|
|
dd: '%d days',
|
|
|
M: 'a month',
|
|
|
MM: '%d months',
|
|
|
y: 'a year',
|
|
|
yy: '%d years',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
~~((number % 100) / 10) === 1
|
|
|
? 'th'
|
|
|
: b === 1
|
|
|
? 'st'
|
|
|
: b === 2
|
|
|
? 'nd'
|
|
|
: b === 3
|
|
|
? 'rd'
|
|
|
: 'th';
|
|
|
return number + output;
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return enCa;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/en-gb.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/en-gb.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : English (United Kingdom) [en-gb]
|
|
|
//! author : Chris Gedrim : https://github.com/chrisgedrim
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var enGb = moment.defineLocale('en-gb', {
|
|
|
months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
|
|
|
weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
|
|
|
weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Today at] LT',
|
|
|
nextDay: '[Tomorrow at] LT',
|
|
|
nextWeek: 'dddd [at] LT',
|
|
|
lastDay: '[Yesterday at] LT',
|
|
|
lastWeek: '[Last] dddd [at] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'in %s',
|
|
|
past: '%s ago',
|
|
|
s: 'a few seconds',
|
|
|
ss: '%d seconds',
|
|
|
m: 'a minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'an hour',
|
|
|
hh: '%d hours',
|
|
|
d: 'a day',
|
|
|
dd: '%d days',
|
|
|
M: 'a month',
|
|
|
MM: '%d months',
|
|
|
y: 'a year',
|
|
|
yy: '%d years',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
~~((number % 100) / 10) === 1
|
|
|
? 'th'
|
|
|
: b === 1
|
|
|
? 'st'
|
|
|
: b === 2
|
|
|
? 'nd'
|
|
|
: b === 3
|
|
|
? 'rd'
|
|
|
: 'th';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return enGb;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/en-ie.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/en-ie.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : English (Ireland) [en-ie]
|
|
|
//! author : Chris Cartlidge : https://github.com/chriscartlidge
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var enIe = moment.defineLocale('en-ie', {
|
|
|
months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
|
|
|
weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
|
|
|
weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Today at] LT',
|
|
|
nextDay: '[Tomorrow at] LT',
|
|
|
nextWeek: 'dddd [at] LT',
|
|
|
lastDay: '[Yesterday at] LT',
|
|
|
lastWeek: '[Last] dddd [at] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'in %s',
|
|
|
past: '%s ago',
|
|
|
s: 'a few seconds',
|
|
|
ss: '%d seconds',
|
|
|
m: 'a minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'an hour',
|
|
|
hh: '%d hours',
|
|
|
d: 'a day',
|
|
|
dd: '%d days',
|
|
|
M: 'a month',
|
|
|
MM: '%d months',
|
|
|
y: 'a year',
|
|
|
yy: '%d years',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
~~((number % 100) / 10) === 1
|
|
|
? 'th'
|
|
|
: b === 1
|
|
|
? 'st'
|
|
|
: b === 2
|
|
|
? 'nd'
|
|
|
: b === 3
|
|
|
? 'rd'
|
|
|
: 'th';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return enIe;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/en-il.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/en-il.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : English (Israel) [en-il]
|
|
|
//! author : Chris Gedrim : https://github.com/chrisgedrim
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var enIl = moment.defineLocale('en-il', {
|
|
|
months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
|
|
|
weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
|
|
|
weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Today at] LT',
|
|
|
nextDay: '[Tomorrow at] LT',
|
|
|
nextWeek: 'dddd [at] LT',
|
|
|
lastDay: '[Yesterday at] LT',
|
|
|
lastWeek: '[Last] dddd [at] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'in %s',
|
|
|
past: '%s ago',
|
|
|
s: 'a few seconds',
|
|
|
ss: '%d seconds',
|
|
|
m: 'a minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'an hour',
|
|
|
hh: '%d hours',
|
|
|
d: 'a day',
|
|
|
dd: '%d days',
|
|
|
M: 'a month',
|
|
|
MM: '%d months',
|
|
|
y: 'a year',
|
|
|
yy: '%d years',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
~~((number % 100) / 10) === 1
|
|
|
? 'th'
|
|
|
: b === 1
|
|
|
? 'st'
|
|
|
: b === 2
|
|
|
? 'nd'
|
|
|
: b === 3
|
|
|
? 'rd'
|
|
|
: 'th';
|
|
|
return number + output;
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return enIl;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/en-in.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/en-in.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : English (India) [en-in]
|
|
|
//! author : Jatin Agrawal : https://github.com/jatinag22
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var enIn = moment.defineLocale('en-in', {
|
|
|
months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
|
|
|
weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
|
|
|
weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'h:mm A',
|
|
|
LTS: 'h:mm:ss A',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY h:mm A',
|
|
|
LLLL: 'dddd, D MMMM YYYY h:mm A',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Today at] LT',
|
|
|
nextDay: '[Tomorrow at] LT',
|
|
|
nextWeek: 'dddd [at] LT',
|
|
|
lastDay: '[Yesterday at] LT',
|
|
|
lastWeek: '[Last] dddd [at] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'in %s',
|
|
|
past: '%s ago',
|
|
|
s: 'a few seconds',
|
|
|
ss: '%d seconds',
|
|
|
m: 'a minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'an hour',
|
|
|
hh: '%d hours',
|
|
|
d: 'a day',
|
|
|
dd: '%d days',
|
|
|
M: 'a month',
|
|
|
MM: '%d months',
|
|
|
y: 'a year',
|
|
|
yy: '%d years',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
~~((number % 100) / 10) === 1
|
|
|
? 'th'
|
|
|
: b === 1
|
|
|
? 'st'
|
|
|
: b === 2
|
|
|
? 'nd'
|
|
|
: b === 3
|
|
|
? 'rd'
|
|
|
: 'th';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 1st is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return enIn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/en-nz.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/en-nz.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : English (New Zealand) [en-nz]
|
|
|
//! author : Luke McGregor : https://github.com/lukemcgregor
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var enNz = moment.defineLocale('en-nz', {
|
|
|
months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
|
|
|
weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
|
|
|
weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'h:mm A',
|
|
|
LTS: 'h:mm:ss A',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY h:mm A',
|
|
|
LLLL: 'dddd, D MMMM YYYY h:mm A',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Today at] LT',
|
|
|
nextDay: '[Tomorrow at] LT',
|
|
|
nextWeek: 'dddd [at] LT',
|
|
|
lastDay: '[Yesterday at] LT',
|
|
|
lastWeek: '[Last] dddd [at] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'in %s',
|
|
|
past: '%s ago',
|
|
|
s: 'a few seconds',
|
|
|
ss: '%d seconds',
|
|
|
m: 'a minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'an hour',
|
|
|
hh: '%d hours',
|
|
|
d: 'a day',
|
|
|
dd: '%d days',
|
|
|
M: 'a month',
|
|
|
MM: '%d months',
|
|
|
y: 'a year',
|
|
|
yy: '%d years',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
~~((number % 100) / 10) === 1
|
|
|
? 'th'
|
|
|
: b === 1
|
|
|
? 'st'
|
|
|
: b === 2
|
|
|
? 'nd'
|
|
|
: b === 3
|
|
|
? 'rd'
|
|
|
: 'th';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return enNz;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/en-sg.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/en-sg.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : English (Singapore) [en-sg]
|
|
|
//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var enSg = moment.defineLocale('en-sg', {
|
|
|
months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
|
|
|
weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
|
|
|
weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Today at] LT',
|
|
|
nextDay: '[Tomorrow at] LT',
|
|
|
nextWeek: 'dddd [at] LT',
|
|
|
lastDay: '[Yesterday at] LT',
|
|
|
lastWeek: '[Last] dddd [at] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'in %s',
|
|
|
past: '%s ago',
|
|
|
s: 'a few seconds',
|
|
|
ss: '%d seconds',
|
|
|
m: 'a minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'an hour',
|
|
|
hh: '%d hours',
|
|
|
d: 'a day',
|
|
|
dd: '%d days',
|
|
|
M: 'a month',
|
|
|
MM: '%d months',
|
|
|
y: 'a year',
|
|
|
yy: '%d years',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
~~((number % 100) / 10) === 1
|
|
|
? 'th'
|
|
|
: b === 1
|
|
|
? 'st'
|
|
|
: b === 2
|
|
|
? 'nd'
|
|
|
: b === 3
|
|
|
? 'rd'
|
|
|
: 'th';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return enSg;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/eo.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/eo.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Esperanto [eo]
|
|
|
//! author : Colin Dean : https://github.com/colindean
|
|
|
//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia
|
|
|
//! comment : miestasmia corrected the translation by colindean
|
|
|
//! comment : Vivakvo corrected the translation by colindean and miestasmia
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var eo = moment.defineLocale('eo', {
|
|
|
months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),
|
|
|
weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
|
|
|
weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
|
|
|
weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'YYYY-MM-DD',
|
|
|
LL: '[la] D[-an de] MMMM, YYYY',
|
|
|
LLL: '[la] D[-an de] MMMM, YYYY HH:mm',
|
|
|
LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',
|
|
|
llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /[ap]\.t\.m/i,
|
|
|
isPM: function (input) {
|
|
|
return input.charAt(0).toLowerCase() === 'p';
|
|
|
},
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours > 11) {
|
|
|
return isLower ? 'p.t.m.' : 'P.T.M.';
|
|
|
} else {
|
|
|
return isLower ? 'a.t.m.' : 'A.T.M.';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Hodiaŭ je] LT',
|
|
|
nextDay: '[Morgaŭ je] LT',
|
|
|
nextWeek: 'dddd[n je] LT',
|
|
|
lastDay: '[Hieraŭ je] LT',
|
|
|
lastWeek: '[pasintan] dddd[n je] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'post %s',
|
|
|
past: 'antaŭ %s',
|
|
|
s: 'kelkaj sekundoj',
|
|
|
ss: '%d sekundoj',
|
|
|
m: 'unu minuto',
|
|
|
mm: '%d minutoj',
|
|
|
h: 'unu horo',
|
|
|
hh: '%d horoj',
|
|
|
d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo
|
|
|
dd: '%d tagoj',
|
|
|
M: 'unu monato',
|
|
|
MM: '%d monatoj',
|
|
|
y: 'unu jaro',
|
|
|
yy: '%d jaroj',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}a/,
|
|
|
ordinal: '%da',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return eo;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/es-do.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/es-do.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Spanish (Dominican Republic) [es-do]
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
|
|
|
monthsParse = [
|
|
|
/^ene/i,
|
|
|
/^feb/i,
|
|
|
/^mar/i,
|
|
|
/^abr/i,
|
|
|
/^may/i,
|
|
|
/^jun/i,
|
|
|
/^jul/i,
|
|
|
/^ago/i,
|
|
|
/^sep/i,
|
|
|
/^oct/i,
|
|
|
/^nov/i,
|
|
|
/^dic/i,
|
|
|
],
|
|
|
monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
|
|
|
|
|
|
var esDo = moment.defineLocale('es-do', {
|
|
|
months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: function (m, format) {
|
|
|
if (!m) {
|
|
|
return monthsShortDot;
|
|
|
} else if (/-MMM-/.test(format)) {
|
|
|
return monthsShort[m.month()];
|
|
|
} else {
|
|
|
return monthsShortDot[m.month()];
|
|
|
}
|
|
|
},
|
|
|
monthsRegex: monthsRegex,
|
|
|
monthsShortRegex: monthsRegex,
|
|
|
monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
|
|
|
monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: monthsParse,
|
|
|
weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
|
|
|
weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
|
|
|
weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'h:mm A',
|
|
|
LTS: 'h:mm:ss A',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D [de] MMMM [de] YYYY',
|
|
|
LLL: 'D [de] MMMM [de] YYYY h:mm A',
|
|
|
LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: function () {
|
|
|
return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
nextDay: function () {
|
|
|
return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
nextWeek: function () {
|
|
|
return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
lastDay: function () {
|
|
|
return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
lastWeek: function () {
|
|
|
return (
|
|
|
'[el] dddd [pasado a la' +
|
|
|
(this.hours() !== 1 ? 's' : '') +
|
|
|
'] LT'
|
|
|
);
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'en %s',
|
|
|
past: 'hace %s',
|
|
|
s: 'unos segundos',
|
|
|
ss: '%d segundos',
|
|
|
m: 'un minuto',
|
|
|
mm: '%d minutos',
|
|
|
h: 'una hora',
|
|
|
hh: '%d horas',
|
|
|
d: 'un día',
|
|
|
dd: '%d días',
|
|
|
w: 'una semana',
|
|
|
ww: '%d semanas',
|
|
|
M: 'un mes',
|
|
|
MM: '%d meses',
|
|
|
y: 'un año',
|
|
|
yy: '%d años',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
|
|
ordinal: '%dº',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return esDo;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/es-mx.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/es-mx.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Spanish (Mexico) [es-mx]
|
|
|
//! author : JC Franco : https://github.com/jcfranco
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
|
|
|
monthsParse = [
|
|
|
/^ene/i,
|
|
|
/^feb/i,
|
|
|
/^mar/i,
|
|
|
/^abr/i,
|
|
|
/^may/i,
|
|
|
/^jun/i,
|
|
|
/^jul/i,
|
|
|
/^ago/i,
|
|
|
/^sep/i,
|
|
|
/^oct/i,
|
|
|
/^nov/i,
|
|
|
/^dic/i,
|
|
|
],
|
|
|
monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
|
|
|
|
|
|
var esMx = moment.defineLocale('es-mx', {
|
|
|
months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: function (m, format) {
|
|
|
if (!m) {
|
|
|
return monthsShortDot;
|
|
|
} else if (/-MMM-/.test(format)) {
|
|
|
return monthsShort[m.month()];
|
|
|
} else {
|
|
|
return monthsShortDot[m.month()];
|
|
|
}
|
|
|
},
|
|
|
monthsRegex: monthsRegex,
|
|
|
monthsShortRegex: monthsRegex,
|
|
|
monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
|
|
|
monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: monthsParse,
|
|
|
weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
|
|
|
weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
|
|
|
weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D [de] MMMM [de] YYYY',
|
|
|
LLL: 'D [de] MMMM [de] YYYY H:mm',
|
|
|
LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: function () {
|
|
|
return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
nextDay: function () {
|
|
|
return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
nextWeek: function () {
|
|
|
return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
lastDay: function () {
|
|
|
return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
lastWeek: function () {
|
|
|
return (
|
|
|
'[el] dddd [pasado a la' +
|
|
|
(this.hours() !== 1 ? 's' : '') +
|
|
|
'] LT'
|
|
|
);
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'en %s',
|
|
|
past: 'hace %s',
|
|
|
s: 'unos segundos',
|
|
|
ss: '%d segundos',
|
|
|
m: 'un minuto',
|
|
|
mm: '%d minutos',
|
|
|
h: 'una hora',
|
|
|
hh: '%d horas',
|
|
|
d: 'un día',
|
|
|
dd: '%d días',
|
|
|
w: 'una semana',
|
|
|
ww: '%d semanas',
|
|
|
M: 'un mes',
|
|
|
MM: '%d meses',
|
|
|
y: 'un año',
|
|
|
yy: '%d años',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
|
|
ordinal: '%dº',
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
invalidDate: 'Fecha inválida',
|
|
|
});
|
|
|
|
|
|
return esMx;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/es-us.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/es-us.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Spanish (United States) [es-us]
|
|
|
//! author : bustta : https://github.com/bustta
|
|
|
//! author : chrisrodz : https://github.com/chrisrodz
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
|
|
|
monthsParse = [
|
|
|
/^ene/i,
|
|
|
/^feb/i,
|
|
|
/^mar/i,
|
|
|
/^abr/i,
|
|
|
/^may/i,
|
|
|
/^jun/i,
|
|
|
/^jul/i,
|
|
|
/^ago/i,
|
|
|
/^sep/i,
|
|
|
/^oct/i,
|
|
|
/^nov/i,
|
|
|
/^dic/i,
|
|
|
],
|
|
|
monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
|
|
|
|
|
|
var esUs = moment.defineLocale('es-us', {
|
|
|
months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: function (m, format) {
|
|
|
if (!m) {
|
|
|
return monthsShortDot;
|
|
|
} else if (/-MMM-/.test(format)) {
|
|
|
return monthsShort[m.month()];
|
|
|
} else {
|
|
|
return monthsShortDot[m.month()];
|
|
|
}
|
|
|
},
|
|
|
monthsRegex: monthsRegex,
|
|
|
monthsShortRegex: monthsRegex,
|
|
|
monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
|
|
|
monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: monthsParse,
|
|
|
weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
|
|
|
weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
|
|
|
weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'h:mm A',
|
|
|
LTS: 'h:mm:ss A',
|
|
|
L: 'MM/DD/YYYY',
|
|
|
LL: 'D [de] MMMM [de] YYYY',
|
|
|
LLL: 'D [de] MMMM [de] YYYY h:mm A',
|
|
|
LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: function () {
|
|
|
return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
nextDay: function () {
|
|
|
return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
nextWeek: function () {
|
|
|
return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
lastDay: function () {
|
|
|
return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
lastWeek: function () {
|
|
|
return (
|
|
|
'[el] dddd [pasado a la' +
|
|
|
(this.hours() !== 1 ? 's' : '') +
|
|
|
'] LT'
|
|
|
);
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'en %s',
|
|
|
past: 'hace %s',
|
|
|
s: 'unos segundos',
|
|
|
ss: '%d segundos',
|
|
|
m: 'un minuto',
|
|
|
mm: '%d minutos',
|
|
|
h: 'una hora',
|
|
|
hh: '%d horas',
|
|
|
d: 'un día',
|
|
|
dd: '%d días',
|
|
|
w: 'una semana',
|
|
|
ww: '%d semanas',
|
|
|
M: 'un mes',
|
|
|
MM: '%d meses',
|
|
|
y: 'un año',
|
|
|
yy: '%d años',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
|
|
ordinal: '%dº',
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return esUs;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/es.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/es.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Spanish [es]
|
|
|
//! author : Julio Napurí : https://github.com/julionc
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
|
|
|
monthsParse = [
|
|
|
/^ene/i,
|
|
|
/^feb/i,
|
|
|
/^mar/i,
|
|
|
/^abr/i,
|
|
|
/^may/i,
|
|
|
/^jun/i,
|
|
|
/^jul/i,
|
|
|
/^ago/i,
|
|
|
/^sep/i,
|
|
|
/^oct/i,
|
|
|
/^nov/i,
|
|
|
/^dic/i,
|
|
|
],
|
|
|
monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
|
|
|
|
|
|
var es = moment.defineLocale('es', {
|
|
|
months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: function (m, format) {
|
|
|
if (!m) {
|
|
|
return monthsShortDot;
|
|
|
} else if (/-MMM-/.test(format)) {
|
|
|
return monthsShort[m.month()];
|
|
|
} else {
|
|
|
return monthsShortDot[m.month()];
|
|
|
}
|
|
|
},
|
|
|
monthsRegex: monthsRegex,
|
|
|
monthsShortRegex: monthsRegex,
|
|
|
monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
|
|
|
monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: monthsParse,
|
|
|
weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
|
|
|
weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
|
|
|
weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D [de] MMMM [de] YYYY',
|
|
|
LLL: 'D [de] MMMM [de] YYYY H:mm',
|
|
|
LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: function () {
|
|
|
return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
nextDay: function () {
|
|
|
return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
nextWeek: function () {
|
|
|
return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
lastDay: function () {
|
|
|
return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
|
|
|
},
|
|
|
lastWeek: function () {
|
|
|
return (
|
|
|
'[el] dddd [pasado a la' +
|
|
|
(this.hours() !== 1 ? 's' : '') +
|
|
|
'] LT'
|
|
|
);
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'en %s',
|
|
|
past: 'hace %s',
|
|
|
s: 'unos segundos',
|
|
|
ss: '%d segundos',
|
|
|
m: 'un minuto',
|
|
|
mm: '%d minutos',
|
|
|
h: 'una hora',
|
|
|
hh: '%d horas',
|
|
|
d: 'un día',
|
|
|
dd: '%d días',
|
|
|
w: 'una semana',
|
|
|
ww: '%d semanas',
|
|
|
M: 'un mes',
|
|
|
MM: '%d meses',
|
|
|
y: 'un año',
|
|
|
yy: '%d años',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
|
|
ordinal: '%dº',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
invalidDate: 'Fecha inválida',
|
|
|
});
|
|
|
|
|
|
return es;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/et.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/et.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Estonian [et]
|
|
|
//! author : Henry Kehlmann : https://github.com/madhenry
|
|
|
//! improvements : Illimar Tambek : https://github.com/ragulka
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
|
|
var format = {
|
|
|
s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
|
|
|
ss: [number + 'sekundi', number + 'sekundit'],
|
|
|
m: ['ühe minuti', 'üks minut'],
|
|
|
mm: [number + ' minuti', number + ' minutit'],
|
|
|
h: ['ühe tunni', 'tund aega', 'üks tund'],
|
|
|
hh: [number + ' tunni', number + ' tundi'],
|
|
|
d: ['ühe päeva', 'üks päev'],
|
|
|
M: ['kuu aja', 'kuu aega', 'üks kuu'],
|
|
|
MM: [number + ' kuu', number + ' kuud'],
|
|
|
y: ['ühe aasta', 'aasta', 'üks aasta'],
|
|
|
yy: [number + ' aasta', number + ' aastat'],
|
|
|
};
|
|
|
if (withoutSuffix) {
|
|
|
return format[key][2] ? format[key][2] : format[key][1];
|
|
|
}
|
|
|
return isFuture ? format[key][0] : format[key][1];
|
|
|
}
|
|
|
|
|
|
var et = moment.defineLocale('et', {
|
|
|
months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),
|
|
|
weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY H:mm',
|
|
|
LLLL: 'dddd, D. MMMM YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Täna,] LT',
|
|
|
nextDay: '[Homme,] LT',
|
|
|
nextWeek: '[Järgmine] dddd LT',
|
|
|
lastDay: '[Eile,] LT',
|
|
|
lastWeek: '[Eelmine] dddd LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s pärast',
|
|
|
past: '%s tagasi',
|
|
|
s: processRelativeTime,
|
|
|
ss: processRelativeTime,
|
|
|
m: processRelativeTime,
|
|
|
mm: processRelativeTime,
|
|
|
h: processRelativeTime,
|
|
|
hh: processRelativeTime,
|
|
|
d: processRelativeTime,
|
|
|
dd: '%d päeva',
|
|
|
M: processRelativeTime,
|
|
|
MM: processRelativeTime,
|
|
|
y: processRelativeTime,
|
|
|
yy: processRelativeTime,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return et;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/eu.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/eu.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Basque [eu]
|
|
|
//! author : Eneko Illarramendi : https://github.com/eillarra
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var eu = moment.defineLocale('eu', {
|
|
|
months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),
|
|
|
weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'YYYY-MM-DD',
|
|
|
LL: 'YYYY[ko] MMMM[ren] D[a]',
|
|
|
LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',
|
|
|
LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
|
|
|
l: 'YYYY-M-D',
|
|
|
ll: 'YYYY[ko] MMM D[a]',
|
|
|
lll: 'YYYY[ko] MMM D[a] HH:mm',
|
|
|
llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[gaur] LT[etan]',
|
|
|
nextDay: '[bihar] LT[etan]',
|
|
|
nextWeek: 'dddd LT[etan]',
|
|
|
lastDay: '[atzo] LT[etan]',
|
|
|
lastWeek: '[aurreko] dddd LT[etan]',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s barru',
|
|
|
past: 'duela %s',
|
|
|
s: 'segundo batzuk',
|
|
|
ss: '%d segundo',
|
|
|
m: 'minutu bat',
|
|
|
mm: '%d minutu',
|
|
|
h: 'ordu bat',
|
|
|
hh: '%d ordu',
|
|
|
d: 'egun bat',
|
|
|
dd: '%d egun',
|
|
|
M: 'hilabete bat',
|
|
|
MM: '%d hilabete',
|
|
|
y: 'urte bat',
|
|
|
yy: '%d urte',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return eu;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/fa.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/fa.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Persian [fa]
|
|
|
//! author : Ebrahim Byagowi : https://github.com/ebraminio
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '۱',
|
|
|
2: '۲',
|
|
|
3: '۳',
|
|
|
4: '۴',
|
|
|
5: '۵',
|
|
|
6: '۶',
|
|
|
7: '۷',
|
|
|
8: '۸',
|
|
|
9: '۹',
|
|
|
0: '۰',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'۱': '1',
|
|
|
'۲': '2',
|
|
|
'۳': '3',
|
|
|
'۴': '4',
|
|
|
'۵': '5',
|
|
|
'۶': '6',
|
|
|
'۷': '7',
|
|
|
'۸': '8',
|
|
|
'۹': '9',
|
|
|
'۰': '0',
|
|
|
};
|
|
|
|
|
|
var fa = moment.defineLocale('fa', {
|
|
|
months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /قبل از ظهر|بعد از ظهر/,
|
|
|
isPM: function (input) {
|
|
|
return /بعد از ظهر/.test(input);
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'قبل از ظهر';
|
|
|
} else {
|
|
|
return 'بعد از ظهر';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[امروز ساعت] LT',
|
|
|
nextDay: '[فردا ساعت] LT',
|
|
|
nextWeek: 'dddd [ساعت] LT',
|
|
|
lastDay: '[دیروز ساعت] LT',
|
|
|
lastWeek: 'dddd [پیش] [ساعت] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'در %s',
|
|
|
past: '%s پیش',
|
|
|
s: 'چند ثانیه',
|
|
|
ss: '%d ثانیه',
|
|
|
m: 'یک دقیقه',
|
|
|
mm: '%d دقیقه',
|
|
|
h: 'یک ساعت',
|
|
|
hh: '%d ساعت',
|
|
|
d: 'یک روز',
|
|
|
dd: '%d روز',
|
|
|
M: 'یک ماه',
|
|
|
MM: '%d ماه',
|
|
|
y: 'یک سال',
|
|
|
yy: '%d سال',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string
|
|
|
.replace(/[۰-۹]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
})
|
|
|
.replace(/،/g, ',');
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string
|
|
|
.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
})
|
|
|
.replace(/,/g, '،');
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}م/,
|
|
|
ordinal: '%dم',
|
|
|
week: {
|
|
|
dow: 6, // Saturday is the first day of the week.
|
|
|
doy: 12, // The week that contains Jan 12th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return fa;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/fi.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/fi.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Finnish [fi]
|
|
|
//! author : Tarmo Aidantausta : https://github.com/bleadof
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(
|
|
|
' '
|
|
|
),
|
|
|
numbersFuture = [
|
|
|
'nolla',
|
|
|
'yhden',
|
|
|
'kahden',
|
|
|
'kolmen',
|
|
|
'neljän',
|
|
|
'viiden',
|
|
|
'kuuden',
|
|
|
numbersPast[7],
|
|
|
numbersPast[8],
|
|
|
numbersPast[9],
|
|
|
];
|
|
|
function translate(number, withoutSuffix, key, isFuture) {
|
|
|
var result = '';
|
|
|
switch (key) {
|
|
|
case 's':
|
|
|
return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
|
|
|
case 'ss':
|
|
|
result = isFuture ? 'sekunnin' : 'sekuntia';
|
|
|
break;
|
|
|
case 'm':
|
|
|
return isFuture ? 'minuutin' : 'minuutti';
|
|
|
case 'mm':
|
|
|
result = isFuture ? 'minuutin' : 'minuuttia';
|
|
|
break;
|
|
|
case 'h':
|
|
|
return isFuture ? 'tunnin' : 'tunti';
|
|
|
case 'hh':
|
|
|
result = isFuture ? 'tunnin' : 'tuntia';
|
|
|
break;
|
|
|
case 'd':
|
|
|
return isFuture ? 'päivän' : 'päivä';
|
|
|
case 'dd':
|
|
|
result = isFuture ? 'päivän' : 'päivää';
|
|
|
break;
|
|
|
case 'M':
|
|
|
return isFuture ? 'kuukauden' : 'kuukausi';
|
|
|
case 'MM':
|
|
|
result = isFuture ? 'kuukauden' : 'kuukautta';
|
|
|
break;
|
|
|
case 'y':
|
|
|
return isFuture ? 'vuoden' : 'vuosi';
|
|
|
case 'yy':
|
|
|
result = isFuture ? 'vuoden' : 'vuotta';
|
|
|
break;
|
|
|
}
|
|
|
result = verbalNumber(number, isFuture) + ' ' + result;
|
|
|
return result;
|
|
|
}
|
|
|
function verbalNumber(number, isFuture) {
|
|
|
return number < 10
|
|
|
? isFuture
|
|
|
? numbersFuture[number]
|
|
|
: numbersPast[number]
|
|
|
: number;
|
|
|
}
|
|
|
|
|
|
var fi = moment.defineLocale('fi', {
|
|
|
months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),
|
|
|
weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH.mm',
|
|
|
LTS: 'HH.mm.ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'Do MMMM[ta] YYYY',
|
|
|
LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',
|
|
|
LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
|
|
|
l: 'D.M.YYYY',
|
|
|
ll: 'Do MMM YYYY',
|
|
|
lll: 'Do MMM YYYY, [klo] HH.mm',
|
|
|
llll: 'ddd, Do MMM YYYY, [klo] HH.mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[tänään] [klo] LT',
|
|
|
nextDay: '[huomenna] [klo] LT',
|
|
|
nextWeek: 'dddd [klo] LT',
|
|
|
lastDay: '[eilen] [klo] LT',
|
|
|
lastWeek: '[viime] dddd[na] [klo] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s päästä',
|
|
|
past: '%s sitten',
|
|
|
s: translate,
|
|
|
ss: translate,
|
|
|
m: translate,
|
|
|
mm: translate,
|
|
|
h: translate,
|
|
|
hh: translate,
|
|
|
d: translate,
|
|
|
dd: translate,
|
|
|
M: translate,
|
|
|
MM: translate,
|
|
|
y: translate,
|
|
|
yy: translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return fi;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/fil.js":
|
|
|
/*!*******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/fil.js ***!
|
|
|
\*******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Filipino [fil]
|
|
|
//! author : Dan Hagman : https://github.com/hagmandan
|
|
|
//! author : Matthew Co : https://github.com/matthewdeeco
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var fil = moment.defineLocale('fil', {
|
|
|
months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
|
|
|
weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
|
|
|
weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'MM/D/YYYY',
|
|
|
LL: 'MMMM D, YYYY',
|
|
|
LLL: 'MMMM D, YYYY HH:mm',
|
|
|
LLLL: 'dddd, MMMM DD, YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: 'LT [ngayong araw]',
|
|
|
nextDay: '[Bukas ng] LT',
|
|
|
nextWeek: 'LT [sa susunod na] dddd',
|
|
|
lastDay: 'LT [kahapon]',
|
|
|
lastWeek: 'LT [noong nakaraang] dddd',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'sa loob ng %s',
|
|
|
past: '%s ang nakalipas',
|
|
|
s: 'ilang segundo',
|
|
|
ss: '%d segundo',
|
|
|
m: 'isang minuto',
|
|
|
mm: '%d minuto',
|
|
|
h: 'isang oras',
|
|
|
hh: '%d oras',
|
|
|
d: 'isang araw',
|
|
|
dd: '%d araw',
|
|
|
M: 'isang buwan',
|
|
|
MM: '%d buwan',
|
|
|
y: 'isang taon',
|
|
|
yy: '%d taon',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}/,
|
|
|
ordinal: function (number) {
|
|
|
return number;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return fil;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/fo.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/fo.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Faroese [fo]
|
|
|
//! author : Ragnar Johannesen : https://github.com/ragnar123
|
|
|
//! author : Kristian Sakarisson : https://github.com/sakarisson
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var fo = moment.defineLocale('fo', {
|
|
|
months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
|
|
|
weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
|
|
|
weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D. MMMM, YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Í dag kl.] LT',
|
|
|
nextDay: '[Í morgin kl.] LT',
|
|
|
nextWeek: 'dddd [kl.] LT',
|
|
|
lastDay: '[Í gjár kl.] LT',
|
|
|
lastWeek: '[síðstu] dddd [kl] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'um %s',
|
|
|
past: '%s síðani',
|
|
|
s: 'fá sekund',
|
|
|
ss: '%d sekundir',
|
|
|
m: 'ein minuttur',
|
|
|
mm: '%d minuttir',
|
|
|
h: 'ein tími',
|
|
|
hh: '%d tímar',
|
|
|
d: 'ein dagur',
|
|
|
dd: '%d dagar',
|
|
|
M: 'ein mánaður',
|
|
|
MM: '%d mánaðir',
|
|
|
y: 'eitt ár',
|
|
|
yy: '%d ár',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return fo;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/fr-ca.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/fr-ca.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : French (Canada) [fr-ca]
|
|
|
//! author : Jonathan Abourbih : https://github.com/jonbca
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var frCa = moment.defineLocale('fr-ca', {
|
|
|
months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
|
|
|
weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
|
|
|
weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'YYYY-MM-DD',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Aujourd’hui à] LT',
|
|
|
nextDay: '[Demain à] LT',
|
|
|
nextWeek: 'dddd [à] LT',
|
|
|
lastDay: '[Hier à] LT',
|
|
|
lastWeek: 'dddd [dernier à] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'dans %s',
|
|
|
past: 'il y a %s',
|
|
|
s: 'quelques secondes',
|
|
|
ss: '%d secondes',
|
|
|
m: 'une minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'une heure',
|
|
|
hh: '%d heures',
|
|
|
d: 'un jour',
|
|
|
dd: '%d jours',
|
|
|
M: 'un mois',
|
|
|
MM: '%d mois',
|
|
|
y: 'un an',
|
|
|
yy: '%d ans',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
// Words with masculine grammatical gender: mois, trimestre, jour
|
|
|
default:
|
|
|
case 'M':
|
|
|
case 'Q':
|
|
|
case 'D':
|
|
|
case 'DDD':
|
|
|
case 'd':
|
|
|
return number + (number === 1 ? 'er' : 'e');
|
|
|
|
|
|
// Words with feminine grammatical gender: semaine
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number + (number === 1 ? 're' : 'e');
|
|
|
}
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return frCa;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/fr-ch.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/fr-ch.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : French (Switzerland) [fr-ch]
|
|
|
//! author : Gaspard Bucher : https://github.com/gaspard
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var frCh = moment.defineLocale('fr-ch', {
|
|
|
months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
|
|
|
weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
|
|
|
weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Aujourd’hui à] LT',
|
|
|
nextDay: '[Demain à] LT',
|
|
|
nextWeek: 'dddd [à] LT',
|
|
|
lastDay: '[Hier à] LT',
|
|
|
lastWeek: 'dddd [dernier à] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'dans %s',
|
|
|
past: 'il y a %s',
|
|
|
s: 'quelques secondes',
|
|
|
ss: '%d secondes',
|
|
|
m: 'une minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'une heure',
|
|
|
hh: '%d heures',
|
|
|
d: 'un jour',
|
|
|
dd: '%d jours',
|
|
|
M: 'un mois',
|
|
|
MM: '%d mois',
|
|
|
y: 'un an',
|
|
|
yy: '%d ans',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
// Words with masculine grammatical gender: mois, trimestre, jour
|
|
|
default:
|
|
|
case 'M':
|
|
|
case 'Q':
|
|
|
case 'D':
|
|
|
case 'DDD':
|
|
|
case 'd':
|
|
|
return number + (number === 1 ? 'er' : 'e');
|
|
|
|
|
|
// Words with feminine grammatical gender: semaine
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number + (number === 1 ? 're' : 'e');
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return frCh;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/fr.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/fr.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : French [fr]
|
|
|
//! author : John Fischer : https://github.com/jfroffice
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
|
|
|
monthsShortStrictRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,
|
|
|
monthsRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
|
|
|
monthsParse = [
|
|
|
/^janv/i,
|
|
|
/^févr/i,
|
|
|
/^mars/i,
|
|
|
/^avr/i,
|
|
|
/^mai/i,
|
|
|
/^juin/i,
|
|
|
/^juil/i,
|
|
|
/^août/i,
|
|
|
/^sept/i,
|
|
|
/^oct/i,
|
|
|
/^nov/i,
|
|
|
/^déc/i,
|
|
|
];
|
|
|
|
|
|
var fr = moment.defineLocale('fr', {
|
|
|
months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsRegex: monthsRegex,
|
|
|
monthsShortRegex: monthsRegex,
|
|
|
monthsStrictRegex: monthsStrictRegex,
|
|
|
monthsShortStrictRegex: monthsShortStrictRegex,
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: monthsParse,
|
|
|
weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
|
|
|
weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
|
|
|
weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Aujourd’hui à] LT',
|
|
|
nextDay: '[Demain à] LT',
|
|
|
nextWeek: 'dddd [à] LT',
|
|
|
lastDay: '[Hier à] LT',
|
|
|
lastWeek: 'dddd [dernier à] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'dans %s',
|
|
|
past: 'il y a %s',
|
|
|
s: 'quelques secondes',
|
|
|
ss: '%d secondes',
|
|
|
m: 'une minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'une heure',
|
|
|
hh: '%d heures',
|
|
|
d: 'un jour',
|
|
|
dd: '%d jours',
|
|
|
w: 'une semaine',
|
|
|
ww: '%d semaines',
|
|
|
M: 'un mois',
|
|
|
MM: '%d mois',
|
|
|
y: 'un an',
|
|
|
yy: '%d ans',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
// TODO: Return 'e' when day of month > 1. Move this case inside
|
|
|
// block for masculine words below.
|
|
|
// See https://github.com/moment/moment/issues/3375
|
|
|
case 'D':
|
|
|
return number + (number === 1 ? 'er' : '');
|
|
|
|
|
|
// Words with masculine grammatical gender: mois, trimestre, jour
|
|
|
default:
|
|
|
case 'M':
|
|
|
case 'Q':
|
|
|
case 'DDD':
|
|
|
case 'd':
|
|
|
return number + (number === 1 ? 'er' : 'e');
|
|
|
|
|
|
// Words with feminine grammatical gender: semaine
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number + (number === 1 ? 're' : 'e');
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return fr;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/fy.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/fy.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Frisian [fy]
|
|
|
//! author : Robin van der Vliet : https://github.com/robin0van0der0v
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(
|
|
|
'_'
|
|
|
);
|
|
|
|
|
|
var fy = moment.defineLocale('fy', {
|
|
|
months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: function (m, format) {
|
|
|
if (!m) {
|
|
|
return monthsShortWithDots;
|
|
|
} else if (/-MMM-/.test(format)) {
|
|
|
return monthsShortWithoutDots[m.month()];
|
|
|
} else {
|
|
|
return monthsShortWithDots[m.month()];
|
|
|
}
|
|
|
},
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),
|
|
|
weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD-MM-YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[hjoed om] LT',
|
|
|
nextDay: '[moarn om] LT',
|
|
|
nextWeek: 'dddd [om] LT',
|
|
|
lastDay: '[juster om] LT',
|
|
|
lastWeek: '[ôfrûne] dddd [om] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'oer %s',
|
|
|
past: '%s lyn',
|
|
|
s: 'in pear sekonden',
|
|
|
ss: '%d sekonden',
|
|
|
m: 'ien minút',
|
|
|
mm: '%d minuten',
|
|
|
h: 'ien oere',
|
|
|
hh: '%d oeren',
|
|
|
d: 'ien dei',
|
|
|
dd: '%d dagen',
|
|
|
M: 'ien moanne',
|
|
|
MM: '%d moannen',
|
|
|
y: 'ien jier',
|
|
|
yy: '%d jierren',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
|
|
|
ordinal: function (number) {
|
|
|
return (
|
|
|
number +
|
|
|
(number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
|
|
|
);
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return fy;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ga.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ga.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Irish or Irish Gaelic [ga]
|
|
|
//! author : André Silva : https://github.com/askpt
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var months = [
|
|
|
'Eanáir',
|
|
|
'Feabhra',
|
|
|
'Márta',
|
|
|
'Aibreán',
|
|
|
'Bealtaine',
|
|
|
'Meitheamh',
|
|
|
'Iúil',
|
|
|
'Lúnasa',
|
|
|
'Meán Fómhair',
|
|
|
'Deireadh Fómhair',
|
|
|
'Samhain',
|
|
|
'Nollaig',
|
|
|
],
|
|
|
monthsShort = [
|
|
|
'Ean',
|
|
|
'Feabh',
|
|
|
'Márt',
|
|
|
'Aib',
|
|
|
'Beal',
|
|
|
'Meith',
|
|
|
'Iúil',
|
|
|
'Lún',
|
|
|
'M.F.',
|
|
|
'D.F.',
|
|
|
'Samh',
|
|
|
'Noll',
|
|
|
],
|
|
|
weekdays = [
|
|
|
'Dé Domhnaigh',
|
|
|
'Dé Luain',
|
|
|
'Dé Máirt',
|
|
|
'Dé Céadaoin',
|
|
|
'Déardaoin',
|
|
|
'Dé hAoine',
|
|
|
'Dé Sathairn',
|
|
|
],
|
|
|
weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],
|
|
|
weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];
|
|
|
|
|
|
var ga = moment.defineLocale('ga', {
|
|
|
months: months,
|
|
|
monthsShort: monthsShort,
|
|
|
monthsParseExact: true,
|
|
|
weekdays: weekdays,
|
|
|
weekdaysShort: weekdaysShort,
|
|
|
weekdaysMin: weekdaysMin,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Inniu ag] LT',
|
|
|
nextDay: '[Amárach ag] LT',
|
|
|
nextWeek: 'dddd [ag] LT',
|
|
|
lastDay: '[Inné ag] LT',
|
|
|
lastWeek: 'dddd [seo caite] [ag] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'i %s',
|
|
|
past: '%s ó shin',
|
|
|
s: 'cúpla soicind',
|
|
|
ss: '%d soicind',
|
|
|
m: 'nóiméad',
|
|
|
mm: '%d nóiméad',
|
|
|
h: 'uair an chloig',
|
|
|
hh: '%d uair an chloig',
|
|
|
d: 'lá',
|
|
|
dd: '%d lá',
|
|
|
M: 'mí',
|
|
|
MM: '%d míonna',
|
|
|
y: 'bliain',
|
|
|
yy: '%d bliain',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
|
|
|
ordinal: function (number) {
|
|
|
var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ga;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/gd.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/gd.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Scottish Gaelic [gd]
|
|
|
//! author : Jon Ashdown : https://github.com/jonashdown
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var months = [
|
|
|
'Am Faoilleach',
|
|
|
'An Gearran',
|
|
|
'Am Màrt',
|
|
|
'An Giblean',
|
|
|
'An Cèitean',
|
|
|
'An t-Ògmhios',
|
|
|
'An t-Iuchar',
|
|
|
'An Lùnastal',
|
|
|
'An t-Sultain',
|
|
|
'An Dàmhair',
|
|
|
'An t-Samhain',
|
|
|
'An Dùbhlachd',
|
|
|
],
|
|
|
monthsShort = [
|
|
|
'Faoi',
|
|
|
'Gear',
|
|
|
'Màrt',
|
|
|
'Gibl',
|
|
|
'Cèit',
|
|
|
'Ògmh',
|
|
|
'Iuch',
|
|
|
'Lùn',
|
|
|
'Sult',
|
|
|
'Dàmh',
|
|
|
'Samh',
|
|
|
'Dùbh',
|
|
|
],
|
|
|
weekdays = [
|
|
|
'Didòmhnaich',
|
|
|
'Diluain',
|
|
|
'Dimàirt',
|
|
|
'Diciadain',
|
|
|
'Diardaoin',
|
|
|
'Dihaoine',
|
|
|
'Disathairne',
|
|
|
],
|
|
|
weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],
|
|
|
weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
|
|
|
|
|
|
var gd = moment.defineLocale('gd', {
|
|
|
months: months,
|
|
|
monthsShort: monthsShort,
|
|
|
monthsParseExact: true,
|
|
|
weekdays: weekdays,
|
|
|
weekdaysShort: weekdaysShort,
|
|
|
weekdaysMin: weekdaysMin,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[An-diugh aig] LT',
|
|
|
nextDay: '[A-màireach aig] LT',
|
|
|
nextWeek: 'dddd [aig] LT',
|
|
|
lastDay: '[An-dè aig] LT',
|
|
|
lastWeek: 'dddd [seo chaidh] [aig] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'ann an %s',
|
|
|
past: 'bho chionn %s',
|
|
|
s: 'beagan diogan',
|
|
|
ss: '%d diogan',
|
|
|
m: 'mionaid',
|
|
|
mm: '%d mionaidean',
|
|
|
h: 'uair',
|
|
|
hh: '%d uairean',
|
|
|
d: 'latha',
|
|
|
dd: '%d latha',
|
|
|
M: 'mìos',
|
|
|
MM: '%d mìosan',
|
|
|
y: 'bliadhna',
|
|
|
yy: '%d bliadhna',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
|
|
|
ordinal: function (number) {
|
|
|
var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return gd;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/gl.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/gl.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Galician [gl]
|
|
|
//! author : Juan G. Hurtado : https://github.com/juanghurtado
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var gl = moment.defineLocale('gl', {
|
|
|
months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
|
|
|
weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
|
|
|
weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D [de] MMMM [de] YYYY',
|
|
|
LLL: 'D [de] MMMM [de] YYYY H:mm',
|
|
|
LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: function () {
|
|
|
return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
|
|
|
},
|
|
|
nextDay: function () {
|
|
|
return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
|
|
|
},
|
|
|
nextWeek: function () {
|
|
|
return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';
|
|
|
},
|
|
|
lastDay: function () {
|
|
|
return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';
|
|
|
},
|
|
|
lastWeek: function () {
|
|
|
return (
|
|
|
'[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'
|
|
|
);
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: function (str) {
|
|
|
if (str.indexOf('un') === 0) {
|
|
|
return 'n' + str;
|
|
|
}
|
|
|
return 'en ' + str;
|
|
|
},
|
|
|
past: 'hai %s',
|
|
|
s: 'uns segundos',
|
|
|
ss: '%d segundos',
|
|
|
m: 'un minuto',
|
|
|
mm: '%d minutos',
|
|
|
h: 'unha hora',
|
|
|
hh: '%d horas',
|
|
|
d: 'un día',
|
|
|
dd: '%d días',
|
|
|
M: 'un mes',
|
|
|
MM: '%d meses',
|
|
|
y: 'un ano',
|
|
|
yy: '%d anos',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
|
|
ordinal: '%dº',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return gl;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/gom-deva.js":
|
|
|
/*!************************************************!*\
|
|
|
!*** ./node_modules/moment/locale/gom-deva.js ***!
|
|
|
\************************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Konkani Devanagari script [gom-deva]
|
|
|
//! author : The Discoverer : https://github.com/WikiDiscoverer
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
|
|
var format = {
|
|
|
s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],
|
|
|
ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],
|
|
|
m: ['एका मिणटान', 'एक मिनूट'],
|
|
|
mm: [number + ' मिणटांनी', number + ' मिणटां'],
|
|
|
h: ['एका वरान', 'एक वर'],
|
|
|
hh: [number + ' वरांनी', number + ' वरां'],
|
|
|
d: ['एका दिसान', 'एक दीस'],
|
|
|
dd: [number + ' दिसांनी', number + ' दीस'],
|
|
|
M: ['एका म्हयन्यान', 'एक म्हयनो'],
|
|
|
MM: [number + ' म्हयन्यानी', number + ' म्हयने'],
|
|
|
y: ['एका वर्सान', 'एक वर्स'],
|
|
|
yy: [number + ' वर्सांनी', number + ' वर्सां'],
|
|
|
};
|
|
|
return isFuture ? format[key][0] : format[key][1];
|
|
|
}
|
|
|
|
|
|
var gomDeva = moment.defineLocale('gom-deva', {
|
|
|
months: {
|
|
|
standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
|
|
|
'_'
|
|
|
),
|
|
|
format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(
|
|
|
'_'
|
|
|
),
|
|
|
isFormat: /MMMM(\s)+D[oD]?/,
|
|
|
},
|
|
|
monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),
|
|
|
weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),
|
|
|
weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm [वाजतां]',
|
|
|
LTS: 'A h:mm:ss [वाजतां]',
|
|
|
L: 'DD-MM-YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY A h:mm [वाजतां]',
|
|
|
LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',
|
|
|
llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[आयज] LT',
|
|
|
nextDay: '[फाल्यां] LT',
|
|
|
nextWeek: '[फुडलो] dddd[,] LT',
|
|
|
lastDay: '[काल] LT',
|
|
|
lastWeek: '[फाटलो] dddd[,] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s',
|
|
|
past: '%s आदीं',
|
|
|
s: processRelativeTime,
|
|
|
ss: processRelativeTime,
|
|
|
m: processRelativeTime,
|
|
|
mm: processRelativeTime,
|
|
|
h: processRelativeTime,
|
|
|
hh: processRelativeTime,
|
|
|
d: processRelativeTime,
|
|
|
dd: processRelativeTime,
|
|
|
M: processRelativeTime,
|
|
|
MM: processRelativeTime,
|
|
|
y: processRelativeTime,
|
|
|
yy: processRelativeTime,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(वेर)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
// the ordinal 'वेर' only applies to day of the month
|
|
|
case 'D':
|
|
|
return number + 'वेर';
|
|
|
default:
|
|
|
case 'M':
|
|
|
case 'Q':
|
|
|
case 'DDD':
|
|
|
case 'd':
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week
|
|
|
doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
|
|
|
},
|
|
|
meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'राती') {
|
|
|
return hour < 4 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'सकाळीं') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'दनपारां') {
|
|
|
return hour > 12 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'सांजे') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'राती';
|
|
|
} else if (hour < 12) {
|
|
|
return 'सकाळीं';
|
|
|
} else if (hour < 16) {
|
|
|
return 'दनपारां';
|
|
|
} else if (hour < 20) {
|
|
|
return 'सांजे';
|
|
|
} else {
|
|
|
return 'राती';
|
|
|
}
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return gomDeva;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/gom-latn.js":
|
|
|
/*!************************************************!*\
|
|
|
!*** ./node_modules/moment/locale/gom-latn.js ***!
|
|
|
\************************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Konkani Latin script [gom-latn]
|
|
|
//! author : The Discoverer : https://github.com/WikiDiscoverer
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
|
|
var format = {
|
|
|
s: ['thoddea sekondamni', 'thodde sekond'],
|
|
|
ss: [number + ' sekondamni', number + ' sekond'],
|
|
|
m: ['eka mintan', 'ek minut'],
|
|
|
mm: [number + ' mintamni', number + ' mintam'],
|
|
|
h: ['eka voran', 'ek vor'],
|
|
|
hh: [number + ' voramni', number + ' voram'],
|
|
|
d: ['eka disan', 'ek dis'],
|
|
|
dd: [number + ' disamni', number + ' dis'],
|
|
|
M: ['eka mhoinean', 'ek mhoino'],
|
|
|
MM: [number + ' mhoineamni', number + ' mhoine'],
|
|
|
y: ['eka vorsan', 'ek voros'],
|
|
|
yy: [number + ' vorsamni', number + ' vorsam'],
|
|
|
};
|
|
|
return isFuture ? format[key][0] : format[key][1];
|
|
|
}
|
|
|
|
|
|
var gomLatn = moment.defineLocale('gom-latn', {
|
|
|
months: {
|
|
|
standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(
|
|
|
'_'
|
|
|
),
|
|
|
format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(
|
|
|
'_'
|
|
|
),
|
|
|
isFormat: /MMMM(\s)+D[oD]?/,
|
|
|
},
|
|
|
monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'),
|
|
|
weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
|
|
|
weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm [vazta]',
|
|
|
LTS: 'A h:mm:ss [vazta]',
|
|
|
L: 'DD-MM-YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY A h:mm [vazta]',
|
|
|
LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',
|
|
|
llll: 'ddd, D MMM YYYY, A h:mm [vazta]',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Aiz] LT',
|
|
|
nextDay: '[Faleam] LT',
|
|
|
nextWeek: '[Fuddlo] dddd[,] LT',
|
|
|
lastDay: '[Kal] LT',
|
|
|
lastWeek: '[Fattlo] dddd[,] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s',
|
|
|
past: '%s adim',
|
|
|
s: processRelativeTime,
|
|
|
ss: processRelativeTime,
|
|
|
m: processRelativeTime,
|
|
|
mm: processRelativeTime,
|
|
|
h: processRelativeTime,
|
|
|
hh: processRelativeTime,
|
|
|
d: processRelativeTime,
|
|
|
dd: processRelativeTime,
|
|
|
M: processRelativeTime,
|
|
|
MM: processRelativeTime,
|
|
|
y: processRelativeTime,
|
|
|
yy: processRelativeTime,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(er)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
// the ordinal 'er' only applies to day of the month
|
|
|
case 'D':
|
|
|
return number + 'er';
|
|
|
default:
|
|
|
case 'M':
|
|
|
case 'Q':
|
|
|
case 'DDD':
|
|
|
case 'd':
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week
|
|
|
doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
|
|
|
},
|
|
|
meridiemParse: /rati|sokallim|donparam|sanje/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'rati') {
|
|
|
return hour < 4 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'sokallim') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'donparam') {
|
|
|
return hour > 12 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'sanje') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'rati';
|
|
|
} else if (hour < 12) {
|
|
|
return 'sokallim';
|
|
|
} else if (hour < 16) {
|
|
|
return 'donparam';
|
|
|
} else if (hour < 20) {
|
|
|
return 'sanje';
|
|
|
} else {
|
|
|
return 'rati';
|
|
|
}
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return gomLatn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/gu.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/gu.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Gujarati [gu]
|
|
|
//! author : Kaushik Thanki : https://github.com/Kaushik1987
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '૧',
|
|
|
2: '૨',
|
|
|
3: '૩',
|
|
|
4: '૪',
|
|
|
5: '૫',
|
|
|
6: '૬',
|
|
|
7: '૭',
|
|
|
8: '૮',
|
|
|
9: '૯',
|
|
|
0: '૦',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'૧': '1',
|
|
|
'૨': '2',
|
|
|
'૩': '3',
|
|
|
'૪': '4',
|
|
|
'૫': '5',
|
|
|
'૬': '6',
|
|
|
'૭': '7',
|
|
|
'૮': '8',
|
|
|
'૯': '9',
|
|
|
'૦': '0',
|
|
|
};
|
|
|
|
|
|
var gu = moment.defineLocale('gu', {
|
|
|
months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
|
|
|
weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm વાગ્યે',
|
|
|
LTS: 'A h:mm:ss વાગ્યે',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
|
|
|
LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[આજ] LT',
|
|
|
nextDay: '[કાલે] LT',
|
|
|
nextWeek: 'dddd, LT',
|
|
|
lastDay: '[ગઇકાલે] LT',
|
|
|
lastWeek: '[પાછલા] dddd, LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s મા',
|
|
|
past: '%s પહેલા',
|
|
|
s: 'અમુક પળો',
|
|
|
ss: '%d સેકંડ',
|
|
|
m: 'એક મિનિટ',
|
|
|
mm: '%d મિનિટ',
|
|
|
h: 'એક કલાક',
|
|
|
hh: '%d કલાક',
|
|
|
d: 'એક દિવસ',
|
|
|
dd: '%d દિવસ',
|
|
|
M: 'એક મહિનો',
|
|
|
MM: '%d મહિનો',
|
|
|
y: 'એક વર્ષ',
|
|
|
yy: '%d વર્ષ',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
// Gujarati notation for meridiems are quite fuzzy in practice. While there exists
|
|
|
// a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
|
|
|
meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'રાત') {
|
|
|
return hour < 4 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'સવાર') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'બપોર') {
|
|
|
return hour >= 10 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'સાંજ') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'રાત';
|
|
|
} else if (hour < 10) {
|
|
|
return 'સવાર';
|
|
|
} else if (hour < 17) {
|
|
|
return 'બપોર';
|
|
|
} else if (hour < 20) {
|
|
|
return 'સાંજ';
|
|
|
} else {
|
|
|
return 'રાત';
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return gu;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/he.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/he.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Hebrew [he]
|
|
|
//! author : Tomer Cohen : https://github.com/tomer
|
|
|
//! author : Moshe Simantov : https://github.com/DevelopmentIL
|
|
|
//! author : Tal Ater : https://github.com/TalAter
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var he = moment.defineLocale('he', {
|
|
|
months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
|
|
|
weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
|
|
|
weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D [ב]MMMM YYYY',
|
|
|
LLL: 'D [ב]MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',
|
|
|
l: 'D/M/YYYY',
|
|
|
ll: 'D MMM YYYY',
|
|
|
lll: 'D MMM YYYY HH:mm',
|
|
|
llll: 'ddd, D MMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[היום ב־]LT',
|
|
|
nextDay: '[מחר ב־]LT',
|
|
|
nextWeek: 'dddd [בשעה] LT',
|
|
|
lastDay: '[אתמול ב־]LT',
|
|
|
lastWeek: '[ביום] dddd [האחרון בשעה] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'בעוד %s',
|
|
|
past: 'לפני %s',
|
|
|
s: 'מספר שניות',
|
|
|
ss: '%d שניות',
|
|
|
m: 'דקה',
|
|
|
mm: '%d דקות',
|
|
|
h: 'שעה',
|
|
|
hh: function (number) {
|
|
|
if (number === 2) {
|
|
|
return 'שעתיים';
|
|
|
}
|
|
|
return number + ' שעות';
|
|
|
},
|
|
|
d: 'יום',
|
|
|
dd: function (number) {
|
|
|
if (number === 2) {
|
|
|
return 'יומיים';
|
|
|
}
|
|
|
return number + ' ימים';
|
|
|
},
|
|
|
M: 'חודש',
|
|
|
MM: function (number) {
|
|
|
if (number === 2) {
|
|
|
return 'חודשיים';
|
|
|
}
|
|
|
return number + ' חודשים';
|
|
|
},
|
|
|
y: 'שנה',
|
|
|
yy: function (number) {
|
|
|
if (number === 2) {
|
|
|
return 'שנתיים';
|
|
|
} else if (number % 10 === 0 && number !== 10) {
|
|
|
return number + ' שנה';
|
|
|
}
|
|
|
return number + ' שנים';
|
|
|
},
|
|
|
},
|
|
|
meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
|
|
|
isPM: function (input) {
|
|
|
return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 5) {
|
|
|
return 'לפנות בוקר';
|
|
|
} else if (hour < 10) {
|
|
|
return 'בבוקר';
|
|
|
} else if (hour < 12) {
|
|
|
return isLower ? 'לפנה"צ' : 'לפני הצהריים';
|
|
|
} else if (hour < 18) {
|
|
|
return isLower ? 'אחה"צ' : 'אחרי הצהריים';
|
|
|
} else {
|
|
|
return 'בערב';
|
|
|
}
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return he;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/hi.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/hi.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Hindi [hi]
|
|
|
//! author : Mayank Singhal : https://github.com/mayanksinghal
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '१',
|
|
|
2: '२',
|
|
|
3: '३',
|
|
|
4: '४',
|
|
|
5: '५',
|
|
|
6: '६',
|
|
|
7: '७',
|
|
|
8: '८',
|
|
|
9: '९',
|
|
|
0: '०',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'१': '1',
|
|
|
'२': '2',
|
|
|
'३': '3',
|
|
|
'४': '4',
|
|
|
'५': '5',
|
|
|
'६': '6',
|
|
|
'७': '7',
|
|
|
'८': '8',
|
|
|
'९': '9',
|
|
|
'०': '0',
|
|
|
},
|
|
|
monthsParse = [
|
|
|
/^जन/i,
|
|
|
/^फ़र|फर/i,
|
|
|
/^मार्च/i,
|
|
|
/^अप्रै/i,
|
|
|
/^मई/i,
|
|
|
/^जून/i,
|
|
|
/^जुल/i,
|
|
|
/^अग/i,
|
|
|
/^सितं|सित/i,
|
|
|
/^अक्टू/i,
|
|
|
/^नव|नवं/i,
|
|
|
/^दिसं|दिस/i,
|
|
|
],
|
|
|
shortMonthsParse = [
|
|
|
/^जन/i,
|
|
|
/^फ़र/i,
|
|
|
/^मार्च/i,
|
|
|
/^अप्रै/i,
|
|
|
/^मई/i,
|
|
|
/^जून/i,
|
|
|
/^जुल/i,
|
|
|
/^अग/i,
|
|
|
/^सित/i,
|
|
|
/^अक्टू/i,
|
|
|
/^नव/i,
|
|
|
/^दिस/i,
|
|
|
];
|
|
|
|
|
|
var hi = moment.defineLocale('hi', {
|
|
|
months: {
|
|
|
format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(
|
|
|
'_'
|
|
|
),
|
|
|
standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(
|
|
|
'_'
|
|
|
),
|
|
|
},
|
|
|
monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
|
|
|
weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
|
|
|
weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm बजे',
|
|
|
LTS: 'A h:mm:ss बजे',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, A h:mm बजे',
|
|
|
LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',
|
|
|
},
|
|
|
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: shortMonthsParse,
|
|
|
|
|
|
monthsRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
|
|
|
|
|
|
monthsShortRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
|
|
|
|
|
|
monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,
|
|
|
|
|
|
monthsShortStrictRegex: /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,
|
|
|
|
|
|
calendar: {
|
|
|
sameDay: '[आज] LT',
|
|
|
nextDay: '[कल] LT',
|
|
|
nextWeek: 'dddd, LT',
|
|
|
lastDay: '[कल] LT',
|
|
|
lastWeek: '[पिछले] dddd, LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s में',
|
|
|
past: '%s पहले',
|
|
|
s: 'कुछ ही क्षण',
|
|
|
ss: '%d सेकंड',
|
|
|
m: 'एक मिनट',
|
|
|
mm: '%d मिनट',
|
|
|
h: 'एक घंटा',
|
|
|
hh: '%d घंटे',
|
|
|
d: 'एक दिन',
|
|
|
dd: '%d दिन',
|
|
|
M: 'एक महीने',
|
|
|
MM: '%d महीने',
|
|
|
y: 'एक वर्ष',
|
|
|
yy: '%d वर्ष',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[१२३४५६७८९०]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
// Hindi notation for meridiems are quite fuzzy in practice. While there exists
|
|
|
// a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
|
|
|
meridiemParse: /रात|सुबह|दोपहर|शाम/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'रात') {
|
|
|
return hour < 4 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'सुबह') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'दोपहर') {
|
|
|
return hour >= 10 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'शाम') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'रात';
|
|
|
} else if (hour < 10) {
|
|
|
return 'सुबह';
|
|
|
} else if (hour < 17) {
|
|
|
return 'दोपहर';
|
|
|
} else if (hour < 20) {
|
|
|
return 'शाम';
|
|
|
} else {
|
|
|
return 'रात';
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return hi;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/hr.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/hr.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Croatian [hr]
|
|
|
//! author : Bojan Marković : https://github.com/bmarkovic
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function translate(number, withoutSuffix, key) {
|
|
|
var result = number + ' ';
|
|
|
switch (key) {
|
|
|
case 'ss':
|
|
|
if (number === 1) {
|
|
|
result += 'sekunda';
|
|
|
} else if (number === 2 || number === 3 || number === 4) {
|
|
|
result += 'sekunde';
|
|
|
} else {
|
|
|
result += 'sekundi';
|
|
|
}
|
|
|
return result;
|
|
|
case 'm':
|
|
|
return withoutSuffix ? 'jedna minuta' : 'jedne minute';
|
|
|
case 'mm':
|
|
|
if (number === 1) {
|
|
|
result += 'minuta';
|
|
|
} else if (number === 2 || number === 3 || number === 4) {
|
|
|
result += 'minute';
|
|
|
} else {
|
|
|
result += 'minuta';
|
|
|
}
|
|
|
return result;
|
|
|
case 'h':
|
|
|
return withoutSuffix ? 'jedan sat' : 'jednog sata';
|
|
|
case 'hh':
|
|
|
if (number === 1) {
|
|
|
result += 'sat';
|
|
|
} else if (number === 2 || number === 3 || number === 4) {
|
|
|
result += 'sata';
|
|
|
} else {
|
|
|
result += 'sati';
|
|
|
}
|
|
|
return result;
|
|
|
case 'dd':
|
|
|
if (number === 1) {
|
|
|
result += 'dan';
|
|
|
} else {
|
|
|
result += 'dana';
|
|
|
}
|
|
|
return result;
|
|
|
case 'MM':
|
|
|
if (number === 1) {
|
|
|
result += 'mjesec';
|
|
|
} else if (number === 2 || number === 3 || number === 4) {
|
|
|
result += 'mjeseca';
|
|
|
} else {
|
|
|
result += 'mjeseci';
|
|
|
}
|
|
|
return result;
|
|
|
case 'yy':
|
|
|
if (number === 1) {
|
|
|
result += 'godina';
|
|
|
} else if (number === 2 || number === 3 || number === 4) {
|
|
|
result += 'godine';
|
|
|
} else {
|
|
|
result += 'godina';
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var hr = moment.defineLocale('hr', {
|
|
|
months: {
|
|
|
format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(
|
|
|
'_'
|
|
|
),
|
|
|
standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(
|
|
|
'_'
|
|
|
),
|
|
|
},
|
|
|
monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
|
|
|
weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'Do MMMM YYYY',
|
|
|
LLL: 'Do MMMM YYYY H:mm',
|
|
|
LLLL: 'dddd, Do MMMM YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[danas u] LT',
|
|
|
nextDay: '[sutra u] LT',
|
|
|
nextWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[u] [nedjelju] [u] LT';
|
|
|
case 3:
|
|
|
return '[u] [srijedu] [u] LT';
|
|
|
case 6:
|
|
|
return '[u] [subotu] [u] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[u] dddd [u] LT';
|
|
|
}
|
|
|
},
|
|
|
lastDay: '[jučer u] LT',
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[prošlu] [nedjelju] [u] LT';
|
|
|
case 3:
|
|
|
return '[prošlu] [srijedu] [u] LT';
|
|
|
case 6:
|
|
|
return '[prošle] [subote] [u] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[prošli] dddd [u] LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'za %s',
|
|
|
past: 'prije %s',
|
|
|
s: 'par sekundi',
|
|
|
ss: translate,
|
|
|
m: translate,
|
|
|
mm: translate,
|
|
|
h: translate,
|
|
|
hh: translate,
|
|
|
d: 'dan',
|
|
|
dd: translate,
|
|
|
M: 'mjesec',
|
|
|
MM: translate,
|
|
|
y: 'godinu',
|
|
|
yy: translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return hr;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/hu.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/hu.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Hungarian [hu]
|
|
|
//! author : Adam Brunner : https://github.com/adambrunner
|
|
|
//! author : Peter Viszt : https://github.com/passatgt
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(
|
|
|
' '
|
|
|
);
|
|
|
function translate(number, withoutSuffix, key, isFuture) {
|
|
|
var num = number;
|
|
|
switch (key) {
|
|
|
case 's':
|
|
|
return isFuture || withoutSuffix
|
|
|
? 'néhány másodperc'
|
|
|
: 'néhány másodperce';
|
|
|
case 'ss':
|
|
|
return num + (isFuture || withoutSuffix)
|
|
|
? ' másodperc'
|
|
|
: ' másodperce';
|
|
|
case 'm':
|
|
|
return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
|
|
|
case 'mm':
|
|
|
return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
|
|
|
case 'h':
|
|
|
return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
|
|
|
case 'hh':
|
|
|
return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
|
|
|
case 'd':
|
|
|
return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
|
|
|
case 'dd':
|
|
|
return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
|
|
|
case 'M':
|
|
|
return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
|
|
|
case 'MM':
|
|
|
return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
|
|
|
case 'y':
|
|
|
return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
|
|
|
case 'yy':
|
|
|
return num + (isFuture || withoutSuffix ? ' év' : ' éve');
|
|
|
}
|
|
|
return '';
|
|
|
}
|
|
|
function week(isFuture) {
|
|
|
return (
|
|
|
(isFuture ? '' : '[múlt] ') +
|
|
|
'[' +
|
|
|
weekEndings[this.day()] +
|
|
|
'] LT[-kor]'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
var hu = moment.defineLocale('hu', {
|
|
|
months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
|
|
|
weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
|
|
|
weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'YYYY.MM.DD.',
|
|
|
LL: 'YYYY. MMMM D.',
|
|
|
LLL: 'YYYY. MMMM D. H:mm',
|
|
|
LLLL: 'YYYY. MMMM D., dddd H:mm',
|
|
|
},
|
|
|
meridiemParse: /de|du/i,
|
|
|
isPM: function (input) {
|
|
|
return input.charAt(1).toLowerCase() === 'u';
|
|
|
},
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours < 12) {
|
|
|
return isLower === true ? 'de' : 'DE';
|
|
|
} else {
|
|
|
return isLower === true ? 'du' : 'DU';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[ma] LT[-kor]',
|
|
|
nextDay: '[holnap] LT[-kor]',
|
|
|
nextWeek: function () {
|
|
|
return week.call(this, true);
|
|
|
},
|
|
|
lastDay: '[tegnap] LT[-kor]',
|
|
|
lastWeek: function () {
|
|
|
return week.call(this, false);
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s múlva',
|
|
|
past: '%s',
|
|
|
s: translate,
|
|
|
ss: translate,
|
|
|
m: translate,
|
|
|
mm: translate,
|
|
|
h: translate,
|
|
|
hh: translate,
|
|
|
d: translate,
|
|
|
dd: translate,
|
|
|
M: translate,
|
|
|
MM: translate,
|
|
|
y: translate,
|
|
|
yy: translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return hu;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/hy-am.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/hy-am.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Armenian [hy-am]
|
|
|
//! author : Armendarabyan : https://github.com/armendarabyan
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var hyAm = moment.defineLocale('hy-am', {
|
|
|
months: {
|
|
|
format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(
|
|
|
'_'
|
|
|
),
|
|
|
standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(
|
|
|
'_'
|
|
|
),
|
|
|
},
|
|
|
monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
|
|
|
weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
|
|
|
weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY թ.',
|
|
|
LLL: 'D MMMM YYYY թ., HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY թ., HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[այսօր] LT',
|
|
|
nextDay: '[վաղը] LT',
|
|
|
lastDay: '[երեկ] LT',
|
|
|
nextWeek: function () {
|
|
|
return 'dddd [օրը ժամը] LT';
|
|
|
},
|
|
|
lastWeek: function () {
|
|
|
return '[անցած] dddd [օրը ժամը] LT';
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s հետո',
|
|
|
past: '%s առաջ',
|
|
|
s: 'մի քանի վայրկյան',
|
|
|
ss: '%d վայրկյան',
|
|
|
m: 'րոպե',
|
|
|
mm: '%d րոպե',
|
|
|
h: 'ժամ',
|
|
|
hh: '%d ժամ',
|
|
|
d: 'օր',
|
|
|
dd: '%d օր',
|
|
|
M: 'ամիս',
|
|
|
MM: '%d ամիս',
|
|
|
y: 'տարի',
|
|
|
yy: '%d տարի',
|
|
|
},
|
|
|
meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
|
|
|
isPM: function (input) {
|
|
|
return /^(ցերեկվա|երեկոյան)$/.test(input);
|
|
|
},
|
|
|
meridiem: function (hour) {
|
|
|
if (hour < 4) {
|
|
|
return 'գիշերվա';
|
|
|
} else if (hour < 12) {
|
|
|
return 'առավոտվա';
|
|
|
} else if (hour < 17) {
|
|
|
return 'ցերեկվա';
|
|
|
} else {
|
|
|
return 'երեկոյան';
|
|
|
}
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'DDD':
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
case 'DDDo':
|
|
|
if (number === 1) {
|
|
|
return number + '-ին';
|
|
|
}
|
|
|
return number + '-րդ';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return hyAm;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/id.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/id.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Indonesian [id]
|
|
|
//! author : Mohammad Satrio Utomo : https://github.com/tyok
|
|
|
//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var id = moment.defineLocale('id', {
|
|
|
months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
|
|
|
weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
|
|
|
weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
|
|
|
weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH.mm',
|
|
|
LTS: 'HH.mm.ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY [pukul] HH.mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
|
|
|
},
|
|
|
meridiemParse: /pagi|siang|sore|malam/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'pagi') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'siang') {
|
|
|
return hour >= 11 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'sore' || meridiem === 'malam') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours < 11) {
|
|
|
return 'pagi';
|
|
|
} else if (hours < 15) {
|
|
|
return 'siang';
|
|
|
} else if (hours < 19) {
|
|
|
return 'sore';
|
|
|
} else {
|
|
|
return 'malam';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Hari ini pukul] LT',
|
|
|
nextDay: '[Besok pukul] LT',
|
|
|
nextWeek: 'dddd [pukul] LT',
|
|
|
lastDay: '[Kemarin pukul] LT',
|
|
|
lastWeek: 'dddd [lalu pukul] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'dalam %s',
|
|
|
past: '%s yang lalu',
|
|
|
s: 'beberapa detik',
|
|
|
ss: '%d detik',
|
|
|
m: 'semenit',
|
|
|
mm: '%d menit',
|
|
|
h: 'sejam',
|
|
|
hh: '%d jam',
|
|
|
d: 'sehari',
|
|
|
dd: '%d hari',
|
|
|
M: 'sebulan',
|
|
|
MM: '%d bulan',
|
|
|
y: 'setahun',
|
|
|
yy: '%d tahun',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return id;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/is.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/is.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Icelandic [is]
|
|
|
//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function plural(n) {
|
|
|
if (n % 100 === 11) {
|
|
|
return true;
|
|
|
} else if (n % 10 === 1) {
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
function translate(number, withoutSuffix, key, isFuture) {
|
|
|
var result = number + ' ';
|
|
|
switch (key) {
|
|
|
case 's':
|
|
|
return withoutSuffix || isFuture
|
|
|
? 'nokkrar sekúndur'
|
|
|
: 'nokkrum sekúndum';
|
|
|
case 'ss':
|
|
|
if (plural(number)) {
|
|
|
return (
|
|
|
result +
|
|
|
(withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')
|
|
|
);
|
|
|
}
|
|
|
return result + 'sekúnda';
|
|
|
case 'm':
|
|
|
return withoutSuffix ? 'mínúta' : 'mínútu';
|
|
|
case 'mm':
|
|
|
if (plural(number)) {
|
|
|
return (
|
|
|
result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')
|
|
|
);
|
|
|
} else if (withoutSuffix) {
|
|
|
return result + 'mínúta';
|
|
|
}
|
|
|
return result + 'mínútu';
|
|
|
case 'hh':
|
|
|
if (plural(number)) {
|
|
|
return (
|
|
|
result +
|
|
|
(withoutSuffix || isFuture
|
|
|
? 'klukkustundir'
|
|
|
: 'klukkustundum')
|
|
|
);
|
|
|
}
|
|
|
return result + 'klukkustund';
|
|
|
case 'd':
|
|
|
if (withoutSuffix) {
|
|
|
return 'dagur';
|
|
|
}
|
|
|
return isFuture ? 'dag' : 'degi';
|
|
|
case 'dd':
|
|
|
if (plural(number)) {
|
|
|
if (withoutSuffix) {
|
|
|
return result + 'dagar';
|
|
|
}
|
|
|
return result + (isFuture ? 'daga' : 'dögum');
|
|
|
} else if (withoutSuffix) {
|
|
|
return result + 'dagur';
|
|
|
}
|
|
|
return result + (isFuture ? 'dag' : 'degi');
|
|
|
case 'M':
|
|
|
if (withoutSuffix) {
|
|
|
return 'mánuður';
|
|
|
}
|
|
|
return isFuture ? 'mánuð' : 'mánuði';
|
|
|
case 'MM':
|
|
|
if (plural(number)) {
|
|
|
if (withoutSuffix) {
|
|
|
return result + 'mánuðir';
|
|
|
}
|
|
|
return result + (isFuture ? 'mánuði' : 'mánuðum');
|
|
|
} else if (withoutSuffix) {
|
|
|
return result + 'mánuður';
|
|
|
}
|
|
|
return result + (isFuture ? 'mánuð' : 'mánuði');
|
|
|
case 'y':
|
|
|
return withoutSuffix || isFuture ? 'ár' : 'ári';
|
|
|
case 'yy':
|
|
|
if (plural(number)) {
|
|
|
return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
|
|
|
}
|
|
|
return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var is = moment.defineLocale('is', {
|
|
|
months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
|
|
|
weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
|
|
|
weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY [kl.] H:mm',
|
|
|
LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[í dag kl.] LT',
|
|
|
nextDay: '[á morgun kl.] LT',
|
|
|
nextWeek: 'dddd [kl.] LT',
|
|
|
lastDay: '[í gær kl.] LT',
|
|
|
lastWeek: '[síðasta] dddd [kl.] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'eftir %s',
|
|
|
past: 'fyrir %s síðan',
|
|
|
s: translate,
|
|
|
ss: translate,
|
|
|
m: translate,
|
|
|
mm: translate,
|
|
|
h: 'klukkustund',
|
|
|
hh: translate,
|
|
|
d: translate,
|
|
|
dd: translate,
|
|
|
M: translate,
|
|
|
MM: translate,
|
|
|
y: translate,
|
|
|
yy: translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return is;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/it-ch.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/it-ch.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Italian (Switzerland) [it-ch]
|
|
|
//! author : xfh : https://github.com/xfh
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var itCh = moment.defineLocale('it-ch', {
|
|
|
months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
|
|
|
weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
|
|
|
weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Oggi alle] LT',
|
|
|
nextDay: '[Domani alle] LT',
|
|
|
nextWeek: 'dddd [alle] LT',
|
|
|
lastDay: '[Ieri alle] LT',
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[la scorsa] dddd [alle] LT';
|
|
|
default:
|
|
|
return '[lo scorso] dddd [alle] LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: function (s) {
|
|
|
return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;
|
|
|
},
|
|
|
past: '%s fa',
|
|
|
s: 'alcuni secondi',
|
|
|
ss: '%d secondi',
|
|
|
m: 'un minuto',
|
|
|
mm: '%d minuti',
|
|
|
h: "un'ora",
|
|
|
hh: '%d ore',
|
|
|
d: 'un giorno',
|
|
|
dd: '%d giorni',
|
|
|
M: 'un mese',
|
|
|
MM: '%d mesi',
|
|
|
y: 'un anno',
|
|
|
yy: '%d anni',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
|
|
ordinal: '%dº',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return itCh;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/it.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/it.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Italian [it]
|
|
|
//! author : Lorenzo : https://github.com/aliem
|
|
|
//! author: Mattia Larentis: https://github.com/nostalgiaz
|
|
|
//! author: Marco : https://github.com/Manfre98
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var it = moment.defineLocale('it', {
|
|
|
months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
|
|
|
weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
|
|
|
weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: function () {
|
|
|
return (
|
|
|
'[Oggi a' +
|
|
|
(this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
|
|
|
']LT'
|
|
|
);
|
|
|
},
|
|
|
nextDay: function () {
|
|
|
return (
|
|
|
'[Domani a' +
|
|
|
(this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
|
|
|
']LT'
|
|
|
);
|
|
|
},
|
|
|
nextWeek: function () {
|
|
|
return (
|
|
|
'dddd [a' +
|
|
|
(this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
|
|
|
']LT'
|
|
|
);
|
|
|
},
|
|
|
lastDay: function () {
|
|
|
return (
|
|
|
'[Ieri a' +
|
|
|
(this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
|
|
|
']LT'
|
|
|
);
|
|
|
},
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return (
|
|
|
'[La scorsa] dddd [a' +
|
|
|
(this.hours() > 1
|
|
|
? 'lle '
|
|
|
: this.hours() === 0
|
|
|
? ' '
|
|
|
: "ll'") +
|
|
|
']LT'
|
|
|
);
|
|
|
default:
|
|
|
return (
|
|
|
'[Lo scorso] dddd [a' +
|
|
|
(this.hours() > 1
|
|
|
? 'lle '
|
|
|
: this.hours() === 0
|
|
|
? ' '
|
|
|
: "ll'") +
|
|
|
']LT'
|
|
|
);
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'tra %s',
|
|
|
past: '%s fa',
|
|
|
s: 'alcuni secondi',
|
|
|
ss: '%d secondi',
|
|
|
m: 'un minuto',
|
|
|
mm: '%d minuti',
|
|
|
h: "un'ora",
|
|
|
hh: '%d ore',
|
|
|
d: 'un giorno',
|
|
|
dd: '%d giorni',
|
|
|
w: 'una settimana',
|
|
|
ww: '%d settimane',
|
|
|
M: 'un mese',
|
|
|
MM: '%d mesi',
|
|
|
y: 'un anno',
|
|
|
yy: '%d anni',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
|
|
ordinal: '%dº',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return it;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ja.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ja.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Japanese [ja]
|
|
|
//! author : LI Long : https://github.com/baryon
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var ja = moment.defineLocale('ja', {
|
|
|
eras: [
|
|
|
{
|
|
|
since: '2019-05-01',
|
|
|
offset: 1,
|
|
|
name: '令和',
|
|
|
narrow: '㋿',
|
|
|
abbr: 'R',
|
|
|
},
|
|
|
{
|
|
|
since: '1989-01-08',
|
|
|
until: '2019-04-30',
|
|
|
offset: 1,
|
|
|
name: '平成',
|
|
|
narrow: '㍻',
|
|
|
abbr: 'H',
|
|
|
},
|
|
|
{
|
|
|
since: '1926-12-25',
|
|
|
until: '1989-01-07',
|
|
|
offset: 1,
|
|
|
name: '昭和',
|
|
|
narrow: '㍼',
|
|
|
abbr: 'S',
|
|
|
},
|
|
|
{
|
|
|
since: '1912-07-30',
|
|
|
until: '1926-12-24',
|
|
|
offset: 1,
|
|
|
name: '大正',
|
|
|
narrow: '㍽',
|
|
|
abbr: 'T',
|
|
|
},
|
|
|
{
|
|
|
since: '1873-01-01',
|
|
|
until: '1912-07-29',
|
|
|
offset: 6,
|
|
|
name: '明治',
|
|
|
narrow: '㍾',
|
|
|
abbr: 'M',
|
|
|
},
|
|
|
{
|
|
|
since: '0001-01-01',
|
|
|
until: '1873-12-31',
|
|
|
offset: 1,
|
|
|
name: '西暦',
|
|
|
narrow: 'AD',
|
|
|
abbr: 'AD',
|
|
|
},
|
|
|
{
|
|
|
since: '0000-12-31',
|
|
|
until: -Infinity,
|
|
|
offset: 1,
|
|
|
name: '紀元前',
|
|
|
narrow: 'BC',
|
|
|
abbr: 'BC',
|
|
|
},
|
|
|
],
|
|
|
eraYearOrdinalRegex: /(元|\d+)年/,
|
|
|
eraYearOrdinalParse: function (input, match) {
|
|
|
return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);
|
|
|
},
|
|
|
months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
|
|
|
monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
|
|
|
weekdaysShort: '日_月_火_水_木_金_土'.split('_'),
|
|
|
weekdaysMin: '日_月_火_水_木_金_土'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'YYYY/MM/DD',
|
|
|
LL: 'YYYY年M月D日',
|
|
|
LLL: 'YYYY年M月D日 HH:mm',
|
|
|
LLLL: 'YYYY年M月D日 dddd HH:mm',
|
|
|
l: 'YYYY/MM/DD',
|
|
|
ll: 'YYYY年M月D日',
|
|
|
lll: 'YYYY年M月D日 HH:mm',
|
|
|
llll: 'YYYY年M月D日(ddd) HH:mm',
|
|
|
},
|
|
|
meridiemParse: /午前|午後/i,
|
|
|
isPM: function (input) {
|
|
|
return input === '午後';
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return '午前';
|
|
|
} else {
|
|
|
return '午後';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[今日] LT',
|
|
|
nextDay: '[明日] LT',
|
|
|
nextWeek: function (now) {
|
|
|
if (now.week() !== this.week()) {
|
|
|
return '[来週]dddd LT';
|
|
|
} else {
|
|
|
return 'dddd LT';
|
|
|
}
|
|
|
},
|
|
|
lastDay: '[昨日] LT',
|
|
|
lastWeek: function (now) {
|
|
|
if (this.week() !== now.week()) {
|
|
|
return '[先週]dddd LT';
|
|
|
} else {
|
|
|
return 'dddd LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}日/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'y':
|
|
|
return number === 1 ? '元年' : number + '年';
|
|
|
case 'd':
|
|
|
case 'D':
|
|
|
case 'DDD':
|
|
|
return number + '日';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s後',
|
|
|
past: '%s前',
|
|
|
s: '数秒',
|
|
|
ss: '%d秒',
|
|
|
m: '1分',
|
|
|
mm: '%d分',
|
|
|
h: '1時間',
|
|
|
hh: '%d時間',
|
|
|
d: '1日',
|
|
|
dd: '%d日',
|
|
|
M: '1ヶ月',
|
|
|
MM: '%dヶ月',
|
|
|
y: '1年',
|
|
|
yy: '%d年',
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ja;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/jv.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/jv.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Javanese [jv]
|
|
|
//! author : Rony Lantip : https://github.com/lantip
|
|
|
//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var jv = moment.defineLocale('jv', {
|
|
|
months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
|
|
|
weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
|
|
|
weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
|
|
|
weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH.mm',
|
|
|
LTS: 'HH.mm.ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY [pukul] HH.mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
|
|
|
},
|
|
|
meridiemParse: /enjing|siyang|sonten|ndalu/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'enjing') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'siyang') {
|
|
|
return hour >= 11 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'sonten' || meridiem === 'ndalu') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours < 11) {
|
|
|
return 'enjing';
|
|
|
} else if (hours < 15) {
|
|
|
return 'siyang';
|
|
|
} else if (hours < 19) {
|
|
|
return 'sonten';
|
|
|
} else {
|
|
|
return 'ndalu';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Dinten puniko pukul] LT',
|
|
|
nextDay: '[Mbenjang pukul] LT',
|
|
|
nextWeek: 'dddd [pukul] LT',
|
|
|
lastDay: '[Kala wingi pukul] LT',
|
|
|
lastWeek: 'dddd [kepengker pukul] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'wonten ing %s',
|
|
|
past: '%s ingkang kepengker',
|
|
|
s: 'sawetawis detik',
|
|
|
ss: '%d detik',
|
|
|
m: 'setunggal menit',
|
|
|
mm: '%d menit',
|
|
|
h: 'setunggal jam',
|
|
|
hh: '%d jam',
|
|
|
d: 'sedinten',
|
|
|
dd: '%d dinten',
|
|
|
M: 'sewulan',
|
|
|
MM: '%d wulan',
|
|
|
y: 'setaun',
|
|
|
yy: '%d taun',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return jv;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ka.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ka.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Georgian [ka]
|
|
|
//! author : Irakli Janiashvili : https://github.com/IrakliJani
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var ka = moment.defineLocale('ka', {
|
|
|
months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
|
|
|
weekdays: {
|
|
|
standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(
|
|
|
'_'
|
|
|
),
|
|
|
format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(
|
|
|
'_'
|
|
|
),
|
|
|
isFormat: /(წინა|შემდეგ)/,
|
|
|
},
|
|
|
weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
|
|
|
weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[დღეს] LT[-ზე]',
|
|
|
nextDay: '[ხვალ] LT[-ზე]',
|
|
|
lastDay: '[გუშინ] LT[-ზე]',
|
|
|
nextWeek: '[შემდეგ] dddd LT[-ზე]',
|
|
|
lastWeek: '[წინა] dddd LT-ზე',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: function (s) {
|
|
|
return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (
|
|
|
$0,
|
|
|
$1,
|
|
|
$2
|
|
|
) {
|
|
|
return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';
|
|
|
});
|
|
|
},
|
|
|
past: function (s) {
|
|
|
if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {
|
|
|
return s.replace(/(ი|ე)$/, 'ის წინ');
|
|
|
}
|
|
|
if (/წელი/.test(s)) {
|
|
|
return s.replace(/წელი$/, 'წლის წინ');
|
|
|
}
|
|
|
return s;
|
|
|
},
|
|
|
s: 'რამდენიმე წამი',
|
|
|
ss: '%d წამი',
|
|
|
m: 'წუთი',
|
|
|
mm: '%d წუთი',
|
|
|
h: 'საათი',
|
|
|
hh: '%d საათი',
|
|
|
d: 'დღე',
|
|
|
dd: '%d დღე',
|
|
|
M: 'თვე',
|
|
|
MM: '%d თვე',
|
|
|
y: 'წელი',
|
|
|
yy: '%d წელი',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
|
|
|
ordinal: function (number) {
|
|
|
if (number === 0) {
|
|
|
return number;
|
|
|
}
|
|
|
if (number === 1) {
|
|
|
return number + '-ლი';
|
|
|
}
|
|
|
if (
|
|
|
number < 20 ||
|
|
|
(number <= 100 && number % 20 === 0) ||
|
|
|
number % 100 === 0
|
|
|
) {
|
|
|
return 'მე-' + number;
|
|
|
}
|
|
|
return number + '-ე';
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1,
|
|
|
doy: 7,
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ka;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/kk.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/kk.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Kazakh [kk]
|
|
|
//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var suffixes = {
|
|
|
0: '-ші',
|
|
|
1: '-ші',
|
|
|
2: '-ші',
|
|
|
3: '-ші',
|
|
|
4: '-ші',
|
|
|
5: '-ші',
|
|
|
6: '-шы',
|
|
|
7: '-ші',
|
|
|
8: '-ші',
|
|
|
9: '-шы',
|
|
|
10: '-шы',
|
|
|
20: '-шы',
|
|
|
30: '-шы',
|
|
|
40: '-шы',
|
|
|
50: '-ші',
|
|
|
60: '-шы',
|
|
|
70: '-ші',
|
|
|
80: '-ші',
|
|
|
90: '-шы',
|
|
|
100: '-ші',
|
|
|
};
|
|
|
|
|
|
var kk = moment.defineLocale('kk', {
|
|
|
months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
|
|
|
weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
|
|
|
weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Бүгін сағат] LT',
|
|
|
nextDay: '[Ертең сағат] LT',
|
|
|
nextWeek: 'dddd [сағат] LT',
|
|
|
lastDay: '[Кеше сағат] LT',
|
|
|
lastWeek: '[Өткен аптаның] dddd [сағат] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s ішінде',
|
|
|
past: '%s бұрын',
|
|
|
s: 'бірнеше секунд',
|
|
|
ss: '%d секунд',
|
|
|
m: 'бір минут',
|
|
|
mm: '%d минут',
|
|
|
h: 'бір сағат',
|
|
|
hh: '%d сағат',
|
|
|
d: 'бір күн',
|
|
|
dd: '%d күн',
|
|
|
M: 'бір ай',
|
|
|
MM: '%d ай',
|
|
|
y: 'бір жыл',
|
|
|
yy: '%d жыл',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
|
|
|
ordinal: function (number) {
|
|
|
var a = number % 10,
|
|
|
b = number >= 100 ? 100 : null;
|
|
|
return number + (suffixes[number] || suffixes[a] || suffixes[b]);
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return kk;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/km.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/km.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Cambodian [km]
|
|
|
//! author : Kruy Vanna : https://github.com/kruyvanna
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '១',
|
|
|
2: '២',
|
|
|
3: '៣',
|
|
|
4: '៤',
|
|
|
5: '៥',
|
|
|
6: '៦',
|
|
|
7: '៧',
|
|
|
8: '៨',
|
|
|
9: '៩',
|
|
|
0: '០',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'១': '1',
|
|
|
'២': '2',
|
|
|
'៣': '3',
|
|
|
'៤': '4',
|
|
|
'៥': '5',
|
|
|
'៦': '6',
|
|
|
'៧': '7',
|
|
|
'៨': '8',
|
|
|
'៩': '9',
|
|
|
'០': '0',
|
|
|
};
|
|
|
|
|
|
var km = moment.defineLocale('km', {
|
|
|
months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
|
|
|
weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
|
|
|
weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /ព្រឹក|ល្ងាច/,
|
|
|
isPM: function (input) {
|
|
|
return input === 'ល្ងាច';
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'ព្រឹក';
|
|
|
} else {
|
|
|
return 'ល្ងាច';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
|
|
|
nextDay: '[ស្អែក ម៉ោង] LT',
|
|
|
nextWeek: 'dddd [ម៉ោង] LT',
|
|
|
lastDay: '[ម្សិលមិញ ម៉ោង] LT',
|
|
|
lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%sទៀត',
|
|
|
past: '%sមុន',
|
|
|
s: 'ប៉ុន្មានវិនាទី',
|
|
|
ss: '%d វិនាទី',
|
|
|
m: 'មួយនាទី',
|
|
|
mm: '%d នាទី',
|
|
|
h: 'មួយម៉ោង',
|
|
|
hh: '%d ម៉ោង',
|
|
|
d: 'មួយថ្ងៃ',
|
|
|
dd: '%d ថ្ងៃ',
|
|
|
M: 'មួយខែ',
|
|
|
MM: '%d ខែ',
|
|
|
y: 'មួយឆ្នាំ',
|
|
|
yy: '%d ឆ្នាំ',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /ទី\d{1,2}/,
|
|
|
ordinal: 'ទី%d',
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return km;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/kn.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/kn.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Kannada [kn]
|
|
|
//! author : Rajeev Naik : https://github.com/rajeevnaikte
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '೧',
|
|
|
2: '೨',
|
|
|
3: '೩',
|
|
|
4: '೪',
|
|
|
5: '೫',
|
|
|
6: '೬',
|
|
|
7: '೭',
|
|
|
8: '೮',
|
|
|
9: '೯',
|
|
|
0: '೦',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'೧': '1',
|
|
|
'೨': '2',
|
|
|
'೩': '3',
|
|
|
'೪': '4',
|
|
|
'೫': '5',
|
|
|
'೬': '6',
|
|
|
'೭': '7',
|
|
|
'೮': '8',
|
|
|
'೯': '9',
|
|
|
'೦': '0',
|
|
|
};
|
|
|
|
|
|
var kn = moment.defineLocale('kn', {
|
|
|
months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
|
|
|
weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm',
|
|
|
LTS: 'A h:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, A h:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY, A h:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[ಇಂದು] LT',
|
|
|
nextDay: '[ನಾಳೆ] LT',
|
|
|
nextWeek: 'dddd, LT',
|
|
|
lastDay: '[ನಿನ್ನೆ] LT',
|
|
|
lastWeek: '[ಕೊನೆಯ] dddd, LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s ನಂತರ',
|
|
|
past: '%s ಹಿಂದೆ',
|
|
|
s: 'ಕೆಲವು ಕ್ಷಣಗಳು',
|
|
|
ss: '%d ಸೆಕೆಂಡುಗಳು',
|
|
|
m: 'ಒಂದು ನಿಮಿಷ',
|
|
|
mm: '%d ನಿಮಿಷ',
|
|
|
h: 'ಒಂದು ಗಂಟೆ',
|
|
|
hh: '%d ಗಂಟೆ',
|
|
|
d: 'ಒಂದು ದಿನ',
|
|
|
dd: '%d ದಿನ',
|
|
|
M: 'ಒಂದು ತಿಂಗಳು',
|
|
|
MM: '%d ತಿಂಗಳು',
|
|
|
y: 'ಒಂದು ವರ್ಷ',
|
|
|
yy: '%d ವರ್ಷ',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'ರಾತ್ರಿ') {
|
|
|
return hour < 4 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
|
|
|
return hour >= 10 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'ಸಂಜೆ') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'ರಾತ್ರಿ';
|
|
|
} else if (hour < 10) {
|
|
|
return 'ಬೆಳಿಗ್ಗೆ';
|
|
|
} else if (hour < 17) {
|
|
|
return 'ಮಧ್ಯಾಹ್ನ';
|
|
|
} else if (hour < 20) {
|
|
|
return 'ಸಂಜೆ';
|
|
|
} else {
|
|
|
return 'ರಾತ್ರಿ';
|
|
|
}
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
|
|
|
ordinal: function (number) {
|
|
|
return number + 'ನೇ';
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return kn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ko.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ko.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Korean [ko]
|
|
|
//! author : Kyungwook, Park : https://github.com/kyungw00k
|
|
|
//! author : Jeeeyul Lee <jeeeyul@gmail.com>
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var ko = moment.defineLocale('ko', {
|
|
|
months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
|
|
|
monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
|
|
|
weekdaysShort: '일_월_화_수_목_금_토'.split('_'),
|
|
|
weekdaysMin: '일_월_화_수_목_금_토'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm',
|
|
|
LTS: 'A h:mm:ss',
|
|
|
L: 'YYYY.MM.DD.',
|
|
|
LL: 'YYYY년 MMMM D일',
|
|
|
LLL: 'YYYY년 MMMM D일 A h:mm',
|
|
|
LLLL: 'YYYY년 MMMM D일 dddd A h:mm',
|
|
|
l: 'YYYY.MM.DD.',
|
|
|
ll: 'YYYY년 MMMM D일',
|
|
|
lll: 'YYYY년 MMMM D일 A h:mm',
|
|
|
llll: 'YYYY년 MMMM D일 dddd A h:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '오늘 LT',
|
|
|
nextDay: '내일 LT',
|
|
|
nextWeek: 'dddd LT',
|
|
|
lastDay: '어제 LT',
|
|
|
lastWeek: '지난주 dddd LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s 후',
|
|
|
past: '%s 전',
|
|
|
s: '몇 초',
|
|
|
ss: '%d초',
|
|
|
m: '1분',
|
|
|
mm: '%d분',
|
|
|
h: '한 시간',
|
|
|
hh: '%d시간',
|
|
|
d: '하루',
|
|
|
dd: '%d일',
|
|
|
M: '한 달',
|
|
|
MM: '%d달',
|
|
|
y: '일 년',
|
|
|
yy: '%d년',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'd':
|
|
|
case 'D':
|
|
|
case 'DDD':
|
|
|
return number + '일';
|
|
|
case 'M':
|
|
|
return number + '월';
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number + '주';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
meridiemParse: /오전|오후/,
|
|
|
isPM: function (token) {
|
|
|
return token === '오후';
|
|
|
},
|
|
|
meridiem: function (hour, minute, isUpper) {
|
|
|
return hour < 12 ? '오전' : '오후';
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ko;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ku.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ku.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Kurdish [ku]
|
|
|
//! author : Shahram Mebashar : https://github.com/ShahramMebashar
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '١',
|
|
|
2: '٢',
|
|
|
3: '٣',
|
|
|
4: '٤',
|
|
|
5: '٥',
|
|
|
6: '٦',
|
|
|
7: '٧',
|
|
|
8: '٨',
|
|
|
9: '٩',
|
|
|
0: '٠',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'١': '1',
|
|
|
'٢': '2',
|
|
|
'٣': '3',
|
|
|
'٤': '4',
|
|
|
'٥': '5',
|
|
|
'٦': '6',
|
|
|
'٧': '7',
|
|
|
'٨': '8',
|
|
|
'٩': '9',
|
|
|
'٠': '0',
|
|
|
},
|
|
|
months = [
|
|
|
'کانونی دووەم',
|
|
|
'شوبات',
|
|
|
'ئازار',
|
|
|
'نیسان',
|
|
|
'ئایار',
|
|
|
'حوزەیران',
|
|
|
'تەمموز',
|
|
|
'ئاب',
|
|
|
'ئەیلوول',
|
|
|
'تشرینی یەكەم',
|
|
|
'تشرینی دووەم',
|
|
|
'كانونی یەکەم',
|
|
|
];
|
|
|
|
|
|
var ku = moment.defineLocale('ku', {
|
|
|
months: months,
|
|
|
monthsShort: months,
|
|
|
weekdays: 'یهكشهممه_دووشهممه_سێشهممه_چوارشهممه_پێنجشهممه_ههینی_شهممه'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'یهكشهم_دووشهم_سێشهم_چوارشهم_پێنجشهم_ههینی_شهممه'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /ئێواره|بهیانی/,
|
|
|
isPM: function (input) {
|
|
|
return /ئێواره/.test(input);
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'بهیانی';
|
|
|
} else {
|
|
|
return 'ئێواره';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[ئهمرۆ كاتژمێر] LT',
|
|
|
nextDay: '[بهیانی كاتژمێر] LT',
|
|
|
nextWeek: 'dddd [كاتژمێر] LT',
|
|
|
lastDay: '[دوێنێ كاتژمێر] LT',
|
|
|
lastWeek: 'dddd [كاتژمێر] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'له %s',
|
|
|
past: '%s',
|
|
|
s: 'چهند چركهیهك',
|
|
|
ss: 'چركه %d',
|
|
|
m: 'یهك خولهك',
|
|
|
mm: '%d خولهك',
|
|
|
h: 'یهك كاتژمێر',
|
|
|
hh: '%d كاتژمێر',
|
|
|
d: 'یهك ڕۆژ',
|
|
|
dd: '%d ڕۆژ',
|
|
|
M: 'یهك مانگ',
|
|
|
MM: '%d مانگ',
|
|
|
y: 'یهك ساڵ',
|
|
|
yy: '%d ساڵ',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string
|
|
|
.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
})
|
|
|
.replace(/،/g, ',');
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string
|
|
|
.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
})
|
|
|
.replace(/,/g, '،');
|
|
|
},
|
|
|
week: {
|
|
|
dow: 6, // Saturday is the first day of the week.
|
|
|
doy: 12, // The week that contains Jan 12th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ku;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ky.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ky.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Kyrgyz [ky]
|
|
|
//! author : Chyngyz Arystan uulu : https://github.com/chyngyz
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var suffixes = {
|
|
|
0: '-чү',
|
|
|
1: '-чи',
|
|
|
2: '-чи',
|
|
|
3: '-чү',
|
|
|
4: '-чү',
|
|
|
5: '-чи',
|
|
|
6: '-чы',
|
|
|
7: '-чи',
|
|
|
8: '-чи',
|
|
|
9: '-чу',
|
|
|
10: '-чу',
|
|
|
20: '-чы',
|
|
|
30: '-чу',
|
|
|
40: '-чы',
|
|
|
50: '-чү',
|
|
|
60: '-чы',
|
|
|
70: '-чи',
|
|
|
80: '-чи',
|
|
|
90: '-чу',
|
|
|
100: '-чү',
|
|
|
};
|
|
|
|
|
|
var ky = moment.defineLocale('ky', {
|
|
|
months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
|
|
|
weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Бүгүн саат] LT',
|
|
|
nextDay: '[Эртең саат] LT',
|
|
|
nextWeek: 'dddd [саат] LT',
|
|
|
lastDay: '[Кечээ саат] LT',
|
|
|
lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s ичинде',
|
|
|
past: '%s мурун',
|
|
|
s: 'бирнече секунд',
|
|
|
ss: '%d секунд',
|
|
|
m: 'бир мүнөт',
|
|
|
mm: '%d мүнөт',
|
|
|
h: 'бир саат',
|
|
|
hh: '%d саат',
|
|
|
d: 'бир күн',
|
|
|
dd: '%d күн',
|
|
|
M: 'бир ай',
|
|
|
MM: '%d ай',
|
|
|
y: 'бир жыл',
|
|
|
yy: '%d жыл',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
|
|
|
ordinal: function (number) {
|
|
|
var a = number % 10,
|
|
|
b = number >= 100 ? 100 : null;
|
|
|
return number + (suffixes[number] || suffixes[a] || suffixes[b]);
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ky;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/lb.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/lb.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Luxembourgish [lb]
|
|
|
//! author : mweimerskirch : https://github.com/mweimerskirch
|
|
|
//! author : David Raison : https://github.com/kwisatz
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
|
|
var format = {
|
|
|
m: ['eng Minutt', 'enger Minutt'],
|
|
|
h: ['eng Stonn', 'enger Stonn'],
|
|
|
d: ['een Dag', 'engem Dag'],
|
|
|
M: ['ee Mount', 'engem Mount'],
|
|
|
y: ['ee Joer', 'engem Joer'],
|
|
|
};
|
|
|
return withoutSuffix ? format[key][0] : format[key][1];
|
|
|
}
|
|
|
function processFutureTime(string) {
|
|
|
var number = string.substr(0, string.indexOf(' '));
|
|
|
if (eifelerRegelAppliesToNumber(number)) {
|
|
|
return 'a ' + string;
|
|
|
}
|
|
|
return 'an ' + string;
|
|
|
}
|
|
|
function processPastTime(string) {
|
|
|
var number = string.substr(0, string.indexOf(' '));
|
|
|
if (eifelerRegelAppliesToNumber(number)) {
|
|
|
return 'viru ' + string;
|
|
|
}
|
|
|
return 'virun ' + string;
|
|
|
}
|
|
|
/**
|
|
|
* Returns true if the word before the given number loses the '-n' ending.
|
|
|
* e.g. 'an 10 Deeg' but 'a 5 Deeg'
|
|
|
*
|
|
|
* @param number {integer}
|
|
|
* @returns {boolean}
|
|
|
*/
|
|
|
function eifelerRegelAppliesToNumber(number) {
|
|
|
number = parseInt(number, 10);
|
|
|
if (isNaN(number)) {
|
|
|
return false;
|
|
|
}
|
|
|
if (number < 0) {
|
|
|
// Negative Number --> always true
|
|
|
return true;
|
|
|
} else if (number < 10) {
|
|
|
// Only 1 digit
|
|
|
if (4 <= number && number <= 7) {
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
} else if (number < 100) {
|
|
|
// 2 digits
|
|
|
var lastDigit = number % 10,
|
|
|
firstDigit = number / 10;
|
|
|
if (lastDigit === 0) {
|
|
|
return eifelerRegelAppliesToNumber(firstDigit);
|
|
|
}
|
|
|
return eifelerRegelAppliesToNumber(lastDigit);
|
|
|
} else if (number < 10000) {
|
|
|
// 3 or 4 digits --> recursively check first digit
|
|
|
while (number >= 10) {
|
|
|
number = number / 10;
|
|
|
}
|
|
|
return eifelerRegelAppliesToNumber(number);
|
|
|
} else {
|
|
|
// Anything larger than 4 digits: recursively check first n-3 digits
|
|
|
number = number / 1000;
|
|
|
return eifelerRegelAppliesToNumber(number);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var lb = moment.defineLocale('lb', {
|
|
|
months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
|
|
|
weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm [Auer]',
|
|
|
LTS: 'H:mm:ss [Auer]',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY H:mm [Auer]',
|
|
|
LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Haut um] LT',
|
|
|
sameElse: 'L',
|
|
|
nextDay: '[Muer um] LT',
|
|
|
nextWeek: 'dddd [um] LT',
|
|
|
lastDay: '[Gëschter um] LT',
|
|
|
lastWeek: function () {
|
|
|
// Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
|
|
|
switch (this.day()) {
|
|
|
case 2:
|
|
|
case 4:
|
|
|
return '[Leschten] dddd [um] LT';
|
|
|
default:
|
|
|
return '[Leschte] dddd [um] LT';
|
|
|
}
|
|
|
},
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: processFutureTime,
|
|
|
past: processPastTime,
|
|
|
s: 'e puer Sekonnen',
|
|
|
ss: '%d Sekonnen',
|
|
|
m: processRelativeTime,
|
|
|
mm: '%d Minutten',
|
|
|
h: processRelativeTime,
|
|
|
hh: '%d Stonnen',
|
|
|
d: processRelativeTime,
|
|
|
dd: '%d Deeg',
|
|
|
M: processRelativeTime,
|
|
|
MM: '%d Méint',
|
|
|
y: processRelativeTime,
|
|
|
yy: '%d Joer',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return lb;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/lo.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/lo.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Lao [lo]
|
|
|
//! author : Ryan Hart : https://github.com/ryanhart2
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var lo = moment.defineLocale('lo', {
|
|
|
months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
|
|
|
weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
|
|
|
weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'ວັນdddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
|
|
|
isPM: function (input) {
|
|
|
return input === 'ຕອນແລງ';
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'ຕອນເຊົ້າ';
|
|
|
} else {
|
|
|
return 'ຕອນແລງ';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[ມື້ນີ້ເວລາ] LT',
|
|
|
nextDay: '[ມື້ອື່ນເວລາ] LT',
|
|
|
nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',
|
|
|
lastDay: '[ມື້ວານນີ້ເວລາ] LT',
|
|
|
lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'ອີກ %s',
|
|
|
past: '%sຜ່ານມາ',
|
|
|
s: 'ບໍ່ເທົ່າໃດວິນາທີ',
|
|
|
ss: '%d ວິນາທີ',
|
|
|
m: '1 ນາທີ',
|
|
|
mm: '%d ນາທີ',
|
|
|
h: '1 ຊົ່ວໂມງ',
|
|
|
hh: '%d ຊົ່ວໂມງ',
|
|
|
d: '1 ມື້',
|
|
|
dd: '%d ມື້',
|
|
|
M: '1 ເດືອນ',
|
|
|
MM: '%d ເດືອນ',
|
|
|
y: '1 ປີ',
|
|
|
yy: '%d ປີ',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
|
|
|
ordinal: function (number) {
|
|
|
return 'ທີ່' + number;
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return lo;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/lt.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/lt.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Lithuanian [lt]
|
|
|
//! author : Mindaugas Mozūras : https://github.com/mmozuras
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var units = {
|
|
|
ss: 'sekundė_sekundžių_sekundes',
|
|
|
m: 'minutė_minutės_minutę',
|
|
|
mm: 'minutės_minučių_minutes',
|
|
|
h: 'valanda_valandos_valandą',
|
|
|
hh: 'valandos_valandų_valandas',
|
|
|
d: 'diena_dienos_dieną',
|
|
|
dd: 'dienos_dienų_dienas',
|
|
|
M: 'mėnuo_mėnesio_mėnesį',
|
|
|
MM: 'mėnesiai_mėnesių_mėnesius',
|
|
|
y: 'metai_metų_metus',
|
|
|
yy: 'metai_metų_metus',
|
|
|
};
|
|
|
function translateSeconds(number, withoutSuffix, key, isFuture) {
|
|
|
if (withoutSuffix) {
|
|
|
return 'kelios sekundės';
|
|
|
} else {
|
|
|
return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
|
|
|
}
|
|
|
}
|
|
|
function translateSingular(number, withoutSuffix, key, isFuture) {
|
|
|
return withoutSuffix
|
|
|
? forms(key)[0]
|
|
|
: isFuture
|
|
|
? forms(key)[1]
|
|
|
: forms(key)[2];
|
|
|
}
|
|
|
function special(number) {
|
|
|
return number % 10 === 0 || (number > 10 && number < 20);
|
|
|
}
|
|
|
function forms(key) {
|
|
|
return units[key].split('_');
|
|
|
}
|
|
|
function translate(number, withoutSuffix, key, isFuture) {
|
|
|
var result = number + ' ';
|
|
|
if (number === 1) {
|
|
|
return (
|
|
|
result + translateSingular(number, withoutSuffix, key[0], isFuture)
|
|
|
);
|
|
|
} else if (withoutSuffix) {
|
|
|
return result + (special(number) ? forms(key)[1] : forms(key)[0]);
|
|
|
} else {
|
|
|
if (isFuture) {
|
|
|
return result + forms(key)[1];
|
|
|
} else {
|
|
|
return result + (special(number) ? forms(key)[1] : forms(key)[2]);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
var lt = moment.defineLocale('lt', {
|
|
|
months: {
|
|
|
format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(
|
|
|
'_'
|
|
|
),
|
|
|
standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(
|
|
|
'_'
|
|
|
),
|
|
|
isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,
|
|
|
},
|
|
|
monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
|
|
|
weekdays: {
|
|
|
format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(
|
|
|
'_'
|
|
|
),
|
|
|
standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(
|
|
|
'_'
|
|
|
),
|
|
|
isFormat: /dddd HH:mm/,
|
|
|
},
|
|
|
weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
|
|
|
weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'YYYY-MM-DD',
|
|
|
LL: 'YYYY [m.] MMMM D [d.]',
|
|
|
LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
|
|
|
LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
|
|
|
l: 'YYYY-MM-DD',
|
|
|
ll: 'YYYY [m.] MMMM D [d.]',
|
|
|
lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
|
|
|
llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Šiandien] LT',
|
|
|
nextDay: '[Rytoj] LT',
|
|
|
nextWeek: 'dddd LT',
|
|
|
lastDay: '[Vakar] LT',
|
|
|
lastWeek: '[Praėjusį] dddd LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'po %s',
|
|
|
past: 'prieš %s',
|
|
|
s: translateSeconds,
|
|
|
ss: translate,
|
|
|
m: translateSingular,
|
|
|
mm: translate,
|
|
|
h: translateSingular,
|
|
|
hh: translate,
|
|
|
d: translateSingular,
|
|
|
dd: translate,
|
|
|
M: translateSingular,
|
|
|
MM: translate,
|
|
|
y: translateSingular,
|
|
|
yy: translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}-oji/,
|
|
|
ordinal: function (number) {
|
|
|
return number + '-oji';
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return lt;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/lv.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/lv.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Latvian [lv]
|
|
|
//! author : Kristaps Karlsons : https://github.com/skakri
|
|
|
//! author : Jānis Elmeris : https://github.com/JanisE
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var units = {
|
|
|
ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
|
|
|
m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
|
|
|
mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
|
|
|
h: 'stundas_stundām_stunda_stundas'.split('_'),
|
|
|
hh: 'stundas_stundām_stunda_stundas'.split('_'),
|
|
|
d: 'dienas_dienām_diena_dienas'.split('_'),
|
|
|
dd: 'dienas_dienām_diena_dienas'.split('_'),
|
|
|
M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
|
|
|
MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
|
|
|
y: 'gada_gadiem_gads_gadi'.split('_'),
|
|
|
yy: 'gada_gadiem_gads_gadi'.split('_'),
|
|
|
};
|
|
|
/**
|
|
|
* @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
|
|
|
*/
|
|
|
function format(forms, number, withoutSuffix) {
|
|
|
if (withoutSuffix) {
|
|
|
// E.g. "21 minūte", "3 minūtes".
|
|
|
return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
|
|
|
} else {
|
|
|
// E.g. "21 minūtes" as in "pēc 21 minūtes".
|
|
|
// E.g. "3 minūtēm" as in "pēc 3 minūtēm".
|
|
|
return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
|
|
|
}
|
|
|
}
|
|
|
function relativeTimeWithPlural(number, withoutSuffix, key) {
|
|
|
return number + ' ' + format(units[key], number, withoutSuffix);
|
|
|
}
|
|
|
function relativeTimeWithSingular(number, withoutSuffix, key) {
|
|
|
return format(units[key], number, withoutSuffix);
|
|
|
}
|
|
|
function relativeSeconds(number, withoutSuffix) {
|
|
|
return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
|
|
|
}
|
|
|
|
|
|
var lv = moment.defineLocale('lv', {
|
|
|
months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
|
|
|
weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),
|
|
|
weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY.',
|
|
|
LL: 'YYYY. [gada] D. MMMM',
|
|
|
LLL: 'YYYY. [gada] D. MMMM, HH:mm',
|
|
|
LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Šodien pulksten] LT',
|
|
|
nextDay: '[Rīt pulksten] LT',
|
|
|
nextWeek: 'dddd [pulksten] LT',
|
|
|
lastDay: '[Vakar pulksten] LT',
|
|
|
lastWeek: '[Pagājušā] dddd [pulksten] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'pēc %s',
|
|
|
past: 'pirms %s',
|
|
|
s: relativeSeconds,
|
|
|
ss: relativeTimeWithPlural,
|
|
|
m: relativeTimeWithSingular,
|
|
|
mm: relativeTimeWithPlural,
|
|
|
h: relativeTimeWithSingular,
|
|
|
hh: relativeTimeWithPlural,
|
|
|
d: relativeTimeWithSingular,
|
|
|
dd: relativeTimeWithPlural,
|
|
|
M: relativeTimeWithSingular,
|
|
|
MM: relativeTimeWithPlural,
|
|
|
y: relativeTimeWithSingular,
|
|
|
yy: relativeTimeWithPlural,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return lv;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/me.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/me.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Montenegrin [me]
|
|
|
//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var translator = {
|
|
|
words: {
|
|
|
//Different grammatical cases
|
|
|
ss: ['sekund', 'sekunda', 'sekundi'],
|
|
|
m: ['jedan minut', 'jednog minuta'],
|
|
|
mm: ['minut', 'minuta', 'minuta'],
|
|
|
h: ['jedan sat', 'jednog sata'],
|
|
|
hh: ['sat', 'sata', 'sati'],
|
|
|
dd: ['dan', 'dana', 'dana'],
|
|
|
MM: ['mjesec', 'mjeseca', 'mjeseci'],
|
|
|
yy: ['godina', 'godine', 'godina'],
|
|
|
},
|
|
|
correctGrammaticalCase: function (number, wordKey) {
|
|
|
return number === 1
|
|
|
? wordKey[0]
|
|
|
: number >= 2 && number <= 4
|
|
|
? wordKey[1]
|
|
|
: wordKey[2];
|
|
|
},
|
|
|
translate: function (number, withoutSuffix, key) {
|
|
|
var wordKey = translator.words[key];
|
|
|
if (key.length === 1) {
|
|
|
return withoutSuffix ? wordKey[0] : wordKey[1];
|
|
|
} else {
|
|
|
return (
|
|
|
number +
|
|
|
' ' +
|
|
|
translator.correctGrammaticalCase(number, wordKey)
|
|
|
);
|
|
|
}
|
|
|
},
|
|
|
};
|
|
|
|
|
|
var me = moment.defineLocale('me', {
|
|
|
months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
|
|
|
weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY H:mm',
|
|
|
LLLL: 'dddd, D. MMMM YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[danas u] LT',
|
|
|
nextDay: '[sjutra u] LT',
|
|
|
|
|
|
nextWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[u] [nedjelju] [u] LT';
|
|
|
case 3:
|
|
|
return '[u] [srijedu] [u] LT';
|
|
|
case 6:
|
|
|
return '[u] [subotu] [u] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[u] dddd [u] LT';
|
|
|
}
|
|
|
},
|
|
|
lastDay: '[juče u] LT',
|
|
|
lastWeek: function () {
|
|
|
var lastWeekDays = [
|
|
|
'[prošle] [nedjelje] [u] LT',
|
|
|
'[prošlog] [ponedjeljka] [u] LT',
|
|
|
'[prošlog] [utorka] [u] LT',
|
|
|
'[prošle] [srijede] [u] LT',
|
|
|
'[prošlog] [četvrtka] [u] LT',
|
|
|
'[prošlog] [petka] [u] LT',
|
|
|
'[prošle] [subote] [u] LT',
|
|
|
];
|
|
|
return lastWeekDays[this.day()];
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'za %s',
|
|
|
past: 'prije %s',
|
|
|
s: 'nekoliko sekundi',
|
|
|
ss: translator.translate,
|
|
|
m: translator.translate,
|
|
|
mm: translator.translate,
|
|
|
h: translator.translate,
|
|
|
hh: translator.translate,
|
|
|
d: 'dan',
|
|
|
dd: translator.translate,
|
|
|
M: 'mjesec',
|
|
|
MM: translator.translate,
|
|
|
y: 'godinu',
|
|
|
yy: translator.translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return me;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/mi.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/mi.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Maori [mi]
|
|
|
//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var mi = moment.defineLocale('mi', {
|
|
|
months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
|
|
|
monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
|
|
|
monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
|
|
|
monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
|
|
|
weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
|
|
|
weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
|
|
|
weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY [i] HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY [i] HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[i teie mahana, i] LT',
|
|
|
nextDay: '[apopo i] LT',
|
|
|
nextWeek: 'dddd [i] LT',
|
|
|
lastDay: '[inanahi i] LT',
|
|
|
lastWeek: 'dddd [whakamutunga i] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'i roto i %s',
|
|
|
past: '%s i mua',
|
|
|
s: 'te hēkona ruarua',
|
|
|
ss: '%d hēkona',
|
|
|
m: 'he meneti',
|
|
|
mm: '%d meneti',
|
|
|
h: 'te haora',
|
|
|
hh: '%d haora',
|
|
|
d: 'he ra',
|
|
|
dd: '%d ra',
|
|
|
M: 'he marama',
|
|
|
MM: '%d marama',
|
|
|
y: 'he tau',
|
|
|
yy: '%d tau',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
|
|
ordinal: '%dº',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return mi;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/mk.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/mk.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Macedonian [mk]
|
|
|
//! author : Borislav Mickov : https://github.com/B0k0
|
|
|
//! author : Sashko Todorov : https://github.com/bkyceh
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var mk = moment.defineLocale('mk', {
|
|
|
months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
|
|
|
weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
|
|
|
weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'D.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY H:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Денес во] LT',
|
|
|
nextDay: '[Утре во] LT',
|
|
|
nextWeek: '[Во] dddd [во] LT',
|
|
|
lastDay: '[Вчера во] LT',
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
case 3:
|
|
|
case 6:
|
|
|
return '[Изминатата] dddd [во] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[Изминатиот] dddd [во] LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'за %s',
|
|
|
past: 'пред %s',
|
|
|
s: 'неколку секунди',
|
|
|
ss: '%d секунди',
|
|
|
m: 'една минута',
|
|
|
mm: '%d минути',
|
|
|
h: 'еден час',
|
|
|
hh: '%d часа',
|
|
|
d: 'еден ден',
|
|
|
dd: '%d дена',
|
|
|
M: 'еден месец',
|
|
|
MM: '%d месеци',
|
|
|
y: 'една година',
|
|
|
yy: '%d години',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
|
|
|
ordinal: function (number) {
|
|
|
var lastDigit = number % 10,
|
|
|
last2Digits = number % 100;
|
|
|
if (number === 0) {
|
|
|
return number + '-ев';
|
|
|
} else if (last2Digits === 0) {
|
|
|
return number + '-ен';
|
|
|
} else if (last2Digits > 10 && last2Digits < 20) {
|
|
|
return number + '-ти';
|
|
|
} else if (lastDigit === 1) {
|
|
|
return number + '-ви';
|
|
|
} else if (lastDigit === 2) {
|
|
|
return number + '-ри';
|
|
|
} else if (lastDigit === 7 || lastDigit === 8) {
|
|
|
return number + '-ми';
|
|
|
} else {
|
|
|
return number + '-ти';
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return mk;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ml.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ml.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Malayalam [ml]
|
|
|
//! author : Floyd Pink : https://github.com/floydpink
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var ml = moment.defineLocale('ml', {
|
|
|
months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
|
|
|
weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm -നു',
|
|
|
LTS: 'A h:mm:ss -നു',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, A h:mm -നു',
|
|
|
LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[ഇന്ന്] LT',
|
|
|
nextDay: '[നാളെ] LT',
|
|
|
nextWeek: 'dddd, LT',
|
|
|
lastDay: '[ഇന്നലെ] LT',
|
|
|
lastWeek: '[കഴിഞ്ഞ] dddd, LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s കഴിഞ്ഞ്',
|
|
|
past: '%s മുൻപ്',
|
|
|
s: 'അൽപ നിമിഷങ്ങൾ',
|
|
|
ss: '%d സെക്കൻഡ്',
|
|
|
m: 'ഒരു മിനിറ്റ്',
|
|
|
mm: '%d മിനിറ്റ്',
|
|
|
h: 'ഒരു മണിക്കൂർ',
|
|
|
hh: '%d മണിക്കൂർ',
|
|
|
d: 'ഒരു ദിവസം',
|
|
|
dd: '%d ദിവസം',
|
|
|
M: 'ഒരു മാസം',
|
|
|
MM: '%d മാസം',
|
|
|
y: 'ഒരു വർഷം',
|
|
|
yy: '%d വർഷം',
|
|
|
},
|
|
|
meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (
|
|
|
(meridiem === 'രാത്രി' && hour >= 4) ||
|
|
|
meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
|
|
|
meridiem === 'വൈകുന്നേരം'
|
|
|
) {
|
|
|
return hour + 12;
|
|
|
} else {
|
|
|
return hour;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'രാത്രി';
|
|
|
} else if (hour < 12) {
|
|
|
return 'രാവിലെ';
|
|
|
} else if (hour < 17) {
|
|
|
return 'ഉച്ച കഴിഞ്ഞ്';
|
|
|
} else if (hour < 20) {
|
|
|
return 'വൈകുന്നേരം';
|
|
|
} else {
|
|
|
return 'രാത്രി';
|
|
|
}
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ml;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/mn.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/mn.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Mongolian [mn]
|
|
|
//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function translate(number, withoutSuffix, key, isFuture) {
|
|
|
switch (key) {
|
|
|
case 's':
|
|
|
return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';
|
|
|
case 'ss':
|
|
|
return number + (withoutSuffix ? ' секунд' : ' секундын');
|
|
|
case 'm':
|
|
|
case 'mm':
|
|
|
return number + (withoutSuffix ? ' минут' : ' минутын');
|
|
|
case 'h':
|
|
|
case 'hh':
|
|
|
return number + (withoutSuffix ? ' цаг' : ' цагийн');
|
|
|
case 'd':
|
|
|
case 'dd':
|
|
|
return number + (withoutSuffix ? ' өдөр' : ' өдрийн');
|
|
|
case 'M':
|
|
|
case 'MM':
|
|
|
return number + (withoutSuffix ? ' сар' : ' сарын');
|
|
|
case 'y':
|
|
|
case 'yy':
|
|
|
return number + (withoutSuffix ? ' жил' : ' жилийн');
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var mn = moment.defineLocale('mn', {
|
|
|
months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
|
|
|
weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
|
|
|
weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'YYYY-MM-DD',
|
|
|
LL: 'YYYY оны MMMMын D',
|
|
|
LLL: 'YYYY оны MMMMын D HH:mm',
|
|
|
LLLL: 'dddd, YYYY оны MMMMын D HH:mm',
|
|
|
},
|
|
|
meridiemParse: /ҮӨ|ҮХ/i,
|
|
|
isPM: function (input) {
|
|
|
return input === 'ҮХ';
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'ҮӨ';
|
|
|
} else {
|
|
|
return 'ҮХ';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Өнөөдөр] LT',
|
|
|
nextDay: '[Маргааш] LT',
|
|
|
nextWeek: '[Ирэх] dddd LT',
|
|
|
lastDay: '[Өчигдөр] LT',
|
|
|
lastWeek: '[Өнгөрсөн] dddd LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s дараа',
|
|
|
past: '%s өмнө',
|
|
|
s: translate,
|
|
|
ss: translate,
|
|
|
m: translate,
|
|
|
mm: translate,
|
|
|
h: translate,
|
|
|
hh: translate,
|
|
|
d: translate,
|
|
|
dd: translate,
|
|
|
M: translate,
|
|
|
MM: translate,
|
|
|
y: translate,
|
|
|
yy: translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'd':
|
|
|
case 'D':
|
|
|
case 'DDD':
|
|
|
return number + ' өдөр';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return mn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/mr.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/mr.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Marathi [mr]
|
|
|
//! author : Harshad Kale : https://github.com/kalehv
|
|
|
//! author : Vivek Athalye : https://github.com/vnathalye
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '१',
|
|
|
2: '२',
|
|
|
3: '३',
|
|
|
4: '४',
|
|
|
5: '५',
|
|
|
6: '६',
|
|
|
7: '७',
|
|
|
8: '८',
|
|
|
9: '९',
|
|
|
0: '०',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'१': '1',
|
|
|
'२': '2',
|
|
|
'३': '3',
|
|
|
'४': '4',
|
|
|
'५': '5',
|
|
|
'६': '6',
|
|
|
'७': '7',
|
|
|
'८': '8',
|
|
|
'९': '9',
|
|
|
'०': '0',
|
|
|
};
|
|
|
|
|
|
function relativeTimeMr(number, withoutSuffix, string, isFuture) {
|
|
|
var output = '';
|
|
|
if (withoutSuffix) {
|
|
|
switch (string) {
|
|
|
case 's':
|
|
|
output = 'काही सेकंद';
|
|
|
break;
|
|
|
case 'ss':
|
|
|
output = '%d सेकंद';
|
|
|
break;
|
|
|
case 'm':
|
|
|
output = 'एक मिनिट';
|
|
|
break;
|
|
|
case 'mm':
|
|
|
output = '%d मिनिटे';
|
|
|
break;
|
|
|
case 'h':
|
|
|
output = 'एक तास';
|
|
|
break;
|
|
|
case 'hh':
|
|
|
output = '%d तास';
|
|
|
break;
|
|
|
case 'd':
|
|
|
output = 'एक दिवस';
|
|
|
break;
|
|
|
case 'dd':
|
|
|
output = '%d दिवस';
|
|
|
break;
|
|
|
case 'M':
|
|
|
output = 'एक महिना';
|
|
|
break;
|
|
|
case 'MM':
|
|
|
output = '%d महिने';
|
|
|
break;
|
|
|
case 'y':
|
|
|
output = 'एक वर्ष';
|
|
|
break;
|
|
|
case 'yy':
|
|
|
output = '%d वर्षे';
|
|
|
break;
|
|
|
}
|
|
|
} else {
|
|
|
switch (string) {
|
|
|
case 's':
|
|
|
output = 'काही सेकंदां';
|
|
|
break;
|
|
|
case 'ss':
|
|
|
output = '%d सेकंदां';
|
|
|
break;
|
|
|
case 'm':
|
|
|
output = 'एका मिनिटा';
|
|
|
break;
|
|
|
case 'mm':
|
|
|
output = '%d मिनिटां';
|
|
|
break;
|
|
|
case 'h':
|
|
|
output = 'एका तासा';
|
|
|
break;
|
|
|
case 'hh':
|
|
|
output = '%d तासां';
|
|
|
break;
|
|
|
case 'd':
|
|
|
output = 'एका दिवसा';
|
|
|
break;
|
|
|
case 'dd':
|
|
|
output = '%d दिवसां';
|
|
|
break;
|
|
|
case 'M':
|
|
|
output = 'एका महिन्या';
|
|
|
break;
|
|
|
case 'MM':
|
|
|
output = '%d महिन्यां';
|
|
|
break;
|
|
|
case 'y':
|
|
|
output = 'एका वर्षा';
|
|
|
break;
|
|
|
case 'yy':
|
|
|
output = '%d वर्षां';
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
return output.replace(/%d/i, number);
|
|
|
}
|
|
|
|
|
|
var mr = moment.defineLocale('mr', {
|
|
|
months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
|
|
|
weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
|
|
|
weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm वाजता',
|
|
|
LTS: 'A h:mm:ss वाजता',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, A h:mm वाजता',
|
|
|
LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[आज] LT',
|
|
|
nextDay: '[उद्या] LT',
|
|
|
nextWeek: 'dddd, LT',
|
|
|
lastDay: '[काल] LT',
|
|
|
lastWeek: '[मागील] dddd, LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%sमध्ये',
|
|
|
past: '%sपूर्वी',
|
|
|
s: relativeTimeMr,
|
|
|
ss: relativeTimeMr,
|
|
|
m: relativeTimeMr,
|
|
|
mm: relativeTimeMr,
|
|
|
h: relativeTimeMr,
|
|
|
hh: relativeTimeMr,
|
|
|
d: relativeTimeMr,
|
|
|
dd: relativeTimeMr,
|
|
|
M: relativeTimeMr,
|
|
|
MM: relativeTimeMr,
|
|
|
y: relativeTimeMr,
|
|
|
yy: relativeTimeMr,
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[१२३४५६७८९०]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {
|
|
|
return hour;
|
|
|
} else if (
|
|
|
meridiem === 'दुपारी' ||
|
|
|
meridiem === 'सायंकाळी' ||
|
|
|
meridiem === 'रात्री'
|
|
|
) {
|
|
|
return hour >= 12 ? hour : hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour >= 0 && hour < 6) {
|
|
|
return 'पहाटे';
|
|
|
} else if (hour < 12) {
|
|
|
return 'सकाळी';
|
|
|
} else if (hour < 17) {
|
|
|
return 'दुपारी';
|
|
|
} else if (hour < 20) {
|
|
|
return 'सायंकाळी';
|
|
|
} else {
|
|
|
return 'रात्री';
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return mr;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ms-my.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ms-my.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Malay [ms-my]
|
|
|
//! note : DEPRECATED, the correct one is [ms]
|
|
|
//! author : Weldan Jamili : https://github.com/weldan
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var msMy = moment.defineLocale('ms-my', {
|
|
|
months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
|
|
|
weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
|
|
|
weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
|
|
|
weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH.mm',
|
|
|
LTS: 'HH.mm.ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY [pukul] HH.mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
|
|
|
},
|
|
|
meridiemParse: /pagi|tengahari|petang|malam/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'pagi') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'tengahari') {
|
|
|
return hour >= 11 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'petang' || meridiem === 'malam') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours < 11) {
|
|
|
return 'pagi';
|
|
|
} else if (hours < 15) {
|
|
|
return 'tengahari';
|
|
|
} else if (hours < 19) {
|
|
|
return 'petang';
|
|
|
} else {
|
|
|
return 'malam';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Hari ini pukul] LT',
|
|
|
nextDay: '[Esok pukul] LT',
|
|
|
nextWeek: 'dddd [pukul] LT',
|
|
|
lastDay: '[Kelmarin pukul] LT',
|
|
|
lastWeek: 'dddd [lepas pukul] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'dalam %s',
|
|
|
past: '%s yang lepas',
|
|
|
s: 'beberapa saat',
|
|
|
ss: '%d saat',
|
|
|
m: 'seminit',
|
|
|
mm: '%d minit',
|
|
|
h: 'sejam',
|
|
|
hh: '%d jam',
|
|
|
d: 'sehari',
|
|
|
dd: '%d hari',
|
|
|
M: 'sebulan',
|
|
|
MM: '%d bulan',
|
|
|
y: 'setahun',
|
|
|
yy: '%d tahun',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return msMy;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ms.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ms.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Malay [ms]
|
|
|
//! author : Weldan Jamili : https://github.com/weldan
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var ms = moment.defineLocale('ms', {
|
|
|
months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
|
|
|
weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
|
|
|
weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
|
|
|
weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH.mm',
|
|
|
LTS: 'HH.mm.ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY [pukul] HH.mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
|
|
|
},
|
|
|
meridiemParse: /pagi|tengahari|petang|malam/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'pagi') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'tengahari') {
|
|
|
return hour >= 11 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'petang' || meridiem === 'malam') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours < 11) {
|
|
|
return 'pagi';
|
|
|
} else if (hours < 15) {
|
|
|
return 'tengahari';
|
|
|
} else if (hours < 19) {
|
|
|
return 'petang';
|
|
|
} else {
|
|
|
return 'malam';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Hari ini pukul] LT',
|
|
|
nextDay: '[Esok pukul] LT',
|
|
|
nextWeek: 'dddd [pukul] LT',
|
|
|
lastDay: '[Kelmarin pukul] LT',
|
|
|
lastWeek: 'dddd [lepas pukul] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'dalam %s',
|
|
|
past: '%s yang lepas',
|
|
|
s: 'beberapa saat',
|
|
|
ss: '%d saat',
|
|
|
m: 'seminit',
|
|
|
mm: '%d minit',
|
|
|
h: 'sejam',
|
|
|
hh: '%d jam',
|
|
|
d: 'sehari',
|
|
|
dd: '%d hari',
|
|
|
M: 'sebulan',
|
|
|
MM: '%d bulan',
|
|
|
y: 'setahun',
|
|
|
yy: '%d tahun',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ms;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/mt.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/mt.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Maltese (Malta) [mt]
|
|
|
//! author : Alessandro Maruccia : https://github.com/alesma
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var mt = moment.defineLocale('mt', {
|
|
|
months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
|
|
|
weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
|
|
|
weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Illum fil-]LT',
|
|
|
nextDay: '[Għada fil-]LT',
|
|
|
nextWeek: 'dddd [fil-]LT',
|
|
|
lastDay: '[Il-bieraħ fil-]LT',
|
|
|
lastWeek: 'dddd [li għadda] [fil-]LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'f’ %s',
|
|
|
past: '%s ilu',
|
|
|
s: 'ftit sekondi',
|
|
|
ss: '%d sekondi',
|
|
|
m: 'minuta',
|
|
|
mm: '%d minuti',
|
|
|
h: 'siegħa',
|
|
|
hh: '%d siegħat',
|
|
|
d: 'ġurnata',
|
|
|
dd: '%d ġranet',
|
|
|
M: 'xahar',
|
|
|
MM: '%d xhur',
|
|
|
y: 'sena',
|
|
|
yy: '%d sni',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
|
|
ordinal: '%dº',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return mt;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/my.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/my.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Burmese [my]
|
|
|
//! author : Squar team, mysquar.com
|
|
|
//! author : David Rossellat : https://github.com/gholadr
|
|
|
//! author : Tin Aung Lin : https://github.com/thanyawzinmin
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '၁',
|
|
|
2: '၂',
|
|
|
3: '၃',
|
|
|
4: '၄',
|
|
|
5: '၅',
|
|
|
6: '၆',
|
|
|
7: '၇',
|
|
|
8: '၈',
|
|
|
9: '၉',
|
|
|
0: '၀',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'၁': '1',
|
|
|
'၂': '2',
|
|
|
'၃': '3',
|
|
|
'၄': '4',
|
|
|
'၅': '5',
|
|
|
'၆': '6',
|
|
|
'၇': '7',
|
|
|
'၈': '8',
|
|
|
'၉': '9',
|
|
|
'၀': '0',
|
|
|
};
|
|
|
|
|
|
var my = moment.defineLocale('my', {
|
|
|
months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
|
|
|
weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
|
|
|
weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
|
|
|
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[ယနေ.] LT [မှာ]',
|
|
|
nextDay: '[မနက်ဖြန်] LT [မှာ]',
|
|
|
nextWeek: 'dddd LT [မှာ]',
|
|
|
lastDay: '[မနေ.က] LT [မှာ]',
|
|
|
lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'လာမည့် %s မှာ',
|
|
|
past: 'လွန်ခဲ့သော %s က',
|
|
|
s: 'စက္ကန်.အနည်းငယ်',
|
|
|
ss: '%d စက္ကန့်',
|
|
|
m: 'တစ်မိနစ်',
|
|
|
mm: '%d မိနစ်',
|
|
|
h: 'တစ်နာရီ',
|
|
|
hh: '%d နာရီ',
|
|
|
d: 'တစ်ရက်',
|
|
|
dd: '%d ရက်',
|
|
|
M: 'တစ်လ',
|
|
|
MM: '%d လ',
|
|
|
y: 'တစ်နှစ်',
|
|
|
yy: '%d နှစ်',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return my;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/nb.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/nb.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Norwegian Bokmål [nb]
|
|
|
//! authors : Espen Hovlandsdal : https://github.com/rexxars
|
|
|
//! Sigurd Gartmann : https://github.com/sigurdga
|
|
|
//! Stephen Ramthun : https://github.com/stephenramthun
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var nb = moment.defineLocale('nb', {
|
|
|
months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
|
|
|
weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),
|
|
|
weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY [kl.] HH:mm',
|
|
|
LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[i dag kl.] LT',
|
|
|
nextDay: '[i morgen kl.] LT',
|
|
|
nextWeek: 'dddd [kl.] LT',
|
|
|
lastDay: '[i går kl.] LT',
|
|
|
lastWeek: '[forrige] dddd [kl.] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'om %s',
|
|
|
past: '%s siden',
|
|
|
s: 'noen sekunder',
|
|
|
ss: '%d sekunder',
|
|
|
m: 'ett minutt',
|
|
|
mm: '%d minutter',
|
|
|
h: 'en time',
|
|
|
hh: '%d timer',
|
|
|
d: 'en dag',
|
|
|
dd: '%d dager',
|
|
|
w: 'en uke',
|
|
|
ww: '%d uker',
|
|
|
M: 'en måned',
|
|
|
MM: '%d måneder',
|
|
|
y: 'ett år',
|
|
|
yy: '%d år',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return nb;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ne.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ne.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Nepalese [ne]
|
|
|
//! author : suvash : https://github.com/suvash
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '१',
|
|
|
2: '२',
|
|
|
3: '३',
|
|
|
4: '४',
|
|
|
5: '५',
|
|
|
6: '६',
|
|
|
7: '७',
|
|
|
8: '८',
|
|
|
9: '९',
|
|
|
0: '०',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'१': '1',
|
|
|
'२': '2',
|
|
|
'३': '3',
|
|
|
'४': '4',
|
|
|
'५': '5',
|
|
|
'६': '6',
|
|
|
'७': '7',
|
|
|
'८': '8',
|
|
|
'९': '9',
|
|
|
'०': '0',
|
|
|
};
|
|
|
|
|
|
var ne = moment.defineLocale('ne', {
|
|
|
months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
|
|
|
weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'Aको h:mm बजे',
|
|
|
LTS: 'Aको h:mm:ss बजे',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, Aको h:mm बजे',
|
|
|
LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[१२३४५६७८९०]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'राति') {
|
|
|
return hour < 4 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'बिहान') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'दिउँसो') {
|
|
|
return hour >= 10 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'साँझ') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 3) {
|
|
|
return 'राति';
|
|
|
} else if (hour < 12) {
|
|
|
return 'बिहान';
|
|
|
} else if (hour < 16) {
|
|
|
return 'दिउँसो';
|
|
|
} else if (hour < 20) {
|
|
|
return 'साँझ';
|
|
|
} else {
|
|
|
return 'राति';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[आज] LT',
|
|
|
nextDay: '[भोलि] LT',
|
|
|
nextWeek: '[आउँदो] dddd[,] LT',
|
|
|
lastDay: '[हिजो] LT',
|
|
|
lastWeek: '[गएको] dddd[,] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%sमा',
|
|
|
past: '%s अगाडि',
|
|
|
s: 'केही क्षण',
|
|
|
ss: '%d सेकेण्ड',
|
|
|
m: 'एक मिनेट',
|
|
|
mm: '%d मिनेट',
|
|
|
h: 'एक घण्टा',
|
|
|
hh: '%d घण्टा',
|
|
|
d: 'एक दिन',
|
|
|
dd: '%d दिन',
|
|
|
M: 'एक महिना',
|
|
|
MM: '%d महिना',
|
|
|
y: 'एक बर्ष',
|
|
|
yy: '%d बर्ष',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ne;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/nl-be.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/nl-be.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Dutch (Belgium) [nl-be]
|
|
|
//! author : Joris Röling : https://github.com/jorisroling
|
|
|
//! author : Jacob Middag : https://github.com/middagj
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParse = [
|
|
|
/^jan/i,
|
|
|
/^feb/i,
|
|
|
/^maart|mrt.?$/i,
|
|
|
/^apr/i,
|
|
|
/^mei$/i,
|
|
|
/^jun[i.]?$/i,
|
|
|
/^jul[i.]?$/i,
|
|
|
/^aug/i,
|
|
|
/^sep/i,
|
|
|
/^okt/i,
|
|
|
/^nov/i,
|
|
|
/^dec/i,
|
|
|
],
|
|
|
monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
|
|
|
|
|
|
var nlBe = moment.defineLocale('nl-be', {
|
|
|
months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: function (m, format) {
|
|
|
if (!m) {
|
|
|
return monthsShortWithDots;
|
|
|
} else if (/-MMM-/.test(format)) {
|
|
|
return monthsShortWithoutDots[m.month()];
|
|
|
} else {
|
|
|
return monthsShortWithDots[m.month()];
|
|
|
}
|
|
|
},
|
|
|
|
|
|
monthsRegex: monthsRegex,
|
|
|
monthsShortRegex: monthsRegex,
|
|
|
monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
|
|
|
monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
|
|
|
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: monthsParse,
|
|
|
|
|
|
weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
|
|
|
weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[vandaag om] LT',
|
|
|
nextDay: '[morgen om] LT',
|
|
|
nextWeek: 'dddd [om] LT',
|
|
|
lastDay: '[gisteren om] LT',
|
|
|
lastWeek: '[afgelopen] dddd [om] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'over %s',
|
|
|
past: '%s geleden',
|
|
|
s: 'een paar seconden',
|
|
|
ss: '%d seconden',
|
|
|
m: 'één minuut',
|
|
|
mm: '%d minuten',
|
|
|
h: 'één uur',
|
|
|
hh: '%d uur',
|
|
|
d: 'één dag',
|
|
|
dd: '%d dagen',
|
|
|
M: 'één maand',
|
|
|
MM: '%d maanden',
|
|
|
y: 'één jaar',
|
|
|
yy: '%d jaar',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
|
|
|
ordinal: function (number) {
|
|
|
return (
|
|
|
number +
|
|
|
(number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
|
|
|
);
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return nlBe;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/nl.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/nl.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Dutch [nl]
|
|
|
//! author : Joris Röling : https://github.com/jorisroling
|
|
|
//! author : Jacob Middag : https://github.com/middagj
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParse = [
|
|
|
/^jan/i,
|
|
|
/^feb/i,
|
|
|
/^maart|mrt.?$/i,
|
|
|
/^apr/i,
|
|
|
/^mei$/i,
|
|
|
/^jun[i.]?$/i,
|
|
|
/^jul[i.]?$/i,
|
|
|
/^aug/i,
|
|
|
/^sep/i,
|
|
|
/^okt/i,
|
|
|
/^nov/i,
|
|
|
/^dec/i,
|
|
|
],
|
|
|
monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
|
|
|
|
|
|
var nl = moment.defineLocale('nl', {
|
|
|
months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: function (m, format) {
|
|
|
if (!m) {
|
|
|
return monthsShortWithDots;
|
|
|
} else if (/-MMM-/.test(format)) {
|
|
|
return monthsShortWithoutDots[m.month()];
|
|
|
} else {
|
|
|
return monthsShortWithDots[m.month()];
|
|
|
}
|
|
|
},
|
|
|
|
|
|
monthsRegex: monthsRegex,
|
|
|
monthsShortRegex: monthsRegex,
|
|
|
monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
|
|
|
monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
|
|
|
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: monthsParse,
|
|
|
|
|
|
weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
|
|
|
weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD-MM-YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[vandaag om] LT',
|
|
|
nextDay: '[morgen om] LT',
|
|
|
nextWeek: 'dddd [om] LT',
|
|
|
lastDay: '[gisteren om] LT',
|
|
|
lastWeek: '[afgelopen] dddd [om] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'over %s',
|
|
|
past: '%s geleden',
|
|
|
s: 'een paar seconden',
|
|
|
ss: '%d seconden',
|
|
|
m: 'één minuut',
|
|
|
mm: '%d minuten',
|
|
|
h: 'één uur',
|
|
|
hh: '%d uur',
|
|
|
d: 'één dag',
|
|
|
dd: '%d dagen',
|
|
|
w: 'één week',
|
|
|
ww: '%d weken',
|
|
|
M: 'één maand',
|
|
|
MM: '%d maanden',
|
|
|
y: 'één jaar',
|
|
|
yy: '%d jaar',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
|
|
|
ordinal: function (number) {
|
|
|
return (
|
|
|
number +
|
|
|
(number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
|
|
|
);
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return nl;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/nn.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/nn.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Nynorsk [nn]
|
|
|
//! authors : https://github.com/mechuwind
|
|
|
//! Stephen Ramthun : https://github.com/stephenramthun
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var nn = moment.defineLocale('nn', {
|
|
|
months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
|
|
|
weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),
|
|
|
weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY [kl.] H:mm',
|
|
|
LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[I dag klokka] LT',
|
|
|
nextDay: '[I morgon klokka] LT',
|
|
|
nextWeek: 'dddd [klokka] LT',
|
|
|
lastDay: '[I går klokka] LT',
|
|
|
lastWeek: '[Føregåande] dddd [klokka] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'om %s',
|
|
|
past: '%s sidan',
|
|
|
s: 'nokre sekund',
|
|
|
ss: '%d sekund',
|
|
|
m: 'eit minutt',
|
|
|
mm: '%d minutt',
|
|
|
h: 'ein time',
|
|
|
hh: '%d timar',
|
|
|
d: 'ein dag',
|
|
|
dd: '%d dagar',
|
|
|
w: 'ei veke',
|
|
|
ww: '%d veker',
|
|
|
M: 'ein månad',
|
|
|
MM: '%d månader',
|
|
|
y: 'eit år',
|
|
|
yy: '%d år',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return nn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/oc-lnc.js":
|
|
|
/*!**********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/oc-lnc.js ***!
|
|
|
\**********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Occitan, lengadocian dialecte [oc-lnc]
|
|
|
//! author : Quentin PAGÈS : https://github.com/Quenty31
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var ocLnc = moment.defineLocale('oc-lnc', {
|
|
|
months: {
|
|
|
standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split(
|
|
|
'_'
|
|
|
),
|
|
|
isFormat: /D[oD]?(\s)+MMMM/,
|
|
|
},
|
|
|
monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),
|
|
|
weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM [de] YYYY',
|
|
|
ll: 'D MMM YYYY',
|
|
|
LLL: 'D MMMM [de] YYYY [a] H:mm',
|
|
|
lll: 'D MMM YYYY, H:mm',
|
|
|
LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',
|
|
|
llll: 'ddd D MMM YYYY, H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[uèi a] LT',
|
|
|
nextDay: '[deman a] LT',
|
|
|
nextWeek: 'dddd [a] LT',
|
|
|
lastDay: '[ièr a] LT',
|
|
|
lastWeek: 'dddd [passat a] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: "d'aquí %s",
|
|
|
past: 'fa %s',
|
|
|
s: 'unas segondas',
|
|
|
ss: '%d segondas',
|
|
|
m: 'una minuta',
|
|
|
mm: '%d minutas',
|
|
|
h: 'una ora',
|
|
|
hh: '%d oras',
|
|
|
d: 'un jorn',
|
|
|
dd: '%d jorns',
|
|
|
M: 'un mes',
|
|
|
MM: '%d meses',
|
|
|
y: 'un an',
|
|
|
yy: '%d ans',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
|
|
|
ordinal: function (number, period) {
|
|
|
var output =
|
|
|
number === 1
|
|
|
? 'r'
|
|
|
: number === 2
|
|
|
? 'n'
|
|
|
: number === 3
|
|
|
? 'r'
|
|
|
: number === 4
|
|
|
? 't'
|
|
|
: 'è';
|
|
|
if (period === 'w' || period === 'W') {
|
|
|
output = 'a';
|
|
|
}
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4,
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ocLnc;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/pa-in.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/pa-in.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Punjabi (India) [pa-in]
|
|
|
//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '੧',
|
|
|
2: '੨',
|
|
|
3: '੩',
|
|
|
4: '੪',
|
|
|
5: '੫',
|
|
|
6: '੬',
|
|
|
7: '੭',
|
|
|
8: '੮',
|
|
|
9: '੯',
|
|
|
0: '੦',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'੧': '1',
|
|
|
'੨': '2',
|
|
|
'੩': '3',
|
|
|
'੪': '4',
|
|
|
'੫': '5',
|
|
|
'੬': '6',
|
|
|
'੭': '7',
|
|
|
'੮': '8',
|
|
|
'੯': '9',
|
|
|
'੦': '0',
|
|
|
};
|
|
|
|
|
|
var paIn = moment.defineLocale('pa-in', {
|
|
|
// There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.
|
|
|
months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
|
|
|
weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm ਵਜੇ',
|
|
|
LTS: 'A h:mm:ss ਵਜੇ',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',
|
|
|
LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[ਅਜ] LT',
|
|
|
nextDay: '[ਕਲ] LT',
|
|
|
nextWeek: '[ਅਗਲਾ] dddd, LT',
|
|
|
lastDay: '[ਕਲ] LT',
|
|
|
lastWeek: '[ਪਿਛਲੇ] dddd, LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s ਵਿੱਚ',
|
|
|
past: '%s ਪਿਛਲੇ',
|
|
|
s: 'ਕੁਝ ਸਕਿੰਟ',
|
|
|
ss: '%d ਸਕਿੰਟ',
|
|
|
m: 'ਇਕ ਮਿੰਟ',
|
|
|
mm: '%d ਮਿੰਟ',
|
|
|
h: 'ਇੱਕ ਘੰਟਾ',
|
|
|
hh: '%d ਘੰਟੇ',
|
|
|
d: 'ਇੱਕ ਦਿਨ',
|
|
|
dd: '%d ਦਿਨ',
|
|
|
M: 'ਇੱਕ ਮਹੀਨਾ',
|
|
|
MM: '%d ਮਹੀਨੇ',
|
|
|
y: 'ਇੱਕ ਸਾਲ',
|
|
|
yy: '%d ਸਾਲ',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
// Punjabi notation for meridiems are quite fuzzy in practice. While there exists
|
|
|
// a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
|
|
|
meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'ਰਾਤ') {
|
|
|
return hour < 4 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'ਸਵੇਰ') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'ਦੁਪਹਿਰ') {
|
|
|
return hour >= 10 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'ਸ਼ਾਮ') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'ਰਾਤ';
|
|
|
} else if (hour < 10) {
|
|
|
return 'ਸਵੇਰ';
|
|
|
} else if (hour < 17) {
|
|
|
return 'ਦੁਪਹਿਰ';
|
|
|
} else if (hour < 20) {
|
|
|
return 'ਸ਼ਾਮ';
|
|
|
} else {
|
|
|
return 'ਰਾਤ';
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return paIn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/pl.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/pl.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Polish [pl]
|
|
|
//! author : Rafal Hirsz : https://github.com/evoL
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParse = [
|
|
|
/^sty/i,
|
|
|
/^lut/i,
|
|
|
/^mar/i,
|
|
|
/^kwi/i,
|
|
|
/^maj/i,
|
|
|
/^cze/i,
|
|
|
/^lip/i,
|
|
|
/^sie/i,
|
|
|
/^wrz/i,
|
|
|
/^paź/i,
|
|
|
/^lis/i,
|
|
|
/^gru/i,
|
|
|
];
|
|
|
function plural(n) {
|
|
|
return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;
|
|
|
}
|
|
|
function translate(number, withoutSuffix, key) {
|
|
|
var result = number + ' ';
|
|
|
switch (key) {
|
|
|
case 'ss':
|
|
|
return result + (plural(number) ? 'sekundy' : 'sekund');
|
|
|
case 'm':
|
|
|
return withoutSuffix ? 'minuta' : 'minutę';
|
|
|
case 'mm':
|
|
|
return result + (plural(number) ? 'minuty' : 'minut');
|
|
|
case 'h':
|
|
|
return withoutSuffix ? 'godzina' : 'godzinę';
|
|
|
case 'hh':
|
|
|
return result + (plural(number) ? 'godziny' : 'godzin');
|
|
|
case 'ww':
|
|
|
return result + (plural(number) ? 'tygodnie' : 'tygodni');
|
|
|
case 'MM':
|
|
|
return result + (plural(number) ? 'miesiące' : 'miesięcy');
|
|
|
case 'yy':
|
|
|
return result + (plural(number) ? 'lata' : 'lat');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var pl = moment.defineLocale('pl', {
|
|
|
months: function (momentToFormat, format) {
|
|
|
if (!momentToFormat) {
|
|
|
return monthsNominative;
|
|
|
} else if (/D MMMM/.test(format)) {
|
|
|
return monthsSubjective[momentToFormat.month()];
|
|
|
} else {
|
|
|
return monthsNominative[momentToFormat.month()];
|
|
|
}
|
|
|
},
|
|
|
monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: monthsParse,
|
|
|
weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
|
|
|
weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Dziś o] LT',
|
|
|
nextDay: '[Jutro o] LT',
|
|
|
nextWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[W niedzielę o] LT';
|
|
|
|
|
|
case 2:
|
|
|
return '[We wtorek o] LT';
|
|
|
|
|
|
case 3:
|
|
|
return '[W środę o] LT';
|
|
|
|
|
|
case 6:
|
|
|
return '[W sobotę o] LT';
|
|
|
|
|
|
default:
|
|
|
return '[W] dddd [o] LT';
|
|
|
}
|
|
|
},
|
|
|
lastDay: '[Wczoraj o] LT',
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[W zeszłą niedzielę o] LT';
|
|
|
case 3:
|
|
|
return '[W zeszłą środę o] LT';
|
|
|
case 6:
|
|
|
return '[W zeszłą sobotę o] LT';
|
|
|
default:
|
|
|
return '[W zeszły] dddd [o] LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'za %s',
|
|
|
past: '%s temu',
|
|
|
s: 'kilka sekund',
|
|
|
ss: translate,
|
|
|
m: translate,
|
|
|
mm: translate,
|
|
|
h: translate,
|
|
|
hh: translate,
|
|
|
d: '1 dzień',
|
|
|
dd: '%d dni',
|
|
|
w: 'tydzień',
|
|
|
ww: translate,
|
|
|
M: 'miesiąc',
|
|
|
MM: translate,
|
|
|
y: 'rok',
|
|
|
yy: translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return pl;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/pt-br.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/pt-br.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Portuguese (Brazil) [pt-br]
|
|
|
//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var ptBr = moment.defineLocale('pt-br', {
|
|
|
months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
|
|
|
weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
|
|
|
weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D [de] MMMM [de] YYYY',
|
|
|
LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',
|
|
|
LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Hoje às] LT',
|
|
|
nextDay: '[Amanhã às] LT',
|
|
|
nextWeek: 'dddd [às] LT',
|
|
|
lastDay: '[Ontem às] LT',
|
|
|
lastWeek: function () {
|
|
|
return this.day() === 0 || this.day() === 6
|
|
|
? '[Último] dddd [às] LT' // Saturday + Sunday
|
|
|
: '[Última] dddd [às] LT'; // Monday - Friday
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'em %s',
|
|
|
past: 'há %s',
|
|
|
s: 'poucos segundos',
|
|
|
ss: '%d segundos',
|
|
|
m: 'um minuto',
|
|
|
mm: '%d minutos',
|
|
|
h: 'uma hora',
|
|
|
hh: '%d horas',
|
|
|
d: 'um dia',
|
|
|
dd: '%d dias',
|
|
|
M: 'um mês',
|
|
|
MM: '%d meses',
|
|
|
y: 'um ano',
|
|
|
yy: '%d anos',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
|
|
ordinal: '%dº',
|
|
|
invalidDate: 'Data inválida',
|
|
|
});
|
|
|
|
|
|
return ptBr;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/pt.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/pt.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Portuguese [pt]
|
|
|
//! author : Jefferson : https://github.com/jalex79
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var pt = moment.defineLocale('pt', {
|
|
|
months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
|
|
|
weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
|
|
|
weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D [de] MMMM [de] YYYY',
|
|
|
LLL: 'D [de] MMMM [de] YYYY HH:mm',
|
|
|
LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Hoje às] LT',
|
|
|
nextDay: '[Amanhã às] LT',
|
|
|
nextWeek: 'dddd [às] LT',
|
|
|
lastDay: '[Ontem às] LT',
|
|
|
lastWeek: function () {
|
|
|
return this.day() === 0 || this.day() === 6
|
|
|
? '[Último] dddd [às] LT' // Saturday + Sunday
|
|
|
: '[Última] dddd [às] LT'; // Monday - Friday
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'em %s',
|
|
|
past: 'há %s',
|
|
|
s: 'segundos',
|
|
|
ss: '%d segundos',
|
|
|
m: 'um minuto',
|
|
|
mm: '%d minutos',
|
|
|
h: 'uma hora',
|
|
|
hh: '%d horas',
|
|
|
d: 'um dia',
|
|
|
dd: '%d dias',
|
|
|
w: 'uma semana',
|
|
|
ww: '%d semanas',
|
|
|
M: 'um mês',
|
|
|
MM: '%d meses',
|
|
|
y: 'um ano',
|
|
|
yy: '%d anos',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}º/,
|
|
|
ordinal: '%dº',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return pt;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ro.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ro.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Romanian [ro]
|
|
|
//! author : Vlad Gurdiga : https://github.com/gurdiga
|
|
|
//! author : Valentin Agachi : https://github.com/avaly
|
|
|
//! author : Emanuel Cepoi : https://github.com/cepem
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function relativeTimeWithPlural(number, withoutSuffix, key) {
|
|
|
var format = {
|
|
|
ss: 'secunde',
|
|
|
mm: 'minute',
|
|
|
hh: 'ore',
|
|
|
dd: 'zile',
|
|
|
ww: 'săptămâni',
|
|
|
MM: 'luni',
|
|
|
yy: 'ani',
|
|
|
},
|
|
|
separator = ' ';
|
|
|
if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
|
|
|
separator = ' de ';
|
|
|
}
|
|
|
return number + separator + format[key];
|
|
|
}
|
|
|
|
|
|
var ro = moment.defineLocale('ro', {
|
|
|
months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
|
|
|
weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
|
|
|
weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY H:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[azi la] LT',
|
|
|
nextDay: '[mâine la] LT',
|
|
|
nextWeek: 'dddd [la] LT',
|
|
|
lastDay: '[ieri la] LT',
|
|
|
lastWeek: '[fosta] dddd [la] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'peste %s',
|
|
|
past: '%s în urmă',
|
|
|
s: 'câteva secunde',
|
|
|
ss: relativeTimeWithPlural,
|
|
|
m: 'un minut',
|
|
|
mm: relativeTimeWithPlural,
|
|
|
h: 'o oră',
|
|
|
hh: relativeTimeWithPlural,
|
|
|
d: 'o zi',
|
|
|
dd: relativeTimeWithPlural,
|
|
|
w: 'o săptămână',
|
|
|
ww: relativeTimeWithPlural,
|
|
|
M: 'o lună',
|
|
|
MM: relativeTimeWithPlural,
|
|
|
y: 'un an',
|
|
|
yy: relativeTimeWithPlural,
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ro;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ru.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ru.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Russian [ru]
|
|
|
//! author : Viktorminator : https://github.com/Viktorminator
|
|
|
//! author : Menelion Elensúle : https://github.com/Oire
|
|
|
//! author : Коренберг Марк : https://github.com/socketpair
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function plural(word, num) {
|
|
|
var forms = word.split('_');
|
|
|
return num % 10 === 1 && num % 100 !== 11
|
|
|
? forms[0]
|
|
|
: num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
|
|
|
? forms[1]
|
|
|
: forms[2];
|
|
|
}
|
|
|
function relativeTimeWithPlural(number, withoutSuffix, key) {
|
|
|
var format = {
|
|
|
ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
|
|
|
mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
|
|
|
hh: 'час_часа_часов',
|
|
|
dd: 'день_дня_дней',
|
|
|
ww: 'неделя_недели_недель',
|
|
|
MM: 'месяц_месяца_месяцев',
|
|
|
yy: 'год_года_лет',
|
|
|
};
|
|
|
if (key === 'm') {
|
|
|
return withoutSuffix ? 'минута' : 'минуту';
|
|
|
} else {
|
|
|
return number + ' ' + plural(format[key], +number);
|
|
|
}
|
|
|
}
|
|
|
var monthsParse = [
|
|
|
/^янв/i,
|
|
|
/^фев/i,
|
|
|
/^мар/i,
|
|
|
/^апр/i,
|
|
|
/^ма[йя]/i,
|
|
|
/^июн/i,
|
|
|
/^июл/i,
|
|
|
/^авг/i,
|
|
|
/^сен/i,
|
|
|
/^окт/i,
|
|
|
/^ноя/i,
|
|
|
/^дек/i,
|
|
|
];
|
|
|
|
|
|
// http://new.gramota.ru/spravka/rules/139-prop : § 103
|
|
|
// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
|
|
|
// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
|
|
|
var ru = moment.defineLocale('ru', {
|
|
|
months: {
|
|
|
format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(
|
|
|
'_'
|
|
|
),
|
|
|
standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
|
|
|
'_'
|
|
|
),
|
|
|
},
|
|
|
monthsShort: {
|
|
|
// по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку?
|
|
|
format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
},
|
|
|
weekdays: {
|
|
|
standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(
|
|
|
'_'
|
|
|
),
|
|
|
format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(
|
|
|
'_'
|
|
|
),
|
|
|
isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,
|
|
|
},
|
|
|
weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
|
|
|
weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
|
|
|
monthsParse: monthsParse,
|
|
|
longMonthsParse: monthsParse,
|
|
|
shortMonthsParse: monthsParse,
|
|
|
|
|
|
// полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
|
|
|
monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
|
|
|
|
|
|
// копия предыдущего
|
|
|
monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
|
|
|
|
|
|
// полные названия с падежами
|
|
|
monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
|
|
|
|
|
|
// Выражение, которое соответствует только сокращённым формам
|
|
|
monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY г.',
|
|
|
LLL: 'D MMMM YYYY г., H:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY г., H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Сегодня, в] LT',
|
|
|
nextDay: '[Завтра, в] LT',
|
|
|
lastDay: '[Вчера, в] LT',
|
|
|
nextWeek: function (now) {
|
|
|
if (now.week() !== this.week()) {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[В следующее] dddd, [в] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
return '[В следующий] dddd, [в] LT';
|
|
|
case 3:
|
|
|
case 5:
|
|
|
case 6:
|
|
|
return '[В следующую] dddd, [в] LT';
|
|
|
}
|
|
|
} else {
|
|
|
if (this.day() === 2) {
|
|
|
return '[Во] dddd, [в] LT';
|
|
|
} else {
|
|
|
return '[В] dddd, [в] LT';
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
lastWeek: function (now) {
|
|
|
if (now.week() !== this.week()) {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[В прошлое] dddd, [в] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
return '[В прошлый] dddd, [в] LT';
|
|
|
case 3:
|
|
|
case 5:
|
|
|
case 6:
|
|
|
return '[В прошлую] dddd, [в] LT';
|
|
|
}
|
|
|
} else {
|
|
|
if (this.day() === 2) {
|
|
|
return '[Во] dddd, [в] LT';
|
|
|
} else {
|
|
|
return '[В] dddd, [в] LT';
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'через %s',
|
|
|
past: '%s назад',
|
|
|
s: 'несколько секунд',
|
|
|
ss: relativeTimeWithPlural,
|
|
|
m: relativeTimeWithPlural,
|
|
|
mm: relativeTimeWithPlural,
|
|
|
h: 'час',
|
|
|
hh: relativeTimeWithPlural,
|
|
|
d: 'день',
|
|
|
dd: relativeTimeWithPlural,
|
|
|
w: 'неделя',
|
|
|
ww: relativeTimeWithPlural,
|
|
|
M: 'месяц',
|
|
|
MM: relativeTimeWithPlural,
|
|
|
y: 'год',
|
|
|
yy: relativeTimeWithPlural,
|
|
|
},
|
|
|
meridiemParse: /ночи|утра|дня|вечера/i,
|
|
|
isPM: function (input) {
|
|
|
return /^(дня|вечера)$/.test(input);
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'ночи';
|
|
|
} else if (hour < 12) {
|
|
|
return 'утра';
|
|
|
} else if (hour < 17) {
|
|
|
return 'дня';
|
|
|
} else {
|
|
|
return 'вечера';
|
|
|
}
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'M':
|
|
|
case 'd':
|
|
|
case 'DDD':
|
|
|
return number + '-й';
|
|
|
case 'D':
|
|
|
return number + '-го';
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number + '-я';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ru;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/sd.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/sd.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Sindhi [sd]
|
|
|
//! author : Narain Sagar : https://github.com/narainsagar
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var months = [
|
|
|
'جنوري',
|
|
|
'فيبروري',
|
|
|
'مارچ',
|
|
|
'اپريل',
|
|
|
'مئي',
|
|
|
'جون',
|
|
|
'جولاءِ',
|
|
|
'آگسٽ',
|
|
|
'سيپٽمبر',
|
|
|
'آڪٽوبر',
|
|
|
'نومبر',
|
|
|
'ڊسمبر',
|
|
|
],
|
|
|
days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];
|
|
|
|
|
|
var sd = moment.defineLocale('sd', {
|
|
|
months: months,
|
|
|
monthsShort: months,
|
|
|
weekdays: days,
|
|
|
weekdaysShort: days,
|
|
|
weekdaysMin: days,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd، D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /صبح|شام/,
|
|
|
isPM: function (input) {
|
|
|
return 'شام' === input;
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'صبح';
|
|
|
}
|
|
|
return 'شام';
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[اڄ] LT',
|
|
|
nextDay: '[سڀاڻي] LT',
|
|
|
nextWeek: 'dddd [اڳين هفتي تي] LT',
|
|
|
lastDay: '[ڪالهه] LT',
|
|
|
lastWeek: '[گزريل هفتي] dddd [تي] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s پوء',
|
|
|
past: '%s اڳ',
|
|
|
s: 'چند سيڪنڊ',
|
|
|
ss: '%d سيڪنڊ',
|
|
|
m: 'هڪ منٽ',
|
|
|
mm: '%d منٽ',
|
|
|
h: 'هڪ ڪلاڪ',
|
|
|
hh: '%d ڪلاڪ',
|
|
|
d: 'هڪ ڏينهن',
|
|
|
dd: '%d ڏينهن',
|
|
|
M: 'هڪ مهينو',
|
|
|
MM: '%d مهينا',
|
|
|
y: 'هڪ سال',
|
|
|
yy: '%d سال',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/،/g, ',');
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/,/g, '،');
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return sd;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/se.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/se.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Northern Sami [se]
|
|
|
//! authors : Bård Rolstad Henriksen : https://github.com/karamell
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var se = moment.defineLocale('se', {
|
|
|
months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
|
|
|
weekdaysMin: 's_v_m_g_d_b_L'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'MMMM D. [b.] YYYY',
|
|
|
LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',
|
|
|
LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[otne ti] LT',
|
|
|
nextDay: '[ihttin ti] LT',
|
|
|
nextWeek: 'dddd [ti] LT',
|
|
|
lastDay: '[ikte ti] LT',
|
|
|
lastWeek: '[ovddit] dddd [ti] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s geažes',
|
|
|
past: 'maŋit %s',
|
|
|
s: 'moadde sekunddat',
|
|
|
ss: '%d sekunddat',
|
|
|
m: 'okta minuhta',
|
|
|
mm: '%d minuhtat',
|
|
|
h: 'okta diimmu',
|
|
|
hh: '%d diimmut',
|
|
|
d: 'okta beaivi',
|
|
|
dd: '%d beaivvit',
|
|
|
M: 'okta mánnu',
|
|
|
MM: '%d mánut',
|
|
|
y: 'okta jahki',
|
|
|
yy: '%d jagit',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return se;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/si.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/si.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Sinhalese [si]
|
|
|
//! author : Sampath Sitinamaluwa : https://github.com/sampathsris
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
/*jshint -W100*/
|
|
|
var si = moment.defineLocale('si', {
|
|
|
months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන'.split('_'),
|
|
|
weekdaysMin: 'ඉ_ස_අ_බ_බ්ර_සි_සෙ'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'a h:mm',
|
|
|
LTS: 'a h:mm:ss',
|
|
|
L: 'YYYY/MM/DD',
|
|
|
LL: 'YYYY MMMM D',
|
|
|
LLL: 'YYYY MMMM D, a h:mm',
|
|
|
LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[අද] LT[ට]',
|
|
|
nextDay: '[හෙට] LT[ට]',
|
|
|
nextWeek: 'dddd LT[ට]',
|
|
|
lastDay: '[ඊයේ] LT[ට]',
|
|
|
lastWeek: '[පසුගිය] dddd LT[ට]',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%sකින්',
|
|
|
past: '%sකට පෙර',
|
|
|
s: 'තත්පර කිහිපය',
|
|
|
ss: 'තත්පර %d',
|
|
|
m: 'මිනිත්තුව',
|
|
|
mm: 'මිනිත්තු %d',
|
|
|
h: 'පැය',
|
|
|
hh: 'පැය %d',
|
|
|
d: 'දිනය',
|
|
|
dd: 'දින %d',
|
|
|
M: 'මාසය',
|
|
|
MM: 'මාස %d',
|
|
|
y: 'වසර',
|
|
|
yy: 'වසර %d',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
|
|
|
ordinal: function (number) {
|
|
|
return number + ' වැනි';
|
|
|
},
|
|
|
meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
|
|
|
isPM: function (input) {
|
|
|
return input === 'ප.ව.' || input === 'පස් වරු';
|
|
|
},
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours > 11) {
|
|
|
return isLower ? 'ප.ව.' : 'පස් වරු';
|
|
|
} else {
|
|
|
return isLower ? 'පෙ.ව.' : 'පෙර වරු';
|
|
|
}
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return si;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/sk.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/sk.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Slovak [sk]
|
|
|
//! author : Martin Minka : https://github.com/k2s
|
|
|
//! based on work of petrbela : https://github.com/petrbela
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
|
|
|
function plural(n) {
|
|
|
return n > 1 && n < 5;
|
|
|
}
|
|
|
function translate(number, withoutSuffix, key, isFuture) {
|
|
|
var result = number + ' ';
|
|
|
switch (key) {
|
|
|
case 's': // a few seconds / in a few seconds / a few seconds ago
|
|
|
return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';
|
|
|
case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'sekundy' : 'sekúnd');
|
|
|
} else {
|
|
|
return result + 'sekundami';
|
|
|
}
|
|
|
case 'm': // a minute / in a minute / a minute ago
|
|
|
return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';
|
|
|
case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'minúty' : 'minút');
|
|
|
} else {
|
|
|
return result + 'minútami';
|
|
|
}
|
|
|
case 'h': // an hour / in an hour / an hour ago
|
|
|
return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
|
|
|
case 'hh': // 9 hours / in 9 hours / 9 hours ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'hodiny' : 'hodín');
|
|
|
} else {
|
|
|
return result + 'hodinami';
|
|
|
}
|
|
|
case 'd': // a day / in a day / a day ago
|
|
|
return withoutSuffix || isFuture ? 'deň' : 'dňom';
|
|
|
case 'dd': // 9 days / in 9 days / 9 days ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'dni' : 'dní');
|
|
|
} else {
|
|
|
return result + 'dňami';
|
|
|
}
|
|
|
case 'M': // a month / in a month / a month ago
|
|
|
return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';
|
|
|
case 'MM': // 9 months / in 9 months / 9 months ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'mesiace' : 'mesiacov');
|
|
|
} else {
|
|
|
return result + 'mesiacmi';
|
|
|
}
|
|
|
case 'y': // a year / in a year / a year ago
|
|
|
return withoutSuffix || isFuture ? 'rok' : 'rokom';
|
|
|
case 'yy': // 9 years / in 9 years / 9 years ago
|
|
|
if (withoutSuffix || isFuture) {
|
|
|
return result + (plural(number) ? 'roky' : 'rokov');
|
|
|
} else {
|
|
|
return result + 'rokmi';
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var sk = moment.defineLocale('sk', {
|
|
|
months: months,
|
|
|
monthsShort: monthsShort,
|
|
|
weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
|
|
|
weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),
|
|
|
weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY H:mm',
|
|
|
LLLL: 'dddd D. MMMM YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[dnes o] LT',
|
|
|
nextDay: '[zajtra o] LT',
|
|
|
nextWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[v nedeľu o] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
return '[v] dddd [o] LT';
|
|
|
case 3:
|
|
|
return '[v stredu o] LT';
|
|
|
case 4:
|
|
|
return '[vo štvrtok o] LT';
|
|
|
case 5:
|
|
|
return '[v piatok o] LT';
|
|
|
case 6:
|
|
|
return '[v sobotu o] LT';
|
|
|
}
|
|
|
},
|
|
|
lastDay: '[včera o] LT',
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[minulú nedeľu o] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
return '[minulý] dddd [o] LT';
|
|
|
case 3:
|
|
|
return '[minulú stredu o] LT';
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[minulý] dddd [o] LT';
|
|
|
case 6:
|
|
|
return '[minulú sobotu o] LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'za %s',
|
|
|
past: 'pred %s',
|
|
|
s: translate,
|
|
|
ss: translate,
|
|
|
m: translate,
|
|
|
mm: translate,
|
|
|
h: translate,
|
|
|
hh: translate,
|
|
|
d: translate,
|
|
|
dd: translate,
|
|
|
M: translate,
|
|
|
MM: translate,
|
|
|
y: translate,
|
|
|
yy: translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return sk;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/sl.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/sl.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Slovenian [sl]
|
|
|
//! author : Robert Sedovšek : https://github.com/sedovsek
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
|
|
var result = number + ' ';
|
|
|
switch (key) {
|
|
|
case 's':
|
|
|
return withoutSuffix || isFuture
|
|
|
? 'nekaj sekund'
|
|
|
: 'nekaj sekundami';
|
|
|
case 'ss':
|
|
|
if (number === 1) {
|
|
|
result += withoutSuffix ? 'sekundo' : 'sekundi';
|
|
|
} else if (number === 2) {
|
|
|
result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
|
|
|
} else if (number < 5) {
|
|
|
result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
|
|
|
} else {
|
|
|
result += 'sekund';
|
|
|
}
|
|
|
return result;
|
|
|
case 'm':
|
|
|
return withoutSuffix ? 'ena minuta' : 'eno minuto';
|
|
|
case 'mm':
|
|
|
if (number === 1) {
|
|
|
result += withoutSuffix ? 'minuta' : 'minuto';
|
|
|
} else if (number === 2) {
|
|
|
result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
|
|
|
} else if (number < 5) {
|
|
|
result += withoutSuffix || isFuture ? 'minute' : 'minutami';
|
|
|
} else {
|
|
|
result += withoutSuffix || isFuture ? 'minut' : 'minutami';
|
|
|
}
|
|
|
return result;
|
|
|
case 'h':
|
|
|
return withoutSuffix ? 'ena ura' : 'eno uro';
|
|
|
case 'hh':
|
|
|
if (number === 1) {
|
|
|
result += withoutSuffix ? 'ura' : 'uro';
|
|
|
} else if (number === 2) {
|
|
|
result += withoutSuffix || isFuture ? 'uri' : 'urama';
|
|
|
} else if (number < 5) {
|
|
|
result += withoutSuffix || isFuture ? 'ure' : 'urami';
|
|
|
} else {
|
|
|
result += withoutSuffix || isFuture ? 'ur' : 'urami';
|
|
|
}
|
|
|
return result;
|
|
|
case 'd':
|
|
|
return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
|
|
|
case 'dd':
|
|
|
if (number === 1) {
|
|
|
result += withoutSuffix || isFuture ? 'dan' : 'dnem';
|
|
|
} else if (number === 2) {
|
|
|
result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
|
|
|
} else {
|
|
|
result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
|
|
|
}
|
|
|
return result;
|
|
|
case 'M':
|
|
|
return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
|
|
|
case 'MM':
|
|
|
if (number === 1) {
|
|
|
result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
|
|
|
} else if (number === 2) {
|
|
|
result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
|
|
|
} else if (number < 5) {
|
|
|
result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
|
|
|
} else {
|
|
|
result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
|
|
|
}
|
|
|
return result;
|
|
|
case 'y':
|
|
|
return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
|
|
|
case 'yy':
|
|
|
if (number === 1) {
|
|
|
result += withoutSuffix || isFuture ? 'leto' : 'letom';
|
|
|
} else if (number === 2) {
|
|
|
result += withoutSuffix || isFuture ? 'leti' : 'letoma';
|
|
|
} else if (number < 5) {
|
|
|
result += withoutSuffix || isFuture ? 'leta' : 'leti';
|
|
|
} else {
|
|
|
result += withoutSuffix || isFuture ? 'let' : 'leti';
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var sl = moment.defineLocale('sl', {
|
|
|
months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
|
|
|
weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
|
|
|
weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD. MM. YYYY',
|
|
|
LL: 'D. MMMM YYYY',
|
|
|
LLL: 'D. MMMM YYYY H:mm',
|
|
|
LLLL: 'dddd, D. MMMM YYYY H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[danes ob] LT',
|
|
|
nextDay: '[jutri ob] LT',
|
|
|
|
|
|
nextWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[v] [nedeljo] [ob] LT';
|
|
|
case 3:
|
|
|
return '[v] [sredo] [ob] LT';
|
|
|
case 6:
|
|
|
return '[v] [soboto] [ob] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[v] dddd [ob] LT';
|
|
|
}
|
|
|
},
|
|
|
lastDay: '[včeraj ob] LT',
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[prejšnjo] [nedeljo] [ob] LT';
|
|
|
case 3:
|
|
|
return '[prejšnjo] [sredo] [ob] LT';
|
|
|
case 6:
|
|
|
return '[prejšnjo] [soboto] [ob] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[prejšnji] dddd [ob] LT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'čez %s',
|
|
|
past: 'pred %s',
|
|
|
s: processRelativeTime,
|
|
|
ss: processRelativeTime,
|
|
|
m: processRelativeTime,
|
|
|
mm: processRelativeTime,
|
|
|
h: processRelativeTime,
|
|
|
hh: processRelativeTime,
|
|
|
d: processRelativeTime,
|
|
|
dd: processRelativeTime,
|
|
|
M: processRelativeTime,
|
|
|
MM: processRelativeTime,
|
|
|
y: processRelativeTime,
|
|
|
yy: processRelativeTime,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return sl;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/sq.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/sq.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Albanian [sq]
|
|
|
//! author : Flakërim Ismani : https://github.com/flakerimi
|
|
|
//! author : Menelion Elensúle : https://github.com/Oire
|
|
|
//! author : Oerd Cukalla : https://github.com/oerd
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var sq = moment.defineLocale('sq', {
|
|
|
months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
|
|
|
weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
|
|
|
weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
meridiemParse: /PD|MD/,
|
|
|
isPM: function (input) {
|
|
|
return input.charAt(0) === 'M';
|
|
|
},
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
return hours < 12 ? 'PD' : 'MD';
|
|
|
},
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Sot në] LT',
|
|
|
nextDay: '[Nesër në] LT',
|
|
|
nextWeek: 'dddd [në] LT',
|
|
|
lastDay: '[Dje në] LT',
|
|
|
lastWeek: 'dddd [e kaluar në] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'në %s',
|
|
|
past: '%s më parë',
|
|
|
s: 'disa sekonda',
|
|
|
ss: '%d sekonda',
|
|
|
m: 'një minutë',
|
|
|
mm: '%d minuta',
|
|
|
h: 'një orë',
|
|
|
hh: '%d orë',
|
|
|
d: 'një ditë',
|
|
|
dd: '%d ditë',
|
|
|
M: 'një muaj',
|
|
|
MM: '%d muaj',
|
|
|
y: 'një vit',
|
|
|
yy: '%d vite',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return sq;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/sr-cyrl.js":
|
|
|
/*!***********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/sr-cyrl.js ***!
|
|
|
\***********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Serbian Cyrillic [sr-cyrl]
|
|
|
//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
|
|
|
//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var translator = {
|
|
|
words: {
|
|
|
//Different grammatical cases
|
|
|
ss: ['секунда', 'секунде', 'секунди'],
|
|
|
m: ['један минут', 'једне минуте'],
|
|
|
mm: ['минут', 'минуте', 'минута'],
|
|
|
h: ['један сат', 'једног сата'],
|
|
|
hh: ['сат', 'сата', 'сати'],
|
|
|
dd: ['дан', 'дана', 'дана'],
|
|
|
MM: ['месец', 'месеца', 'месеци'],
|
|
|
yy: ['година', 'године', 'година'],
|
|
|
},
|
|
|
correctGrammaticalCase: function (number, wordKey) {
|
|
|
return number === 1
|
|
|
? wordKey[0]
|
|
|
: number >= 2 && number <= 4
|
|
|
? wordKey[1]
|
|
|
: wordKey[2];
|
|
|
},
|
|
|
translate: function (number, withoutSuffix, key) {
|
|
|
var wordKey = translator.words[key];
|
|
|
if (key.length === 1) {
|
|
|
return withoutSuffix ? wordKey[0] : wordKey[1];
|
|
|
} else {
|
|
|
return (
|
|
|
number +
|
|
|
' ' +
|
|
|
translator.correctGrammaticalCase(number, wordKey)
|
|
|
);
|
|
|
}
|
|
|
},
|
|
|
};
|
|
|
|
|
|
var srCyrl = moment.defineLocale('sr-cyrl', {
|
|
|
months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
|
|
|
weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
|
|
|
weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'D. M. YYYY.',
|
|
|
LL: 'D. MMMM YYYY.',
|
|
|
LLL: 'D. MMMM YYYY. H:mm',
|
|
|
LLLL: 'dddd, D. MMMM YYYY. H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[данас у] LT',
|
|
|
nextDay: '[сутра у] LT',
|
|
|
nextWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[у] [недељу] [у] LT';
|
|
|
case 3:
|
|
|
return '[у] [среду] [у] LT';
|
|
|
case 6:
|
|
|
return '[у] [суботу] [у] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[у] dddd [у] LT';
|
|
|
}
|
|
|
},
|
|
|
lastDay: '[јуче у] LT',
|
|
|
lastWeek: function () {
|
|
|
var lastWeekDays = [
|
|
|
'[прошле] [недеље] [у] LT',
|
|
|
'[прошлог] [понедељка] [у] LT',
|
|
|
'[прошлог] [уторка] [у] LT',
|
|
|
'[прошле] [среде] [у] LT',
|
|
|
'[прошлог] [четвртка] [у] LT',
|
|
|
'[прошлог] [петка] [у] LT',
|
|
|
'[прошле] [суботе] [у] LT',
|
|
|
];
|
|
|
return lastWeekDays[this.day()];
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'за %s',
|
|
|
past: 'пре %s',
|
|
|
s: 'неколико секунди',
|
|
|
ss: translator.translate,
|
|
|
m: translator.translate,
|
|
|
mm: translator.translate,
|
|
|
h: translator.translate,
|
|
|
hh: translator.translate,
|
|
|
d: 'дан',
|
|
|
dd: translator.translate,
|
|
|
M: 'месец',
|
|
|
MM: translator.translate,
|
|
|
y: 'годину',
|
|
|
yy: translator.translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return srCyrl;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/sr.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/sr.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Serbian [sr]
|
|
|
//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
|
|
|
//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var translator = {
|
|
|
words: {
|
|
|
//Different grammatical cases
|
|
|
ss: ['sekunda', 'sekunde', 'sekundi'],
|
|
|
m: ['jedan minut', 'jedne minute'],
|
|
|
mm: ['minut', 'minute', 'minuta'],
|
|
|
h: ['jedan sat', 'jednog sata'],
|
|
|
hh: ['sat', 'sata', 'sati'],
|
|
|
dd: ['dan', 'dana', 'dana'],
|
|
|
MM: ['mesec', 'meseca', 'meseci'],
|
|
|
yy: ['godina', 'godine', 'godina'],
|
|
|
},
|
|
|
correctGrammaticalCase: function (number, wordKey) {
|
|
|
return number === 1
|
|
|
? wordKey[0]
|
|
|
: number >= 2 && number <= 4
|
|
|
? wordKey[1]
|
|
|
: wordKey[2];
|
|
|
},
|
|
|
translate: function (number, withoutSuffix, key) {
|
|
|
var wordKey = translator.words[key];
|
|
|
if (key.length === 1) {
|
|
|
return withoutSuffix ? wordKey[0] : wordKey[1];
|
|
|
} else {
|
|
|
return (
|
|
|
number +
|
|
|
' ' +
|
|
|
translator.correctGrammaticalCase(number, wordKey)
|
|
|
);
|
|
|
}
|
|
|
},
|
|
|
};
|
|
|
|
|
|
var sr = moment.defineLocale('sr', {
|
|
|
months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
|
|
|
weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'D. M. YYYY.',
|
|
|
LL: 'D. MMMM YYYY.',
|
|
|
LLL: 'D. MMMM YYYY. H:mm',
|
|
|
LLLL: 'dddd, D. MMMM YYYY. H:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[danas u] LT',
|
|
|
nextDay: '[sutra u] LT',
|
|
|
nextWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
return '[u] [nedelju] [u] LT';
|
|
|
case 3:
|
|
|
return '[u] [sredu] [u] LT';
|
|
|
case 6:
|
|
|
return '[u] [subotu] [u] LT';
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
return '[u] dddd [u] LT';
|
|
|
}
|
|
|
},
|
|
|
lastDay: '[juče u] LT',
|
|
|
lastWeek: function () {
|
|
|
var lastWeekDays = [
|
|
|
'[prošle] [nedelje] [u] LT',
|
|
|
'[prošlog] [ponedeljka] [u] LT',
|
|
|
'[prošlog] [utorka] [u] LT',
|
|
|
'[prošle] [srede] [u] LT',
|
|
|
'[prošlog] [četvrtka] [u] LT',
|
|
|
'[prošlog] [petka] [u] LT',
|
|
|
'[prošle] [subote] [u] LT',
|
|
|
];
|
|
|
return lastWeekDays[this.day()];
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'za %s',
|
|
|
past: 'pre %s',
|
|
|
s: 'nekoliko sekundi',
|
|
|
ss: translator.translate,
|
|
|
m: translator.translate,
|
|
|
mm: translator.translate,
|
|
|
h: translator.translate,
|
|
|
hh: translator.translate,
|
|
|
d: 'dan',
|
|
|
dd: translator.translate,
|
|
|
M: 'mesec',
|
|
|
MM: translator.translate,
|
|
|
y: 'godinu',
|
|
|
yy: translator.translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return sr;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ss.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ss.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : siSwati [ss]
|
|
|
//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var ss = moment.defineLocale('ss', {
|
|
|
months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
|
|
|
weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
|
|
|
weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'h:mm A',
|
|
|
LTS: 'h:mm:ss A',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY h:mm A',
|
|
|
LLLL: 'dddd, D MMMM YYYY h:mm A',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Namuhla nga] LT',
|
|
|
nextDay: '[Kusasa nga] LT',
|
|
|
nextWeek: 'dddd [nga] LT',
|
|
|
lastDay: '[Itolo nga] LT',
|
|
|
lastWeek: 'dddd [leliphelile] [nga] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'nga %s',
|
|
|
past: 'wenteka nga %s',
|
|
|
s: 'emizuzwana lomcane',
|
|
|
ss: '%d mzuzwana',
|
|
|
m: 'umzuzu',
|
|
|
mm: '%d emizuzu',
|
|
|
h: 'lihora',
|
|
|
hh: '%d emahora',
|
|
|
d: 'lilanga',
|
|
|
dd: '%d emalanga',
|
|
|
M: 'inyanga',
|
|
|
MM: '%d tinyanga',
|
|
|
y: 'umnyaka',
|
|
|
yy: '%d iminyaka',
|
|
|
},
|
|
|
meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours < 11) {
|
|
|
return 'ekuseni';
|
|
|
} else if (hours < 15) {
|
|
|
return 'emini';
|
|
|
} else if (hours < 19) {
|
|
|
return 'entsambama';
|
|
|
} else {
|
|
|
return 'ebusuku';
|
|
|
}
|
|
|
},
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'ekuseni') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'emini') {
|
|
|
return hour >= 11 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
|
|
|
if (hour === 0) {
|
|
|
return 0;
|
|
|
}
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}/,
|
|
|
ordinal: '%d',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ss;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/sv.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/sv.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Swedish [sv]
|
|
|
//! author : Jens Alm : https://github.com/ulmus
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var sv = moment.defineLocale('sv', {
|
|
|
months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
|
|
|
weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
|
|
|
weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
|
|
|
weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'YYYY-MM-DD',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY [kl.] HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',
|
|
|
lll: 'D MMM YYYY HH:mm',
|
|
|
llll: 'ddd D MMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Idag] LT',
|
|
|
nextDay: '[Imorgon] LT',
|
|
|
lastDay: '[Igår] LT',
|
|
|
nextWeek: '[På] dddd LT',
|
|
|
lastWeek: '[I] dddd[s] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'om %s',
|
|
|
past: 'för %s sedan',
|
|
|
s: 'några sekunder',
|
|
|
ss: '%d sekunder',
|
|
|
m: 'en minut',
|
|
|
mm: '%d minuter',
|
|
|
h: 'en timme',
|
|
|
hh: '%d timmar',
|
|
|
d: 'en dag',
|
|
|
dd: '%d dagar',
|
|
|
M: 'en månad',
|
|
|
MM: '%d månader',
|
|
|
y: 'ett år',
|
|
|
yy: '%d år',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
~~((number % 100) / 10) === 1
|
|
|
? ':e'
|
|
|
: b === 1
|
|
|
? ':a'
|
|
|
: b === 2
|
|
|
? ':a'
|
|
|
: b === 3
|
|
|
? ':e'
|
|
|
: ':e';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return sv;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/sw.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/sw.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Swahili [sw]
|
|
|
//! author : Fahad Kassim : https://github.com/fadsel
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var sw = moment.defineLocale('sw', {
|
|
|
months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
|
|
|
weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
|
|
|
weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'hh:mm A',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[leo saa] LT',
|
|
|
nextDay: '[kesho saa] LT',
|
|
|
nextWeek: '[wiki ijayo] dddd [saat] LT',
|
|
|
lastDay: '[jana] LT',
|
|
|
lastWeek: '[wiki iliyopita] dddd [saat] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s baadaye',
|
|
|
past: 'tokea %s',
|
|
|
s: 'hivi punde',
|
|
|
ss: 'sekunde %d',
|
|
|
m: 'dakika moja',
|
|
|
mm: 'dakika %d',
|
|
|
h: 'saa limoja',
|
|
|
hh: 'masaa %d',
|
|
|
d: 'siku moja',
|
|
|
dd: 'siku %d',
|
|
|
M: 'mwezi mmoja',
|
|
|
MM: 'miezi %d',
|
|
|
y: 'mwaka mmoja',
|
|
|
yy: 'miaka %d',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return sw;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ta.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ta.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Tamil [ta]
|
|
|
//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var symbolMap = {
|
|
|
1: '௧',
|
|
|
2: '௨',
|
|
|
3: '௩',
|
|
|
4: '௪',
|
|
|
5: '௫',
|
|
|
6: '௬',
|
|
|
7: '௭',
|
|
|
8: '௮',
|
|
|
9: '௯',
|
|
|
0: '௦',
|
|
|
},
|
|
|
numberMap = {
|
|
|
'௧': '1',
|
|
|
'௨': '2',
|
|
|
'௩': '3',
|
|
|
'௪': '4',
|
|
|
'௫': '5',
|
|
|
'௬': '6',
|
|
|
'௭': '7',
|
|
|
'௮': '8',
|
|
|
'௯': '9',
|
|
|
'௦': '0',
|
|
|
};
|
|
|
|
|
|
var ta = moment.defineLocale('ta', {
|
|
|
months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY, HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[இன்று] LT',
|
|
|
nextDay: '[நாளை] LT',
|
|
|
nextWeek: 'dddd, LT',
|
|
|
lastDay: '[நேற்று] LT',
|
|
|
lastWeek: '[கடந்த வாரம்] dddd, LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s இல்',
|
|
|
past: '%s முன்',
|
|
|
s: 'ஒரு சில விநாடிகள்',
|
|
|
ss: '%d விநாடிகள்',
|
|
|
m: 'ஒரு நிமிடம்',
|
|
|
mm: '%d நிமிடங்கள்',
|
|
|
h: 'ஒரு மணி நேரம்',
|
|
|
hh: '%d மணி நேரம்',
|
|
|
d: 'ஒரு நாள்',
|
|
|
dd: '%d நாட்கள்',
|
|
|
M: 'ஒரு மாதம்',
|
|
|
MM: '%d மாதங்கள்',
|
|
|
y: 'ஒரு வருடம்',
|
|
|
yy: '%d ஆண்டுகள்',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}வது/,
|
|
|
ordinal: function (number) {
|
|
|
return number + 'வது';
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
|
|
|
return numberMap[match];
|
|
|
});
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/\d/g, function (match) {
|
|
|
return symbolMap[match];
|
|
|
});
|
|
|
},
|
|
|
// refer http://ta.wikipedia.org/s/1er1
|
|
|
meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 2) {
|
|
|
return ' யாமம்';
|
|
|
} else if (hour < 6) {
|
|
|
return ' வைகறை'; // வைகறை
|
|
|
} else if (hour < 10) {
|
|
|
return ' காலை'; // காலை
|
|
|
} else if (hour < 14) {
|
|
|
return ' நண்பகல்'; // நண்பகல்
|
|
|
} else if (hour < 18) {
|
|
|
return ' எற்பாடு'; // எற்பாடு
|
|
|
} else if (hour < 22) {
|
|
|
return ' மாலை'; // மாலை
|
|
|
} else {
|
|
|
return ' யாமம்';
|
|
|
}
|
|
|
},
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'யாமம்') {
|
|
|
return hour < 2 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'நண்பகல்') {
|
|
|
return hour >= 10 ? hour : hour + 12;
|
|
|
} else {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ta;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/te.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/te.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Telugu [te]
|
|
|
//! author : Krishna Chaitanya Thota : https://github.com/kcthota
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var te = moment.defineLocale('te', {
|
|
|
months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
|
|
|
weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'A h:mm',
|
|
|
LTS: 'A h:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY, A h:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY, A h:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[నేడు] LT',
|
|
|
nextDay: '[రేపు] LT',
|
|
|
nextWeek: 'dddd, LT',
|
|
|
lastDay: '[నిన్న] LT',
|
|
|
lastWeek: '[గత] dddd, LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s లో',
|
|
|
past: '%s క్రితం',
|
|
|
s: 'కొన్ని క్షణాలు',
|
|
|
ss: '%d సెకన్లు',
|
|
|
m: 'ఒక నిమిషం',
|
|
|
mm: '%d నిమిషాలు',
|
|
|
h: 'ఒక గంట',
|
|
|
hh: '%d గంటలు',
|
|
|
d: 'ఒక రోజు',
|
|
|
dd: '%d రోజులు',
|
|
|
M: 'ఒక నెల',
|
|
|
MM: '%d నెలలు',
|
|
|
y: 'ఒక సంవత్సరం',
|
|
|
yy: '%d సంవత్సరాలు',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}వ/,
|
|
|
ordinal: '%dవ',
|
|
|
meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'రాత్రి') {
|
|
|
return hour < 4 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'ఉదయం') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'మధ్యాహ్నం') {
|
|
|
return hour >= 10 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'సాయంత్రం') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'రాత్రి';
|
|
|
} else if (hour < 10) {
|
|
|
return 'ఉదయం';
|
|
|
} else if (hour < 17) {
|
|
|
return 'మధ్యాహ్నం';
|
|
|
} else if (hour < 20) {
|
|
|
return 'సాయంత్రం';
|
|
|
} else {
|
|
|
return 'రాత్రి';
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return te;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/tet.js":
|
|
|
/*!*******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/tet.js ***!
|
|
|
\*******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Tetun Dili (East Timor) [tet]
|
|
|
//! author : Joshua Brooks : https://github.com/joshbrooks
|
|
|
//! author : Onorio De J. Afonso : https://github.com/marobo
|
|
|
//! author : Sonia Simoes : https://github.com/soniasimoes
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var tet = moment.defineLocale('tet', {
|
|
|
months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
|
|
|
weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
|
|
|
weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
|
|
|
weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Ohin iha] LT',
|
|
|
nextDay: '[Aban iha] LT',
|
|
|
nextWeek: 'dddd [iha] LT',
|
|
|
lastDay: '[Horiseik iha] LT',
|
|
|
lastWeek: 'dddd [semana kotuk] [iha] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'iha %s',
|
|
|
past: '%s liuba',
|
|
|
s: 'segundu balun',
|
|
|
ss: 'segundu %d',
|
|
|
m: 'minutu ida',
|
|
|
mm: 'minutu %d',
|
|
|
h: 'oras ida',
|
|
|
hh: 'oras %d',
|
|
|
d: 'loron ida',
|
|
|
dd: 'loron %d',
|
|
|
M: 'fulan ida',
|
|
|
MM: 'fulan %d',
|
|
|
y: 'tinan ida',
|
|
|
yy: 'tinan %d',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
~~((number % 100) / 10) === 1
|
|
|
? 'th'
|
|
|
: b === 1
|
|
|
? 'st'
|
|
|
: b === 2
|
|
|
? 'nd'
|
|
|
: b === 3
|
|
|
? 'rd'
|
|
|
: 'th';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return tet;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/tg.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/tg.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Tajik [tg]
|
|
|
//! author : Orif N. Jr. : https://github.com/orif-jr
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var suffixes = {
|
|
|
0: '-ум',
|
|
|
1: '-ум',
|
|
|
2: '-юм',
|
|
|
3: '-юм',
|
|
|
4: '-ум',
|
|
|
5: '-ум',
|
|
|
6: '-ум',
|
|
|
7: '-ум',
|
|
|
8: '-ум',
|
|
|
9: '-ум',
|
|
|
10: '-ум',
|
|
|
12: '-ум',
|
|
|
13: '-ум',
|
|
|
20: '-ум',
|
|
|
30: '-юм',
|
|
|
40: '-ум',
|
|
|
50: '-ум',
|
|
|
60: '-ум',
|
|
|
70: '-ум',
|
|
|
80: '-ум',
|
|
|
90: '-ум',
|
|
|
100: '-ум',
|
|
|
};
|
|
|
|
|
|
var tg = moment.defineLocale('tg', {
|
|
|
months: {
|
|
|
format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(
|
|
|
'_'
|
|
|
),
|
|
|
standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
|
|
|
'_'
|
|
|
),
|
|
|
},
|
|
|
monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
|
|
|
weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
|
|
|
weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Имрӯз соати] LT',
|
|
|
nextDay: '[Фардо соати] LT',
|
|
|
lastDay: '[Дирӯз соати] LT',
|
|
|
nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',
|
|
|
lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'баъди %s',
|
|
|
past: '%s пеш',
|
|
|
s: 'якчанд сония',
|
|
|
m: 'як дақиқа',
|
|
|
mm: '%d дақиқа',
|
|
|
h: 'як соат',
|
|
|
hh: '%d соат',
|
|
|
d: 'як рӯз',
|
|
|
dd: '%d рӯз',
|
|
|
M: 'як моҳ',
|
|
|
MM: '%d моҳ',
|
|
|
y: 'як сол',
|
|
|
yy: '%d сол',
|
|
|
},
|
|
|
meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === 'шаб') {
|
|
|
return hour < 4 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'субҳ') {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'рӯз') {
|
|
|
return hour >= 11 ? hour : hour + 12;
|
|
|
} else if (meridiem === 'бегоҳ') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'шаб';
|
|
|
} else if (hour < 11) {
|
|
|
return 'субҳ';
|
|
|
} else if (hour < 16) {
|
|
|
return 'рӯз';
|
|
|
} else if (hour < 19) {
|
|
|
return 'бегоҳ';
|
|
|
} else {
|
|
|
return 'шаб';
|
|
|
}
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
|
|
|
ordinal: function (number) {
|
|
|
var a = number % 10,
|
|
|
b = number >= 100 ? 100 : null;
|
|
|
return number + (suffixes[number] || suffixes[a] || suffixes[b]);
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 1th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return tg;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/th.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/th.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Thai [th]
|
|
|
//! author : Kridsada Thanabulpong : https://github.com/sirn
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var th = moment.defineLocale('th', {
|
|
|
months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
|
|
|
weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
|
|
|
weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'H:mm',
|
|
|
LTS: 'H:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY เวลา H:mm',
|
|
|
LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',
|
|
|
},
|
|
|
meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
|
|
|
isPM: function (input) {
|
|
|
return input === 'หลังเที่ยง';
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'ก่อนเที่ยง';
|
|
|
} else {
|
|
|
return 'หลังเที่ยง';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[วันนี้ เวลา] LT',
|
|
|
nextDay: '[พรุ่งนี้ เวลา] LT',
|
|
|
nextWeek: 'dddd[หน้า เวลา] LT',
|
|
|
lastDay: '[เมื่อวานนี้ เวลา] LT',
|
|
|
lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'อีก %s',
|
|
|
past: '%sที่แล้ว',
|
|
|
s: 'ไม่กี่วินาที',
|
|
|
ss: '%d วินาที',
|
|
|
m: '1 นาที',
|
|
|
mm: '%d นาที',
|
|
|
h: '1 ชั่วโมง',
|
|
|
hh: '%d ชั่วโมง',
|
|
|
d: '1 วัน',
|
|
|
dd: '%d วัน',
|
|
|
w: '1 สัปดาห์',
|
|
|
ww: '%d สัปดาห์',
|
|
|
M: '1 เดือน',
|
|
|
MM: '%d เดือน',
|
|
|
y: '1 ปี',
|
|
|
yy: '%d ปี',
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return th;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/tk.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/tk.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Turkmen [tk]
|
|
|
//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var suffixes = {
|
|
|
1: "'inji",
|
|
|
5: "'inji",
|
|
|
8: "'inji",
|
|
|
70: "'inji",
|
|
|
80: "'inji",
|
|
|
2: "'nji",
|
|
|
7: "'nji",
|
|
|
20: "'nji",
|
|
|
50: "'nji",
|
|
|
3: "'ünji",
|
|
|
4: "'ünji",
|
|
|
100: "'ünji",
|
|
|
6: "'njy",
|
|
|
9: "'unjy",
|
|
|
10: "'unjy",
|
|
|
30: "'unjy",
|
|
|
60: "'ynjy",
|
|
|
90: "'ynjy",
|
|
|
};
|
|
|
|
|
|
var tk = moment.defineLocale('tk', {
|
|
|
months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),
|
|
|
weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),
|
|
|
weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[bugün sagat] LT',
|
|
|
nextDay: '[ertir sagat] LT',
|
|
|
nextWeek: '[indiki] dddd [sagat] LT',
|
|
|
lastDay: '[düýn] LT',
|
|
|
lastWeek: '[geçen] dddd [sagat] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s soň',
|
|
|
past: '%s öň',
|
|
|
s: 'birnäçe sekunt',
|
|
|
m: 'bir minut',
|
|
|
mm: '%d minut',
|
|
|
h: 'bir sagat',
|
|
|
hh: '%d sagat',
|
|
|
d: 'bir gün',
|
|
|
dd: '%d gün',
|
|
|
M: 'bir aý',
|
|
|
MM: '%d aý',
|
|
|
y: 'bir ýyl',
|
|
|
yy: '%d ýyl',
|
|
|
},
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'd':
|
|
|
case 'D':
|
|
|
case 'Do':
|
|
|
case 'DD':
|
|
|
return number;
|
|
|
default:
|
|
|
if (number === 0) {
|
|
|
// special case for zero
|
|
|
return number + "'unjy";
|
|
|
}
|
|
|
var a = number % 10,
|
|
|
b = (number % 100) - a,
|
|
|
c = number >= 100 ? 100 : null;
|
|
|
return number + (suffixes[a] || suffixes[b] || suffixes[c]);
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return tk;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/tl-ph.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/tl-ph.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Tagalog (Philippines) [tl-ph]
|
|
|
//! author : Dan Hagman : https://github.com/hagmandan
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var tlPh = moment.defineLocale('tl-ph', {
|
|
|
months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
|
|
|
weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
|
|
|
weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'MM/D/YYYY',
|
|
|
LL: 'MMMM D, YYYY',
|
|
|
LLL: 'MMMM D, YYYY HH:mm',
|
|
|
LLLL: 'dddd, MMMM DD, YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: 'LT [ngayong araw]',
|
|
|
nextDay: '[Bukas ng] LT',
|
|
|
nextWeek: 'LT [sa susunod na] dddd',
|
|
|
lastDay: 'LT [kahapon]',
|
|
|
lastWeek: 'LT [noong nakaraang] dddd',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'sa loob ng %s',
|
|
|
past: '%s ang nakalipas',
|
|
|
s: 'ilang segundo',
|
|
|
ss: '%d segundo',
|
|
|
m: 'isang minuto',
|
|
|
mm: '%d minuto',
|
|
|
h: 'isang oras',
|
|
|
hh: '%d oras',
|
|
|
d: 'isang araw',
|
|
|
dd: '%d araw',
|
|
|
M: 'isang buwan',
|
|
|
MM: '%d buwan',
|
|
|
y: 'isang taon',
|
|
|
yy: '%d taon',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}/,
|
|
|
ordinal: function (number) {
|
|
|
return number;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return tlPh;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/tlh.js":
|
|
|
/*!*******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/tlh.js ***!
|
|
|
\*******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Klingon [tlh]
|
|
|
//! author : Dominika Kruk : https://github.com/amaranthrose
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
|
|
|
|
|
|
function translateFuture(output) {
|
|
|
var time = output;
|
|
|
time =
|
|
|
output.indexOf('jaj') !== -1
|
|
|
? time.slice(0, -3) + 'leS'
|
|
|
: output.indexOf('jar') !== -1
|
|
|
? time.slice(0, -3) + 'waQ'
|
|
|
: output.indexOf('DIS') !== -1
|
|
|
? time.slice(0, -3) + 'nem'
|
|
|
: time + ' pIq';
|
|
|
return time;
|
|
|
}
|
|
|
|
|
|
function translatePast(output) {
|
|
|
var time = output;
|
|
|
time =
|
|
|
output.indexOf('jaj') !== -1
|
|
|
? time.slice(0, -3) + 'Hu’'
|
|
|
: output.indexOf('jar') !== -1
|
|
|
? time.slice(0, -3) + 'wen'
|
|
|
: output.indexOf('DIS') !== -1
|
|
|
? time.slice(0, -3) + 'ben'
|
|
|
: time + ' ret';
|
|
|
return time;
|
|
|
}
|
|
|
|
|
|
function translate(number, withoutSuffix, string, isFuture) {
|
|
|
var numberNoun = numberAsNoun(number);
|
|
|
switch (string) {
|
|
|
case 'ss':
|
|
|
return numberNoun + ' lup';
|
|
|
case 'mm':
|
|
|
return numberNoun + ' tup';
|
|
|
case 'hh':
|
|
|
return numberNoun + ' rep';
|
|
|
case 'dd':
|
|
|
return numberNoun + ' jaj';
|
|
|
case 'MM':
|
|
|
return numberNoun + ' jar';
|
|
|
case 'yy':
|
|
|
return numberNoun + ' DIS';
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function numberAsNoun(number) {
|
|
|
var hundred = Math.floor((number % 1000) / 100),
|
|
|
ten = Math.floor((number % 100) / 10),
|
|
|
one = number % 10,
|
|
|
word = '';
|
|
|
if (hundred > 0) {
|
|
|
word += numbersNouns[hundred] + 'vatlh';
|
|
|
}
|
|
|
if (ten > 0) {
|
|
|
word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';
|
|
|
}
|
|
|
if (one > 0) {
|
|
|
word += (word !== '' ? ' ' : '') + numbersNouns[one];
|
|
|
}
|
|
|
return word === '' ? 'pagh' : word;
|
|
|
}
|
|
|
|
|
|
var tlh = moment.defineLocale('tlh', {
|
|
|
months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
|
|
|
'_'
|
|
|
),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[DaHjaj] LT',
|
|
|
nextDay: '[wa’leS] LT',
|
|
|
nextWeek: 'LLL',
|
|
|
lastDay: '[wa’Hu’] LT',
|
|
|
lastWeek: 'LLL',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: translateFuture,
|
|
|
past: translatePast,
|
|
|
s: 'puS lup',
|
|
|
ss: translate,
|
|
|
m: 'wa’ tup',
|
|
|
mm: translate,
|
|
|
h: 'wa’ rep',
|
|
|
hh: translate,
|
|
|
d: 'wa’ jaj',
|
|
|
dd: translate,
|
|
|
M: 'wa’ jar',
|
|
|
MM: translate,
|
|
|
y: 'wa’ DIS',
|
|
|
yy: translate,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return tlh;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/tr.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/tr.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Turkish [tr]
|
|
|
//! authors : Erhan Gundogan : https://github.com/erhangundogan,
|
|
|
//! Burak Yiğit Kaya: https://github.com/BYK
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var suffixes = {
|
|
|
1: "'inci",
|
|
|
5: "'inci",
|
|
|
8: "'inci",
|
|
|
70: "'inci",
|
|
|
80: "'inci",
|
|
|
2: "'nci",
|
|
|
7: "'nci",
|
|
|
20: "'nci",
|
|
|
50: "'nci",
|
|
|
3: "'üncü",
|
|
|
4: "'üncü",
|
|
|
100: "'üncü",
|
|
|
6: "'ncı",
|
|
|
9: "'uncu",
|
|
|
10: "'uncu",
|
|
|
30: "'uncu",
|
|
|
60: "'ıncı",
|
|
|
90: "'ıncı",
|
|
|
};
|
|
|
|
|
|
var tr = moment.defineLocale('tr', {
|
|
|
months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
|
|
|
weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
|
|
|
weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours < 12) {
|
|
|
return isLower ? 'öö' : 'ÖÖ';
|
|
|
} else {
|
|
|
return isLower ? 'ös' : 'ÖS';
|
|
|
}
|
|
|
},
|
|
|
meridiemParse: /öö|ÖÖ|ös|ÖS/,
|
|
|
isPM: function (input) {
|
|
|
return input === 'ös' || input === 'ÖS';
|
|
|
},
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[bugün saat] LT',
|
|
|
nextDay: '[yarın saat] LT',
|
|
|
nextWeek: '[gelecek] dddd [saat] LT',
|
|
|
lastDay: '[dün] LT',
|
|
|
lastWeek: '[geçen] dddd [saat] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s sonra',
|
|
|
past: '%s önce',
|
|
|
s: 'birkaç saniye',
|
|
|
ss: '%d saniye',
|
|
|
m: 'bir dakika',
|
|
|
mm: '%d dakika',
|
|
|
h: 'bir saat',
|
|
|
hh: '%d saat',
|
|
|
d: 'bir gün',
|
|
|
dd: '%d gün',
|
|
|
w: 'bir hafta',
|
|
|
ww: '%d hafta',
|
|
|
M: 'bir ay',
|
|
|
MM: '%d ay',
|
|
|
y: 'bir yıl',
|
|
|
yy: '%d yıl',
|
|
|
},
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'd':
|
|
|
case 'D':
|
|
|
case 'Do':
|
|
|
case 'DD':
|
|
|
return number;
|
|
|
default:
|
|
|
if (number === 0) {
|
|
|
// special case for zero
|
|
|
return number + "'ıncı";
|
|
|
}
|
|
|
var a = number % 10,
|
|
|
b = (number % 100) - a,
|
|
|
c = number >= 100 ? 100 : null;
|
|
|
return number + (suffixes[a] || suffixes[b] || suffixes[c]);
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return tr;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/tzl.js":
|
|
|
/*!*******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/tzl.js ***!
|
|
|
\*******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Talossan [tzl]
|
|
|
//! author : Robin van der Vliet : https://github.com/robin0van0der0v
|
|
|
//! author : Iustì Canun
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
// After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
|
|
|
// This is currently too difficult (maybe even impossible) to add.
|
|
|
var tzl = moment.defineLocale('tzl', {
|
|
|
months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
|
|
|
weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
|
|
|
weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
|
|
|
weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH.mm',
|
|
|
LTS: 'HH.mm.ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D. MMMM [dallas] YYYY',
|
|
|
LLL: 'D. MMMM [dallas] YYYY HH.mm',
|
|
|
LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
|
|
|
},
|
|
|
meridiemParse: /d\'o|d\'a/i,
|
|
|
isPM: function (input) {
|
|
|
return "d'o" === input.toLowerCase();
|
|
|
},
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours > 11) {
|
|
|
return isLower ? "d'o" : "D'O";
|
|
|
} else {
|
|
|
return isLower ? "d'a" : "D'A";
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[oxhi à] LT',
|
|
|
nextDay: '[demà à] LT',
|
|
|
nextWeek: 'dddd [à] LT',
|
|
|
lastDay: '[ieiri à] LT',
|
|
|
lastWeek: '[sür el] dddd [lasteu à] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'osprei %s',
|
|
|
past: 'ja%s',
|
|
|
s: processRelativeTime,
|
|
|
ss: processRelativeTime,
|
|
|
m: processRelativeTime,
|
|
|
mm: processRelativeTime,
|
|
|
h: processRelativeTime,
|
|
|
hh: processRelativeTime,
|
|
|
d: processRelativeTime,
|
|
|
dd: processRelativeTime,
|
|
|
M: processRelativeTime,
|
|
|
MM: processRelativeTime,
|
|
|
y: processRelativeTime,
|
|
|
yy: processRelativeTime,
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
|
|
ordinal: '%d.',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
|
|
var format = {
|
|
|
s: ['viensas secunds', "'iensas secunds"],
|
|
|
ss: [number + ' secunds', '' + number + ' secunds'],
|
|
|
m: ["'n míut", "'iens míut"],
|
|
|
mm: [number + ' míuts', '' + number + ' míuts'],
|
|
|
h: ["'n þora", "'iensa þora"],
|
|
|
hh: [number + ' þoras', '' + number + ' þoras'],
|
|
|
d: ["'n ziua", "'iensa ziua"],
|
|
|
dd: [number + ' ziuas', '' + number + ' ziuas'],
|
|
|
M: ["'n mes", "'iens mes"],
|
|
|
MM: [number + ' mesen', '' + number + ' mesen'],
|
|
|
y: ["'n ar", "'iens ar"],
|
|
|
yy: [number + ' ars', '' + number + ' ars'],
|
|
|
};
|
|
|
return isFuture
|
|
|
? format[key][0]
|
|
|
: withoutSuffix
|
|
|
? format[key][0]
|
|
|
: format[key][1];
|
|
|
}
|
|
|
|
|
|
return tzl;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/tzm-latn.js":
|
|
|
/*!************************************************!*\
|
|
|
!*** ./node_modules/moment/locale/tzm-latn.js ***!
|
|
|
\************************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Central Atlas Tamazight Latin [tzm-latn]
|
|
|
//! author : Abdel Said : https://github.com/abdelsaid
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var tzmLatn = moment.defineLocale('tzm-latn', {
|
|
|
months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
|
|
|
weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
|
|
|
weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[asdkh g] LT',
|
|
|
nextDay: '[aska g] LT',
|
|
|
nextWeek: 'dddd [g] LT',
|
|
|
lastDay: '[assant g] LT',
|
|
|
lastWeek: 'dddd [g] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'dadkh s yan %s',
|
|
|
past: 'yan %s',
|
|
|
s: 'imik',
|
|
|
ss: '%d imik',
|
|
|
m: 'minuḍ',
|
|
|
mm: '%d minuḍ',
|
|
|
h: 'saɛa',
|
|
|
hh: '%d tassaɛin',
|
|
|
d: 'ass',
|
|
|
dd: '%d ossan',
|
|
|
M: 'ayowr',
|
|
|
MM: '%d iyyirn',
|
|
|
y: 'asgas',
|
|
|
yy: '%d isgasn',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 6, // Saturday is the first day of the week.
|
|
|
doy: 12, // The week that contains Jan 12th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return tzmLatn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/tzm.js":
|
|
|
/*!*******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/tzm.js ***!
|
|
|
\*******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Central Atlas Tamazight [tzm]
|
|
|
//! author : Abdel Said : https://github.com/abdelsaid
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var tzm = moment.defineLocale('tzm', {
|
|
|
months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
|
|
|
weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
|
|
|
weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
|
|
|
nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
|
|
|
nextWeek: 'dddd [ⴴ] LT',
|
|
|
lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
|
|
|
lastWeek: 'dddd [ⴴ] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
|
|
|
past: 'ⵢⴰⵏ %s',
|
|
|
s: 'ⵉⵎⵉⴽ',
|
|
|
ss: '%d ⵉⵎⵉⴽ',
|
|
|
m: 'ⵎⵉⵏⵓⴺ',
|
|
|
mm: '%d ⵎⵉⵏⵓⴺ',
|
|
|
h: 'ⵙⴰⵄⴰ',
|
|
|
hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
|
|
|
d: 'ⴰⵙⵙ',
|
|
|
dd: '%d oⵙⵙⴰⵏ',
|
|
|
M: 'ⴰⵢoⵓⵔ',
|
|
|
MM: '%d ⵉⵢⵢⵉⵔⵏ',
|
|
|
y: 'ⴰⵙⴳⴰⵙ',
|
|
|
yy: '%d ⵉⵙⴳⴰⵙⵏ',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 6, // Saturday is the first day of the week.
|
|
|
doy: 12, // The week that contains Jan 12th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return tzm;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ug-cn.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ug-cn.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Uyghur (China) [ug-cn]
|
|
|
//! author: boyaq : https://github.com/boyaq
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var ugCn = moment.defineLocale('ug-cn', {
|
|
|
months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
|
|
|
weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'YYYY-MM-DD',
|
|
|
LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
|
|
|
LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
|
|
|
LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
|
|
|
},
|
|
|
meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (
|
|
|
meridiem === 'يېرىم كېچە' ||
|
|
|
meridiem === 'سەھەر' ||
|
|
|
meridiem === 'چۈشتىن بۇرۇن'
|
|
|
) {
|
|
|
return hour;
|
|
|
} else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
|
|
|
return hour + 12;
|
|
|
} else {
|
|
|
return hour >= 11 ? hour : hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
var hm = hour * 100 + minute;
|
|
|
if (hm < 600) {
|
|
|
return 'يېرىم كېچە';
|
|
|
} else if (hm < 900) {
|
|
|
return 'سەھەر';
|
|
|
} else if (hm < 1130) {
|
|
|
return 'چۈشتىن بۇرۇن';
|
|
|
} else if (hm < 1230) {
|
|
|
return 'چۈش';
|
|
|
} else if (hm < 1800) {
|
|
|
return 'چۈشتىن كېيىن';
|
|
|
} else {
|
|
|
return 'كەچ';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[بۈگۈن سائەت] LT',
|
|
|
nextDay: '[ئەتە سائەت] LT',
|
|
|
nextWeek: '[كېلەركى] dddd [سائەت] LT',
|
|
|
lastDay: '[تۆنۈگۈن] LT',
|
|
|
lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s كېيىن',
|
|
|
past: '%s بۇرۇن',
|
|
|
s: 'نەچچە سېكونت',
|
|
|
ss: '%d سېكونت',
|
|
|
m: 'بىر مىنۇت',
|
|
|
mm: '%d مىنۇت',
|
|
|
h: 'بىر سائەت',
|
|
|
hh: '%d سائەت',
|
|
|
d: 'بىر كۈن',
|
|
|
dd: '%d كۈن',
|
|
|
M: 'بىر ئاي',
|
|
|
MM: '%d ئاي',
|
|
|
y: 'بىر يىل',
|
|
|
yy: '%d يىل',
|
|
|
},
|
|
|
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'd':
|
|
|
case 'D':
|
|
|
case 'DDD':
|
|
|
return number + '-كۈنى';
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number + '-ھەپتە';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/،/g, ',');
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/,/g, '،');
|
|
|
},
|
|
|
week: {
|
|
|
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ugCn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/uk.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/uk.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Ukrainian [uk]
|
|
|
//! author : zemlanin : https://github.com/zemlanin
|
|
|
//! Author : Menelion Elensúle : https://github.com/Oire
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
function plural(word, num) {
|
|
|
var forms = word.split('_');
|
|
|
return num % 10 === 1 && num % 100 !== 11
|
|
|
? forms[0]
|
|
|
: num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
|
|
|
? forms[1]
|
|
|
: forms[2];
|
|
|
}
|
|
|
function relativeTimeWithPlural(number, withoutSuffix, key) {
|
|
|
var format = {
|
|
|
ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
|
|
|
mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
|
|
|
hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
|
|
|
dd: 'день_дні_днів',
|
|
|
MM: 'місяць_місяці_місяців',
|
|
|
yy: 'рік_роки_років',
|
|
|
};
|
|
|
if (key === 'm') {
|
|
|
return withoutSuffix ? 'хвилина' : 'хвилину';
|
|
|
} else if (key === 'h') {
|
|
|
return withoutSuffix ? 'година' : 'годину';
|
|
|
} else {
|
|
|
return number + ' ' + plural(format[key], +number);
|
|
|
}
|
|
|
}
|
|
|
function weekdaysCaseReplace(m, format) {
|
|
|
var weekdays = {
|
|
|
nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(
|
|
|
'_'
|
|
|
),
|
|
|
accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(
|
|
|
'_'
|
|
|
),
|
|
|
genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(
|
|
|
'_'
|
|
|
),
|
|
|
},
|
|
|
nounCase;
|
|
|
|
|
|
if (m === true) {
|
|
|
return weekdays['nominative']
|
|
|
.slice(1, 7)
|
|
|
.concat(weekdays['nominative'].slice(0, 1));
|
|
|
}
|
|
|
if (!m) {
|
|
|
return weekdays['nominative'];
|
|
|
}
|
|
|
|
|
|
nounCase = /(\[[ВвУу]\]) ?dddd/.test(format)
|
|
|
? 'accusative'
|
|
|
: /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format)
|
|
|
? 'genitive'
|
|
|
: 'nominative';
|
|
|
return weekdays[nounCase][m.day()];
|
|
|
}
|
|
|
function processHoursFunction(str) {
|
|
|
return function () {
|
|
|
return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
|
|
|
};
|
|
|
}
|
|
|
|
|
|
var uk = moment.defineLocale('uk', {
|
|
|
months: {
|
|
|
format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(
|
|
|
'_'
|
|
|
),
|
|
|
standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(
|
|
|
'_'
|
|
|
),
|
|
|
},
|
|
|
monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: weekdaysCaseReplace,
|
|
|
weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
|
|
|
weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD.MM.YYYY',
|
|
|
LL: 'D MMMM YYYY р.',
|
|
|
LLL: 'D MMMM YYYY р., HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY р., HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: processHoursFunction('[Сьогодні '),
|
|
|
nextDay: processHoursFunction('[Завтра '),
|
|
|
lastDay: processHoursFunction('[Вчора '),
|
|
|
nextWeek: processHoursFunction('[У] dddd ['),
|
|
|
lastWeek: function () {
|
|
|
switch (this.day()) {
|
|
|
case 0:
|
|
|
case 3:
|
|
|
case 5:
|
|
|
case 6:
|
|
|
return processHoursFunction('[Минулої] dddd [').call(this);
|
|
|
case 1:
|
|
|
case 2:
|
|
|
case 4:
|
|
|
return processHoursFunction('[Минулого] dddd [').call(this);
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'за %s',
|
|
|
past: '%s тому',
|
|
|
s: 'декілька секунд',
|
|
|
ss: relativeTimeWithPlural,
|
|
|
m: relativeTimeWithPlural,
|
|
|
mm: relativeTimeWithPlural,
|
|
|
h: 'годину',
|
|
|
hh: relativeTimeWithPlural,
|
|
|
d: 'день',
|
|
|
dd: relativeTimeWithPlural,
|
|
|
M: 'місяць',
|
|
|
MM: relativeTimeWithPlural,
|
|
|
y: 'рік',
|
|
|
yy: relativeTimeWithPlural,
|
|
|
},
|
|
|
// M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
|
|
|
meridiemParse: /ночі|ранку|дня|вечора/,
|
|
|
isPM: function (input) {
|
|
|
return /^(дня|вечора)$/.test(input);
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 4) {
|
|
|
return 'ночі';
|
|
|
} else if (hour < 12) {
|
|
|
return 'ранку';
|
|
|
} else if (hour < 17) {
|
|
|
return 'дня';
|
|
|
} else {
|
|
|
return 'вечора';
|
|
|
}
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'M':
|
|
|
case 'd':
|
|
|
case 'DDD':
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number + '-й';
|
|
|
case 'D':
|
|
|
return number + '-го';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return uk;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/ur.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/ur.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Urdu [ur]
|
|
|
//! author : Sawood Alam : https://github.com/ibnesayeed
|
|
|
//! author : Zack : https://github.com/ZackVision
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var months = [
|
|
|
'جنوری',
|
|
|
'فروری',
|
|
|
'مارچ',
|
|
|
'اپریل',
|
|
|
'مئی',
|
|
|
'جون',
|
|
|
'جولائی',
|
|
|
'اگست',
|
|
|
'ستمبر',
|
|
|
'اکتوبر',
|
|
|
'نومبر',
|
|
|
'دسمبر',
|
|
|
],
|
|
|
days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];
|
|
|
|
|
|
var ur = moment.defineLocale('ur', {
|
|
|
months: months,
|
|
|
monthsShort: months,
|
|
|
weekdays: days,
|
|
|
weekdaysShort: days,
|
|
|
weekdaysMin: days,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd، D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
meridiemParse: /صبح|شام/,
|
|
|
isPM: function (input) {
|
|
|
return 'شام' === input;
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
if (hour < 12) {
|
|
|
return 'صبح';
|
|
|
}
|
|
|
return 'شام';
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[آج بوقت] LT',
|
|
|
nextDay: '[کل بوقت] LT',
|
|
|
nextWeek: 'dddd [بوقت] LT',
|
|
|
lastDay: '[گذشتہ روز بوقت] LT',
|
|
|
lastWeek: '[گذشتہ] dddd [بوقت] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s بعد',
|
|
|
past: '%s قبل',
|
|
|
s: 'چند سیکنڈ',
|
|
|
ss: '%d سیکنڈ',
|
|
|
m: 'ایک منٹ',
|
|
|
mm: '%d منٹ',
|
|
|
h: 'ایک گھنٹہ',
|
|
|
hh: '%d گھنٹے',
|
|
|
d: 'ایک دن',
|
|
|
dd: '%d دن',
|
|
|
M: 'ایک ماہ',
|
|
|
MM: '%d ماہ',
|
|
|
y: 'ایک سال',
|
|
|
yy: '%d سال',
|
|
|
},
|
|
|
preparse: function (string) {
|
|
|
return string.replace(/،/g, ',');
|
|
|
},
|
|
|
postformat: function (string) {
|
|
|
return string.replace(/,/g, '،');
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return ur;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/uz-latn.js":
|
|
|
/*!***********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/uz-latn.js ***!
|
|
|
\***********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Uzbek Latin [uz-latn]
|
|
|
//! author : Rasulbek Mirzayev : github.com/Rasulbeeek
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var uzLatn = moment.defineLocale('uz-latn', {
|
|
|
months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
|
|
|
weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
|
|
|
weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'D MMMM YYYY, dddd HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Bugun soat] LT [da]',
|
|
|
nextDay: '[Ertaga] LT [da]',
|
|
|
nextWeek: 'dddd [kuni soat] LT [da]',
|
|
|
lastDay: '[Kecha soat] LT [da]',
|
|
|
lastWeek: "[O'tgan] dddd [kuni soat] LT [da]",
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'Yaqin %s ichida',
|
|
|
past: 'Bir necha %s oldin',
|
|
|
s: 'soniya',
|
|
|
ss: '%d soniya',
|
|
|
m: 'bir daqiqa',
|
|
|
mm: '%d daqiqa',
|
|
|
h: 'bir soat',
|
|
|
hh: '%d soat',
|
|
|
d: 'bir kun',
|
|
|
dd: '%d kun',
|
|
|
M: 'bir oy',
|
|
|
MM: '%d oy',
|
|
|
y: 'bir yil',
|
|
|
yy: '%d yil',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return uzLatn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/uz.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/uz.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Uzbek [uz]
|
|
|
//! author : Sardor Muminov : https://github.com/muminoff
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var uz = moment.defineLocale('uz', {
|
|
|
months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
|
|
|
weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
|
|
|
weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
|
|
|
weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'D MMMM YYYY, dddd HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Бугун соат] LT [да]',
|
|
|
nextDay: '[Эртага] LT [да]',
|
|
|
nextWeek: 'dddd [куни соат] LT [да]',
|
|
|
lastDay: '[Кеча соат] LT [да]',
|
|
|
lastWeek: '[Утган] dddd [куни соат] LT [да]',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'Якин %s ичида',
|
|
|
past: 'Бир неча %s олдин',
|
|
|
s: 'фурсат',
|
|
|
ss: '%d фурсат',
|
|
|
m: 'бир дакика',
|
|
|
mm: '%d дакика',
|
|
|
h: 'бир соат',
|
|
|
hh: '%d соат',
|
|
|
d: 'бир кун',
|
|
|
dd: '%d кун',
|
|
|
M: 'бир ой',
|
|
|
MM: '%d ой',
|
|
|
y: 'бир йил',
|
|
|
yy: '%d йил',
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 7, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return uz;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/vi.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/vi.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Vietnamese [vi]
|
|
|
//! author : Bang Nguyen : https://github.com/bangnk
|
|
|
//! author : Chien Kira : https://github.com/chienkira
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var vi = moment.defineLocale('vi', {
|
|
|
months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
|
|
|
weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
meridiemParse: /sa|ch/i,
|
|
|
isPM: function (input) {
|
|
|
return /^ch$/i.test(input);
|
|
|
},
|
|
|
meridiem: function (hours, minutes, isLower) {
|
|
|
if (hours < 12) {
|
|
|
return isLower ? 'sa' : 'SA';
|
|
|
} else {
|
|
|
return isLower ? 'ch' : 'CH';
|
|
|
}
|
|
|
},
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM [năm] YYYY',
|
|
|
LLL: 'D MMMM [năm] YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',
|
|
|
l: 'DD/M/YYYY',
|
|
|
ll: 'D MMM YYYY',
|
|
|
lll: 'D MMM YYYY HH:mm',
|
|
|
llll: 'ddd, D MMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Hôm nay lúc] LT',
|
|
|
nextDay: '[Ngày mai lúc] LT',
|
|
|
nextWeek: 'dddd [tuần tới lúc] LT',
|
|
|
lastDay: '[Hôm qua lúc] LT',
|
|
|
lastWeek: 'dddd [tuần trước lúc] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s tới',
|
|
|
past: '%s trước',
|
|
|
s: 'vài giây',
|
|
|
ss: '%d giây',
|
|
|
m: 'một phút',
|
|
|
mm: '%d phút',
|
|
|
h: 'một giờ',
|
|
|
hh: '%d giờ',
|
|
|
d: 'một ngày',
|
|
|
dd: '%d ngày',
|
|
|
w: 'một tuần',
|
|
|
ww: '%d tuần',
|
|
|
M: 'một tháng',
|
|
|
MM: '%d tháng',
|
|
|
y: 'một năm',
|
|
|
yy: '%d năm',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}/,
|
|
|
ordinal: function (number) {
|
|
|
return number;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return vi;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/x-pseudo.js":
|
|
|
/*!************************************************!*\
|
|
|
!*** ./node_modules/moment/locale/x-pseudo.js ***!
|
|
|
\************************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Pseudo [x-pseudo]
|
|
|
//! author : Andrew Hood : https://github.com/andrewhood125
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var xPseudo = moment.defineLocale('x-pseudo', {
|
|
|
months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsParseExact: true,
|
|
|
weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
|
|
|
weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
|
|
|
weekdaysParseExact: true,
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY HH:mm',
|
|
|
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[T~ódá~ý át] LT',
|
|
|
nextDay: '[T~ómó~rró~w át] LT',
|
|
|
nextWeek: 'dddd [át] LT',
|
|
|
lastDay: '[Ý~ést~érdá~ý át] LT',
|
|
|
lastWeek: '[L~ást] dddd [át] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'í~ñ %s',
|
|
|
past: '%s á~gó',
|
|
|
s: 'á ~féw ~sécó~ñds',
|
|
|
ss: '%d s~écóñ~ds',
|
|
|
m: 'á ~míñ~úté',
|
|
|
mm: '%d m~íñú~tés',
|
|
|
h: 'á~ñ hó~úr',
|
|
|
hh: '%d h~óúrs',
|
|
|
d: 'á ~dáý',
|
|
|
dd: '%d d~áýs',
|
|
|
M: 'á ~móñ~th',
|
|
|
MM: '%d m~óñt~hs',
|
|
|
y: 'á ~ýéár',
|
|
|
yy: '%d ý~éárs',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
~~((number % 100) / 10) === 1
|
|
|
? 'th'
|
|
|
: b === 1
|
|
|
? 'st'
|
|
|
: b === 2
|
|
|
? 'nd'
|
|
|
: b === 3
|
|
|
? 'rd'
|
|
|
: 'th';
|
|
|
return number + output;
|
|
|
},
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return xPseudo;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/yo.js":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./node_modules/moment/locale/yo.js ***!
|
|
|
\******************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Yoruba Nigeria [yo]
|
|
|
//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var yo = moment.defineLocale('yo', {
|
|
|
months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
|
|
|
weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
|
|
|
weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
|
|
|
weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'h:mm A',
|
|
|
LTS: 'h:mm:ss A',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'D MMMM YYYY',
|
|
|
LLL: 'D MMMM YYYY h:mm A',
|
|
|
LLLL: 'dddd, D MMMM YYYY h:mm A',
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[Ònì ni] LT',
|
|
|
nextDay: '[Ọ̀la ni] LT',
|
|
|
nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT",
|
|
|
lastDay: '[Àna ni] LT',
|
|
|
lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: 'ní %s',
|
|
|
past: '%s kọjá',
|
|
|
s: 'ìsẹjú aayá die',
|
|
|
ss: 'aayá %d',
|
|
|
m: 'ìsẹjú kan',
|
|
|
mm: 'ìsẹjú %d',
|
|
|
h: 'wákati kan',
|
|
|
hh: 'wákati %d',
|
|
|
d: 'ọjọ́ kan',
|
|
|
dd: 'ọjọ́ %d',
|
|
|
M: 'osù kan',
|
|
|
MM: 'osù %d',
|
|
|
y: 'ọdún kan',
|
|
|
yy: 'ọdún %d',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/,
|
|
|
ordinal: 'ọjọ́ %d',
|
|
|
week: {
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return yo;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/zh-cn.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/zh-cn.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Chinese (China) [zh-cn]
|
|
|
//! author : suupic : https://github.com/suupic
|
|
|
//! author : Zeno Zeng : https://github.com/zenozeng
|
|
|
//! author : uu109 : https://github.com/uu109
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var zhCn = moment.defineLocale('zh-cn', {
|
|
|
months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
|
|
|
weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
|
|
|
weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'YYYY/MM/DD',
|
|
|
LL: 'YYYY年M月D日',
|
|
|
LLL: 'YYYY年M月D日Ah点mm分',
|
|
|
LLLL: 'YYYY年M月D日ddddAh点mm分',
|
|
|
l: 'YYYY/M/D',
|
|
|
ll: 'YYYY年M月D日',
|
|
|
lll: 'YYYY年M月D日 HH:mm',
|
|
|
llll: 'YYYY年M月D日dddd HH:mm',
|
|
|
},
|
|
|
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
|
|
|
return hour;
|
|
|
} else if (meridiem === '下午' || meridiem === '晚上') {
|
|
|
return hour + 12;
|
|
|
} else {
|
|
|
// '中午'
|
|
|
return hour >= 11 ? hour : hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
var hm = hour * 100 + minute;
|
|
|
if (hm < 600) {
|
|
|
return '凌晨';
|
|
|
} else if (hm < 900) {
|
|
|
return '早上';
|
|
|
} else if (hm < 1130) {
|
|
|
return '上午';
|
|
|
} else if (hm < 1230) {
|
|
|
return '中午';
|
|
|
} else if (hm < 1800) {
|
|
|
return '下午';
|
|
|
} else {
|
|
|
return '晚上';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[今天]LT',
|
|
|
nextDay: '[明天]LT',
|
|
|
nextWeek: function (now) {
|
|
|
if (now.week() !== this.week()) {
|
|
|
return '[下]dddLT';
|
|
|
} else {
|
|
|
return '[本]dddLT';
|
|
|
}
|
|
|
},
|
|
|
lastDay: '[昨天]LT',
|
|
|
lastWeek: function (now) {
|
|
|
if (this.week() !== now.week()) {
|
|
|
return '[上]dddLT';
|
|
|
} else {
|
|
|
return '[本]dddLT';
|
|
|
}
|
|
|
},
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'd':
|
|
|
case 'D':
|
|
|
case 'DDD':
|
|
|
return number + '日';
|
|
|
case 'M':
|
|
|
return number + '月';
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number + '周';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s后',
|
|
|
past: '%s前',
|
|
|
s: '几秒',
|
|
|
ss: '%d 秒',
|
|
|
m: '1 分钟',
|
|
|
mm: '%d 分钟',
|
|
|
h: '1 小时',
|
|
|
hh: '%d 小时',
|
|
|
d: '1 天',
|
|
|
dd: '%d 天',
|
|
|
w: '1 周',
|
|
|
ww: '%d 周',
|
|
|
M: '1 个月',
|
|
|
MM: '%d 个月',
|
|
|
y: '1 年',
|
|
|
yy: '%d 年',
|
|
|
},
|
|
|
week: {
|
|
|
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
|
|
|
dow: 1, // Monday is the first day of the week.
|
|
|
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return zhCn;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/zh-hk.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/zh-hk.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Chinese (Hong Kong) [zh-hk]
|
|
|
//! author : Ben : https://github.com/ben-lin
|
|
|
//! author : Chris Lam : https://github.com/hehachris
|
|
|
//! author : Konstantin : https://github.com/skfd
|
|
|
//! author : Anthony : https://github.com/anthonylau
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var zhHk = moment.defineLocale('zh-hk', {
|
|
|
months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
|
|
|
weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
|
|
|
weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'YYYY/MM/DD',
|
|
|
LL: 'YYYY年M月D日',
|
|
|
LLL: 'YYYY年M月D日 HH:mm',
|
|
|
LLLL: 'YYYY年M月D日dddd HH:mm',
|
|
|
l: 'YYYY/M/D',
|
|
|
ll: 'YYYY年M月D日',
|
|
|
lll: 'YYYY年M月D日 HH:mm',
|
|
|
llll: 'YYYY年M月D日dddd HH:mm',
|
|
|
},
|
|
|
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
|
|
|
return hour;
|
|
|
} else if (meridiem === '中午') {
|
|
|
return hour >= 11 ? hour : hour + 12;
|
|
|
} else if (meridiem === '下午' || meridiem === '晚上') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
var hm = hour * 100 + minute;
|
|
|
if (hm < 600) {
|
|
|
return '凌晨';
|
|
|
} else if (hm < 900) {
|
|
|
return '早上';
|
|
|
} else if (hm < 1200) {
|
|
|
return '上午';
|
|
|
} else if (hm === 1200) {
|
|
|
return '中午';
|
|
|
} else if (hm < 1800) {
|
|
|
return '下午';
|
|
|
} else {
|
|
|
return '晚上';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[今天]LT',
|
|
|
nextDay: '[明天]LT',
|
|
|
nextWeek: '[下]ddddLT',
|
|
|
lastDay: '[昨天]LT',
|
|
|
lastWeek: '[上]ddddLT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'd':
|
|
|
case 'D':
|
|
|
case 'DDD':
|
|
|
return number + '日';
|
|
|
case 'M':
|
|
|
return number + '月';
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number + '週';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s後',
|
|
|
past: '%s前',
|
|
|
s: '幾秒',
|
|
|
ss: '%d 秒',
|
|
|
m: '1 分鐘',
|
|
|
mm: '%d 分鐘',
|
|
|
h: '1 小時',
|
|
|
hh: '%d 小時',
|
|
|
d: '1 天',
|
|
|
dd: '%d 天',
|
|
|
M: '1 個月',
|
|
|
MM: '%d 個月',
|
|
|
y: '1 年',
|
|
|
yy: '%d 年',
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return zhHk;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/zh-mo.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/zh-mo.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Chinese (Macau) [zh-mo]
|
|
|
//! author : Ben : https://github.com/ben-lin
|
|
|
//! author : Chris Lam : https://github.com/hehachris
|
|
|
//! author : Tan Yuanhong : https://github.com/le0tan
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var zhMo = moment.defineLocale('zh-mo', {
|
|
|
months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
|
|
|
weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
|
|
|
weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'DD/MM/YYYY',
|
|
|
LL: 'YYYY年M月D日',
|
|
|
LLL: 'YYYY年M月D日 HH:mm',
|
|
|
LLLL: 'YYYY年M月D日dddd HH:mm',
|
|
|
l: 'D/M/YYYY',
|
|
|
ll: 'YYYY年M月D日',
|
|
|
lll: 'YYYY年M月D日 HH:mm',
|
|
|
llll: 'YYYY年M月D日dddd HH:mm',
|
|
|
},
|
|
|
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
|
|
|
return hour;
|
|
|
} else if (meridiem === '中午') {
|
|
|
return hour >= 11 ? hour : hour + 12;
|
|
|
} else if (meridiem === '下午' || meridiem === '晚上') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
var hm = hour * 100 + minute;
|
|
|
if (hm < 600) {
|
|
|
return '凌晨';
|
|
|
} else if (hm < 900) {
|
|
|
return '早上';
|
|
|
} else if (hm < 1130) {
|
|
|
return '上午';
|
|
|
} else if (hm < 1230) {
|
|
|
return '中午';
|
|
|
} else if (hm < 1800) {
|
|
|
return '下午';
|
|
|
} else {
|
|
|
return '晚上';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[今天] LT',
|
|
|
nextDay: '[明天] LT',
|
|
|
nextWeek: '[下]dddd LT',
|
|
|
lastDay: '[昨天] LT',
|
|
|
lastWeek: '[上]dddd LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'd':
|
|
|
case 'D':
|
|
|
case 'DDD':
|
|
|
return number + '日';
|
|
|
case 'M':
|
|
|
return number + '月';
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number + '週';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s內',
|
|
|
past: '%s前',
|
|
|
s: '幾秒',
|
|
|
ss: '%d 秒',
|
|
|
m: '1 分鐘',
|
|
|
mm: '%d 分鐘',
|
|
|
h: '1 小時',
|
|
|
hh: '%d 小時',
|
|
|
d: '1 天',
|
|
|
dd: '%d 天',
|
|
|
M: '1 個月',
|
|
|
MM: '%d 個月',
|
|
|
y: '1 年',
|
|
|
yy: '%d 年',
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return zhMo;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/locale/zh-tw.js":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./node_modules/moment/locale/zh-tw.js ***!
|
|
|
\*********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
//! locale : Chinese (Taiwan) [zh-tw]
|
|
|
//! author : Ben : https://github.com/ben-lin
|
|
|
//! author : Chris Lam : https://github.com/hehachris
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) :
|
|
|
undefined
|
|
|
}(this, (function (moment) { 'use strict';
|
|
|
|
|
|
//! moment.js locale configuration
|
|
|
|
|
|
var zhTw = moment.defineLocale('zh-tw', {
|
|
|
months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
|
|
|
'_'
|
|
|
),
|
|
|
monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
|
|
|
'_'
|
|
|
),
|
|
|
weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
|
|
|
weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
|
|
|
weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
|
|
|
longDateFormat: {
|
|
|
LT: 'HH:mm',
|
|
|
LTS: 'HH:mm:ss',
|
|
|
L: 'YYYY/MM/DD',
|
|
|
LL: 'YYYY年M月D日',
|
|
|
LLL: 'YYYY年M月D日 HH:mm',
|
|
|
LLLL: 'YYYY年M月D日dddd HH:mm',
|
|
|
l: 'YYYY/M/D',
|
|
|
ll: 'YYYY年M月D日',
|
|
|
lll: 'YYYY年M月D日 HH:mm',
|
|
|
llll: 'YYYY年M月D日dddd HH:mm',
|
|
|
},
|
|
|
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
|
|
|
meridiemHour: function (hour, meridiem) {
|
|
|
if (hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
|
|
|
return hour;
|
|
|
} else if (meridiem === '中午') {
|
|
|
return hour >= 11 ? hour : hour + 12;
|
|
|
} else if (meridiem === '下午' || meridiem === '晚上') {
|
|
|
return hour + 12;
|
|
|
}
|
|
|
},
|
|
|
meridiem: function (hour, minute, isLower) {
|
|
|
var hm = hour * 100 + minute;
|
|
|
if (hm < 600) {
|
|
|
return '凌晨';
|
|
|
} else if (hm < 900) {
|
|
|
return '早上';
|
|
|
} else if (hm < 1130) {
|
|
|
return '上午';
|
|
|
} else if (hm < 1230) {
|
|
|
return '中午';
|
|
|
} else if (hm < 1800) {
|
|
|
return '下午';
|
|
|
} else {
|
|
|
return '晚上';
|
|
|
}
|
|
|
},
|
|
|
calendar: {
|
|
|
sameDay: '[今天] LT',
|
|
|
nextDay: '[明天] LT',
|
|
|
nextWeek: '[下]dddd LT',
|
|
|
lastDay: '[昨天] LT',
|
|
|
lastWeek: '[上]dddd LT',
|
|
|
sameElse: 'L',
|
|
|
},
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
|
|
|
ordinal: function (number, period) {
|
|
|
switch (period) {
|
|
|
case 'd':
|
|
|
case 'D':
|
|
|
case 'DDD':
|
|
|
return number + '日';
|
|
|
case 'M':
|
|
|
return number + '月';
|
|
|
case 'w':
|
|
|
case 'W':
|
|
|
return number + '週';
|
|
|
default:
|
|
|
return number;
|
|
|
}
|
|
|
},
|
|
|
relativeTime: {
|
|
|
future: '%s後',
|
|
|
past: '%s前',
|
|
|
s: '幾秒',
|
|
|
ss: '%d 秒',
|
|
|
m: '1 分鐘',
|
|
|
mm: '%d 分鐘',
|
|
|
h: '1 小時',
|
|
|
hh: '%d 小時',
|
|
|
d: '1 天',
|
|
|
dd: '%d 天',
|
|
|
M: '1 個月',
|
|
|
MM: '%d 個月',
|
|
|
y: '1 年',
|
|
|
yy: '%d 年',
|
|
|
},
|
|
|
});
|
|
|
|
|
|
return zhTw;
|
|
|
|
|
|
})));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/moment/moment.js":
|
|
|
/*!***************************************!*\
|
|
|
!*** ./node_modules/moment/moment.js ***!
|
|
|
\***************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js
|
|
|
//! version : 2.29.1
|
|
|
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
|
|
|
//! license : MIT
|
|
|
//! momentjs.com
|
|
|
|
|
|
;(function (global, factory) {
|
|
|
true ? module.exports = factory() :
|
|
|
undefined
|
|
|
}(this, (function () { 'use strict';
|
|
|
|
|
|
var hookCallback;
|
|
|
|
|
|
function hooks() {
|
|
|
return hookCallback.apply(null, arguments);
|
|
|
}
|
|
|
|
|
|
// This is done to register the method called with moment()
|
|
|
// without creating circular dependencies.
|
|
|
function setHookCallback(callback) {
|
|
|
hookCallback = callback;
|
|
|
}
|
|
|
|
|
|
function isArray(input) {
|
|
|
return (
|
|
|
input instanceof Array ||
|
|
|
Object.prototype.toString.call(input) === '[object Array]'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function isObject(input) {
|
|
|
// IE8 will treat undefined and null as object if it wasn't for
|
|
|
// input != null
|
|
|
return (
|
|
|
input != null &&
|
|
|
Object.prototype.toString.call(input) === '[object Object]'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function hasOwnProp(a, b) {
|
|
|
return Object.prototype.hasOwnProperty.call(a, b);
|
|
|
}
|
|
|
|
|
|
function isObjectEmpty(obj) {
|
|
|
if (Object.getOwnPropertyNames) {
|
|
|
return Object.getOwnPropertyNames(obj).length === 0;
|
|
|
} else {
|
|
|
var k;
|
|
|
for (k in obj) {
|
|
|
if (hasOwnProp(obj, k)) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function isUndefined(input) {
|
|
|
return input === void 0;
|
|
|
}
|
|
|
|
|
|
function isNumber(input) {
|
|
|
return (
|
|
|
typeof input === 'number' ||
|
|
|
Object.prototype.toString.call(input) === '[object Number]'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function isDate(input) {
|
|
|
return (
|
|
|
input instanceof Date ||
|
|
|
Object.prototype.toString.call(input) === '[object Date]'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function map(arr, fn) {
|
|
|
var res = [],
|
|
|
i;
|
|
|
for (i = 0; i < arr.length; ++i) {
|
|
|
res.push(fn(arr[i], i));
|
|
|
}
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
function extend(a, b) {
|
|
|
for (var i in b) {
|
|
|
if (hasOwnProp(b, i)) {
|
|
|
a[i] = b[i];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (hasOwnProp(b, 'toString')) {
|
|
|
a.toString = b.toString;
|
|
|
}
|
|
|
|
|
|
if (hasOwnProp(b, 'valueOf')) {
|
|
|
a.valueOf = b.valueOf;
|
|
|
}
|
|
|
|
|
|
return a;
|
|
|
}
|
|
|
|
|
|
function createUTC(input, format, locale, strict) {
|
|
|
return createLocalOrUTC(input, format, locale, strict, true).utc();
|
|
|
}
|
|
|
|
|
|
function defaultParsingFlags() {
|
|
|
// We need to deep clone this object.
|
|
|
return {
|
|
|
empty: false,
|
|
|
unusedTokens: [],
|
|
|
unusedInput: [],
|
|
|
overflow: -2,
|
|
|
charsLeftOver: 0,
|
|
|
nullInput: false,
|
|
|
invalidEra: null,
|
|
|
invalidMonth: null,
|
|
|
invalidFormat: false,
|
|
|
userInvalidated: false,
|
|
|
iso: false,
|
|
|
parsedDateParts: [],
|
|
|
era: null,
|
|
|
meridiem: null,
|
|
|
rfc2822: false,
|
|
|
weekdayMismatch: false,
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function getParsingFlags(m) {
|
|
|
if (m._pf == null) {
|
|
|
m._pf = defaultParsingFlags();
|
|
|
}
|
|
|
return m._pf;
|
|
|
}
|
|
|
|
|
|
var some;
|
|
|
if (Array.prototype.some) {
|
|
|
some = Array.prototype.some;
|
|
|
} else {
|
|
|
some = function (fun) {
|
|
|
var t = Object(this),
|
|
|
len = t.length >>> 0,
|
|
|
i;
|
|
|
|
|
|
for (i = 0; i < len; i++) {
|
|
|
if (i in t && fun.call(this, t[i], i, t)) {
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function isValid(m) {
|
|
|
if (m._isValid == null) {
|
|
|
var flags = getParsingFlags(m),
|
|
|
parsedParts = some.call(flags.parsedDateParts, function (i) {
|
|
|
return i != null;
|
|
|
}),
|
|
|
isNowValid =
|
|
|
!isNaN(m._d.getTime()) &&
|
|
|
flags.overflow < 0 &&
|
|
|
!flags.empty &&
|
|
|
!flags.invalidEra &&
|
|
|
!flags.invalidMonth &&
|
|
|
!flags.invalidWeekday &&
|
|
|
!flags.weekdayMismatch &&
|
|
|
!flags.nullInput &&
|
|
|
!flags.invalidFormat &&
|
|
|
!flags.userInvalidated &&
|
|
|
(!flags.meridiem || (flags.meridiem && parsedParts));
|
|
|
|
|
|
if (m._strict) {
|
|
|
isNowValid =
|
|
|
isNowValid &&
|
|
|
flags.charsLeftOver === 0 &&
|
|
|
flags.unusedTokens.length === 0 &&
|
|
|
flags.bigHour === undefined;
|
|
|
}
|
|
|
|
|
|
if (Object.isFrozen == null || !Object.isFrozen(m)) {
|
|
|
m._isValid = isNowValid;
|
|
|
} else {
|
|
|
return isNowValid;
|
|
|
}
|
|
|
}
|
|
|
return m._isValid;
|
|
|
}
|
|
|
|
|
|
function createInvalid(flags) {
|
|
|
var m = createUTC(NaN);
|
|
|
if (flags != null) {
|
|
|
extend(getParsingFlags(m), flags);
|
|
|
} else {
|
|
|
getParsingFlags(m).userInvalidated = true;
|
|
|
}
|
|
|
|
|
|
return m;
|
|
|
}
|
|
|
|
|
|
// Plugins that add properties should also add the key here (null value),
|
|
|
// so we can properly clone ourselves.
|
|
|
var momentProperties = (hooks.momentProperties = []),
|
|
|
updateInProgress = false;
|
|
|
|
|
|
function copyConfig(to, from) {
|
|
|
var i, prop, val;
|
|
|
|
|
|
if (!isUndefined(from._isAMomentObject)) {
|
|
|
to._isAMomentObject = from._isAMomentObject;
|
|
|
}
|
|
|
if (!isUndefined(from._i)) {
|
|
|
to._i = from._i;
|
|
|
}
|
|
|
if (!isUndefined(from._f)) {
|
|
|
to._f = from._f;
|
|
|
}
|
|
|
if (!isUndefined(from._l)) {
|
|
|
to._l = from._l;
|
|
|
}
|
|
|
if (!isUndefined(from._strict)) {
|
|
|
to._strict = from._strict;
|
|
|
}
|
|
|
if (!isUndefined(from._tzm)) {
|
|
|
to._tzm = from._tzm;
|
|
|
}
|
|
|
if (!isUndefined(from._isUTC)) {
|
|
|
to._isUTC = from._isUTC;
|
|
|
}
|
|
|
if (!isUndefined(from._offset)) {
|
|
|
to._offset = from._offset;
|
|
|
}
|
|
|
if (!isUndefined(from._pf)) {
|
|
|
to._pf = getParsingFlags(from);
|
|
|
}
|
|
|
if (!isUndefined(from._locale)) {
|
|
|
to._locale = from._locale;
|
|
|
}
|
|
|
|
|
|
if (momentProperties.length > 0) {
|
|
|
for (i = 0; i < momentProperties.length; i++) {
|
|
|
prop = momentProperties[i];
|
|
|
val = from[prop];
|
|
|
if (!isUndefined(val)) {
|
|
|
to[prop] = val;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return to;
|
|
|
}
|
|
|
|
|
|
// Moment prototype object
|
|
|
function Moment(config) {
|
|
|
copyConfig(this, config);
|
|
|
this._d = new Date(config._d != null ? config._d.getTime() : NaN);
|
|
|
if (!this.isValid()) {
|
|
|
this._d = new Date(NaN);
|
|
|
}
|
|
|
// Prevent infinite loop in case updateOffset creates new moment
|
|
|
// objects.
|
|
|
if (updateInProgress === false) {
|
|
|
updateInProgress = true;
|
|
|
hooks.updateOffset(this);
|
|
|
updateInProgress = false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function isMoment(obj) {
|
|
|
return (
|
|
|
obj instanceof Moment || (obj != null && obj._isAMomentObject != null)
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function warn(msg) {
|
|
|
if (
|
|
|
hooks.suppressDeprecationWarnings === false &&
|
|
|
typeof console !== 'undefined' &&
|
|
|
console.warn
|
|
|
) {
|
|
|
console.warn('Deprecation warning: ' + msg);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function deprecate(msg, fn) {
|
|
|
var firstTime = true;
|
|
|
|
|
|
return extend(function () {
|
|
|
if (hooks.deprecationHandler != null) {
|
|
|
hooks.deprecationHandler(null, msg);
|
|
|
}
|
|
|
if (firstTime) {
|
|
|
var args = [],
|
|
|
arg,
|
|
|
i,
|
|
|
key;
|
|
|
for (i = 0; i < arguments.length; i++) {
|
|
|
arg = '';
|
|
|
if (typeof arguments[i] === 'object') {
|
|
|
arg += '\n[' + i + '] ';
|
|
|
for (key in arguments[0]) {
|
|
|
if (hasOwnProp(arguments[0], key)) {
|
|
|
arg += key + ': ' + arguments[0][key] + ', ';
|
|
|
}
|
|
|
}
|
|
|
arg = arg.slice(0, -2); // Remove trailing comma and space
|
|
|
} else {
|
|
|
arg = arguments[i];
|
|
|
}
|
|
|
args.push(arg);
|
|
|
}
|
|
|
warn(
|
|
|
msg +
|
|
|
'\nArguments: ' +
|
|
|
Array.prototype.slice.call(args).join('') +
|
|
|
'\n' +
|
|
|
new Error().stack
|
|
|
);
|
|
|
firstTime = false;
|
|
|
}
|
|
|
return fn.apply(this, arguments);
|
|
|
}, fn);
|
|
|
}
|
|
|
|
|
|
var deprecations = {};
|
|
|
|
|
|
function deprecateSimple(name, msg) {
|
|
|
if (hooks.deprecationHandler != null) {
|
|
|
hooks.deprecationHandler(name, msg);
|
|
|
}
|
|
|
if (!deprecations[name]) {
|
|
|
warn(msg);
|
|
|
deprecations[name] = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
hooks.suppressDeprecationWarnings = false;
|
|
|
hooks.deprecationHandler = null;
|
|
|
|
|
|
function isFunction(input) {
|
|
|
return (
|
|
|
(typeof Function !== 'undefined' && input instanceof Function) ||
|
|
|
Object.prototype.toString.call(input) === '[object Function]'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function set(config) {
|
|
|
var prop, i;
|
|
|
for (i in config) {
|
|
|
if (hasOwnProp(config, i)) {
|
|
|
prop = config[i];
|
|
|
if (isFunction(prop)) {
|
|
|
this[i] = prop;
|
|
|
} else {
|
|
|
this['_' + i] = prop;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
this._config = config;
|
|
|
// Lenient ordinal parsing accepts just a number in addition to
|
|
|
// number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
|
|
|
// TODO: Remove "ordinalParse" fallback in next major release.
|
|
|
this._dayOfMonthOrdinalParseLenient = new RegExp(
|
|
|
(this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
|
|
|
'|' +
|
|
|
/\d{1,2}/.source
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function mergeConfigs(parentConfig, childConfig) {
|
|
|
var res = extend({}, parentConfig),
|
|
|
prop;
|
|
|
for (prop in childConfig) {
|
|
|
if (hasOwnProp(childConfig, prop)) {
|
|
|
if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
|
|
|
res[prop] = {};
|
|
|
extend(res[prop], parentConfig[prop]);
|
|
|
extend(res[prop], childConfig[prop]);
|
|
|
} else if (childConfig[prop] != null) {
|
|
|
res[prop] = childConfig[prop];
|
|
|
} else {
|
|
|
delete res[prop];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
for (prop in parentConfig) {
|
|
|
if (
|
|
|
hasOwnProp(parentConfig, prop) &&
|
|
|
!hasOwnProp(childConfig, prop) &&
|
|
|
isObject(parentConfig[prop])
|
|
|
) {
|
|
|
// make sure changes to properties don't modify parent config
|
|
|
res[prop] = extend({}, res[prop]);
|
|
|
}
|
|
|
}
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
function Locale(config) {
|
|
|
if (config != null) {
|
|
|
this.set(config);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var keys;
|
|
|
|
|
|
if (Object.keys) {
|
|
|
keys = Object.keys;
|
|
|
} else {
|
|
|
keys = function (obj) {
|
|
|
var i,
|
|
|
res = [];
|
|
|
for (i in obj) {
|
|
|
if (hasOwnProp(obj, i)) {
|
|
|
res.push(i);
|
|
|
}
|
|
|
}
|
|
|
return res;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
var defaultCalendar = {
|
|
|
sameDay: '[Today at] LT',
|
|
|
nextDay: '[Tomorrow at] LT',
|
|
|
nextWeek: 'dddd [at] LT',
|
|
|
lastDay: '[Yesterday at] LT',
|
|
|
lastWeek: '[Last] dddd [at] LT',
|
|
|
sameElse: 'L',
|
|
|
};
|
|
|
|
|
|
function calendar(key, mom, now) {
|
|
|
var output = this._calendar[key] || this._calendar['sameElse'];
|
|
|
return isFunction(output) ? output.call(mom, now) : output;
|
|
|
}
|
|
|
|
|
|
function zeroFill(number, targetLength, forceSign) {
|
|
|
var absNumber = '' + Math.abs(number),
|
|
|
zerosToFill = targetLength - absNumber.length,
|
|
|
sign = number >= 0;
|
|
|
return (
|
|
|
(sign ? (forceSign ? '+' : '') : '-') +
|
|
|
Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +
|
|
|
absNumber
|
|
|
);
|
|
|
}
|
|
|
|
|
|
var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
|
|
|
localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
|
|
|
formatFunctions = {},
|
|
|
formatTokenFunctions = {};
|
|
|
|
|
|
// token: 'M'
|
|
|
// padded: ['MM', 2]
|
|
|
// ordinal: 'Mo'
|
|
|
// callback: function () { this.month() + 1 }
|
|
|
function addFormatToken(token, padded, ordinal, callback) {
|
|
|
var func = callback;
|
|
|
if (typeof callback === 'string') {
|
|
|
func = function () {
|
|
|
return this[callback]();
|
|
|
};
|
|
|
}
|
|
|
if (token) {
|
|
|
formatTokenFunctions[token] = func;
|
|
|
}
|
|
|
if (padded) {
|
|
|
formatTokenFunctions[padded[0]] = function () {
|
|
|
return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
|
|
|
};
|
|
|
}
|
|
|
if (ordinal) {
|
|
|
formatTokenFunctions[ordinal] = function () {
|
|
|
return this.localeData().ordinal(
|
|
|
func.apply(this, arguments),
|
|
|
token
|
|
|
);
|
|
|
};
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function removeFormattingTokens(input) {
|
|
|
if (input.match(/\[[\s\S]/)) {
|
|
|
return input.replace(/^\[|\]$/g, '');
|
|
|
}
|
|
|
return input.replace(/\\/g, '');
|
|
|
}
|
|
|
|
|
|
function makeFormatFunction(format) {
|
|
|
var array = format.match(formattingTokens),
|
|
|
i,
|
|
|
length;
|
|
|
|
|
|
for (i = 0, length = array.length; i < length; i++) {
|
|
|
if (formatTokenFunctions[array[i]]) {
|
|
|
array[i] = formatTokenFunctions[array[i]];
|
|
|
} else {
|
|
|
array[i] = removeFormattingTokens(array[i]);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return function (mom) {
|
|
|
var output = '',
|
|
|
i;
|
|
|
for (i = 0; i < length; i++) {
|
|
|
output += isFunction(array[i])
|
|
|
? array[i].call(mom, format)
|
|
|
: array[i];
|
|
|
}
|
|
|
return output;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
// format date using native date object
|
|
|
function formatMoment(m, format) {
|
|
|
if (!m.isValid()) {
|
|
|
return m.localeData().invalidDate();
|
|
|
}
|
|
|
|
|
|
format = expandFormat(format, m.localeData());
|
|
|
formatFunctions[format] =
|
|
|
formatFunctions[format] || makeFormatFunction(format);
|
|
|
|
|
|
return formatFunctions[format](m);
|
|
|
}
|
|
|
|
|
|
function expandFormat(format, locale) {
|
|
|
var i = 5;
|
|
|
|
|
|
function replaceLongDateFormatTokens(input) {
|
|
|
return locale.longDateFormat(input) || input;
|
|
|
}
|
|
|
|
|
|
localFormattingTokens.lastIndex = 0;
|
|
|
while (i >= 0 && localFormattingTokens.test(format)) {
|
|
|
format = format.replace(
|
|
|
localFormattingTokens,
|
|
|
replaceLongDateFormatTokens
|
|
|
);
|
|
|
localFormattingTokens.lastIndex = 0;
|
|
|
i -= 1;
|
|
|
}
|
|
|
|
|
|
return format;
|
|
|
}
|
|
|
|
|
|
var defaultLongDateFormat = {
|
|
|
LTS: 'h:mm:ss A',
|
|
|
LT: 'h:mm A',
|
|
|
L: 'MM/DD/YYYY',
|
|
|
LL: 'MMMM D, YYYY',
|
|
|
LLL: 'MMMM D, YYYY h:mm A',
|
|
|
LLLL: 'dddd, MMMM D, YYYY h:mm A',
|
|
|
};
|
|
|
|
|
|
function longDateFormat(key) {
|
|
|
var format = this._longDateFormat[key],
|
|
|
formatUpper = this._longDateFormat[key.toUpperCase()];
|
|
|
|
|
|
if (format || !formatUpper) {
|
|
|
return format;
|
|
|
}
|
|
|
|
|
|
this._longDateFormat[key] = formatUpper
|
|
|
.match(formattingTokens)
|
|
|
.map(function (tok) {
|
|
|
if (
|
|
|
tok === 'MMMM' ||
|
|
|
tok === 'MM' ||
|
|
|
tok === 'DD' ||
|
|
|
tok === 'dddd'
|
|
|
) {
|
|
|
return tok.slice(1);
|
|
|
}
|
|
|
return tok;
|
|
|
})
|
|
|
.join('');
|
|
|
|
|
|
return this._longDateFormat[key];
|
|
|
}
|
|
|
|
|
|
var defaultInvalidDate = 'Invalid date';
|
|
|
|
|
|
function invalidDate() {
|
|
|
return this._invalidDate;
|
|
|
}
|
|
|
|
|
|
var defaultOrdinal = '%d',
|
|
|
defaultDayOfMonthOrdinalParse = /\d{1,2}/;
|
|
|
|
|
|
function ordinal(number) {
|
|
|
return this._ordinal.replace('%d', number);
|
|
|
}
|
|
|
|
|
|
var defaultRelativeTime = {
|
|
|
future: 'in %s',
|
|
|
past: '%s ago',
|
|
|
s: 'a few seconds',
|
|
|
ss: '%d seconds',
|
|
|
m: 'a minute',
|
|
|
mm: '%d minutes',
|
|
|
h: 'an hour',
|
|
|
hh: '%d hours',
|
|
|
d: 'a day',
|
|
|
dd: '%d days',
|
|
|
w: 'a week',
|
|
|
ww: '%d weeks',
|
|
|
M: 'a month',
|
|
|
MM: '%d months',
|
|
|
y: 'a year',
|
|
|
yy: '%d years',
|
|
|
};
|
|
|
|
|
|
function relativeTime(number, withoutSuffix, string, isFuture) {
|
|
|
var output = this._relativeTime[string];
|
|
|
return isFunction(output)
|
|
|
? output(number, withoutSuffix, string, isFuture)
|
|
|
: output.replace(/%d/i, number);
|
|
|
}
|
|
|
|
|
|
function pastFuture(diff, output) {
|
|
|
var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
|
|
|
return isFunction(format) ? format(output) : format.replace(/%s/i, output);
|
|
|
}
|
|
|
|
|
|
var aliases = {};
|
|
|
|
|
|
function addUnitAlias(unit, shorthand) {
|
|
|
var lowerCase = unit.toLowerCase();
|
|
|
aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
|
|
|
}
|
|
|
|
|
|
function normalizeUnits(units) {
|
|
|
return typeof units === 'string'
|
|
|
? aliases[units] || aliases[units.toLowerCase()]
|
|
|
: undefined;
|
|
|
}
|
|
|
|
|
|
function normalizeObjectUnits(inputObject) {
|
|
|
var normalizedInput = {},
|
|
|
normalizedProp,
|
|
|
prop;
|
|
|
|
|
|
for (prop in inputObject) {
|
|
|
if (hasOwnProp(inputObject, prop)) {
|
|
|
normalizedProp = normalizeUnits(prop);
|
|
|
if (normalizedProp) {
|
|
|
normalizedInput[normalizedProp] = inputObject[prop];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return normalizedInput;
|
|
|
}
|
|
|
|
|
|
var priorities = {};
|
|
|
|
|
|
function addUnitPriority(unit, priority) {
|
|
|
priorities[unit] = priority;
|
|
|
}
|
|
|
|
|
|
function getPrioritizedUnits(unitsObj) {
|
|
|
var units = [],
|
|
|
u;
|
|
|
for (u in unitsObj) {
|
|
|
if (hasOwnProp(unitsObj, u)) {
|
|
|
units.push({ unit: u, priority: priorities[u] });
|
|
|
}
|
|
|
}
|
|
|
units.sort(function (a, b) {
|
|
|
return a.priority - b.priority;
|
|
|
});
|
|
|
return units;
|
|
|
}
|
|
|
|
|
|
function isLeapYear(year) {
|
|
|
return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
|
|
|
}
|
|
|
|
|
|
function absFloor(number) {
|
|
|
if (number < 0) {
|
|
|
// -0 -> 0
|
|
|
return Math.ceil(number) || 0;
|
|
|
} else {
|
|
|
return Math.floor(number);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function toInt(argumentForCoercion) {
|
|
|
var coercedNumber = +argumentForCoercion,
|
|
|
value = 0;
|
|
|
|
|
|
if (coercedNumber !== 0 && isFinite(coercedNumber)) {
|
|
|
value = absFloor(coercedNumber);
|
|
|
}
|
|
|
|
|
|
return value;
|
|
|
}
|
|
|
|
|
|
function makeGetSet(unit, keepTime) {
|
|
|
return function (value) {
|
|
|
if (value != null) {
|
|
|
set$1(this, unit, value);
|
|
|
hooks.updateOffset(this, keepTime);
|
|
|
return this;
|
|
|
} else {
|
|
|
return get(this, unit);
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function get(mom, unit) {
|
|
|
return mom.isValid()
|
|
|
? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()
|
|
|
: NaN;
|
|
|
}
|
|
|
|
|
|
function set$1(mom, unit, value) {
|
|
|
if (mom.isValid() && !isNaN(value)) {
|
|
|
if (
|
|
|
unit === 'FullYear' &&
|
|
|
isLeapYear(mom.year()) &&
|
|
|
mom.month() === 1 &&
|
|
|
mom.date() === 29
|
|
|
) {
|
|
|
value = toInt(value);
|
|
|
mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](
|
|
|
value,
|
|
|
mom.month(),
|
|
|
daysInMonth(value, mom.month())
|
|
|
);
|
|
|
} else {
|
|
|
mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
function stringGet(units) {
|
|
|
units = normalizeUnits(units);
|
|
|
if (isFunction(this[units])) {
|
|
|
return this[units]();
|
|
|
}
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
function stringSet(units, value) {
|
|
|
if (typeof units === 'object') {
|
|
|
units = normalizeObjectUnits(units);
|
|
|
var prioritized = getPrioritizedUnits(units),
|
|
|
i;
|
|
|
for (i = 0; i < prioritized.length; i++) {
|
|
|
this[prioritized[i].unit](units[prioritized[i].unit]);
|
|
|
}
|
|
|
} else {
|
|
|
units = normalizeUnits(units);
|
|
|
if (isFunction(this[units])) {
|
|
|
return this[units](value);
|
|
|
}
|
|
|
}
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
var match1 = /\d/, // 0 - 9
|
|
|
match2 = /\d\d/, // 00 - 99
|
|
|
match3 = /\d{3}/, // 000 - 999
|
|
|
match4 = /\d{4}/, // 0000 - 9999
|
|
|
match6 = /[+-]?\d{6}/, // -999999 - 999999
|
|
|
match1to2 = /\d\d?/, // 0 - 99
|
|
|
match3to4 = /\d\d\d\d?/, // 999 - 9999
|
|
|
match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999
|
|
|
match1to3 = /\d{1,3}/, // 0 - 999
|
|
|
match1to4 = /\d{1,4}/, // 0 - 9999
|
|
|
match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999
|
|
|
matchUnsigned = /\d+/, // 0 - inf
|
|
|
matchSigned = /[+-]?\d+/, // -inf - inf
|
|
|
matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
|
|
|
matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z
|
|
|
matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
|
|
|
// any word (or two) characters or numbers including two/three word month in arabic.
|
|
|
// includes scottish gaelic two word and hyphenated months
|
|
|
matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,
|
|
|
regexes;
|
|
|
|
|
|
regexes = {};
|
|
|
|
|
|
function addRegexToken(token, regex, strictRegex) {
|
|
|
regexes[token] = isFunction(regex)
|
|
|
? regex
|
|
|
: function (isStrict, localeData) {
|
|
|
return isStrict && strictRegex ? strictRegex : regex;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function getParseRegexForToken(token, config) {
|
|
|
if (!hasOwnProp(regexes, token)) {
|
|
|
return new RegExp(unescapeFormat(token));
|
|
|
}
|
|
|
|
|
|
return regexes[token](config._strict, config._locale);
|
|
|
}
|
|
|
|
|
|
// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
|
|
|
function unescapeFormat(s) {
|
|
|
return regexEscape(
|
|
|
s
|
|
|
.replace('\\', '')
|
|
|
.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (
|
|
|
matched,
|
|
|
p1,
|
|
|
p2,
|
|
|
p3,
|
|
|
p4
|
|
|
) {
|
|
|
return p1 || p2 || p3 || p4;
|
|
|
})
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function regexEscape(s) {
|
|
|
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
|
}
|
|
|
|
|
|
var tokens = {};
|
|
|
|
|
|
function addParseToken(token, callback) {
|
|
|
var i,
|
|
|
func = callback;
|
|
|
if (typeof token === 'string') {
|
|
|
token = [token];
|
|
|
}
|
|
|
if (isNumber(callback)) {
|
|
|
func = function (input, array) {
|
|
|
array[callback] = toInt(input);
|
|
|
};
|
|
|
}
|
|
|
for (i = 0; i < token.length; i++) {
|
|
|
tokens[token[i]] = func;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function addWeekParseToken(token, callback) {
|
|
|
addParseToken(token, function (input, array, config, token) {
|
|
|
config._w = config._w || {};
|
|
|
callback(input, config._w, config, token);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function addTimeToArrayFromToken(token, input, config) {
|
|
|
if (input != null && hasOwnProp(tokens, token)) {
|
|
|
tokens[token](input, config._a, config, token);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var YEAR = 0,
|
|
|
MONTH = 1,
|
|
|
DATE = 2,
|
|
|
HOUR = 3,
|
|
|
MINUTE = 4,
|
|
|
SECOND = 5,
|
|
|
MILLISECOND = 6,
|
|
|
WEEK = 7,
|
|
|
WEEKDAY = 8;
|
|
|
|
|
|
function mod(n, x) {
|
|
|
return ((n % x) + x) % x;
|
|
|
}
|
|
|
|
|
|
var indexOf;
|
|
|
|
|
|
if (Array.prototype.indexOf) {
|
|
|
indexOf = Array.prototype.indexOf;
|
|
|
} else {
|
|
|
indexOf = function (o) {
|
|
|
// I know
|
|
|
var i;
|
|
|
for (i = 0; i < this.length; ++i) {
|
|
|
if (this[i] === o) {
|
|
|
return i;
|
|
|
}
|
|
|
}
|
|
|
return -1;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function daysInMonth(year, month) {
|
|
|
if (isNaN(year) || isNaN(month)) {
|
|
|
return NaN;
|
|
|
}
|
|
|
var modMonth = mod(month, 12);
|
|
|
year += (month - modMonth) / 12;
|
|
|
return modMonth === 1
|
|
|
? isLeapYear(year)
|
|
|
? 29
|
|
|
: 28
|
|
|
: 31 - ((modMonth % 7) % 2);
|
|
|
}
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('M', ['MM', 2], 'Mo', function () {
|
|
|
return this.month() + 1;
|
|
|
});
|
|
|
|
|
|
addFormatToken('MMM', 0, 0, function (format) {
|
|
|
return this.localeData().monthsShort(this, format);
|
|
|
});
|
|
|
|
|
|
addFormatToken('MMMM', 0, 0, function (format) {
|
|
|
return this.localeData().months(this, format);
|
|
|
});
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('month', 'M');
|
|
|
|
|
|
// PRIORITY
|
|
|
|
|
|
addUnitPriority('month', 8);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('M', match1to2);
|
|
|
addRegexToken('MM', match1to2, match2);
|
|
|
addRegexToken('MMM', function (isStrict, locale) {
|
|
|
return locale.monthsShortRegex(isStrict);
|
|
|
});
|
|
|
addRegexToken('MMMM', function (isStrict, locale) {
|
|
|
return locale.monthsRegex(isStrict);
|
|
|
});
|
|
|
|
|
|
addParseToken(['M', 'MM'], function (input, array) {
|
|
|
array[MONTH] = toInt(input) - 1;
|
|
|
});
|
|
|
|
|
|
addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
|
|
|
var month = config._locale.monthsParse(input, token, config._strict);
|
|
|
// if we didn't find a month name, mark the date as invalid.
|
|
|
if (month != null) {
|
|
|
array[MONTH] = month;
|
|
|
} else {
|
|
|
getParsingFlags(config).invalidMonth = input;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// LOCALES
|
|
|
|
|
|
var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
|
|
|
'_'
|
|
|
),
|
|
|
defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
|
|
|
'_'
|
|
|
),
|
|
|
MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
|
|
|
defaultMonthsShortRegex = matchWord,
|
|
|
defaultMonthsRegex = matchWord;
|
|
|
|
|
|
function localeMonths(m, format) {
|
|
|
if (!m) {
|
|
|
return isArray(this._months)
|
|
|
? this._months
|
|
|
: this._months['standalone'];
|
|
|
}
|
|
|
return isArray(this._months)
|
|
|
? this._months[m.month()]
|
|
|
: this._months[
|
|
|
(this._months.isFormat || MONTHS_IN_FORMAT).test(format)
|
|
|
? 'format'
|
|
|
: 'standalone'
|
|
|
][m.month()];
|
|
|
}
|
|
|
|
|
|
function localeMonthsShort(m, format) {
|
|
|
if (!m) {
|
|
|
return isArray(this._monthsShort)
|
|
|
? this._monthsShort
|
|
|
: this._monthsShort['standalone'];
|
|
|
}
|
|
|
return isArray(this._monthsShort)
|
|
|
? this._monthsShort[m.month()]
|
|
|
: this._monthsShort[
|
|
|
MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'
|
|
|
][m.month()];
|
|
|
}
|
|
|
|
|
|
function handleStrictParse(monthName, format, strict) {
|
|
|
var i,
|
|
|
ii,
|
|
|
mom,
|
|
|
llc = monthName.toLocaleLowerCase();
|
|
|
if (!this._monthsParse) {
|
|
|
// this is not used
|
|
|
this._monthsParse = [];
|
|
|
this._longMonthsParse = [];
|
|
|
this._shortMonthsParse = [];
|
|
|
for (i = 0; i < 12; ++i) {
|
|
|
mom = createUTC([2000, i]);
|
|
|
this._shortMonthsParse[i] = this.monthsShort(
|
|
|
mom,
|
|
|
''
|
|
|
).toLocaleLowerCase();
|
|
|
this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (strict) {
|
|
|
if (format === 'MMM') {
|
|
|
ii = indexOf.call(this._shortMonthsParse, llc);
|
|
|
return ii !== -1 ? ii : null;
|
|
|
} else {
|
|
|
ii = indexOf.call(this._longMonthsParse, llc);
|
|
|
return ii !== -1 ? ii : null;
|
|
|
}
|
|
|
} else {
|
|
|
if (format === 'MMM') {
|
|
|
ii = indexOf.call(this._shortMonthsParse, llc);
|
|
|
if (ii !== -1) {
|
|
|
return ii;
|
|
|
}
|
|
|
ii = indexOf.call(this._longMonthsParse, llc);
|
|
|
return ii !== -1 ? ii : null;
|
|
|
} else {
|
|
|
ii = indexOf.call(this._longMonthsParse, llc);
|
|
|
if (ii !== -1) {
|
|
|
return ii;
|
|
|
}
|
|
|
ii = indexOf.call(this._shortMonthsParse, llc);
|
|
|
return ii !== -1 ? ii : null;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function localeMonthsParse(monthName, format, strict) {
|
|
|
var i, mom, regex;
|
|
|
|
|
|
if (this._monthsParseExact) {
|
|
|
return handleStrictParse.call(this, monthName, format, strict);
|
|
|
}
|
|
|
|
|
|
if (!this._monthsParse) {
|
|
|
this._monthsParse = [];
|
|
|
this._longMonthsParse = [];
|
|
|
this._shortMonthsParse = [];
|
|
|
}
|
|
|
|
|
|
// TODO: add sorting
|
|
|
// Sorting makes sure if one month (or abbr) is a prefix of another
|
|
|
// see sorting in computeMonthsParse
|
|
|
for (i = 0; i < 12; i++) {
|
|
|
// make the regex if we don't have it already
|
|
|
mom = createUTC([2000, i]);
|
|
|
if (strict && !this._longMonthsParse[i]) {
|
|
|
this._longMonthsParse[i] = new RegExp(
|
|
|
'^' + this.months(mom, '').replace('.', '') + '$',
|
|
|
'i'
|
|
|
);
|
|
|
this._shortMonthsParse[i] = new RegExp(
|
|
|
'^' + this.monthsShort(mom, '').replace('.', '') + '$',
|
|
|
'i'
|
|
|
);
|
|
|
}
|
|
|
if (!strict && !this._monthsParse[i]) {
|
|
|
regex =
|
|
|
'^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
|
|
|
this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
|
|
|
}
|
|
|
// test the regex
|
|
|
if (
|
|
|
strict &&
|
|
|
format === 'MMMM' &&
|
|
|
this._longMonthsParse[i].test(monthName)
|
|
|
) {
|
|
|
return i;
|
|
|
} else if (
|
|
|
strict &&
|
|
|
format === 'MMM' &&
|
|
|
this._shortMonthsParse[i].test(monthName)
|
|
|
) {
|
|
|
return i;
|
|
|
} else if (!strict && this._monthsParse[i].test(monthName)) {
|
|
|
return i;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
function setMonth(mom, value) {
|
|
|
var dayOfMonth;
|
|
|
|
|
|
if (!mom.isValid()) {
|
|
|
// No op
|
|
|
return mom;
|
|
|
}
|
|
|
|
|
|
if (typeof value === 'string') {
|
|
|
if (/^\d+$/.test(value)) {
|
|
|
value = toInt(value);
|
|
|
} else {
|
|
|
value = mom.localeData().monthsParse(value);
|
|
|
// TODO: Another silent failure?
|
|
|
if (!isNumber(value)) {
|
|
|
return mom;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
|
|
|
mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
|
|
|
return mom;
|
|
|
}
|
|
|
|
|
|
function getSetMonth(value) {
|
|
|
if (value != null) {
|
|
|
setMonth(this, value);
|
|
|
hooks.updateOffset(this, true);
|
|
|
return this;
|
|
|
} else {
|
|
|
return get(this, 'Month');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function getDaysInMonth() {
|
|
|
return daysInMonth(this.year(), this.month());
|
|
|
}
|
|
|
|
|
|
function monthsShortRegex(isStrict) {
|
|
|
if (this._monthsParseExact) {
|
|
|
if (!hasOwnProp(this, '_monthsRegex')) {
|
|
|
computeMonthsParse.call(this);
|
|
|
}
|
|
|
if (isStrict) {
|
|
|
return this._monthsShortStrictRegex;
|
|
|
} else {
|
|
|
return this._monthsShortRegex;
|
|
|
}
|
|
|
} else {
|
|
|
if (!hasOwnProp(this, '_monthsShortRegex')) {
|
|
|
this._monthsShortRegex = defaultMonthsShortRegex;
|
|
|
}
|
|
|
return this._monthsShortStrictRegex && isStrict
|
|
|
? this._monthsShortStrictRegex
|
|
|
: this._monthsShortRegex;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function monthsRegex(isStrict) {
|
|
|
if (this._monthsParseExact) {
|
|
|
if (!hasOwnProp(this, '_monthsRegex')) {
|
|
|
computeMonthsParse.call(this);
|
|
|
}
|
|
|
if (isStrict) {
|
|
|
return this._monthsStrictRegex;
|
|
|
} else {
|
|
|
return this._monthsRegex;
|
|
|
}
|
|
|
} else {
|
|
|
if (!hasOwnProp(this, '_monthsRegex')) {
|
|
|
this._monthsRegex = defaultMonthsRegex;
|
|
|
}
|
|
|
return this._monthsStrictRegex && isStrict
|
|
|
? this._monthsStrictRegex
|
|
|
: this._monthsRegex;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function computeMonthsParse() {
|
|
|
function cmpLenRev(a, b) {
|
|
|
return b.length - a.length;
|
|
|
}
|
|
|
|
|
|
var shortPieces = [],
|
|
|
longPieces = [],
|
|
|
mixedPieces = [],
|
|
|
i,
|
|
|
mom;
|
|
|
for (i = 0; i < 12; i++) {
|
|
|
// make the regex if we don't have it already
|
|
|
mom = createUTC([2000, i]);
|
|
|
shortPieces.push(this.monthsShort(mom, ''));
|
|
|
longPieces.push(this.months(mom, ''));
|
|
|
mixedPieces.push(this.months(mom, ''));
|
|
|
mixedPieces.push(this.monthsShort(mom, ''));
|
|
|
}
|
|
|
// Sorting makes sure if one month (or abbr) is a prefix of another it
|
|
|
// will match the longer piece.
|
|
|
shortPieces.sort(cmpLenRev);
|
|
|
longPieces.sort(cmpLenRev);
|
|
|
mixedPieces.sort(cmpLenRev);
|
|
|
for (i = 0; i < 12; i++) {
|
|
|
shortPieces[i] = regexEscape(shortPieces[i]);
|
|
|
longPieces[i] = regexEscape(longPieces[i]);
|
|
|
}
|
|
|
for (i = 0; i < 24; i++) {
|
|
|
mixedPieces[i] = regexEscape(mixedPieces[i]);
|
|
|
}
|
|
|
|
|
|
this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
|
|
|
this._monthsShortRegex = this._monthsRegex;
|
|
|
this._monthsStrictRegex = new RegExp(
|
|
|
'^(' + longPieces.join('|') + ')',
|
|
|
'i'
|
|
|
);
|
|
|
this._monthsShortStrictRegex = new RegExp(
|
|
|
'^(' + shortPieces.join('|') + ')',
|
|
|
'i'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('Y', 0, 0, function () {
|
|
|
var y = this.year();
|
|
|
return y <= 9999 ? zeroFill(y, 4) : '+' + y;
|
|
|
});
|
|
|
|
|
|
addFormatToken(0, ['YY', 2], 0, function () {
|
|
|
return this.year() % 100;
|
|
|
});
|
|
|
|
|
|
addFormatToken(0, ['YYYY', 4], 0, 'year');
|
|
|
addFormatToken(0, ['YYYYY', 5], 0, 'year');
|
|
|
addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('year', 'y');
|
|
|
|
|
|
// PRIORITIES
|
|
|
|
|
|
addUnitPriority('year', 1);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('Y', matchSigned);
|
|
|
addRegexToken('YY', match1to2, match2);
|
|
|
addRegexToken('YYYY', match1to4, match4);
|
|
|
addRegexToken('YYYYY', match1to6, match6);
|
|
|
addRegexToken('YYYYYY', match1to6, match6);
|
|
|
|
|
|
addParseToken(['YYYYY', 'YYYYYY'], YEAR);
|
|
|
addParseToken('YYYY', function (input, array) {
|
|
|
array[YEAR] =
|
|
|
input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
|
|
|
});
|
|
|
addParseToken('YY', function (input, array) {
|
|
|
array[YEAR] = hooks.parseTwoDigitYear(input);
|
|
|
});
|
|
|
addParseToken('Y', function (input, array) {
|
|
|
array[YEAR] = parseInt(input, 10);
|
|
|
});
|
|
|
|
|
|
// HELPERS
|
|
|
|
|
|
function daysInYear(year) {
|
|
|
return isLeapYear(year) ? 366 : 365;
|
|
|
}
|
|
|
|
|
|
// HOOKS
|
|
|
|
|
|
hooks.parseTwoDigitYear = function (input) {
|
|
|
return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
|
|
|
};
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
var getSetYear = makeGetSet('FullYear', true);
|
|
|
|
|
|
function getIsLeapYear() {
|
|
|
return isLeapYear(this.year());
|
|
|
}
|
|
|
|
|
|
function createDate(y, m, d, h, M, s, ms) {
|
|
|
// can't just apply() to create a date:
|
|
|
// https://stackoverflow.com/q/181348
|
|
|
var date;
|
|
|
// the date constructor remaps years 0-99 to 1900-1999
|
|
|
if (y < 100 && y >= 0) {
|
|
|
// preserve leap years using a full 400 year cycle, then reset
|
|
|
date = new Date(y + 400, m, d, h, M, s, ms);
|
|
|
if (isFinite(date.getFullYear())) {
|
|
|
date.setFullYear(y);
|
|
|
}
|
|
|
} else {
|
|
|
date = new Date(y, m, d, h, M, s, ms);
|
|
|
}
|
|
|
|
|
|
return date;
|
|
|
}
|
|
|
|
|
|
function createUTCDate(y) {
|
|
|
var date, args;
|
|
|
// the Date.UTC function remaps years 0-99 to 1900-1999
|
|
|
if (y < 100 && y >= 0) {
|
|
|
args = Array.prototype.slice.call(arguments);
|
|
|
// preserve leap years using a full 400 year cycle, then reset
|
|
|
args[0] = y + 400;
|
|
|
date = new Date(Date.UTC.apply(null, args));
|
|
|
if (isFinite(date.getUTCFullYear())) {
|
|
|
date.setUTCFullYear(y);
|
|
|
}
|
|
|
} else {
|
|
|
date = new Date(Date.UTC.apply(null, arguments));
|
|
|
}
|
|
|
|
|
|
return date;
|
|
|
}
|
|
|
|
|
|
// start-of-first-week - start-of-year
|
|
|
function firstWeekOffset(year, dow, doy) {
|
|
|
var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
|
|
|
fwd = 7 + dow - doy,
|
|
|
// first-week day local weekday -- which local weekday is fwd
|
|
|
fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
|
|
|
|
|
|
return -fwdlw + fwd - 1;
|
|
|
}
|
|
|
|
|
|
// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
|
|
|
function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
|
|
|
var localWeekday = (7 + weekday - dow) % 7,
|
|
|
weekOffset = firstWeekOffset(year, dow, doy),
|
|
|
dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
|
|
|
resYear,
|
|
|
resDayOfYear;
|
|
|
|
|
|
if (dayOfYear <= 0) {
|
|
|
resYear = year - 1;
|
|
|
resDayOfYear = daysInYear(resYear) + dayOfYear;
|
|
|
} else if (dayOfYear > daysInYear(year)) {
|
|
|
resYear = year + 1;
|
|
|
resDayOfYear = dayOfYear - daysInYear(year);
|
|
|
} else {
|
|
|
resYear = year;
|
|
|
resDayOfYear = dayOfYear;
|
|
|
}
|
|
|
|
|
|
return {
|
|
|
year: resYear,
|
|
|
dayOfYear: resDayOfYear,
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function weekOfYear(mom, dow, doy) {
|
|
|
var weekOffset = firstWeekOffset(mom.year(), dow, doy),
|
|
|
week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
|
|
|
resWeek,
|
|
|
resYear;
|
|
|
|
|
|
if (week < 1) {
|
|
|
resYear = mom.year() - 1;
|
|
|
resWeek = week + weeksInYear(resYear, dow, doy);
|
|
|
} else if (week > weeksInYear(mom.year(), dow, doy)) {
|
|
|
resWeek = week - weeksInYear(mom.year(), dow, doy);
|
|
|
resYear = mom.year() + 1;
|
|
|
} else {
|
|
|
resYear = mom.year();
|
|
|
resWeek = week;
|
|
|
}
|
|
|
|
|
|
return {
|
|
|
week: resWeek,
|
|
|
year: resYear,
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function weeksInYear(year, dow, doy) {
|
|
|
var weekOffset = firstWeekOffset(year, dow, doy),
|
|
|
weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
|
|
|
return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
|
|
|
}
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('w', ['ww', 2], 'wo', 'week');
|
|
|
addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('week', 'w');
|
|
|
addUnitAlias('isoWeek', 'W');
|
|
|
|
|
|
// PRIORITIES
|
|
|
|
|
|
addUnitPriority('week', 5);
|
|
|
addUnitPriority('isoWeek', 5);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('w', match1to2);
|
|
|
addRegexToken('ww', match1to2, match2);
|
|
|
addRegexToken('W', match1to2);
|
|
|
addRegexToken('WW', match1to2, match2);
|
|
|
|
|
|
addWeekParseToken(['w', 'ww', 'W', 'WW'], function (
|
|
|
input,
|
|
|
week,
|
|
|
config,
|
|
|
token
|
|
|
) {
|
|
|
week[token.substr(0, 1)] = toInt(input);
|
|
|
});
|
|
|
|
|
|
// HELPERS
|
|
|
|
|
|
// LOCALES
|
|
|
|
|
|
function localeWeek(mom) {
|
|
|
return weekOfYear(mom, this._week.dow, this._week.doy).week;
|
|
|
}
|
|
|
|
|
|
var defaultLocaleWeek = {
|
|
|
dow: 0, // Sunday is the first day of the week.
|
|
|
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
|
|
};
|
|
|
|
|
|
function localeFirstDayOfWeek() {
|
|
|
return this._week.dow;
|
|
|
}
|
|
|
|
|
|
function localeFirstDayOfYear() {
|
|
|
return this._week.doy;
|
|
|
}
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
function getSetWeek(input) {
|
|
|
var week = this.localeData().week(this);
|
|
|
return input == null ? week : this.add((input - week) * 7, 'd');
|
|
|
}
|
|
|
|
|
|
function getSetISOWeek(input) {
|
|
|
var week = weekOfYear(this, 1, 4).week;
|
|
|
return input == null ? week : this.add((input - week) * 7, 'd');
|
|
|
}
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('d', 0, 'do', 'day');
|
|
|
|
|
|
addFormatToken('dd', 0, 0, function (format) {
|
|
|
return this.localeData().weekdaysMin(this, format);
|
|
|
});
|
|
|
|
|
|
addFormatToken('ddd', 0, 0, function (format) {
|
|
|
return this.localeData().weekdaysShort(this, format);
|
|
|
});
|
|
|
|
|
|
addFormatToken('dddd', 0, 0, function (format) {
|
|
|
return this.localeData().weekdays(this, format);
|
|
|
});
|
|
|
|
|
|
addFormatToken('e', 0, 0, 'weekday');
|
|
|
addFormatToken('E', 0, 0, 'isoWeekday');
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('day', 'd');
|
|
|
addUnitAlias('weekday', 'e');
|
|
|
addUnitAlias('isoWeekday', 'E');
|
|
|
|
|
|
// PRIORITY
|
|
|
addUnitPriority('day', 11);
|
|
|
addUnitPriority('weekday', 11);
|
|
|
addUnitPriority('isoWeekday', 11);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('d', match1to2);
|
|
|
addRegexToken('e', match1to2);
|
|
|
addRegexToken('E', match1to2);
|
|
|
addRegexToken('dd', function (isStrict, locale) {
|
|
|
return locale.weekdaysMinRegex(isStrict);
|
|
|
});
|
|
|
addRegexToken('ddd', function (isStrict, locale) {
|
|
|
return locale.weekdaysShortRegex(isStrict);
|
|
|
});
|
|
|
addRegexToken('dddd', function (isStrict, locale) {
|
|
|
return locale.weekdaysRegex(isStrict);
|
|
|
});
|
|
|
|
|
|
addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
|
|
|
var weekday = config._locale.weekdaysParse(input, token, config._strict);
|
|
|
// if we didn't get a weekday name, mark the date as invalid
|
|
|
if (weekday != null) {
|
|
|
week.d = weekday;
|
|
|
} else {
|
|
|
getParsingFlags(config).invalidWeekday = input;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
|
|
|
week[token] = toInt(input);
|
|
|
});
|
|
|
|
|
|
// HELPERS
|
|
|
|
|
|
function parseWeekday(input, locale) {
|
|
|
if (typeof input !== 'string') {
|
|
|
return input;
|
|
|
}
|
|
|
|
|
|
if (!isNaN(input)) {
|
|
|
return parseInt(input, 10);
|
|
|
}
|
|
|
|
|
|
input = locale.weekdaysParse(input);
|
|
|
if (typeof input === 'number') {
|
|
|
return input;
|
|
|
}
|
|
|
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
function parseIsoWeekday(input, locale) {
|
|
|
if (typeof input === 'string') {
|
|
|
return locale.weekdaysParse(input) % 7 || 7;
|
|
|
}
|
|
|
return isNaN(input) ? null : input;
|
|
|
}
|
|
|
|
|
|
// LOCALES
|
|
|
function shiftWeekdays(ws, n) {
|
|
|
return ws.slice(n, 7).concat(ws.slice(0, n));
|
|
|
}
|
|
|
|
|
|
var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
|
|
|
'_'
|
|
|
),
|
|
|
defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
|
|
|
defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
|
|
|
defaultWeekdaysRegex = matchWord,
|
|
|
defaultWeekdaysShortRegex = matchWord,
|
|
|
defaultWeekdaysMinRegex = matchWord;
|
|
|
|
|
|
function localeWeekdays(m, format) {
|
|
|
var weekdays = isArray(this._weekdays)
|
|
|
? this._weekdays
|
|
|
: this._weekdays[
|
|
|
m && m !== true && this._weekdays.isFormat.test(format)
|
|
|
? 'format'
|
|
|
: 'standalone'
|
|
|
];
|
|
|
return m === true
|
|
|
? shiftWeekdays(weekdays, this._week.dow)
|
|
|
: m
|
|
|
? weekdays[m.day()]
|
|
|
: weekdays;
|
|
|
}
|
|
|
|
|
|
function localeWeekdaysShort(m) {
|
|
|
return m === true
|
|
|
? shiftWeekdays(this._weekdaysShort, this._week.dow)
|
|
|
: m
|
|
|
? this._weekdaysShort[m.day()]
|
|
|
: this._weekdaysShort;
|
|
|
}
|
|
|
|
|
|
function localeWeekdaysMin(m) {
|
|
|
return m === true
|
|
|
? shiftWeekdays(this._weekdaysMin, this._week.dow)
|
|
|
: m
|
|
|
? this._weekdaysMin[m.day()]
|
|
|
: this._weekdaysMin;
|
|
|
}
|
|
|
|
|
|
function handleStrictParse$1(weekdayName, format, strict) {
|
|
|
var i,
|
|
|
ii,
|
|
|
mom,
|
|
|
llc = weekdayName.toLocaleLowerCase();
|
|
|
if (!this._weekdaysParse) {
|
|
|
this._weekdaysParse = [];
|
|
|
this._shortWeekdaysParse = [];
|
|
|
this._minWeekdaysParse = [];
|
|
|
|
|
|
for (i = 0; i < 7; ++i) {
|
|
|
mom = createUTC([2000, 1]).day(i);
|
|
|
this._minWeekdaysParse[i] = this.weekdaysMin(
|
|
|
mom,
|
|
|
''
|
|
|
).toLocaleLowerCase();
|
|
|
this._shortWeekdaysParse[i] = this.weekdaysShort(
|
|
|
mom,
|
|
|
''
|
|
|
).toLocaleLowerCase();
|
|
|
this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (strict) {
|
|
|
if (format === 'dddd') {
|
|
|
ii = indexOf.call(this._weekdaysParse, llc);
|
|
|
return ii !== -1 ? ii : null;
|
|
|
} else if (format === 'ddd') {
|
|
|
ii = indexOf.call(this._shortWeekdaysParse, llc);
|
|
|
return ii !== -1 ? ii : null;
|
|
|
} else {
|
|
|
ii = indexOf.call(this._minWeekdaysParse, llc);
|
|
|
return ii !== -1 ? ii : null;
|
|
|
}
|
|
|
} else {
|
|
|
if (format === 'dddd') {
|
|
|
ii = indexOf.call(this._weekdaysParse, llc);
|
|
|
if (ii !== -1) {
|
|
|
return ii;
|
|
|
}
|
|
|
ii = indexOf.call(this._shortWeekdaysParse, llc);
|
|
|
if (ii !== -1) {
|
|
|
return ii;
|
|
|
}
|
|
|
ii = indexOf.call(this._minWeekdaysParse, llc);
|
|
|
return ii !== -1 ? ii : null;
|
|
|
} else if (format === 'ddd') {
|
|
|
ii = indexOf.call(this._shortWeekdaysParse, llc);
|
|
|
if (ii !== -1) {
|
|
|
return ii;
|
|
|
}
|
|
|
ii = indexOf.call(this._weekdaysParse, llc);
|
|
|
if (ii !== -1) {
|
|
|
return ii;
|
|
|
}
|
|
|
ii = indexOf.call(this._minWeekdaysParse, llc);
|
|
|
return ii !== -1 ? ii : null;
|
|
|
} else {
|
|
|
ii = indexOf.call(this._minWeekdaysParse, llc);
|
|
|
if (ii !== -1) {
|
|
|
return ii;
|
|
|
}
|
|
|
ii = indexOf.call(this._weekdaysParse, llc);
|
|
|
if (ii !== -1) {
|
|
|
return ii;
|
|
|
}
|
|
|
ii = indexOf.call(this._shortWeekdaysParse, llc);
|
|
|
return ii !== -1 ? ii : null;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function localeWeekdaysParse(weekdayName, format, strict) {
|
|
|
var i, mom, regex;
|
|
|
|
|
|
if (this._weekdaysParseExact) {
|
|
|
return handleStrictParse$1.call(this, weekdayName, format, strict);
|
|
|
}
|
|
|
|
|
|
if (!this._weekdaysParse) {
|
|
|
this._weekdaysParse = [];
|
|
|
this._minWeekdaysParse = [];
|
|
|
this._shortWeekdaysParse = [];
|
|
|
this._fullWeekdaysParse = [];
|
|
|
}
|
|
|
|
|
|
for (i = 0; i < 7; i++) {
|
|
|
// make the regex if we don't have it already
|
|
|
|
|
|
mom = createUTC([2000, 1]).day(i);
|
|
|
if (strict && !this._fullWeekdaysParse[i]) {
|
|
|
this._fullWeekdaysParse[i] = new RegExp(
|
|
|
'^' + this.weekdays(mom, '').replace('.', '\\.?') + '$',
|
|
|
'i'
|
|
|
);
|
|
|
this._shortWeekdaysParse[i] = new RegExp(
|
|
|
'^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$',
|
|
|
'i'
|
|
|
);
|
|
|
this._minWeekdaysParse[i] = new RegExp(
|
|
|
'^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$',
|
|
|
'i'
|
|
|
);
|
|
|
}
|
|
|
if (!this._weekdaysParse[i]) {
|
|
|
regex =
|
|
|
'^' +
|
|
|
this.weekdays(mom, '') +
|
|
|
'|^' +
|
|
|
this.weekdaysShort(mom, '') +
|
|
|
'|^' +
|
|
|
this.weekdaysMin(mom, '');
|
|
|
this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
|
|
|
}
|
|
|
// test the regex
|
|
|
if (
|
|
|
strict &&
|
|
|
format === 'dddd' &&
|
|
|
this._fullWeekdaysParse[i].test(weekdayName)
|
|
|
) {
|
|
|
return i;
|
|
|
} else if (
|
|
|
strict &&
|
|
|
format === 'ddd' &&
|
|
|
this._shortWeekdaysParse[i].test(weekdayName)
|
|
|
) {
|
|
|
return i;
|
|
|
} else if (
|
|
|
strict &&
|
|
|
format === 'dd' &&
|
|
|
this._minWeekdaysParse[i].test(weekdayName)
|
|
|
) {
|
|
|
return i;
|
|
|
} else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
|
|
|
return i;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
function getSetDayOfWeek(input) {
|
|
|
if (!this.isValid()) {
|
|
|
return input != null ? this : NaN;
|
|
|
}
|
|
|
var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
|
|
|
if (input != null) {
|
|
|
input = parseWeekday(input, this.localeData());
|
|
|
return this.add(input - day, 'd');
|
|
|
} else {
|
|
|
return day;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function getSetLocaleDayOfWeek(input) {
|
|
|
if (!this.isValid()) {
|
|
|
return input != null ? this : NaN;
|
|
|
}
|
|
|
var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
|
|
|
return input == null ? weekday : this.add(input - weekday, 'd');
|
|
|
}
|
|
|
|
|
|
function getSetISODayOfWeek(input) {
|
|
|
if (!this.isValid()) {
|
|
|
return input != null ? this : NaN;
|
|
|
}
|
|
|
|
|
|
// behaves the same as moment#day except
|
|
|
// as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
|
|
|
// as a setter, sunday should belong to the previous week.
|
|
|
|
|
|
if (input != null) {
|
|
|
var weekday = parseIsoWeekday(input, this.localeData());
|
|
|
return this.day(this.day() % 7 ? weekday : weekday - 7);
|
|
|
} else {
|
|
|
return this.day() || 7;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function weekdaysRegex(isStrict) {
|
|
|
if (this._weekdaysParseExact) {
|
|
|
if (!hasOwnProp(this, '_weekdaysRegex')) {
|
|
|
computeWeekdaysParse.call(this);
|
|
|
}
|
|
|
if (isStrict) {
|
|
|
return this._weekdaysStrictRegex;
|
|
|
} else {
|
|
|
return this._weekdaysRegex;
|
|
|
}
|
|
|
} else {
|
|
|
if (!hasOwnProp(this, '_weekdaysRegex')) {
|
|
|
this._weekdaysRegex = defaultWeekdaysRegex;
|
|
|
}
|
|
|
return this._weekdaysStrictRegex && isStrict
|
|
|
? this._weekdaysStrictRegex
|
|
|
: this._weekdaysRegex;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function weekdaysShortRegex(isStrict) {
|
|
|
if (this._weekdaysParseExact) {
|
|
|
if (!hasOwnProp(this, '_weekdaysRegex')) {
|
|
|
computeWeekdaysParse.call(this);
|
|
|
}
|
|
|
if (isStrict) {
|
|
|
return this._weekdaysShortStrictRegex;
|
|
|
} else {
|
|
|
return this._weekdaysShortRegex;
|
|
|
}
|
|
|
} else {
|
|
|
if (!hasOwnProp(this, '_weekdaysShortRegex')) {
|
|
|
this._weekdaysShortRegex = defaultWeekdaysShortRegex;
|
|
|
}
|
|
|
return this._weekdaysShortStrictRegex && isStrict
|
|
|
? this._weekdaysShortStrictRegex
|
|
|
: this._weekdaysShortRegex;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function weekdaysMinRegex(isStrict) {
|
|
|
if (this._weekdaysParseExact) {
|
|
|
if (!hasOwnProp(this, '_weekdaysRegex')) {
|
|
|
computeWeekdaysParse.call(this);
|
|
|
}
|
|
|
if (isStrict) {
|
|
|
return this._weekdaysMinStrictRegex;
|
|
|
} else {
|
|
|
return this._weekdaysMinRegex;
|
|
|
}
|
|
|
} else {
|
|
|
if (!hasOwnProp(this, '_weekdaysMinRegex')) {
|
|
|
this._weekdaysMinRegex = defaultWeekdaysMinRegex;
|
|
|
}
|
|
|
return this._weekdaysMinStrictRegex && isStrict
|
|
|
? this._weekdaysMinStrictRegex
|
|
|
: this._weekdaysMinRegex;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function computeWeekdaysParse() {
|
|
|
function cmpLenRev(a, b) {
|
|
|
return b.length - a.length;
|
|
|
}
|
|
|
|
|
|
var minPieces = [],
|
|
|
shortPieces = [],
|
|
|
longPieces = [],
|
|
|
mixedPieces = [],
|
|
|
i,
|
|
|
mom,
|
|
|
minp,
|
|
|
shortp,
|
|
|
longp;
|
|
|
for (i = 0; i < 7; i++) {
|
|
|
// make the regex if we don't have it already
|
|
|
mom = createUTC([2000, 1]).day(i);
|
|
|
minp = regexEscape(this.weekdaysMin(mom, ''));
|
|
|
shortp = regexEscape(this.weekdaysShort(mom, ''));
|
|
|
longp = regexEscape(this.weekdays(mom, ''));
|
|
|
minPieces.push(minp);
|
|
|
shortPieces.push(shortp);
|
|
|
longPieces.push(longp);
|
|
|
mixedPieces.push(minp);
|
|
|
mixedPieces.push(shortp);
|
|
|
mixedPieces.push(longp);
|
|
|
}
|
|
|
// Sorting makes sure if one weekday (or abbr) is a prefix of another it
|
|
|
// will match the longer piece.
|
|
|
minPieces.sort(cmpLenRev);
|
|
|
shortPieces.sort(cmpLenRev);
|
|
|
longPieces.sort(cmpLenRev);
|
|
|
mixedPieces.sort(cmpLenRev);
|
|
|
|
|
|
this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
|
|
|
this._weekdaysShortRegex = this._weekdaysRegex;
|
|
|
this._weekdaysMinRegex = this._weekdaysRegex;
|
|
|
|
|
|
this._weekdaysStrictRegex = new RegExp(
|
|
|
'^(' + longPieces.join('|') + ')',
|
|
|
'i'
|
|
|
);
|
|
|
this._weekdaysShortStrictRegex = new RegExp(
|
|
|
'^(' + shortPieces.join('|') + ')',
|
|
|
'i'
|
|
|
);
|
|
|
this._weekdaysMinStrictRegex = new RegExp(
|
|
|
'^(' + minPieces.join('|') + ')',
|
|
|
'i'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
function hFormat() {
|
|
|
return this.hours() % 12 || 12;
|
|
|
}
|
|
|
|
|
|
function kFormat() {
|
|
|
return this.hours() || 24;
|
|
|
}
|
|
|
|
|
|
addFormatToken('H', ['HH', 2], 0, 'hour');
|
|
|
addFormatToken('h', ['hh', 2], 0, hFormat);
|
|
|
addFormatToken('k', ['kk', 2], 0, kFormat);
|
|
|
|
|
|
addFormatToken('hmm', 0, 0, function () {
|
|
|
return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
|
|
|
});
|
|
|
|
|
|
addFormatToken('hmmss', 0, 0, function () {
|
|
|
return (
|
|
|
'' +
|
|
|
hFormat.apply(this) +
|
|
|
zeroFill(this.minutes(), 2) +
|
|
|
zeroFill(this.seconds(), 2)
|
|
|
);
|
|
|
});
|
|
|
|
|
|
addFormatToken('Hmm', 0, 0, function () {
|
|
|
return '' + this.hours() + zeroFill(this.minutes(), 2);
|
|
|
});
|
|
|
|
|
|
addFormatToken('Hmmss', 0, 0, function () {
|
|
|
return (
|
|
|
'' +
|
|
|
this.hours() +
|
|
|
zeroFill(this.minutes(), 2) +
|
|
|
zeroFill(this.seconds(), 2)
|
|
|
);
|
|
|
});
|
|
|
|
|
|
function meridiem(token, lowercase) {
|
|
|
addFormatToken(token, 0, 0, function () {
|
|
|
return this.localeData().meridiem(
|
|
|
this.hours(),
|
|
|
this.minutes(),
|
|
|
lowercase
|
|
|
);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
meridiem('a', true);
|
|
|
meridiem('A', false);
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('hour', 'h');
|
|
|
|
|
|
// PRIORITY
|
|
|
addUnitPriority('hour', 13);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
function matchMeridiem(isStrict, locale) {
|
|
|
return locale._meridiemParse;
|
|
|
}
|
|
|
|
|
|
addRegexToken('a', matchMeridiem);
|
|
|
addRegexToken('A', matchMeridiem);
|
|
|
addRegexToken('H', match1to2);
|
|
|
addRegexToken('h', match1to2);
|
|
|
addRegexToken('k', match1to2);
|
|
|
addRegexToken('HH', match1to2, match2);
|
|
|
addRegexToken('hh', match1to2, match2);
|
|
|
addRegexToken('kk', match1to2, match2);
|
|
|
|
|
|
addRegexToken('hmm', match3to4);
|
|
|
addRegexToken('hmmss', match5to6);
|
|
|
addRegexToken('Hmm', match3to4);
|
|
|
addRegexToken('Hmmss', match5to6);
|
|
|
|
|
|
addParseToken(['H', 'HH'], HOUR);
|
|
|
addParseToken(['k', 'kk'], function (input, array, config) {
|
|
|
var kInput = toInt(input);
|
|
|
array[HOUR] = kInput === 24 ? 0 : kInput;
|
|
|
});
|
|
|
addParseToken(['a', 'A'], function (input, array, config) {
|
|
|
config._isPm = config._locale.isPM(input);
|
|
|
config._meridiem = input;
|
|
|
});
|
|
|
addParseToken(['h', 'hh'], function (input, array, config) {
|
|
|
array[HOUR] = toInt(input);
|
|
|
getParsingFlags(config).bigHour = true;
|
|
|
});
|
|
|
addParseToken('hmm', function (input, array, config) {
|
|
|
var pos = input.length - 2;
|
|
|
array[HOUR] = toInt(input.substr(0, pos));
|
|
|
array[MINUTE] = toInt(input.substr(pos));
|
|
|
getParsingFlags(config).bigHour = true;
|
|
|
});
|
|
|
addParseToken('hmmss', function (input, array, config) {
|
|
|
var pos1 = input.length - 4,
|
|
|
pos2 = input.length - 2;
|
|
|
array[HOUR] = toInt(input.substr(0, pos1));
|
|
|
array[MINUTE] = toInt(input.substr(pos1, 2));
|
|
|
array[SECOND] = toInt(input.substr(pos2));
|
|
|
getParsingFlags(config).bigHour = true;
|
|
|
});
|
|
|
addParseToken('Hmm', function (input, array, config) {
|
|
|
var pos = input.length - 2;
|
|
|
array[HOUR] = toInt(input.substr(0, pos));
|
|
|
array[MINUTE] = toInt(input.substr(pos));
|
|
|
});
|
|
|
addParseToken('Hmmss', function (input, array, config) {
|
|
|
var pos1 = input.length - 4,
|
|
|
pos2 = input.length - 2;
|
|
|
array[HOUR] = toInt(input.substr(0, pos1));
|
|
|
array[MINUTE] = toInt(input.substr(pos1, 2));
|
|
|
array[SECOND] = toInt(input.substr(pos2));
|
|
|
});
|
|
|
|
|
|
// LOCALES
|
|
|
|
|
|
function localeIsPM(input) {
|
|
|
// IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
|
|
|
// Using charAt should be more compatible.
|
|
|
return (input + '').toLowerCase().charAt(0) === 'p';
|
|
|
}
|
|
|
|
|
|
var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i,
|
|
|
// Setting the hour should keep the time, because the user explicitly
|
|
|
// specified which hour they want. So trying to maintain the same hour (in
|
|
|
// a new timezone) makes sense. Adding/subtracting hours does not follow
|
|
|
// this rule.
|
|
|
getSetHour = makeGetSet('Hours', true);
|
|
|
|
|
|
function localeMeridiem(hours, minutes, isLower) {
|
|
|
if (hours > 11) {
|
|
|
return isLower ? 'pm' : 'PM';
|
|
|
} else {
|
|
|
return isLower ? 'am' : 'AM';
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var baseConfig = {
|
|
|
calendar: defaultCalendar,
|
|
|
longDateFormat: defaultLongDateFormat,
|
|
|
invalidDate: defaultInvalidDate,
|
|
|
ordinal: defaultOrdinal,
|
|
|
dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
|
|
|
relativeTime: defaultRelativeTime,
|
|
|
|
|
|
months: defaultLocaleMonths,
|
|
|
monthsShort: defaultLocaleMonthsShort,
|
|
|
|
|
|
week: defaultLocaleWeek,
|
|
|
|
|
|
weekdays: defaultLocaleWeekdays,
|
|
|
weekdaysMin: defaultLocaleWeekdaysMin,
|
|
|
weekdaysShort: defaultLocaleWeekdaysShort,
|
|
|
|
|
|
meridiemParse: defaultLocaleMeridiemParse,
|
|
|
};
|
|
|
|
|
|
// internal storage for locale config files
|
|
|
var locales = {},
|
|
|
localeFamilies = {},
|
|
|
globalLocale;
|
|
|
|
|
|
function commonPrefix(arr1, arr2) {
|
|
|
var i,
|
|
|
minl = Math.min(arr1.length, arr2.length);
|
|
|
for (i = 0; i < minl; i += 1) {
|
|
|
if (arr1[i] !== arr2[i]) {
|
|
|
return i;
|
|
|
}
|
|
|
}
|
|
|
return minl;
|
|
|
}
|
|
|
|
|
|
function normalizeLocale(key) {
|
|
|
return key ? key.toLowerCase().replace('_', '-') : key;
|
|
|
}
|
|
|
|
|
|
// pick the locale from the array
|
|
|
// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
|
|
|
// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
|
|
|
function chooseLocale(names) {
|
|
|
var i = 0,
|
|
|
j,
|
|
|
next,
|
|
|
locale,
|
|
|
split;
|
|
|
|
|
|
while (i < names.length) {
|
|
|
split = normalizeLocale(names[i]).split('-');
|
|
|
j = split.length;
|
|
|
next = normalizeLocale(names[i + 1]);
|
|
|
next = next ? next.split('-') : null;
|
|
|
while (j > 0) {
|
|
|
locale = loadLocale(split.slice(0, j).join('-'));
|
|
|
if (locale) {
|
|
|
return locale;
|
|
|
}
|
|
|
if (
|
|
|
next &&
|
|
|
next.length >= j &&
|
|
|
commonPrefix(split, next) >= j - 1
|
|
|
) {
|
|
|
//the next array item is better than a shallower substring of this one
|
|
|
break;
|
|
|
}
|
|
|
j--;
|
|
|
}
|
|
|
i++;
|
|
|
}
|
|
|
return globalLocale;
|
|
|
}
|
|
|
|
|
|
function loadLocale(name) {
|
|
|
var oldLocale = null,
|
|
|
aliasedRequire;
|
|
|
// TODO: Find a better way to register and load all the locales in Node
|
|
|
if (
|
|
|
locales[name] === undefined &&
|
|
|
typeof module !== 'undefined' &&
|
|
|
module &&
|
|
|
module.exports
|
|
|
) {
|
|
|
try {
|
|
|
oldLocale = globalLocale._abbr;
|
|
|
aliasedRequire = require;
|
|
|
__webpack_require__("./node_modules/moment/locale sync recursive ^\\.\\/.*$")("./" + name);
|
|
|
getSetGlobalLocale(oldLocale);
|
|
|
} catch (e) {
|
|
|
// mark as not found to avoid repeating expensive file require call causing high CPU
|
|
|
// when trying to find en-US, en_US, en-us for every format call
|
|
|
locales[name] = null; // null means not found
|
|
|
}
|
|
|
}
|
|
|
return locales[name];
|
|
|
}
|
|
|
|
|
|
// This function will load locale and then set the global locale. If
|
|
|
// no arguments are passed in, it will simply return the current global
|
|
|
// locale key.
|
|
|
function getSetGlobalLocale(key, values) {
|
|
|
var data;
|
|
|
if (key) {
|
|
|
if (isUndefined(values)) {
|
|
|
data = getLocale(key);
|
|
|
} else {
|
|
|
data = defineLocale(key, values);
|
|
|
}
|
|
|
|
|
|
if (data) {
|
|
|
// moment.duration._locale = moment._locale = data;
|
|
|
globalLocale = data;
|
|
|
} else {
|
|
|
if (typeof console !== 'undefined' && console.warn) {
|
|
|
//warn user if arguments are passed but the locale could not be set
|
|
|
console.warn(
|
|
|
'Locale ' + key + ' not found. Did you forget to load it?'
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return globalLocale._abbr;
|
|
|
}
|
|
|
|
|
|
function defineLocale(name, config) {
|
|
|
if (config !== null) {
|
|
|
var locale,
|
|
|
parentConfig = baseConfig;
|
|
|
config.abbr = name;
|
|
|
if (locales[name] != null) {
|
|
|
deprecateSimple(
|
|
|
'defineLocaleOverride',
|
|
|
'use moment.updateLocale(localeName, config) to change ' +
|
|
|
'an existing locale. moment.defineLocale(localeName, ' +
|
|
|
'config) should only be used for creating a new locale ' +
|
|
|
'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'
|
|
|
);
|
|
|
parentConfig = locales[name]._config;
|
|
|
} else if (config.parentLocale != null) {
|
|
|
if (locales[config.parentLocale] != null) {
|
|
|
parentConfig = locales[config.parentLocale]._config;
|
|
|
} else {
|
|
|
locale = loadLocale(config.parentLocale);
|
|
|
if (locale != null) {
|
|
|
parentConfig = locale._config;
|
|
|
} else {
|
|
|
if (!localeFamilies[config.parentLocale]) {
|
|
|
localeFamilies[config.parentLocale] = [];
|
|
|
}
|
|
|
localeFamilies[config.parentLocale].push({
|
|
|
name: name,
|
|
|
config: config,
|
|
|
});
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
locales[name] = new Locale(mergeConfigs(parentConfig, config));
|
|
|
|
|
|
if (localeFamilies[name]) {
|
|
|
localeFamilies[name].forEach(function (x) {
|
|
|
defineLocale(x.name, x.config);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// backwards compat for now: also set the locale
|
|
|
// make sure we set the locale AFTER all child locales have been
|
|
|
// created, so we won't end up with the child locale set.
|
|
|
getSetGlobalLocale(name);
|
|
|
|
|
|
return locales[name];
|
|
|
} else {
|
|
|
// useful for testing
|
|
|
delete locales[name];
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function updateLocale(name, config) {
|
|
|
if (config != null) {
|
|
|
var locale,
|
|
|
tmpLocale,
|
|
|
parentConfig = baseConfig;
|
|
|
|
|
|
if (locales[name] != null && locales[name].parentLocale != null) {
|
|
|
// Update existing child locale in-place to avoid memory-leaks
|
|
|
locales[name].set(mergeConfigs(locales[name]._config, config));
|
|
|
} else {
|
|
|
// MERGE
|
|
|
tmpLocale = loadLocale(name);
|
|
|
if (tmpLocale != null) {
|
|
|
parentConfig = tmpLocale._config;
|
|
|
}
|
|
|
config = mergeConfigs(parentConfig, config);
|
|
|
if (tmpLocale == null) {
|
|
|
// updateLocale is called for creating a new locale
|
|
|
// Set abbr so it will have a name (getters return
|
|
|
// undefined otherwise).
|
|
|
config.abbr = name;
|
|
|
}
|
|
|
locale = new Locale(config);
|
|
|
locale.parentLocale = locales[name];
|
|
|
locales[name] = locale;
|
|
|
}
|
|
|
|
|
|
// backwards compat for now: also set the locale
|
|
|
getSetGlobalLocale(name);
|
|
|
} else {
|
|
|
// pass null for config to unupdate, useful for tests
|
|
|
if (locales[name] != null) {
|
|
|
if (locales[name].parentLocale != null) {
|
|
|
locales[name] = locales[name].parentLocale;
|
|
|
if (name === getSetGlobalLocale()) {
|
|
|
getSetGlobalLocale(name);
|
|
|
}
|
|
|
} else if (locales[name] != null) {
|
|
|
delete locales[name];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return locales[name];
|
|
|
}
|
|
|
|
|
|
// returns locale data
|
|
|
function getLocale(key) {
|
|
|
var locale;
|
|
|
|
|
|
if (key && key._locale && key._locale._abbr) {
|
|
|
key = key._locale._abbr;
|
|
|
}
|
|
|
|
|
|
if (!key) {
|
|
|
return globalLocale;
|
|
|
}
|
|
|
|
|
|
if (!isArray(key)) {
|
|
|
//short-circuit everything else
|
|
|
locale = loadLocale(key);
|
|
|
if (locale) {
|
|
|
return locale;
|
|
|
}
|
|
|
key = [key];
|
|
|
}
|
|
|
|
|
|
return chooseLocale(key);
|
|
|
}
|
|
|
|
|
|
function listLocales() {
|
|
|
return keys(locales);
|
|
|
}
|
|
|
|
|
|
function checkOverflow(m) {
|
|
|
var overflow,
|
|
|
a = m._a;
|
|
|
|
|
|
if (a && getParsingFlags(m).overflow === -2) {
|
|
|
overflow =
|
|
|
a[MONTH] < 0 || a[MONTH] > 11
|
|
|
? MONTH
|
|
|
: a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])
|
|
|
? DATE
|
|
|
: a[HOUR] < 0 ||
|
|
|
a[HOUR] > 24 ||
|
|
|
(a[HOUR] === 24 &&
|
|
|
(a[MINUTE] !== 0 ||
|
|
|
a[SECOND] !== 0 ||
|
|
|
a[MILLISECOND] !== 0))
|
|
|
? HOUR
|
|
|
: a[MINUTE] < 0 || a[MINUTE] > 59
|
|
|
? MINUTE
|
|
|
: a[SECOND] < 0 || a[SECOND] > 59
|
|
|
? SECOND
|
|
|
: a[MILLISECOND] < 0 || a[MILLISECOND] > 999
|
|
|
? MILLISECOND
|
|
|
: -1;
|
|
|
|
|
|
if (
|
|
|
getParsingFlags(m)._overflowDayOfYear &&
|
|
|
(overflow < YEAR || overflow > DATE)
|
|
|
) {
|
|
|
overflow = DATE;
|
|
|
}
|
|
|
if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
|
|
|
overflow = WEEK;
|
|
|
}
|
|
|
if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
|
|
|
overflow = WEEKDAY;
|
|
|
}
|
|
|
|
|
|
getParsingFlags(m).overflow = overflow;
|
|
|
}
|
|
|
|
|
|
return m;
|
|
|
}
|
|
|
|
|
|
// iso 8601 regex
|
|
|
// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
|
|
|
var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
|
|
|
basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
|
|
|
tzRegex = /Z|[+-]\d\d(?::?\d\d)?/,
|
|
|
isoDates = [
|
|
|
['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
|
|
|
['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
|
|
|
['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
|
|
|
['GGGG-[W]WW', /\d{4}-W\d\d/, false],
|
|
|
['YYYY-DDD', /\d{4}-\d{3}/],
|
|
|
['YYYY-MM', /\d{4}-\d\d/, false],
|
|
|
['YYYYYYMMDD', /[+-]\d{10}/],
|
|
|
['YYYYMMDD', /\d{8}/],
|
|
|
['GGGG[W]WWE', /\d{4}W\d{3}/],
|
|
|
['GGGG[W]WW', /\d{4}W\d{2}/, false],
|
|
|
['YYYYDDD', /\d{7}/],
|
|
|
['YYYYMM', /\d{6}/, false],
|
|
|
['YYYY', /\d{4}/, false],
|
|
|
],
|
|
|
// iso time formats and regexes
|
|
|
isoTimes = [
|
|
|
['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
|
|
|
['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
|
|
|
['HH:mm:ss', /\d\d:\d\d:\d\d/],
|
|
|
['HH:mm', /\d\d:\d\d/],
|
|
|
['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
|
|
|
['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
|
|
|
['HHmmss', /\d\d\d\d\d\d/],
|
|
|
['HHmm', /\d\d\d\d/],
|
|
|
['HH', /\d\d/],
|
|
|
],
|
|
|
aspNetJsonRegex = /^\/?Date\((-?\d+)/i,
|
|
|
// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
|
|
|
rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,
|
|
|
obsOffsets = {
|
|
|
UT: 0,
|
|
|
GMT: 0,
|
|
|
EDT: -4 * 60,
|
|
|
EST: -5 * 60,
|
|
|
CDT: -5 * 60,
|
|
|
CST: -6 * 60,
|
|
|
MDT: -6 * 60,
|
|
|
MST: -7 * 60,
|
|
|
PDT: -7 * 60,
|
|
|
PST: -8 * 60,
|
|
|
};
|
|
|
|
|
|
// date from iso format
|
|
|
function configFromISO(config) {
|
|
|
var i,
|
|
|
l,
|
|
|
string = config._i,
|
|
|
match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
|
|
|
allowTime,
|
|
|
dateFormat,
|
|
|
timeFormat,
|
|
|
tzFormat;
|
|
|
|
|
|
if (match) {
|
|
|
getParsingFlags(config).iso = true;
|
|
|
|
|
|
for (i = 0, l = isoDates.length; i < l; i++) {
|
|
|
if (isoDates[i][1].exec(match[1])) {
|
|
|
dateFormat = isoDates[i][0];
|
|
|
allowTime = isoDates[i][2] !== false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if (dateFormat == null) {
|
|
|
config._isValid = false;
|
|
|
return;
|
|
|
}
|
|
|
if (match[3]) {
|
|
|
for (i = 0, l = isoTimes.length; i < l; i++) {
|
|
|
if (isoTimes[i][1].exec(match[3])) {
|
|
|
// match[2] should be 'T' or space
|
|
|
timeFormat = (match[2] || ' ') + isoTimes[i][0];
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if (timeFormat == null) {
|
|
|
config._isValid = false;
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
if (!allowTime && timeFormat != null) {
|
|
|
config._isValid = false;
|
|
|
return;
|
|
|
}
|
|
|
if (match[4]) {
|
|
|
if (tzRegex.exec(match[4])) {
|
|
|
tzFormat = 'Z';
|
|
|
} else {
|
|
|
config._isValid = false;
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
|
|
|
configFromStringAndFormat(config);
|
|
|
} else {
|
|
|
config._isValid = false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function extractFromRFC2822Strings(
|
|
|
yearStr,
|
|
|
monthStr,
|
|
|
dayStr,
|
|
|
hourStr,
|
|
|
minuteStr,
|
|
|
secondStr
|
|
|
) {
|
|
|
var result = [
|
|
|
untruncateYear(yearStr),
|
|
|
defaultLocaleMonthsShort.indexOf(monthStr),
|
|
|
parseInt(dayStr, 10),
|
|
|
parseInt(hourStr, 10),
|
|
|
parseInt(minuteStr, 10),
|
|
|
];
|
|
|
|
|
|
if (secondStr) {
|
|
|
result.push(parseInt(secondStr, 10));
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
function untruncateYear(yearStr) {
|
|
|
var year = parseInt(yearStr, 10);
|
|
|
if (year <= 49) {
|
|
|
return 2000 + year;
|
|
|
} else if (year <= 999) {
|
|
|
return 1900 + year;
|
|
|
}
|
|
|
return year;
|
|
|
}
|
|
|
|
|
|
function preprocessRFC2822(s) {
|
|
|
// Remove comments and folding whitespace and replace multiple-spaces with a single space
|
|
|
return s
|
|
|
.replace(/\([^)]*\)|[\n\t]/g, ' ')
|
|
|
.replace(/(\s\s+)/g, ' ')
|
|
|
.replace(/^\s\s*/, '')
|
|
|
.replace(/\s\s*$/, '');
|
|
|
}
|
|
|
|
|
|
function checkWeekday(weekdayStr, parsedInput, config) {
|
|
|
if (weekdayStr) {
|
|
|
// TODO: Replace the vanilla JS Date object with an independent day-of-week check.
|
|
|
var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
|
|
|
weekdayActual = new Date(
|
|
|
parsedInput[0],
|
|
|
parsedInput[1],
|
|
|
parsedInput[2]
|
|
|
).getDay();
|
|
|
if (weekdayProvided !== weekdayActual) {
|
|
|
getParsingFlags(config).weekdayMismatch = true;
|
|
|
config._isValid = false;
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
function calculateOffset(obsOffset, militaryOffset, numOffset) {
|
|
|
if (obsOffset) {
|
|
|
return obsOffsets[obsOffset];
|
|
|
} else if (militaryOffset) {
|
|
|
// the only allowed military tz is Z
|
|
|
return 0;
|
|
|
} else {
|
|
|
var hm = parseInt(numOffset, 10),
|
|
|
m = hm % 100,
|
|
|
h = (hm - m) / 100;
|
|
|
return h * 60 + m;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// date and time from ref 2822 format
|
|
|
function configFromRFC2822(config) {
|
|
|
var match = rfc2822.exec(preprocessRFC2822(config._i)),
|
|
|
parsedArray;
|
|
|
if (match) {
|
|
|
parsedArray = extractFromRFC2822Strings(
|
|
|
match[4],
|
|
|
match[3],
|
|
|
match[2],
|
|
|
match[5],
|
|
|
match[6],
|
|
|
match[7]
|
|
|
);
|
|
|
if (!checkWeekday(match[1], parsedArray, config)) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
config._a = parsedArray;
|
|
|
config._tzm = calculateOffset(match[8], match[9], match[10]);
|
|
|
|
|
|
config._d = createUTCDate.apply(null, config._a);
|
|
|
config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
|
|
|
|
|
|
getParsingFlags(config).rfc2822 = true;
|
|
|
} else {
|
|
|
config._isValid = false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict
|
|
|
function configFromString(config) {
|
|
|
var matched = aspNetJsonRegex.exec(config._i);
|
|
|
if (matched !== null) {
|
|
|
config._d = new Date(+matched[1]);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
configFromISO(config);
|
|
|
if (config._isValid === false) {
|
|
|
delete config._isValid;
|
|
|
} else {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
configFromRFC2822(config);
|
|
|
if (config._isValid === false) {
|
|
|
delete config._isValid;
|
|
|
} else {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (config._strict) {
|
|
|
config._isValid = false;
|
|
|
} else {
|
|
|
// Final attempt, use Input Fallback
|
|
|
hooks.createFromInputFallback(config);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
hooks.createFromInputFallback = deprecate(
|
|
|
'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
|
|
|
'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
|
|
|
'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',
|
|
|
function (config) {
|
|
|
config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
|
|
|
}
|
|
|
);
|
|
|
|
|
|
// Pick the first defined of two or three arguments.
|
|
|
function defaults(a, b, c) {
|
|
|
if (a != null) {
|
|
|
return a;
|
|
|
}
|
|
|
if (b != null) {
|
|
|
return b;
|
|
|
}
|
|
|
return c;
|
|
|
}
|
|
|
|
|
|
function currentDateArray(config) {
|
|
|
// hooks is actually the exported moment object
|
|
|
var nowValue = new Date(hooks.now());
|
|
|
if (config._useUTC) {
|
|
|
return [
|
|
|
nowValue.getUTCFullYear(),
|
|
|
nowValue.getUTCMonth(),
|
|
|
nowValue.getUTCDate(),
|
|
|
];
|
|
|
}
|
|
|
return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
|
|
|
}
|
|
|
|
|
|
// convert an array to a date.
|
|
|
// the array should mirror the parameters below
|
|
|
// note: all values past the year are optional and will default to the lowest possible value.
|
|
|
// [year, month, day , hour, minute, second, millisecond]
|
|
|
function configFromArray(config) {
|
|
|
var i,
|
|
|
date,
|
|
|
input = [],
|
|
|
currentDate,
|
|
|
expectedWeekday,
|
|
|
yearToUse;
|
|
|
|
|
|
if (config._d) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
currentDate = currentDateArray(config);
|
|
|
|
|
|
//compute day of the year from weeks and weekdays
|
|
|
if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
|
|
|
dayOfYearFromWeekInfo(config);
|
|
|
}
|
|
|
|
|
|
//if the day of the year is set, figure out what it is
|
|
|
if (config._dayOfYear != null) {
|
|
|
yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
|
|
|
|
|
|
if (
|
|
|
config._dayOfYear > daysInYear(yearToUse) ||
|
|
|
config._dayOfYear === 0
|
|
|
) {
|
|
|
getParsingFlags(config)._overflowDayOfYear = true;
|
|
|
}
|
|
|
|
|
|
date = createUTCDate(yearToUse, 0, config._dayOfYear);
|
|
|
config._a[MONTH] = date.getUTCMonth();
|
|
|
config._a[DATE] = date.getUTCDate();
|
|
|
}
|
|
|
|
|
|
// Default to current date.
|
|
|
// * if no year, month, day of month are given, default to today
|
|
|
// * if day of month is given, default month and year
|
|
|
// * if month is given, default only year
|
|
|
// * if year is given, don't default anything
|
|
|
for (i = 0; i < 3 && config._a[i] == null; ++i) {
|
|
|
config._a[i] = input[i] = currentDate[i];
|
|
|
}
|
|
|
|
|
|
// Zero out whatever was not defaulted, including time
|
|
|
for (; i < 7; i++) {
|
|
|
config._a[i] = input[i] =
|
|
|
config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];
|
|
|
}
|
|
|
|
|
|
// Check for 24:00:00.000
|
|
|
if (
|
|
|
config._a[HOUR] === 24 &&
|
|
|
config._a[MINUTE] === 0 &&
|
|
|
config._a[SECOND] === 0 &&
|
|
|
config._a[MILLISECOND] === 0
|
|
|
) {
|
|
|
config._nextDay = true;
|
|
|
config._a[HOUR] = 0;
|
|
|
}
|
|
|
|
|
|
config._d = (config._useUTC ? createUTCDate : createDate).apply(
|
|
|
null,
|
|
|
input
|
|
|
);
|
|
|
expectedWeekday = config._useUTC
|
|
|
? config._d.getUTCDay()
|
|
|
: config._d.getDay();
|
|
|
|
|
|
// Apply timezone offset from input. The actual utcOffset can be changed
|
|
|
// with parseZone.
|
|
|
if (config._tzm != null) {
|
|
|
config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
|
|
|
}
|
|
|
|
|
|
if (config._nextDay) {
|
|
|
config._a[HOUR] = 24;
|
|
|
}
|
|
|
|
|
|
// check for mismatching day of week
|
|
|
if (
|
|
|
config._w &&
|
|
|
typeof config._w.d !== 'undefined' &&
|
|
|
config._w.d !== expectedWeekday
|
|
|
) {
|
|
|
getParsingFlags(config).weekdayMismatch = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function dayOfYearFromWeekInfo(config) {
|
|
|
var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;
|
|
|
|
|
|
w = config._w;
|
|
|
if (w.GG != null || w.W != null || w.E != null) {
|
|
|
dow = 1;
|
|
|
doy = 4;
|
|
|
|
|
|
// TODO: We need to take the current isoWeekYear, but that depends on
|
|
|
// how we interpret now (local, utc, fixed offset). So create
|
|
|
// a now version of current config (take local/utc/offset flags, and
|
|
|
// create now).
|
|
|
weekYear = defaults(
|
|
|
w.GG,
|
|
|
config._a[YEAR],
|
|
|
weekOfYear(createLocal(), 1, 4).year
|
|
|
);
|
|
|
week = defaults(w.W, 1);
|
|
|
weekday = defaults(w.E, 1);
|
|
|
if (weekday < 1 || weekday > 7) {
|
|
|
weekdayOverflow = true;
|
|
|
}
|
|
|
} else {
|
|
|
dow = config._locale._week.dow;
|
|
|
doy = config._locale._week.doy;
|
|
|
|
|
|
curWeek = weekOfYear(createLocal(), dow, doy);
|
|
|
|
|
|
weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
|
|
|
|
|
|
// Default to current week.
|
|
|
week = defaults(w.w, curWeek.week);
|
|
|
|
|
|
if (w.d != null) {
|
|
|
// weekday -- low day numbers are considered next week
|
|
|
weekday = w.d;
|
|
|
if (weekday < 0 || weekday > 6) {
|
|
|
weekdayOverflow = true;
|
|
|
}
|
|
|
} else if (w.e != null) {
|
|
|
// local weekday -- counting starts from beginning of week
|
|
|
weekday = w.e + dow;
|
|
|
if (w.e < 0 || w.e > 6) {
|
|
|
weekdayOverflow = true;
|
|
|
}
|
|
|
} else {
|
|
|
// default to beginning of week
|
|
|
weekday = dow;
|
|
|
}
|
|
|
}
|
|
|
if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
|
|
|
getParsingFlags(config)._overflowWeeks = true;
|
|
|
} else if (weekdayOverflow != null) {
|
|
|
getParsingFlags(config)._overflowWeekday = true;
|
|
|
} else {
|
|
|
temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
|
|
|
config._a[YEAR] = temp.year;
|
|
|
config._dayOfYear = temp.dayOfYear;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// constant that refers to the ISO standard
|
|
|
hooks.ISO_8601 = function () {};
|
|
|
|
|
|
// constant that refers to the RFC 2822 form
|
|
|
hooks.RFC_2822 = function () {};
|
|
|
|
|
|
// date from string and format string
|
|
|
function configFromStringAndFormat(config) {
|
|
|
// TODO: Move this to another part of the creation flow to prevent circular deps
|
|
|
if (config._f === hooks.ISO_8601) {
|
|
|
configFromISO(config);
|
|
|
return;
|
|
|
}
|
|
|
if (config._f === hooks.RFC_2822) {
|
|
|
configFromRFC2822(config);
|
|
|
return;
|
|
|
}
|
|
|
config._a = [];
|
|
|
getParsingFlags(config).empty = true;
|
|
|
|
|
|
// This array is used to make a Date, either with `new Date` or `Date.UTC`
|
|
|
var string = '' + config._i,
|
|
|
i,
|
|
|
parsedInput,
|
|
|
tokens,
|
|
|
token,
|
|
|
skipped,
|
|
|
stringLength = string.length,
|
|
|
totalParsedInputLength = 0,
|
|
|
era;
|
|
|
|
|
|
tokens =
|
|
|
expandFormat(config._f, config._locale).match(formattingTokens) || [];
|
|
|
|
|
|
for (i = 0; i < tokens.length; i++) {
|
|
|
token = tokens[i];
|
|
|
parsedInput = (string.match(getParseRegexForToken(token, config)) ||
|
|
|
[])[0];
|
|
|
if (parsedInput) {
|
|
|
skipped = string.substr(0, string.indexOf(parsedInput));
|
|
|
if (skipped.length > 0) {
|
|
|
getParsingFlags(config).unusedInput.push(skipped);
|
|
|
}
|
|
|
string = string.slice(
|
|
|
string.indexOf(parsedInput) + parsedInput.length
|
|
|
);
|
|
|
totalParsedInputLength += parsedInput.length;
|
|
|
}
|
|
|
// don't parse if it's not a known token
|
|
|
if (formatTokenFunctions[token]) {
|
|
|
if (parsedInput) {
|
|
|
getParsingFlags(config).empty = false;
|
|
|
} else {
|
|
|
getParsingFlags(config).unusedTokens.push(token);
|
|
|
}
|
|
|
addTimeToArrayFromToken(token, parsedInput, config);
|
|
|
} else if (config._strict && !parsedInput) {
|
|
|
getParsingFlags(config).unusedTokens.push(token);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// add remaining unparsed input length to the string
|
|
|
getParsingFlags(config).charsLeftOver =
|
|
|
stringLength - totalParsedInputLength;
|
|
|
if (string.length > 0) {
|
|
|
getParsingFlags(config).unusedInput.push(string);
|
|
|
}
|
|
|
|
|
|
// clear _12h flag if hour is <= 12
|
|
|
if (
|
|
|
config._a[HOUR] <= 12 &&
|
|
|
getParsingFlags(config).bigHour === true &&
|
|
|
config._a[HOUR] > 0
|
|
|
) {
|
|
|
getParsingFlags(config).bigHour = undefined;
|
|
|
}
|
|
|
|
|
|
getParsingFlags(config).parsedDateParts = config._a.slice(0);
|
|
|
getParsingFlags(config).meridiem = config._meridiem;
|
|
|
// handle meridiem
|
|
|
config._a[HOUR] = meridiemFixWrap(
|
|
|
config._locale,
|
|
|
config._a[HOUR],
|
|
|
config._meridiem
|
|
|
);
|
|
|
|
|
|
// handle era
|
|
|
era = getParsingFlags(config).era;
|
|
|
if (era !== null) {
|
|
|
config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);
|
|
|
}
|
|
|
|
|
|
configFromArray(config);
|
|
|
checkOverflow(config);
|
|
|
}
|
|
|
|
|
|
function meridiemFixWrap(locale, hour, meridiem) {
|
|
|
var isPm;
|
|
|
|
|
|
if (meridiem == null) {
|
|
|
// nothing to do
|
|
|
return hour;
|
|
|
}
|
|
|
if (locale.meridiemHour != null) {
|
|
|
return locale.meridiemHour(hour, meridiem);
|
|
|
} else if (locale.isPM != null) {
|
|
|
// Fallback
|
|
|
isPm = locale.isPM(meridiem);
|
|
|
if (isPm && hour < 12) {
|
|
|
hour += 12;
|
|
|
}
|
|
|
if (!isPm && hour === 12) {
|
|
|
hour = 0;
|
|
|
}
|
|
|
return hour;
|
|
|
} else {
|
|
|
// this is not supposed to happen
|
|
|
return hour;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// date from string and array of format strings
|
|
|
function configFromStringAndArray(config) {
|
|
|
var tempConfig,
|
|
|
bestMoment,
|
|
|
scoreToBeat,
|
|
|
i,
|
|
|
currentScore,
|
|
|
validFormatFound,
|
|
|
bestFormatIsValid = false;
|
|
|
|
|
|
if (config._f.length === 0) {
|
|
|
getParsingFlags(config).invalidFormat = true;
|
|
|
config._d = new Date(NaN);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
for (i = 0; i < config._f.length; i++) {
|
|
|
currentScore = 0;
|
|
|
validFormatFound = false;
|
|
|
tempConfig = copyConfig({}, config);
|
|
|
if (config._useUTC != null) {
|
|
|
tempConfig._useUTC = config._useUTC;
|
|
|
}
|
|
|
tempConfig._f = config._f[i];
|
|
|
configFromStringAndFormat(tempConfig);
|
|
|
|
|
|
if (isValid(tempConfig)) {
|
|
|
validFormatFound = true;
|
|
|
}
|
|
|
|
|
|
// if there is any input that was not parsed add a penalty for that format
|
|
|
currentScore += getParsingFlags(tempConfig).charsLeftOver;
|
|
|
|
|
|
//or tokens
|
|
|
currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
|
|
|
|
|
|
getParsingFlags(tempConfig).score = currentScore;
|
|
|
|
|
|
if (!bestFormatIsValid) {
|
|
|
if (
|
|
|
scoreToBeat == null ||
|
|
|
currentScore < scoreToBeat ||
|
|
|
validFormatFound
|
|
|
) {
|
|
|
scoreToBeat = currentScore;
|
|
|
bestMoment = tempConfig;
|
|
|
if (validFormatFound) {
|
|
|
bestFormatIsValid = true;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
if (currentScore < scoreToBeat) {
|
|
|
scoreToBeat = currentScore;
|
|
|
bestMoment = tempConfig;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
extend(config, bestMoment || tempConfig);
|
|
|
}
|
|
|
|
|
|
function configFromObject(config) {
|
|
|
if (config._d) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var i = normalizeObjectUnits(config._i),
|
|
|
dayOrDate = i.day === undefined ? i.date : i.day;
|
|
|
config._a = map(
|
|
|
[i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],
|
|
|
function (obj) {
|
|
|
return obj && parseInt(obj, 10);
|
|
|
}
|
|
|
);
|
|
|
|
|
|
configFromArray(config);
|
|
|
}
|
|
|
|
|
|
function createFromConfig(config) {
|
|
|
var res = new Moment(checkOverflow(prepareConfig(config)));
|
|
|
if (res._nextDay) {
|
|
|
// Adding is smart enough around DST
|
|
|
res.add(1, 'd');
|
|
|
res._nextDay = undefined;
|
|
|
}
|
|
|
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
function prepareConfig(config) {
|
|
|
var input = config._i,
|
|
|
format = config._f;
|
|
|
|
|
|
config._locale = config._locale || getLocale(config._l);
|
|
|
|
|
|
if (input === null || (format === undefined && input === '')) {
|
|
|
return createInvalid({ nullInput: true });
|
|
|
}
|
|
|
|
|
|
if (typeof input === 'string') {
|
|
|
config._i = input = config._locale.preparse(input);
|
|
|
}
|
|
|
|
|
|
if (isMoment(input)) {
|
|
|
return new Moment(checkOverflow(input));
|
|
|
} else if (isDate(input)) {
|
|
|
config._d = input;
|
|
|
} else if (isArray(format)) {
|
|
|
configFromStringAndArray(config);
|
|
|
} else if (format) {
|
|
|
configFromStringAndFormat(config);
|
|
|
} else {
|
|
|
configFromInput(config);
|
|
|
}
|
|
|
|
|
|
if (!isValid(config)) {
|
|
|
config._d = null;
|
|
|
}
|
|
|
|
|
|
return config;
|
|
|
}
|
|
|
|
|
|
function configFromInput(config) {
|
|
|
var input = config._i;
|
|
|
if (isUndefined(input)) {
|
|
|
config._d = new Date(hooks.now());
|
|
|
} else if (isDate(input)) {
|
|
|
config._d = new Date(input.valueOf());
|
|
|
} else if (typeof input === 'string') {
|
|
|
configFromString(config);
|
|
|
} else if (isArray(input)) {
|
|
|
config._a = map(input.slice(0), function (obj) {
|
|
|
return parseInt(obj, 10);
|
|
|
});
|
|
|
configFromArray(config);
|
|
|
} else if (isObject(input)) {
|
|
|
configFromObject(config);
|
|
|
} else if (isNumber(input)) {
|
|
|
// from milliseconds
|
|
|
config._d = new Date(input);
|
|
|
} else {
|
|
|
hooks.createFromInputFallback(config);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function createLocalOrUTC(input, format, locale, strict, isUTC) {
|
|
|
var c = {};
|
|
|
|
|
|
if (format === true || format === false) {
|
|
|
strict = format;
|
|
|
format = undefined;
|
|
|
}
|
|
|
|
|
|
if (locale === true || locale === false) {
|
|
|
strict = locale;
|
|
|
locale = undefined;
|
|
|
}
|
|
|
|
|
|
if (
|
|
|
(isObject(input) && isObjectEmpty(input)) ||
|
|
|
(isArray(input) && input.length === 0)
|
|
|
) {
|
|
|
input = undefined;
|
|
|
}
|
|
|
// object construction must be done this way.
|
|
|
// https://github.com/moment/moment/issues/1423
|
|
|
c._isAMomentObject = true;
|
|
|
c._useUTC = c._isUTC = isUTC;
|
|
|
c._l = locale;
|
|
|
c._i = input;
|
|
|
c._f = format;
|
|
|
c._strict = strict;
|
|
|
|
|
|
return createFromConfig(c);
|
|
|
}
|
|
|
|
|
|
function createLocal(input, format, locale, strict) {
|
|
|
return createLocalOrUTC(input, format, locale, strict, false);
|
|
|
}
|
|
|
|
|
|
var prototypeMin = deprecate(
|
|
|
'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
|
|
|
function () {
|
|
|
var other = createLocal.apply(null, arguments);
|
|
|
if (this.isValid() && other.isValid()) {
|
|
|
return other < this ? this : other;
|
|
|
} else {
|
|
|
return createInvalid();
|
|
|
}
|
|
|
}
|
|
|
),
|
|
|
prototypeMax = deprecate(
|
|
|
'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
|
|
|
function () {
|
|
|
var other = createLocal.apply(null, arguments);
|
|
|
if (this.isValid() && other.isValid()) {
|
|
|
return other > this ? this : other;
|
|
|
} else {
|
|
|
return createInvalid();
|
|
|
}
|
|
|
}
|
|
|
);
|
|
|
|
|
|
// Pick a moment m from moments so that m[fn](other) is true for all
|
|
|
// other. This relies on the function fn to be transitive.
|
|
|
//
|
|
|
// moments should either be an array of moment objects or an array, whose
|
|
|
// first element is an array of moment objects.
|
|
|
function pickBy(fn, moments) {
|
|
|
var res, i;
|
|
|
if (moments.length === 1 && isArray(moments[0])) {
|
|
|
moments = moments[0];
|
|
|
}
|
|
|
if (!moments.length) {
|
|
|
return createLocal();
|
|
|
}
|
|
|
res = moments[0];
|
|
|
for (i = 1; i < moments.length; ++i) {
|
|
|
if (!moments[i].isValid() || moments[i][fn](res)) {
|
|
|
res = moments[i];
|
|
|
}
|
|
|
}
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
// TODO: Use [].sort instead?
|
|
|
function min() {
|
|
|
var args = [].slice.call(arguments, 0);
|
|
|
|
|
|
return pickBy('isBefore', args);
|
|
|
}
|
|
|
|
|
|
function max() {
|
|
|
var args = [].slice.call(arguments, 0);
|
|
|
|
|
|
return pickBy('isAfter', args);
|
|
|
}
|
|
|
|
|
|
var now = function () {
|
|
|
return Date.now ? Date.now() : +new Date();
|
|
|
};
|
|
|
|
|
|
var ordering = [
|
|
|
'year',
|
|
|
'quarter',
|
|
|
'month',
|
|
|
'week',
|
|
|
'day',
|
|
|
'hour',
|
|
|
'minute',
|
|
|
'second',
|
|
|
'millisecond',
|
|
|
];
|
|
|
|
|
|
function isDurationValid(m) {
|
|
|
var key,
|
|
|
unitHasDecimal = false,
|
|
|
i;
|
|
|
for (key in m) {
|
|
|
if (
|
|
|
hasOwnProp(m, key) &&
|
|
|
!(
|
|
|
indexOf.call(ordering, key) !== -1 &&
|
|
|
(m[key] == null || !isNaN(m[key]))
|
|
|
)
|
|
|
) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
for (i = 0; i < ordering.length; ++i) {
|
|
|
if (m[ordering[i]]) {
|
|
|
if (unitHasDecimal) {
|
|
|
return false; // only allow non-integers for smallest unit
|
|
|
}
|
|
|
if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
|
|
|
unitHasDecimal = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
function isValid$1() {
|
|
|
return this._isValid;
|
|
|
}
|
|
|
|
|
|
function createInvalid$1() {
|
|
|
return createDuration(NaN);
|
|
|
}
|
|
|
|
|
|
function Duration(duration) {
|
|
|
var normalizedInput = normalizeObjectUnits(duration),
|
|
|
years = normalizedInput.year || 0,
|
|
|
quarters = normalizedInput.quarter || 0,
|
|
|
months = normalizedInput.month || 0,
|
|
|
weeks = normalizedInput.week || normalizedInput.isoWeek || 0,
|
|
|
days = normalizedInput.day || 0,
|
|
|
hours = normalizedInput.hour || 0,
|
|
|
minutes = normalizedInput.minute || 0,
|
|
|
seconds = normalizedInput.second || 0,
|
|
|
milliseconds = normalizedInput.millisecond || 0;
|
|
|
|
|
|
this._isValid = isDurationValid(normalizedInput);
|
|
|
|
|
|
// representation for dateAddRemove
|
|
|
this._milliseconds =
|
|
|
+milliseconds +
|
|
|
seconds * 1e3 + // 1000
|
|
|
minutes * 6e4 + // 1000 * 60
|
|
|
hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
|
|
|
// Because of dateAddRemove treats 24 hours as different from a
|
|
|
// day when working around DST, we need to store them separately
|
|
|
this._days = +days + weeks * 7;
|
|
|
// It is impossible to translate months into days without knowing
|
|
|
// which months you are are talking about, so we have to store
|
|
|
// it separately.
|
|
|
this._months = +months + quarters * 3 + years * 12;
|
|
|
|
|
|
this._data = {};
|
|
|
|
|
|
this._locale = getLocale();
|
|
|
|
|
|
this._bubble();
|
|
|
}
|
|
|
|
|
|
function isDuration(obj) {
|
|
|
return obj instanceof Duration;
|
|
|
}
|
|
|
|
|
|
function absRound(number) {
|
|
|
if (number < 0) {
|
|
|
return Math.round(-1 * number) * -1;
|
|
|
} else {
|
|
|
return Math.round(number);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// compare two arrays, return the number of differences
|
|
|
function compareArrays(array1, array2, dontConvert) {
|
|
|
var len = Math.min(array1.length, array2.length),
|
|
|
lengthDiff = Math.abs(array1.length - array2.length),
|
|
|
diffs = 0,
|
|
|
i;
|
|
|
for (i = 0; i < len; i++) {
|
|
|
if (
|
|
|
(dontConvert && array1[i] !== array2[i]) ||
|
|
|
(!dontConvert && toInt(array1[i]) !== toInt(array2[i]))
|
|
|
) {
|
|
|
diffs++;
|
|
|
}
|
|
|
}
|
|
|
return diffs + lengthDiff;
|
|
|
}
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
function offset(token, separator) {
|
|
|
addFormatToken(token, 0, 0, function () {
|
|
|
var offset = this.utcOffset(),
|
|
|
sign = '+';
|
|
|
if (offset < 0) {
|
|
|
offset = -offset;
|
|
|
sign = '-';
|
|
|
}
|
|
|
return (
|
|
|
sign +
|
|
|
zeroFill(~~(offset / 60), 2) +
|
|
|
separator +
|
|
|
zeroFill(~~offset % 60, 2)
|
|
|
);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
offset('Z', ':');
|
|
|
offset('ZZ', '');
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('Z', matchShortOffset);
|
|
|
addRegexToken('ZZ', matchShortOffset);
|
|
|
addParseToken(['Z', 'ZZ'], function (input, array, config) {
|
|
|
config._useUTC = true;
|
|
|
config._tzm = offsetFromString(matchShortOffset, input);
|
|
|
});
|
|
|
|
|
|
// HELPERS
|
|
|
|
|
|
// timezone chunker
|
|
|
// '+10:00' > ['10', '00']
|
|
|
// '-1530' > ['-15', '30']
|
|
|
var chunkOffset = /([\+\-]|\d\d)/gi;
|
|
|
|
|
|
function offsetFromString(matcher, string) {
|
|
|
var matches = (string || '').match(matcher),
|
|
|
chunk,
|
|
|
parts,
|
|
|
minutes;
|
|
|
|
|
|
if (matches === null) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
chunk = matches[matches.length - 1] || [];
|
|
|
parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
|
|
|
minutes = +(parts[1] * 60) + toInt(parts[2]);
|
|
|
|
|
|
return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;
|
|
|
}
|
|
|
|
|
|
// Return a moment from input, that is local/utc/zone equivalent to model.
|
|
|
function cloneWithOffset(input, model) {
|
|
|
var res, diff;
|
|
|
if (model._isUTC) {
|
|
|
res = model.clone();
|
|
|
diff =
|
|
|
(isMoment(input) || isDate(input)
|
|
|
? input.valueOf()
|
|
|
: createLocal(input).valueOf()) - res.valueOf();
|
|
|
// Use low-level api, because this fn is low-level api.
|
|
|
res._d.setTime(res._d.valueOf() + diff);
|
|
|
hooks.updateOffset(res, false);
|
|
|
return res;
|
|
|
} else {
|
|
|
return createLocal(input).local();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function getDateOffset(m) {
|
|
|
// On Firefox.24 Date#getTimezoneOffset returns a floating point.
|
|
|
// https://github.com/moment/moment/pull/1871
|
|
|
return -Math.round(m._d.getTimezoneOffset());
|
|
|
}
|
|
|
|
|
|
// HOOKS
|
|
|
|
|
|
// This function will be called whenever a moment is mutated.
|
|
|
// It is intended to keep the offset in sync with the timezone.
|
|
|
hooks.updateOffset = function () {};
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
// keepLocalTime = true means only change the timezone, without
|
|
|
// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
|
|
|
// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
|
|
|
// +0200, so we adjust the time as needed, to be valid.
|
|
|
//
|
|
|
// Keeping the time actually adds/subtracts (one hour)
|
|
|
// from the actual represented time. That is why we call updateOffset
|
|
|
// a second time. In case it wants us to change the offset again
|
|
|
// _changeInProgress == true case, then we have to adjust, because
|
|
|
// there is no such time in the given timezone.
|
|
|
function getSetOffset(input, keepLocalTime, keepMinutes) {
|
|
|
var offset = this._offset || 0,
|
|
|
localAdjust;
|
|
|
if (!this.isValid()) {
|
|
|
return input != null ? this : NaN;
|
|
|
}
|
|
|
if (input != null) {
|
|
|
if (typeof input === 'string') {
|
|
|
input = offsetFromString(matchShortOffset, input);
|
|
|
if (input === null) {
|
|
|
return this;
|
|
|
}
|
|
|
} else if (Math.abs(input) < 16 && !keepMinutes) {
|
|
|
input = input * 60;
|
|
|
}
|
|
|
if (!this._isUTC && keepLocalTime) {
|
|
|
localAdjust = getDateOffset(this);
|
|
|
}
|
|
|
this._offset = input;
|
|
|
this._isUTC = true;
|
|
|
if (localAdjust != null) {
|
|
|
this.add(localAdjust, 'm');
|
|
|
}
|
|
|
if (offset !== input) {
|
|
|
if (!keepLocalTime || this._changeInProgress) {
|
|
|
addSubtract(
|
|
|
this,
|
|
|
createDuration(input - offset, 'm'),
|
|
|
1,
|
|
|
false
|
|
|
);
|
|
|
} else if (!this._changeInProgress) {
|
|
|
this._changeInProgress = true;
|
|
|
hooks.updateOffset(this, true);
|
|
|
this._changeInProgress = null;
|
|
|
}
|
|
|
}
|
|
|
return this;
|
|
|
} else {
|
|
|
return this._isUTC ? offset : getDateOffset(this);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function getSetZone(input, keepLocalTime) {
|
|
|
if (input != null) {
|
|
|
if (typeof input !== 'string') {
|
|
|
input = -input;
|
|
|
}
|
|
|
|
|
|
this.utcOffset(input, keepLocalTime);
|
|
|
|
|
|
return this;
|
|
|
} else {
|
|
|
return -this.utcOffset();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function setOffsetToUTC(keepLocalTime) {
|
|
|
return this.utcOffset(0, keepLocalTime);
|
|
|
}
|
|
|
|
|
|
function setOffsetToLocal(keepLocalTime) {
|
|
|
if (this._isUTC) {
|
|
|
this.utcOffset(0, keepLocalTime);
|
|
|
this._isUTC = false;
|
|
|
|
|
|
if (keepLocalTime) {
|
|
|
this.subtract(getDateOffset(this), 'm');
|
|
|
}
|
|
|
}
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
function setOffsetToParsedOffset() {
|
|
|
if (this._tzm != null) {
|
|
|
this.utcOffset(this._tzm, false, true);
|
|
|
} else if (typeof this._i === 'string') {
|
|
|
var tZone = offsetFromString(matchOffset, this._i);
|
|
|
if (tZone != null) {
|
|
|
this.utcOffset(tZone);
|
|
|
} else {
|
|
|
this.utcOffset(0, true);
|
|
|
}
|
|
|
}
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
function hasAlignedHourOffset(input) {
|
|
|
if (!this.isValid()) {
|
|
|
return false;
|
|
|
}
|
|
|
input = input ? createLocal(input).utcOffset() : 0;
|
|
|
|
|
|
return (this.utcOffset() - input) % 60 === 0;
|
|
|
}
|
|
|
|
|
|
function isDaylightSavingTime() {
|
|
|
return (
|
|
|
this.utcOffset() > this.clone().month(0).utcOffset() ||
|
|
|
this.utcOffset() > this.clone().month(5).utcOffset()
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function isDaylightSavingTimeShifted() {
|
|
|
if (!isUndefined(this._isDSTShifted)) {
|
|
|
return this._isDSTShifted;
|
|
|
}
|
|
|
|
|
|
var c = {},
|
|
|
other;
|
|
|
|
|
|
copyConfig(c, this);
|
|
|
c = prepareConfig(c);
|
|
|
|
|
|
if (c._a) {
|
|
|
other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
|
|
|
this._isDSTShifted =
|
|
|
this.isValid() && compareArrays(c._a, other.toArray()) > 0;
|
|
|
} else {
|
|
|
this._isDSTShifted = false;
|
|
|
}
|
|
|
|
|
|
return this._isDSTShifted;
|
|
|
}
|
|
|
|
|
|
function isLocal() {
|
|
|
return this.isValid() ? !this._isUTC : false;
|
|
|
}
|
|
|
|
|
|
function isUtcOffset() {
|
|
|
return this.isValid() ? this._isUTC : false;
|
|
|
}
|
|
|
|
|
|
function isUtc() {
|
|
|
return this.isValid() ? this._isUTC && this._offset === 0 : false;
|
|
|
}
|
|
|
|
|
|
// ASP.NET json date format regex
|
|
|
var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,
|
|
|
// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
|
|
|
// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
|
|
|
// and further modified to allow for strings containing both week and day
|
|
|
isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
|
|
|
|
|
|
function createDuration(input, key) {
|
|
|
var duration = input,
|
|
|
// matching against regexp is expensive, do it on demand
|
|
|
match = null,
|
|
|
sign,
|
|
|
ret,
|
|
|
diffRes;
|
|
|
|
|
|
if (isDuration(input)) {
|
|
|
duration = {
|
|
|
ms: input._milliseconds,
|
|
|
d: input._days,
|
|
|
M: input._months,
|
|
|
};
|
|
|
} else if (isNumber(input) || !isNaN(+input)) {
|
|
|
duration = {};
|
|
|
if (key) {
|
|
|
duration[key] = +input;
|
|
|
} else {
|
|
|
duration.milliseconds = +input;
|
|
|
}
|
|
|
} else if ((match = aspNetRegex.exec(input))) {
|
|
|
sign = match[1] === '-' ? -1 : 1;
|
|
|
duration = {
|
|
|
y: 0,
|
|
|
d: toInt(match[DATE]) * sign,
|
|
|
h: toInt(match[HOUR]) * sign,
|
|
|
m: toInt(match[MINUTE]) * sign,
|
|
|
s: toInt(match[SECOND]) * sign,
|
|
|
ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match
|
|
|
};
|
|
|
} else if ((match = isoRegex.exec(input))) {
|
|
|
sign = match[1] === '-' ? -1 : 1;
|
|
|
duration = {
|
|
|
y: parseIso(match[2], sign),
|
|
|
M: parseIso(match[3], sign),
|
|
|
w: parseIso(match[4], sign),
|
|
|
d: parseIso(match[5], sign),
|
|
|
h: parseIso(match[6], sign),
|
|
|
m: parseIso(match[7], sign),
|
|
|
s: parseIso(match[8], sign),
|
|
|
};
|
|
|
} else if (duration == null) {
|
|
|
// checks for null or undefined
|
|
|
duration = {};
|
|
|
} else if (
|
|
|
typeof duration === 'object' &&
|
|
|
('from' in duration || 'to' in duration)
|
|
|
) {
|
|
|
diffRes = momentsDifference(
|
|
|
createLocal(duration.from),
|
|
|
createLocal(duration.to)
|
|
|
);
|
|
|
|
|
|
duration = {};
|
|
|
duration.ms = diffRes.milliseconds;
|
|
|
duration.M = diffRes.months;
|
|
|
}
|
|
|
|
|
|
ret = new Duration(duration);
|
|
|
|
|
|
if (isDuration(input) && hasOwnProp(input, '_locale')) {
|
|
|
ret._locale = input._locale;
|
|
|
}
|
|
|
|
|
|
if (isDuration(input) && hasOwnProp(input, '_isValid')) {
|
|
|
ret._isValid = input._isValid;
|
|
|
}
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
createDuration.fn = Duration.prototype;
|
|
|
createDuration.invalid = createInvalid$1;
|
|
|
|
|
|
function parseIso(inp, sign) {
|
|
|
// We'd normally use ~~inp for this, but unfortunately it also
|
|
|
// converts floats to ints.
|
|
|
// inp may be undefined, so careful calling replace on it.
|
|
|
var res = inp && parseFloat(inp.replace(',', '.'));
|
|
|
// apply sign while we're at it
|
|
|
return (isNaN(res) ? 0 : res) * sign;
|
|
|
}
|
|
|
|
|
|
function positiveMomentsDifference(base, other) {
|
|
|
var res = {};
|
|
|
|
|
|
res.months =
|
|
|
other.month() - base.month() + (other.year() - base.year()) * 12;
|
|
|
if (base.clone().add(res.months, 'M').isAfter(other)) {
|
|
|
--res.months;
|
|
|
}
|
|
|
|
|
|
res.milliseconds = +other - +base.clone().add(res.months, 'M');
|
|
|
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
function momentsDifference(base, other) {
|
|
|
var res;
|
|
|
if (!(base.isValid() && other.isValid())) {
|
|
|
return { milliseconds: 0, months: 0 };
|
|
|
}
|
|
|
|
|
|
other = cloneWithOffset(other, base);
|
|
|
if (base.isBefore(other)) {
|
|
|
res = positiveMomentsDifference(base, other);
|
|
|
} else {
|
|
|
res = positiveMomentsDifference(other, base);
|
|
|
res.milliseconds = -res.milliseconds;
|
|
|
res.months = -res.months;
|
|
|
}
|
|
|
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
// TODO: remove 'name' arg after deprecation is removed
|
|
|
function createAdder(direction, name) {
|
|
|
return function (val, period) {
|
|
|
var dur, tmp;
|
|
|
//invert the arguments, but complain about it
|
|
|
if (period !== null && !isNaN(+period)) {
|
|
|
deprecateSimple(
|
|
|
name,
|
|
|
'moment().' +
|
|
|
name +
|
|
|
'(period, number) is deprecated. Please use moment().' +
|
|
|
name +
|
|
|
'(number, period). ' +
|
|
|
'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'
|
|
|
);
|
|
|
tmp = val;
|
|
|
val = period;
|
|
|
period = tmp;
|
|
|
}
|
|
|
|
|
|
dur = createDuration(val, period);
|
|
|
addSubtract(this, dur, direction);
|
|
|
return this;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function addSubtract(mom, duration, isAdding, updateOffset) {
|
|
|
var milliseconds = duration._milliseconds,
|
|
|
days = absRound(duration._days),
|
|
|
months = absRound(duration._months);
|
|
|
|
|
|
if (!mom.isValid()) {
|
|
|
// No op
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
updateOffset = updateOffset == null ? true : updateOffset;
|
|
|
|
|
|
if (months) {
|
|
|
setMonth(mom, get(mom, 'Month') + months * isAdding);
|
|
|
}
|
|
|
if (days) {
|
|
|
set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
|
|
|
}
|
|
|
if (milliseconds) {
|
|
|
mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
|
|
|
}
|
|
|
if (updateOffset) {
|
|
|
hooks.updateOffset(mom, days || months);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var add = createAdder(1, 'add'),
|
|
|
subtract = createAdder(-1, 'subtract');
|
|
|
|
|
|
function isString(input) {
|
|
|
return typeof input === 'string' || input instanceof String;
|
|
|
}
|
|
|
|
|
|
// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined
|
|
|
function isMomentInput(input) {
|
|
|
return (
|
|
|
isMoment(input) ||
|
|
|
isDate(input) ||
|
|
|
isString(input) ||
|
|
|
isNumber(input) ||
|
|
|
isNumberOrStringArray(input) ||
|
|
|
isMomentInputObject(input) ||
|
|
|
input === null ||
|
|
|
input === undefined
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function isMomentInputObject(input) {
|
|
|
var objectTest = isObject(input) && !isObjectEmpty(input),
|
|
|
propertyTest = false,
|
|
|
properties = [
|
|
|
'years',
|
|
|
'year',
|
|
|
'y',
|
|
|
'months',
|
|
|
'month',
|
|
|
'M',
|
|
|
'days',
|
|
|
'day',
|
|
|
'd',
|
|
|
'dates',
|
|
|
'date',
|
|
|
'D',
|
|
|
'hours',
|
|
|
'hour',
|
|
|
'h',
|
|
|
'minutes',
|
|
|
'minute',
|
|
|
'm',
|
|
|
'seconds',
|
|
|
'second',
|
|
|
's',
|
|
|
'milliseconds',
|
|
|
'millisecond',
|
|
|
'ms',
|
|
|
],
|
|
|
i,
|
|
|
property;
|
|
|
|
|
|
for (i = 0; i < properties.length; i += 1) {
|
|
|
property = properties[i];
|
|
|
propertyTest = propertyTest || hasOwnProp(input, property);
|
|
|
}
|
|
|
|
|
|
return objectTest && propertyTest;
|
|
|
}
|
|
|
|
|
|
function isNumberOrStringArray(input) {
|
|
|
var arrayTest = isArray(input),
|
|
|
dataTypeTest = false;
|
|
|
if (arrayTest) {
|
|
|
dataTypeTest =
|
|
|
input.filter(function (item) {
|
|
|
return !isNumber(item) && isString(input);
|
|
|
}).length === 0;
|
|
|
}
|
|
|
return arrayTest && dataTypeTest;
|
|
|
}
|
|
|
|
|
|
function isCalendarSpec(input) {
|
|
|
var objectTest = isObject(input) && !isObjectEmpty(input),
|
|
|
propertyTest = false,
|
|
|
properties = [
|
|
|
'sameDay',
|
|
|
'nextDay',
|
|
|
'lastDay',
|
|
|
'nextWeek',
|
|
|
'lastWeek',
|
|
|
'sameElse',
|
|
|
],
|
|
|
i,
|
|
|
property;
|
|
|
|
|
|
for (i = 0; i < properties.length; i += 1) {
|
|
|
property = properties[i];
|
|
|
propertyTest = propertyTest || hasOwnProp(input, property);
|
|
|
}
|
|
|
|
|
|
return objectTest && propertyTest;
|
|
|
}
|
|
|
|
|
|
function getCalendarFormat(myMoment, now) {
|
|
|
var diff = myMoment.diff(now, 'days', true);
|
|
|
return diff < -6
|
|
|
? 'sameElse'
|
|
|
: diff < -1
|
|
|
? 'lastWeek'
|
|
|
: diff < 0
|
|
|
? 'lastDay'
|
|
|
: diff < 1
|
|
|
? 'sameDay'
|
|
|
: diff < 2
|
|
|
? 'nextDay'
|
|
|
: diff < 7
|
|
|
? 'nextWeek'
|
|
|
: 'sameElse';
|
|
|
}
|
|
|
|
|
|
function calendar$1(time, formats) {
|
|
|
// Support for single parameter, formats only overload to the calendar function
|
|
|
if (arguments.length === 1) {
|
|
|
if (!arguments[0]) {
|
|
|
time = undefined;
|
|
|
formats = undefined;
|
|
|
} else if (isMomentInput(arguments[0])) {
|
|
|
time = arguments[0];
|
|
|
formats = undefined;
|
|
|
} else if (isCalendarSpec(arguments[0])) {
|
|
|
formats = arguments[0];
|
|
|
time = undefined;
|
|
|
}
|
|
|
}
|
|
|
// We want to compare the start of today, vs this.
|
|
|
// Getting start-of-today depends on whether we're local/utc/offset or not.
|
|
|
var now = time || createLocal(),
|
|
|
sod = cloneWithOffset(now, this).startOf('day'),
|
|
|
format = hooks.calendarFormat(this, sod) || 'sameElse',
|
|
|
output =
|
|
|
formats &&
|
|
|
(isFunction(formats[format])
|
|
|
? formats[format].call(this, now)
|
|
|
: formats[format]);
|
|
|
|
|
|
return this.format(
|
|
|
output || this.localeData().calendar(format, this, createLocal(now))
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function clone() {
|
|
|
return new Moment(this);
|
|
|
}
|
|
|
|
|
|
function isAfter(input, units) {
|
|
|
var localInput = isMoment(input) ? input : createLocal(input);
|
|
|
if (!(this.isValid() && localInput.isValid())) {
|
|
|
return false;
|
|
|
}
|
|
|
units = normalizeUnits(units) || 'millisecond';
|
|
|
if (units === 'millisecond') {
|
|
|
return this.valueOf() > localInput.valueOf();
|
|
|
} else {
|
|
|
return localInput.valueOf() < this.clone().startOf(units).valueOf();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function isBefore(input, units) {
|
|
|
var localInput = isMoment(input) ? input : createLocal(input);
|
|
|
if (!(this.isValid() && localInput.isValid())) {
|
|
|
return false;
|
|
|
}
|
|
|
units = normalizeUnits(units) || 'millisecond';
|
|
|
if (units === 'millisecond') {
|
|
|
return this.valueOf() < localInput.valueOf();
|
|
|
} else {
|
|
|
return this.clone().endOf(units).valueOf() < localInput.valueOf();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function isBetween(from, to, units, inclusivity) {
|
|
|
var localFrom = isMoment(from) ? from : createLocal(from),
|
|
|
localTo = isMoment(to) ? to : createLocal(to);
|
|
|
if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {
|
|
|
return false;
|
|
|
}
|
|
|
inclusivity = inclusivity || '()';
|
|
|
return (
|
|
|
(inclusivity[0] === '('
|
|
|
? this.isAfter(localFrom, units)
|
|
|
: !this.isBefore(localFrom, units)) &&
|
|
|
(inclusivity[1] === ')'
|
|
|
? this.isBefore(localTo, units)
|
|
|
: !this.isAfter(localTo, units))
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function isSame(input, units) {
|
|
|
var localInput = isMoment(input) ? input : createLocal(input),
|
|
|
inputMs;
|
|
|
if (!(this.isValid() && localInput.isValid())) {
|
|
|
return false;
|
|
|
}
|
|
|
units = normalizeUnits(units) || 'millisecond';
|
|
|
if (units === 'millisecond') {
|
|
|
return this.valueOf() === localInput.valueOf();
|
|
|
} else {
|
|
|
inputMs = localInput.valueOf();
|
|
|
return (
|
|
|
this.clone().startOf(units).valueOf() <= inputMs &&
|
|
|
inputMs <= this.clone().endOf(units).valueOf()
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function isSameOrAfter(input, units) {
|
|
|
return this.isSame(input, units) || this.isAfter(input, units);
|
|
|
}
|
|
|
|
|
|
function isSameOrBefore(input, units) {
|
|
|
return this.isSame(input, units) || this.isBefore(input, units);
|
|
|
}
|
|
|
|
|
|
function diff(input, units, asFloat) {
|
|
|
var that, zoneDelta, output;
|
|
|
|
|
|
if (!this.isValid()) {
|
|
|
return NaN;
|
|
|
}
|
|
|
|
|
|
that = cloneWithOffset(input, this);
|
|
|
|
|
|
if (!that.isValid()) {
|
|
|
return NaN;
|
|
|
}
|
|
|
|
|
|
zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
|
|
|
|
|
|
units = normalizeUnits(units);
|
|
|
|
|
|
switch (units) {
|
|
|
case 'year':
|
|
|
output = monthDiff(this, that) / 12;
|
|
|
break;
|
|
|
case 'month':
|
|
|
output = monthDiff(this, that);
|
|
|
break;
|
|
|
case 'quarter':
|
|
|
output = monthDiff(this, that) / 3;
|
|
|
break;
|
|
|
case 'second':
|
|
|
output = (this - that) / 1e3;
|
|
|
break; // 1000
|
|
|
case 'minute':
|
|
|
output = (this - that) / 6e4;
|
|
|
break; // 1000 * 60
|
|
|
case 'hour':
|
|
|
output = (this - that) / 36e5;
|
|
|
break; // 1000 * 60 * 60
|
|
|
case 'day':
|
|
|
output = (this - that - zoneDelta) / 864e5;
|
|
|
break; // 1000 * 60 * 60 * 24, negate dst
|
|
|
case 'week':
|
|
|
output = (this - that - zoneDelta) / 6048e5;
|
|
|
break; // 1000 * 60 * 60 * 24 * 7, negate dst
|
|
|
default:
|
|
|
output = this - that;
|
|
|
}
|
|
|
|
|
|
return asFloat ? output : absFloor(output);
|
|
|
}
|
|
|
|
|
|
function monthDiff(a, b) {
|
|
|
if (a.date() < b.date()) {
|
|
|
// end-of-month calculations work correct when the start month has more
|
|
|
// days than the end month.
|
|
|
return -monthDiff(b, a);
|
|
|
}
|
|
|
// difference in months
|
|
|
var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),
|
|
|
// b is in (anchor - 1 month, anchor + 1 month)
|
|
|
anchor = a.clone().add(wholeMonthDiff, 'months'),
|
|
|
anchor2,
|
|
|
adjust;
|
|
|
|
|
|
if (b - anchor < 0) {
|
|
|
anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
|
|
|
// linear across the month
|
|
|
adjust = (b - anchor) / (anchor - anchor2);
|
|
|
} else {
|
|
|
anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
|
|
|
// linear across the month
|
|
|
adjust = (b - anchor) / (anchor2 - anchor);
|
|
|
}
|
|
|
|
|
|
//check for negative zero, return zero if negative zero
|
|
|
return -(wholeMonthDiff + adjust) || 0;
|
|
|
}
|
|
|
|
|
|
hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
|
|
|
hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
|
|
|
|
|
|
function toString() {
|
|
|
return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
|
|
|
}
|
|
|
|
|
|
function toISOString(keepOffset) {
|
|
|
if (!this.isValid()) {
|
|
|
return null;
|
|
|
}
|
|
|
var utc = keepOffset !== true,
|
|
|
m = utc ? this.clone().utc() : this;
|
|
|
if (m.year() < 0 || m.year() > 9999) {
|
|
|
return formatMoment(
|
|
|
m,
|
|
|
utc
|
|
|
? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
|
|
|
: 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'
|
|
|
);
|
|
|
}
|
|
|
if (isFunction(Date.prototype.toISOString)) {
|
|
|
// native implementation is ~50x faster, use it when we can
|
|
|
if (utc) {
|
|
|
return this.toDate().toISOString();
|
|
|
} else {
|
|
|
return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)
|
|
|
.toISOString()
|
|
|
.replace('Z', formatMoment(m, 'Z'));
|
|
|
}
|
|
|
}
|
|
|
return formatMoment(
|
|
|
m,
|
|
|
utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Return a human readable representation of a moment that can
|
|
|
* also be evaluated to get a new moment which is the same
|
|
|
*
|
|
|
* @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
|
|
|
*/
|
|
|
function inspect() {
|
|
|
if (!this.isValid()) {
|
|
|
return 'moment.invalid(/* ' + this._i + ' */)';
|
|
|
}
|
|
|
var func = 'moment',
|
|
|
zone = '',
|
|
|
prefix,
|
|
|
year,
|
|
|
datetime,
|
|
|
suffix;
|
|
|
if (!this.isLocal()) {
|
|
|
func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
|
|
|
zone = 'Z';
|
|
|
}
|
|
|
prefix = '[' + func + '("]';
|
|
|
year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';
|
|
|
datetime = '-MM-DD[T]HH:mm:ss.SSS';
|
|
|
suffix = zone + '[")]';
|
|
|
|
|
|
return this.format(prefix + year + datetime + suffix);
|
|
|
}
|
|
|
|
|
|
function format(inputString) {
|
|
|
if (!inputString) {
|
|
|
inputString = this.isUtc()
|
|
|
? hooks.defaultFormatUtc
|
|
|
: hooks.defaultFormat;
|
|
|
}
|
|
|
var output = formatMoment(this, inputString);
|
|
|
return this.localeData().postformat(output);
|
|
|
}
|
|
|
|
|
|
function from(time, withoutSuffix) {
|
|
|
if (
|
|
|
this.isValid() &&
|
|
|
((isMoment(time) && time.isValid()) || createLocal(time).isValid())
|
|
|
) {
|
|
|
return createDuration({ to: this, from: time })
|
|
|
.locale(this.locale())
|
|
|
.humanize(!withoutSuffix);
|
|
|
} else {
|
|
|
return this.localeData().invalidDate();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function fromNow(withoutSuffix) {
|
|
|
return this.from(createLocal(), withoutSuffix);
|
|
|
}
|
|
|
|
|
|
function to(time, withoutSuffix) {
|
|
|
if (
|
|
|
this.isValid() &&
|
|
|
((isMoment(time) && time.isValid()) || createLocal(time).isValid())
|
|
|
) {
|
|
|
return createDuration({ from: this, to: time })
|
|
|
.locale(this.locale())
|
|
|
.humanize(!withoutSuffix);
|
|
|
} else {
|
|
|
return this.localeData().invalidDate();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function toNow(withoutSuffix) {
|
|
|
return this.to(createLocal(), withoutSuffix);
|
|
|
}
|
|
|
|
|
|
// If passed a locale key, it will set the locale for this
|
|
|
// instance. Otherwise, it will return the locale configuration
|
|
|
// variables for this instance.
|
|
|
function locale(key) {
|
|
|
var newLocaleData;
|
|
|
|
|
|
if (key === undefined) {
|
|
|
return this._locale._abbr;
|
|
|
} else {
|
|
|
newLocaleData = getLocale(key);
|
|
|
if (newLocaleData != null) {
|
|
|
this._locale = newLocaleData;
|
|
|
}
|
|
|
return this;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var lang = deprecate(
|
|
|
'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
|
|
|
function (key) {
|
|
|
if (key === undefined) {
|
|
|
return this.localeData();
|
|
|
} else {
|
|
|
return this.locale(key);
|
|
|
}
|
|
|
}
|
|
|
);
|
|
|
|
|
|
function localeData() {
|
|
|
return this._locale;
|
|
|
}
|
|
|
|
|
|
var MS_PER_SECOND = 1000,
|
|
|
MS_PER_MINUTE = 60 * MS_PER_SECOND,
|
|
|
MS_PER_HOUR = 60 * MS_PER_MINUTE,
|
|
|
MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;
|
|
|
|
|
|
// actual modulo - handles negative numbers (for dates before 1970):
|
|
|
function mod$1(dividend, divisor) {
|
|
|
return ((dividend % divisor) + divisor) % divisor;
|
|
|
}
|
|
|
|
|
|
function localStartOfDate(y, m, d) {
|
|
|
// the date constructor remaps years 0-99 to 1900-1999
|
|
|
if (y < 100 && y >= 0) {
|
|
|
// preserve leap years using a full 400 year cycle, then reset
|
|
|
return new Date(y + 400, m, d) - MS_PER_400_YEARS;
|
|
|
} else {
|
|
|
return new Date(y, m, d).valueOf();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function utcStartOfDate(y, m, d) {
|
|
|
// Date.UTC remaps years 0-99 to 1900-1999
|
|
|
if (y < 100 && y >= 0) {
|
|
|
// preserve leap years using a full 400 year cycle, then reset
|
|
|
return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;
|
|
|
} else {
|
|
|
return Date.UTC(y, m, d);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function startOf(units) {
|
|
|
var time, startOfDate;
|
|
|
units = normalizeUnits(units);
|
|
|
if (units === undefined || units === 'millisecond' || !this.isValid()) {
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
|
|
|
|
|
|
switch (units) {
|
|
|
case 'year':
|
|
|
time = startOfDate(this.year(), 0, 1);
|
|
|
break;
|
|
|
case 'quarter':
|
|
|
time = startOfDate(
|
|
|
this.year(),
|
|
|
this.month() - (this.month() % 3),
|
|
|
1
|
|
|
);
|
|
|
break;
|
|
|
case 'month':
|
|
|
time = startOfDate(this.year(), this.month(), 1);
|
|
|
break;
|
|
|
case 'week':
|
|
|
time = startOfDate(
|
|
|
this.year(),
|
|
|
this.month(),
|
|
|
this.date() - this.weekday()
|
|
|
);
|
|
|
break;
|
|
|
case 'isoWeek':
|
|
|
time = startOfDate(
|
|
|
this.year(),
|
|
|
this.month(),
|
|
|
this.date() - (this.isoWeekday() - 1)
|
|
|
);
|
|
|
break;
|
|
|
case 'day':
|
|
|
case 'date':
|
|
|
time = startOfDate(this.year(), this.month(), this.date());
|
|
|
break;
|
|
|
case 'hour':
|
|
|
time = this._d.valueOf();
|
|
|
time -= mod$1(
|
|
|
time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
|
|
|
MS_PER_HOUR
|
|
|
);
|
|
|
break;
|
|
|
case 'minute':
|
|
|
time = this._d.valueOf();
|
|
|
time -= mod$1(time, MS_PER_MINUTE);
|
|
|
break;
|
|
|
case 'second':
|
|
|
time = this._d.valueOf();
|
|
|
time -= mod$1(time, MS_PER_SECOND);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
this._d.setTime(time);
|
|
|
hooks.updateOffset(this, true);
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
function endOf(units) {
|
|
|
var time, startOfDate;
|
|
|
units = normalizeUnits(units);
|
|
|
if (units === undefined || units === 'millisecond' || !this.isValid()) {
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
|
|
|
|
|
|
switch (units) {
|
|
|
case 'year':
|
|
|
time = startOfDate(this.year() + 1, 0, 1) - 1;
|
|
|
break;
|
|
|
case 'quarter':
|
|
|
time =
|
|
|
startOfDate(
|
|
|
this.year(),
|
|
|
this.month() - (this.month() % 3) + 3,
|
|
|
1
|
|
|
) - 1;
|
|
|
break;
|
|
|
case 'month':
|
|
|
time = startOfDate(this.year(), this.month() + 1, 1) - 1;
|
|
|
break;
|
|
|
case 'week':
|
|
|
time =
|
|
|
startOfDate(
|
|
|
this.year(),
|
|
|
this.month(),
|
|
|
this.date() - this.weekday() + 7
|
|
|
) - 1;
|
|
|
break;
|
|
|
case 'isoWeek':
|
|
|
time =
|
|
|
startOfDate(
|
|
|
this.year(),
|
|
|
this.month(),
|
|
|
this.date() - (this.isoWeekday() - 1) + 7
|
|
|
) - 1;
|
|
|
break;
|
|
|
case 'day':
|
|
|
case 'date':
|
|
|
time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;
|
|
|
break;
|
|
|
case 'hour':
|
|
|
time = this._d.valueOf();
|
|
|
time +=
|
|
|
MS_PER_HOUR -
|
|
|
mod$1(
|
|
|
time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
|
|
|
MS_PER_HOUR
|
|
|
) -
|
|
|
1;
|
|
|
break;
|
|
|
case 'minute':
|
|
|
time = this._d.valueOf();
|
|
|
time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;
|
|
|
break;
|
|
|
case 'second':
|
|
|
time = this._d.valueOf();
|
|
|
time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
this._d.setTime(time);
|
|
|
hooks.updateOffset(this, true);
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
function valueOf() {
|
|
|
return this._d.valueOf() - (this._offset || 0) * 60000;
|
|
|
}
|
|
|
|
|
|
function unix() {
|
|
|
return Math.floor(this.valueOf() / 1000);
|
|
|
}
|
|
|
|
|
|
function toDate() {
|
|
|
return new Date(this.valueOf());
|
|
|
}
|
|
|
|
|
|
function toArray() {
|
|
|
var m = this;
|
|
|
return [
|
|
|
m.year(),
|
|
|
m.month(),
|
|
|
m.date(),
|
|
|
m.hour(),
|
|
|
m.minute(),
|
|
|
m.second(),
|
|
|
m.millisecond(),
|
|
|
];
|
|
|
}
|
|
|
|
|
|
function toObject() {
|
|
|
var m = this;
|
|
|
return {
|
|
|
years: m.year(),
|
|
|
months: m.month(),
|
|
|
date: m.date(),
|
|
|
hours: m.hours(),
|
|
|
minutes: m.minutes(),
|
|
|
seconds: m.seconds(),
|
|
|
milliseconds: m.milliseconds(),
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function toJSON() {
|
|
|
// new Date(NaN).toJSON() === null
|
|
|
return this.isValid() ? this.toISOString() : null;
|
|
|
}
|
|
|
|
|
|
function isValid$2() {
|
|
|
return isValid(this);
|
|
|
}
|
|
|
|
|
|
function parsingFlags() {
|
|
|
return extend({}, getParsingFlags(this));
|
|
|
}
|
|
|
|
|
|
function invalidAt() {
|
|
|
return getParsingFlags(this).overflow;
|
|
|
}
|
|
|
|
|
|
function creationData() {
|
|
|
return {
|
|
|
input: this._i,
|
|
|
format: this._f,
|
|
|
locale: this._locale,
|
|
|
isUTC: this._isUTC,
|
|
|
strict: this._strict,
|
|
|
};
|
|
|
}
|
|
|
|
|
|
addFormatToken('N', 0, 0, 'eraAbbr');
|
|
|
addFormatToken('NN', 0, 0, 'eraAbbr');
|
|
|
addFormatToken('NNN', 0, 0, 'eraAbbr');
|
|
|
addFormatToken('NNNN', 0, 0, 'eraName');
|
|
|
addFormatToken('NNNNN', 0, 0, 'eraNarrow');
|
|
|
|
|
|
addFormatToken('y', ['y', 1], 'yo', 'eraYear');
|
|
|
addFormatToken('y', ['yy', 2], 0, 'eraYear');
|
|
|
addFormatToken('y', ['yyy', 3], 0, 'eraYear');
|
|
|
addFormatToken('y', ['yyyy', 4], 0, 'eraYear');
|
|
|
|
|
|
addRegexToken('N', matchEraAbbr);
|
|
|
addRegexToken('NN', matchEraAbbr);
|
|
|
addRegexToken('NNN', matchEraAbbr);
|
|
|
addRegexToken('NNNN', matchEraName);
|
|
|
addRegexToken('NNNNN', matchEraNarrow);
|
|
|
|
|
|
addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (
|
|
|
input,
|
|
|
array,
|
|
|
config,
|
|
|
token
|
|
|
) {
|
|
|
var era = config._locale.erasParse(input, token, config._strict);
|
|
|
if (era) {
|
|
|
getParsingFlags(config).era = era;
|
|
|
} else {
|
|
|
getParsingFlags(config).invalidEra = input;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
addRegexToken('y', matchUnsigned);
|
|
|
addRegexToken('yy', matchUnsigned);
|
|
|
addRegexToken('yyy', matchUnsigned);
|
|
|
addRegexToken('yyyy', matchUnsigned);
|
|
|
addRegexToken('yo', matchEraYearOrdinal);
|
|
|
|
|
|
addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);
|
|
|
addParseToken(['yo'], function (input, array, config, token) {
|
|
|
var match;
|
|
|
if (config._locale._eraYearOrdinalRegex) {
|
|
|
match = input.match(config._locale._eraYearOrdinalRegex);
|
|
|
}
|
|
|
|
|
|
if (config._locale.eraYearOrdinalParse) {
|
|
|
array[YEAR] = config._locale.eraYearOrdinalParse(input, match);
|
|
|
} else {
|
|
|
array[YEAR] = parseInt(input, 10);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
function localeEras(m, format) {
|
|
|
var i,
|
|
|
l,
|
|
|
date,
|
|
|
eras = this._eras || getLocale('en')._eras;
|
|
|
for (i = 0, l = eras.length; i < l; ++i) {
|
|
|
switch (typeof eras[i].since) {
|
|
|
case 'string':
|
|
|
// truncate time
|
|
|
date = hooks(eras[i].since).startOf('day');
|
|
|
eras[i].since = date.valueOf();
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
switch (typeof eras[i].until) {
|
|
|
case 'undefined':
|
|
|
eras[i].until = +Infinity;
|
|
|
break;
|
|
|
case 'string':
|
|
|
// truncate time
|
|
|
date = hooks(eras[i].until).startOf('day').valueOf();
|
|
|
eras[i].until = date.valueOf();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
return eras;
|
|
|
}
|
|
|
|
|
|
function localeErasParse(eraName, format, strict) {
|
|
|
var i,
|
|
|
l,
|
|
|
eras = this.eras(),
|
|
|
name,
|
|
|
abbr,
|
|
|
narrow;
|
|
|
eraName = eraName.toUpperCase();
|
|
|
|
|
|
for (i = 0, l = eras.length; i < l; ++i) {
|
|
|
name = eras[i].name.toUpperCase();
|
|
|
abbr = eras[i].abbr.toUpperCase();
|
|
|
narrow = eras[i].narrow.toUpperCase();
|
|
|
|
|
|
if (strict) {
|
|
|
switch (format) {
|
|
|
case 'N':
|
|
|
case 'NN':
|
|
|
case 'NNN':
|
|
|
if (abbr === eraName) {
|
|
|
return eras[i];
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case 'NNNN':
|
|
|
if (name === eraName) {
|
|
|
return eras[i];
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case 'NNNNN':
|
|
|
if (narrow === eraName) {
|
|
|
return eras[i];
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
} else if ([name, abbr, narrow].indexOf(eraName) >= 0) {
|
|
|
return eras[i];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function localeErasConvertYear(era, year) {
|
|
|
var dir = era.since <= era.until ? +1 : -1;
|
|
|
if (year === undefined) {
|
|
|
return hooks(era.since).year();
|
|
|
} else {
|
|
|
return hooks(era.since).year() + (year - era.offset) * dir;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function getEraName() {
|
|
|
var i,
|
|
|
l,
|
|
|
val,
|
|
|
eras = this.localeData().eras();
|
|
|
for (i = 0, l = eras.length; i < l; ++i) {
|
|
|
// truncate time
|
|
|
val = this.clone().startOf('day').valueOf();
|
|
|
|
|
|
if (eras[i].since <= val && val <= eras[i].until) {
|
|
|
return eras[i].name;
|
|
|
}
|
|
|
if (eras[i].until <= val && val <= eras[i].since) {
|
|
|
return eras[i].name;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return '';
|
|
|
}
|
|
|
|
|
|
function getEraNarrow() {
|
|
|
var i,
|
|
|
l,
|
|
|
val,
|
|
|
eras = this.localeData().eras();
|
|
|
for (i = 0, l = eras.length; i < l; ++i) {
|
|
|
// truncate time
|
|
|
val = this.clone().startOf('day').valueOf();
|
|
|
|
|
|
if (eras[i].since <= val && val <= eras[i].until) {
|
|
|
return eras[i].narrow;
|
|
|
}
|
|
|
if (eras[i].until <= val && val <= eras[i].since) {
|
|
|
return eras[i].narrow;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return '';
|
|
|
}
|
|
|
|
|
|
function getEraAbbr() {
|
|
|
var i,
|
|
|
l,
|
|
|
val,
|
|
|
eras = this.localeData().eras();
|
|
|
for (i = 0, l = eras.length; i < l; ++i) {
|
|
|
// truncate time
|
|
|
val = this.clone().startOf('day').valueOf();
|
|
|
|
|
|
if (eras[i].since <= val && val <= eras[i].until) {
|
|
|
return eras[i].abbr;
|
|
|
}
|
|
|
if (eras[i].until <= val && val <= eras[i].since) {
|
|
|
return eras[i].abbr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return '';
|
|
|
}
|
|
|
|
|
|
function getEraYear() {
|
|
|
var i,
|
|
|
l,
|
|
|
dir,
|
|
|
val,
|
|
|
eras = this.localeData().eras();
|
|
|
for (i = 0, l = eras.length; i < l; ++i) {
|
|
|
dir = eras[i].since <= eras[i].until ? +1 : -1;
|
|
|
|
|
|
// truncate time
|
|
|
val = this.clone().startOf('day').valueOf();
|
|
|
|
|
|
if (
|
|
|
(eras[i].since <= val && val <= eras[i].until) ||
|
|
|
(eras[i].until <= val && val <= eras[i].since)
|
|
|
) {
|
|
|
return (
|
|
|
(this.year() - hooks(eras[i].since).year()) * dir +
|
|
|
eras[i].offset
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return this.year();
|
|
|
}
|
|
|
|
|
|
function erasNameRegex(isStrict) {
|
|
|
if (!hasOwnProp(this, '_erasNameRegex')) {
|
|
|
computeErasParse.call(this);
|
|
|
}
|
|
|
return isStrict ? this._erasNameRegex : this._erasRegex;
|
|
|
}
|
|
|
|
|
|
function erasAbbrRegex(isStrict) {
|
|
|
if (!hasOwnProp(this, '_erasAbbrRegex')) {
|
|
|
computeErasParse.call(this);
|
|
|
}
|
|
|
return isStrict ? this._erasAbbrRegex : this._erasRegex;
|
|
|
}
|
|
|
|
|
|
function erasNarrowRegex(isStrict) {
|
|
|
if (!hasOwnProp(this, '_erasNarrowRegex')) {
|
|
|
computeErasParse.call(this);
|
|
|
}
|
|
|
return isStrict ? this._erasNarrowRegex : this._erasRegex;
|
|
|
}
|
|
|
|
|
|
function matchEraAbbr(isStrict, locale) {
|
|
|
return locale.erasAbbrRegex(isStrict);
|
|
|
}
|
|
|
|
|
|
function matchEraName(isStrict, locale) {
|
|
|
return locale.erasNameRegex(isStrict);
|
|
|
}
|
|
|
|
|
|
function matchEraNarrow(isStrict, locale) {
|
|
|
return locale.erasNarrowRegex(isStrict);
|
|
|
}
|
|
|
|
|
|
function matchEraYearOrdinal(isStrict, locale) {
|
|
|
return locale._eraYearOrdinalRegex || matchUnsigned;
|
|
|
}
|
|
|
|
|
|
function computeErasParse() {
|
|
|
var abbrPieces = [],
|
|
|
namePieces = [],
|
|
|
narrowPieces = [],
|
|
|
mixedPieces = [],
|
|
|
i,
|
|
|
l,
|
|
|
eras = this.eras();
|
|
|
|
|
|
for (i = 0, l = eras.length; i < l; ++i) {
|
|
|
namePieces.push(regexEscape(eras[i].name));
|
|
|
abbrPieces.push(regexEscape(eras[i].abbr));
|
|
|
narrowPieces.push(regexEscape(eras[i].narrow));
|
|
|
|
|
|
mixedPieces.push(regexEscape(eras[i].name));
|
|
|
mixedPieces.push(regexEscape(eras[i].abbr));
|
|
|
mixedPieces.push(regexEscape(eras[i].narrow));
|
|
|
}
|
|
|
|
|
|
this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
|
|
|
this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');
|
|
|
this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');
|
|
|
this._erasNarrowRegex = new RegExp(
|
|
|
'^(' + narrowPieces.join('|') + ')',
|
|
|
'i'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken(0, ['gg', 2], 0, function () {
|
|
|
return this.weekYear() % 100;
|
|
|
});
|
|
|
|
|
|
addFormatToken(0, ['GG', 2], 0, function () {
|
|
|
return this.isoWeekYear() % 100;
|
|
|
});
|
|
|
|
|
|
function addWeekYearFormatToken(token, getter) {
|
|
|
addFormatToken(0, [token, token.length], 0, getter);
|
|
|
}
|
|
|
|
|
|
addWeekYearFormatToken('gggg', 'weekYear');
|
|
|
addWeekYearFormatToken('ggggg', 'weekYear');
|
|
|
addWeekYearFormatToken('GGGG', 'isoWeekYear');
|
|
|
addWeekYearFormatToken('GGGGG', 'isoWeekYear');
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('weekYear', 'gg');
|
|
|
addUnitAlias('isoWeekYear', 'GG');
|
|
|
|
|
|
// PRIORITY
|
|
|
|
|
|
addUnitPriority('weekYear', 1);
|
|
|
addUnitPriority('isoWeekYear', 1);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('G', matchSigned);
|
|
|
addRegexToken('g', matchSigned);
|
|
|
addRegexToken('GG', match1to2, match2);
|
|
|
addRegexToken('gg', match1to2, match2);
|
|
|
addRegexToken('GGGG', match1to4, match4);
|
|
|
addRegexToken('gggg', match1to4, match4);
|
|
|
addRegexToken('GGGGG', match1to6, match6);
|
|
|
addRegexToken('ggggg', match1to6, match6);
|
|
|
|
|
|
addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (
|
|
|
input,
|
|
|
week,
|
|
|
config,
|
|
|
token
|
|
|
) {
|
|
|
week[token.substr(0, 2)] = toInt(input);
|
|
|
});
|
|
|
|
|
|
addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
|
|
|
week[token] = hooks.parseTwoDigitYear(input);
|
|
|
});
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
function getSetWeekYear(input) {
|
|
|
return getSetWeekYearHelper.call(
|
|
|
this,
|
|
|
input,
|
|
|
this.week(),
|
|
|
this.weekday(),
|
|
|
this.localeData()._week.dow,
|
|
|
this.localeData()._week.doy
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function getSetISOWeekYear(input) {
|
|
|
return getSetWeekYearHelper.call(
|
|
|
this,
|
|
|
input,
|
|
|
this.isoWeek(),
|
|
|
this.isoWeekday(),
|
|
|
1,
|
|
|
4
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function getISOWeeksInYear() {
|
|
|
return weeksInYear(this.year(), 1, 4);
|
|
|
}
|
|
|
|
|
|
function getISOWeeksInISOWeekYear() {
|
|
|
return weeksInYear(this.isoWeekYear(), 1, 4);
|
|
|
}
|
|
|
|
|
|
function getWeeksInYear() {
|
|
|
var weekInfo = this.localeData()._week;
|
|
|
return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
|
|
|
}
|
|
|
|
|
|
function getWeeksInWeekYear() {
|
|
|
var weekInfo = this.localeData()._week;
|
|
|
return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);
|
|
|
}
|
|
|
|
|
|
function getSetWeekYearHelper(input, week, weekday, dow, doy) {
|
|
|
var weeksTarget;
|
|
|
if (input == null) {
|
|
|
return weekOfYear(this, dow, doy).year;
|
|
|
} else {
|
|
|
weeksTarget = weeksInYear(input, dow, doy);
|
|
|
if (week > weeksTarget) {
|
|
|
week = weeksTarget;
|
|
|
}
|
|
|
return setWeekAll.call(this, input, week, weekday, dow, doy);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function setWeekAll(weekYear, week, weekday, dow, doy) {
|
|
|
var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
|
|
|
date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
|
|
|
|
|
|
this.year(date.getUTCFullYear());
|
|
|
this.month(date.getUTCMonth());
|
|
|
this.date(date.getUTCDate());
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('Q', 0, 'Qo', 'quarter');
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('quarter', 'Q');
|
|
|
|
|
|
// PRIORITY
|
|
|
|
|
|
addUnitPriority('quarter', 7);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('Q', match1);
|
|
|
addParseToken('Q', function (input, array) {
|
|
|
array[MONTH] = (toInt(input) - 1) * 3;
|
|
|
});
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
function getSetQuarter(input) {
|
|
|
return input == null
|
|
|
? Math.ceil((this.month() + 1) / 3)
|
|
|
: this.month((input - 1) * 3 + (this.month() % 3));
|
|
|
}
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('D', ['DD', 2], 'Do', 'date');
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('date', 'D');
|
|
|
|
|
|
// PRIORITY
|
|
|
addUnitPriority('date', 9);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('D', match1to2);
|
|
|
addRegexToken('DD', match1to2, match2);
|
|
|
addRegexToken('Do', function (isStrict, locale) {
|
|
|
// TODO: Remove "ordinalParse" fallback in next major release.
|
|
|
return isStrict
|
|
|
? locale._dayOfMonthOrdinalParse || locale._ordinalParse
|
|
|
: locale._dayOfMonthOrdinalParseLenient;
|
|
|
});
|
|
|
|
|
|
addParseToken(['D', 'DD'], DATE);
|
|
|
addParseToken('Do', function (input, array) {
|
|
|
array[DATE] = toInt(input.match(match1to2)[0]);
|
|
|
});
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
var getSetDayOfMonth = makeGetSet('Date', true);
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('dayOfYear', 'DDD');
|
|
|
|
|
|
// PRIORITY
|
|
|
addUnitPriority('dayOfYear', 4);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('DDD', match1to3);
|
|
|
addRegexToken('DDDD', match3);
|
|
|
addParseToken(['DDD', 'DDDD'], function (input, array, config) {
|
|
|
config._dayOfYear = toInt(input);
|
|
|
});
|
|
|
|
|
|
// HELPERS
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
function getSetDayOfYear(input) {
|
|
|
var dayOfYear =
|
|
|
Math.round(
|
|
|
(this.clone().startOf('day') - this.clone().startOf('year')) / 864e5
|
|
|
) + 1;
|
|
|
return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');
|
|
|
}
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('m', ['mm', 2], 0, 'minute');
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('minute', 'm');
|
|
|
|
|
|
// PRIORITY
|
|
|
|
|
|
addUnitPriority('minute', 14);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('m', match1to2);
|
|
|
addRegexToken('mm', match1to2, match2);
|
|
|
addParseToken(['m', 'mm'], MINUTE);
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
var getSetMinute = makeGetSet('Minutes', false);
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('s', ['ss', 2], 0, 'second');
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('second', 's');
|
|
|
|
|
|
// PRIORITY
|
|
|
|
|
|
addUnitPriority('second', 15);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('s', match1to2);
|
|
|
addRegexToken('ss', match1to2, match2);
|
|
|
addParseToken(['s', 'ss'], SECOND);
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
var getSetSecond = makeGetSet('Seconds', false);
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('S', 0, 0, function () {
|
|
|
return ~~(this.millisecond() / 100);
|
|
|
});
|
|
|
|
|
|
addFormatToken(0, ['SS', 2], 0, function () {
|
|
|
return ~~(this.millisecond() / 10);
|
|
|
});
|
|
|
|
|
|
addFormatToken(0, ['SSS', 3], 0, 'millisecond');
|
|
|
addFormatToken(0, ['SSSS', 4], 0, function () {
|
|
|
return this.millisecond() * 10;
|
|
|
});
|
|
|
addFormatToken(0, ['SSSSS', 5], 0, function () {
|
|
|
return this.millisecond() * 100;
|
|
|
});
|
|
|
addFormatToken(0, ['SSSSSS', 6], 0, function () {
|
|
|
return this.millisecond() * 1000;
|
|
|
});
|
|
|
addFormatToken(0, ['SSSSSSS', 7], 0, function () {
|
|
|
return this.millisecond() * 10000;
|
|
|
});
|
|
|
addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
|
|
|
return this.millisecond() * 100000;
|
|
|
});
|
|
|
addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
|
|
|
return this.millisecond() * 1000000;
|
|
|
});
|
|
|
|
|
|
// ALIASES
|
|
|
|
|
|
addUnitAlias('millisecond', 'ms');
|
|
|
|
|
|
// PRIORITY
|
|
|
|
|
|
addUnitPriority('millisecond', 16);
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('S', match1to3, match1);
|
|
|
addRegexToken('SS', match1to3, match2);
|
|
|
addRegexToken('SSS', match1to3, match3);
|
|
|
|
|
|
var token, getSetMillisecond;
|
|
|
for (token = 'SSSS'; token.length <= 9; token += 'S') {
|
|
|
addRegexToken(token, matchUnsigned);
|
|
|
}
|
|
|
|
|
|
function parseMs(input, array) {
|
|
|
array[MILLISECOND] = toInt(('0.' + input) * 1000);
|
|
|
}
|
|
|
|
|
|
for (token = 'S'; token.length <= 9; token += 'S') {
|
|
|
addParseToken(token, parseMs);
|
|
|
}
|
|
|
|
|
|
getSetMillisecond = makeGetSet('Milliseconds', false);
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('z', 0, 0, 'zoneAbbr');
|
|
|
addFormatToken('zz', 0, 0, 'zoneName');
|
|
|
|
|
|
// MOMENTS
|
|
|
|
|
|
function getZoneAbbr() {
|
|
|
return this._isUTC ? 'UTC' : '';
|
|
|
}
|
|
|
|
|
|
function getZoneName() {
|
|
|
return this._isUTC ? 'Coordinated Universal Time' : '';
|
|
|
}
|
|
|
|
|
|
var proto = Moment.prototype;
|
|
|
|
|
|
proto.add = add;
|
|
|
proto.calendar = calendar$1;
|
|
|
proto.clone = clone;
|
|
|
proto.diff = diff;
|
|
|
proto.endOf = endOf;
|
|
|
proto.format = format;
|
|
|
proto.from = from;
|
|
|
proto.fromNow = fromNow;
|
|
|
proto.to = to;
|
|
|
proto.toNow = toNow;
|
|
|
proto.get = stringGet;
|
|
|
proto.invalidAt = invalidAt;
|
|
|
proto.isAfter = isAfter;
|
|
|
proto.isBefore = isBefore;
|
|
|
proto.isBetween = isBetween;
|
|
|
proto.isSame = isSame;
|
|
|
proto.isSameOrAfter = isSameOrAfter;
|
|
|
proto.isSameOrBefore = isSameOrBefore;
|
|
|
proto.isValid = isValid$2;
|
|
|
proto.lang = lang;
|
|
|
proto.locale = locale;
|
|
|
proto.localeData = localeData;
|
|
|
proto.max = prototypeMax;
|
|
|
proto.min = prototypeMin;
|
|
|
proto.parsingFlags = parsingFlags;
|
|
|
proto.set = stringSet;
|
|
|
proto.startOf = startOf;
|
|
|
proto.subtract = subtract;
|
|
|
proto.toArray = toArray;
|
|
|
proto.toObject = toObject;
|
|
|
proto.toDate = toDate;
|
|
|
proto.toISOString = toISOString;
|
|
|
proto.inspect = inspect;
|
|
|
if (typeof Symbol !== 'undefined' && Symbol.for != null) {
|
|
|
proto[Symbol.for('nodejs.util.inspect.custom')] = function () {
|
|
|
return 'Moment<' + this.format() + '>';
|
|
|
};
|
|
|
}
|
|
|
proto.toJSON = toJSON;
|
|
|
proto.toString = toString;
|
|
|
proto.unix = unix;
|
|
|
proto.valueOf = valueOf;
|
|
|
proto.creationData = creationData;
|
|
|
proto.eraName = getEraName;
|
|
|
proto.eraNarrow = getEraNarrow;
|
|
|
proto.eraAbbr = getEraAbbr;
|
|
|
proto.eraYear = getEraYear;
|
|
|
proto.year = getSetYear;
|
|
|
proto.isLeapYear = getIsLeapYear;
|
|
|
proto.weekYear = getSetWeekYear;
|
|
|
proto.isoWeekYear = getSetISOWeekYear;
|
|
|
proto.quarter = proto.quarters = getSetQuarter;
|
|
|
proto.month = getSetMonth;
|
|
|
proto.daysInMonth = getDaysInMonth;
|
|
|
proto.week = proto.weeks = getSetWeek;
|
|
|
proto.isoWeek = proto.isoWeeks = getSetISOWeek;
|
|
|
proto.weeksInYear = getWeeksInYear;
|
|
|
proto.weeksInWeekYear = getWeeksInWeekYear;
|
|
|
proto.isoWeeksInYear = getISOWeeksInYear;
|
|
|
proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;
|
|
|
proto.date = getSetDayOfMonth;
|
|
|
proto.day = proto.days = getSetDayOfWeek;
|
|
|
proto.weekday = getSetLocaleDayOfWeek;
|
|
|
proto.isoWeekday = getSetISODayOfWeek;
|
|
|
proto.dayOfYear = getSetDayOfYear;
|
|
|
proto.hour = proto.hours = getSetHour;
|
|
|
proto.minute = proto.minutes = getSetMinute;
|
|
|
proto.second = proto.seconds = getSetSecond;
|
|
|
proto.millisecond = proto.milliseconds = getSetMillisecond;
|
|
|
proto.utcOffset = getSetOffset;
|
|
|
proto.utc = setOffsetToUTC;
|
|
|
proto.local = setOffsetToLocal;
|
|
|
proto.parseZone = setOffsetToParsedOffset;
|
|
|
proto.hasAlignedHourOffset = hasAlignedHourOffset;
|
|
|
proto.isDST = isDaylightSavingTime;
|
|
|
proto.isLocal = isLocal;
|
|
|
proto.isUtcOffset = isUtcOffset;
|
|
|
proto.isUtc = isUtc;
|
|
|
proto.isUTC = isUtc;
|
|
|
proto.zoneAbbr = getZoneAbbr;
|
|
|
proto.zoneName = getZoneName;
|
|
|
proto.dates = deprecate(
|
|
|
'dates accessor is deprecated. Use date instead.',
|
|
|
getSetDayOfMonth
|
|
|
);
|
|
|
proto.months = deprecate(
|
|
|
'months accessor is deprecated. Use month instead',
|
|
|
getSetMonth
|
|
|
);
|
|
|
proto.years = deprecate(
|
|
|
'years accessor is deprecated. Use year instead',
|
|
|
getSetYear
|
|
|
);
|
|
|
proto.zone = deprecate(
|
|
|
'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',
|
|
|
getSetZone
|
|
|
);
|
|
|
proto.isDSTShifted = deprecate(
|
|
|
'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',
|
|
|
isDaylightSavingTimeShifted
|
|
|
);
|
|
|
|
|
|
function createUnix(input) {
|
|
|
return createLocal(input * 1000);
|
|
|
}
|
|
|
|
|
|
function createInZone() {
|
|
|
return createLocal.apply(null, arguments).parseZone();
|
|
|
}
|
|
|
|
|
|
function preParsePostFormat(string) {
|
|
|
return string;
|
|
|
}
|
|
|
|
|
|
var proto$1 = Locale.prototype;
|
|
|
|
|
|
proto$1.calendar = calendar;
|
|
|
proto$1.longDateFormat = longDateFormat;
|
|
|
proto$1.invalidDate = invalidDate;
|
|
|
proto$1.ordinal = ordinal;
|
|
|
proto$1.preparse = preParsePostFormat;
|
|
|
proto$1.postformat = preParsePostFormat;
|
|
|
proto$1.relativeTime = relativeTime;
|
|
|
proto$1.pastFuture = pastFuture;
|
|
|
proto$1.set = set;
|
|
|
proto$1.eras = localeEras;
|
|
|
proto$1.erasParse = localeErasParse;
|
|
|
proto$1.erasConvertYear = localeErasConvertYear;
|
|
|
proto$1.erasAbbrRegex = erasAbbrRegex;
|
|
|
proto$1.erasNameRegex = erasNameRegex;
|
|
|
proto$1.erasNarrowRegex = erasNarrowRegex;
|
|
|
|
|
|
proto$1.months = localeMonths;
|
|
|
proto$1.monthsShort = localeMonthsShort;
|
|
|
proto$1.monthsParse = localeMonthsParse;
|
|
|
proto$1.monthsRegex = monthsRegex;
|
|
|
proto$1.monthsShortRegex = monthsShortRegex;
|
|
|
proto$1.week = localeWeek;
|
|
|
proto$1.firstDayOfYear = localeFirstDayOfYear;
|
|
|
proto$1.firstDayOfWeek = localeFirstDayOfWeek;
|
|
|
|
|
|
proto$1.weekdays = localeWeekdays;
|
|
|
proto$1.weekdaysMin = localeWeekdaysMin;
|
|
|
proto$1.weekdaysShort = localeWeekdaysShort;
|
|
|
proto$1.weekdaysParse = localeWeekdaysParse;
|
|
|
|
|
|
proto$1.weekdaysRegex = weekdaysRegex;
|
|
|
proto$1.weekdaysShortRegex = weekdaysShortRegex;
|
|
|
proto$1.weekdaysMinRegex = weekdaysMinRegex;
|
|
|
|
|
|
proto$1.isPM = localeIsPM;
|
|
|
proto$1.meridiem = localeMeridiem;
|
|
|
|
|
|
function get$1(format, index, field, setter) {
|
|
|
var locale = getLocale(),
|
|
|
utc = createUTC().set(setter, index);
|
|
|
return locale[field](utc, format);
|
|
|
}
|
|
|
|
|
|
function listMonthsImpl(format, index, field) {
|
|
|
if (isNumber(format)) {
|
|
|
index = format;
|
|
|
format = undefined;
|
|
|
}
|
|
|
|
|
|
format = format || '';
|
|
|
|
|
|
if (index != null) {
|
|
|
return get$1(format, index, field, 'month');
|
|
|
}
|
|
|
|
|
|
var i,
|
|
|
out = [];
|
|
|
for (i = 0; i < 12; i++) {
|
|
|
out[i] = get$1(format, i, field, 'month');
|
|
|
}
|
|
|
return out;
|
|
|
}
|
|
|
|
|
|
// ()
|
|
|
// (5)
|
|
|
// (fmt, 5)
|
|
|
// (fmt)
|
|
|
// (true)
|
|
|
// (true, 5)
|
|
|
// (true, fmt, 5)
|
|
|
// (true, fmt)
|
|
|
function listWeekdaysImpl(localeSorted, format, index, field) {
|
|
|
if (typeof localeSorted === 'boolean') {
|
|
|
if (isNumber(format)) {
|
|
|
index = format;
|
|
|
format = undefined;
|
|
|
}
|
|
|
|
|
|
format = format || '';
|
|
|
} else {
|
|
|
format = localeSorted;
|
|
|
index = format;
|
|
|
localeSorted = false;
|
|
|
|
|
|
if (isNumber(format)) {
|
|
|
index = format;
|
|
|
format = undefined;
|
|
|
}
|
|
|
|
|
|
format = format || '';
|
|
|
}
|
|
|
|
|
|
var locale = getLocale(),
|
|
|
shift = localeSorted ? locale._week.dow : 0,
|
|
|
i,
|
|
|
out = [];
|
|
|
|
|
|
if (index != null) {
|
|
|
return get$1(format, (index + shift) % 7, field, 'day');
|
|
|
}
|
|
|
|
|
|
for (i = 0; i < 7; i++) {
|
|
|
out[i] = get$1(format, (i + shift) % 7, field, 'day');
|
|
|
}
|
|
|
return out;
|
|
|
}
|
|
|
|
|
|
function listMonths(format, index) {
|
|
|
return listMonthsImpl(format, index, 'months');
|
|
|
}
|
|
|
|
|
|
function listMonthsShort(format, index) {
|
|
|
return listMonthsImpl(format, index, 'monthsShort');
|
|
|
}
|
|
|
|
|
|
function listWeekdays(localeSorted, format, index) {
|
|
|
return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
|
|
|
}
|
|
|
|
|
|
function listWeekdaysShort(localeSorted, format, index) {
|
|
|
return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
|
|
|
}
|
|
|
|
|
|
function listWeekdaysMin(localeSorted, format, index) {
|
|
|
return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
|
|
|
}
|
|
|
|
|
|
getSetGlobalLocale('en', {
|
|
|
eras: [
|
|
|
{
|
|
|
since: '0001-01-01',
|
|
|
until: +Infinity,
|
|
|
offset: 1,
|
|
|
name: 'Anno Domini',
|
|
|
narrow: 'AD',
|
|
|
abbr: 'AD',
|
|
|
},
|
|
|
{
|
|
|
since: '0000-12-31',
|
|
|
until: -Infinity,
|
|
|
offset: 1,
|
|
|
name: 'Before Christ',
|
|
|
narrow: 'BC',
|
|
|
abbr: 'BC',
|
|
|
},
|
|
|
],
|
|
|
dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
|
|
|
ordinal: function (number) {
|
|
|
var b = number % 10,
|
|
|
output =
|
|
|
toInt((number % 100) / 10) === 1
|
|
|
? 'th'
|
|
|
: b === 1
|
|
|
? 'st'
|
|
|
: b === 2
|
|
|
? 'nd'
|
|
|
: b === 3
|
|
|
? 'rd'
|
|
|
: 'th';
|
|
|
return number + output;
|
|
|
},
|
|
|
});
|
|
|
|
|
|
// Side effect imports
|
|
|
|
|
|
hooks.lang = deprecate(
|
|
|
'moment.lang is deprecated. Use moment.locale instead.',
|
|
|
getSetGlobalLocale
|
|
|
);
|
|
|
hooks.langData = deprecate(
|
|
|
'moment.langData is deprecated. Use moment.localeData instead.',
|
|
|
getLocale
|
|
|
);
|
|
|
|
|
|
var mathAbs = Math.abs;
|
|
|
|
|
|
function abs() {
|
|
|
var data = this._data;
|
|
|
|
|
|
this._milliseconds = mathAbs(this._milliseconds);
|
|
|
this._days = mathAbs(this._days);
|
|
|
this._months = mathAbs(this._months);
|
|
|
|
|
|
data.milliseconds = mathAbs(data.milliseconds);
|
|
|
data.seconds = mathAbs(data.seconds);
|
|
|
data.minutes = mathAbs(data.minutes);
|
|
|
data.hours = mathAbs(data.hours);
|
|
|
data.months = mathAbs(data.months);
|
|
|
data.years = mathAbs(data.years);
|
|
|
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
function addSubtract$1(duration, input, value, direction) {
|
|
|
var other = createDuration(input, value);
|
|
|
|
|
|
duration._milliseconds += direction * other._milliseconds;
|
|
|
duration._days += direction * other._days;
|
|
|
duration._months += direction * other._months;
|
|
|
|
|
|
return duration._bubble();
|
|
|
}
|
|
|
|
|
|
// supports only 2.0-style add(1, 's') or add(duration)
|
|
|
function add$1(input, value) {
|
|
|
return addSubtract$1(this, input, value, 1);
|
|
|
}
|
|
|
|
|
|
// supports only 2.0-style subtract(1, 's') or subtract(duration)
|
|
|
function subtract$1(input, value) {
|
|
|
return addSubtract$1(this, input, value, -1);
|
|
|
}
|
|
|
|
|
|
function absCeil(number) {
|
|
|
if (number < 0) {
|
|
|
return Math.floor(number);
|
|
|
} else {
|
|
|
return Math.ceil(number);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function bubble() {
|
|
|
var milliseconds = this._milliseconds,
|
|
|
days = this._days,
|
|
|
months = this._months,
|
|
|
data = this._data,
|
|
|
seconds,
|
|
|
minutes,
|
|
|
hours,
|
|
|
years,
|
|
|
monthsFromDays;
|
|
|
|
|
|
// if we have a mix of positive and negative values, bubble down first
|
|
|
// check: https://github.com/moment/moment/issues/2166
|
|
|
if (
|
|
|
!(
|
|
|
(milliseconds >= 0 && days >= 0 && months >= 0) ||
|
|
|
(milliseconds <= 0 && days <= 0 && months <= 0)
|
|
|
)
|
|
|
) {
|
|
|
milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
|
|
|
days = 0;
|
|
|
months = 0;
|
|
|
}
|
|
|
|
|
|
// The following code bubbles up values, see the tests for
|
|
|
// examples of what that means.
|
|
|
data.milliseconds = milliseconds % 1000;
|
|
|
|
|
|
seconds = absFloor(milliseconds / 1000);
|
|
|
data.seconds = seconds % 60;
|
|
|
|
|
|
minutes = absFloor(seconds / 60);
|
|
|
data.minutes = minutes % 60;
|
|
|
|
|
|
hours = absFloor(minutes / 60);
|
|
|
data.hours = hours % 24;
|
|
|
|
|
|
days += absFloor(hours / 24);
|
|
|
|
|
|
// convert days to months
|
|
|
monthsFromDays = absFloor(daysToMonths(days));
|
|
|
months += monthsFromDays;
|
|
|
days -= absCeil(monthsToDays(monthsFromDays));
|
|
|
|
|
|
// 12 months -> 1 year
|
|
|
years = absFloor(months / 12);
|
|
|
months %= 12;
|
|
|
|
|
|
data.days = days;
|
|
|
data.months = months;
|
|
|
data.years = years;
|
|
|
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
function daysToMonths(days) {
|
|
|
// 400 years have 146097 days (taking into account leap year rules)
|
|
|
// 400 years have 12 months === 4800
|
|
|
return (days * 4800) / 146097;
|
|
|
}
|
|
|
|
|
|
function monthsToDays(months) {
|
|
|
// the reverse of daysToMonths
|
|
|
return (months * 146097) / 4800;
|
|
|
}
|
|
|
|
|
|
function as(units) {
|
|
|
if (!this.isValid()) {
|
|
|
return NaN;
|
|
|
}
|
|
|
var days,
|
|
|
months,
|
|
|
milliseconds = this._milliseconds;
|
|
|
|
|
|
units = normalizeUnits(units);
|
|
|
|
|
|
if (units === 'month' || units === 'quarter' || units === 'year') {
|
|
|
days = this._days + milliseconds / 864e5;
|
|
|
months = this._months + daysToMonths(days);
|
|
|
switch (units) {
|
|
|
case 'month':
|
|
|
return months;
|
|
|
case 'quarter':
|
|
|
return months / 3;
|
|
|
case 'year':
|
|
|
return months / 12;
|
|
|
}
|
|
|
} else {
|
|
|
// handle milliseconds separately because of floating point math errors (issue #1867)
|
|
|
days = this._days + Math.round(monthsToDays(this._months));
|
|
|
switch (units) {
|
|
|
case 'week':
|
|
|
return days / 7 + milliseconds / 6048e5;
|
|
|
case 'day':
|
|
|
return days + milliseconds / 864e5;
|
|
|
case 'hour':
|
|
|
return days * 24 + milliseconds / 36e5;
|
|
|
case 'minute':
|
|
|
return days * 1440 + milliseconds / 6e4;
|
|
|
case 'second':
|
|
|
return days * 86400 + milliseconds / 1000;
|
|
|
// Math.floor prevents floating point math errors here
|
|
|
case 'millisecond':
|
|
|
return Math.floor(days * 864e5) + milliseconds;
|
|
|
default:
|
|
|
throw new Error('Unknown unit ' + units);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// TODO: Use this.as('ms')?
|
|
|
function valueOf$1() {
|
|
|
if (!this.isValid()) {
|
|
|
return NaN;
|
|
|
}
|
|
|
return (
|
|
|
this._milliseconds +
|
|
|
this._days * 864e5 +
|
|
|
(this._months % 12) * 2592e6 +
|
|
|
toInt(this._months / 12) * 31536e6
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function makeAs(alias) {
|
|
|
return function () {
|
|
|
return this.as(alias);
|
|
|
};
|
|
|
}
|
|
|
|
|
|
var asMilliseconds = makeAs('ms'),
|
|
|
asSeconds = makeAs('s'),
|
|
|
asMinutes = makeAs('m'),
|
|
|
asHours = makeAs('h'),
|
|
|
asDays = makeAs('d'),
|
|
|
asWeeks = makeAs('w'),
|
|
|
asMonths = makeAs('M'),
|
|
|
asQuarters = makeAs('Q'),
|
|
|
asYears = makeAs('y');
|
|
|
|
|
|
function clone$1() {
|
|
|
return createDuration(this);
|
|
|
}
|
|
|
|
|
|
function get$2(units) {
|
|
|
units = normalizeUnits(units);
|
|
|
return this.isValid() ? this[units + 's']() : NaN;
|
|
|
}
|
|
|
|
|
|
function makeGetter(name) {
|
|
|
return function () {
|
|
|
return this.isValid() ? this._data[name] : NaN;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
var milliseconds = makeGetter('milliseconds'),
|
|
|
seconds = makeGetter('seconds'),
|
|
|
minutes = makeGetter('minutes'),
|
|
|
hours = makeGetter('hours'),
|
|
|
days = makeGetter('days'),
|
|
|
months = makeGetter('months'),
|
|
|
years = makeGetter('years');
|
|
|
|
|
|
function weeks() {
|
|
|
return absFloor(this.days() / 7);
|
|
|
}
|
|
|
|
|
|
var round = Math.round,
|
|
|
thresholds = {
|
|
|
ss: 44, // a few seconds to seconds
|
|
|
s: 45, // seconds to minute
|
|
|
m: 45, // minutes to hour
|
|
|
h: 22, // hours to day
|
|
|
d: 26, // days to month/week
|
|
|
w: null, // weeks to month
|
|
|
M: 11, // months to year
|
|
|
};
|
|
|
|
|
|
// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
|
|
|
function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
|
|
|
return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
|
|
|
}
|
|
|
|
|
|
function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {
|
|
|
var duration = createDuration(posNegDuration).abs(),
|
|
|
seconds = round(duration.as('s')),
|
|
|
minutes = round(duration.as('m')),
|
|
|
hours = round(duration.as('h')),
|
|
|
days = round(duration.as('d')),
|
|
|
months = round(duration.as('M')),
|
|
|
weeks = round(duration.as('w')),
|
|
|
years = round(duration.as('y')),
|
|
|
a =
|
|
|
(seconds <= thresholds.ss && ['s', seconds]) ||
|
|
|
(seconds < thresholds.s && ['ss', seconds]) ||
|
|
|
(minutes <= 1 && ['m']) ||
|
|
|
(minutes < thresholds.m && ['mm', minutes]) ||
|
|
|
(hours <= 1 && ['h']) ||
|
|
|
(hours < thresholds.h && ['hh', hours]) ||
|
|
|
(days <= 1 && ['d']) ||
|
|
|
(days < thresholds.d && ['dd', days]);
|
|
|
|
|
|
if (thresholds.w != null) {
|
|
|
a =
|
|
|
a ||
|
|
|
(weeks <= 1 && ['w']) ||
|
|
|
(weeks < thresholds.w && ['ww', weeks]);
|
|
|
}
|
|
|
a = a ||
|
|
|
(months <= 1 && ['M']) ||
|
|
|
(months < thresholds.M && ['MM', months]) ||
|
|
|
(years <= 1 && ['y']) || ['yy', years];
|
|
|
|
|
|
a[2] = withoutSuffix;
|
|
|
a[3] = +posNegDuration > 0;
|
|
|
a[4] = locale;
|
|
|
return substituteTimeAgo.apply(null, a);
|
|
|
}
|
|
|
|
|
|
// This function allows you to set the rounding function for relative time strings
|
|
|
function getSetRelativeTimeRounding(roundingFunction) {
|
|
|
if (roundingFunction === undefined) {
|
|
|
return round;
|
|
|
}
|
|
|
if (typeof roundingFunction === 'function') {
|
|
|
round = roundingFunction;
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
// This function allows you to set a threshold for relative time strings
|
|
|
function getSetRelativeTimeThreshold(threshold, limit) {
|
|
|
if (thresholds[threshold] === undefined) {
|
|
|
return false;
|
|
|
}
|
|
|
if (limit === undefined) {
|
|
|
return thresholds[threshold];
|
|
|
}
|
|
|
thresholds[threshold] = limit;
|
|
|
if (threshold === 's') {
|
|
|
thresholds.ss = limit - 1;
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
function humanize(argWithSuffix, argThresholds) {
|
|
|
if (!this.isValid()) {
|
|
|
return this.localeData().invalidDate();
|
|
|
}
|
|
|
|
|
|
var withSuffix = false,
|
|
|
th = thresholds,
|
|
|
locale,
|
|
|
output;
|
|
|
|
|
|
if (typeof argWithSuffix === 'object') {
|
|
|
argThresholds = argWithSuffix;
|
|
|
argWithSuffix = false;
|
|
|
}
|
|
|
if (typeof argWithSuffix === 'boolean') {
|
|
|
withSuffix = argWithSuffix;
|
|
|
}
|
|
|
if (typeof argThresholds === 'object') {
|
|
|
th = Object.assign({}, thresholds, argThresholds);
|
|
|
if (argThresholds.s != null && argThresholds.ss == null) {
|
|
|
th.ss = argThresholds.s - 1;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
locale = this.localeData();
|
|
|
output = relativeTime$1(this, !withSuffix, th, locale);
|
|
|
|
|
|
if (withSuffix) {
|
|
|
output = locale.pastFuture(+this, output);
|
|
|
}
|
|
|
|
|
|
return locale.postformat(output);
|
|
|
}
|
|
|
|
|
|
var abs$1 = Math.abs;
|
|
|
|
|
|
function sign(x) {
|
|
|
return (x > 0) - (x < 0) || +x;
|
|
|
}
|
|
|
|
|
|
function toISOString$1() {
|
|
|
// for ISO strings we do not use the normal bubbling rules:
|
|
|
// * milliseconds bubble up until they become hours
|
|
|
// * days do not bubble at all
|
|
|
// * months bubble up until they become years
|
|
|
// This is because there is no context-free conversion between hours and days
|
|
|
// (think of clock changes)
|
|
|
// and also not between days and months (28-31 days per month)
|
|
|
if (!this.isValid()) {
|
|
|
return this.localeData().invalidDate();
|
|
|
}
|
|
|
|
|
|
var seconds = abs$1(this._milliseconds) / 1000,
|
|
|
days = abs$1(this._days),
|
|
|
months = abs$1(this._months),
|
|
|
minutes,
|
|
|
hours,
|
|
|
years,
|
|
|
s,
|
|
|
total = this.asSeconds(),
|
|
|
totalSign,
|
|
|
ymSign,
|
|
|
daysSign,
|
|
|
hmsSign;
|
|
|
|
|
|
if (!total) {
|
|
|
// this is the same as C#'s (Noda) and python (isodate)...
|
|
|
// but not other JS (goog.date)
|
|
|
return 'P0D';
|
|
|
}
|
|
|
|
|
|
// 3600 seconds -> 60 minutes -> 1 hour
|
|
|
minutes = absFloor(seconds / 60);
|
|
|
hours = absFloor(minutes / 60);
|
|
|
seconds %= 60;
|
|
|
minutes %= 60;
|
|
|
|
|
|
// 12 months -> 1 year
|
|
|
years = absFloor(months / 12);
|
|
|
months %= 12;
|
|
|
|
|
|
// inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
|
|
|
s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
|
|
|
|
|
|
totalSign = total < 0 ? '-' : '';
|
|
|
ymSign = sign(this._months) !== sign(total) ? '-' : '';
|
|
|
daysSign = sign(this._days) !== sign(total) ? '-' : '';
|
|
|
hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
|
|
|
|
|
|
return (
|
|
|
totalSign +
|
|
|
'P' +
|
|
|
(years ? ymSign + years + 'Y' : '') +
|
|
|
(months ? ymSign + months + 'M' : '') +
|
|
|
(days ? daysSign + days + 'D' : '') +
|
|
|
(hours || minutes || seconds ? 'T' : '') +
|
|
|
(hours ? hmsSign + hours + 'H' : '') +
|
|
|
(minutes ? hmsSign + minutes + 'M' : '') +
|
|
|
(seconds ? hmsSign + s + 'S' : '')
|
|
|
);
|
|
|
}
|
|
|
|
|
|
var proto$2 = Duration.prototype;
|
|
|
|
|
|
proto$2.isValid = isValid$1;
|
|
|
proto$2.abs = abs;
|
|
|
proto$2.add = add$1;
|
|
|
proto$2.subtract = subtract$1;
|
|
|
proto$2.as = as;
|
|
|
proto$2.asMilliseconds = asMilliseconds;
|
|
|
proto$2.asSeconds = asSeconds;
|
|
|
proto$2.asMinutes = asMinutes;
|
|
|
proto$2.asHours = asHours;
|
|
|
proto$2.asDays = asDays;
|
|
|
proto$2.asWeeks = asWeeks;
|
|
|
proto$2.asMonths = asMonths;
|
|
|
proto$2.asQuarters = asQuarters;
|
|
|
proto$2.asYears = asYears;
|
|
|
proto$2.valueOf = valueOf$1;
|
|
|
proto$2._bubble = bubble;
|
|
|
proto$2.clone = clone$1;
|
|
|
proto$2.get = get$2;
|
|
|
proto$2.milliseconds = milliseconds;
|
|
|
proto$2.seconds = seconds;
|
|
|
proto$2.minutes = minutes;
|
|
|
proto$2.hours = hours;
|
|
|
proto$2.days = days;
|
|
|
proto$2.weeks = weeks;
|
|
|
proto$2.months = months;
|
|
|
proto$2.years = years;
|
|
|
proto$2.humanize = humanize;
|
|
|
proto$2.toISOString = toISOString$1;
|
|
|
proto$2.toString = toISOString$1;
|
|
|
proto$2.toJSON = toISOString$1;
|
|
|
proto$2.locale = locale;
|
|
|
proto$2.localeData = localeData;
|
|
|
|
|
|
proto$2.toIsoString = deprecate(
|
|
|
'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
|
|
|
toISOString$1
|
|
|
);
|
|
|
proto$2.lang = lang;
|
|
|
|
|
|
// FORMATTING
|
|
|
|
|
|
addFormatToken('X', 0, 0, 'unix');
|
|
|
addFormatToken('x', 0, 0, 'valueOf');
|
|
|
|
|
|
// PARSING
|
|
|
|
|
|
addRegexToken('x', matchSigned);
|
|
|
addRegexToken('X', matchTimestamp);
|
|
|
addParseToken('X', function (input, array, config) {
|
|
|
config._d = new Date(parseFloat(input) * 1000);
|
|
|
});
|
|
|
addParseToken('x', function (input, array, config) {
|
|
|
config._d = new Date(toInt(input));
|
|
|
});
|
|
|
|
|
|
//! moment.js
|
|
|
|
|
|
hooks.version = '2.29.1';
|
|
|
|
|
|
setHookCallback(createLocal);
|
|
|
|
|
|
hooks.fn = proto;
|
|
|
hooks.min = min;
|
|
|
hooks.max = max;
|
|
|
hooks.now = now;
|
|
|
hooks.utc = createUTC;
|
|
|
hooks.unix = createUnix;
|
|
|
hooks.months = listMonths;
|
|
|
hooks.isDate = isDate;
|
|
|
hooks.locale = getSetGlobalLocale;
|
|
|
hooks.invalid = createInvalid;
|
|
|
hooks.duration = createDuration;
|
|
|
hooks.isMoment = isMoment;
|
|
|
hooks.weekdays = listWeekdays;
|
|
|
hooks.parseZone = createInZone;
|
|
|
hooks.localeData = getLocale;
|
|
|
hooks.isDuration = isDuration;
|
|
|
hooks.monthsShort = listMonthsShort;
|
|
|
hooks.weekdaysMin = listWeekdaysMin;
|
|
|
hooks.defineLocale = defineLocale;
|
|
|
hooks.updateLocale = updateLocale;
|
|
|
hooks.locales = listLocales;
|
|
|
hooks.weekdaysShort = listWeekdaysShort;
|
|
|
hooks.normalizeUnits = normalizeUnits;
|
|
|
hooks.relativeTimeRounding = getSetRelativeTimeRounding;
|
|
|
hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
|
|
|
hooks.calendarFormat = getCalendarFormat;
|
|
|
hooks.prototype = proto;
|
|
|
|
|
|
// currently HTML5 input type only supports 24-hour formats
|
|
|
hooks.HTML5_FMT = {
|
|
|
DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
|
|
|
DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
|
|
|
DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
|
|
|
DATE: 'YYYY-MM-DD', // <input type="date" />
|
|
|
TIME: 'HH:mm', // <input type="time" />
|
|
|
TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
|
|
|
TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
|
|
|
WEEK: 'GGGG-[W]WW', // <input type="week" />
|
|
|
MONTH: 'YYYY-MM', // <input type="month" />
|
|
|
};
|
|
|
|
|
|
return hooks;
|
|
|
|
|
|
})));
|
|
|
|
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/mout/function/debounce.js":
|
|
|
/*!************************************************!*\
|
|
|
!*** ./node_modules/mout/function/debounce.js ***!
|
|
|
\************************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* Debounce callback execution
|
|
|
*/
|
|
|
function debounce(fn, threshold, isAsap){
|
|
|
var timeout, result;
|
|
|
function debounced(){
|
|
|
var args = arguments, context = this;
|
|
|
function delayed(){
|
|
|
if (! isAsap) {
|
|
|
result = fn.apply(context, args);
|
|
|
}
|
|
|
timeout = null;
|
|
|
}
|
|
|
if (timeout) {
|
|
|
clearTimeout(timeout);
|
|
|
} else if (isAsap) {
|
|
|
result = fn.apply(context, args);
|
|
|
}
|
|
|
timeout = setTimeout(delayed, threshold);
|
|
|
return result;
|
|
|
}
|
|
|
debounced.cancel = function(){
|
|
|
clearTimeout(timeout);
|
|
|
};
|
|
|
return debounced;
|
|
|
}
|
|
|
|
|
|
module.exports = debounce;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/mout/math/clamp.js":
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./node_modules/mout/math/clamp.js ***!
|
|
|
\*****************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
|
|
|
/**
|
|
|
* Clamps value inside range.
|
|
|
*/
|
|
|
function clamp(val, min, max){
|
|
|
return val < min? min : (val > max? max : val);
|
|
|
}
|
|
|
module.exports = clamp;
|
|
|
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/popper.js/dist/esm/popper.js":
|
|
|
/*!***************************************************!*\
|
|
|
!*** ./node_modules/popper.js/dist/esm/popper.js ***!
|
|
|
\***************************************************/
|
|
|
/*! exports provided: default */
|
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
/* WEBPACK VAR INJECTION */(function(global) {/**!
|
|
|
* @fileOverview Kickass library to create and place poppers near their reference elements.
|
|
|
* @version 1.16.1
|
|
|
* @license
|
|
|
* Copyright (c) 2016 Federico Zivolo and contributors
|
|
|
*
|
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
|
* in the Software without restriction, including without limitation the rights
|
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
|
* furnished to do so, subject to the following conditions:
|
|
|
*
|
|
|
* The above copyright notice and this permission notice shall be included in all
|
|
|
* copies or substantial portions of the Software.
|
|
|
*
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
* SOFTWARE.
|
|
|
*/
|
|
|
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';
|
|
|
|
|
|
var timeoutDuration = function () {
|
|
|
var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
|
|
|
for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
|
|
|
if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
|
|
|
return 1;
|
|
|
}
|
|
|
}
|
|
|
return 0;
|
|
|
}();
|
|
|
|
|
|
function microtaskDebounce(fn) {
|
|
|
var called = false;
|
|
|
return function () {
|
|
|
if (called) {
|
|
|
return;
|
|
|
}
|
|
|
called = true;
|
|
|
window.Promise.resolve().then(function () {
|
|
|
called = false;
|
|
|
fn();
|
|
|
});
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function taskDebounce(fn) {
|
|
|
var scheduled = false;
|
|
|
return function () {
|
|
|
if (!scheduled) {
|
|
|
scheduled = true;
|
|
|
setTimeout(function () {
|
|
|
scheduled = false;
|
|
|
fn();
|
|
|
}, timeoutDuration);
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
|
|
|
var supportsMicroTasks = isBrowser && window.Promise;
|
|
|
|
|
|
/**
|
|
|
* Create a debounced version of a method, that's asynchronously deferred
|
|
|
* but called in the minimum time possible.
|
|
|
*
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Function} fn
|
|
|
* @returns {Function}
|
|
|
*/
|
|
|
var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
|
|
|
|
|
|
/**
|
|
|
* Check if the given variable is a function
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Any} functionToCheck - variable to check
|
|
|
* @returns {Boolean} answer to: is a function?
|
|
|
*/
|
|
|
function isFunction(functionToCheck) {
|
|
|
var getType = {};
|
|
|
return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get CSS computed property of the given element
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Eement} element
|
|
|
* @argument {String} property
|
|
|
*/
|
|
|
function getStyleComputedProperty(element, property) {
|
|
|
if (element.nodeType !== 1) {
|
|
|
return [];
|
|
|
}
|
|
|
// NOTE: 1 DOM access here
|
|
|
var window = element.ownerDocument.defaultView;
|
|
|
var css = window.getComputedStyle(element, null);
|
|
|
return property ? css[property] : css;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Returns the parentNode or the host of the element
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Element} element
|
|
|
* @returns {Element} parent
|
|
|
*/
|
|
|
function getParentNode(element) {
|
|
|
if (element.nodeName === 'HTML') {
|
|
|
return element;
|
|
|
}
|
|
|
return element.parentNode || element.host;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Returns the scrolling parent of the given element
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Element} element
|
|
|
* @returns {Element} scroll parent
|
|
|
*/
|
|
|
function getScrollParent(element) {
|
|
|
// Return body, `getScroll` will take care to get the correct `scrollTop` from it
|
|
|
if (!element) {
|
|
|
return document.body;
|
|
|
}
|
|
|
|
|
|
switch (element.nodeName) {
|
|
|
case 'HTML':
|
|
|
case 'BODY':
|
|
|
return element.ownerDocument.body;
|
|
|
case '#document':
|
|
|
return element.body;
|
|
|
}
|
|
|
|
|
|
// Firefox want us to check `-x` and `-y` variations as well
|
|
|
|
|
|
var _getStyleComputedProp = getStyleComputedProperty(element),
|
|
|
overflow = _getStyleComputedProp.overflow,
|
|
|
overflowX = _getStyleComputedProp.overflowX,
|
|
|
overflowY = _getStyleComputedProp.overflowY;
|
|
|
|
|
|
if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
|
|
|
return element;
|
|
|
}
|
|
|
|
|
|
return getScrollParent(getParentNode(element));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Returns the reference node of the reference object, or the reference object itself.
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @param {Element|Object} reference - the reference element (the popper will be relative to this)
|
|
|
* @returns {Element} parent
|
|
|
*/
|
|
|
function getReferenceNode(reference) {
|
|
|
return reference && reference.referenceNode ? reference.referenceNode : reference;
|
|
|
}
|
|
|
|
|
|
var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
|
|
|
var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
|
|
|
|
|
|
/**
|
|
|
* Determines if the browser is Internet Explorer
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @param {Number} version to check
|
|
|
* @returns {Boolean} isIE
|
|
|
*/
|
|
|
function isIE(version) {
|
|
|
if (version === 11) {
|
|
|
return isIE11;
|
|
|
}
|
|
|
if (version === 10) {
|
|
|
return isIE10;
|
|
|
}
|
|
|
return isIE11 || isIE10;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Returns the offset parent of the given element
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Element} element
|
|
|
* @returns {Element} offset parent
|
|
|
*/
|
|
|
function getOffsetParent(element) {
|
|
|
if (!element) {
|
|
|
return document.documentElement;
|
|
|
}
|
|
|
|
|
|
var noOffsetParent = isIE(10) ? document.body : null;
|
|
|
|
|
|
// NOTE: 1 DOM access here
|
|
|
var offsetParent = element.offsetParent || null;
|
|
|
// Skip hidden elements which don't have an offsetParent
|
|
|
while (offsetParent === noOffsetParent && element.nextElementSibling) {
|
|
|
offsetParent = (element = element.nextElementSibling).offsetParent;
|
|
|
}
|
|
|
|
|
|
var nodeName = offsetParent && offsetParent.nodeName;
|
|
|
|
|
|
if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
|
|
|
return element ? element.ownerDocument.documentElement : document.documentElement;
|
|
|
}
|
|
|
|
|
|
// .offsetParent will return the closest TH, TD or TABLE in case
|
|
|
// no offsetParent is present, I hate this job...
|
|
|
if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
|
|
|
return getOffsetParent(offsetParent);
|
|
|
}
|
|
|
|
|
|
return offsetParent;
|
|
|
}
|
|
|
|
|
|
function isOffsetContainer(element) {
|
|
|
var nodeName = element.nodeName;
|
|
|
|
|
|
if (nodeName === 'BODY') {
|
|
|
return false;
|
|
|
}
|
|
|
return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Finds the root node (document, shadowDOM root) of the given element
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Element} node
|
|
|
* @returns {Element} root node
|
|
|
*/
|
|
|
function getRoot(node) {
|
|
|
if (node.parentNode !== null) {
|
|
|
return getRoot(node.parentNode);
|
|
|
}
|
|
|
|
|
|
return node;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Finds the offset parent common to the two provided nodes
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Element} element1
|
|
|
* @argument {Element} element2
|
|
|
* @returns {Element} common offset parent
|
|
|
*/
|
|
|
function findCommonOffsetParent(element1, element2) {
|
|
|
// This check is needed to avoid errors in case one of the elements isn't defined for any reason
|
|
|
if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
|
|
|
return document.documentElement;
|
|
|
}
|
|
|
|
|
|
// Here we make sure to give as "start" the element that comes first in the DOM
|
|
|
var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
|
|
|
var start = order ? element1 : element2;
|
|
|
var end = order ? element2 : element1;
|
|
|
|
|
|
// Get common ancestor container
|
|
|
var range = document.createRange();
|
|
|
range.setStart(start, 0);
|
|
|
range.setEnd(end, 0);
|
|
|
var commonAncestorContainer = range.commonAncestorContainer;
|
|
|
|
|
|
// Both nodes are inside #document
|
|
|
|
|
|
if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
|
|
|
if (isOffsetContainer(commonAncestorContainer)) {
|
|
|
return commonAncestorContainer;
|
|
|
}
|
|
|
|
|
|
return getOffsetParent(commonAncestorContainer);
|
|
|
}
|
|
|
|
|
|
// one of the nodes is inside shadowDOM, find which one
|
|
|
var element1root = getRoot(element1);
|
|
|
if (element1root.host) {
|
|
|
return findCommonOffsetParent(element1root.host, element2);
|
|
|
} else {
|
|
|
return findCommonOffsetParent(element1, getRoot(element2).host);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Gets the scroll value of the given element in the given side (top and left)
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Element} element
|
|
|
* @argument {String} side `top` or `left`
|
|
|
* @returns {number} amount of scrolled pixels
|
|
|
*/
|
|
|
function getScroll(element) {
|
|
|
var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
|
|
|
|
|
|
var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
|
|
|
var nodeName = element.nodeName;
|
|
|
|
|
|
if (nodeName === 'BODY' || nodeName === 'HTML') {
|
|
|
var html = element.ownerDocument.documentElement;
|
|
|
var scrollingElement = element.ownerDocument.scrollingElement || html;
|
|
|
return scrollingElement[upperSide];
|
|
|
}
|
|
|
|
|
|
return element[upperSide];
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
* Sum or subtract the element scroll values (left and top) from a given rect object
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @param {Object} rect - Rect object you want to change
|
|
|
* @param {HTMLElement} element - The element from the function reads the scroll values
|
|
|
* @param {Boolean} subtract - set to true if you want to subtract the scroll values
|
|
|
* @return {Object} rect - The modifier rect object
|
|
|
*/
|
|
|
function includeScroll(rect, element) {
|
|
|
var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
|
|
|
|
var scrollTop = getScroll(element, 'top');
|
|
|
var scrollLeft = getScroll(element, 'left');
|
|
|
var modifier = subtract ? -1 : 1;
|
|
|
rect.top += scrollTop * modifier;
|
|
|
rect.bottom += scrollTop * modifier;
|
|
|
rect.left += scrollLeft * modifier;
|
|
|
rect.right += scrollLeft * modifier;
|
|
|
return rect;
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
* Helper to detect borders of a given element
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @param {CSSStyleDeclaration} styles
|
|
|
* Result of `getStyleComputedProperty` on the given element
|
|
|
* @param {String} axis - `x` or `y`
|
|
|
* @return {number} borders - The borders size of the given axis
|
|
|
*/
|
|
|
|
|
|
function getBordersSize(styles, axis) {
|
|
|
var sideA = axis === 'x' ? 'Left' : 'Top';
|
|
|
var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
|
|
|
|
|
|
return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
|
|
|
}
|
|
|
|
|
|
function getSize(axis, body, html, computedStyle) {
|
|
|
return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
|
|
|
}
|
|
|
|
|
|
function getWindowSizes(document) {
|
|
|
var body = document.body;
|
|
|
var html = document.documentElement;
|
|
|
var computedStyle = isIE(10) && getComputedStyle(html);
|
|
|
|
|
|
return {
|
|
|
height: getSize('Height', body, html, computedStyle),
|
|
|
width: getSize('Width', body, html, computedStyle)
|
|
|
};
|
|
|
}
|
|
|
|
|
|
var classCallCheck = function (instance, Constructor) {
|
|
|
if (!(instance instanceof Constructor)) {
|
|
|
throw new TypeError("Cannot call a class as a function");
|
|
|
}
|
|
|
};
|
|
|
|
|
|
var createClass = function () {
|
|
|
function defineProperties(target, props) {
|
|
|
for (var i = 0; i < props.length; i++) {
|
|
|
var descriptor = props[i];
|
|
|
descriptor.enumerable = descriptor.enumerable || false;
|
|
|
descriptor.configurable = true;
|
|
|
if ("value" in descriptor) descriptor.writable = true;
|
|
|
Object.defineProperty(target, descriptor.key, descriptor);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return function (Constructor, protoProps, staticProps) {
|
|
|
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
|
|
if (staticProps) defineProperties(Constructor, staticProps);
|
|
|
return Constructor;
|
|
|
};
|
|
|
}();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var defineProperty = function (obj, key, value) {
|
|
|
if (key in obj) {
|
|
|
Object.defineProperty(obj, key, {
|
|
|
value: value,
|
|
|
enumerable: true,
|
|
|
configurable: true,
|
|
|
writable: true
|
|
|
});
|
|
|
} else {
|
|
|
obj[key] = value;
|
|
|
}
|
|
|
|
|
|
return obj;
|
|
|
};
|
|
|
|
|
|
var _extends = Object.assign || function (target) {
|
|
|
for (var i = 1; i < arguments.length; i++) {
|
|
|
var source = arguments[i];
|
|
|
|
|
|
for (var key in source) {
|
|
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
|
target[key] = source[key];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return target;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Given element offsets, generate an output similar to getBoundingClientRect
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Object} offsets
|
|
|
* @returns {Object} ClientRect like output
|
|
|
*/
|
|
|
function getClientRect(offsets) {
|
|
|
return _extends({}, offsets, {
|
|
|
right: offsets.left + offsets.width,
|
|
|
bottom: offsets.top + offsets.height
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get bounding client rect of given element
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @param {HTMLElement} element
|
|
|
* @return {Object} client rect
|
|
|
*/
|
|
|
function getBoundingClientRect(element) {
|
|
|
var rect = {};
|
|
|
|
|
|
// IE10 10 FIX: Please, don't ask, the element isn't
|
|
|
// considered in DOM in some circumstances...
|
|
|
// This isn't reproducible in IE10 compatibility mode of IE11
|
|
|
try {
|
|
|
if (isIE(10)) {
|
|
|
rect = element.getBoundingClientRect();
|
|
|
var scrollTop = getScroll(element, 'top');
|
|
|
var scrollLeft = getScroll(element, 'left');
|
|
|
rect.top += scrollTop;
|
|
|
rect.left += scrollLeft;
|
|
|
rect.bottom += scrollTop;
|
|
|
rect.right += scrollLeft;
|
|
|
} else {
|
|
|
rect = element.getBoundingClientRect();
|
|
|
}
|
|
|
} catch (e) {}
|
|
|
|
|
|
var result = {
|
|
|
left: rect.left,
|
|
|
top: rect.top,
|
|
|
width: rect.right - rect.left,
|
|
|
height: rect.bottom - rect.top
|
|
|
};
|
|
|
|
|
|
// subtract scrollbar size from sizes
|
|
|
var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
|
|
|
var width = sizes.width || element.clientWidth || result.width;
|
|
|
var height = sizes.height || element.clientHeight || result.height;
|
|
|
|
|
|
var horizScrollbar = element.offsetWidth - width;
|
|
|
var vertScrollbar = element.offsetHeight - height;
|
|
|
|
|
|
// if an hypothetical scrollbar is detected, we must be sure it's not a `border`
|
|
|
// we make this check conditional for performance reasons
|
|
|
if (horizScrollbar || vertScrollbar) {
|
|
|
var styles = getStyleComputedProperty(element);
|
|
|
horizScrollbar -= getBordersSize(styles, 'x');
|
|
|
vertScrollbar -= getBordersSize(styles, 'y');
|
|
|
|
|
|
result.width -= horizScrollbar;
|
|
|
result.height -= vertScrollbar;
|
|
|
}
|
|
|
|
|
|
return getClientRect(result);
|
|
|
}
|
|
|
|
|
|
function getOffsetRectRelativeToArbitraryNode(children, parent) {
|
|
|
var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
|
|
|
|
var isIE10 = isIE(10);
|
|
|
var isHTML = parent.nodeName === 'HTML';
|
|
|
var childrenRect = getBoundingClientRect(children);
|
|
|
var parentRect = getBoundingClientRect(parent);
|
|
|
var scrollParent = getScrollParent(children);
|
|
|
|
|
|
var styles = getStyleComputedProperty(parent);
|
|
|
var borderTopWidth = parseFloat(styles.borderTopWidth);
|
|
|
var borderLeftWidth = parseFloat(styles.borderLeftWidth);
|
|
|
|
|
|
// In cases where the parent is fixed, we must ignore negative scroll in offset calc
|
|
|
if (fixedPosition && isHTML) {
|
|
|
parentRect.top = Math.max(parentRect.top, 0);
|
|
|
parentRect.left = Math.max(parentRect.left, 0);
|
|
|
}
|
|
|
var offsets = getClientRect({
|
|
|
top: childrenRect.top - parentRect.top - borderTopWidth,
|
|
|
left: childrenRect.left - parentRect.left - borderLeftWidth,
|
|
|
width: childrenRect.width,
|
|
|
height: childrenRect.height
|
|
|
});
|
|
|
offsets.marginTop = 0;
|
|
|
offsets.marginLeft = 0;
|
|
|
|
|
|
// Subtract margins of documentElement in case it's being used as parent
|
|
|
// we do this only on HTML because it's the only element that behaves
|
|
|
// differently when margins are applied to it. The margins are included in
|
|
|
// the box of the documentElement, in the other cases not.
|
|
|
if (!isIE10 && isHTML) {
|
|
|
var marginTop = parseFloat(styles.marginTop);
|
|
|
var marginLeft = parseFloat(styles.marginLeft);
|
|
|
|
|
|
offsets.top -= borderTopWidth - marginTop;
|
|
|
offsets.bottom -= borderTopWidth - marginTop;
|
|
|
offsets.left -= borderLeftWidth - marginLeft;
|
|
|
offsets.right -= borderLeftWidth - marginLeft;
|
|
|
|
|
|
// Attach marginTop and marginLeft because in some circumstances we may need them
|
|
|
offsets.marginTop = marginTop;
|
|
|
offsets.marginLeft = marginLeft;
|
|
|
}
|
|
|
|
|
|
if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
|
|
|
offsets = includeScroll(offsets, parent);
|
|
|
}
|
|
|
|
|
|
return offsets;
|
|
|
}
|
|
|
|
|
|
function getViewportOffsetRectRelativeToArtbitraryNode(element) {
|
|
|
var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
|
|
|
|
var html = element.ownerDocument.documentElement;
|
|
|
var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
|
|
|
var width = Math.max(html.clientWidth, window.innerWidth || 0);
|
|
|
var height = Math.max(html.clientHeight, window.innerHeight || 0);
|
|
|
|
|
|
var scrollTop = !excludeScroll ? getScroll(html) : 0;
|
|
|
var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
|
|
|
|
|
|
var offset = {
|
|
|
top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
|
|
|
left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
|
|
|
width: width,
|
|
|
height: height
|
|
|
};
|
|
|
|
|
|
return getClientRect(offset);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Check if the given element is fixed or is inside a fixed parent
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Element} element
|
|
|
* @argument {Element} customContainer
|
|
|
* @returns {Boolean} answer to "isFixed?"
|
|
|
*/
|
|
|
function isFixed(element) {
|
|
|
var nodeName = element.nodeName;
|
|
|
if (nodeName === 'BODY' || nodeName === 'HTML') {
|
|
|
return false;
|
|
|
}
|
|
|
if (getStyleComputedProperty(element, 'position') === 'fixed') {
|
|
|
return true;
|
|
|
}
|
|
|
var parentNode = getParentNode(element);
|
|
|
if (!parentNode) {
|
|
|
return false;
|
|
|
}
|
|
|
return isFixed(parentNode);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Finds the first parent of an element that has a transformed property defined
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Element} element
|
|
|
* @returns {Element} first transformed parent or documentElement
|
|
|
*/
|
|
|
|
|
|
function getFixedPositionOffsetParent(element) {
|
|
|
// This check is needed to avoid errors in case one of the elements isn't defined for any reason
|
|
|
if (!element || !element.parentElement || isIE()) {
|
|
|
return document.documentElement;
|
|
|
}
|
|
|
var el = element.parentElement;
|
|
|
while (el && getStyleComputedProperty(el, 'transform') === 'none') {
|
|
|
el = el.parentElement;
|
|
|
}
|
|
|
return el || document.documentElement;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Computed the boundaries limits and return them
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @param {HTMLElement} popper
|
|
|
* @param {HTMLElement} reference
|
|
|
* @param {number} padding
|
|
|
* @param {HTMLElement} boundariesElement - Element used to define the boundaries
|
|
|
* @param {Boolean} fixedPosition - Is in fixed position mode
|
|
|
* @returns {Object} Coordinates of the boundaries
|
|
|
*/
|
|
|
function getBoundaries(popper, reference, padding, boundariesElement) {
|
|
|
var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
|
|
|
|
// NOTE: 1 DOM access here
|
|
|
|
|
|
var boundaries = { top: 0, left: 0 };
|
|
|
var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
|
|
|
|
|
|
// Handle viewport case
|
|
|
if (boundariesElement === 'viewport') {
|
|
|
boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
|
|
|
} else {
|
|
|
// Handle other cases based on DOM element used as boundaries
|
|
|
var boundariesNode = void 0;
|
|
|
if (boundariesElement === 'scrollParent') {
|
|
|
boundariesNode = getScrollParent(getParentNode(reference));
|
|
|
if (boundariesNode.nodeName === 'BODY') {
|
|
|
boundariesNode = popper.ownerDocument.documentElement;
|
|
|
}
|
|
|
} else if (boundariesElement === 'window') {
|
|
|
boundariesNode = popper.ownerDocument.documentElement;
|
|
|
} else {
|
|
|
boundariesNode = boundariesElement;
|
|
|
}
|
|
|
|
|
|
var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
|
|
|
|
|
|
// In case of HTML, we need a different computation
|
|
|
if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
|
|
|
var _getWindowSizes = getWindowSizes(popper.ownerDocument),
|
|
|
height = _getWindowSizes.height,
|
|
|
width = _getWindowSizes.width;
|
|
|
|
|
|
boundaries.top += offsets.top - offsets.marginTop;
|
|
|
boundaries.bottom = height + offsets.top;
|
|
|
boundaries.left += offsets.left - offsets.marginLeft;
|
|
|
boundaries.right = width + offsets.left;
|
|
|
} else {
|
|
|
// for all the other DOM elements, this one is good
|
|
|
boundaries = offsets;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// Add paddings
|
|
|
padding = padding || 0;
|
|
|
var isPaddingNumber = typeof padding === 'number';
|
|
|
boundaries.left += isPaddingNumber ? padding : padding.left || 0;
|
|
|
boundaries.top += isPaddingNumber ? padding : padding.top || 0;
|
|
|
boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
|
|
|
boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
|
|
|
|
|
|
return boundaries;
|
|
|
}
|
|
|
|
|
|
function getArea(_ref) {
|
|
|
var width = _ref.width,
|
|
|
height = _ref.height;
|
|
|
|
|
|
return width * height;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Utility used to transform the `auto` placement to the placement with more
|
|
|
* available space.
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Object} data - The data object generated by update method
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @returns {Object} The data object, properly modified
|
|
|
*/
|
|
|
function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
|
|
|
var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
|
|
|
|
|
|
if (placement.indexOf('auto') === -1) {
|
|
|
return placement;
|
|
|
}
|
|
|
|
|
|
var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
|
|
|
|
|
|
var rects = {
|
|
|
top: {
|
|
|
width: boundaries.width,
|
|
|
height: refRect.top - boundaries.top
|
|
|
},
|
|
|
right: {
|
|
|
width: boundaries.right - refRect.right,
|
|
|
height: boundaries.height
|
|
|
},
|
|
|
bottom: {
|
|
|
width: boundaries.width,
|
|
|
height: boundaries.bottom - refRect.bottom
|
|
|
},
|
|
|
left: {
|
|
|
width: refRect.left - boundaries.left,
|
|
|
height: boundaries.height
|
|
|
}
|
|
|
};
|
|
|
|
|
|
var sortedAreas = Object.keys(rects).map(function (key) {
|
|
|
return _extends({
|
|
|
key: key
|
|
|
}, rects[key], {
|
|
|
area: getArea(rects[key])
|
|
|
});
|
|
|
}).sort(function (a, b) {
|
|
|
return b.area - a.area;
|
|
|
});
|
|
|
|
|
|
var filteredAreas = sortedAreas.filter(function (_ref2) {
|
|
|
var width = _ref2.width,
|
|
|
height = _ref2.height;
|
|
|
return width >= popper.clientWidth && height >= popper.clientHeight;
|
|
|
});
|
|
|
|
|
|
var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
|
|
|
|
|
|
var variation = placement.split('-')[1];
|
|
|
|
|
|
return computedPlacement + (variation ? '-' + variation : '');
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get offsets to the reference element
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @param {Object} state
|
|
|
* @param {Element} popper - the popper element
|
|
|
* @param {Element} reference - the reference element (the popper will be relative to this)
|
|
|
* @param {Element} fixedPosition - is in fixed position mode
|
|
|
* @returns {Object} An object containing the offsets which will be applied to the popper
|
|
|
*/
|
|
|
function getReferenceOffsets(state, popper, reference) {
|
|
|
var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
|
|
|
|
var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
|
|
|
return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get the outer sizes of the given element (offset size + margins)
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Element} element
|
|
|
* @returns {Object} object containing width and height properties
|
|
|
*/
|
|
|
function getOuterSizes(element) {
|
|
|
var window = element.ownerDocument.defaultView;
|
|
|
var styles = window.getComputedStyle(element);
|
|
|
var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
|
|
|
var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
|
|
|
var result = {
|
|
|
width: element.offsetWidth + y,
|
|
|
height: element.offsetHeight + x
|
|
|
};
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get the opposite placement of the given one
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {String} placement
|
|
|
* @returns {String} flipped placement
|
|
|
*/
|
|
|
function getOppositePlacement(placement) {
|
|
|
var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
|
|
|
return placement.replace(/left|right|bottom|top/g, function (matched) {
|
|
|
return hash[matched];
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get offsets to the popper
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @param {Object} position - CSS position the Popper will get applied
|
|
|
* @param {HTMLElement} popper - the popper element
|
|
|
* @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
|
|
|
* @param {String} placement - one of the valid placement options
|
|
|
* @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
|
|
|
*/
|
|
|
function getPopperOffsets(popper, referenceOffsets, placement) {
|
|
|
placement = placement.split('-')[0];
|
|
|
|
|
|
// Get popper node sizes
|
|
|
var popperRect = getOuterSizes(popper);
|
|
|
|
|
|
// Add position, width and height to our offsets object
|
|
|
var popperOffsets = {
|
|
|
width: popperRect.width,
|
|
|
height: popperRect.height
|
|
|
};
|
|
|
|
|
|
// depending by the popper placement we have to compute its offsets slightly differently
|
|
|
var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
|
|
|
var mainSide = isHoriz ? 'top' : 'left';
|
|
|
var secondarySide = isHoriz ? 'left' : 'top';
|
|
|
var measurement = isHoriz ? 'height' : 'width';
|
|
|
var secondaryMeasurement = !isHoriz ? 'height' : 'width';
|
|
|
|
|
|
popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
|
|
|
if (placement === secondarySide) {
|
|
|
popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
|
|
|
} else {
|
|
|
popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
|
|
|
}
|
|
|
|
|
|
return popperOffsets;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Mimics the `find` method of Array
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Array} arr
|
|
|
* @argument prop
|
|
|
* @argument value
|
|
|
* @returns index or -1
|
|
|
*/
|
|
|
function find(arr, check) {
|
|
|
// use native find if supported
|
|
|
if (Array.prototype.find) {
|
|
|
return arr.find(check);
|
|
|
}
|
|
|
|
|
|
// use `filter` to obtain the same behavior of `find`
|
|
|
return arr.filter(check)[0];
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Return the index of the matching object
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Array} arr
|
|
|
* @argument prop
|
|
|
* @argument value
|
|
|
* @returns index or -1
|
|
|
*/
|
|
|
function findIndex(arr, prop, value) {
|
|
|
// use native findIndex if supported
|
|
|
if (Array.prototype.findIndex) {
|
|
|
return arr.findIndex(function (cur) {
|
|
|
return cur[prop] === value;
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// use `find` + `indexOf` if `findIndex` isn't supported
|
|
|
var match = find(arr, function (obj) {
|
|
|
return obj[prop] === value;
|
|
|
});
|
|
|
return arr.indexOf(match);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Loop trough the list of modifiers and run them in order,
|
|
|
* each of them will then edit the data object.
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @param {dataObject} data
|
|
|
* @param {Array} modifiers
|
|
|
* @param {String} ends - Optional modifier name used as stopper
|
|
|
* @returns {dataObject}
|
|
|
*/
|
|
|
function runModifiers(modifiers, data, ends) {
|
|
|
var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
|
|
|
|
|
|
modifiersToRun.forEach(function (modifier) {
|
|
|
if (modifier['function']) {
|
|
|
// eslint-disable-line dot-notation
|
|
|
console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
|
|
|
}
|
|
|
var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
|
|
|
if (modifier.enabled && isFunction(fn)) {
|
|
|
// Add properties to offsets to make them a complete clientRect object
|
|
|
// we do this before each modifier to make sure the previous one doesn't
|
|
|
// mess with these values
|
|
|
data.offsets.popper = getClientRect(data.offsets.popper);
|
|
|
data.offsets.reference = getClientRect(data.offsets.reference);
|
|
|
|
|
|
data = fn(data, modifier);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Updates the position of the popper, computing the new offsets and applying
|
|
|
* the new style.<br />
|
|
|
* Prefer `scheduleUpdate` over `update` because of performance reasons.
|
|
|
* @method
|
|
|
* @memberof Popper
|
|
|
*/
|
|
|
function update() {
|
|
|
// if popper is destroyed, don't perform any further update
|
|
|
if (this.state.isDestroyed) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var data = {
|
|
|
instance: this,
|
|
|
styles: {},
|
|
|
arrowStyles: {},
|
|
|
attributes: {},
|
|
|
flipped: false,
|
|
|
offsets: {}
|
|
|
};
|
|
|
|
|
|
// compute reference element offsets
|
|
|
data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
|
|
|
|
|
|
// compute auto placement, store placement inside the data object,
|
|
|
// modifiers will be able to edit `placement` if needed
|
|
|
// and refer to originalPlacement to know the original value
|
|
|
data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
|
|
|
|
|
|
// store the computed placement inside `originalPlacement`
|
|
|
data.originalPlacement = data.placement;
|
|
|
|
|
|
data.positionFixed = this.options.positionFixed;
|
|
|
|
|
|
// compute the popper offsets
|
|
|
data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
|
|
|
|
|
|
data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
|
|
|
|
|
|
// run the modifiers
|
|
|
data = runModifiers(this.modifiers, data);
|
|
|
|
|
|
// the first `update` will call `onCreate` callback
|
|
|
// the other ones will call `onUpdate` callback
|
|
|
if (!this.state.isCreated) {
|
|
|
this.state.isCreated = true;
|
|
|
this.options.onCreate(data);
|
|
|
} else {
|
|
|
this.options.onUpdate(data);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Helper used to know if the given modifier is enabled.
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @returns {Boolean}
|
|
|
*/
|
|
|
function isModifierEnabled(modifiers, modifierName) {
|
|
|
return modifiers.some(function (_ref) {
|
|
|
var name = _ref.name,
|
|
|
enabled = _ref.enabled;
|
|
|
return enabled && name === modifierName;
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get the prefixed supported property name
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {String} property (camelCase)
|
|
|
* @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
|
|
|
*/
|
|
|
function getSupportedPropertyName(property) {
|
|
|
var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
|
|
|
var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
|
|
|
|
|
|
for (var i = 0; i < prefixes.length; i++) {
|
|
|
var prefix = prefixes[i];
|
|
|
var toCheck = prefix ? '' + prefix + upperProp : property;
|
|
|
if (typeof document.body.style[toCheck] !== 'undefined') {
|
|
|
return toCheck;
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Destroys the popper.
|
|
|
* @method
|
|
|
* @memberof Popper
|
|
|
*/
|
|
|
function destroy() {
|
|
|
this.state.isDestroyed = true;
|
|
|
|
|
|
// touch DOM only if `applyStyle` modifier is enabled
|
|
|
if (isModifierEnabled(this.modifiers, 'applyStyle')) {
|
|
|
this.popper.removeAttribute('x-placement');
|
|
|
this.popper.style.position = '';
|
|
|
this.popper.style.top = '';
|
|
|
this.popper.style.left = '';
|
|
|
this.popper.style.right = '';
|
|
|
this.popper.style.bottom = '';
|
|
|
this.popper.style.willChange = '';
|
|
|
this.popper.style[getSupportedPropertyName('transform')] = '';
|
|
|
}
|
|
|
|
|
|
this.disableEventListeners();
|
|
|
|
|
|
// remove the popper if user explicitly asked for the deletion on destroy
|
|
|
// do not use `remove` because IE11 doesn't support it
|
|
|
if (this.options.removeOnDestroy) {
|
|
|
this.popper.parentNode.removeChild(this.popper);
|
|
|
}
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get the window associated with the element
|
|
|
* @argument {Element} element
|
|
|
* @returns {Window}
|
|
|
*/
|
|
|
function getWindow(element) {
|
|
|
var ownerDocument = element.ownerDocument;
|
|
|
return ownerDocument ? ownerDocument.defaultView : window;
|
|
|
}
|
|
|
|
|
|
function attachToScrollParents(scrollParent, event, callback, scrollParents) {
|
|
|
var isBody = scrollParent.nodeName === 'BODY';
|
|
|
var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
|
|
|
target.addEventListener(event, callback, { passive: true });
|
|
|
|
|
|
if (!isBody) {
|
|
|
attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
|
|
|
}
|
|
|
scrollParents.push(target);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Setup needed event listeners used to update the popper position
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @private
|
|
|
*/
|
|
|
function setupEventListeners(reference, options, state, updateBound) {
|
|
|
// Resize event listener on window
|
|
|
state.updateBound = updateBound;
|
|
|
getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
|
|
|
|
|
|
// Scroll event listener on scroll parents
|
|
|
var scrollElement = getScrollParent(reference);
|
|
|
attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
|
|
|
state.scrollElement = scrollElement;
|
|
|
state.eventsEnabled = true;
|
|
|
|
|
|
return state;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* It will add resize/scroll events and start recalculating
|
|
|
* position of the popper element when they are triggered.
|
|
|
* @method
|
|
|
* @memberof Popper
|
|
|
*/
|
|
|
function enableEventListeners() {
|
|
|
if (!this.state.eventsEnabled) {
|
|
|
this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Remove event listeners used to update the popper position
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @private
|
|
|
*/
|
|
|
function removeEventListeners(reference, state) {
|
|
|
// Remove resize event listener on window
|
|
|
getWindow(reference).removeEventListener('resize', state.updateBound);
|
|
|
|
|
|
// Remove scroll event listener on scroll parents
|
|
|
state.scrollParents.forEach(function (target) {
|
|
|
target.removeEventListener('scroll', state.updateBound);
|
|
|
});
|
|
|
|
|
|
// Reset state
|
|
|
state.updateBound = null;
|
|
|
state.scrollParents = [];
|
|
|
state.scrollElement = null;
|
|
|
state.eventsEnabled = false;
|
|
|
return state;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* It will remove resize/scroll events and won't recalculate popper position
|
|
|
* when they are triggered. It also won't trigger `onUpdate` callback anymore,
|
|
|
* unless you call `update` method manually.
|
|
|
* @method
|
|
|
* @memberof Popper
|
|
|
*/
|
|
|
function disableEventListeners() {
|
|
|
if (this.state.eventsEnabled) {
|
|
|
cancelAnimationFrame(this.scheduleUpdate);
|
|
|
this.state = removeEventListeners(this.reference, this.state);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Tells if a given input is a number
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @param {*} input to check
|
|
|
* @return {Boolean}
|
|
|
*/
|
|
|
function isNumeric(n) {
|
|
|
return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Set the style to the given popper
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Element} element - Element to apply the style to
|
|
|
* @argument {Object} styles
|
|
|
* Object with a list of properties and values which will be applied to the element
|
|
|
*/
|
|
|
function setStyles(element, styles) {
|
|
|
Object.keys(styles).forEach(function (prop) {
|
|
|
var unit = '';
|
|
|
// add unit if the value is numeric and is one of the following
|
|
|
if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
|
|
|
unit = 'px';
|
|
|
}
|
|
|
element.style[prop] = styles[prop] + unit;
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Set the attributes to the given popper
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Element} element - Element to apply the attributes to
|
|
|
* @argument {Object} styles
|
|
|
* Object with a list of properties and values which will be applied to the element
|
|
|
*/
|
|
|
function setAttributes(element, attributes) {
|
|
|
Object.keys(attributes).forEach(function (prop) {
|
|
|
var value = attributes[prop];
|
|
|
if (value !== false) {
|
|
|
element.setAttribute(prop, attributes[prop]);
|
|
|
} else {
|
|
|
element.removeAttribute(prop);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @function
|
|
|
* @memberof Modifiers
|
|
|
* @argument {Object} data - The data object generated by `update` method
|
|
|
* @argument {Object} data.styles - List of style properties - values to apply to popper element
|
|
|
* @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @returns {Object} The same data object
|
|
|
*/
|
|
|
function applyStyle(data) {
|
|
|
// any property present in `data.styles` will be applied to the popper,
|
|
|
// in this way we can make the 3rd party modifiers add custom styles to it
|
|
|
// Be aware, modifiers could override the properties defined in the previous
|
|
|
// lines of this modifier!
|
|
|
setStyles(data.instance.popper, data.styles);
|
|
|
|
|
|
// any property present in `data.attributes` will be applied to the popper,
|
|
|
// they will be set as HTML attributes of the element
|
|
|
setAttributes(data.instance.popper, data.attributes);
|
|
|
|
|
|
// if arrowElement is defined and arrowStyles has some properties
|
|
|
if (data.arrowElement && Object.keys(data.arrowStyles).length) {
|
|
|
setStyles(data.arrowElement, data.arrowStyles);
|
|
|
}
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Set the x-placement attribute before everything else because it could be used
|
|
|
* to add margins to the popper margins needs to be calculated to get the
|
|
|
* correct popper offsets.
|
|
|
* @method
|
|
|
* @memberof Popper.modifiers
|
|
|
* @param {HTMLElement} reference - The reference element used to position the popper
|
|
|
* @param {HTMLElement} popper - The HTML element used as popper
|
|
|
* @param {Object} options - Popper.js options
|
|
|
*/
|
|
|
function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
|
|
|
// compute reference element offsets
|
|
|
var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
|
|
|
|
|
|
// compute auto placement, store placement inside the data object,
|
|
|
// modifiers will be able to edit `placement` if needed
|
|
|
// and refer to originalPlacement to know the original value
|
|
|
var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
|
|
|
|
|
|
popper.setAttribute('x-placement', placement);
|
|
|
|
|
|
// Apply `position` to popper before anything else because
|
|
|
// without the position applied we can't guarantee correct computations
|
|
|
setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
|
|
|
|
|
|
return options;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @function
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {Object} data - The data object generated by `update` method
|
|
|
* @argument {Boolean} shouldRound - If the offsets should be rounded at all
|
|
|
* @returns {Object} The popper's position offsets rounded
|
|
|
*
|
|
|
* The tale of pixel-perfect positioning. It's still not 100% perfect, but as
|
|
|
* good as it can be within reason.
|
|
|
* Discussion here: https://github.com/FezVrasta/popper.js/pull/715
|
|
|
*
|
|
|
* Low DPI screens cause a popper to be blurry if not using full pixels (Safari
|
|
|
* as well on High DPI screens).
|
|
|
*
|
|
|
* Firefox prefers no rounding for positioning and does not have blurriness on
|
|
|
* high DPI screens.
|
|
|
*
|
|
|
* Only horizontal placement and left/right values need to be considered.
|
|
|
*/
|
|
|
function getRoundedOffsets(data, shouldRound) {
|
|
|
var _data$offsets = data.offsets,
|
|
|
popper = _data$offsets.popper,
|
|
|
reference = _data$offsets.reference;
|
|
|
var round = Math.round,
|
|
|
floor = Math.floor;
|
|
|
|
|
|
var noRound = function noRound(v) {
|
|
|
return v;
|
|
|
};
|
|
|
|
|
|
var referenceWidth = round(reference.width);
|
|
|
var popperWidth = round(popper.width);
|
|
|
|
|
|
var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
|
|
|
var isVariation = data.placement.indexOf('-') !== -1;
|
|
|
var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
|
|
|
var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
|
|
|
|
|
|
var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
|
|
|
var verticalToInteger = !shouldRound ? noRound : round;
|
|
|
|
|
|
return {
|
|
|
left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
|
|
|
top: verticalToInteger(popper.top),
|
|
|
bottom: verticalToInteger(popper.bottom),
|
|
|
right: horizontalToInteger(popper.right)
|
|
|
};
|
|
|
}
|
|
|
|
|
|
var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
|
|
|
|
|
|
/**
|
|
|
* @function
|
|
|
* @memberof Modifiers
|
|
|
* @argument {Object} data - The data object generated by `update` method
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @returns {Object} The data object, properly modified
|
|
|
*/
|
|
|
function computeStyle(data, options) {
|
|
|
var x = options.x,
|
|
|
y = options.y;
|
|
|
var popper = data.offsets.popper;
|
|
|
|
|
|
// Remove this legacy support in Popper.js v2
|
|
|
|
|
|
var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
|
|
|
return modifier.name === 'applyStyle';
|
|
|
}).gpuAcceleration;
|
|
|
if (legacyGpuAccelerationOption !== undefined) {
|
|
|
console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
|
|
|
}
|
|
|
var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
|
|
|
|
|
|
var offsetParent = getOffsetParent(data.instance.popper);
|
|
|
var offsetParentRect = getBoundingClientRect(offsetParent);
|
|
|
|
|
|
// Styles
|
|
|
var styles = {
|
|
|
position: popper.position
|
|
|
};
|
|
|
|
|
|
var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
|
|
|
|
|
|
var sideA = x === 'bottom' ? 'top' : 'bottom';
|
|
|
var sideB = y === 'right' ? 'left' : 'right';
|
|
|
|
|
|
// if gpuAcceleration is set to `true` and transform is supported,
|
|
|
// we use `translate3d` to apply the position to the popper we
|
|
|
// automatically use the supported prefixed version if needed
|
|
|
var prefixedProperty = getSupportedPropertyName('transform');
|
|
|
|
|
|
// now, let's make a step back and look at this code closely (wtf?)
|
|
|
// If the content of the popper grows once it's been positioned, it
|
|
|
// may happen that the popper gets misplaced because of the new content
|
|
|
// overflowing its reference element
|
|
|
// To avoid this problem, we provide two options (x and y), which allow
|
|
|
// the consumer to define the offset origin.
|
|
|
// If we position a popper on top of a reference element, we can set
|
|
|
// `x` to `top` to make the popper grow towards its top instead of
|
|
|
// its bottom.
|
|
|
var left = void 0,
|
|
|
top = void 0;
|
|
|
if (sideA === 'bottom') {
|
|
|
// when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
|
|
|
// and not the bottom of the html element
|
|
|
if (offsetParent.nodeName === 'HTML') {
|
|
|
top = -offsetParent.clientHeight + offsets.bottom;
|
|
|
} else {
|
|
|
top = -offsetParentRect.height + offsets.bottom;
|
|
|
}
|
|
|
} else {
|
|
|
top = offsets.top;
|
|
|
}
|
|
|
if (sideB === 'right') {
|
|
|
if (offsetParent.nodeName === 'HTML') {
|
|
|
left = -offsetParent.clientWidth + offsets.right;
|
|
|
} else {
|
|
|
left = -offsetParentRect.width + offsets.right;
|
|
|
}
|
|
|
} else {
|
|
|
left = offsets.left;
|
|
|
}
|
|
|
if (gpuAcceleration && prefixedProperty) {
|
|
|
styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
|
|
|
styles[sideA] = 0;
|
|
|
styles[sideB] = 0;
|
|
|
styles.willChange = 'transform';
|
|
|
} else {
|
|
|
// othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
|
|
|
var invertTop = sideA === 'bottom' ? -1 : 1;
|
|
|
var invertLeft = sideB === 'right' ? -1 : 1;
|
|
|
styles[sideA] = top * invertTop;
|
|
|
styles[sideB] = left * invertLeft;
|
|
|
styles.willChange = sideA + ', ' + sideB;
|
|
|
}
|
|
|
|
|
|
// Attributes
|
|
|
var attributes = {
|
|
|
'x-placement': data.placement
|
|
|
};
|
|
|
|
|
|
// Update `data` attributes, styles and arrowStyles
|
|
|
data.attributes = _extends({}, attributes, data.attributes);
|
|
|
data.styles = _extends({}, styles, data.styles);
|
|
|
data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Helper used to know if the given modifier depends from another one.<br />
|
|
|
* It checks if the needed modifier is listed and enabled.
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @param {Array} modifiers - list of modifiers
|
|
|
* @param {String} requestingName - name of requesting modifier
|
|
|
* @param {String} requestedName - name of requested modifier
|
|
|
* @returns {Boolean}
|
|
|
*/
|
|
|
function isModifierRequired(modifiers, requestingName, requestedName) {
|
|
|
var requesting = find(modifiers, function (_ref) {
|
|
|
var name = _ref.name;
|
|
|
return name === requestingName;
|
|
|
});
|
|
|
|
|
|
var isRequired = !!requesting && modifiers.some(function (modifier) {
|
|
|
return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
|
|
|
});
|
|
|
|
|
|
if (!isRequired) {
|
|
|
var _requesting = '`' + requestingName + '`';
|
|
|
var requested = '`' + requestedName + '`';
|
|
|
console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
|
|
|
}
|
|
|
return isRequired;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @function
|
|
|
* @memberof Modifiers
|
|
|
* @argument {Object} data - The data object generated by update method
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @returns {Object} The data object, properly modified
|
|
|
*/
|
|
|
function arrow(data, options) {
|
|
|
var _data$offsets$arrow;
|
|
|
|
|
|
// arrow depends on keepTogether in order to work
|
|
|
if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
var arrowElement = options.element;
|
|
|
|
|
|
// if arrowElement is a string, suppose it's a CSS selector
|
|
|
if (typeof arrowElement === 'string') {
|
|
|
arrowElement = data.instance.popper.querySelector(arrowElement);
|
|
|
|
|
|
// if arrowElement is not found, don't run the modifier
|
|
|
if (!arrowElement) {
|
|
|
return data;
|
|
|
}
|
|
|
} else {
|
|
|
// if the arrowElement isn't a query selector we must check that the
|
|
|
// provided DOM node is child of its popper node
|
|
|
if (!data.instance.popper.contains(arrowElement)) {
|
|
|
console.warn('WARNING: `arrow.element` must be child of its popper element!');
|
|
|
return data;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var placement = data.placement.split('-')[0];
|
|
|
var _data$offsets = data.offsets,
|
|
|
popper = _data$offsets.popper,
|
|
|
reference = _data$offsets.reference;
|
|
|
|
|
|
var isVertical = ['left', 'right'].indexOf(placement) !== -1;
|
|
|
|
|
|
var len = isVertical ? 'height' : 'width';
|
|
|
var sideCapitalized = isVertical ? 'Top' : 'Left';
|
|
|
var side = sideCapitalized.toLowerCase();
|
|
|
var altSide = isVertical ? 'left' : 'top';
|
|
|
var opSide = isVertical ? 'bottom' : 'right';
|
|
|
var arrowElementSize = getOuterSizes(arrowElement)[len];
|
|
|
|
|
|
//
|
|
|
// extends keepTogether behavior making sure the popper and its
|
|
|
// reference have enough pixels in conjunction
|
|
|
//
|
|
|
|
|
|
// top/left side
|
|
|
if (reference[opSide] - arrowElementSize < popper[side]) {
|
|
|
data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
|
|
|
}
|
|
|
// bottom/right side
|
|
|
if (reference[side] + arrowElementSize > popper[opSide]) {
|
|
|
data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
|
|
|
}
|
|
|
data.offsets.popper = getClientRect(data.offsets.popper);
|
|
|
|
|
|
// compute center of the popper
|
|
|
var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
|
|
|
|
|
|
// Compute the sideValue using the updated popper offsets
|
|
|
// take popper margin in account because we don't have this info available
|
|
|
var css = getStyleComputedProperty(data.instance.popper);
|
|
|
var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);
|
|
|
var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);
|
|
|
var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
|
|
|
|
|
|
// prevent arrowElement from being placed not contiguously to its popper
|
|
|
sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
|
|
|
|
|
|
data.arrowElement = arrowElement;
|
|
|
data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get the opposite placement variation of the given one
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {String} placement variation
|
|
|
* @returns {String} flipped placement variation
|
|
|
*/
|
|
|
function getOppositeVariation(variation) {
|
|
|
if (variation === 'end') {
|
|
|
return 'start';
|
|
|
} else if (variation === 'start') {
|
|
|
return 'end';
|
|
|
}
|
|
|
return variation;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* List of accepted placements to use as values of the `placement` option.<br />
|
|
|
* Valid placements are:
|
|
|
* - `auto`
|
|
|
* - `top`
|
|
|
* - `right`
|
|
|
* - `bottom`
|
|
|
* - `left`
|
|
|
*
|
|
|
* Each placement can have a variation from this list:
|
|
|
* - `-start`
|
|
|
* - `-end`
|
|
|
*
|
|
|
* Variations are interpreted easily if you think of them as the left to right
|
|
|
* written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
|
|
|
* is right.<br />
|
|
|
* Vertically (`left` and `right`), `start` is top and `end` is bottom.
|
|
|
*
|
|
|
* Some valid examples are:
|
|
|
* - `top-end` (on top of reference, right aligned)
|
|
|
* - `right-start` (on right of reference, top aligned)
|
|
|
* - `bottom` (on bottom, centered)
|
|
|
* - `auto-end` (on the side with more space available, alignment depends by placement)
|
|
|
*
|
|
|
* @static
|
|
|
* @type {Array}
|
|
|
* @enum {String}
|
|
|
* @readonly
|
|
|
* @method placements
|
|
|
* @memberof Popper
|
|
|
*/
|
|
|
var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
|
|
|
|
|
|
// Get rid of `auto` `auto-start` and `auto-end`
|
|
|
var validPlacements = placements.slice(3);
|
|
|
|
|
|
/**
|
|
|
* Given an initial placement, returns all the subsequent placements
|
|
|
* clockwise (or counter-clockwise).
|
|
|
*
|
|
|
* @method
|
|
|
* @memberof Popper.Utils
|
|
|
* @argument {String} placement - A valid placement (it accepts variations)
|
|
|
* @argument {Boolean} counter - Set to true to walk the placements counterclockwise
|
|
|
* @returns {Array} placements including their variations
|
|
|
*/
|
|
|
function clockwise(placement) {
|
|
|
var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
|
|
|
|
var index = validPlacements.indexOf(placement);
|
|
|
var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
|
|
|
return counter ? arr.reverse() : arr;
|
|
|
}
|
|
|
|
|
|
var BEHAVIORS = {
|
|
|
FLIP: 'flip',
|
|
|
CLOCKWISE: 'clockwise',
|
|
|
COUNTERCLOCKWISE: 'counterclockwise'
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @function
|
|
|
* @memberof Modifiers
|
|
|
* @argument {Object} data - The data object generated by update method
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @returns {Object} The data object, properly modified
|
|
|
*/
|
|
|
function flip(data, options) {
|
|
|
// if `inner` modifier is enabled, we can't use the `flip` modifier
|
|
|
if (isModifierEnabled(data.instance.modifiers, 'inner')) {
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
if (data.flipped && data.placement === data.originalPlacement) {
|
|
|
// seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
|
|
|
|
|
|
var placement = data.placement.split('-')[0];
|
|
|
var placementOpposite = getOppositePlacement(placement);
|
|
|
var variation = data.placement.split('-')[1] || '';
|
|
|
|
|
|
var flipOrder = [];
|
|
|
|
|
|
switch (options.behavior) {
|
|
|
case BEHAVIORS.FLIP:
|
|
|
flipOrder = [placement, placementOpposite];
|
|
|
break;
|
|
|
case BEHAVIORS.CLOCKWISE:
|
|
|
flipOrder = clockwise(placement);
|
|
|
break;
|
|
|
case BEHAVIORS.COUNTERCLOCKWISE:
|
|
|
flipOrder = clockwise(placement, true);
|
|
|
break;
|
|
|
default:
|
|
|
flipOrder = options.behavior;
|
|
|
}
|
|
|
|
|
|
flipOrder.forEach(function (step, index) {
|
|
|
if (placement !== step || flipOrder.length === index + 1) {
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
placement = data.placement.split('-')[0];
|
|
|
placementOpposite = getOppositePlacement(placement);
|
|
|
|
|
|
var popperOffsets = data.offsets.popper;
|
|
|
var refOffsets = data.offsets.reference;
|
|
|
|
|
|
// using floor because the reference offsets may contain decimals we are not going to consider here
|
|
|
var floor = Math.floor;
|
|
|
var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
|
|
|
|
|
|
var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
|
|
|
var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
|
|
|
var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
|
|
|
var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
|
|
|
|
|
|
var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
|
|
|
|
|
|
// flip the variation if required
|
|
|
var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
|
|
|
|
|
|
// flips variation if reference element overflows boundaries
|
|
|
var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
|
|
|
|
|
|
// flips variation if popper content overflows boundaries
|
|
|
var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);
|
|
|
|
|
|
var flippedVariation = flippedVariationByRef || flippedVariationByContent;
|
|
|
|
|
|
if (overlapsRef || overflowsBoundaries || flippedVariation) {
|
|
|
// this boolean to detect any flip loop
|
|
|
data.flipped = true;
|
|
|
|
|
|
if (overlapsRef || overflowsBoundaries) {
|
|
|
placement = flipOrder[index + 1];
|
|
|
}
|
|
|
|
|
|
if (flippedVariation) {
|
|
|
variation = getOppositeVariation(variation);
|
|
|
}
|
|
|
|
|
|
data.placement = placement + (variation ? '-' + variation : '');
|
|
|
|
|
|
// this object contains `position`, we want to preserve it along with
|
|
|
// any additional property we may add in the future
|
|
|
data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
|
|
|
|
|
|
data = runModifiers(data.instance.modifiers, data, 'flip');
|
|
|
}
|
|
|
});
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @function
|
|
|
* @memberof Modifiers
|
|
|
* @argument {Object} data - The data object generated by update method
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @returns {Object} The data object, properly modified
|
|
|
*/
|
|
|
function keepTogether(data) {
|
|
|
var _data$offsets = data.offsets,
|
|
|
popper = _data$offsets.popper,
|
|
|
reference = _data$offsets.reference;
|
|
|
|
|
|
var placement = data.placement.split('-')[0];
|
|
|
var floor = Math.floor;
|
|
|
var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
|
|
|
var side = isVertical ? 'right' : 'bottom';
|
|
|
var opSide = isVertical ? 'left' : 'top';
|
|
|
var measurement = isVertical ? 'width' : 'height';
|
|
|
|
|
|
if (popper[side] < floor(reference[opSide])) {
|
|
|
data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
|
|
|
}
|
|
|
if (popper[opSide] > floor(reference[side])) {
|
|
|
data.offsets.popper[opSide] = floor(reference[side]);
|
|
|
}
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Converts a string containing value + unit into a px value number
|
|
|
* @function
|
|
|
* @memberof {modifiers~offset}
|
|
|
* @private
|
|
|
* @argument {String} str - Value + unit string
|
|
|
* @argument {String} measurement - `height` or `width`
|
|
|
* @argument {Object} popperOffsets
|
|
|
* @argument {Object} referenceOffsets
|
|
|
* @returns {Number|String}
|
|
|
* Value in pixels, or original string if no values were extracted
|
|
|
*/
|
|
|
function toValue(str, measurement, popperOffsets, referenceOffsets) {
|
|
|
// separate value from unit
|
|
|
var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
|
|
|
var value = +split[1];
|
|
|
var unit = split[2];
|
|
|
|
|
|
// If it's not a number it's an operator, I guess
|
|
|
if (!value) {
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
if (unit.indexOf('%') === 0) {
|
|
|
var element = void 0;
|
|
|
switch (unit) {
|
|
|
case '%p':
|
|
|
element = popperOffsets;
|
|
|
break;
|
|
|
case '%':
|
|
|
case '%r':
|
|
|
default:
|
|
|
element = referenceOffsets;
|
|
|
}
|
|
|
|
|
|
var rect = getClientRect(element);
|
|
|
return rect[measurement] / 100 * value;
|
|
|
} else if (unit === 'vh' || unit === 'vw') {
|
|
|
// if is a vh or vw, we calculate the size based on the viewport
|
|
|
var size = void 0;
|
|
|
if (unit === 'vh') {
|
|
|
size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
|
|
|
} else {
|
|
|
size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
|
|
|
}
|
|
|
return size / 100 * value;
|
|
|
} else {
|
|
|
// if is an explicit pixel unit, we get rid of the unit and keep the value
|
|
|
// if is an implicit unit, it's px, and we return just the value
|
|
|
return value;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
|
|
|
* @function
|
|
|
* @memberof {modifiers~offset}
|
|
|
* @private
|
|
|
* @argument {String} offset
|
|
|
* @argument {Object} popperOffsets
|
|
|
* @argument {Object} referenceOffsets
|
|
|
* @argument {String} basePlacement
|
|
|
* @returns {Array} a two cells array with x and y offsets in numbers
|
|
|
*/
|
|
|
function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
|
|
|
var offsets = [0, 0];
|
|
|
|
|
|
// Use height if placement is left or right and index is 0 otherwise use width
|
|
|
// in this way the first offset will use an axis and the second one
|
|
|
// will use the other one
|
|
|
var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
|
|
|
|
|
|
// Split the offset string to obtain a list of values and operands
|
|
|
// The regex addresses values with the plus or minus sign in front (+10, -20, etc)
|
|
|
var fragments = offset.split(/(\+|\-)/).map(function (frag) {
|
|
|
return frag.trim();
|
|
|
});
|
|
|
|
|
|
// Detect if the offset string contains a pair of values or a single one
|
|
|
// they could be separated by comma or space
|
|
|
var divider = fragments.indexOf(find(fragments, function (frag) {
|
|
|
return frag.search(/,|\s/) !== -1;
|
|
|
}));
|
|
|
|
|
|
if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
|
|
|
console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
|
|
|
}
|
|
|
|
|
|
// If divider is found, we divide the list of values and operands to divide
|
|
|
// them by ofset X and Y.
|
|
|
var splitRegex = /\s*,\s*|\s+/;
|
|
|
var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
|
|
|
|
|
|
// Convert the values with units to absolute pixels to allow our computations
|
|
|
ops = ops.map(function (op, index) {
|
|
|
// Most of the units rely on the orientation of the popper
|
|
|
var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
|
|
|
var mergeWithPrevious = false;
|
|
|
return op
|
|
|
// This aggregates any `+` or `-` sign that aren't considered operators
|
|
|
// e.g.: 10 + +5 => [10, +, +5]
|
|
|
.reduce(function (a, b) {
|
|
|
if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
|
|
|
a[a.length - 1] = b;
|
|
|
mergeWithPrevious = true;
|
|
|
return a;
|
|
|
} else if (mergeWithPrevious) {
|
|
|
a[a.length - 1] += b;
|
|
|
mergeWithPrevious = false;
|
|
|
return a;
|
|
|
} else {
|
|
|
return a.concat(b);
|
|
|
}
|
|
|
}, [])
|
|
|
// Here we convert the string values into number values (in px)
|
|
|
.map(function (str) {
|
|
|
return toValue(str, measurement, popperOffsets, referenceOffsets);
|
|
|
});
|
|
|
});
|
|
|
|
|
|
// Loop trough the offsets arrays and execute the operations
|
|
|
ops.forEach(function (op, index) {
|
|
|
op.forEach(function (frag, index2) {
|
|
|
if (isNumeric(frag)) {
|
|
|
offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
return offsets;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @function
|
|
|
* @memberof Modifiers
|
|
|
* @argument {Object} data - The data object generated by update method
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @argument {Number|String} options.offset=0
|
|
|
* The offset value as described in the modifier description
|
|
|
* @returns {Object} The data object, properly modified
|
|
|
*/
|
|
|
function offset(data, _ref) {
|
|
|
var offset = _ref.offset;
|
|
|
var placement = data.placement,
|
|
|
_data$offsets = data.offsets,
|
|
|
popper = _data$offsets.popper,
|
|
|
reference = _data$offsets.reference;
|
|
|
|
|
|
var basePlacement = placement.split('-')[0];
|
|
|
|
|
|
var offsets = void 0;
|
|
|
if (isNumeric(+offset)) {
|
|
|
offsets = [+offset, 0];
|
|
|
} else {
|
|
|
offsets = parseOffset(offset, popper, reference, basePlacement);
|
|
|
}
|
|
|
|
|
|
if (basePlacement === 'left') {
|
|
|
popper.top += offsets[0];
|
|
|
popper.left -= offsets[1];
|
|
|
} else if (basePlacement === 'right') {
|
|
|
popper.top += offsets[0];
|
|
|
popper.left += offsets[1];
|
|
|
} else if (basePlacement === 'top') {
|
|
|
popper.left += offsets[0];
|
|
|
popper.top -= offsets[1];
|
|
|
} else if (basePlacement === 'bottom') {
|
|
|
popper.left += offsets[0];
|
|
|
popper.top += offsets[1];
|
|
|
}
|
|
|
|
|
|
data.popper = popper;
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @function
|
|
|
* @memberof Modifiers
|
|
|
* @argument {Object} data - The data object generated by `update` method
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @returns {Object} The data object, properly modified
|
|
|
*/
|
|
|
function preventOverflow(data, options) {
|
|
|
var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
|
|
|
|
|
|
// If offsetParent is the reference element, we really want to
|
|
|
// go one step up and use the next offsetParent as reference to
|
|
|
// avoid to make this modifier completely useless and look like broken
|
|
|
if (data.instance.reference === boundariesElement) {
|
|
|
boundariesElement = getOffsetParent(boundariesElement);
|
|
|
}
|
|
|
|
|
|
// NOTE: DOM access here
|
|
|
// resets the popper's position so that the document size can be calculated excluding
|
|
|
// the size of the popper element itself
|
|
|
var transformProp = getSupportedPropertyName('transform');
|
|
|
var popperStyles = data.instance.popper.style; // assignment to help minification
|
|
|
var top = popperStyles.top,
|
|
|
left = popperStyles.left,
|
|
|
transform = popperStyles[transformProp];
|
|
|
|
|
|
popperStyles.top = '';
|
|
|
popperStyles.left = '';
|
|
|
popperStyles[transformProp] = '';
|
|
|
|
|
|
var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
|
|
|
|
|
|
// NOTE: DOM access here
|
|
|
// restores the original style properties after the offsets have been computed
|
|
|
popperStyles.top = top;
|
|
|
popperStyles.left = left;
|
|
|
popperStyles[transformProp] = transform;
|
|
|
|
|
|
options.boundaries = boundaries;
|
|
|
|
|
|
var order = options.priority;
|
|
|
var popper = data.offsets.popper;
|
|
|
|
|
|
var check = {
|
|
|
primary: function primary(placement) {
|
|
|
var value = popper[placement];
|
|
|
if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
|
|
|
value = Math.max(popper[placement], boundaries[placement]);
|
|
|
}
|
|
|
return defineProperty({}, placement, value);
|
|
|
},
|
|
|
secondary: function secondary(placement) {
|
|
|
var mainSide = placement === 'right' ? 'left' : 'top';
|
|
|
var value = popper[mainSide];
|
|
|
if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
|
|
|
value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
|
|
|
}
|
|
|
return defineProperty({}, mainSide, value);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
order.forEach(function (placement) {
|
|
|
var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
|
|
|
popper = _extends({}, popper, check[side](placement));
|
|
|
});
|
|
|
|
|
|
data.offsets.popper = popper;
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @function
|
|
|
* @memberof Modifiers
|
|
|
* @argument {Object} data - The data object generated by `update` method
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @returns {Object} The data object, properly modified
|
|
|
*/
|
|
|
function shift(data) {
|
|
|
var placement = data.placement;
|
|
|
var basePlacement = placement.split('-')[0];
|
|
|
var shiftvariation = placement.split('-')[1];
|
|
|
|
|
|
// if shift shiftvariation is specified, run the modifier
|
|
|
if (shiftvariation) {
|
|
|
var _data$offsets = data.offsets,
|
|
|
reference = _data$offsets.reference,
|
|
|
popper = _data$offsets.popper;
|
|
|
|
|
|
var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
|
|
|
var side = isVertical ? 'left' : 'top';
|
|
|
var measurement = isVertical ? 'width' : 'height';
|
|
|
|
|
|
var shiftOffsets = {
|
|
|
start: defineProperty({}, side, reference[side]),
|
|
|
end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
|
|
|
};
|
|
|
|
|
|
data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
|
|
|
}
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @function
|
|
|
* @memberof Modifiers
|
|
|
* @argument {Object} data - The data object generated by update method
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @returns {Object} The data object, properly modified
|
|
|
*/
|
|
|
function hide(data) {
|
|
|
if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
var refRect = data.offsets.reference;
|
|
|
var bound = find(data.instance.modifiers, function (modifier) {
|
|
|
return modifier.name === 'preventOverflow';
|
|
|
}).boundaries;
|
|
|
|
|
|
if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
|
|
|
// Avoid unnecessary DOM access if visibility hasn't changed
|
|
|
if (data.hide === true) {
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
data.hide = true;
|
|
|
data.attributes['x-out-of-boundaries'] = '';
|
|
|
} else {
|
|
|
// Avoid unnecessary DOM access if visibility hasn't changed
|
|
|
if (data.hide === false) {
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
data.hide = false;
|
|
|
data.attributes['x-out-of-boundaries'] = false;
|
|
|
}
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @function
|
|
|
* @memberof Modifiers
|
|
|
* @argument {Object} data - The data object generated by `update` method
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @returns {Object} The data object, properly modified
|
|
|
*/
|
|
|
function inner(data) {
|
|
|
var placement = data.placement;
|
|
|
var basePlacement = placement.split('-')[0];
|
|
|
var _data$offsets = data.offsets,
|
|
|
popper = _data$offsets.popper,
|
|
|
reference = _data$offsets.reference;
|
|
|
|
|
|
var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
|
|
|
|
|
|
var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
|
|
|
|
|
|
popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
|
|
|
|
|
|
data.placement = getOppositePlacement(placement);
|
|
|
data.offsets.popper = getClientRect(popper);
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Modifier function, each modifier can have a function of this type assigned
|
|
|
* to its `fn` property.<br />
|
|
|
* These functions will be called on each update, this means that you must
|
|
|
* make sure they are performant enough to avoid performance bottlenecks.
|
|
|
*
|
|
|
* @function ModifierFn
|
|
|
* @argument {dataObject} data - The data object generated by `update` method
|
|
|
* @argument {Object} options - Modifiers configuration and options
|
|
|
* @returns {dataObject} The data object, properly modified
|
|
|
*/
|
|
|
|
|
|
/**
|
|
|
* Modifiers are plugins used to alter the behavior of your poppers.<br />
|
|
|
* Popper.js uses a set of 9 modifiers to provide all the basic functionalities
|
|
|
* needed by the library.
|
|
|
*
|
|
|
* Usually you don't want to override the `order`, `fn` and `onLoad` props.
|
|
|
* All the other properties are configurations that could be tweaked.
|
|
|
* @namespace modifiers
|
|
|
*/
|
|
|
var modifiers = {
|
|
|
/**
|
|
|
* Modifier used to shift the popper on the start or end of its reference
|
|
|
* element.<br />
|
|
|
* It will read the variation of the `placement` property.<br />
|
|
|
* It can be one either `-end` or `-start`.
|
|
|
* @memberof modifiers
|
|
|
* @inner
|
|
|
*/
|
|
|
shift: {
|
|
|
/** @prop {number} order=100 - Index used to define the order of execution */
|
|
|
order: 100,
|
|
|
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
|
|
|
enabled: true,
|
|
|
/** @prop {ModifierFn} */
|
|
|
fn: shift
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* The `offset` modifier can shift your popper on both its axis.
|
|
|
*
|
|
|
* It accepts the following units:
|
|
|
* - `px` or unit-less, interpreted as pixels
|
|
|
* - `%` or `%r`, percentage relative to the length of the reference element
|
|
|
* - `%p`, percentage relative to the length of the popper element
|
|
|
* - `vw`, CSS viewport width unit
|
|
|
* - `vh`, CSS viewport height unit
|
|
|
*
|
|
|
* For length is intended the main axis relative to the placement of the popper.<br />
|
|
|
* This means that if the placement is `top` or `bottom`, the length will be the
|
|
|
* `width`. In case of `left` or `right`, it will be the `height`.
|
|
|
*
|
|
|
* You can provide a single value (as `Number` or `String`), or a pair of values
|
|
|
* as `String` divided by a comma or one (or more) white spaces.<br />
|
|
|
* The latter is a deprecated method because it leads to confusion and will be
|
|
|
* removed in v2.<br />
|
|
|
* Additionally, it accepts additions and subtractions between different units.
|
|
|
* Note that multiplications and divisions aren't supported.
|
|
|
*
|
|
|
* Valid examples are:
|
|
|
* ```
|
|
|
* 10
|
|
|
* '10%'
|
|
|
* '10, 10'
|
|
|
* '10%, 10'
|
|
|
* '10 + 10%'
|
|
|
* '10 - 5vh + 3%'
|
|
|
* '-10px + 5vh, 5px - 6%'
|
|
|
* ```
|
|
|
* > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
|
|
|
* > with their reference element, unfortunately, you will have to disable the `flip` modifier.
|
|
|
* > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
|
|
|
*
|
|
|
* @memberof modifiers
|
|
|
* @inner
|
|
|
*/
|
|
|
offset: {
|
|
|
/** @prop {number} order=200 - Index used to define the order of execution */
|
|
|
order: 200,
|
|
|
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
|
|
|
enabled: true,
|
|
|
/** @prop {ModifierFn} */
|
|
|
fn: offset,
|
|
|
/** @prop {Number|String} offset=0
|
|
|
* The offset value as described in the modifier description
|
|
|
*/
|
|
|
offset: 0
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* Modifier used to prevent the popper from being positioned outside the boundary.
|
|
|
*
|
|
|
* A scenario exists where the reference itself is not within the boundaries.<br />
|
|
|
* We can say it has "escaped the boundaries" — or just "escaped".<br />
|
|
|
* In this case we need to decide whether the popper should either:
|
|
|
*
|
|
|
* - detach from the reference and remain "trapped" in the boundaries, or
|
|
|
* - if it should ignore the boundary and "escape with its reference"
|
|
|
*
|
|
|
* When `escapeWithReference` is set to`true` and reference is completely
|
|
|
* outside its boundaries, the popper will overflow (or completely leave)
|
|
|
* the boundaries in order to remain attached to the edge of the reference.
|
|
|
*
|
|
|
* @memberof modifiers
|
|
|
* @inner
|
|
|
*/
|
|
|
preventOverflow: {
|
|
|
/** @prop {number} order=300 - Index used to define the order of execution */
|
|
|
order: 300,
|
|
|
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
|
|
|
enabled: true,
|
|
|
/** @prop {ModifierFn} */
|
|
|
fn: preventOverflow,
|
|
|
/**
|
|
|
* @prop {Array} [priority=['left','right','top','bottom']]
|
|
|
* Popper will try to prevent overflow following these priorities by default,
|
|
|
* then, it could overflow on the left and on top of the `boundariesElement`
|
|
|
*/
|
|
|
priority: ['left', 'right', 'top', 'bottom'],
|
|
|
/**
|
|
|
* @prop {number} padding=5
|
|
|
* Amount of pixel used to define a minimum distance between the boundaries
|
|
|
* and the popper. This makes sure the popper always has a little padding
|
|
|
* between the edges of its container
|
|
|
*/
|
|
|
padding: 5,
|
|
|
/**
|
|
|
* @prop {String|HTMLElement} boundariesElement='scrollParent'
|
|
|
* Boundaries used by the modifier. Can be `scrollParent`, `window`,
|
|
|
* `viewport` or any DOM element.
|
|
|
*/
|
|
|
boundariesElement: 'scrollParent'
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* Modifier used to make sure the reference and its popper stay near each other
|
|
|
* without leaving any gap between the two. Especially useful when the arrow is
|
|
|
* enabled and you want to ensure that it points to its reference element.
|
|
|
* It cares only about the first axis. You can still have poppers with margin
|
|
|
* between the popper and its reference element.
|
|
|
* @memberof modifiers
|
|
|
* @inner
|
|
|
*/
|
|
|
keepTogether: {
|
|
|
/** @prop {number} order=400 - Index used to define the order of execution */
|
|
|
order: 400,
|
|
|
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
|
|
|
enabled: true,
|
|
|
/** @prop {ModifierFn} */
|
|
|
fn: keepTogether
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* This modifier is used to move the `arrowElement` of the popper to make
|
|
|
* sure it is positioned between the reference element and its popper element.
|
|
|
* It will read the outer size of the `arrowElement` node to detect how many
|
|
|
* pixels of conjunction are needed.
|
|
|
*
|
|
|
* It has no effect if no `arrowElement` is provided.
|
|
|
* @memberof modifiers
|
|
|
* @inner
|
|
|
*/
|
|
|
arrow: {
|
|
|
/** @prop {number} order=500 - Index used to define the order of execution */
|
|
|
order: 500,
|
|
|
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
|
|
|
enabled: true,
|
|
|
/** @prop {ModifierFn} */
|
|
|
fn: arrow,
|
|
|
/** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
|
|
|
element: '[x-arrow]'
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* Modifier used to flip the popper's placement when it starts to overlap its
|
|
|
* reference element.
|
|
|
*
|
|
|
* Requires the `preventOverflow` modifier before it in order to work.
|
|
|
*
|
|
|
* **NOTE:** this modifier will interrupt the current update cycle and will
|
|
|
* restart it if it detects the need to flip the placement.
|
|
|
* @memberof modifiers
|
|
|
* @inner
|
|
|
*/
|
|
|
flip: {
|
|
|
/** @prop {number} order=600 - Index used to define the order of execution */
|
|
|
order: 600,
|
|
|
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
|
|
|
enabled: true,
|
|
|
/** @prop {ModifierFn} */
|
|
|
fn: flip,
|
|
|
/**
|
|
|
* @prop {String|Array} behavior='flip'
|
|
|
* The behavior used to change the popper's placement. It can be one of
|
|
|
* `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
|
|
|
* placements (with optional variations)
|
|
|
*/
|
|
|
behavior: 'flip',
|
|
|
/**
|
|
|
* @prop {number} padding=5
|
|
|
* The popper will flip if it hits the edges of the `boundariesElement`
|
|
|
*/
|
|
|
padding: 5,
|
|
|
/**
|
|
|
* @prop {String|HTMLElement} boundariesElement='viewport'
|
|
|
* The element which will define the boundaries of the popper position.
|
|
|
* The popper will never be placed outside of the defined boundaries
|
|
|
* (except if `keepTogether` is enabled)
|
|
|
*/
|
|
|
boundariesElement: 'viewport',
|
|
|
/**
|
|
|
* @prop {Boolean} flipVariations=false
|
|
|
* The popper will switch placement variation between `-start` and `-end` when
|
|
|
* the reference element overlaps its boundaries.
|
|
|
*
|
|
|
* The original placement should have a set variation.
|
|
|
*/
|
|
|
flipVariations: false,
|
|
|
/**
|
|
|
* @prop {Boolean} flipVariationsByContent=false
|
|
|
* The popper will switch placement variation between `-start` and `-end` when
|
|
|
* the popper element overlaps its reference boundaries.
|
|
|
*
|
|
|
* The original placement should have a set variation.
|
|
|
*/
|
|
|
flipVariationsByContent: false
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* Modifier used to make the popper flow toward the inner of the reference element.
|
|
|
* By default, when this modifier is disabled, the popper will be placed outside
|
|
|
* the reference element.
|
|
|
* @memberof modifiers
|
|
|
* @inner
|
|
|
*/
|
|
|
inner: {
|
|
|
/** @prop {number} order=700 - Index used to define the order of execution */
|
|
|
order: 700,
|
|
|
/** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
|
|
|
enabled: false,
|
|
|
/** @prop {ModifierFn} */
|
|
|
fn: inner
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* Modifier used to hide the popper when its reference element is outside of the
|
|
|
* popper boundaries. It will set a `x-out-of-boundaries` attribute which can
|
|
|
* be used to hide with a CSS selector the popper when its reference is
|
|
|
* out of boundaries.
|
|
|
*
|
|
|
* Requires the `preventOverflow` modifier before it in order to work.
|
|
|
* @memberof modifiers
|
|
|
* @inner
|
|
|
*/
|
|
|
hide: {
|
|
|
/** @prop {number} order=800 - Index used to define the order of execution */
|
|
|
order: 800,
|
|
|
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
|
|
|
enabled: true,
|
|
|
/** @prop {ModifierFn} */
|
|
|
fn: hide
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* Computes the style that will be applied to the popper element to gets
|
|
|
* properly positioned.
|
|
|
*
|
|
|
* Note that this modifier will not touch the DOM, it just prepares the styles
|
|
|
* so that `applyStyle` modifier can apply it. This separation is useful
|
|
|
* in case you need to replace `applyStyle` with a custom implementation.
|
|
|
*
|
|
|
* This modifier has `850` as `order` value to maintain backward compatibility
|
|
|
* with previous versions of Popper.js. Expect the modifiers ordering method
|
|
|
* to change in future major versions of the library.
|
|
|
*
|
|
|
* @memberof modifiers
|
|
|
* @inner
|
|
|
*/
|
|
|
computeStyle: {
|
|
|
/** @prop {number} order=850 - Index used to define the order of execution */
|
|
|
order: 850,
|
|
|
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
|
|
|
enabled: true,
|
|
|
/** @prop {ModifierFn} */
|
|
|
fn: computeStyle,
|
|
|
/**
|
|
|
* @prop {Boolean} gpuAcceleration=true
|
|
|
* If true, it uses the CSS 3D transformation to position the popper.
|
|
|
* Otherwise, it will use the `top` and `left` properties
|
|
|
*/
|
|
|
gpuAcceleration: true,
|
|
|
/**
|
|
|
* @prop {string} [x='bottom']
|
|
|
* Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
|
|
|
* Change this if your popper should grow in a direction different from `bottom`
|
|
|
*/
|
|
|
x: 'bottom',
|
|
|
/**
|
|
|
* @prop {string} [x='left']
|
|
|
* Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
|
|
|
* Change this if your popper should grow in a direction different from `right`
|
|
|
*/
|
|
|
y: 'right'
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* Applies the computed styles to the popper element.
|
|
|
*
|
|
|
* All the DOM manipulations are limited to this modifier. This is useful in case
|
|
|
* you want to integrate Popper.js inside a framework or view library and you
|
|
|
* want to delegate all the DOM manipulations to it.
|
|
|
*
|
|
|
* Note that if you disable this modifier, you must make sure the popper element
|
|
|
* has its position set to `absolute` before Popper.js can do its work!
|
|
|
*
|
|
|
* Just disable this modifier and define your own to achieve the desired effect.
|
|
|
*
|
|
|
* @memberof modifiers
|
|
|
* @inner
|
|
|
*/
|
|
|
applyStyle: {
|
|
|
/** @prop {number} order=900 - Index used to define the order of execution */
|
|
|
order: 900,
|
|
|
/** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
|
|
|
enabled: true,
|
|
|
/** @prop {ModifierFn} */
|
|
|
fn: applyStyle,
|
|
|
/** @prop {Function} */
|
|
|
onLoad: applyStyleOnLoad,
|
|
|
/**
|
|
|
* @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
|
|
|
* @prop {Boolean} gpuAcceleration=true
|
|
|
* If true, it uses the CSS 3D transformation to position the popper.
|
|
|
* Otherwise, it will use the `top` and `left` properties
|
|
|
*/
|
|
|
gpuAcceleration: undefined
|
|
|
}
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* The `dataObject` is an object containing all the information used by Popper.js.
|
|
|
* This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
|
|
|
* @name dataObject
|
|
|
* @property {Object} data.instance The Popper.js instance
|
|
|
* @property {String} data.placement Placement applied to popper
|
|
|
* @property {String} data.originalPlacement Placement originally defined on init
|
|
|
* @property {Boolean} data.flipped True if popper has been flipped by flip modifier
|
|
|
* @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
|
|
|
* @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
|
|
|
* @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
|
|
|
* @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
|
|
|
* @property {Object} data.boundaries Offsets of the popper boundaries
|
|
|
* @property {Object} data.offsets The measurements of popper, reference and arrow elements
|
|
|
* @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
|
|
|
* @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
|
|
|
* @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
|
|
|
*/
|
|
|
|
|
|
/**
|
|
|
* Default options provided to Popper.js constructor.<br />
|
|
|
* These can be overridden using the `options` argument of Popper.js.<br />
|
|
|
* To override an option, simply pass an object with the same
|
|
|
* structure of the `options` object, as the 3rd argument. For example:
|
|
|
* ```
|
|
|
* new Popper(ref, pop, {
|
|
|
* modifiers: {
|
|
|
* preventOverflow: { enabled: false }
|
|
|
* }
|
|
|
* })
|
|
|
* ```
|
|
|
* @type {Object}
|
|
|
* @static
|
|
|
* @memberof Popper
|
|
|
*/
|
|
|
var Defaults = {
|
|
|
/**
|
|
|
* Popper's placement.
|
|
|
* @prop {Popper.placements} placement='bottom'
|
|
|
*/
|
|
|
placement: 'bottom',
|
|
|
|
|
|
/**
|
|
|
* Set this to true if you want popper to position it self in 'fixed' mode
|
|
|
* @prop {Boolean} positionFixed=false
|
|
|
*/
|
|
|
positionFixed: false,
|
|
|
|
|
|
/**
|
|
|
* Whether events (resize, scroll) are initially enabled.
|
|
|
* @prop {Boolean} eventsEnabled=true
|
|
|
*/
|
|
|
eventsEnabled: true,
|
|
|
|
|
|
/**
|
|
|
* Set to true if you want to automatically remove the popper when
|
|
|
* you call the `destroy` method.
|
|
|
* @prop {Boolean} removeOnDestroy=false
|
|
|
*/
|
|
|
removeOnDestroy: false,
|
|
|
|
|
|
/**
|
|
|
* Callback called when the popper is created.<br />
|
|
|
* By default, it is set to no-op.<br />
|
|
|
* Access Popper.js instance with `data.instance`.
|
|
|
* @prop {onCreate}
|
|
|
*/
|
|
|
onCreate: function onCreate() {},
|
|
|
|
|
|
/**
|
|
|
* Callback called when the popper is updated. This callback is not called
|
|
|
* on the initialization/creation of the popper, but only on subsequent
|
|
|
* updates.<br />
|
|
|
* By default, it is set to no-op.<br />
|
|
|
* Access Popper.js instance with `data.instance`.
|
|
|
* @prop {onUpdate}
|
|
|
*/
|
|
|
onUpdate: function onUpdate() {},
|
|
|
|
|
|
/**
|
|
|
* List of modifiers used to modify the offsets before they are applied to the popper.
|
|
|
* They provide most of the functionalities of Popper.js.
|
|
|
* @prop {modifiers}
|
|
|
*/
|
|
|
modifiers: modifiers
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* @callback onCreate
|
|
|
* @param {dataObject} data
|
|
|
*/
|
|
|
|
|
|
/**
|
|
|
* @callback onUpdate
|
|
|
* @param {dataObject} data
|
|
|
*/
|
|
|
|
|
|
// Utils
|
|
|
// Methods
|
|
|
var Popper = function () {
|
|
|
/**
|
|
|
* Creates a new Popper.js instance.
|
|
|
* @class Popper
|
|
|
* @param {Element|referenceObject} reference - The reference element used to position the popper
|
|
|
* @param {Element} popper - The HTML / XML element used as the popper
|
|
|
* @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
|
|
|
* @return {Object} instance - The generated Popper.js instance
|
|
|
*/
|
|
|
function Popper(reference, popper) {
|
|
|
var _this = this;
|
|
|
|
|
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
|
classCallCheck(this, Popper);
|
|
|
|
|
|
this.scheduleUpdate = function () {
|
|
|
return requestAnimationFrame(_this.update);
|
|
|
};
|
|
|
|
|
|
// make update() debounced, so that it only runs at most once-per-tick
|
|
|
this.update = debounce(this.update.bind(this));
|
|
|
|
|
|
// with {} we create a new object with the options inside it
|
|
|
this.options = _extends({}, Popper.Defaults, options);
|
|
|
|
|
|
// init state
|
|
|
this.state = {
|
|
|
isDestroyed: false,
|
|
|
isCreated: false,
|
|
|
scrollParents: []
|
|
|
};
|
|
|
|
|
|
// get reference and popper elements (allow jQuery wrappers)
|
|
|
this.reference = reference && reference.jquery ? reference[0] : reference;
|
|
|
this.popper = popper && popper.jquery ? popper[0] : popper;
|
|
|
|
|
|
// Deep merge modifiers options
|
|
|
this.options.modifiers = {};
|
|
|
Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
|
|
|
_this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
|
|
|
});
|
|
|
|
|
|
// Refactoring modifiers' list (Object => Array)
|
|
|
this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
|
|
|
return _extends({
|
|
|
name: name
|
|
|
}, _this.options.modifiers[name]);
|
|
|
})
|
|
|
// sort the modifiers by order
|
|
|
.sort(function (a, b) {
|
|
|
return a.order - b.order;
|
|
|
});
|
|
|
|
|
|
// modifiers have the ability to execute arbitrary code when Popper.js get inited
|
|
|
// such code is executed in the same order of its modifier
|
|
|
// they could add new properties to their options configuration
|
|
|
// BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
|
|
|
this.modifiers.forEach(function (modifierOptions) {
|
|
|
if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
|
|
|
modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// fire the first update to position the popper in the right place
|
|
|
this.update();
|
|
|
|
|
|
var eventsEnabled = this.options.eventsEnabled;
|
|
|
if (eventsEnabled) {
|
|
|
// setup event listeners, they will take care of update the position in specific situations
|
|
|
this.enableEventListeners();
|
|
|
}
|
|
|
|
|
|
this.state.eventsEnabled = eventsEnabled;
|
|
|
}
|
|
|
|
|
|
// We can't use class properties because they don't get listed in the
|
|
|
// class prototype and break stuff like Sinon stubs
|
|
|
|
|
|
|
|
|
createClass(Popper, [{
|
|
|
key: 'update',
|
|
|
value: function update$$1() {
|
|
|
return update.call(this);
|
|
|
}
|
|
|
}, {
|
|
|
key: 'destroy',
|
|
|
value: function destroy$$1() {
|
|
|
return destroy.call(this);
|
|
|
}
|
|
|
}, {
|
|
|
key: 'enableEventListeners',
|
|
|
value: function enableEventListeners$$1() {
|
|
|
return enableEventListeners.call(this);
|
|
|
}
|
|
|
}, {
|
|
|
key: 'disableEventListeners',
|
|
|
value: function disableEventListeners$$1() {
|
|
|
return disableEventListeners.call(this);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Schedules an update. It will run on the next UI update available.
|
|
|
* @method scheduleUpdate
|
|
|
* @memberof Popper
|
|
|
*/
|
|
|
|
|
|
|
|
|
/**
|
|
|
* Collection of utilities useful when writing custom modifiers.
|
|
|
* Starting from version 1.7, this method is available only if you
|
|
|
* include `popper-utils.js` before `popper.js`.
|
|
|
*
|
|
|
* **DEPRECATION**: This way to access PopperUtils is deprecated
|
|
|
* and will be removed in v2! Use the PopperUtils module directly instead.
|
|
|
* Due to the high instability of the methods contained in Utils, we can't
|
|
|
* guarantee them to follow semver. Use them at your own risk!
|
|
|
* @static
|
|
|
* @private
|
|
|
* @type {Object}
|
|
|
* @deprecated since version 1.8
|
|
|
* @member Utils
|
|
|
* @memberof Popper
|
|
|
*/
|
|
|
|
|
|
}]);
|
|
|
return Popper;
|
|
|
}();
|
|
|
|
|
|
/**
|
|
|
* The `referenceObject` is an object that provides an interface compatible with Popper.js
|
|
|
* and lets you use it as replacement of a real DOM node.<br />
|
|
|
* You can use this method to position a popper relatively to a set of coordinates
|
|
|
* in case you don't have a DOM node to use as reference.
|
|
|
*
|
|
|
* ```
|
|
|
* new Popper(referenceObject, popperNode);
|
|
|
* ```
|
|
|
*
|
|
|
* NB: This feature isn't supported in Internet Explorer 10.
|
|
|
* @name referenceObject
|
|
|
* @property {Function} data.getBoundingClientRect
|
|
|
* A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
|
|
|
* @property {number} data.clientWidth
|
|
|
* An ES6 getter that will return the width of the virtual reference element.
|
|
|
* @property {number} data.clientHeight
|
|
|
* An ES6 getter that will return the height of the virtual reference element.
|
|
|
*/
|
|
|
|
|
|
|
|
|
Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
|
|
|
Popper.placements = placements;
|
|
|
Popper.Defaults = Defaults;
|
|
|
|
|
|
/* harmony default export */ __webpack_exports__["default"] = (Popper);
|
|
|
//# sourceMappingURL=popper.js.map
|
|
|
|
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/process/browser.js":
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./node_modules/process/browser.js ***!
|
|
|
\*****************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
// shim for using process in browser
|
|
|
var process = module.exports = {};
|
|
|
|
|
|
// cached from whatever global is present so that test runners that stub it
|
|
|
// don't break things. But we need to wrap it in a try catch in case it is
|
|
|
// wrapped in strict mode code which doesn't define any globals. It's inside a
|
|
|
// function because try/catches deoptimize in certain engines.
|
|
|
|
|
|
var cachedSetTimeout;
|
|
|
var cachedClearTimeout;
|
|
|
|
|
|
function defaultSetTimout() {
|
|
|
throw new Error('setTimeout has not been defined');
|
|
|
}
|
|
|
function defaultClearTimeout () {
|
|
|
throw new Error('clearTimeout has not been defined');
|
|
|
}
|
|
|
(function () {
|
|
|
try {
|
|
|
if (typeof setTimeout === 'function') {
|
|
|
cachedSetTimeout = setTimeout;
|
|
|
} else {
|
|
|
cachedSetTimeout = defaultSetTimout;
|
|
|
}
|
|
|
} catch (e) {
|
|
|
cachedSetTimeout = defaultSetTimout;
|
|
|
}
|
|
|
try {
|
|
|
if (typeof clearTimeout === 'function') {
|
|
|
cachedClearTimeout = clearTimeout;
|
|
|
} else {
|
|
|
cachedClearTimeout = defaultClearTimeout;
|
|
|
}
|
|
|
} catch (e) {
|
|
|
cachedClearTimeout = defaultClearTimeout;
|
|
|
}
|
|
|
} ())
|
|
|
function runTimeout(fun) {
|
|
|
if (cachedSetTimeout === setTimeout) {
|
|
|
//normal enviroments in sane situations
|
|
|
return setTimeout(fun, 0);
|
|
|
}
|
|
|
// if setTimeout wasn't available but was latter defined
|
|
|
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
|
|
cachedSetTimeout = setTimeout;
|
|
|
return setTimeout(fun, 0);
|
|
|
}
|
|
|
try {
|
|
|
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
|
return cachedSetTimeout(fun, 0);
|
|
|
} catch(e){
|
|
|
try {
|
|
|
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
|
return cachedSetTimeout.call(null, fun, 0);
|
|
|
} catch(e){
|
|
|
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
|
|
|
return cachedSetTimeout.call(this, fun, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
function runClearTimeout(marker) {
|
|
|
if (cachedClearTimeout === clearTimeout) {
|
|
|
//normal enviroments in sane situations
|
|
|
return clearTimeout(marker);
|
|
|
}
|
|
|
// if clearTimeout wasn't available but was latter defined
|
|
|
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
|
|
cachedClearTimeout = clearTimeout;
|
|
|
return clearTimeout(marker);
|
|
|
}
|
|
|
try {
|
|
|
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
|
return cachedClearTimeout(marker);
|
|
|
} catch (e){
|
|
|
try {
|
|
|
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
|
return cachedClearTimeout.call(null, marker);
|
|
|
} catch (e){
|
|
|
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
|
|
|
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
|
|
return cachedClearTimeout.call(this, marker);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
var queue = [];
|
|
|
var draining = false;
|
|
|
var currentQueue;
|
|
|
var queueIndex = -1;
|
|
|
|
|
|
function cleanUpNextTick() {
|
|
|
if (!draining || !currentQueue) {
|
|
|
return;
|
|
|
}
|
|
|
draining = false;
|
|
|
if (currentQueue.length) {
|
|
|
queue = currentQueue.concat(queue);
|
|
|
} else {
|
|
|
queueIndex = -1;
|
|
|
}
|
|
|
if (queue.length) {
|
|
|
drainQueue();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function drainQueue() {
|
|
|
if (draining) {
|
|
|
return;
|
|
|
}
|
|
|
var timeout = runTimeout(cleanUpNextTick);
|
|
|
draining = true;
|
|
|
|
|
|
var len = queue.length;
|
|
|
while(len) {
|
|
|
currentQueue = queue;
|
|
|
queue = [];
|
|
|
while (++queueIndex < len) {
|
|
|
if (currentQueue) {
|
|
|
currentQueue[queueIndex].run();
|
|
|
}
|
|
|
}
|
|
|
queueIndex = -1;
|
|
|
len = queue.length;
|
|
|
}
|
|
|
currentQueue = null;
|
|
|
draining = false;
|
|
|
runClearTimeout(timeout);
|
|
|
}
|
|
|
|
|
|
process.nextTick = function (fun) {
|
|
|
var args = new Array(arguments.length - 1);
|
|
|
if (arguments.length > 1) {
|
|
|
for (var i = 1; i < arguments.length; i++) {
|
|
|
args[i - 1] = arguments[i];
|
|
|
}
|
|
|
}
|
|
|
queue.push(new Item(fun, args));
|
|
|
if (queue.length === 1 && !draining) {
|
|
|
runTimeout(drainQueue);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
// v8 likes predictible objects
|
|
|
function Item(fun, array) {
|
|
|
this.fun = fun;
|
|
|
this.array = array;
|
|
|
}
|
|
|
Item.prototype.run = function () {
|
|
|
this.fun.apply(null, this.array);
|
|
|
};
|
|
|
process.title = 'browser';
|
|
|
process.browser = true;
|
|
|
process.env = {};
|
|
|
process.argv = [];
|
|
|
process.version = ''; // empty string to avoid regexp issues
|
|
|
process.versions = {};
|
|
|
|
|
|
function noop() {}
|
|
|
|
|
|
process.on = noop;
|
|
|
process.addListener = noop;
|
|
|
process.once = noop;
|
|
|
process.off = noop;
|
|
|
process.removeListener = noop;
|
|
|
process.removeAllListeners = noop;
|
|
|
process.emit = noop;
|
|
|
process.prependListener = noop;
|
|
|
process.prependOnceListener = noop;
|
|
|
|
|
|
process.listeners = function (name) { return [] }
|
|
|
|
|
|
process.binding = function (name) {
|
|
|
throw new Error('process.binding is not supported');
|
|
|
};
|
|
|
|
|
|
process.cwd = function () { return '/' };
|
|
|
process.chdir = function (dir) {
|
|
|
throw new Error('process.chdir is not supported');
|
|
|
};
|
|
|
process.umask = function() { return 0; };
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/rvnm/src/jquery-rvnm.js":
|
|
|
/*!**********************************************!*\
|
|
|
!*** ./node_modules/rvnm/src/jquery-rvnm.js ***!
|
|
|
\**********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
/**
|
|
|
* rvnm Responsive vertical navigation menu
|
|
|
*
|
|
|
* Copyright (C) 2017 4xmen team <a1gard@4xmen.ir>
|
|
|
*
|
|
|
* LICENSE: This program is free software; you can redistribute it and/or modify
|
|
|
* it under the terms of the GNU General Public License as published by the Free
|
|
|
* Software Foundation; either version 3 of the License, or (at your option) any
|
|
|
* later version. This program is distributed in the hope that it will be
|
|
|
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
|
* Public License for more details. You should have received a copy of the GNU
|
|
|
* General Public License along with this program.
|
|
|
* If not, see <http://opensource.org/licenses/gpl-license.php>.
|
|
|
*
|
|
|
* @package rvnm
|
|
|
* @author 4xmen team <www.4xmen.ir>
|
|
|
* @author A1Gard <a1gard@4xmen.ir>
|
|
|
* @link https://github.com/4xmen/rvnm
|
|
|
*/
|
|
|
|
|
|
;
|
|
|
(function ($) {
|
|
|
|
|
|
$.fn.rvnm = function (options) {
|
|
|
|
|
|
|
|
|
/**
|
|
|
* settings ofplgin
|
|
|
* @type Object
|
|
|
*/
|
|
|
var settings = $.extend({
|
|
|
wrapper: '#wrapper', // main page wrapper
|
|
|
mode: 'default', // mode of menu (default = desktop| minimal = tablet | mobile)
|
|
|
responsive: true, // repsonsve mode only work in default mode
|
|
|
theme: '',
|
|
|
searchable: false,
|
|
|
}, options);
|
|
|
|
|
|
/**
|
|
|
* sizetrigger is function to change nav box size
|
|
|
* or control reponsive & mode of menu
|
|
|
* @returns {undefined}
|
|
|
*/
|
|
|
this.sizetrigger = function () {
|
|
|
// repsonvive mode controller
|
|
|
if (settings.responsive && settings.mode === 'default') {
|
|
|
// if window size between 450 and 768 active minimal
|
|
|
if ($(window).width() > 450 && $(window).width() < 768) {
|
|
|
if (!$(self).hasClass('rvnm-minimal')) {
|
|
|
// fix extended after switch from defualt to minimal
|
|
|
$(self).find('.rvnm-collapseable ul').attr('style', '');
|
|
|
$(self).find('.rvnm-collapseable').addClass('rvnm-expandable').removeClass('rvnm-collapseable');
|
|
|
}
|
|
|
$(settings.wrapper).removeClass('rvnm-mobile-wrapper');
|
|
|
$(self).removeClass('rvnm-mobile');
|
|
|
$(settings.wrapper).addClass('rvnm-minimal');
|
|
|
$(self).addClass('rvnm-minimal');
|
|
|
}
|
|
|
// if window size less than 450 active mobile mode
|
|
|
if ($(window).width() <= 450) {
|
|
|
$(settings.wrapper).removeClass('rvnm-minimal');
|
|
|
$(self).removeClass('rvnm-minimal');
|
|
|
$(settings.wrapper).addClass('rvnm-mobile-wrapper');
|
|
|
$(self).addClass('rvnm-mobile');
|
|
|
}
|
|
|
// if window size greater than 768 active desktop mode by
|
|
|
// remove minimal & mobile calss
|
|
|
if ($(window).width() >= 768) {
|
|
|
$(settings.wrapper).removeClass('rvnm-minimal');
|
|
|
$(self).removeClass('rvnm-minimal');
|
|
|
$(settings.wrapper).removeClass('rvnm-mobile-wrapper');
|
|
|
$(self).removeClass('rvnm-mobile');
|
|
|
}
|
|
|
}
|
|
|
$(".rvnm-navbar-box").css('height', '');
|
|
|
if (settings.mode !== 'mobile' && !$(self).hasClass('rvnm-mobile')) {
|
|
|
if ($(".rvnm-navbar-box").height() < $("body").height() || $(".rvnm-navbar-box").height() < $(window).height() || $(".rvnm-navbar-box").height() < $("html").height()) {
|
|
|
$(".rvnm-navbar-box").height(Math.max($('body').height(), $(window).height(), $("html").height()));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
// set plugn selector to self for use in other place of plugin
|
|
|
var self = this;
|
|
|
|
|
|
this.each(function () {
|
|
|
// add rvnm-navbar-box to menu
|
|
|
$(this).addClass('rvnm-navbar-box');
|
|
|
|
|
|
if (settings.searchable) {
|
|
|
$(this).find('> ul').prepend('<li class="search"> <i class="fa fa-search"></i> <input class="rvnm-search" type="search" placeholder="Search..." /> </li>');
|
|
|
}
|
|
|
|
|
|
// add theme if extis
|
|
|
if (settings.theme !== '') {
|
|
|
$(this).addClass(settings.theme);
|
|
|
}
|
|
|
|
|
|
// add expandable class to li's has ul child
|
|
|
$(this).find('li:has(> ul)').addClass('rvnm-expandable');
|
|
|
// rvnm-wrapper class to main content element
|
|
|
$(settings.wrapper).addClass('rvnm-wrapper');
|
|
|
// check if minimal mode active change mode
|
|
|
if ($(this).hasClass('rvnm-minimal') || settings.mode === 'minimal') {
|
|
|
$(settings.wrapper).addClass('rvnm-minimal');
|
|
|
$(this).addClass('rvnm-minimal');
|
|
|
settings.mode = 'minimal';
|
|
|
}
|
|
|
// check if mobile mode active change mode
|
|
|
if ($(this).hasClass('rvnm-minimal') || settings.mode === 'mobile') {
|
|
|
$(settings.wrapper).addClass('rvnm-mobile-wrapper');
|
|
|
$(this).addClass('rvnm-mobile');
|
|
|
settings.mode = 'mobile';
|
|
|
}
|
|
|
|
|
|
// resize navbar box
|
|
|
self.sizetrigger();
|
|
|
|
|
|
// add triger windows resize
|
|
|
$window = $(window);
|
|
|
$window.on('scroll', function () {
|
|
|
self.sizetrigger();
|
|
|
});
|
|
|
$window.on('resize', function () {
|
|
|
self.sizetrigger();
|
|
|
});
|
|
|
|
|
|
|
|
|
/**
|
|
|
* ripple effect for links
|
|
|
*/
|
|
|
$(document).on('click', '.rvnm-navbar-box ul li a', function (e) {
|
|
|
// Remove any old one
|
|
|
$(".rvnm-ripple").remove();
|
|
|
|
|
|
// Setup
|
|
|
var posX = $(this).offset().left,
|
|
|
posY = $(this).offset().top,
|
|
|
buttonWidth = $(this).width(),
|
|
|
buttonHeight = $(this).height();
|
|
|
|
|
|
// Add the element
|
|
|
$(this).prepend("<span class='rvnm-ripple'></span>");
|
|
|
|
|
|
|
|
|
// Make it round!
|
|
|
if (buttonWidth >= buttonHeight) {
|
|
|
buttonHeight = buttonWidth;
|
|
|
} else {
|
|
|
buttonWidth = buttonHeight;
|
|
|
}
|
|
|
|
|
|
// Get the center of the element
|
|
|
var x = e.pageX - posX - buttonWidth / 2;
|
|
|
var y = e.pageY - posY - buttonHeight / 2;
|
|
|
|
|
|
|
|
|
// Add the ripples CSS and start the animation
|
|
|
$(".rvnm-ripple").css({
|
|
|
width: buttonWidth,
|
|
|
height: buttonHeight,
|
|
|
top: y + 'px',
|
|
|
left: x + 'px'
|
|
|
}).addClass("rvnm-rippleEffect");
|
|
|
|
|
|
setTimeout(function () {
|
|
|
$(".rvnm-ripple").remove();
|
|
|
}, 600);
|
|
|
|
|
|
});
|
|
|
|
|
|
// add click event to expandable link
|
|
|
$(document).on('click', '.rvnm-expandable > a', function (e) {
|
|
|
// check click only this element
|
|
|
if (e.target !== e.currentTarget)
|
|
|
return false;
|
|
|
|
|
|
// check is first level of li child and minimal mode siable
|
|
|
if ($(this).parent().hasClass('rvnm-minimal-expand')) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
// check is first level of li child
|
|
|
// try to close other expanded items
|
|
|
if ($(this).parent().closest('.rvnm-collapseable').length === 0) {
|
|
|
// slide up first level ul of this
|
|
|
$(".rvnm-collapseable > a").parent().find('> ul').slideUp(300);
|
|
|
// add expandable class to parent of link and remove collapseable
|
|
|
$(".rvnm-collapseable > a").parent().addClass('rvnm-expandable').removeClass('rvnm-collapseable');
|
|
|
}
|
|
|
|
|
|
|
|
|
// add collapseable class to parent of link and remove expandable
|
|
|
$(this).parent().addClass('rvnm-collapseable').removeClass('rvnm-expandable');
|
|
|
// slide down first level ul
|
|
|
$(this).parent().find('> ul').slideDown(300, function () {
|
|
|
// then use size triger
|
|
|
self.sizetrigger();
|
|
|
});
|
|
|
// if href is # link should not be work
|
|
|
if ($(this).attr('href') === '#') {
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
$(document).on('keyup mouseup change', '.rvnm-search', function (e) {
|
|
|
var word = $(this).val();
|
|
|
if (word.length == 0) {
|
|
|
$(this).closest('ul').find('> li').show();
|
|
|
} else {
|
|
|
$(this).closest('ul').find('> li').each(function () {
|
|
|
if (!$(this).hasClass('search')) {
|
|
|
$(this).show();
|
|
|
var txt = $(this).text();
|
|
|
if (txt.indexOf(word) == -1) {
|
|
|
$(this).hide();
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
self.sizetrigger();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
|
|
|
// add click event to collapseable link
|
|
|
$(document).on('click', '.rvnm-collapseable > a', function (e) {
|
|
|
// check click only this element
|
|
|
if (e.target !== e.currentTarget)
|
|
|
return false;
|
|
|
// add expandable class to parent of link and remove collapseable
|
|
|
$(this).parent().addClass('rvnm-expandable').removeClass('rvnm-collapseable');
|
|
|
// slide up first level ul of this
|
|
|
$(this).parent().find('> ul').slideUp(300, function () {
|
|
|
self.sizetrigger();
|
|
|
});
|
|
|
|
|
|
// if href is # link should not be work
|
|
|
if ($(this).attr('href') === '#') {
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
|
|
|
// click an nav box when has rvnm-mobile class
|
|
|
$(document).on('click', '.rvnm-mobile', function (e) {
|
|
|
|
|
|
if (e.target === e.currentTarget && $(e.currentTarget).hasClass('rvnm-navbar-box')) {
|
|
|
$(this).toggleClass('rvnm-mobile-expand');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// on mouseenter when menu is minimal
|
|
|
$(document).on('mouseenter', '.rvnm-navbar-box.rvnm-minimal li', function (e) {
|
|
|
// if menu is first level li
|
|
|
if ($(this).closest('.rvnm-minimal-expand').length === 0) {
|
|
|
// show menu
|
|
|
$(this).addClass('rvnm-minimal-expand');
|
|
|
}
|
|
|
});
|
|
|
// on mouseleave when menu is minimal
|
|
|
$(document).on('mouseleave', '.rvnm-navbar-box.rvnm-minimal li.rvnm-minimal-expand', function (e) {
|
|
|
$(".rvnm-minimal-expand .rvnm-collapseable ul").slideUp();
|
|
|
$(".rvnm-minimal-expand .rvnm-collapseable").addClass('rvnm-expandable').removeClass('rvnm-collapseable');
|
|
|
$(this).removeClass('rvnm-minimal-expand');
|
|
|
});
|
|
|
|
|
|
$(window).on('load', function () {
|
|
|
setTimeout(function () {
|
|
|
self.sizetrigger();
|
|
|
}, 100);
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
return {
|
|
|
settings: settings,
|
|
|
setMode: function (mode) {
|
|
|
$(settings.wrapper).removeClass('rvnm-mobile-wrapper');
|
|
|
$(self).removeClass('rvnm-mobile');
|
|
|
$(settings.wrapper).removeClass('rvnm-minimal');
|
|
|
$(self).removeClass('rvnm-minimal');
|
|
|
settings.responsive = false;
|
|
|
settings.mode = mode;
|
|
|
|
|
|
if (mode === 'default') {
|
|
|
return true;
|
|
|
}
|
|
|
if (mode === 'minimal') {
|
|
|
$(settings.wrapper).addClass('rvnm-minimal');
|
|
|
$(self).addClass('rvnm-minimal');
|
|
|
return true;
|
|
|
}
|
|
|
if (mode === 'mobile') {
|
|
|
$(settings.wrapper).addClass('rvnm-mobile-wrapper');
|
|
|
$(self).addClass('rvnm-mobile');
|
|
|
return true;
|
|
|
}
|
|
|
},
|
|
|
setTheme: function (theme) {
|
|
|
$(self).removeClass('dark');
|
|
|
$(self).removeClass('dark-lesb');
|
|
|
$(self).removeClass('dark-doder');
|
|
|
$(self).removeClass('dark-beryl');
|
|
|
$(self).removeClass('dark-ruby');
|
|
|
$(self).addClass(theme);
|
|
|
settings.theme = theme;
|
|
|
},
|
|
|
$this: this
|
|
|
};
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
}(jQuery));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/select2/dist/js/select2.js":
|
|
|
/*!*************************************************!*\
|
|
|
!*** ./node_modules/select2/dist/js/select2.js ***!
|
|
|
\*************************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var require;var require;/*!
|
|
|
* Select2 4.1.0-rc.0
|
|
|
* https://select2.github.io
|
|
|
*
|
|
|
* Released under the MIT license
|
|
|
* https://github.com/select2/select2/blob/master/LICENSE.md
|
|
|
*/
|
|
|
;(function (factory) {
|
|
|
if (true) {
|
|
|
// AMD. Register as an anonymous module.
|
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
|
|
|
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
|
|
|
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
|
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
} else {}
|
|
|
} (function (jQuery) {
|
|
|
// This is needed so we can catch the AMD loader configuration and use it
|
|
|
// The inner file should be wrapped (by `banner.start.js`) in a function that
|
|
|
// returns the AMD loader references.
|
|
|
var S2 =(function () {
|
|
|
// Restore the Select2 AMD loader so it can be used
|
|
|
// Needed mostly in the language files, where the loader is not inserted
|
|
|
if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {
|
|
|
var S2 = jQuery.fn.select2.amd;
|
|
|
}
|
|
|
var S2;(function () { if (!S2 || !S2.requirejs) {
|
|
|
if (!S2) { S2 = {}; } else { require = S2; }
|
|
|
/**
|
|
|
* @license almond 0.3.3 Copyright jQuery Foundation and other contributors.
|
|
|
* Released under MIT license, http://github.com/requirejs/almond/LICENSE
|
|
|
*/
|
|
|
//Going sloppy to avoid 'use strict' string cost, but strict practices should
|
|
|
//be followed.
|
|
|
/*global setTimeout: false */
|
|
|
|
|
|
var requirejs, require, define;
|
|
|
(function (undef) {
|
|
|
var main, req, makeMap, handlers,
|
|
|
defined = {},
|
|
|
waiting = {},
|
|
|
config = {},
|
|
|
defining = {},
|
|
|
hasOwn = Object.prototype.hasOwnProperty,
|
|
|
aps = [].slice,
|
|
|
jsSuffixRegExp = /\.js$/;
|
|
|
|
|
|
function hasProp(obj, prop) {
|
|
|
return hasOwn.call(obj, prop);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Given a relative module name, like ./something, normalize it to
|
|
|
* a real name that can be mapped to a path.
|
|
|
* @param {String} name the relative name
|
|
|
* @param {String} baseName a real name that the name arg is relative
|
|
|
* to.
|
|
|
* @returns {String} normalized name
|
|
|
*/
|
|
|
function normalize(name, baseName) {
|
|
|
var nameParts, nameSegment, mapValue, foundMap, lastIndex,
|
|
|
foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,
|
|
|
baseParts = baseName && baseName.split("/"),
|
|
|
map = config.map,
|
|
|
starMap = (map && map['*']) || {};
|
|
|
|
|
|
//Adjust any relative paths.
|
|
|
if (name) {
|
|
|
name = name.split('/');
|
|
|
lastIndex = name.length - 1;
|
|
|
|
|
|
// If wanting node ID compatibility, strip .js from end
|
|
|
// of IDs. Have to do this here, and not in nameToUrl
|
|
|
// because node allows either .js or non .js to map
|
|
|
// to same file.
|
|
|
if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
|
|
|
name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
|
|
|
}
|
|
|
|
|
|
// Starts with a '.' so need the baseName
|
|
|
if (name[0].charAt(0) === '.' && baseParts) {
|
|
|
//Convert baseName to array, and lop off the last part,
|
|
|
//so that . matches that 'directory' and not name of the baseName's
|
|
|
//module. For instance, baseName of 'one/two/three', maps to
|
|
|
//'one/two/three.js', but we want the directory, 'one/two' for
|
|
|
//this normalization.
|
|
|
normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
|
|
|
name = normalizedBaseParts.concat(name);
|
|
|
}
|
|
|
|
|
|
//start trimDots
|
|
|
for (i = 0; i < name.length; i++) {
|
|
|
part = name[i];
|
|
|
if (part === '.') {
|
|
|
name.splice(i, 1);
|
|
|
i -= 1;
|
|
|
} else if (part === '..') {
|
|
|
// If at the start, or previous value is still ..,
|
|
|
// keep them so that when converted to a path it may
|
|
|
// still work when converted to a path, even though
|
|
|
// as an ID it is less than ideal. In larger point
|
|
|
// releases, may be better to just kick out an error.
|
|
|
if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {
|
|
|
continue;
|
|
|
} else if (i > 0) {
|
|
|
name.splice(i - 1, 2);
|
|
|
i -= 2;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//end trimDots
|
|
|
|
|
|
name = name.join('/');
|
|
|
}
|
|
|
|
|
|
//Apply map config if available.
|
|
|
if ((baseParts || starMap) && map) {
|
|
|
nameParts = name.split('/');
|
|
|
|
|
|
for (i = nameParts.length; i > 0; i -= 1) {
|
|
|
nameSegment = nameParts.slice(0, i).join("/");
|
|
|
|
|
|
if (baseParts) {
|
|
|
//Find the longest baseName segment match in the config.
|
|
|
//So, do joins on the biggest to smallest lengths of baseParts.
|
|
|
for (j = baseParts.length; j > 0; j -= 1) {
|
|
|
mapValue = map[baseParts.slice(0, j).join('/')];
|
|
|
|
|
|
//baseName segment has config, find if it has one for
|
|
|
//this name.
|
|
|
if (mapValue) {
|
|
|
mapValue = mapValue[nameSegment];
|
|
|
if (mapValue) {
|
|
|
//Match, update name to the new value.
|
|
|
foundMap = mapValue;
|
|
|
foundI = i;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (foundMap) {
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
//Check for a star map match, but just hold on to it,
|
|
|
//if there is a shorter segment match later in a matching
|
|
|
//config, then favor over this star map.
|
|
|
if (!foundStarMap && starMap && starMap[nameSegment]) {
|
|
|
foundStarMap = starMap[nameSegment];
|
|
|
starI = i;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (!foundMap && foundStarMap) {
|
|
|
foundMap = foundStarMap;
|
|
|
foundI = starI;
|
|
|
}
|
|
|
|
|
|
if (foundMap) {
|
|
|
nameParts.splice(0, foundI, foundMap);
|
|
|
name = nameParts.join('/');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return name;
|
|
|
}
|
|
|
|
|
|
function makeRequire(relName, forceSync) {
|
|
|
return function () {
|
|
|
//A version of a require function that passes a moduleName
|
|
|
//value for items that may need to
|
|
|
//look up paths relative to the moduleName
|
|
|
var args = aps.call(arguments, 0);
|
|
|
|
|
|
//If first arg is not require('string'), and there is only
|
|
|
//one arg, it is the array form without a callback. Insert
|
|
|
//a null so that the following concat is correct.
|
|
|
if (typeof args[0] !== 'string' && args.length === 1) {
|
|
|
args.push(null);
|
|
|
}
|
|
|
return req.apply(undef, args.concat([relName, forceSync]));
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function makeNormalize(relName) {
|
|
|
return function (name) {
|
|
|
return normalize(name, relName);
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function makeLoad(depName) {
|
|
|
return function (value) {
|
|
|
defined[depName] = value;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function callDep(name) {
|
|
|
if (hasProp(waiting, name)) {
|
|
|
var args = waiting[name];
|
|
|
delete waiting[name];
|
|
|
defining[name] = true;
|
|
|
main.apply(undef, args);
|
|
|
}
|
|
|
|
|
|
if (!hasProp(defined, name) && !hasProp(defining, name)) {
|
|
|
throw new Error('No ' + name);
|
|
|
}
|
|
|
return defined[name];
|
|
|
}
|
|
|
|
|
|
//Turns a plugin!resource to [plugin, resource]
|
|
|
//with the plugin being undefined if the name
|
|
|
//did not have a plugin prefix.
|
|
|
function splitPrefix(name) {
|
|
|
var prefix,
|
|
|
index = name ? name.indexOf('!') : -1;
|
|
|
if (index > -1) {
|
|
|
prefix = name.substring(0, index);
|
|
|
name = name.substring(index + 1, name.length);
|
|
|
}
|
|
|
return [prefix, name];
|
|
|
}
|
|
|
|
|
|
//Creates a parts array for a relName where first part is plugin ID,
|
|
|
//second part is resource ID. Assumes relName has already been normalized.
|
|
|
function makeRelParts(relName) {
|
|
|
return relName ? splitPrefix(relName) : [];
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Makes a name map, normalizing the name, and using a plugin
|
|
|
* for normalization if necessary. Grabs a ref to plugin
|
|
|
* too, as an optimization.
|
|
|
*/
|
|
|
makeMap = function (name, relParts) {
|
|
|
var plugin,
|
|
|
parts = splitPrefix(name),
|
|
|
prefix = parts[0],
|
|
|
relResourceName = relParts[1];
|
|
|
|
|
|
name = parts[1];
|
|
|
|
|
|
if (prefix) {
|
|
|
prefix = normalize(prefix, relResourceName);
|
|
|
plugin = callDep(prefix);
|
|
|
}
|
|
|
|
|
|
//Normalize according
|
|
|
if (prefix) {
|
|
|
if (plugin && plugin.normalize) {
|
|
|
name = plugin.normalize(name, makeNormalize(relResourceName));
|
|
|
} else {
|
|
|
name = normalize(name, relResourceName);
|
|
|
}
|
|
|
} else {
|
|
|
name = normalize(name, relResourceName);
|
|
|
parts = splitPrefix(name);
|
|
|
prefix = parts[0];
|
|
|
name = parts[1];
|
|
|
if (prefix) {
|
|
|
plugin = callDep(prefix);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//Using ridiculous property names for space reasons
|
|
|
return {
|
|
|
f: prefix ? prefix + '!' + name : name, //fullName
|
|
|
n: name,
|
|
|
pr: prefix,
|
|
|
p: plugin
|
|
|
};
|
|
|
};
|
|
|
|
|
|
function makeConfig(name) {
|
|
|
return function () {
|
|
|
return (config && config.config && config.config[name]) || {};
|
|
|
};
|
|
|
}
|
|
|
|
|
|
handlers = {
|
|
|
require: function (name) {
|
|
|
return makeRequire(name);
|
|
|
},
|
|
|
exports: function (name) {
|
|
|
var e = defined[name];
|
|
|
if (typeof e !== 'undefined') {
|
|
|
return e;
|
|
|
} else {
|
|
|
return (defined[name] = {});
|
|
|
}
|
|
|
},
|
|
|
module: function (name) {
|
|
|
return {
|
|
|
id: name,
|
|
|
uri: '',
|
|
|
exports: defined[name],
|
|
|
config: makeConfig(name)
|
|
|
};
|
|
|
}
|
|
|
};
|
|
|
|
|
|
main = function (name, deps, callback, relName) {
|
|
|
var cjsModule, depName, ret, map, i, relParts,
|
|
|
args = [],
|
|
|
callbackType = typeof callback,
|
|
|
usingExports;
|
|
|
|
|
|
//Use name if no relName
|
|
|
relName = relName || name;
|
|
|
relParts = makeRelParts(relName);
|
|
|
|
|
|
//Call the callback to define the module, if necessary.
|
|
|
if (callbackType === 'undefined' || callbackType === 'function') {
|
|
|
//Pull out the defined dependencies and pass the ordered
|
|
|
//values to the callback.
|
|
|
//Default to [require, exports, module] if no deps
|
|
|
deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;
|
|
|
for (i = 0; i < deps.length; i += 1) {
|
|
|
map = makeMap(deps[i], relParts);
|
|
|
depName = map.f;
|
|
|
|
|
|
//Fast path CommonJS standard dependencies.
|
|
|
if (depName === "require") {
|
|
|
args[i] = handlers.require(name);
|
|
|
} else if (depName === "exports") {
|
|
|
//CommonJS module spec 1.1
|
|
|
args[i] = handlers.exports(name);
|
|
|
usingExports = true;
|
|
|
} else if (depName === "module") {
|
|
|
//CommonJS module spec 1.1
|
|
|
cjsModule = args[i] = handlers.module(name);
|
|
|
} else if (hasProp(defined, depName) ||
|
|
|
hasProp(waiting, depName) ||
|
|
|
hasProp(defining, depName)) {
|
|
|
args[i] = callDep(depName);
|
|
|
} else if (map.p) {
|
|
|
map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});
|
|
|
args[i] = defined[depName];
|
|
|
} else {
|
|
|
throw new Error(name + ' missing ' + depName);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
ret = callback ? callback.apply(defined[name], args) : undefined;
|
|
|
|
|
|
if (name) {
|
|
|
//If setting exports via "module" is in play,
|
|
|
//favor that over return value and exports. After that,
|
|
|
//favor a non-undefined return value over exports use.
|
|
|
if (cjsModule && cjsModule.exports !== undef &&
|
|
|
cjsModule.exports !== defined[name]) {
|
|
|
defined[name] = cjsModule.exports;
|
|
|
} else if (ret !== undef || !usingExports) {
|
|
|
//Use the return value from the function.
|
|
|
defined[name] = ret;
|
|
|
}
|
|
|
}
|
|
|
} else if (name) {
|
|
|
//May just be an object definition for the module. Only
|
|
|
//worry about defining if have a module name.
|
|
|
defined[name] = callback;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
requirejs = require = req = function (deps, callback, relName, forceSync, alt) {
|
|
|
if (typeof deps === "string") {
|
|
|
if (handlers[deps]) {
|
|
|
//callback in this case is really relName
|
|
|
return handlers[deps](callback);
|
|
|
}
|
|
|
//Just return the module wanted. In this scenario, the
|
|
|
//deps arg is the module name, and second arg (if passed)
|
|
|
//is just the relName.
|
|
|
//Normalize module name, if it contains . or ..
|
|
|
return callDep(makeMap(deps, makeRelParts(callback)).f);
|
|
|
} else if (!deps.splice) {
|
|
|
//deps is a config object, not an array.
|
|
|
config = deps;
|
|
|
if (config.deps) {
|
|
|
req(config.deps, config.callback);
|
|
|
}
|
|
|
if (!callback) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (callback.splice) {
|
|
|
//callback is an array, which means it is a dependency list.
|
|
|
//Adjust args if there are dependencies
|
|
|
deps = callback;
|
|
|
callback = relName;
|
|
|
relName = null;
|
|
|
} else {
|
|
|
deps = undef;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//Support require(['a'])
|
|
|
callback = callback || function () {};
|
|
|
|
|
|
//If relName is a function, it is an errback handler,
|
|
|
//so remove it.
|
|
|
if (typeof relName === 'function') {
|
|
|
relName = forceSync;
|
|
|
forceSync = alt;
|
|
|
}
|
|
|
|
|
|
//Simulate async callback;
|
|
|
if (forceSync) {
|
|
|
main(undef, deps, callback, relName);
|
|
|
} else {
|
|
|
//Using a non-zero value because of concern for what old browsers
|
|
|
//do, and latest browsers "upgrade" to 4 if lower value is used:
|
|
|
//http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:
|
|
|
//If want a value immediately, use require('id') instead -- something
|
|
|
//that works in almond on the global level, but not guaranteed and
|
|
|
//unlikely to work in other AMD implementations.
|
|
|
setTimeout(function () {
|
|
|
main(undef, deps, callback, relName);
|
|
|
}, 4);
|
|
|
}
|
|
|
|
|
|
return req;
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Just drops the config on the floor, but returns req in case
|
|
|
* the config return value is used.
|
|
|
*/
|
|
|
req.config = function (cfg) {
|
|
|
return req(cfg);
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Expose module registry for debugging and tooling
|
|
|
*/
|
|
|
requirejs._defined = defined;
|
|
|
|
|
|
define = function (name, deps, callback) {
|
|
|
if (typeof name !== 'string') {
|
|
|
throw new Error('See almond README: incorrect module build, no module name');
|
|
|
}
|
|
|
|
|
|
//This module may not have dependencies
|
|
|
if (!deps.splice) {
|
|
|
//deps is not an array, so probably means
|
|
|
//an object literal or factory function for
|
|
|
//the value. Adjust args.
|
|
|
callback = deps;
|
|
|
deps = [];
|
|
|
}
|
|
|
|
|
|
if (!hasProp(defined, name) && !hasProp(waiting, name)) {
|
|
|
waiting[name] = [name, deps, callback];
|
|
|
}
|
|
|
};
|
|
|
|
|
|
define.amd = {
|
|
|
jQuery: true
|
|
|
};
|
|
|
}());
|
|
|
|
|
|
S2.requirejs = requirejs;S2.require = require;S2.define = define;
|
|
|
}
|
|
|
}());
|
|
|
S2.define("almond", function(){});
|
|
|
|
|
|
/* global jQuery:false, $:false */
|
|
|
S2.define('jquery',[],function () {
|
|
|
var _$ = jQuery || $;
|
|
|
|
|
|
if (_$ == null && console && console.error) {
|
|
|
console.error(
|
|
|
'Select2: An instance of jQuery or a jQuery-compatible library was not ' +
|
|
|
'found. Make sure that you are including jQuery before Select2 on your ' +
|
|
|
'web page.'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
return _$;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/utils',[
|
|
|
'jquery'
|
|
|
], function ($) {
|
|
|
var Utils = {};
|
|
|
|
|
|
Utils.Extend = function (ChildClass, SuperClass) {
|
|
|
var __hasProp = {}.hasOwnProperty;
|
|
|
|
|
|
function BaseConstructor () {
|
|
|
this.constructor = ChildClass;
|
|
|
}
|
|
|
|
|
|
for (var key in SuperClass) {
|
|
|
if (__hasProp.call(SuperClass, key)) {
|
|
|
ChildClass[key] = SuperClass[key];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
BaseConstructor.prototype = SuperClass.prototype;
|
|
|
ChildClass.prototype = new BaseConstructor();
|
|
|
ChildClass.__super__ = SuperClass.prototype;
|
|
|
|
|
|
return ChildClass;
|
|
|
};
|
|
|
|
|
|
function getMethods (theClass) {
|
|
|
var proto = theClass.prototype;
|
|
|
|
|
|
var methods = [];
|
|
|
|
|
|
for (var methodName in proto) {
|
|
|
var m = proto[methodName];
|
|
|
|
|
|
if (typeof m !== 'function') {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
if (methodName === 'constructor') {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
methods.push(methodName);
|
|
|
}
|
|
|
|
|
|
return methods;
|
|
|
}
|
|
|
|
|
|
Utils.Decorate = function (SuperClass, DecoratorClass) {
|
|
|
var decoratedMethods = getMethods(DecoratorClass);
|
|
|
var superMethods = getMethods(SuperClass);
|
|
|
|
|
|
function DecoratedClass () {
|
|
|
var unshift = Array.prototype.unshift;
|
|
|
|
|
|
var argCount = DecoratorClass.prototype.constructor.length;
|
|
|
|
|
|
var calledConstructor = SuperClass.prototype.constructor;
|
|
|
|
|
|
if (argCount > 0) {
|
|
|
unshift.call(arguments, SuperClass.prototype.constructor);
|
|
|
|
|
|
calledConstructor = DecoratorClass.prototype.constructor;
|
|
|
}
|
|
|
|
|
|
calledConstructor.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
DecoratorClass.displayName = SuperClass.displayName;
|
|
|
|
|
|
function ctr () {
|
|
|
this.constructor = DecoratedClass;
|
|
|
}
|
|
|
|
|
|
DecoratedClass.prototype = new ctr();
|
|
|
|
|
|
for (var m = 0; m < superMethods.length; m++) {
|
|
|
var superMethod = superMethods[m];
|
|
|
|
|
|
DecoratedClass.prototype[superMethod] =
|
|
|
SuperClass.prototype[superMethod];
|
|
|
}
|
|
|
|
|
|
var calledMethod = function (methodName) {
|
|
|
// Stub out the original method if it's not decorating an actual method
|
|
|
var originalMethod = function () {};
|
|
|
|
|
|
if (methodName in DecoratedClass.prototype) {
|
|
|
originalMethod = DecoratedClass.prototype[methodName];
|
|
|
}
|
|
|
|
|
|
var decoratedMethod = DecoratorClass.prototype[methodName];
|
|
|
|
|
|
return function () {
|
|
|
var unshift = Array.prototype.unshift;
|
|
|
|
|
|
unshift.call(arguments, originalMethod);
|
|
|
|
|
|
return decoratedMethod.apply(this, arguments);
|
|
|
};
|
|
|
};
|
|
|
|
|
|
for (var d = 0; d < decoratedMethods.length; d++) {
|
|
|
var decoratedMethod = decoratedMethods[d];
|
|
|
|
|
|
DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
|
|
|
}
|
|
|
|
|
|
return DecoratedClass;
|
|
|
};
|
|
|
|
|
|
var Observable = function () {
|
|
|
this.listeners = {};
|
|
|
};
|
|
|
|
|
|
Observable.prototype.on = function (event, callback) {
|
|
|
this.listeners = this.listeners || {};
|
|
|
|
|
|
if (event in this.listeners) {
|
|
|
this.listeners[event].push(callback);
|
|
|
} else {
|
|
|
this.listeners[event] = [callback];
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Observable.prototype.trigger = function (event) {
|
|
|
var slice = Array.prototype.slice;
|
|
|
var params = slice.call(arguments, 1);
|
|
|
|
|
|
this.listeners = this.listeners || {};
|
|
|
|
|
|
// Params should always come in as an array
|
|
|
if (params == null) {
|
|
|
params = [];
|
|
|
}
|
|
|
|
|
|
// If there are no arguments to the event, use a temporary object
|
|
|
if (params.length === 0) {
|
|
|
params.push({});
|
|
|
}
|
|
|
|
|
|
// Set the `_type` of the first object to the event
|
|
|
params[0]._type = event;
|
|
|
|
|
|
if (event in this.listeners) {
|
|
|
this.invoke(this.listeners[event], slice.call(arguments, 1));
|
|
|
}
|
|
|
|
|
|
if ('*' in this.listeners) {
|
|
|
this.invoke(this.listeners['*'], arguments);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Observable.prototype.invoke = function (listeners, params) {
|
|
|
for (var i = 0, len = listeners.length; i < len; i++) {
|
|
|
listeners[i].apply(this, params);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Utils.Observable = Observable;
|
|
|
|
|
|
Utils.generateChars = function (length) {
|
|
|
var chars = '';
|
|
|
|
|
|
for (var i = 0; i < length; i++) {
|
|
|
var randomChar = Math.floor(Math.random() * 36);
|
|
|
chars += randomChar.toString(36);
|
|
|
}
|
|
|
|
|
|
return chars;
|
|
|
};
|
|
|
|
|
|
Utils.bind = function (func, context) {
|
|
|
return function () {
|
|
|
func.apply(context, arguments);
|
|
|
};
|
|
|
};
|
|
|
|
|
|
Utils._convertData = function (data) {
|
|
|
for (var originalKey in data) {
|
|
|
var keys = originalKey.split('-');
|
|
|
|
|
|
var dataLevel = data;
|
|
|
|
|
|
if (keys.length === 1) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
for (var k = 0; k < keys.length; k++) {
|
|
|
var key = keys[k];
|
|
|
|
|
|
// Lowercase the first letter
|
|
|
// By default, dash-separated becomes camelCase
|
|
|
key = key.substring(0, 1).toLowerCase() + key.substring(1);
|
|
|
|
|
|
if (!(key in dataLevel)) {
|
|
|
dataLevel[key] = {};
|
|
|
}
|
|
|
|
|
|
if (k == keys.length - 1) {
|
|
|
dataLevel[key] = data[originalKey];
|
|
|
}
|
|
|
|
|
|
dataLevel = dataLevel[key];
|
|
|
}
|
|
|
|
|
|
delete data[originalKey];
|
|
|
}
|
|
|
|
|
|
return data;
|
|
|
};
|
|
|
|
|
|
Utils.hasScroll = function (index, el) {
|
|
|
// Adapted from the function created by @ShadowScripter
|
|
|
// and adapted by @BillBarry on the Stack Exchange Code Review website.
|
|
|
// The original code can be found at
|
|
|
// http://codereview.stackexchange.com/q/13338
|
|
|
// and was designed to be used with the Sizzle selector engine.
|
|
|
|
|
|
var $el = $(el);
|
|
|
var overflowX = el.style.overflowX;
|
|
|
var overflowY = el.style.overflowY;
|
|
|
|
|
|
//Check both x and y declarations
|
|
|
if (overflowX === overflowY &&
|
|
|
(overflowY === 'hidden' || overflowY === 'visible')) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (overflowX === 'scroll' || overflowY === 'scroll') {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
return ($el.innerHeight() < el.scrollHeight ||
|
|
|
$el.innerWidth() < el.scrollWidth);
|
|
|
};
|
|
|
|
|
|
Utils.escapeMarkup = function (markup) {
|
|
|
var replaceMap = {
|
|
|
'\\': '\',
|
|
|
'&': '&',
|
|
|
'<': '<',
|
|
|
'>': '>',
|
|
|
'"': '"',
|
|
|
'\'': ''',
|
|
|
'/': '/'
|
|
|
};
|
|
|
|
|
|
// Do not try to escape the markup if it's not a string
|
|
|
if (typeof markup !== 'string') {
|
|
|
return markup;
|
|
|
}
|
|
|
|
|
|
return String(markup).replace(/[&<>"'\/\\]/g, function (match) {
|
|
|
return replaceMap[match];
|
|
|
});
|
|
|
};
|
|
|
|
|
|
// Cache objects in Utils.__cache instead of $.data (see #4346)
|
|
|
Utils.__cache = {};
|
|
|
|
|
|
var id = 0;
|
|
|
Utils.GetUniqueElementId = function (element) {
|
|
|
// Get a unique element Id. If element has no id,
|
|
|
// creates a new unique number, stores it in the id
|
|
|
// attribute and returns the new id with a prefix.
|
|
|
// If an id already exists, it simply returns it with a prefix.
|
|
|
|
|
|
var select2Id = element.getAttribute('data-select2-id');
|
|
|
|
|
|
if (select2Id != null) {
|
|
|
return select2Id;
|
|
|
}
|
|
|
|
|
|
// If element has id, use it.
|
|
|
if (element.id) {
|
|
|
select2Id = 'select2-data-' + element.id;
|
|
|
} else {
|
|
|
select2Id = 'select2-data-' + (++id).toString() +
|
|
|
'-' + Utils.generateChars(4);
|
|
|
}
|
|
|
|
|
|
element.setAttribute('data-select2-id', select2Id);
|
|
|
|
|
|
return select2Id;
|
|
|
};
|
|
|
|
|
|
Utils.StoreData = function (element, name, value) {
|
|
|
// Stores an item in the cache for a specified element.
|
|
|
// name is the cache key.
|
|
|
var id = Utils.GetUniqueElementId(element);
|
|
|
if (!Utils.__cache[id]) {
|
|
|
Utils.__cache[id] = {};
|
|
|
}
|
|
|
|
|
|
Utils.__cache[id][name] = value;
|
|
|
};
|
|
|
|
|
|
Utils.GetData = function (element, name) {
|
|
|
// Retrieves a value from the cache by its key (name)
|
|
|
// name is optional. If no name specified, return
|
|
|
// all cache items for the specified element.
|
|
|
// and for a specified element.
|
|
|
var id = Utils.GetUniqueElementId(element);
|
|
|
if (name) {
|
|
|
if (Utils.__cache[id]) {
|
|
|
if (Utils.__cache[id][name] != null) {
|
|
|
return Utils.__cache[id][name];
|
|
|
}
|
|
|
return $(element).data(name); // Fallback to HTML5 data attribs.
|
|
|
}
|
|
|
return $(element).data(name); // Fallback to HTML5 data attribs.
|
|
|
} else {
|
|
|
return Utils.__cache[id];
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Utils.RemoveData = function (element) {
|
|
|
// Removes all cached items for a specified element.
|
|
|
var id = Utils.GetUniqueElementId(element);
|
|
|
if (Utils.__cache[id] != null) {
|
|
|
delete Utils.__cache[id];
|
|
|
}
|
|
|
|
|
|
element.removeAttribute('data-select2-id');
|
|
|
};
|
|
|
|
|
|
Utils.copyNonInternalCssClasses = function (dest, src) {
|
|
|
var classes;
|
|
|
|
|
|
var destinationClasses = dest.getAttribute('class').trim().split(/\s+/);
|
|
|
|
|
|
destinationClasses = destinationClasses.filter(function (clazz) {
|
|
|
// Save all Select2 classes
|
|
|
return clazz.indexOf('select2-') === 0;
|
|
|
});
|
|
|
|
|
|
var sourceClasses = src.getAttribute('class').trim().split(/\s+/);
|
|
|
|
|
|
sourceClasses = sourceClasses.filter(function (clazz) {
|
|
|
// Only copy non-Select2 classes
|
|
|
return clazz.indexOf('select2-') !== 0;
|
|
|
});
|
|
|
|
|
|
var replacements = destinationClasses.concat(sourceClasses);
|
|
|
|
|
|
dest.setAttribute('class', replacements.join(' '));
|
|
|
};
|
|
|
|
|
|
return Utils;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/results',[
|
|
|
'jquery',
|
|
|
'./utils'
|
|
|
], function ($, Utils) {
|
|
|
function Results ($element, options, dataAdapter) {
|
|
|
this.$element = $element;
|
|
|
this.data = dataAdapter;
|
|
|
this.options = options;
|
|
|
|
|
|
Results.__super__.constructor.call(this);
|
|
|
}
|
|
|
|
|
|
Utils.Extend(Results, Utils.Observable);
|
|
|
|
|
|
Results.prototype.render = function () {
|
|
|
var $results = $(
|
|
|
'<ul class="select2-results__options" role="listbox"></ul>'
|
|
|
);
|
|
|
|
|
|
if (this.options.get('multiple')) {
|
|
|
$results.attr('aria-multiselectable', 'true');
|
|
|
}
|
|
|
|
|
|
this.$results = $results;
|
|
|
|
|
|
return $results;
|
|
|
};
|
|
|
|
|
|
Results.prototype.clear = function () {
|
|
|
this.$results.empty();
|
|
|
};
|
|
|
|
|
|
Results.prototype.displayMessage = function (params) {
|
|
|
var escapeMarkup = this.options.get('escapeMarkup');
|
|
|
|
|
|
this.clear();
|
|
|
this.hideLoading();
|
|
|
|
|
|
var $message = $(
|
|
|
'<li role="alert" aria-live="assertive"' +
|
|
|
' class="select2-results__option"></li>'
|
|
|
);
|
|
|
|
|
|
var message = this.options.get('translations').get(params.message);
|
|
|
|
|
|
$message.append(
|
|
|
escapeMarkup(
|
|
|
message(params.args)
|
|
|
)
|
|
|
);
|
|
|
|
|
|
$message[0].className += ' select2-results__message';
|
|
|
|
|
|
this.$results.append($message);
|
|
|
};
|
|
|
|
|
|
Results.prototype.hideMessages = function () {
|
|
|
this.$results.find('.select2-results__message').remove();
|
|
|
};
|
|
|
|
|
|
Results.prototype.append = function (data) {
|
|
|
this.hideLoading();
|
|
|
|
|
|
var $options = [];
|
|
|
|
|
|
if (data.results == null || data.results.length === 0) {
|
|
|
if (this.$results.children().length === 0) {
|
|
|
this.trigger('results:message', {
|
|
|
message: 'noResults'
|
|
|
});
|
|
|
}
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
data.results = this.sort(data.results);
|
|
|
|
|
|
for (var d = 0; d < data.results.length; d++) {
|
|
|
var item = data.results[d];
|
|
|
|
|
|
var $option = this.option(item);
|
|
|
|
|
|
$options.push($option);
|
|
|
}
|
|
|
|
|
|
this.$results.append($options);
|
|
|
};
|
|
|
|
|
|
Results.prototype.position = function ($results, $dropdown) {
|
|
|
var $resultsContainer = $dropdown.find('.select2-results');
|
|
|
$resultsContainer.append($results);
|
|
|
};
|
|
|
|
|
|
Results.prototype.sort = function (data) {
|
|
|
var sorter = this.options.get('sorter');
|
|
|
|
|
|
return sorter(data);
|
|
|
};
|
|
|
|
|
|
Results.prototype.highlightFirstItem = function () {
|
|
|
var $options = this.$results
|
|
|
.find('.select2-results__option--selectable');
|
|
|
|
|
|
var $selected = $options.filter('.select2-results__option--selected');
|
|
|
|
|
|
// Check if there are any selected options
|
|
|
if ($selected.length > 0) {
|
|
|
// If there are selected options, highlight the first
|
|
|
$selected.first().trigger('mouseenter');
|
|
|
} else {
|
|
|
// If there are no selected options, highlight the first option
|
|
|
// in the dropdown
|
|
|
$options.first().trigger('mouseenter');
|
|
|
}
|
|
|
|
|
|
this.ensureHighlightVisible();
|
|
|
};
|
|
|
|
|
|
Results.prototype.setClasses = function () {
|
|
|
var self = this;
|
|
|
|
|
|
this.data.current(function (selected) {
|
|
|
var selectedIds = selected.map(function (s) {
|
|
|
return s.id.toString();
|
|
|
});
|
|
|
|
|
|
var $options = self.$results
|
|
|
.find('.select2-results__option--selectable');
|
|
|
|
|
|
$options.each(function () {
|
|
|
var $option = $(this);
|
|
|
|
|
|
var item = Utils.GetData(this, 'data');
|
|
|
|
|
|
// id needs to be converted to a string when comparing
|
|
|
var id = '' + item.id;
|
|
|
|
|
|
if ((item.element != null && item.element.selected) ||
|
|
|
(item.element == null && selectedIds.indexOf(id) > -1)) {
|
|
|
this.classList.add('select2-results__option--selected');
|
|
|
$option.attr('aria-selected', 'true');
|
|
|
} else {
|
|
|
this.classList.remove('select2-results__option--selected');
|
|
|
$option.attr('aria-selected', 'false');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
});
|
|
|
};
|
|
|
|
|
|
Results.prototype.showLoading = function (params) {
|
|
|
this.hideLoading();
|
|
|
|
|
|
var loadingMore = this.options.get('translations').get('searching');
|
|
|
|
|
|
var loading = {
|
|
|
disabled: true,
|
|
|
loading: true,
|
|
|
text: loadingMore(params)
|
|
|
};
|
|
|
var $loading = this.option(loading);
|
|
|
$loading.className += ' loading-results';
|
|
|
|
|
|
this.$results.prepend($loading);
|
|
|
};
|
|
|
|
|
|
Results.prototype.hideLoading = function () {
|
|
|
this.$results.find('.loading-results').remove();
|
|
|
};
|
|
|
|
|
|
Results.prototype.option = function (data) {
|
|
|
var option = document.createElement('li');
|
|
|
option.classList.add('select2-results__option');
|
|
|
option.classList.add('select2-results__option--selectable');
|
|
|
|
|
|
var attrs = {
|
|
|
'role': 'option'
|
|
|
};
|
|
|
|
|
|
var matches = window.Element.prototype.matches ||
|
|
|
window.Element.prototype.msMatchesSelector ||
|
|
|
window.Element.prototype.webkitMatchesSelector;
|
|
|
|
|
|
if ((data.element != null && matches.call(data.element, ':disabled')) ||
|
|
|
(data.element == null && data.disabled)) {
|
|
|
attrs['aria-disabled'] = 'true';
|
|
|
|
|
|
option.classList.remove('select2-results__option--selectable');
|
|
|
option.classList.add('select2-results__option--disabled');
|
|
|
}
|
|
|
|
|
|
if (data.id == null) {
|
|
|
option.classList.remove('select2-results__option--selectable');
|
|
|
}
|
|
|
|
|
|
if (data._resultId != null) {
|
|
|
option.id = data._resultId;
|
|
|
}
|
|
|
|
|
|
if (data.title) {
|
|
|
option.title = data.title;
|
|
|
}
|
|
|
|
|
|
if (data.children) {
|
|
|
attrs.role = 'group';
|
|
|
attrs['aria-label'] = data.text;
|
|
|
|
|
|
option.classList.remove('select2-results__option--selectable');
|
|
|
option.classList.add('select2-results__option--group');
|
|
|
}
|
|
|
|
|
|
for (var attr in attrs) {
|
|
|
var val = attrs[attr];
|
|
|
|
|
|
option.setAttribute(attr, val);
|
|
|
}
|
|
|
|
|
|
if (data.children) {
|
|
|
var $option = $(option);
|
|
|
|
|
|
var label = document.createElement('strong');
|
|
|
label.className = 'select2-results__group';
|
|
|
|
|
|
this.template(data, label);
|
|
|
|
|
|
var $children = [];
|
|
|
|
|
|
for (var c = 0; c < data.children.length; c++) {
|
|
|
var child = data.children[c];
|
|
|
|
|
|
var $child = this.option(child);
|
|
|
|
|
|
$children.push($child);
|
|
|
}
|
|
|
|
|
|
var $childrenContainer = $('<ul></ul>', {
|
|
|
'class': 'select2-results__options select2-results__options--nested',
|
|
|
'role': 'none'
|
|
|
});
|
|
|
|
|
|
$childrenContainer.append($children);
|
|
|
|
|
|
$option.append(label);
|
|
|
$option.append($childrenContainer);
|
|
|
} else {
|
|
|
this.template(data, option);
|
|
|
}
|
|
|
|
|
|
Utils.StoreData(option, 'data', data);
|
|
|
|
|
|
return option;
|
|
|
};
|
|
|
|
|
|
Results.prototype.bind = function (container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
var id = container.id + '-results';
|
|
|
|
|
|
this.$results.attr('id', id);
|
|
|
|
|
|
container.on('results:all', function (params) {
|
|
|
self.clear();
|
|
|
self.append(params.data);
|
|
|
|
|
|
if (container.isOpen()) {
|
|
|
self.setClasses();
|
|
|
self.highlightFirstItem();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
container.on('results:append', function (params) {
|
|
|
self.append(params.data);
|
|
|
|
|
|
if (container.isOpen()) {
|
|
|
self.setClasses();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
container.on('query', function (params) {
|
|
|
self.hideMessages();
|
|
|
self.showLoading(params);
|
|
|
});
|
|
|
|
|
|
container.on('select', function () {
|
|
|
if (!container.isOpen()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
self.setClasses();
|
|
|
|
|
|
if (self.options.get('scrollAfterSelect')) {
|
|
|
self.highlightFirstItem();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
container.on('unselect', function () {
|
|
|
if (!container.isOpen()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
self.setClasses();
|
|
|
|
|
|
if (self.options.get('scrollAfterSelect')) {
|
|
|
self.highlightFirstItem();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
container.on('open', function () {
|
|
|
// When the dropdown is open, aria-expended="true"
|
|
|
self.$results.attr('aria-expanded', 'true');
|
|
|
self.$results.attr('aria-hidden', 'false');
|
|
|
|
|
|
self.setClasses();
|
|
|
self.ensureHighlightVisible();
|
|
|
});
|
|
|
|
|
|
container.on('close', function () {
|
|
|
// When the dropdown is closed, aria-expended="false"
|
|
|
self.$results.attr('aria-expanded', 'false');
|
|
|
self.$results.attr('aria-hidden', 'true');
|
|
|
self.$results.removeAttr('aria-activedescendant');
|
|
|
});
|
|
|
|
|
|
container.on('results:toggle', function () {
|
|
|
var $highlighted = self.getHighlightedResults();
|
|
|
|
|
|
if ($highlighted.length === 0) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$highlighted.trigger('mouseup');
|
|
|
});
|
|
|
|
|
|
container.on('results:select', function () {
|
|
|
var $highlighted = self.getHighlightedResults();
|
|
|
|
|
|
if ($highlighted.length === 0) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var data = Utils.GetData($highlighted[0], 'data');
|
|
|
|
|
|
if ($highlighted.hasClass('select2-results__option--selected')) {
|
|
|
self.trigger('close', {});
|
|
|
} else {
|
|
|
self.trigger('select', {
|
|
|
data: data
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
|
|
|
container.on('results:previous', function () {
|
|
|
var $highlighted = self.getHighlightedResults();
|
|
|
|
|
|
var $options = self.$results.find('.select2-results__option--selectable');
|
|
|
|
|
|
var currentIndex = $options.index($highlighted);
|
|
|
|
|
|
// If we are already at the top, don't move further
|
|
|
// If no options, currentIndex will be -1
|
|
|
if (currentIndex <= 0) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var nextIndex = currentIndex - 1;
|
|
|
|
|
|
// If none are highlighted, highlight the first
|
|
|
if ($highlighted.length === 0) {
|
|
|
nextIndex = 0;
|
|
|
}
|
|
|
|
|
|
var $next = $options.eq(nextIndex);
|
|
|
|
|
|
$next.trigger('mouseenter');
|
|
|
|
|
|
var currentOffset = self.$results.offset().top;
|
|
|
var nextTop = $next.offset().top;
|
|
|
var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);
|
|
|
|
|
|
if (nextIndex === 0) {
|
|
|
self.$results.scrollTop(0);
|
|
|
} else if (nextTop - currentOffset < 0) {
|
|
|
self.$results.scrollTop(nextOffset);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
container.on('results:next', function () {
|
|
|
var $highlighted = self.getHighlightedResults();
|
|
|
|
|
|
var $options = self.$results.find('.select2-results__option--selectable');
|
|
|
|
|
|
var currentIndex = $options.index($highlighted);
|
|
|
|
|
|
var nextIndex = currentIndex + 1;
|
|
|
|
|
|
// If we are at the last option, stay there
|
|
|
if (nextIndex >= $options.length) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var $next = $options.eq(nextIndex);
|
|
|
|
|
|
$next.trigger('mouseenter');
|
|
|
|
|
|
var currentOffset = self.$results.offset().top +
|
|
|
self.$results.outerHeight(false);
|
|
|
var nextBottom = $next.offset().top + $next.outerHeight(false);
|
|
|
var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;
|
|
|
|
|
|
if (nextIndex === 0) {
|
|
|
self.$results.scrollTop(0);
|
|
|
} else if (nextBottom > currentOffset) {
|
|
|
self.$results.scrollTop(nextOffset);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
container.on('results:focus', function (params) {
|
|
|
params.element[0].classList.add('select2-results__option--highlighted');
|
|
|
params.element[0].setAttribute('aria-selected', 'true');
|
|
|
});
|
|
|
|
|
|
container.on('results:message', function (params) {
|
|
|
self.displayMessage(params);
|
|
|
});
|
|
|
|
|
|
if ($.fn.mousewheel) {
|
|
|
this.$results.on('mousewheel', function (e) {
|
|
|
var top = self.$results.scrollTop();
|
|
|
|
|
|
var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;
|
|
|
|
|
|
var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;
|
|
|
var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();
|
|
|
|
|
|
if (isAtTop) {
|
|
|
self.$results.scrollTop(0);
|
|
|
|
|
|
e.preventDefault();
|
|
|
e.stopPropagation();
|
|
|
} else if (isAtBottom) {
|
|
|
self.$results.scrollTop(
|
|
|
self.$results.get(0).scrollHeight - self.$results.height()
|
|
|
);
|
|
|
|
|
|
e.preventDefault();
|
|
|
e.stopPropagation();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
this.$results.on('mouseup', '.select2-results__option--selectable',
|
|
|
function (evt) {
|
|
|
var $this = $(this);
|
|
|
|
|
|
var data = Utils.GetData(this, 'data');
|
|
|
|
|
|
if ($this.hasClass('select2-results__option--selected')) {
|
|
|
if (self.options.get('multiple')) {
|
|
|
self.trigger('unselect', {
|
|
|
originalEvent: evt,
|
|
|
data: data
|
|
|
});
|
|
|
} else {
|
|
|
self.trigger('close', {});
|
|
|
}
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
self.trigger('select', {
|
|
|
originalEvent: evt,
|
|
|
data: data
|
|
|
});
|
|
|
});
|
|
|
|
|
|
this.$results.on('mouseenter', '.select2-results__option--selectable',
|
|
|
function (evt) {
|
|
|
var data = Utils.GetData(this, 'data');
|
|
|
|
|
|
self.getHighlightedResults()
|
|
|
.removeClass('select2-results__option--highlighted')
|
|
|
.attr('aria-selected', 'false');
|
|
|
|
|
|
self.trigger('results:focus', {
|
|
|
data: data,
|
|
|
element: $(this)
|
|
|
});
|
|
|
});
|
|
|
};
|
|
|
|
|
|
Results.prototype.getHighlightedResults = function () {
|
|
|
var $highlighted = this.$results
|
|
|
.find('.select2-results__option--highlighted');
|
|
|
|
|
|
return $highlighted;
|
|
|
};
|
|
|
|
|
|
Results.prototype.destroy = function () {
|
|
|
this.$results.remove();
|
|
|
};
|
|
|
|
|
|
Results.prototype.ensureHighlightVisible = function () {
|
|
|
var $highlighted = this.getHighlightedResults();
|
|
|
|
|
|
if ($highlighted.length === 0) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var $options = this.$results.find('.select2-results__option--selectable');
|
|
|
|
|
|
var currentIndex = $options.index($highlighted);
|
|
|
|
|
|
var currentOffset = this.$results.offset().top;
|
|
|
var nextTop = $highlighted.offset().top;
|
|
|
var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);
|
|
|
|
|
|
var offsetDelta = nextTop - currentOffset;
|
|
|
nextOffset -= $highlighted.outerHeight(false) * 2;
|
|
|
|
|
|
if (currentIndex <= 2) {
|
|
|
this.$results.scrollTop(0);
|
|
|
} else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {
|
|
|
this.$results.scrollTop(nextOffset);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Results.prototype.template = function (result, container) {
|
|
|
var template = this.options.get('templateResult');
|
|
|
var escapeMarkup = this.options.get('escapeMarkup');
|
|
|
|
|
|
var content = template(result, container);
|
|
|
|
|
|
if (content == null) {
|
|
|
container.style.display = 'none';
|
|
|
} else if (typeof content === 'string') {
|
|
|
container.innerHTML = escapeMarkup(content);
|
|
|
} else {
|
|
|
$(container).append(content);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
return Results;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/keys',[
|
|
|
|
|
|
], function () {
|
|
|
var KEYS = {
|
|
|
BACKSPACE: 8,
|
|
|
TAB: 9,
|
|
|
ENTER: 13,
|
|
|
SHIFT: 16,
|
|
|
CTRL: 17,
|
|
|
ALT: 18,
|
|
|
ESC: 27,
|
|
|
SPACE: 32,
|
|
|
PAGE_UP: 33,
|
|
|
PAGE_DOWN: 34,
|
|
|
END: 35,
|
|
|
HOME: 36,
|
|
|
LEFT: 37,
|
|
|
UP: 38,
|
|
|
RIGHT: 39,
|
|
|
DOWN: 40,
|
|
|
DELETE: 46
|
|
|
};
|
|
|
|
|
|
return KEYS;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/selection/base',[
|
|
|
'jquery',
|
|
|
'../utils',
|
|
|
'../keys'
|
|
|
], function ($, Utils, KEYS) {
|
|
|
function BaseSelection ($element, options) {
|
|
|
this.$element = $element;
|
|
|
this.options = options;
|
|
|
|
|
|
BaseSelection.__super__.constructor.call(this);
|
|
|
}
|
|
|
|
|
|
Utils.Extend(BaseSelection, Utils.Observable);
|
|
|
|
|
|
BaseSelection.prototype.render = function () {
|
|
|
var $selection = $(
|
|
|
'<span class="select2-selection" role="combobox" ' +
|
|
|
' aria-haspopup="true" aria-expanded="false">' +
|
|
|
'</span>'
|
|
|
);
|
|
|
|
|
|
this._tabindex = 0;
|
|
|
|
|
|
if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {
|
|
|
this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');
|
|
|
} else if (this.$element.attr('tabindex') != null) {
|
|
|
this._tabindex = this.$element.attr('tabindex');
|
|
|
}
|
|
|
|
|
|
$selection.attr('title', this.$element.attr('title'));
|
|
|
$selection.attr('tabindex', this._tabindex);
|
|
|
$selection.attr('aria-disabled', 'false');
|
|
|
|
|
|
this.$selection = $selection;
|
|
|
|
|
|
return $selection;
|
|
|
};
|
|
|
|
|
|
BaseSelection.prototype.bind = function (container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
var resultsId = container.id + '-results';
|
|
|
|
|
|
this.container = container;
|
|
|
|
|
|
this.$selection.on('focus', function (evt) {
|
|
|
self.trigger('focus', evt);
|
|
|
});
|
|
|
|
|
|
this.$selection.on('blur', function (evt) {
|
|
|
self._handleBlur(evt);
|
|
|
});
|
|
|
|
|
|
this.$selection.on('keydown', function (evt) {
|
|
|
self.trigger('keypress', evt);
|
|
|
|
|
|
if (evt.which === KEYS.SPACE) {
|
|
|
evt.preventDefault();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
container.on('results:focus', function (params) {
|
|
|
self.$selection.attr('aria-activedescendant', params.data._resultId);
|
|
|
});
|
|
|
|
|
|
container.on('selection:update', function (params) {
|
|
|
self.update(params.data);
|
|
|
});
|
|
|
|
|
|
container.on('open', function () {
|
|
|
// When the dropdown is open, aria-expanded="true"
|
|
|
self.$selection.attr('aria-expanded', 'true');
|
|
|
self.$selection.attr('aria-owns', resultsId);
|
|
|
|
|
|
self._attachCloseHandler(container);
|
|
|
});
|
|
|
|
|
|
container.on('close', function () {
|
|
|
// When the dropdown is closed, aria-expanded="false"
|
|
|
self.$selection.attr('aria-expanded', 'false');
|
|
|
self.$selection.removeAttr('aria-activedescendant');
|
|
|
self.$selection.removeAttr('aria-owns');
|
|
|
|
|
|
self.$selection.trigger('focus');
|
|
|
|
|
|
self._detachCloseHandler(container);
|
|
|
});
|
|
|
|
|
|
container.on('enable', function () {
|
|
|
self.$selection.attr('tabindex', self._tabindex);
|
|
|
self.$selection.attr('aria-disabled', 'false');
|
|
|
});
|
|
|
|
|
|
container.on('disable', function () {
|
|
|
self.$selection.attr('tabindex', '-1');
|
|
|
self.$selection.attr('aria-disabled', 'true');
|
|
|
});
|
|
|
};
|
|
|
|
|
|
BaseSelection.prototype._handleBlur = function (evt) {
|
|
|
var self = this;
|
|
|
|
|
|
// This needs to be delayed as the active element is the body when the tab
|
|
|
// key is pressed, possibly along with others.
|
|
|
window.setTimeout(function () {
|
|
|
// Don't trigger `blur` if the focus is still in the selection
|
|
|
if (
|
|
|
(document.activeElement == self.$selection[0]) ||
|
|
|
($.contains(self.$selection[0], document.activeElement))
|
|
|
) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
self.trigger('blur', evt);
|
|
|
}, 1);
|
|
|
};
|
|
|
|
|
|
BaseSelection.prototype._attachCloseHandler = function (container) {
|
|
|
|
|
|
$(document.body).on('mousedown.select2.' + container.id, function (e) {
|
|
|
var $target = $(e.target);
|
|
|
|
|
|
var $select = $target.closest('.select2');
|
|
|
|
|
|
var $all = $('.select2.select2-container--open');
|
|
|
|
|
|
$all.each(function () {
|
|
|
if (this == $select[0]) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var $element = Utils.GetData(this, 'element');
|
|
|
|
|
|
$element.select2('close');
|
|
|
});
|
|
|
});
|
|
|
};
|
|
|
|
|
|
BaseSelection.prototype._detachCloseHandler = function (container) {
|
|
|
$(document.body).off('mousedown.select2.' + container.id);
|
|
|
};
|
|
|
|
|
|
BaseSelection.prototype.position = function ($selection, $container) {
|
|
|
var $selectionContainer = $container.find('.selection');
|
|
|
$selectionContainer.append($selection);
|
|
|
};
|
|
|
|
|
|
BaseSelection.prototype.destroy = function () {
|
|
|
this._detachCloseHandler(this.container);
|
|
|
};
|
|
|
|
|
|
BaseSelection.prototype.update = function (data) {
|
|
|
throw new Error('The `update` method must be defined in child classes.');
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Helper method to abstract the "enabled" (not "disabled") state of this
|
|
|
* object.
|
|
|
*
|
|
|
* @return {true} if the instance is not disabled.
|
|
|
* @return {false} if the instance is disabled.
|
|
|
*/
|
|
|
BaseSelection.prototype.isEnabled = function () {
|
|
|
return !this.isDisabled();
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Helper method to abstract the "disabled" state of this object.
|
|
|
*
|
|
|
* @return {true} if the disabled option is true.
|
|
|
* @return {false} if the disabled option is false.
|
|
|
*/
|
|
|
BaseSelection.prototype.isDisabled = function () {
|
|
|
return this.options.get('disabled');
|
|
|
};
|
|
|
|
|
|
return BaseSelection;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/selection/single',[
|
|
|
'jquery',
|
|
|
'./base',
|
|
|
'../utils',
|
|
|
'../keys'
|
|
|
], function ($, BaseSelection, Utils, KEYS) {
|
|
|
function SingleSelection () {
|
|
|
SingleSelection.__super__.constructor.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Utils.Extend(SingleSelection, BaseSelection);
|
|
|
|
|
|
SingleSelection.prototype.render = function () {
|
|
|
var $selection = SingleSelection.__super__.render.call(this);
|
|
|
|
|
|
$selection[0].classList.add('select2-selection--single');
|
|
|
|
|
|
$selection.html(
|
|
|
'<span class="select2-selection__rendered"></span>' +
|
|
|
'<span class="select2-selection__arrow" role="presentation">' +
|
|
|
'<b role="presentation"></b>' +
|
|
|
'</span>'
|
|
|
);
|
|
|
|
|
|
return $selection;
|
|
|
};
|
|
|
|
|
|
SingleSelection.prototype.bind = function (container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
SingleSelection.__super__.bind.apply(this, arguments);
|
|
|
|
|
|
var id = container.id + '-container';
|
|
|
|
|
|
this.$selection.find('.select2-selection__rendered')
|
|
|
.attr('id', id)
|
|
|
.attr('role', 'textbox')
|
|
|
.attr('aria-readonly', 'true');
|
|
|
this.$selection.attr('aria-labelledby', id);
|
|
|
this.$selection.attr('aria-controls', id);
|
|
|
|
|
|
this.$selection.on('mousedown', function (evt) {
|
|
|
// Only respond to left clicks
|
|
|
if (evt.which !== 1) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
self.trigger('toggle', {
|
|
|
originalEvent: evt
|
|
|
});
|
|
|
});
|
|
|
|
|
|
this.$selection.on('focus', function (evt) {
|
|
|
// User focuses on the container
|
|
|
});
|
|
|
|
|
|
this.$selection.on('blur', function (evt) {
|
|
|
// User exits the container
|
|
|
});
|
|
|
|
|
|
container.on('focus', function (evt) {
|
|
|
if (!container.isOpen()) {
|
|
|
self.$selection.trigger('focus');
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
|
|
|
SingleSelection.prototype.clear = function () {
|
|
|
var $rendered = this.$selection.find('.select2-selection__rendered');
|
|
|
$rendered.empty();
|
|
|
$rendered.removeAttr('title'); // clear tooltip on empty
|
|
|
};
|
|
|
|
|
|
SingleSelection.prototype.display = function (data, container) {
|
|
|
var template = this.options.get('templateSelection');
|
|
|
var escapeMarkup = this.options.get('escapeMarkup');
|
|
|
|
|
|
return escapeMarkup(template(data, container));
|
|
|
};
|
|
|
|
|
|
SingleSelection.prototype.selectionContainer = function () {
|
|
|
return $('<span></span>');
|
|
|
};
|
|
|
|
|
|
SingleSelection.prototype.update = function (data) {
|
|
|
if (data.length === 0) {
|
|
|
this.clear();
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var selection = data[0];
|
|
|
|
|
|
var $rendered = this.$selection.find('.select2-selection__rendered');
|
|
|
var formatted = this.display(selection, $rendered);
|
|
|
|
|
|
$rendered.empty().append(formatted);
|
|
|
|
|
|
var title = selection.title || selection.text;
|
|
|
|
|
|
if (title) {
|
|
|
$rendered.attr('title', title);
|
|
|
} else {
|
|
|
$rendered.removeAttr('title');
|
|
|
}
|
|
|
};
|
|
|
|
|
|
return SingleSelection;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/selection/multiple',[
|
|
|
'jquery',
|
|
|
'./base',
|
|
|
'../utils'
|
|
|
], function ($, BaseSelection, Utils) {
|
|
|
function MultipleSelection ($element, options) {
|
|
|
MultipleSelection.__super__.constructor.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
Utils.Extend(MultipleSelection, BaseSelection);
|
|
|
|
|
|
MultipleSelection.prototype.render = function () {
|
|
|
var $selection = MultipleSelection.__super__.render.call(this);
|
|
|
|
|
|
$selection[0].classList.add('select2-selection--multiple');
|
|
|
|
|
|
$selection.html(
|
|
|
'<ul class="select2-selection__rendered"></ul>'
|
|
|
);
|
|
|
|
|
|
return $selection;
|
|
|
};
|
|
|
|
|
|
MultipleSelection.prototype.bind = function (container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
MultipleSelection.__super__.bind.apply(this, arguments);
|
|
|
|
|
|
var id = container.id + '-container';
|
|
|
this.$selection.find('.select2-selection__rendered').attr('id', id);
|
|
|
|
|
|
this.$selection.on('click', function (evt) {
|
|
|
self.trigger('toggle', {
|
|
|
originalEvent: evt
|
|
|
});
|
|
|
});
|
|
|
|
|
|
this.$selection.on(
|
|
|
'click',
|
|
|
'.select2-selection__choice__remove',
|
|
|
function (evt) {
|
|
|
// Ignore the event if it is disabled
|
|
|
if (self.isDisabled()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var $remove = $(this);
|
|
|
var $selection = $remove.parent();
|
|
|
|
|
|
var data = Utils.GetData($selection[0], 'data');
|
|
|
|
|
|
self.trigger('unselect', {
|
|
|
originalEvent: evt,
|
|
|
data: data
|
|
|
});
|
|
|
}
|
|
|
);
|
|
|
|
|
|
this.$selection.on(
|
|
|
'keydown',
|
|
|
'.select2-selection__choice__remove',
|
|
|
function (evt) {
|
|
|
// Ignore the event if it is disabled
|
|
|
if (self.isDisabled()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
evt.stopPropagation();
|
|
|
}
|
|
|
);
|
|
|
};
|
|
|
|
|
|
MultipleSelection.prototype.clear = function () {
|
|
|
var $rendered = this.$selection.find('.select2-selection__rendered');
|
|
|
$rendered.empty();
|
|
|
$rendered.removeAttr('title');
|
|
|
};
|
|
|
|
|
|
MultipleSelection.prototype.display = function (data, container) {
|
|
|
var template = this.options.get('templateSelection');
|
|
|
var escapeMarkup = this.options.get('escapeMarkup');
|
|
|
|
|
|
return escapeMarkup(template(data, container));
|
|
|
};
|
|
|
|
|
|
MultipleSelection.prototype.selectionContainer = function () {
|
|
|
var $container = $(
|
|
|
'<li class="select2-selection__choice">' +
|
|
|
'<button type="button" class="select2-selection__choice__remove" ' +
|
|
|
'tabindex="-1">' +
|
|
|
'<span aria-hidden="true">×</span>' +
|
|
|
'</button>' +
|
|
|
'<span class="select2-selection__choice__display"></span>' +
|
|
|
'</li>'
|
|
|
);
|
|
|
|
|
|
return $container;
|
|
|
};
|
|
|
|
|
|
MultipleSelection.prototype.update = function (data) {
|
|
|
this.clear();
|
|
|
|
|
|
if (data.length === 0) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var $selections = [];
|
|
|
|
|
|
var selectionIdPrefix = this.$selection.find('.select2-selection__rendered')
|
|
|
.attr('id') + '-choice-';
|
|
|
|
|
|
for (var d = 0; d < data.length; d++) {
|
|
|
var selection = data[d];
|
|
|
|
|
|
var $selection = this.selectionContainer();
|
|
|
var formatted = this.display(selection, $selection);
|
|
|
|
|
|
var selectionId = selectionIdPrefix + Utils.generateChars(4) + '-';
|
|
|
|
|
|
if (selection.id) {
|
|
|
selectionId += selection.id;
|
|
|
} else {
|
|
|
selectionId += Utils.generateChars(4);
|
|
|
}
|
|
|
|
|
|
$selection.find('.select2-selection__choice__display')
|
|
|
.append(formatted)
|
|
|
.attr('id', selectionId);
|
|
|
|
|
|
var title = selection.title || selection.text;
|
|
|
|
|
|
if (title) {
|
|
|
$selection.attr('title', title);
|
|
|
}
|
|
|
|
|
|
var removeItem = this.options.get('translations').get('removeItem');
|
|
|
|
|
|
var $remove = $selection.find('.select2-selection__choice__remove');
|
|
|
|
|
|
$remove.attr('title', removeItem());
|
|
|
$remove.attr('aria-label', removeItem());
|
|
|
$remove.attr('aria-describedby', selectionId);
|
|
|
|
|
|
Utils.StoreData($selection[0], 'data', selection);
|
|
|
|
|
|
$selections.push($selection);
|
|
|
}
|
|
|
|
|
|
var $rendered = this.$selection.find('.select2-selection__rendered');
|
|
|
|
|
|
$rendered.append($selections);
|
|
|
};
|
|
|
|
|
|
return MultipleSelection;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/selection/placeholder',[
|
|
|
|
|
|
], function () {
|
|
|
function Placeholder (decorated, $element, options) {
|
|
|
this.placeholder = this.normalizePlaceholder(options.get('placeholder'));
|
|
|
|
|
|
decorated.call(this, $element, options);
|
|
|
}
|
|
|
|
|
|
Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {
|
|
|
if (typeof placeholder === 'string') {
|
|
|
placeholder = {
|
|
|
id: '',
|
|
|
text: placeholder
|
|
|
};
|
|
|
}
|
|
|
|
|
|
return placeholder;
|
|
|
};
|
|
|
|
|
|
Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {
|
|
|
var $placeholder = this.selectionContainer();
|
|
|
|
|
|
$placeholder.html(this.display(placeholder));
|
|
|
$placeholder[0].classList.add('select2-selection__placeholder');
|
|
|
$placeholder[0].classList.remove('select2-selection__choice');
|
|
|
|
|
|
var placeholderTitle = placeholder.title ||
|
|
|
placeholder.text ||
|
|
|
$placeholder.text();
|
|
|
|
|
|
this.$selection.find('.select2-selection__rendered').attr(
|
|
|
'title',
|
|
|
placeholderTitle
|
|
|
);
|
|
|
|
|
|
return $placeholder;
|
|
|
};
|
|
|
|
|
|
Placeholder.prototype.update = function (decorated, data) {
|
|
|
var singlePlaceholder = (
|
|
|
data.length == 1 && data[0].id != this.placeholder.id
|
|
|
);
|
|
|
var multipleSelections = data.length > 1;
|
|
|
|
|
|
if (multipleSelections || singlePlaceholder) {
|
|
|
return decorated.call(this, data);
|
|
|
}
|
|
|
|
|
|
this.clear();
|
|
|
|
|
|
var $placeholder = this.createPlaceholder(this.placeholder);
|
|
|
|
|
|
this.$selection.find('.select2-selection__rendered').append($placeholder);
|
|
|
};
|
|
|
|
|
|
return Placeholder;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/selection/allowClear',[
|
|
|
'jquery',
|
|
|
'../keys',
|
|
|
'../utils'
|
|
|
], function ($, KEYS, Utils) {
|
|
|
function AllowClear () { }
|
|
|
|
|
|
AllowClear.prototype.bind = function (decorated, container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
decorated.call(this, container, $container);
|
|
|
|
|
|
if (this.placeholder == null) {
|
|
|
if (this.options.get('debug') && window.console && console.error) {
|
|
|
console.error(
|
|
|
'Select2: The `allowClear` option should be used in combination ' +
|
|
|
'with the `placeholder` option.'
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
this.$selection.on('mousedown', '.select2-selection__clear',
|
|
|
function (evt) {
|
|
|
self._handleClear(evt);
|
|
|
});
|
|
|
|
|
|
container.on('keypress', function (evt) {
|
|
|
self._handleKeyboardClear(evt, container);
|
|
|
});
|
|
|
};
|
|
|
|
|
|
AllowClear.prototype._handleClear = function (_, evt) {
|
|
|
// Ignore the event if it is disabled
|
|
|
if (this.isDisabled()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var $clear = this.$selection.find('.select2-selection__clear');
|
|
|
|
|
|
// Ignore the event if nothing has been selected
|
|
|
if ($clear.length === 0) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
evt.stopPropagation();
|
|
|
|
|
|
var data = Utils.GetData($clear[0], 'data');
|
|
|
|
|
|
var previousVal = this.$element.val();
|
|
|
this.$element.val(this.placeholder.id);
|
|
|
|
|
|
var unselectData = {
|
|
|
data: data
|
|
|
};
|
|
|
this.trigger('clear', unselectData);
|
|
|
if (unselectData.prevented) {
|
|
|
this.$element.val(previousVal);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
for (var d = 0; d < data.length; d++) {
|
|
|
unselectData = {
|
|
|
data: data[d]
|
|
|
};
|
|
|
|
|
|
// Trigger the `unselect` event, so people can prevent it from being
|
|
|
// cleared.
|
|
|
this.trigger('unselect', unselectData);
|
|
|
|
|
|
// If the event was prevented, don't clear it out.
|
|
|
if (unselectData.prevented) {
|
|
|
this.$element.val(previousVal);
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
this.$element.trigger('input').trigger('change');
|
|
|
|
|
|
this.trigger('toggle', {});
|
|
|
};
|
|
|
|
|
|
AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {
|
|
|
if (container.isOpen()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {
|
|
|
this._handleClear(evt);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
AllowClear.prototype.update = function (decorated, data) {
|
|
|
decorated.call(this, data);
|
|
|
|
|
|
this.$selection.find('.select2-selection__clear').remove();
|
|
|
this.$selection[0].classList.remove('select2-selection--clearable');
|
|
|
|
|
|
if (this.$selection.find('.select2-selection__placeholder').length > 0 ||
|
|
|
data.length === 0) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var selectionId = this.$selection.find('.select2-selection__rendered')
|
|
|
.attr('id');
|
|
|
|
|
|
var removeAll = this.options.get('translations').get('removeAllItems');
|
|
|
|
|
|
var $remove = $(
|
|
|
'<button type="button" class="select2-selection__clear" tabindex="-1">' +
|
|
|
'<span aria-hidden="true">×</span>' +
|
|
|
'</button>'
|
|
|
);
|
|
|
$remove.attr('title', removeAll());
|
|
|
$remove.attr('aria-label', removeAll());
|
|
|
$remove.attr('aria-describedby', selectionId);
|
|
|
Utils.StoreData($remove[0], 'data', data);
|
|
|
|
|
|
this.$selection.prepend($remove);
|
|
|
this.$selection[0].classList.add('select2-selection--clearable');
|
|
|
};
|
|
|
|
|
|
return AllowClear;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/selection/search',[
|
|
|
'jquery',
|
|
|
'../utils',
|
|
|
'../keys'
|
|
|
], function ($, Utils, KEYS) {
|
|
|
function Search (decorated, $element, options) {
|
|
|
decorated.call(this, $element, options);
|
|
|
}
|
|
|
|
|
|
Search.prototype.render = function (decorated) {
|
|
|
var searchLabel = this.options.get('translations').get('search');
|
|
|
var $search = $(
|
|
|
'<span class="select2-search select2-search--inline">' +
|
|
|
'<textarea class="select2-search__field"'+
|
|
|
' type="search" tabindex="-1"' +
|
|
|
' autocorrect="off" autocapitalize="none"' +
|
|
|
' spellcheck="false" role="searchbox" aria-autocomplete="list" >' +
|
|
|
'</textarea>' +
|
|
|
'</span>'
|
|
|
);
|
|
|
|
|
|
this.$searchContainer = $search;
|
|
|
this.$search = $search.find('textarea');
|
|
|
|
|
|
this.$search.prop('autocomplete', this.options.get('autocomplete'));
|
|
|
this.$search.attr('aria-label', searchLabel());
|
|
|
|
|
|
var $rendered = decorated.call(this);
|
|
|
|
|
|
this._transferTabIndex();
|
|
|
$rendered.append(this.$searchContainer);
|
|
|
|
|
|
return $rendered;
|
|
|
};
|
|
|
|
|
|
Search.prototype.bind = function (decorated, container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
var resultsId = container.id + '-results';
|
|
|
var selectionId = container.id + '-container';
|
|
|
|
|
|
decorated.call(this, container, $container);
|
|
|
|
|
|
self.$search.attr('aria-describedby', selectionId);
|
|
|
|
|
|
container.on('open', function () {
|
|
|
self.$search.attr('aria-controls', resultsId);
|
|
|
self.$search.trigger('focus');
|
|
|
});
|
|
|
|
|
|
container.on('close', function () {
|
|
|
self.$search.val('');
|
|
|
self.resizeSearch();
|
|
|
self.$search.removeAttr('aria-controls');
|
|
|
self.$search.removeAttr('aria-activedescendant');
|
|
|
self.$search.trigger('focus');
|
|
|
});
|
|
|
|
|
|
container.on('enable', function () {
|
|
|
self.$search.prop('disabled', false);
|
|
|
|
|
|
self._transferTabIndex();
|
|
|
});
|
|
|
|
|
|
container.on('disable', function () {
|
|
|
self.$search.prop('disabled', true);
|
|
|
});
|
|
|
|
|
|
container.on('focus', function (evt) {
|
|
|
self.$search.trigger('focus');
|
|
|
});
|
|
|
|
|
|
container.on('results:focus', function (params) {
|
|
|
if (params.data._resultId) {
|
|
|
self.$search.attr('aria-activedescendant', params.data._resultId);
|
|
|
} else {
|
|
|
self.$search.removeAttr('aria-activedescendant');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
this.$selection.on('focusin', '.select2-search--inline', function (evt) {
|
|
|
self.trigger('focus', evt);
|
|
|
});
|
|
|
|
|
|
this.$selection.on('focusout', '.select2-search--inline', function (evt) {
|
|
|
self._handleBlur(evt);
|
|
|
});
|
|
|
|
|
|
this.$selection.on('keydown', '.select2-search--inline', function (evt) {
|
|
|
evt.stopPropagation();
|
|
|
|
|
|
self.trigger('keypress', evt);
|
|
|
|
|
|
self._keyUpPrevented = evt.isDefaultPrevented();
|
|
|
|
|
|
var key = evt.which;
|
|
|
|
|
|
if (key === KEYS.BACKSPACE && self.$search.val() === '') {
|
|
|
var $previousChoice = self.$selection
|
|
|
.find('.select2-selection__choice').last();
|
|
|
|
|
|
if ($previousChoice.length > 0) {
|
|
|
var item = Utils.GetData($previousChoice[0], 'data');
|
|
|
|
|
|
self.searchRemoveChoice(item);
|
|
|
|
|
|
evt.preventDefault();
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
this.$selection.on('click', '.select2-search--inline', function (evt) {
|
|
|
if (self.$search.val()) {
|
|
|
evt.stopPropagation();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// Try to detect the IE version should the `documentMode` property that
|
|
|
// is stored on the document. This is only implemented in IE and is
|
|
|
// slightly cleaner than doing a user agent check.
|
|
|
// This property is not available in Edge, but Edge also doesn't have
|
|
|
// this bug.
|
|
|
var msie = document.documentMode;
|
|
|
var disableInputEvents = msie && msie <= 11;
|
|
|
|
|
|
// Workaround for browsers which do not support the `input` event
|
|
|
// This will prevent double-triggering of events for browsers which support
|
|
|
// both the `keyup` and `input` events.
|
|
|
this.$selection.on(
|
|
|
'input.searchcheck',
|
|
|
'.select2-search--inline',
|
|
|
function (evt) {
|
|
|
// IE will trigger the `input` event when a placeholder is used on a
|
|
|
// search box. To get around this issue, we are forced to ignore all
|
|
|
// `input` events in IE and keep using `keyup`.
|
|
|
if (disableInputEvents) {
|
|
|
self.$selection.off('input.search input.searchcheck');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
// Unbind the duplicated `keyup` event
|
|
|
self.$selection.off('keyup.search');
|
|
|
}
|
|
|
);
|
|
|
|
|
|
this.$selection.on(
|
|
|
'keyup.search input.search',
|
|
|
'.select2-search--inline',
|
|
|
function (evt) {
|
|
|
// IE will trigger the `input` event when a placeholder is used on a
|
|
|
// search box. To get around this issue, we are forced to ignore all
|
|
|
// `input` events in IE and keep using `keyup`.
|
|
|
if (disableInputEvents && evt.type === 'input') {
|
|
|
self.$selection.off('input.search input.searchcheck');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var key = evt.which;
|
|
|
|
|
|
// We can freely ignore events from modifier keys
|
|
|
if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
// Tabbing will be handled during the `keydown` phase
|
|
|
if (key == KEYS.TAB) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
self.handleSearch(evt);
|
|
|
}
|
|
|
);
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* This method will transfer the tabindex attribute from the rendered
|
|
|
* selection to the search box. This allows for the search box to be used as
|
|
|
* the primary focus instead of the selection container.
|
|
|
*
|
|
|
* @private
|
|
|
*/
|
|
|
Search.prototype._transferTabIndex = function (decorated) {
|
|
|
this.$search.attr('tabindex', this.$selection.attr('tabindex'));
|
|
|
this.$selection.attr('tabindex', '-1');
|
|
|
};
|
|
|
|
|
|
Search.prototype.createPlaceholder = function (decorated, placeholder) {
|
|
|
this.$search.attr('placeholder', placeholder.text);
|
|
|
};
|
|
|
|
|
|
Search.prototype.update = function (decorated, data) {
|
|
|
var searchHadFocus = this.$search[0] == document.activeElement;
|
|
|
|
|
|
this.$search.attr('placeholder', '');
|
|
|
|
|
|
decorated.call(this, data);
|
|
|
|
|
|
this.resizeSearch();
|
|
|
if (searchHadFocus) {
|
|
|
this.$search.trigger('focus');
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Search.prototype.handleSearch = function () {
|
|
|
this.resizeSearch();
|
|
|
|
|
|
if (!this._keyUpPrevented) {
|
|
|
var input = this.$search.val();
|
|
|
|
|
|
this.trigger('query', {
|
|
|
term: input
|
|
|
});
|
|
|
}
|
|
|
|
|
|
this._keyUpPrevented = false;
|
|
|
};
|
|
|
|
|
|
Search.prototype.searchRemoveChoice = function (decorated, item) {
|
|
|
this.trigger('unselect', {
|
|
|
data: item
|
|
|
});
|
|
|
|
|
|
this.$search.val(item.text);
|
|
|
this.handleSearch();
|
|
|
};
|
|
|
|
|
|
Search.prototype.resizeSearch = function () {
|
|
|
this.$search.css('width', '25px');
|
|
|
|
|
|
var width = '100%';
|
|
|
|
|
|
if (this.$search.attr('placeholder') === '') {
|
|
|
var minimumWidth = this.$search.val().length + 1;
|
|
|
|
|
|
width = (minimumWidth * 0.75) + 'em';
|
|
|
}
|
|
|
|
|
|
this.$search.css('width', width);
|
|
|
};
|
|
|
|
|
|
return Search;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/selection/selectionCss',[
|
|
|
'../utils'
|
|
|
], function (Utils) {
|
|
|
function SelectionCSS () { }
|
|
|
|
|
|
SelectionCSS.prototype.render = function (decorated) {
|
|
|
var $selection = decorated.call(this);
|
|
|
|
|
|
var selectionCssClass = this.options.get('selectionCssClass') || '';
|
|
|
|
|
|
if (selectionCssClass.indexOf(':all:') !== -1) {
|
|
|
selectionCssClass = selectionCssClass.replace(':all:', '');
|
|
|
|
|
|
Utils.copyNonInternalCssClasses($selection[0], this.$element[0]);
|
|
|
}
|
|
|
|
|
|
$selection.addClass(selectionCssClass);
|
|
|
|
|
|
return $selection;
|
|
|
};
|
|
|
|
|
|
return SelectionCSS;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/selection/eventRelay',[
|
|
|
'jquery'
|
|
|
], function ($) {
|
|
|
function EventRelay () { }
|
|
|
|
|
|
EventRelay.prototype.bind = function (decorated, container, $container) {
|
|
|
var self = this;
|
|
|
var relayEvents = [
|
|
|
'open', 'opening',
|
|
|
'close', 'closing',
|
|
|
'select', 'selecting',
|
|
|
'unselect', 'unselecting',
|
|
|
'clear', 'clearing'
|
|
|
];
|
|
|
|
|
|
var preventableEvents = [
|
|
|
'opening', 'closing', 'selecting', 'unselecting', 'clearing'
|
|
|
];
|
|
|
|
|
|
decorated.call(this, container, $container);
|
|
|
|
|
|
container.on('*', function (name, params) {
|
|
|
// Ignore events that should not be relayed
|
|
|
if (relayEvents.indexOf(name) === -1) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
// The parameters should always be an object
|
|
|
params = params || {};
|
|
|
|
|
|
// Generate the jQuery event for the Select2 event
|
|
|
var evt = $.Event('select2:' + name, {
|
|
|
params: params
|
|
|
});
|
|
|
|
|
|
self.$element.trigger(evt);
|
|
|
|
|
|
// Only handle preventable events if it was one
|
|
|
if (preventableEvents.indexOf(name) === -1) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
params.prevented = evt.isDefaultPrevented();
|
|
|
});
|
|
|
};
|
|
|
|
|
|
return EventRelay;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/translation',[
|
|
|
'jquery',
|
|
|
'require'
|
|
|
], function ($, require) {
|
|
|
function Translation (dict) {
|
|
|
this.dict = dict || {};
|
|
|
}
|
|
|
|
|
|
Translation.prototype.all = function () {
|
|
|
return this.dict;
|
|
|
};
|
|
|
|
|
|
Translation.prototype.get = function (key) {
|
|
|
return this.dict[key];
|
|
|
};
|
|
|
|
|
|
Translation.prototype.extend = function (translation) {
|
|
|
this.dict = $.extend({}, translation.all(), this.dict);
|
|
|
};
|
|
|
|
|
|
// Static functions
|
|
|
|
|
|
Translation._cache = {};
|
|
|
|
|
|
Translation.loadPath = function (path) {
|
|
|
if (!(path in Translation._cache)) {
|
|
|
var translations = require(path);
|
|
|
|
|
|
Translation._cache[path] = translations;
|
|
|
}
|
|
|
|
|
|
return new Translation(Translation._cache[path]);
|
|
|
};
|
|
|
|
|
|
return Translation;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/diacritics',[
|
|
|
|
|
|
], function () {
|
|
|
var diacritics = {
|
|
|
'\u24B6': 'A',
|
|
|
'\uFF21': 'A',
|
|
|
'\u00C0': 'A',
|
|
|
'\u00C1': 'A',
|
|
|
'\u00C2': 'A',
|
|
|
'\u1EA6': 'A',
|
|
|
'\u1EA4': 'A',
|
|
|
'\u1EAA': 'A',
|
|
|
'\u1EA8': 'A',
|
|
|
'\u00C3': 'A',
|
|
|
'\u0100': 'A',
|
|
|
'\u0102': 'A',
|
|
|
'\u1EB0': 'A',
|
|
|
'\u1EAE': 'A',
|
|
|
'\u1EB4': 'A',
|
|
|
'\u1EB2': 'A',
|
|
|
'\u0226': 'A',
|
|
|
'\u01E0': 'A',
|
|
|
'\u00C4': 'A',
|
|
|
'\u01DE': 'A',
|
|
|
'\u1EA2': 'A',
|
|
|
'\u00C5': 'A',
|
|
|
'\u01FA': 'A',
|
|
|
'\u01CD': 'A',
|
|
|
'\u0200': 'A',
|
|
|
'\u0202': 'A',
|
|
|
'\u1EA0': 'A',
|
|
|
'\u1EAC': 'A',
|
|
|
'\u1EB6': 'A',
|
|
|
'\u1E00': 'A',
|
|
|
'\u0104': 'A',
|
|
|
'\u023A': 'A',
|
|
|
'\u2C6F': 'A',
|
|
|
'\uA732': 'AA',
|
|
|
'\u00C6': 'AE',
|
|
|
'\u01FC': 'AE',
|
|
|
'\u01E2': 'AE',
|
|
|
'\uA734': 'AO',
|
|
|
'\uA736': 'AU',
|
|
|
'\uA738': 'AV',
|
|
|
'\uA73A': 'AV',
|
|
|
'\uA73C': 'AY',
|
|
|
'\u24B7': 'B',
|
|
|
'\uFF22': 'B',
|
|
|
'\u1E02': 'B',
|
|
|
'\u1E04': 'B',
|
|
|
'\u1E06': 'B',
|
|
|
'\u0243': 'B',
|
|
|
'\u0182': 'B',
|
|
|
'\u0181': 'B',
|
|
|
'\u24B8': 'C',
|
|
|
'\uFF23': 'C',
|
|
|
'\u0106': 'C',
|
|
|
'\u0108': 'C',
|
|
|
'\u010A': 'C',
|
|
|
'\u010C': 'C',
|
|
|
'\u00C7': 'C',
|
|
|
'\u1E08': 'C',
|
|
|
'\u0187': 'C',
|
|
|
'\u023B': 'C',
|
|
|
'\uA73E': 'C',
|
|
|
'\u24B9': 'D',
|
|
|
'\uFF24': 'D',
|
|
|
'\u1E0A': 'D',
|
|
|
'\u010E': 'D',
|
|
|
'\u1E0C': 'D',
|
|
|
'\u1E10': 'D',
|
|
|
'\u1E12': 'D',
|
|
|
'\u1E0E': 'D',
|
|
|
'\u0110': 'D',
|
|
|
'\u018B': 'D',
|
|
|
'\u018A': 'D',
|
|
|
'\u0189': 'D',
|
|
|
'\uA779': 'D',
|
|
|
'\u01F1': 'DZ',
|
|
|
'\u01C4': 'DZ',
|
|
|
'\u01F2': 'Dz',
|
|
|
'\u01C5': 'Dz',
|
|
|
'\u24BA': 'E',
|
|
|
'\uFF25': 'E',
|
|
|
'\u00C8': 'E',
|
|
|
'\u00C9': 'E',
|
|
|
'\u00CA': 'E',
|
|
|
'\u1EC0': 'E',
|
|
|
'\u1EBE': 'E',
|
|
|
'\u1EC4': 'E',
|
|
|
'\u1EC2': 'E',
|
|
|
'\u1EBC': 'E',
|
|
|
'\u0112': 'E',
|
|
|
'\u1E14': 'E',
|
|
|
'\u1E16': 'E',
|
|
|
'\u0114': 'E',
|
|
|
'\u0116': 'E',
|
|
|
'\u00CB': 'E',
|
|
|
'\u1EBA': 'E',
|
|
|
'\u011A': 'E',
|
|
|
'\u0204': 'E',
|
|
|
'\u0206': 'E',
|
|
|
'\u1EB8': 'E',
|
|
|
'\u1EC6': 'E',
|
|
|
'\u0228': 'E',
|
|
|
'\u1E1C': 'E',
|
|
|
'\u0118': 'E',
|
|
|
'\u1E18': 'E',
|
|
|
'\u1E1A': 'E',
|
|
|
'\u0190': 'E',
|
|
|
'\u018E': 'E',
|
|
|
'\u24BB': 'F',
|
|
|
'\uFF26': 'F',
|
|
|
'\u1E1E': 'F',
|
|
|
'\u0191': 'F',
|
|
|
'\uA77B': 'F',
|
|
|
'\u24BC': 'G',
|
|
|
'\uFF27': 'G',
|
|
|
'\u01F4': 'G',
|
|
|
'\u011C': 'G',
|
|
|
'\u1E20': 'G',
|
|
|
'\u011E': 'G',
|
|
|
'\u0120': 'G',
|
|
|
'\u01E6': 'G',
|
|
|
'\u0122': 'G',
|
|
|
'\u01E4': 'G',
|
|
|
'\u0193': 'G',
|
|
|
'\uA7A0': 'G',
|
|
|
'\uA77D': 'G',
|
|
|
'\uA77E': 'G',
|
|
|
'\u24BD': 'H',
|
|
|
'\uFF28': 'H',
|
|
|
'\u0124': 'H',
|
|
|
'\u1E22': 'H',
|
|
|
'\u1E26': 'H',
|
|
|
'\u021E': 'H',
|
|
|
'\u1E24': 'H',
|
|
|
'\u1E28': 'H',
|
|
|
'\u1E2A': 'H',
|
|
|
'\u0126': 'H',
|
|
|
'\u2C67': 'H',
|
|
|
'\u2C75': 'H',
|
|
|
'\uA78D': 'H',
|
|
|
'\u24BE': 'I',
|
|
|
'\uFF29': 'I',
|
|
|
'\u00CC': 'I',
|
|
|
'\u00CD': 'I',
|
|
|
'\u00CE': 'I',
|
|
|
'\u0128': 'I',
|
|
|
'\u012A': 'I',
|
|
|
'\u012C': 'I',
|
|
|
'\u0130': 'I',
|
|
|
'\u00CF': 'I',
|
|
|
'\u1E2E': 'I',
|
|
|
'\u1EC8': 'I',
|
|
|
'\u01CF': 'I',
|
|
|
'\u0208': 'I',
|
|
|
'\u020A': 'I',
|
|
|
'\u1ECA': 'I',
|
|
|
'\u012E': 'I',
|
|
|
'\u1E2C': 'I',
|
|
|
'\u0197': 'I',
|
|
|
'\u24BF': 'J',
|
|
|
'\uFF2A': 'J',
|
|
|
'\u0134': 'J',
|
|
|
'\u0248': 'J',
|
|
|
'\u24C0': 'K',
|
|
|
'\uFF2B': 'K',
|
|
|
'\u1E30': 'K',
|
|
|
'\u01E8': 'K',
|
|
|
'\u1E32': 'K',
|
|
|
'\u0136': 'K',
|
|
|
'\u1E34': 'K',
|
|
|
'\u0198': 'K',
|
|
|
'\u2C69': 'K',
|
|
|
'\uA740': 'K',
|
|
|
'\uA742': 'K',
|
|
|
'\uA744': 'K',
|
|
|
'\uA7A2': 'K',
|
|
|
'\u24C1': 'L',
|
|
|
'\uFF2C': 'L',
|
|
|
'\u013F': 'L',
|
|
|
'\u0139': 'L',
|
|
|
'\u013D': 'L',
|
|
|
'\u1E36': 'L',
|
|
|
'\u1E38': 'L',
|
|
|
'\u013B': 'L',
|
|
|
'\u1E3C': 'L',
|
|
|
'\u1E3A': 'L',
|
|
|
'\u0141': 'L',
|
|
|
'\u023D': 'L',
|
|
|
'\u2C62': 'L',
|
|
|
'\u2C60': 'L',
|
|
|
'\uA748': 'L',
|
|
|
'\uA746': 'L',
|
|
|
'\uA780': 'L',
|
|
|
'\u01C7': 'LJ',
|
|
|
'\u01C8': 'Lj',
|
|
|
'\u24C2': 'M',
|
|
|
'\uFF2D': 'M',
|
|
|
'\u1E3E': 'M',
|
|
|
'\u1E40': 'M',
|
|
|
'\u1E42': 'M',
|
|
|
'\u2C6E': 'M',
|
|
|
'\u019C': 'M',
|
|
|
'\u24C3': 'N',
|
|
|
'\uFF2E': 'N',
|
|
|
'\u01F8': 'N',
|
|
|
'\u0143': 'N',
|
|
|
'\u00D1': 'N',
|
|
|
'\u1E44': 'N',
|
|
|
'\u0147': 'N',
|
|
|
'\u1E46': 'N',
|
|
|
'\u0145': 'N',
|
|
|
'\u1E4A': 'N',
|
|
|
'\u1E48': 'N',
|
|
|
'\u0220': 'N',
|
|
|
'\u019D': 'N',
|
|
|
'\uA790': 'N',
|
|
|
'\uA7A4': 'N',
|
|
|
'\u01CA': 'NJ',
|
|
|
'\u01CB': 'Nj',
|
|
|
'\u24C4': 'O',
|
|
|
'\uFF2F': 'O',
|
|
|
'\u00D2': 'O',
|
|
|
'\u00D3': 'O',
|
|
|
'\u00D4': 'O',
|
|
|
'\u1ED2': 'O',
|
|
|
'\u1ED0': 'O',
|
|
|
'\u1ED6': 'O',
|
|
|
'\u1ED4': 'O',
|
|
|
'\u00D5': 'O',
|
|
|
'\u1E4C': 'O',
|
|
|
'\u022C': 'O',
|
|
|
'\u1E4E': 'O',
|
|
|
'\u014C': 'O',
|
|
|
'\u1E50': 'O',
|
|
|
'\u1E52': 'O',
|
|
|
'\u014E': 'O',
|
|
|
'\u022E': 'O',
|
|
|
'\u0230': 'O',
|
|
|
'\u00D6': 'O',
|
|
|
'\u022A': 'O',
|
|
|
'\u1ECE': 'O',
|
|
|
'\u0150': 'O',
|
|
|
'\u01D1': 'O',
|
|
|
'\u020C': 'O',
|
|
|
'\u020E': 'O',
|
|
|
'\u01A0': 'O',
|
|
|
'\u1EDC': 'O',
|
|
|
'\u1EDA': 'O',
|
|
|
'\u1EE0': 'O',
|
|
|
'\u1EDE': 'O',
|
|
|
'\u1EE2': 'O',
|
|
|
'\u1ECC': 'O',
|
|
|
'\u1ED8': 'O',
|
|
|
'\u01EA': 'O',
|
|
|
'\u01EC': 'O',
|
|
|
'\u00D8': 'O',
|
|
|
'\u01FE': 'O',
|
|
|
'\u0186': 'O',
|
|
|
'\u019F': 'O',
|
|
|
'\uA74A': 'O',
|
|
|
'\uA74C': 'O',
|
|
|
'\u0152': 'OE',
|
|
|
'\u01A2': 'OI',
|
|
|
'\uA74E': 'OO',
|
|
|
'\u0222': 'OU',
|
|
|
'\u24C5': 'P',
|
|
|
'\uFF30': 'P',
|
|
|
'\u1E54': 'P',
|
|
|
'\u1E56': 'P',
|
|
|
'\u01A4': 'P',
|
|
|
'\u2C63': 'P',
|
|
|
'\uA750': 'P',
|
|
|
'\uA752': 'P',
|
|
|
'\uA754': 'P',
|
|
|
'\u24C6': 'Q',
|
|
|
'\uFF31': 'Q',
|
|
|
'\uA756': 'Q',
|
|
|
'\uA758': 'Q',
|
|
|
'\u024A': 'Q',
|
|
|
'\u24C7': 'R',
|
|
|
'\uFF32': 'R',
|
|
|
'\u0154': 'R',
|
|
|
'\u1E58': 'R',
|
|
|
'\u0158': 'R',
|
|
|
'\u0210': 'R',
|
|
|
'\u0212': 'R',
|
|
|
'\u1E5A': 'R',
|
|
|
'\u1E5C': 'R',
|
|
|
'\u0156': 'R',
|
|
|
'\u1E5E': 'R',
|
|
|
'\u024C': 'R',
|
|
|
'\u2C64': 'R',
|
|
|
'\uA75A': 'R',
|
|
|
'\uA7A6': 'R',
|
|
|
'\uA782': 'R',
|
|
|
'\u24C8': 'S',
|
|
|
'\uFF33': 'S',
|
|
|
'\u1E9E': 'S',
|
|
|
'\u015A': 'S',
|
|
|
'\u1E64': 'S',
|
|
|
'\u015C': 'S',
|
|
|
'\u1E60': 'S',
|
|
|
'\u0160': 'S',
|
|
|
'\u1E66': 'S',
|
|
|
'\u1E62': 'S',
|
|
|
'\u1E68': 'S',
|
|
|
'\u0218': 'S',
|
|
|
'\u015E': 'S',
|
|
|
'\u2C7E': 'S',
|
|
|
'\uA7A8': 'S',
|
|
|
'\uA784': 'S',
|
|
|
'\u24C9': 'T',
|
|
|
'\uFF34': 'T',
|
|
|
'\u1E6A': 'T',
|
|
|
'\u0164': 'T',
|
|
|
'\u1E6C': 'T',
|
|
|
'\u021A': 'T',
|
|
|
'\u0162': 'T',
|
|
|
'\u1E70': 'T',
|
|
|
'\u1E6E': 'T',
|
|
|
'\u0166': 'T',
|
|
|
'\u01AC': 'T',
|
|
|
'\u01AE': 'T',
|
|
|
'\u023E': 'T',
|
|
|
'\uA786': 'T',
|
|
|
'\uA728': 'TZ',
|
|
|
'\u24CA': 'U',
|
|
|
'\uFF35': 'U',
|
|
|
'\u00D9': 'U',
|
|
|
'\u00DA': 'U',
|
|
|
'\u00DB': 'U',
|
|
|
'\u0168': 'U',
|
|
|
'\u1E78': 'U',
|
|
|
'\u016A': 'U',
|
|
|
'\u1E7A': 'U',
|
|
|
'\u016C': 'U',
|
|
|
'\u00DC': 'U',
|
|
|
'\u01DB': 'U',
|
|
|
'\u01D7': 'U',
|
|
|
'\u01D5': 'U',
|
|
|
'\u01D9': 'U',
|
|
|
'\u1EE6': 'U',
|
|
|
'\u016E': 'U',
|
|
|
'\u0170': 'U',
|
|
|
'\u01D3': 'U',
|
|
|
'\u0214': 'U',
|
|
|
'\u0216': 'U',
|
|
|
'\u01AF': 'U',
|
|
|
'\u1EEA': 'U',
|
|
|
'\u1EE8': 'U',
|
|
|
'\u1EEE': 'U',
|
|
|
'\u1EEC': 'U',
|
|
|
'\u1EF0': 'U',
|
|
|
'\u1EE4': 'U',
|
|
|
'\u1E72': 'U',
|
|
|
'\u0172': 'U',
|
|
|
'\u1E76': 'U',
|
|
|
'\u1E74': 'U',
|
|
|
'\u0244': 'U',
|
|
|
'\u24CB': 'V',
|
|
|
'\uFF36': 'V',
|
|
|
'\u1E7C': 'V',
|
|
|
'\u1E7E': 'V',
|
|
|
'\u01B2': 'V',
|
|
|
'\uA75E': 'V',
|
|
|
'\u0245': 'V',
|
|
|
'\uA760': 'VY',
|
|
|
'\u24CC': 'W',
|
|
|
'\uFF37': 'W',
|
|
|
'\u1E80': 'W',
|
|
|
'\u1E82': 'W',
|
|
|
'\u0174': 'W',
|
|
|
'\u1E86': 'W',
|
|
|
'\u1E84': 'W',
|
|
|
'\u1E88': 'W',
|
|
|
'\u2C72': 'W',
|
|
|
'\u24CD': 'X',
|
|
|
'\uFF38': 'X',
|
|
|
'\u1E8A': 'X',
|
|
|
'\u1E8C': 'X',
|
|
|
'\u24CE': 'Y',
|
|
|
'\uFF39': 'Y',
|
|
|
'\u1EF2': 'Y',
|
|
|
'\u00DD': 'Y',
|
|
|
'\u0176': 'Y',
|
|
|
'\u1EF8': 'Y',
|
|
|
'\u0232': 'Y',
|
|
|
'\u1E8E': 'Y',
|
|
|
'\u0178': 'Y',
|
|
|
'\u1EF6': 'Y',
|
|
|
'\u1EF4': 'Y',
|
|
|
'\u01B3': 'Y',
|
|
|
'\u024E': 'Y',
|
|
|
'\u1EFE': 'Y',
|
|
|
'\u24CF': 'Z',
|
|
|
'\uFF3A': 'Z',
|
|
|
'\u0179': 'Z',
|
|
|
'\u1E90': 'Z',
|
|
|
'\u017B': 'Z',
|
|
|
'\u017D': 'Z',
|
|
|
'\u1E92': 'Z',
|
|
|
'\u1E94': 'Z',
|
|
|
'\u01B5': 'Z',
|
|
|
'\u0224': 'Z',
|
|
|
'\u2C7F': 'Z',
|
|
|
'\u2C6B': 'Z',
|
|
|
'\uA762': 'Z',
|
|
|
'\u24D0': 'a',
|
|
|
'\uFF41': 'a',
|
|
|
'\u1E9A': 'a',
|
|
|
'\u00E0': 'a',
|
|
|
'\u00E1': 'a',
|
|
|
'\u00E2': 'a',
|
|
|
'\u1EA7': 'a',
|
|
|
'\u1EA5': 'a',
|
|
|
'\u1EAB': 'a',
|
|
|
'\u1EA9': 'a',
|
|
|
'\u00E3': 'a',
|
|
|
'\u0101': 'a',
|
|
|
'\u0103': 'a',
|
|
|
'\u1EB1': 'a',
|
|
|
'\u1EAF': 'a',
|
|
|
'\u1EB5': 'a',
|
|
|
'\u1EB3': 'a',
|
|
|
'\u0227': 'a',
|
|
|
'\u01E1': 'a',
|
|
|
'\u00E4': 'a',
|
|
|
'\u01DF': 'a',
|
|
|
'\u1EA3': 'a',
|
|
|
'\u00E5': 'a',
|
|
|
'\u01FB': 'a',
|
|
|
'\u01CE': 'a',
|
|
|
'\u0201': 'a',
|
|
|
'\u0203': 'a',
|
|
|
'\u1EA1': 'a',
|
|
|
'\u1EAD': 'a',
|
|
|
'\u1EB7': 'a',
|
|
|
'\u1E01': 'a',
|
|
|
'\u0105': 'a',
|
|
|
'\u2C65': 'a',
|
|
|
'\u0250': 'a',
|
|
|
'\uA733': 'aa',
|
|
|
'\u00E6': 'ae',
|
|
|
'\u01FD': 'ae',
|
|
|
'\u01E3': 'ae',
|
|
|
'\uA735': 'ao',
|
|
|
'\uA737': 'au',
|
|
|
'\uA739': 'av',
|
|
|
'\uA73B': 'av',
|
|
|
'\uA73D': 'ay',
|
|
|
'\u24D1': 'b',
|
|
|
'\uFF42': 'b',
|
|
|
'\u1E03': 'b',
|
|
|
'\u1E05': 'b',
|
|
|
'\u1E07': 'b',
|
|
|
'\u0180': 'b',
|
|
|
'\u0183': 'b',
|
|
|
'\u0253': 'b',
|
|
|
'\u24D2': 'c',
|
|
|
'\uFF43': 'c',
|
|
|
'\u0107': 'c',
|
|
|
'\u0109': 'c',
|
|
|
'\u010B': 'c',
|
|
|
'\u010D': 'c',
|
|
|
'\u00E7': 'c',
|
|
|
'\u1E09': 'c',
|
|
|
'\u0188': 'c',
|
|
|
'\u023C': 'c',
|
|
|
'\uA73F': 'c',
|
|
|
'\u2184': 'c',
|
|
|
'\u24D3': 'd',
|
|
|
'\uFF44': 'd',
|
|
|
'\u1E0B': 'd',
|
|
|
'\u010F': 'd',
|
|
|
'\u1E0D': 'd',
|
|
|
'\u1E11': 'd',
|
|
|
'\u1E13': 'd',
|
|
|
'\u1E0F': 'd',
|
|
|
'\u0111': 'd',
|
|
|
'\u018C': 'd',
|
|
|
'\u0256': 'd',
|
|
|
'\u0257': 'd',
|
|
|
'\uA77A': 'd',
|
|
|
'\u01F3': 'dz',
|
|
|
'\u01C6': 'dz',
|
|
|
'\u24D4': 'e',
|
|
|
'\uFF45': 'e',
|
|
|
'\u00E8': 'e',
|
|
|
'\u00E9': 'e',
|
|
|
'\u00EA': 'e',
|
|
|
'\u1EC1': 'e',
|
|
|
'\u1EBF': 'e',
|
|
|
'\u1EC5': 'e',
|
|
|
'\u1EC3': 'e',
|
|
|
'\u1EBD': 'e',
|
|
|
'\u0113': 'e',
|
|
|
'\u1E15': 'e',
|
|
|
'\u1E17': 'e',
|
|
|
'\u0115': 'e',
|
|
|
'\u0117': 'e',
|
|
|
'\u00EB': 'e',
|
|
|
'\u1EBB': 'e',
|
|
|
'\u011B': 'e',
|
|
|
'\u0205': 'e',
|
|
|
'\u0207': 'e',
|
|
|
'\u1EB9': 'e',
|
|
|
'\u1EC7': 'e',
|
|
|
'\u0229': 'e',
|
|
|
'\u1E1D': 'e',
|
|
|
'\u0119': 'e',
|
|
|
'\u1E19': 'e',
|
|
|
'\u1E1B': 'e',
|
|
|
'\u0247': 'e',
|
|
|
'\u025B': 'e',
|
|
|
'\u01DD': 'e',
|
|
|
'\u24D5': 'f',
|
|
|
'\uFF46': 'f',
|
|
|
'\u1E1F': 'f',
|
|
|
'\u0192': 'f',
|
|
|
'\uA77C': 'f',
|
|
|
'\u24D6': 'g',
|
|
|
'\uFF47': 'g',
|
|
|
'\u01F5': 'g',
|
|
|
'\u011D': 'g',
|
|
|
'\u1E21': 'g',
|
|
|
'\u011F': 'g',
|
|
|
'\u0121': 'g',
|
|
|
'\u01E7': 'g',
|
|
|
'\u0123': 'g',
|
|
|
'\u01E5': 'g',
|
|
|
'\u0260': 'g',
|
|
|
'\uA7A1': 'g',
|
|
|
'\u1D79': 'g',
|
|
|
'\uA77F': 'g',
|
|
|
'\u24D7': 'h',
|
|
|
'\uFF48': 'h',
|
|
|
'\u0125': 'h',
|
|
|
'\u1E23': 'h',
|
|
|
'\u1E27': 'h',
|
|
|
'\u021F': 'h',
|
|
|
'\u1E25': 'h',
|
|
|
'\u1E29': 'h',
|
|
|
'\u1E2B': 'h',
|
|
|
'\u1E96': 'h',
|
|
|
'\u0127': 'h',
|
|
|
'\u2C68': 'h',
|
|
|
'\u2C76': 'h',
|
|
|
'\u0265': 'h',
|
|
|
'\u0195': 'hv',
|
|
|
'\u24D8': 'i',
|
|
|
'\uFF49': 'i',
|
|
|
'\u00EC': 'i',
|
|
|
'\u00ED': 'i',
|
|
|
'\u00EE': 'i',
|
|
|
'\u0129': 'i',
|
|
|
'\u012B': 'i',
|
|
|
'\u012D': 'i',
|
|
|
'\u00EF': 'i',
|
|
|
'\u1E2F': 'i',
|
|
|
'\u1EC9': 'i',
|
|
|
'\u01D0': 'i',
|
|
|
'\u0209': 'i',
|
|
|
'\u020B': 'i',
|
|
|
'\u1ECB': 'i',
|
|
|
'\u012F': 'i',
|
|
|
'\u1E2D': 'i',
|
|
|
'\u0268': 'i',
|
|
|
'\u0131': 'i',
|
|
|
'\u24D9': 'j',
|
|
|
'\uFF4A': 'j',
|
|
|
'\u0135': 'j',
|
|
|
'\u01F0': 'j',
|
|
|
'\u0249': 'j',
|
|
|
'\u24DA': 'k',
|
|
|
'\uFF4B': 'k',
|
|
|
'\u1E31': 'k',
|
|
|
'\u01E9': 'k',
|
|
|
'\u1E33': 'k',
|
|
|
'\u0137': 'k',
|
|
|
'\u1E35': 'k',
|
|
|
'\u0199': 'k',
|
|
|
'\u2C6A': 'k',
|
|
|
'\uA741': 'k',
|
|
|
'\uA743': 'k',
|
|
|
'\uA745': 'k',
|
|
|
'\uA7A3': 'k',
|
|
|
'\u24DB': 'l',
|
|
|
'\uFF4C': 'l',
|
|
|
'\u0140': 'l',
|
|
|
'\u013A': 'l',
|
|
|
'\u013E': 'l',
|
|
|
'\u1E37': 'l',
|
|
|
'\u1E39': 'l',
|
|
|
'\u013C': 'l',
|
|
|
'\u1E3D': 'l',
|
|
|
'\u1E3B': 'l',
|
|
|
'\u017F': 'l',
|
|
|
'\u0142': 'l',
|
|
|
'\u019A': 'l',
|
|
|
'\u026B': 'l',
|
|
|
'\u2C61': 'l',
|
|
|
'\uA749': 'l',
|
|
|
'\uA781': 'l',
|
|
|
'\uA747': 'l',
|
|
|
'\u01C9': 'lj',
|
|
|
'\u24DC': 'm',
|
|
|
'\uFF4D': 'm',
|
|
|
'\u1E3F': 'm',
|
|
|
'\u1E41': 'm',
|
|
|
'\u1E43': 'm',
|
|
|
'\u0271': 'm',
|
|
|
'\u026F': 'm',
|
|
|
'\u24DD': 'n',
|
|
|
'\uFF4E': 'n',
|
|
|
'\u01F9': 'n',
|
|
|
'\u0144': 'n',
|
|
|
'\u00F1': 'n',
|
|
|
'\u1E45': 'n',
|
|
|
'\u0148': 'n',
|
|
|
'\u1E47': 'n',
|
|
|
'\u0146': 'n',
|
|
|
'\u1E4B': 'n',
|
|
|
'\u1E49': 'n',
|
|
|
'\u019E': 'n',
|
|
|
'\u0272': 'n',
|
|
|
'\u0149': 'n',
|
|
|
'\uA791': 'n',
|
|
|
'\uA7A5': 'n',
|
|
|
'\u01CC': 'nj',
|
|
|
'\u24DE': 'o',
|
|
|
'\uFF4F': 'o',
|
|
|
'\u00F2': 'o',
|
|
|
'\u00F3': 'o',
|
|
|
'\u00F4': 'o',
|
|
|
'\u1ED3': 'o',
|
|
|
'\u1ED1': 'o',
|
|
|
'\u1ED7': 'o',
|
|
|
'\u1ED5': 'o',
|
|
|
'\u00F5': 'o',
|
|
|
'\u1E4D': 'o',
|
|
|
'\u022D': 'o',
|
|
|
'\u1E4F': 'o',
|
|
|
'\u014D': 'o',
|
|
|
'\u1E51': 'o',
|
|
|
'\u1E53': 'o',
|
|
|
'\u014F': 'o',
|
|
|
'\u022F': 'o',
|
|
|
'\u0231': 'o',
|
|
|
'\u00F6': 'o',
|
|
|
'\u022B': 'o',
|
|
|
'\u1ECF': 'o',
|
|
|
'\u0151': 'o',
|
|
|
'\u01D2': 'o',
|
|
|
'\u020D': 'o',
|
|
|
'\u020F': 'o',
|
|
|
'\u01A1': 'o',
|
|
|
'\u1EDD': 'o',
|
|
|
'\u1EDB': 'o',
|
|
|
'\u1EE1': 'o',
|
|
|
'\u1EDF': 'o',
|
|
|
'\u1EE3': 'o',
|
|
|
'\u1ECD': 'o',
|
|
|
'\u1ED9': 'o',
|
|
|
'\u01EB': 'o',
|
|
|
'\u01ED': 'o',
|
|
|
'\u00F8': 'o',
|
|
|
'\u01FF': 'o',
|
|
|
'\u0254': 'o',
|
|
|
'\uA74B': 'o',
|
|
|
'\uA74D': 'o',
|
|
|
'\u0275': 'o',
|
|
|
'\u0153': 'oe',
|
|
|
'\u01A3': 'oi',
|
|
|
'\u0223': 'ou',
|
|
|
'\uA74F': 'oo',
|
|
|
'\u24DF': 'p',
|
|
|
'\uFF50': 'p',
|
|
|
'\u1E55': 'p',
|
|
|
'\u1E57': 'p',
|
|
|
'\u01A5': 'p',
|
|
|
'\u1D7D': 'p',
|
|
|
'\uA751': 'p',
|
|
|
'\uA753': 'p',
|
|
|
'\uA755': 'p',
|
|
|
'\u24E0': 'q',
|
|
|
'\uFF51': 'q',
|
|
|
'\u024B': 'q',
|
|
|
'\uA757': 'q',
|
|
|
'\uA759': 'q',
|
|
|
'\u24E1': 'r',
|
|
|
'\uFF52': 'r',
|
|
|
'\u0155': 'r',
|
|
|
'\u1E59': 'r',
|
|
|
'\u0159': 'r',
|
|
|
'\u0211': 'r',
|
|
|
'\u0213': 'r',
|
|
|
'\u1E5B': 'r',
|
|
|
'\u1E5D': 'r',
|
|
|
'\u0157': 'r',
|
|
|
'\u1E5F': 'r',
|
|
|
'\u024D': 'r',
|
|
|
'\u027D': 'r',
|
|
|
'\uA75B': 'r',
|
|
|
'\uA7A7': 'r',
|
|
|
'\uA783': 'r',
|
|
|
'\u24E2': 's',
|
|
|
'\uFF53': 's',
|
|
|
'\u00DF': 's',
|
|
|
'\u015B': 's',
|
|
|
'\u1E65': 's',
|
|
|
'\u015D': 's',
|
|
|
'\u1E61': 's',
|
|
|
'\u0161': 's',
|
|
|
'\u1E67': 's',
|
|
|
'\u1E63': 's',
|
|
|
'\u1E69': 's',
|
|
|
'\u0219': 's',
|
|
|
'\u015F': 's',
|
|
|
'\u023F': 's',
|
|
|
'\uA7A9': 's',
|
|
|
'\uA785': 's',
|
|
|
'\u1E9B': 's',
|
|
|
'\u24E3': 't',
|
|
|
'\uFF54': 't',
|
|
|
'\u1E6B': 't',
|
|
|
'\u1E97': 't',
|
|
|
'\u0165': 't',
|
|
|
'\u1E6D': 't',
|
|
|
'\u021B': 't',
|
|
|
'\u0163': 't',
|
|
|
'\u1E71': 't',
|
|
|
'\u1E6F': 't',
|
|
|
'\u0167': 't',
|
|
|
'\u01AD': 't',
|
|
|
'\u0288': 't',
|
|
|
'\u2C66': 't',
|
|
|
'\uA787': 't',
|
|
|
'\uA729': 'tz',
|
|
|
'\u24E4': 'u',
|
|
|
'\uFF55': 'u',
|
|
|
'\u00F9': 'u',
|
|
|
'\u00FA': 'u',
|
|
|
'\u00FB': 'u',
|
|
|
'\u0169': 'u',
|
|
|
'\u1E79': 'u',
|
|
|
'\u016B': 'u',
|
|
|
'\u1E7B': 'u',
|
|
|
'\u016D': 'u',
|
|
|
'\u00FC': 'u',
|
|
|
'\u01DC': 'u',
|
|
|
'\u01D8': 'u',
|
|
|
'\u01D6': 'u',
|
|
|
'\u01DA': 'u',
|
|
|
'\u1EE7': 'u',
|
|
|
'\u016F': 'u',
|
|
|
'\u0171': 'u',
|
|
|
'\u01D4': 'u',
|
|
|
'\u0215': 'u',
|
|
|
'\u0217': 'u',
|
|
|
'\u01B0': 'u',
|
|
|
'\u1EEB': 'u',
|
|
|
'\u1EE9': 'u',
|
|
|
'\u1EEF': 'u',
|
|
|
'\u1EED': 'u',
|
|
|
'\u1EF1': 'u',
|
|
|
'\u1EE5': 'u',
|
|
|
'\u1E73': 'u',
|
|
|
'\u0173': 'u',
|
|
|
'\u1E77': 'u',
|
|
|
'\u1E75': 'u',
|
|
|
'\u0289': 'u',
|
|
|
'\u24E5': 'v',
|
|
|
'\uFF56': 'v',
|
|
|
'\u1E7D': 'v',
|
|
|
'\u1E7F': 'v',
|
|
|
'\u028B': 'v',
|
|
|
'\uA75F': 'v',
|
|
|
'\u028C': 'v',
|
|
|
'\uA761': 'vy',
|
|
|
'\u24E6': 'w',
|
|
|
'\uFF57': 'w',
|
|
|
'\u1E81': 'w',
|
|
|
'\u1E83': 'w',
|
|
|
'\u0175': 'w',
|
|
|
'\u1E87': 'w',
|
|
|
'\u1E85': 'w',
|
|
|
'\u1E98': 'w',
|
|
|
'\u1E89': 'w',
|
|
|
'\u2C73': 'w',
|
|
|
'\u24E7': 'x',
|
|
|
'\uFF58': 'x',
|
|
|
'\u1E8B': 'x',
|
|
|
'\u1E8D': 'x',
|
|
|
'\u24E8': 'y',
|
|
|
'\uFF59': 'y',
|
|
|
'\u1EF3': 'y',
|
|
|
'\u00FD': 'y',
|
|
|
'\u0177': 'y',
|
|
|
'\u1EF9': 'y',
|
|
|
'\u0233': 'y',
|
|
|
'\u1E8F': 'y',
|
|
|
'\u00FF': 'y',
|
|
|
'\u1EF7': 'y',
|
|
|
'\u1E99': 'y',
|
|
|
'\u1EF5': 'y',
|
|
|
'\u01B4': 'y',
|
|
|
'\u024F': 'y',
|
|
|
'\u1EFF': 'y',
|
|
|
'\u24E9': 'z',
|
|
|
'\uFF5A': 'z',
|
|
|
'\u017A': 'z',
|
|
|
'\u1E91': 'z',
|
|
|
'\u017C': 'z',
|
|
|
'\u017E': 'z',
|
|
|
'\u1E93': 'z',
|
|
|
'\u1E95': 'z',
|
|
|
'\u01B6': 'z',
|
|
|
'\u0225': 'z',
|
|
|
'\u0240': 'z',
|
|
|
'\u2C6C': 'z',
|
|
|
'\uA763': 'z',
|
|
|
'\u0386': '\u0391',
|
|
|
'\u0388': '\u0395',
|
|
|
'\u0389': '\u0397',
|
|
|
'\u038A': '\u0399',
|
|
|
'\u03AA': '\u0399',
|
|
|
'\u038C': '\u039F',
|
|
|
'\u038E': '\u03A5',
|
|
|
'\u03AB': '\u03A5',
|
|
|
'\u038F': '\u03A9',
|
|
|
'\u03AC': '\u03B1',
|
|
|
'\u03AD': '\u03B5',
|
|
|
'\u03AE': '\u03B7',
|
|
|
'\u03AF': '\u03B9',
|
|
|
'\u03CA': '\u03B9',
|
|
|
'\u0390': '\u03B9',
|
|
|
'\u03CC': '\u03BF',
|
|
|
'\u03CD': '\u03C5',
|
|
|
'\u03CB': '\u03C5',
|
|
|
'\u03B0': '\u03C5',
|
|
|
'\u03CE': '\u03C9',
|
|
|
'\u03C2': '\u03C3',
|
|
|
'\u2019': '\''
|
|
|
};
|
|
|
|
|
|
return diacritics;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/data/base',[
|
|
|
'../utils'
|
|
|
], function (Utils) {
|
|
|
function BaseAdapter ($element, options) {
|
|
|
BaseAdapter.__super__.constructor.call(this);
|
|
|
}
|
|
|
|
|
|
Utils.Extend(BaseAdapter, Utils.Observable);
|
|
|
|
|
|
BaseAdapter.prototype.current = function (callback) {
|
|
|
throw new Error('The `current` method must be defined in child classes.');
|
|
|
};
|
|
|
|
|
|
BaseAdapter.prototype.query = function (params, callback) {
|
|
|
throw new Error('The `query` method must be defined in child classes.');
|
|
|
};
|
|
|
|
|
|
BaseAdapter.prototype.bind = function (container, $container) {
|
|
|
// Can be implemented in subclasses
|
|
|
};
|
|
|
|
|
|
BaseAdapter.prototype.destroy = function () {
|
|
|
// Can be implemented in subclasses
|
|
|
};
|
|
|
|
|
|
BaseAdapter.prototype.generateResultId = function (container, data) {
|
|
|
var id = container.id + '-result-';
|
|
|
|
|
|
id += Utils.generateChars(4);
|
|
|
|
|
|
if (data.id != null) {
|
|
|
id += '-' + data.id.toString();
|
|
|
} else {
|
|
|
id += '-' + Utils.generateChars(4);
|
|
|
}
|
|
|
return id;
|
|
|
};
|
|
|
|
|
|
return BaseAdapter;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/data/select',[
|
|
|
'./base',
|
|
|
'../utils',
|
|
|
'jquery'
|
|
|
], function (BaseAdapter, Utils, $) {
|
|
|
function SelectAdapter ($element, options) {
|
|
|
this.$element = $element;
|
|
|
this.options = options;
|
|
|
|
|
|
SelectAdapter.__super__.constructor.call(this);
|
|
|
}
|
|
|
|
|
|
Utils.Extend(SelectAdapter, BaseAdapter);
|
|
|
|
|
|
SelectAdapter.prototype.current = function (callback) {
|
|
|
var self = this;
|
|
|
|
|
|
var data = Array.prototype.map.call(
|
|
|
this.$element[0].querySelectorAll(':checked'),
|
|
|
function (selectedElement) {
|
|
|
return self.item($(selectedElement));
|
|
|
}
|
|
|
);
|
|
|
|
|
|
callback(data);
|
|
|
};
|
|
|
|
|
|
SelectAdapter.prototype.select = function (data) {
|
|
|
var self = this;
|
|
|
|
|
|
data.selected = true;
|
|
|
|
|
|
// If data.element is a DOM node, use it instead
|
|
|
if (
|
|
|
data.element != null && data.element.tagName.toLowerCase() === 'option'
|
|
|
) {
|
|
|
data.element.selected = true;
|
|
|
|
|
|
this.$element.trigger('input').trigger('change');
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (this.$element.prop('multiple')) {
|
|
|
this.current(function (currentData) {
|
|
|
var val = [];
|
|
|
|
|
|
data = [data];
|
|
|
data.push.apply(data, currentData);
|
|
|
|
|
|
for (var d = 0; d < data.length; d++) {
|
|
|
var id = data[d].id;
|
|
|
|
|
|
if (val.indexOf(id) === -1) {
|
|
|
val.push(id);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
self.$element.val(val);
|
|
|
self.$element.trigger('input').trigger('change');
|
|
|
});
|
|
|
} else {
|
|
|
var val = data.id;
|
|
|
|
|
|
this.$element.val(val);
|
|
|
this.$element.trigger('input').trigger('change');
|
|
|
}
|
|
|
};
|
|
|
|
|
|
SelectAdapter.prototype.unselect = function (data) {
|
|
|
var self = this;
|
|
|
|
|
|
if (!this.$element.prop('multiple')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
data.selected = false;
|
|
|
|
|
|
if (
|
|
|
data.element != null &&
|
|
|
data.element.tagName.toLowerCase() === 'option'
|
|
|
) {
|
|
|
data.element.selected = false;
|
|
|
|
|
|
this.$element.trigger('input').trigger('change');
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
this.current(function (currentData) {
|
|
|
var val = [];
|
|
|
|
|
|
for (var d = 0; d < currentData.length; d++) {
|
|
|
var id = currentData[d].id;
|
|
|
|
|
|
if (id !== data.id && val.indexOf(id) === -1) {
|
|
|
val.push(id);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
self.$element.val(val);
|
|
|
|
|
|
self.$element.trigger('input').trigger('change');
|
|
|
});
|
|
|
};
|
|
|
|
|
|
SelectAdapter.prototype.bind = function (container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
this.container = container;
|
|
|
|
|
|
container.on('select', function (params) {
|
|
|
self.select(params.data);
|
|
|
});
|
|
|
|
|
|
container.on('unselect', function (params) {
|
|
|
self.unselect(params.data);
|
|
|
});
|
|
|
};
|
|
|
|
|
|
SelectAdapter.prototype.destroy = function () {
|
|
|
// Remove anything added to child elements
|
|
|
this.$element.find('*').each(function () {
|
|
|
// Remove any custom data set by Select2
|
|
|
Utils.RemoveData(this);
|
|
|
});
|
|
|
};
|
|
|
|
|
|
SelectAdapter.prototype.query = function (params, callback) {
|
|
|
var data = [];
|
|
|
var self = this;
|
|
|
|
|
|
var $options = this.$element.children();
|
|
|
|
|
|
$options.each(function () {
|
|
|
if (
|
|
|
this.tagName.toLowerCase() !== 'option' &&
|
|
|
this.tagName.toLowerCase() !== 'optgroup'
|
|
|
) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var $option = $(this);
|
|
|
|
|
|
var option = self.item($option);
|
|
|
|
|
|
var matches = self.matches(params, option);
|
|
|
|
|
|
if (matches !== null) {
|
|
|
data.push(matches);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
callback({
|
|
|
results: data
|
|
|
});
|
|
|
};
|
|
|
|
|
|
SelectAdapter.prototype.addOptions = function ($options) {
|
|
|
this.$element.append($options);
|
|
|
};
|
|
|
|
|
|
SelectAdapter.prototype.option = function (data) {
|
|
|
var option;
|
|
|
|
|
|
if (data.children) {
|
|
|
option = document.createElement('optgroup');
|
|
|
option.label = data.text;
|
|
|
} else {
|
|
|
option = document.createElement('option');
|
|
|
|
|
|
if (option.textContent !== undefined) {
|
|
|
option.textContent = data.text;
|
|
|
} else {
|
|
|
option.innerText = data.text;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (data.id !== undefined) {
|
|
|
option.value = data.id;
|
|
|
}
|
|
|
|
|
|
if (data.disabled) {
|
|
|
option.disabled = true;
|
|
|
}
|
|
|
|
|
|
if (data.selected) {
|
|
|
option.selected = true;
|
|
|
}
|
|
|
|
|
|
if (data.title) {
|
|
|
option.title = data.title;
|
|
|
}
|
|
|
|
|
|
var normalizedData = this._normalizeItem(data);
|
|
|
normalizedData.element = option;
|
|
|
|
|
|
// Override the option's data with the combined data
|
|
|
Utils.StoreData(option, 'data', normalizedData);
|
|
|
|
|
|
return $(option);
|
|
|
};
|
|
|
|
|
|
SelectAdapter.prototype.item = function ($option) {
|
|
|
var data = {};
|
|
|
|
|
|
data = Utils.GetData($option[0], 'data');
|
|
|
|
|
|
if (data != null) {
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
var option = $option[0];
|
|
|
|
|
|
if (option.tagName.toLowerCase() === 'option') {
|
|
|
data = {
|
|
|
id: $option.val(),
|
|
|
text: $option.text(),
|
|
|
disabled: $option.prop('disabled'),
|
|
|
selected: $option.prop('selected'),
|
|
|
title: $option.prop('title')
|
|
|
};
|
|
|
} else if (option.tagName.toLowerCase() === 'optgroup') {
|
|
|
data = {
|
|
|
text: $option.prop('label'),
|
|
|
children: [],
|
|
|
title: $option.prop('title')
|
|
|
};
|
|
|
|
|
|
var $children = $option.children('option');
|
|
|
var children = [];
|
|
|
|
|
|
for (var c = 0; c < $children.length; c++) {
|
|
|
var $child = $($children[c]);
|
|
|
|
|
|
var child = this.item($child);
|
|
|
|
|
|
children.push(child);
|
|
|
}
|
|
|
|
|
|
data.children = children;
|
|
|
}
|
|
|
|
|
|
data = this._normalizeItem(data);
|
|
|
data.element = $option[0];
|
|
|
|
|
|
Utils.StoreData($option[0], 'data', data);
|
|
|
|
|
|
return data;
|
|
|
};
|
|
|
|
|
|
SelectAdapter.prototype._normalizeItem = function (item) {
|
|
|
if (item !== Object(item)) {
|
|
|
item = {
|
|
|
id: item,
|
|
|
text: item
|
|
|
};
|
|
|
}
|
|
|
|
|
|
item = $.extend({}, {
|
|
|
text: ''
|
|
|
}, item);
|
|
|
|
|
|
var defaults = {
|
|
|
selected: false,
|
|
|
disabled: false
|
|
|
};
|
|
|
|
|
|
if (item.id != null) {
|
|
|
item.id = item.id.toString();
|
|
|
}
|
|
|
|
|
|
if (item.text != null) {
|
|
|
item.text = item.text.toString();
|
|
|
}
|
|
|
|
|
|
if (item._resultId == null && item.id && this.container != null) {
|
|
|
item._resultId = this.generateResultId(this.container, item);
|
|
|
}
|
|
|
|
|
|
return $.extend({}, defaults, item);
|
|
|
};
|
|
|
|
|
|
SelectAdapter.prototype.matches = function (params, data) {
|
|
|
var matcher = this.options.get('matcher');
|
|
|
|
|
|
return matcher(params, data);
|
|
|
};
|
|
|
|
|
|
return SelectAdapter;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/data/array',[
|
|
|
'./select',
|
|
|
'../utils',
|
|
|
'jquery'
|
|
|
], function (SelectAdapter, Utils, $) {
|
|
|
function ArrayAdapter ($element, options) {
|
|
|
this._dataToConvert = options.get('data') || [];
|
|
|
|
|
|
ArrayAdapter.__super__.constructor.call(this, $element, options);
|
|
|
}
|
|
|
|
|
|
Utils.Extend(ArrayAdapter, SelectAdapter);
|
|
|
|
|
|
ArrayAdapter.prototype.bind = function (container, $container) {
|
|
|
ArrayAdapter.__super__.bind.call(this, container, $container);
|
|
|
|
|
|
this.addOptions(this.convertToOptions(this._dataToConvert));
|
|
|
};
|
|
|
|
|
|
ArrayAdapter.prototype.select = function (data) {
|
|
|
var $option = this.$element.find('option').filter(function (i, elm) {
|
|
|
return elm.value == data.id.toString();
|
|
|
});
|
|
|
|
|
|
if ($option.length === 0) {
|
|
|
$option = this.option(data);
|
|
|
|
|
|
this.addOptions($option);
|
|
|
}
|
|
|
|
|
|
ArrayAdapter.__super__.select.call(this, data);
|
|
|
};
|
|
|
|
|
|
ArrayAdapter.prototype.convertToOptions = function (data) {
|
|
|
var self = this;
|
|
|
|
|
|
var $existing = this.$element.find('option');
|
|
|
var existingIds = $existing.map(function () {
|
|
|
return self.item($(this)).id;
|
|
|
}).get();
|
|
|
|
|
|
var $options = [];
|
|
|
|
|
|
// Filter out all items except for the one passed in the argument
|
|
|
function onlyItem (item) {
|
|
|
return function () {
|
|
|
return $(this).val() == item.id;
|
|
|
};
|
|
|
}
|
|
|
|
|
|
for (var d = 0; d < data.length; d++) {
|
|
|
var item = this._normalizeItem(data[d]);
|
|
|
|
|
|
// Skip items which were pre-loaded, only merge the data
|
|
|
if (existingIds.indexOf(item.id) >= 0) {
|
|
|
var $existingOption = $existing.filter(onlyItem(item));
|
|
|
|
|
|
var existingData = this.item($existingOption);
|
|
|
var newData = $.extend(true, {}, item, existingData);
|
|
|
|
|
|
var $newOption = this.option(newData);
|
|
|
|
|
|
$existingOption.replaceWith($newOption);
|
|
|
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
var $option = this.option(item);
|
|
|
|
|
|
if (item.children) {
|
|
|
var $children = this.convertToOptions(item.children);
|
|
|
|
|
|
$option.append($children);
|
|
|
}
|
|
|
|
|
|
$options.push($option);
|
|
|
}
|
|
|
|
|
|
return $options;
|
|
|
};
|
|
|
|
|
|
return ArrayAdapter;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/data/ajax',[
|
|
|
'./array',
|
|
|
'../utils',
|
|
|
'jquery'
|
|
|
], function (ArrayAdapter, Utils, $) {
|
|
|
function AjaxAdapter ($element, options) {
|
|
|
this.ajaxOptions = this._applyDefaults(options.get('ajax'));
|
|
|
|
|
|
if (this.ajaxOptions.processResults != null) {
|
|
|
this.processResults = this.ajaxOptions.processResults;
|
|
|
}
|
|
|
|
|
|
AjaxAdapter.__super__.constructor.call(this, $element, options);
|
|
|
}
|
|
|
|
|
|
Utils.Extend(AjaxAdapter, ArrayAdapter);
|
|
|
|
|
|
AjaxAdapter.prototype._applyDefaults = function (options) {
|
|
|
var defaults = {
|
|
|
data: function (params) {
|
|
|
return $.extend({}, params, {
|
|
|
q: params.term
|
|
|
});
|
|
|
},
|
|
|
transport: function (params, success, failure) {
|
|
|
var $request = $.ajax(params);
|
|
|
|
|
|
$request.then(success);
|
|
|
$request.fail(failure);
|
|
|
|
|
|
return $request;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
return $.extend({}, defaults, options, true);
|
|
|
};
|
|
|
|
|
|
AjaxAdapter.prototype.processResults = function (results) {
|
|
|
return results;
|
|
|
};
|
|
|
|
|
|
AjaxAdapter.prototype.query = function (params, callback) {
|
|
|
var matches = [];
|
|
|
var self = this;
|
|
|
|
|
|
if (this._request != null) {
|
|
|
// JSONP requests cannot always be aborted
|
|
|
if (typeof this._request.abort === 'function') {
|
|
|
this._request.abort();
|
|
|
}
|
|
|
|
|
|
this._request = null;
|
|
|
}
|
|
|
|
|
|
var options = $.extend({
|
|
|
type: 'GET'
|
|
|
}, this.ajaxOptions);
|
|
|
|
|
|
if (typeof options.url === 'function') {
|
|
|
options.url = options.url.call(this.$element, params);
|
|
|
}
|
|
|
|
|
|
if (typeof options.data === 'function') {
|
|
|
options.data = options.data.call(this.$element, params);
|
|
|
}
|
|
|
|
|
|
function request () {
|
|
|
var $request = options.transport(options, function (data) {
|
|
|
var results = self.processResults(data, params);
|
|
|
|
|
|
if (self.options.get('debug') && window.console && console.error) {
|
|
|
// Check to make sure that the response included a `results` key.
|
|
|
if (!results || !results.results || !Array.isArray(results.results)) {
|
|
|
console.error(
|
|
|
'Select2: The AJAX results did not return an array in the ' +
|
|
|
'`results` key of the response.'
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
callback(results);
|
|
|
}, function () {
|
|
|
// Attempt to detect if a request was aborted
|
|
|
// Only works if the transport exposes a status property
|
|
|
if ('status' in $request &&
|
|
|
($request.status === 0 || $request.status === '0')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
self.trigger('results:message', {
|
|
|
message: 'errorLoading'
|
|
|
});
|
|
|
});
|
|
|
|
|
|
self._request = $request;
|
|
|
}
|
|
|
|
|
|
if (this.ajaxOptions.delay && params.term != null) {
|
|
|
if (this._queryTimeout) {
|
|
|
window.clearTimeout(this._queryTimeout);
|
|
|
}
|
|
|
|
|
|
this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);
|
|
|
} else {
|
|
|
request();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
return AjaxAdapter;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/data/tags',[
|
|
|
'jquery'
|
|
|
], function ($) {
|
|
|
function Tags (decorated, $element, options) {
|
|
|
var tags = options.get('tags');
|
|
|
|
|
|
var createTag = options.get('createTag');
|
|
|
|
|
|
if (createTag !== undefined) {
|
|
|
this.createTag = createTag;
|
|
|
}
|
|
|
|
|
|
var insertTag = options.get('insertTag');
|
|
|
|
|
|
if (insertTag !== undefined) {
|
|
|
this.insertTag = insertTag;
|
|
|
}
|
|
|
|
|
|
decorated.call(this, $element, options);
|
|
|
|
|
|
if (Array.isArray(tags)) {
|
|
|
for (var t = 0; t < tags.length; t++) {
|
|
|
var tag = tags[t];
|
|
|
var item = this._normalizeItem(tag);
|
|
|
|
|
|
var $option = this.option(item);
|
|
|
|
|
|
this.$element.append($option);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Tags.prototype.query = function (decorated, params, callback) {
|
|
|
var self = this;
|
|
|
|
|
|
this._removeOldTags();
|
|
|
|
|
|
if (params.term == null || params.page != null) {
|
|
|
decorated.call(this, params, callback);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
function wrapper (obj, child) {
|
|
|
var data = obj.results;
|
|
|
|
|
|
for (var i = 0; i < data.length; i++) {
|
|
|
var option = data[i];
|
|
|
|
|
|
var checkChildren = (
|
|
|
option.children != null &&
|
|
|
!wrapper({
|
|
|
results: option.children
|
|
|
}, true)
|
|
|
);
|
|
|
|
|
|
var optionText = (option.text || '').toUpperCase();
|
|
|
var paramsTerm = (params.term || '').toUpperCase();
|
|
|
|
|
|
var checkText = optionText === paramsTerm;
|
|
|
|
|
|
if (checkText || checkChildren) {
|
|
|
if (child) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
obj.data = data;
|
|
|
callback(obj);
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (child) {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
var tag = self.createTag(params);
|
|
|
|
|
|
if (tag != null) {
|
|
|
var $option = self.option(tag);
|
|
|
$option.attr('data-select2-tag', 'true');
|
|
|
|
|
|
self.addOptions([$option]);
|
|
|
|
|
|
self.insertTag(data, tag);
|
|
|
}
|
|
|
|
|
|
obj.results = data;
|
|
|
|
|
|
callback(obj);
|
|
|
}
|
|
|
|
|
|
decorated.call(this, params, wrapper);
|
|
|
};
|
|
|
|
|
|
Tags.prototype.createTag = function (decorated, params) {
|
|
|
if (params.term == null) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
var term = params.term.trim();
|
|
|
|
|
|
if (term === '') {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
return {
|
|
|
id: term,
|
|
|
text: term
|
|
|
};
|
|
|
};
|
|
|
|
|
|
Tags.prototype.insertTag = function (_, data, tag) {
|
|
|
data.unshift(tag);
|
|
|
};
|
|
|
|
|
|
Tags.prototype._removeOldTags = function (_) {
|
|
|
var $options = this.$element.find('option[data-select2-tag]');
|
|
|
|
|
|
$options.each(function () {
|
|
|
if (this.selected) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$(this).remove();
|
|
|
});
|
|
|
};
|
|
|
|
|
|
return Tags;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/data/tokenizer',[
|
|
|
'jquery'
|
|
|
], function ($) {
|
|
|
function Tokenizer (decorated, $element, options) {
|
|
|
var tokenizer = options.get('tokenizer');
|
|
|
|
|
|
if (tokenizer !== undefined) {
|
|
|
this.tokenizer = tokenizer;
|
|
|
}
|
|
|
|
|
|
decorated.call(this, $element, options);
|
|
|
}
|
|
|
|
|
|
Tokenizer.prototype.bind = function (decorated, container, $container) {
|
|
|
decorated.call(this, container, $container);
|
|
|
|
|
|
this.$search = container.dropdown.$search || container.selection.$search ||
|
|
|
$container.find('.select2-search__field');
|
|
|
};
|
|
|
|
|
|
Tokenizer.prototype.query = function (decorated, params, callback) {
|
|
|
var self = this;
|
|
|
|
|
|
function createAndSelect (data) {
|
|
|
// Normalize the data object so we can use it for checks
|
|
|
var item = self._normalizeItem(data);
|
|
|
|
|
|
// Check if the data object already exists as a tag
|
|
|
// Select it if it doesn't
|
|
|
var $existingOptions = self.$element.find('option').filter(function () {
|
|
|
return $(this).val() === item.id;
|
|
|
});
|
|
|
|
|
|
// If an existing option wasn't found for it, create the option
|
|
|
if (!$existingOptions.length) {
|
|
|
var $option = self.option(item);
|
|
|
$option.attr('data-select2-tag', true);
|
|
|
|
|
|
self._removeOldTags();
|
|
|
self.addOptions([$option]);
|
|
|
}
|
|
|
|
|
|
// Select the item, now that we know there is an option for it
|
|
|
select(item);
|
|
|
}
|
|
|
|
|
|
function select (data) {
|
|
|
self.trigger('select', {
|
|
|
data: data
|
|
|
});
|
|
|
}
|
|
|
|
|
|
params.term = params.term || '';
|
|
|
|
|
|
var tokenData = this.tokenizer(params, this.options, createAndSelect);
|
|
|
|
|
|
if (tokenData.term !== params.term) {
|
|
|
// Replace the search term if we have the search box
|
|
|
if (this.$search.length) {
|
|
|
this.$search.val(tokenData.term);
|
|
|
this.$search.trigger('focus');
|
|
|
}
|
|
|
|
|
|
params.term = tokenData.term;
|
|
|
}
|
|
|
|
|
|
decorated.call(this, params, callback);
|
|
|
};
|
|
|
|
|
|
Tokenizer.prototype.tokenizer = function (_, params, options, callback) {
|
|
|
var separators = options.get('tokenSeparators') || [];
|
|
|
var term = params.term;
|
|
|
var i = 0;
|
|
|
|
|
|
var createTag = this.createTag || function (params) {
|
|
|
return {
|
|
|
id: params.term,
|
|
|
text: params.term
|
|
|
};
|
|
|
};
|
|
|
|
|
|
while (i < term.length) {
|
|
|
var termChar = term[i];
|
|
|
|
|
|
if (separators.indexOf(termChar) === -1) {
|
|
|
i++;
|
|
|
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
var part = term.substr(0, i);
|
|
|
var partParams = $.extend({}, params, {
|
|
|
term: part
|
|
|
});
|
|
|
|
|
|
var data = createTag(partParams);
|
|
|
|
|
|
if (data == null) {
|
|
|
i++;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
callback(data);
|
|
|
|
|
|
// Reset the term to not include the tokenized portion
|
|
|
term = term.substr(i + 1) || '';
|
|
|
i = 0;
|
|
|
}
|
|
|
|
|
|
return {
|
|
|
term: term
|
|
|
};
|
|
|
};
|
|
|
|
|
|
return Tokenizer;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/data/minimumInputLength',[
|
|
|
|
|
|
], function () {
|
|
|
function MinimumInputLength (decorated, $e, options) {
|
|
|
this.minimumInputLength = options.get('minimumInputLength');
|
|
|
|
|
|
decorated.call(this, $e, options);
|
|
|
}
|
|
|
|
|
|
MinimumInputLength.prototype.query = function (decorated, params, callback) {
|
|
|
params.term = params.term || '';
|
|
|
|
|
|
if (params.term.length < this.minimumInputLength) {
|
|
|
this.trigger('results:message', {
|
|
|
message: 'inputTooShort',
|
|
|
args: {
|
|
|
minimum: this.minimumInputLength,
|
|
|
input: params.term,
|
|
|
params: params
|
|
|
}
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
decorated.call(this, params, callback);
|
|
|
};
|
|
|
|
|
|
return MinimumInputLength;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/data/maximumInputLength',[
|
|
|
|
|
|
], function () {
|
|
|
function MaximumInputLength (decorated, $e, options) {
|
|
|
this.maximumInputLength = options.get('maximumInputLength');
|
|
|
|
|
|
decorated.call(this, $e, options);
|
|
|
}
|
|
|
|
|
|
MaximumInputLength.prototype.query = function (decorated, params, callback) {
|
|
|
params.term = params.term || '';
|
|
|
|
|
|
if (this.maximumInputLength > 0 &&
|
|
|
params.term.length > this.maximumInputLength) {
|
|
|
this.trigger('results:message', {
|
|
|
message: 'inputTooLong',
|
|
|
args: {
|
|
|
maximum: this.maximumInputLength,
|
|
|
input: params.term,
|
|
|
params: params
|
|
|
}
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
decorated.call(this, params, callback);
|
|
|
};
|
|
|
|
|
|
return MaximumInputLength;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/data/maximumSelectionLength',[
|
|
|
|
|
|
], function (){
|
|
|
function MaximumSelectionLength (decorated, $e, options) {
|
|
|
this.maximumSelectionLength = options.get('maximumSelectionLength');
|
|
|
|
|
|
decorated.call(this, $e, options);
|
|
|
}
|
|
|
|
|
|
MaximumSelectionLength.prototype.bind =
|
|
|
function (decorated, container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
decorated.call(this, container, $container);
|
|
|
|
|
|
container.on('select', function () {
|
|
|
self._checkIfMaximumSelected();
|
|
|
});
|
|
|
};
|
|
|
|
|
|
MaximumSelectionLength.prototype.query =
|
|
|
function (decorated, params, callback) {
|
|
|
var self = this;
|
|
|
|
|
|
this._checkIfMaximumSelected(function () {
|
|
|
decorated.call(self, params, callback);
|
|
|
});
|
|
|
};
|
|
|
|
|
|
MaximumSelectionLength.prototype._checkIfMaximumSelected =
|
|
|
function (_, successCallback) {
|
|
|
var self = this;
|
|
|
|
|
|
this.current(function (currentData) {
|
|
|
var count = currentData != null ? currentData.length : 0;
|
|
|
if (self.maximumSelectionLength > 0 &&
|
|
|
count >= self.maximumSelectionLength) {
|
|
|
self.trigger('results:message', {
|
|
|
message: 'maximumSelected',
|
|
|
args: {
|
|
|
maximum: self.maximumSelectionLength
|
|
|
}
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (successCallback) {
|
|
|
successCallback();
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
|
|
|
return MaximumSelectionLength;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/dropdown',[
|
|
|
'jquery',
|
|
|
'./utils'
|
|
|
], function ($, Utils) {
|
|
|
function Dropdown ($element, options) {
|
|
|
this.$element = $element;
|
|
|
this.options = options;
|
|
|
|
|
|
Dropdown.__super__.constructor.call(this);
|
|
|
}
|
|
|
|
|
|
Utils.Extend(Dropdown, Utils.Observable);
|
|
|
|
|
|
Dropdown.prototype.render = function () {
|
|
|
var $dropdown = $(
|
|
|
'<span class="select2-dropdown">' +
|
|
|
'<span class="select2-results"></span>' +
|
|
|
'</span>'
|
|
|
);
|
|
|
|
|
|
$dropdown.attr('dir', this.options.get('dir'));
|
|
|
|
|
|
this.$dropdown = $dropdown;
|
|
|
|
|
|
return $dropdown;
|
|
|
};
|
|
|
|
|
|
Dropdown.prototype.bind = function () {
|
|
|
// Should be implemented in subclasses
|
|
|
};
|
|
|
|
|
|
Dropdown.prototype.position = function ($dropdown, $container) {
|
|
|
// Should be implemented in subclasses
|
|
|
};
|
|
|
|
|
|
Dropdown.prototype.destroy = function () {
|
|
|
// Remove the dropdown from the DOM
|
|
|
this.$dropdown.remove();
|
|
|
};
|
|
|
|
|
|
return Dropdown;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/dropdown/search',[
|
|
|
'jquery'
|
|
|
], function ($) {
|
|
|
function Search () { }
|
|
|
|
|
|
Search.prototype.render = function (decorated) {
|
|
|
var $rendered = decorated.call(this);
|
|
|
var searchLabel = this.options.get('translations').get('search');
|
|
|
|
|
|
var $search = $(
|
|
|
'<span class="select2-search select2-search--dropdown">' +
|
|
|
'<input class="select2-search__field" type="search" tabindex="-1"' +
|
|
|
' autocorrect="off" autocapitalize="none"' +
|
|
|
' spellcheck="false" role="searchbox" aria-autocomplete="list" />' +
|
|
|
'</span>'
|
|
|
);
|
|
|
|
|
|
this.$searchContainer = $search;
|
|
|
this.$search = $search.find('input');
|
|
|
|
|
|
this.$search.prop('autocomplete', this.options.get('autocomplete'));
|
|
|
this.$search.attr('aria-label', searchLabel());
|
|
|
|
|
|
$rendered.prepend($search);
|
|
|
|
|
|
return $rendered;
|
|
|
};
|
|
|
|
|
|
Search.prototype.bind = function (decorated, container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
var resultsId = container.id + '-results';
|
|
|
|
|
|
decorated.call(this, container, $container);
|
|
|
|
|
|
this.$search.on('keydown', function (evt) {
|
|
|
self.trigger('keypress', evt);
|
|
|
|
|
|
self._keyUpPrevented = evt.isDefaultPrevented();
|
|
|
});
|
|
|
|
|
|
// Workaround for browsers which do not support the `input` event
|
|
|
// This will prevent double-triggering of events for browsers which support
|
|
|
// both the `keyup` and `input` events.
|
|
|
this.$search.on('input', function (evt) {
|
|
|
// Unbind the duplicated `keyup` event
|
|
|
$(this).off('keyup');
|
|
|
});
|
|
|
|
|
|
this.$search.on('keyup input', function (evt) {
|
|
|
self.handleSearch(evt);
|
|
|
});
|
|
|
|
|
|
container.on('open', function () {
|
|
|
self.$search.attr('tabindex', 0);
|
|
|
self.$search.attr('aria-controls', resultsId);
|
|
|
|
|
|
self.$search.trigger('focus');
|
|
|
|
|
|
window.setTimeout(function () {
|
|
|
self.$search.trigger('focus');
|
|
|
}, 0);
|
|
|
});
|
|
|
|
|
|
container.on('close', function () {
|
|
|
self.$search.attr('tabindex', -1);
|
|
|
self.$search.removeAttr('aria-controls');
|
|
|
self.$search.removeAttr('aria-activedescendant');
|
|
|
|
|
|
self.$search.val('');
|
|
|
self.$search.trigger('blur');
|
|
|
});
|
|
|
|
|
|
container.on('focus', function () {
|
|
|
if (!container.isOpen()) {
|
|
|
self.$search.trigger('focus');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
container.on('results:all', function (params) {
|
|
|
if (params.query.term == null || params.query.term === '') {
|
|
|
var showSearch = self.showSearch(params);
|
|
|
|
|
|
if (showSearch) {
|
|
|
self.$searchContainer[0].classList.remove('select2-search--hide');
|
|
|
} else {
|
|
|
self.$searchContainer[0].classList.add('select2-search--hide');
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
container.on('results:focus', function (params) {
|
|
|
if (params.data._resultId) {
|
|
|
self.$search.attr('aria-activedescendant', params.data._resultId);
|
|
|
} else {
|
|
|
self.$search.removeAttr('aria-activedescendant');
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
|
|
|
Search.prototype.handleSearch = function (evt) {
|
|
|
if (!this._keyUpPrevented) {
|
|
|
var input = this.$search.val();
|
|
|
|
|
|
this.trigger('query', {
|
|
|
term: input
|
|
|
});
|
|
|
}
|
|
|
|
|
|
this._keyUpPrevented = false;
|
|
|
};
|
|
|
|
|
|
Search.prototype.showSearch = function (_, params) {
|
|
|
return true;
|
|
|
};
|
|
|
|
|
|
return Search;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/dropdown/hidePlaceholder',[
|
|
|
|
|
|
], function () {
|
|
|
function HidePlaceholder (decorated, $element, options, dataAdapter) {
|
|
|
this.placeholder = this.normalizePlaceholder(options.get('placeholder'));
|
|
|
|
|
|
decorated.call(this, $element, options, dataAdapter);
|
|
|
}
|
|
|
|
|
|
HidePlaceholder.prototype.append = function (decorated, data) {
|
|
|
data.results = this.removePlaceholder(data.results);
|
|
|
|
|
|
decorated.call(this, data);
|
|
|
};
|
|
|
|
|
|
HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {
|
|
|
if (typeof placeholder === 'string') {
|
|
|
placeholder = {
|
|
|
id: '',
|
|
|
text: placeholder
|
|
|
};
|
|
|
}
|
|
|
|
|
|
return placeholder;
|
|
|
};
|
|
|
|
|
|
HidePlaceholder.prototype.removePlaceholder = function (_, data) {
|
|
|
var modifiedData = data.slice(0);
|
|
|
|
|
|
for (var d = data.length - 1; d >= 0; d--) {
|
|
|
var item = data[d];
|
|
|
|
|
|
if (this.placeholder.id === item.id) {
|
|
|
modifiedData.splice(d, 1);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return modifiedData;
|
|
|
};
|
|
|
|
|
|
return HidePlaceholder;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/dropdown/infiniteScroll',[
|
|
|
'jquery'
|
|
|
], function ($) {
|
|
|
function InfiniteScroll (decorated, $element, options, dataAdapter) {
|
|
|
this.lastParams = {};
|
|
|
|
|
|
decorated.call(this, $element, options, dataAdapter);
|
|
|
|
|
|
this.$loadingMore = this.createLoadingMore();
|
|
|
this.loading = false;
|
|
|
}
|
|
|
|
|
|
InfiniteScroll.prototype.append = function (decorated, data) {
|
|
|
this.$loadingMore.remove();
|
|
|
this.loading = false;
|
|
|
|
|
|
decorated.call(this, data);
|
|
|
|
|
|
if (this.showLoadingMore(data)) {
|
|
|
this.$results.append(this.$loadingMore);
|
|
|
this.loadMoreIfNeeded();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
InfiniteScroll.prototype.bind = function (decorated, container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
decorated.call(this, container, $container);
|
|
|
|
|
|
container.on('query', function (params) {
|
|
|
self.lastParams = params;
|
|
|
self.loading = true;
|
|
|
});
|
|
|
|
|
|
container.on('query:append', function (params) {
|
|
|
self.lastParams = params;
|
|
|
self.loading = true;
|
|
|
});
|
|
|
|
|
|
this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));
|
|
|
};
|
|
|
|
|
|
InfiniteScroll.prototype.loadMoreIfNeeded = function () {
|
|
|
var isLoadMoreVisible = $.contains(
|
|
|
document.documentElement,
|
|
|
this.$loadingMore[0]
|
|
|
);
|
|
|
|
|
|
if (this.loading || !isLoadMoreVisible) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var currentOffset = this.$results.offset().top +
|
|
|
this.$results.outerHeight(false);
|
|
|
var loadingMoreOffset = this.$loadingMore.offset().top +
|
|
|
this.$loadingMore.outerHeight(false);
|
|
|
|
|
|
if (currentOffset + 50 >= loadingMoreOffset) {
|
|
|
this.loadMore();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
InfiniteScroll.prototype.loadMore = function () {
|
|
|
this.loading = true;
|
|
|
|
|
|
var params = $.extend({}, {page: 1}, this.lastParams);
|
|
|
|
|
|
params.page++;
|
|
|
|
|
|
this.trigger('query:append', params);
|
|
|
};
|
|
|
|
|
|
InfiniteScroll.prototype.showLoadingMore = function (_, data) {
|
|
|
return data.pagination && data.pagination.more;
|
|
|
};
|
|
|
|
|
|
InfiniteScroll.prototype.createLoadingMore = function () {
|
|
|
var $option = $(
|
|
|
'<li ' +
|
|
|
'class="select2-results__option select2-results__option--load-more"' +
|
|
|
'role="option" aria-disabled="true"></li>'
|
|
|
);
|
|
|
|
|
|
var message = this.options.get('translations').get('loadingMore');
|
|
|
|
|
|
$option.html(message(this.lastParams));
|
|
|
|
|
|
return $option;
|
|
|
};
|
|
|
|
|
|
return InfiniteScroll;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/dropdown/attachBody',[
|
|
|
'jquery',
|
|
|
'../utils'
|
|
|
], function ($, Utils) {
|
|
|
function AttachBody (decorated, $element, options) {
|
|
|
this.$dropdownParent = $(options.get('dropdownParent') || document.body);
|
|
|
|
|
|
decorated.call(this, $element, options);
|
|
|
}
|
|
|
|
|
|
AttachBody.prototype.bind = function (decorated, container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
decorated.call(this, container, $container);
|
|
|
|
|
|
container.on('open', function () {
|
|
|
self._showDropdown();
|
|
|
self._attachPositioningHandler(container);
|
|
|
|
|
|
// Must bind after the results handlers to ensure correct sizing
|
|
|
self._bindContainerResultHandlers(container);
|
|
|
});
|
|
|
|
|
|
container.on('close', function () {
|
|
|
self._hideDropdown();
|
|
|
self._detachPositioningHandler(container);
|
|
|
});
|
|
|
|
|
|
this.$dropdownContainer.on('mousedown', function (evt) {
|
|
|
evt.stopPropagation();
|
|
|
});
|
|
|
};
|
|
|
|
|
|
AttachBody.prototype.destroy = function (decorated) {
|
|
|
decorated.call(this);
|
|
|
|
|
|
this.$dropdownContainer.remove();
|
|
|
};
|
|
|
|
|
|
AttachBody.prototype.position = function (decorated, $dropdown, $container) {
|
|
|
// Clone all of the container classes
|
|
|
$dropdown.attr('class', $container.attr('class'));
|
|
|
|
|
|
$dropdown[0].classList.remove('select2');
|
|
|
$dropdown[0].classList.add('select2-container--open');
|
|
|
|
|
|
$dropdown.css({
|
|
|
position: 'absolute',
|
|
|
top: -999999
|
|
|
});
|
|
|
|
|
|
this.$container = $container;
|
|
|
};
|
|
|
|
|
|
AttachBody.prototype.render = function (decorated) {
|
|
|
var $container = $('<span></span>');
|
|
|
|
|
|
var $dropdown = decorated.call(this);
|
|
|
$container.append($dropdown);
|
|
|
|
|
|
this.$dropdownContainer = $container;
|
|
|
|
|
|
return $container;
|
|
|
};
|
|
|
|
|
|
AttachBody.prototype._hideDropdown = function (decorated) {
|
|
|
this.$dropdownContainer.detach();
|
|
|
};
|
|
|
|
|
|
AttachBody.prototype._bindContainerResultHandlers =
|
|
|
function (decorated, container) {
|
|
|
|
|
|
// These should only be bound once
|
|
|
if (this._containerResultsHandlersBound) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var self = this;
|
|
|
|
|
|
container.on('results:all', function () {
|
|
|
self._positionDropdown();
|
|
|
self._resizeDropdown();
|
|
|
});
|
|
|
|
|
|
container.on('results:append', function () {
|
|
|
self._positionDropdown();
|
|
|
self._resizeDropdown();
|
|
|
});
|
|
|
|
|
|
container.on('results:message', function () {
|
|
|
self._positionDropdown();
|
|
|
self._resizeDropdown();
|
|
|
});
|
|
|
|
|
|
container.on('select', function () {
|
|
|
self._positionDropdown();
|
|
|
self._resizeDropdown();
|
|
|
});
|
|
|
|
|
|
container.on('unselect', function () {
|
|
|
self._positionDropdown();
|
|
|
self._resizeDropdown();
|
|
|
});
|
|
|
|
|
|
this._containerResultsHandlersBound = true;
|
|
|
};
|
|
|
|
|
|
AttachBody.prototype._attachPositioningHandler =
|
|
|
function (decorated, container) {
|
|
|
var self = this;
|
|
|
|
|
|
var scrollEvent = 'scroll.select2.' + container.id;
|
|
|
var resizeEvent = 'resize.select2.' + container.id;
|
|
|
var orientationEvent = 'orientationchange.select2.' + container.id;
|
|
|
|
|
|
var $watchers = this.$container.parents().filter(Utils.hasScroll);
|
|
|
$watchers.each(function () {
|
|
|
Utils.StoreData(this, 'select2-scroll-position', {
|
|
|
x: $(this).scrollLeft(),
|
|
|
y: $(this).scrollTop()
|
|
|
});
|
|
|
});
|
|
|
|
|
|
$watchers.on(scrollEvent, function (ev) {
|
|
|
var position = Utils.GetData(this, 'select2-scroll-position');
|
|
|
$(this).scrollTop(position.y);
|
|
|
});
|
|
|
|
|
|
$(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,
|
|
|
function (e) {
|
|
|
self._positionDropdown();
|
|
|
self._resizeDropdown();
|
|
|
});
|
|
|
};
|
|
|
|
|
|
AttachBody.prototype._detachPositioningHandler =
|
|
|
function (decorated, container) {
|
|
|
var scrollEvent = 'scroll.select2.' + container.id;
|
|
|
var resizeEvent = 'resize.select2.' + container.id;
|
|
|
var orientationEvent = 'orientationchange.select2.' + container.id;
|
|
|
|
|
|
var $watchers = this.$container.parents().filter(Utils.hasScroll);
|
|
|
$watchers.off(scrollEvent);
|
|
|
|
|
|
$(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);
|
|
|
};
|
|
|
|
|
|
AttachBody.prototype._positionDropdown = function () {
|
|
|
var $window = $(window);
|
|
|
|
|
|
var isCurrentlyAbove = this.$dropdown[0].classList
|
|
|
.contains('select2-dropdown--above');
|
|
|
var isCurrentlyBelow = this.$dropdown[0].classList
|
|
|
.contains('select2-dropdown--below');
|
|
|
|
|
|
var newDirection = null;
|
|
|
|
|
|
var offset = this.$container.offset();
|
|
|
|
|
|
offset.bottom = offset.top + this.$container.outerHeight(false);
|
|
|
|
|
|
var container = {
|
|
|
height: this.$container.outerHeight(false)
|
|
|
};
|
|
|
|
|
|
container.top = offset.top;
|
|
|
container.bottom = offset.top + container.height;
|
|
|
|
|
|
var dropdown = {
|
|
|
height: this.$dropdown.outerHeight(false)
|
|
|
};
|
|
|
|
|
|
var viewport = {
|
|
|
top: $window.scrollTop(),
|
|
|
bottom: $window.scrollTop() + $window.height()
|
|
|
};
|
|
|
|
|
|
var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);
|
|
|
var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);
|
|
|
|
|
|
var css = {
|
|
|
left: offset.left,
|
|
|
top: container.bottom
|
|
|
};
|
|
|
|
|
|
// Determine what the parent element is to use for calculating the offset
|
|
|
var $offsetParent = this.$dropdownParent;
|
|
|
|
|
|
// For statically positioned elements, we need to get the element
|
|
|
// that is determining the offset
|
|
|
if ($offsetParent.css('position') === 'static') {
|
|
|
$offsetParent = $offsetParent.offsetParent();
|
|
|
}
|
|
|
|
|
|
var parentOffset = {
|
|
|
top: 0,
|
|
|
left: 0
|
|
|
};
|
|
|
|
|
|
if (
|
|
|
$.contains(document.body, $offsetParent[0]) ||
|
|
|
$offsetParent[0].isConnected
|
|
|
) {
|
|
|
parentOffset = $offsetParent.offset();
|
|
|
}
|
|
|
|
|
|
css.top -= parentOffset.top;
|
|
|
css.left -= parentOffset.left;
|
|
|
|
|
|
if (!isCurrentlyAbove && !isCurrentlyBelow) {
|
|
|
newDirection = 'below';
|
|
|
}
|
|
|
|
|
|
if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {
|
|
|
newDirection = 'above';
|
|
|
} else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {
|
|
|
newDirection = 'below';
|
|
|
}
|
|
|
|
|
|
if (newDirection == 'above' ||
|
|
|
(isCurrentlyAbove && newDirection !== 'below')) {
|
|
|
css.top = container.top - parentOffset.top - dropdown.height;
|
|
|
}
|
|
|
|
|
|
if (newDirection != null) {
|
|
|
this.$dropdown[0].classList.remove('select2-dropdown--below');
|
|
|
this.$dropdown[0].classList.remove('select2-dropdown--above');
|
|
|
this.$dropdown[0].classList.add('select2-dropdown--' + newDirection);
|
|
|
|
|
|
this.$container[0].classList.remove('select2-container--below');
|
|
|
this.$container[0].classList.remove('select2-container--above');
|
|
|
this.$container[0].classList.add('select2-container--' + newDirection);
|
|
|
}
|
|
|
|
|
|
this.$dropdownContainer.css(css);
|
|
|
};
|
|
|
|
|
|
AttachBody.prototype._resizeDropdown = function () {
|
|
|
var css = {
|
|
|
width: this.$container.outerWidth(false) + 'px'
|
|
|
};
|
|
|
|
|
|
if (this.options.get('dropdownAutoWidth')) {
|
|
|
css.minWidth = css.width;
|
|
|
css.position = 'relative';
|
|
|
css.width = 'auto';
|
|
|
}
|
|
|
|
|
|
this.$dropdown.css(css);
|
|
|
};
|
|
|
|
|
|
AttachBody.prototype._showDropdown = function (decorated) {
|
|
|
this.$dropdownContainer.appendTo(this.$dropdownParent);
|
|
|
|
|
|
this._positionDropdown();
|
|
|
this._resizeDropdown();
|
|
|
};
|
|
|
|
|
|
return AttachBody;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/dropdown/minimumResultsForSearch',[
|
|
|
|
|
|
], function () {
|
|
|
function countResults (data) {
|
|
|
var count = 0;
|
|
|
|
|
|
for (var d = 0; d < data.length; d++) {
|
|
|
var item = data[d];
|
|
|
|
|
|
if (item.children) {
|
|
|
count += countResults(item.children);
|
|
|
} else {
|
|
|
count++;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return count;
|
|
|
}
|
|
|
|
|
|
function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {
|
|
|
this.minimumResultsForSearch = options.get('minimumResultsForSearch');
|
|
|
|
|
|
if (this.minimumResultsForSearch < 0) {
|
|
|
this.minimumResultsForSearch = Infinity;
|
|
|
}
|
|
|
|
|
|
decorated.call(this, $element, options, dataAdapter);
|
|
|
}
|
|
|
|
|
|
MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {
|
|
|
if (countResults(params.data.results) < this.minimumResultsForSearch) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
return decorated.call(this, params);
|
|
|
};
|
|
|
|
|
|
return MinimumResultsForSearch;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/dropdown/selectOnClose',[
|
|
|
'../utils'
|
|
|
], function (Utils) {
|
|
|
function SelectOnClose () { }
|
|
|
|
|
|
SelectOnClose.prototype.bind = function (decorated, container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
decorated.call(this, container, $container);
|
|
|
|
|
|
container.on('close', function (params) {
|
|
|
self._handleSelectOnClose(params);
|
|
|
});
|
|
|
};
|
|
|
|
|
|
SelectOnClose.prototype._handleSelectOnClose = function (_, params) {
|
|
|
if (params && params.originalSelect2Event != null) {
|
|
|
var event = params.originalSelect2Event;
|
|
|
|
|
|
// Don't select an item if the close event was triggered from a select or
|
|
|
// unselect event
|
|
|
if (event._type === 'select' || event._type === 'unselect') {
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var $highlightedResults = this.getHighlightedResults();
|
|
|
|
|
|
// Only select highlighted results
|
|
|
if ($highlightedResults.length < 1) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var data = Utils.GetData($highlightedResults[0], 'data');
|
|
|
|
|
|
// Don't re-select already selected resulte
|
|
|
if (
|
|
|
(data.element != null && data.element.selected) ||
|
|
|
(data.element == null && data.selected)
|
|
|
) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
this.trigger('select', {
|
|
|
data: data
|
|
|
});
|
|
|
};
|
|
|
|
|
|
return SelectOnClose;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/dropdown/closeOnSelect',[
|
|
|
|
|
|
], function () {
|
|
|
function CloseOnSelect () { }
|
|
|
|
|
|
CloseOnSelect.prototype.bind = function (decorated, container, $container) {
|
|
|
var self = this;
|
|
|
|
|
|
decorated.call(this, container, $container);
|
|
|
|
|
|
container.on('select', function (evt) {
|
|
|
self._selectTriggered(evt);
|
|
|
});
|
|
|
|
|
|
container.on('unselect', function (evt) {
|
|
|
self._selectTriggered(evt);
|
|
|
});
|
|
|
};
|
|
|
|
|
|
CloseOnSelect.prototype._selectTriggered = function (_, evt) {
|
|
|
var originalEvent = evt.originalEvent;
|
|
|
|
|
|
// Don't close if the control key is being held
|
|
|
if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
this.trigger('close', {
|
|
|
originalEvent: originalEvent,
|
|
|
originalSelect2Event: evt
|
|
|
});
|
|
|
};
|
|
|
|
|
|
return CloseOnSelect;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/dropdown/dropdownCss',[
|
|
|
'../utils'
|
|
|
], function (Utils) {
|
|
|
function DropdownCSS () { }
|
|
|
|
|
|
DropdownCSS.prototype.render = function (decorated) {
|
|
|
var $dropdown = decorated.call(this);
|
|
|
|
|
|
var dropdownCssClass = this.options.get('dropdownCssClass') || '';
|
|
|
|
|
|
if (dropdownCssClass.indexOf(':all:') !== -1) {
|
|
|
dropdownCssClass = dropdownCssClass.replace(':all:', '');
|
|
|
|
|
|
Utils.copyNonInternalCssClasses($dropdown[0], this.$element[0]);
|
|
|
}
|
|
|
|
|
|
$dropdown.addClass(dropdownCssClass);
|
|
|
|
|
|
return $dropdown;
|
|
|
};
|
|
|
|
|
|
return DropdownCSS;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/dropdown/tagsSearchHighlight',[
|
|
|
'../utils'
|
|
|
], function (Utils) {
|
|
|
function TagsSearchHighlight () { }
|
|
|
|
|
|
TagsSearchHighlight.prototype.highlightFirstItem = function (decorated) {
|
|
|
var $options = this.$results
|
|
|
.find(
|
|
|
'.select2-results__option--selectable' +
|
|
|
':not(.select2-results__option--selected)'
|
|
|
);
|
|
|
|
|
|
if ($options.length > 0) {
|
|
|
var $firstOption = $options.first();
|
|
|
var data = Utils.GetData($firstOption[0], 'data');
|
|
|
var firstElement = data.element;
|
|
|
|
|
|
if (firstElement && firstElement.getAttribute) {
|
|
|
if (firstElement.getAttribute('data-select2-tag') === 'true') {
|
|
|
$firstOption.trigger('mouseenter');
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
decorated.call(this);
|
|
|
};
|
|
|
|
|
|
return TagsSearchHighlight;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/i18n/en',[],function () {
|
|
|
// English
|
|
|
return {
|
|
|
errorLoading: function () {
|
|
|
return 'The results could not be loaded.';
|
|
|
},
|
|
|
inputTooLong: function (args) {
|
|
|
var overChars = args.input.length - args.maximum;
|
|
|
|
|
|
var message = 'Please delete ' + overChars + ' character';
|
|
|
|
|
|
if (overChars != 1) {
|
|
|
message += 's';
|
|
|
}
|
|
|
|
|
|
return message;
|
|
|
},
|
|
|
inputTooShort: function (args) {
|
|
|
var remainingChars = args.minimum - args.input.length;
|
|
|
|
|
|
var message = 'Please enter ' + remainingChars + ' or more characters';
|
|
|
|
|
|
return message;
|
|
|
},
|
|
|
loadingMore: function () {
|
|
|
return 'Loading more results…';
|
|
|
},
|
|
|
maximumSelected: function (args) {
|
|
|
var message = 'You can only select ' + args.maximum + ' item';
|
|
|
|
|
|
if (args.maximum != 1) {
|
|
|
message += 's';
|
|
|
}
|
|
|
|
|
|
return message;
|
|
|
},
|
|
|
noResults: function () {
|
|
|
return 'No results found';
|
|
|
},
|
|
|
searching: function () {
|
|
|
return 'Searching…';
|
|
|
},
|
|
|
removeAllItems: function () {
|
|
|
return 'Remove all items';
|
|
|
},
|
|
|
removeItem: function () {
|
|
|
return 'Remove item';
|
|
|
},
|
|
|
search: function() {
|
|
|
return 'Search';
|
|
|
}
|
|
|
};
|
|
|
});
|
|
|
|
|
|
S2.define('select2/defaults',[
|
|
|
'jquery',
|
|
|
|
|
|
'./results',
|
|
|
|
|
|
'./selection/single',
|
|
|
'./selection/multiple',
|
|
|
'./selection/placeholder',
|
|
|
'./selection/allowClear',
|
|
|
'./selection/search',
|
|
|
'./selection/selectionCss',
|
|
|
'./selection/eventRelay',
|
|
|
|
|
|
'./utils',
|
|
|
'./translation',
|
|
|
'./diacritics',
|
|
|
|
|
|
'./data/select',
|
|
|
'./data/array',
|
|
|
'./data/ajax',
|
|
|
'./data/tags',
|
|
|
'./data/tokenizer',
|
|
|
'./data/minimumInputLength',
|
|
|
'./data/maximumInputLength',
|
|
|
'./data/maximumSelectionLength',
|
|
|
|
|
|
'./dropdown',
|
|
|
'./dropdown/search',
|
|
|
'./dropdown/hidePlaceholder',
|
|
|
'./dropdown/infiniteScroll',
|
|
|
'./dropdown/attachBody',
|
|
|
'./dropdown/minimumResultsForSearch',
|
|
|
'./dropdown/selectOnClose',
|
|
|
'./dropdown/closeOnSelect',
|
|
|
'./dropdown/dropdownCss',
|
|
|
'./dropdown/tagsSearchHighlight',
|
|
|
|
|
|
'./i18n/en'
|
|
|
], function ($,
|
|
|
|
|
|
ResultsList,
|
|
|
|
|
|
SingleSelection, MultipleSelection, Placeholder, AllowClear,
|
|
|
SelectionSearch, SelectionCSS, EventRelay,
|
|
|
|
|
|
Utils, Translation, DIACRITICS,
|
|
|
|
|
|
SelectData, ArrayData, AjaxData, Tags, Tokenizer,
|
|
|
MinimumInputLength, MaximumInputLength, MaximumSelectionLength,
|
|
|
|
|
|
Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,
|
|
|
AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,
|
|
|
DropdownCSS, TagsSearchHighlight,
|
|
|
|
|
|
EnglishTranslation) {
|
|
|
function Defaults () {
|
|
|
this.reset();
|
|
|
}
|
|
|
|
|
|
Defaults.prototype.apply = function (options) {
|
|
|
options = $.extend(true, {}, this.defaults, options);
|
|
|
|
|
|
if (options.dataAdapter == null) {
|
|
|
if (options.ajax != null) {
|
|
|
options.dataAdapter = AjaxData;
|
|
|
} else if (options.data != null) {
|
|
|
options.dataAdapter = ArrayData;
|
|
|
} else {
|
|
|
options.dataAdapter = SelectData;
|
|
|
}
|
|
|
|
|
|
if (options.minimumInputLength > 0) {
|
|
|
options.dataAdapter = Utils.Decorate(
|
|
|
options.dataAdapter,
|
|
|
MinimumInputLength
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.maximumInputLength > 0) {
|
|
|
options.dataAdapter = Utils.Decorate(
|
|
|
options.dataAdapter,
|
|
|
MaximumInputLength
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.maximumSelectionLength > 0) {
|
|
|
options.dataAdapter = Utils.Decorate(
|
|
|
options.dataAdapter,
|
|
|
MaximumSelectionLength
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.tags) {
|
|
|
options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);
|
|
|
}
|
|
|
|
|
|
if (options.tokenSeparators != null || options.tokenizer != null) {
|
|
|
options.dataAdapter = Utils.Decorate(
|
|
|
options.dataAdapter,
|
|
|
Tokenizer
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (options.resultsAdapter == null) {
|
|
|
options.resultsAdapter = ResultsList;
|
|
|
|
|
|
if (options.ajax != null) {
|
|
|
options.resultsAdapter = Utils.Decorate(
|
|
|
options.resultsAdapter,
|
|
|
InfiniteScroll
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.placeholder != null) {
|
|
|
options.resultsAdapter = Utils.Decorate(
|
|
|
options.resultsAdapter,
|
|
|
HidePlaceholder
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.selectOnClose) {
|
|
|
options.resultsAdapter = Utils.Decorate(
|
|
|
options.resultsAdapter,
|
|
|
SelectOnClose
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.tags) {
|
|
|
options.resultsAdapter = Utils.Decorate(
|
|
|
options.resultsAdapter,
|
|
|
TagsSearchHighlight
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (options.dropdownAdapter == null) {
|
|
|
if (options.multiple) {
|
|
|
options.dropdownAdapter = Dropdown;
|
|
|
} else {
|
|
|
var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);
|
|
|
|
|
|
options.dropdownAdapter = SearchableDropdown;
|
|
|
}
|
|
|
|
|
|
if (options.minimumResultsForSearch !== 0) {
|
|
|
options.dropdownAdapter = Utils.Decorate(
|
|
|
options.dropdownAdapter,
|
|
|
MinimumResultsForSearch
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.closeOnSelect) {
|
|
|
options.dropdownAdapter = Utils.Decorate(
|
|
|
options.dropdownAdapter,
|
|
|
CloseOnSelect
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.dropdownCssClass != null) {
|
|
|
options.dropdownAdapter = Utils.Decorate(
|
|
|
options.dropdownAdapter,
|
|
|
DropdownCSS
|
|
|
);
|
|
|
}
|
|
|
|
|
|
options.dropdownAdapter = Utils.Decorate(
|
|
|
options.dropdownAdapter,
|
|
|
AttachBody
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.selectionAdapter == null) {
|
|
|
if (options.multiple) {
|
|
|
options.selectionAdapter = MultipleSelection;
|
|
|
} else {
|
|
|
options.selectionAdapter = SingleSelection;
|
|
|
}
|
|
|
|
|
|
// Add the placeholder mixin if a placeholder was specified
|
|
|
if (options.placeholder != null) {
|
|
|
options.selectionAdapter = Utils.Decorate(
|
|
|
options.selectionAdapter,
|
|
|
Placeholder
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.allowClear) {
|
|
|
options.selectionAdapter = Utils.Decorate(
|
|
|
options.selectionAdapter,
|
|
|
AllowClear
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.multiple) {
|
|
|
options.selectionAdapter = Utils.Decorate(
|
|
|
options.selectionAdapter,
|
|
|
SelectionSearch
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (options.selectionCssClass != null) {
|
|
|
options.selectionAdapter = Utils.Decorate(
|
|
|
options.selectionAdapter,
|
|
|
SelectionCSS
|
|
|
);
|
|
|
}
|
|
|
|
|
|
options.selectionAdapter = Utils.Decorate(
|
|
|
options.selectionAdapter,
|
|
|
EventRelay
|
|
|
);
|
|
|
}
|
|
|
|
|
|
// If the defaults were not previously applied from an element, it is
|
|
|
// possible for the language option to have not been resolved
|
|
|
options.language = this._resolveLanguage(options.language);
|
|
|
|
|
|
// Always fall back to English since it will always be complete
|
|
|
options.language.push('en');
|
|
|
|
|
|
var uniqueLanguages = [];
|
|
|
|
|
|
for (var l = 0; l < options.language.length; l++) {
|
|
|
var language = options.language[l];
|
|
|
|
|
|
if (uniqueLanguages.indexOf(language) === -1) {
|
|
|
uniqueLanguages.push(language);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
options.language = uniqueLanguages;
|
|
|
|
|
|
options.translations = this._processTranslations(
|
|
|
options.language,
|
|
|
options.debug
|
|
|
);
|
|
|
|
|
|
return options;
|
|
|
};
|
|
|
|
|
|
Defaults.prototype.reset = function () {
|
|
|
function stripDiacritics (text) {
|
|
|
// Used 'uni range + named function' from http://jsperf.com/diacritics/18
|
|
|
function match(a) {
|
|
|
return DIACRITICS[a] || a;
|
|
|
}
|
|
|
|
|
|
return text.replace(/[^\u0000-\u007E]/g, match);
|
|
|
}
|
|
|
|
|
|
function matcher (params, data) {
|
|
|
// Always return the object if there is nothing to compare
|
|
|
if (params.term == null || params.term.trim() === '') {
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
// Do a recursive check for options with children
|
|
|
if (data.children && data.children.length > 0) {
|
|
|
// Clone the data object if there are children
|
|
|
// This is required as we modify the object to remove any non-matches
|
|
|
var match = $.extend(true, {}, data);
|
|
|
|
|
|
// Check each child of the option
|
|
|
for (var c = data.children.length - 1; c >= 0; c--) {
|
|
|
var child = data.children[c];
|
|
|
|
|
|
var matches = matcher(params, child);
|
|
|
|
|
|
// If there wasn't a match, remove the object in the array
|
|
|
if (matches == null) {
|
|
|
match.children.splice(c, 1);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// If any children matched, return the new object
|
|
|
if (match.children.length > 0) {
|
|
|
return match;
|
|
|
}
|
|
|
|
|
|
// If there were no matching children, check just the plain object
|
|
|
return matcher(params, match);
|
|
|
}
|
|
|
|
|
|
var original = stripDiacritics(data.text).toUpperCase();
|
|
|
var term = stripDiacritics(params.term).toUpperCase();
|
|
|
|
|
|
// Check if the text contains the term
|
|
|
if (original.indexOf(term) > -1) {
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
// If it doesn't contain the term, don't return anything
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
this.defaults = {
|
|
|
amdLanguageBase: './i18n/',
|
|
|
autocomplete: 'off',
|
|
|
closeOnSelect: true,
|
|
|
debug: false,
|
|
|
dropdownAutoWidth: false,
|
|
|
escapeMarkup: Utils.escapeMarkup,
|
|
|
language: {},
|
|
|
matcher: matcher,
|
|
|
minimumInputLength: 0,
|
|
|
maximumInputLength: 0,
|
|
|
maximumSelectionLength: 0,
|
|
|
minimumResultsForSearch: 0,
|
|
|
selectOnClose: false,
|
|
|
scrollAfterSelect: false,
|
|
|
sorter: function (data) {
|
|
|
return data;
|
|
|
},
|
|
|
templateResult: function (result) {
|
|
|
return result.text;
|
|
|
},
|
|
|
templateSelection: function (selection) {
|
|
|
return selection.text;
|
|
|
},
|
|
|
theme: 'default',
|
|
|
width: 'resolve'
|
|
|
};
|
|
|
};
|
|
|
|
|
|
Defaults.prototype.applyFromElement = function (options, $element) {
|
|
|
var optionLanguage = options.language;
|
|
|
var defaultLanguage = this.defaults.language;
|
|
|
var elementLanguage = $element.prop('lang');
|
|
|
var parentLanguage = $element.closest('[lang]').prop('lang');
|
|
|
|
|
|
var languages = Array.prototype.concat.call(
|
|
|
this._resolveLanguage(elementLanguage),
|
|
|
this._resolveLanguage(optionLanguage),
|
|
|
this._resolveLanguage(defaultLanguage),
|
|
|
this._resolveLanguage(parentLanguage)
|
|
|
);
|
|
|
|
|
|
options.language = languages;
|
|
|
|
|
|
return options;
|
|
|
};
|
|
|
|
|
|
Defaults.prototype._resolveLanguage = function (language) {
|
|
|
if (!language) {
|
|
|
return [];
|
|
|
}
|
|
|
|
|
|
if ($.isEmptyObject(language)) {
|
|
|
return [];
|
|
|
}
|
|
|
|
|
|
if ($.isPlainObject(language)) {
|
|
|
return [language];
|
|
|
}
|
|
|
|
|
|
var languages;
|
|
|
|
|
|
if (!Array.isArray(language)) {
|
|
|
languages = [language];
|
|
|
} else {
|
|
|
languages = language;
|
|
|
}
|
|
|
|
|
|
var resolvedLanguages = [];
|
|
|
|
|
|
for (var l = 0; l < languages.length; l++) {
|
|
|
resolvedLanguages.push(languages[l]);
|
|
|
|
|
|
if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {
|
|
|
// Extract the region information if it is included
|
|
|
var languageParts = languages[l].split('-');
|
|
|
var baseLanguage = languageParts[0];
|
|
|
|
|
|
resolvedLanguages.push(baseLanguage);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return resolvedLanguages;
|
|
|
};
|
|
|
|
|
|
Defaults.prototype._processTranslations = function (languages, debug) {
|
|
|
var translations = new Translation();
|
|
|
|
|
|
for (var l = 0; l < languages.length; l++) {
|
|
|
var languageData = new Translation();
|
|
|
|
|
|
var language = languages[l];
|
|
|
|
|
|
if (typeof language === 'string') {
|
|
|
try {
|
|
|
// Try to load it with the original name
|
|
|
languageData = Translation.loadPath(language);
|
|
|
} catch (e) {
|
|
|
try {
|
|
|
// If we couldn't load it, check if it wasn't the full path
|
|
|
language = this.defaults.amdLanguageBase + language;
|
|
|
languageData = Translation.loadPath(language);
|
|
|
} catch (ex) {
|
|
|
// The translation could not be loaded at all. Sometimes this is
|
|
|
// because of a configuration problem, other times this can be
|
|
|
// because of how Select2 helps load all possible translation files
|
|
|
if (debug && window.console && console.warn) {
|
|
|
console.warn(
|
|
|
'Select2: The language file for "' + language + '" could ' +
|
|
|
'not be automatically loaded. A fallback will be used instead.'
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} else if ($.isPlainObject(language)) {
|
|
|
languageData = new Translation(language);
|
|
|
} else {
|
|
|
languageData = language;
|
|
|
}
|
|
|
|
|
|
translations.extend(languageData);
|
|
|
}
|
|
|
|
|
|
return translations;
|
|
|
};
|
|
|
|
|
|
Defaults.prototype.set = function (key, value) {
|
|
|
var camelKey = $.camelCase(key);
|
|
|
|
|
|
var data = {};
|
|
|
data[camelKey] = value;
|
|
|
|
|
|
var convertedData = Utils._convertData(data);
|
|
|
|
|
|
$.extend(true, this.defaults, convertedData);
|
|
|
};
|
|
|
|
|
|
var defaults = new Defaults();
|
|
|
|
|
|
return defaults;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/options',[
|
|
|
'jquery',
|
|
|
'./defaults',
|
|
|
'./utils'
|
|
|
], function ($, Defaults, Utils) {
|
|
|
function Options (options, $element) {
|
|
|
this.options = options;
|
|
|
|
|
|
if ($element != null) {
|
|
|
this.fromElement($element);
|
|
|
}
|
|
|
|
|
|
if ($element != null) {
|
|
|
this.options = Defaults.applyFromElement(this.options, $element);
|
|
|
}
|
|
|
|
|
|
this.options = Defaults.apply(this.options);
|
|
|
}
|
|
|
|
|
|
Options.prototype.fromElement = function ($e) {
|
|
|
var excludedData = ['select2'];
|
|
|
|
|
|
if (this.options.multiple == null) {
|
|
|
this.options.multiple = $e.prop('multiple');
|
|
|
}
|
|
|
|
|
|
if (this.options.disabled == null) {
|
|
|
this.options.disabled = $e.prop('disabled');
|
|
|
}
|
|
|
|
|
|
if (this.options.autocomplete == null && $e.prop('autocomplete')) {
|
|
|
this.options.autocomplete = $e.prop('autocomplete');
|
|
|
}
|
|
|
|
|
|
if (this.options.dir == null) {
|
|
|
if ($e.prop('dir')) {
|
|
|
this.options.dir = $e.prop('dir');
|
|
|
} else if ($e.closest('[dir]').prop('dir')) {
|
|
|
this.options.dir = $e.closest('[dir]').prop('dir');
|
|
|
} else {
|
|
|
this.options.dir = 'ltr';
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$e.prop('disabled', this.options.disabled);
|
|
|
$e.prop('multiple', this.options.multiple);
|
|
|
|
|
|
if (Utils.GetData($e[0], 'select2Tags')) {
|
|
|
if (this.options.debug && window.console && console.warn) {
|
|
|
console.warn(
|
|
|
'Select2: The `data-select2-tags` attribute has been changed to ' +
|
|
|
'use the `data-data` and `data-tags="true"` attributes and will be ' +
|
|
|
'removed in future versions of Select2.'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));
|
|
|
Utils.StoreData($e[0], 'tags', true);
|
|
|
}
|
|
|
|
|
|
if (Utils.GetData($e[0], 'ajaxUrl')) {
|
|
|
if (this.options.debug && window.console && console.warn) {
|
|
|
console.warn(
|
|
|
'Select2: The `data-ajax-url` attribute has been changed to ' +
|
|
|
'`data-ajax--url` and support for the old attribute will be removed' +
|
|
|
' in future versions of Select2.'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
$e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));
|
|
|
Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));
|
|
|
}
|
|
|
|
|
|
var dataset = {};
|
|
|
|
|
|
function upperCaseLetter(_, letter) {
|
|
|
return letter.toUpperCase();
|
|
|
}
|
|
|
|
|
|
// Pre-load all of the attributes which are prefixed with `data-`
|
|
|
for (var attr = 0; attr < $e[0].attributes.length; attr++) {
|
|
|
var attributeName = $e[0].attributes[attr].name;
|
|
|
var prefix = 'data-';
|
|
|
|
|
|
if (attributeName.substr(0, prefix.length) == prefix) {
|
|
|
// Get the contents of the attribute after `data-`
|
|
|
var dataName = attributeName.substring(prefix.length);
|
|
|
|
|
|
// Get the data contents from the consistent source
|
|
|
// This is more than likely the jQuery data helper
|
|
|
var dataValue = Utils.GetData($e[0], dataName);
|
|
|
|
|
|
// camelCase the attribute name to match the spec
|
|
|
var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);
|
|
|
|
|
|
// Store the data attribute contents into the dataset since
|
|
|
dataset[camelDataName] = dataValue;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// Prefer the element's `dataset` attribute if it exists
|
|
|
// jQuery 1.x does not correctly handle data attributes with multiple dashes
|
|
|
if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {
|
|
|
dataset = $.extend(true, {}, $e[0].dataset, dataset);
|
|
|
}
|
|
|
|
|
|
// Prefer our internal data cache if it exists
|
|
|
var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);
|
|
|
|
|
|
data = Utils._convertData(data);
|
|
|
|
|
|
for (var key in data) {
|
|
|
if (excludedData.indexOf(key) > -1) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
if ($.isPlainObject(this.options[key])) {
|
|
|
$.extend(this.options[key], data[key]);
|
|
|
} else {
|
|
|
this.options[key] = data[key];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return this;
|
|
|
};
|
|
|
|
|
|
Options.prototype.get = function (key) {
|
|
|
return this.options[key];
|
|
|
};
|
|
|
|
|
|
Options.prototype.set = function (key, val) {
|
|
|
this.options[key] = val;
|
|
|
};
|
|
|
|
|
|
return Options;
|
|
|
});
|
|
|
|
|
|
S2.define('select2/core',[
|
|
|
'jquery',
|
|
|
'./options',
|
|
|
'./utils',
|
|
|
'./keys'
|
|
|
], function ($, Options, Utils, KEYS) {
|
|
|
var Select2 = function ($element, options) {
|
|
|
if (Utils.GetData($element[0], 'select2') != null) {
|
|
|
Utils.GetData($element[0], 'select2').destroy();
|
|
|
}
|
|
|
|
|
|
this.$element = $element;
|
|
|
|
|
|
this.id = this._generateId($element);
|
|
|
|
|
|
options = options || {};
|
|
|
|
|
|
this.options = new Options(options, $element);
|
|
|
|
|
|
Select2.__super__.constructor.call(this);
|
|
|
|
|
|
// Set up the tabindex
|
|
|
|
|
|
var tabindex = $element.attr('tabindex') || 0;
|
|
|
Utils.StoreData($element[0], 'old-tabindex', tabindex);
|
|
|
$element.attr('tabindex', '-1');
|
|
|
|
|
|
// Set up containers and adapters
|
|
|
|
|
|
var DataAdapter = this.options.get('dataAdapter');
|
|
|
this.dataAdapter = new DataAdapter($element, this.options);
|
|
|
|
|
|
var $container = this.render();
|
|
|
|
|
|
this._placeContainer($container);
|
|
|
|
|
|
var SelectionAdapter = this.options.get('selectionAdapter');
|
|
|
this.selection = new SelectionAdapter($element, this.options);
|
|
|
this.$selection = this.selection.render();
|
|
|
|
|
|
this.selection.position(this.$selection, $container);
|
|
|
|
|
|
var DropdownAdapter = this.options.get('dropdownAdapter');
|
|
|
this.dropdown = new DropdownAdapter($element, this.options);
|
|
|
this.$dropdown = this.dropdown.render();
|
|
|
|
|
|
this.dropdown.position(this.$dropdown, $container);
|
|
|
|
|
|
var ResultsAdapter = this.options.get('resultsAdapter');
|
|
|
this.results = new ResultsAdapter($element, this.options, this.dataAdapter);
|
|
|
this.$results = this.results.render();
|
|
|
|
|
|
this.results.position(this.$results, this.$dropdown);
|
|
|
|
|
|
// Bind events
|
|
|
|
|
|
var self = this;
|
|
|
|
|
|
// Bind the container to all of the adapters
|
|
|
this._bindAdapters();
|
|
|
|
|
|
// Register any DOM event handlers
|
|
|
this._registerDomEvents();
|
|
|
|
|
|
// Register any internal event handlers
|
|
|
this._registerDataEvents();
|
|
|
this._registerSelectionEvents();
|
|
|
this._registerDropdownEvents();
|
|
|
this._registerResultsEvents();
|
|
|
this._registerEvents();
|
|
|
|
|
|
// Set the initial state
|
|
|
this.dataAdapter.current(function (initialData) {
|
|
|
self.trigger('selection:update', {
|
|
|
data: initialData
|
|
|
});
|
|
|
});
|
|
|
|
|
|
// Hide the original select
|
|
|
$element[0].classList.add('select2-hidden-accessible');
|
|
|
$element.attr('aria-hidden', 'true');
|
|
|
|
|
|
// Synchronize any monitored attributes
|
|
|
this._syncAttributes();
|
|
|
|
|
|
Utils.StoreData($element[0], 'select2', this);
|
|
|
|
|
|
// Ensure backwards compatibility with $element.data('select2').
|
|
|
$element.data('select2', this);
|
|
|
};
|
|
|
|
|
|
Utils.Extend(Select2, Utils.Observable);
|
|
|
|
|
|
Select2.prototype._generateId = function ($element) {
|
|
|
var id = '';
|
|
|
|
|
|
if ($element.attr('id') != null) {
|
|
|
id = $element.attr('id');
|
|
|
} else if ($element.attr('name') != null) {
|
|
|
id = $element.attr('name') + '-' + Utils.generateChars(2);
|
|
|
} else {
|
|
|
id = Utils.generateChars(4);
|
|
|
}
|
|
|
|
|
|
id = id.replace(/(:|\.|\[|\]|,)/g, '');
|
|
|
id = 'select2-' + id;
|
|
|
|
|
|
return id;
|
|
|
};
|
|
|
|
|
|
Select2.prototype._placeContainer = function ($container) {
|
|
|
$container.insertAfter(this.$element);
|
|
|
|
|
|
var width = this._resolveWidth(this.$element, this.options.get('width'));
|
|
|
|
|
|
if (width != null) {
|
|
|
$container.css('width', width);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Select2.prototype._resolveWidth = function ($element, method) {
|
|
|
var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;
|
|
|
|
|
|
if (method == 'resolve') {
|
|
|
var styleWidth = this._resolveWidth($element, 'style');
|
|
|
|
|
|
if (styleWidth != null) {
|
|
|
return styleWidth;
|
|
|
}
|
|
|
|
|
|
return this._resolveWidth($element, 'element');
|
|
|
}
|
|
|
|
|
|
if (method == 'element') {
|
|
|
var elementWidth = $element.outerWidth(false);
|
|
|
|
|
|
if (elementWidth <= 0) {
|
|
|
return 'auto';
|
|
|
}
|
|
|
|
|
|
return elementWidth + 'px';
|
|
|
}
|
|
|
|
|
|
if (method == 'style') {
|
|
|
var style = $element.attr('style');
|
|
|
|
|
|
if (typeof(style) !== 'string') {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
var attrs = style.split(';');
|
|
|
|
|
|
for (var i = 0, l = attrs.length; i < l; i = i + 1) {
|
|
|
var attr = attrs[i].replace(/\s/g, '');
|
|
|
var matches = attr.match(WIDTH);
|
|
|
|
|
|
if (matches !== null && matches.length >= 1) {
|
|
|
return matches[1];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
if (method == 'computedstyle') {
|
|
|
var computedStyle = window.getComputedStyle($element[0]);
|
|
|
|
|
|
return computedStyle.width;
|
|
|
}
|
|
|
|
|
|
return method;
|
|
|
};
|
|
|
|
|
|
Select2.prototype._bindAdapters = function () {
|
|
|
this.dataAdapter.bind(this, this.$container);
|
|
|
this.selection.bind(this, this.$container);
|
|
|
|
|
|
this.dropdown.bind(this, this.$container);
|
|
|
this.results.bind(this, this.$container);
|
|
|
};
|
|
|
|
|
|
Select2.prototype._registerDomEvents = function () {
|
|
|
var self = this;
|
|
|
|
|
|
this.$element.on('change.select2', function () {
|
|
|
self.dataAdapter.current(function (data) {
|
|
|
self.trigger('selection:update', {
|
|
|
data: data
|
|
|
});
|
|
|
});
|
|
|
});
|
|
|
|
|
|
this.$element.on('focus.select2', function (evt) {
|
|
|
self.trigger('focus', evt);
|
|
|
});
|
|
|
|
|
|
this._syncA = Utils.bind(this._syncAttributes, this);
|
|
|
this._syncS = Utils.bind(this._syncSubtree, this);
|
|
|
|
|
|
this._observer = new window.MutationObserver(function (mutations) {
|
|
|
self._syncA();
|
|
|
self._syncS(mutations);
|
|
|
});
|
|
|
this._observer.observe(this.$element[0], {
|
|
|
attributes: true,
|
|
|
childList: true,
|
|
|
subtree: false
|
|
|
});
|
|
|
};
|
|
|
|
|
|
Select2.prototype._registerDataEvents = function () {
|
|
|
var self = this;
|
|
|
|
|
|
this.dataAdapter.on('*', function (name, params) {
|
|
|
self.trigger(name, params);
|
|
|
});
|
|
|
};
|
|
|
|
|
|
Select2.prototype._registerSelectionEvents = function () {
|
|
|
var self = this;
|
|
|
var nonRelayEvents = ['toggle', 'focus'];
|
|
|
|
|
|
this.selection.on('toggle', function () {
|
|
|
self.toggleDropdown();
|
|
|
});
|
|
|
|
|
|
this.selection.on('focus', function (params) {
|
|
|
self.focus(params);
|
|
|
});
|
|
|
|
|
|
this.selection.on('*', function (name, params) {
|
|
|
if (nonRelayEvents.indexOf(name) !== -1) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
self.trigger(name, params);
|
|
|
});
|
|
|
};
|
|
|
|
|
|
Select2.prototype._registerDropdownEvents = function () {
|
|
|
var self = this;
|
|
|
|
|
|
this.dropdown.on('*', function (name, params) {
|
|
|
self.trigger(name, params);
|
|
|
});
|
|
|
};
|
|
|
|
|
|
Select2.prototype._registerResultsEvents = function () {
|
|
|
var self = this;
|
|
|
|
|
|
this.results.on('*', function (name, params) {
|
|
|
self.trigger(name, params);
|
|
|
});
|
|
|
};
|
|
|
|
|
|
Select2.prototype._registerEvents = function () {
|
|
|
var self = this;
|
|
|
|
|
|
this.on('open', function () {
|
|
|
self.$container[0].classList.add('select2-container--open');
|
|
|
});
|
|
|
|
|
|
this.on('close', function () {
|
|
|
self.$container[0].classList.remove('select2-container--open');
|
|
|
});
|
|
|
|
|
|
this.on('enable', function () {
|
|
|
self.$container[0].classList.remove('select2-container--disabled');
|
|
|
});
|
|
|
|
|
|
this.on('disable', function () {
|
|
|
self.$container[0].classList.add('select2-container--disabled');
|
|
|
});
|
|
|
|
|
|
this.on('blur', function () {
|
|
|
self.$container[0].classList.remove('select2-container--focus');
|
|
|
});
|
|
|
|
|
|
this.on('query', function (params) {
|
|
|
if (!self.isOpen()) {
|
|
|
self.trigger('open', {});
|
|
|
}
|
|
|
|
|
|
this.dataAdapter.query(params, function (data) {
|
|
|
self.trigger('results:all', {
|
|
|
data: data,
|
|
|
query: params
|
|
|
});
|
|
|
});
|
|
|
});
|
|
|
|
|
|
this.on('query:append', function (params) {
|
|
|
this.dataAdapter.query(params, function (data) {
|
|
|
self.trigger('results:append', {
|
|
|
data: data,
|
|
|
query: params
|
|
|
});
|
|
|
});
|
|
|
});
|
|
|
|
|
|
this.on('keypress', function (evt) {
|
|
|
var key = evt.which;
|
|
|
|
|
|
if (self.isOpen()) {
|
|
|
if (key === KEYS.ESC || (key === KEYS.UP && evt.altKey)) {
|
|
|
self.close(evt);
|
|
|
|
|
|
evt.preventDefault();
|
|
|
} else if (key === KEYS.ENTER || key === KEYS.TAB) {
|
|
|
self.trigger('results:select', {});
|
|
|
|
|
|
evt.preventDefault();
|
|
|
} else if ((key === KEYS.SPACE && evt.ctrlKey)) {
|
|
|
self.trigger('results:toggle', {});
|
|
|
|
|
|
evt.preventDefault();
|
|
|
} else if (key === KEYS.UP) {
|
|
|
self.trigger('results:previous', {});
|
|
|
|
|
|
evt.preventDefault();
|
|
|
} else if (key === KEYS.DOWN) {
|
|
|
self.trigger('results:next', {});
|
|
|
|
|
|
evt.preventDefault();
|
|
|
}
|
|
|
} else {
|
|
|
if (key === KEYS.ENTER || key === KEYS.SPACE ||
|
|
|
(key === KEYS.DOWN && evt.altKey)) {
|
|
|
self.open();
|
|
|
|
|
|
evt.preventDefault();
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
|
|
|
Select2.prototype._syncAttributes = function () {
|
|
|
this.options.set('disabled', this.$element.prop('disabled'));
|
|
|
|
|
|
if (this.isDisabled()) {
|
|
|
if (this.isOpen()) {
|
|
|
this.close();
|
|
|
}
|
|
|
|
|
|
this.trigger('disable', {});
|
|
|
} else {
|
|
|
this.trigger('enable', {});
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Select2.prototype._isChangeMutation = function (mutations) {
|
|
|
var self = this;
|
|
|
|
|
|
if (mutations.addedNodes && mutations.addedNodes.length > 0) {
|
|
|
for (var n = 0; n < mutations.addedNodes.length; n++) {
|
|
|
var node = mutations.addedNodes[n];
|
|
|
|
|
|
if (node.selected) {
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
} else if (mutations.removedNodes && mutations.removedNodes.length > 0) {
|
|
|
return true;
|
|
|
} else if (Array.isArray(mutations)) {
|
|
|
return mutations.some(function (mutation) {
|
|
|
return self._isChangeMutation(mutation);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
};
|
|
|
|
|
|
Select2.prototype._syncSubtree = function (mutations) {
|
|
|
var changed = this._isChangeMutation(mutations);
|
|
|
var self = this;
|
|
|
|
|
|
// Only re-pull the data if we think there is a change
|
|
|
if (changed) {
|
|
|
this.dataAdapter.current(function (currentData) {
|
|
|
self.trigger('selection:update', {
|
|
|
data: currentData
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Override the trigger method to automatically trigger pre-events when
|
|
|
* there are events that can be prevented.
|
|
|
*/
|
|
|
Select2.prototype.trigger = function (name, args) {
|
|
|
var actualTrigger = Select2.__super__.trigger;
|
|
|
var preTriggerMap = {
|
|
|
'open': 'opening',
|
|
|
'close': 'closing',
|
|
|
'select': 'selecting',
|
|
|
'unselect': 'unselecting',
|
|
|
'clear': 'clearing'
|
|
|
};
|
|
|
|
|
|
if (args === undefined) {
|
|
|
args = {};
|
|
|
}
|
|
|
|
|
|
if (name in preTriggerMap) {
|
|
|
var preTriggerName = preTriggerMap[name];
|
|
|
var preTriggerArgs = {
|
|
|
prevented: false,
|
|
|
name: name,
|
|
|
args: args
|
|
|
};
|
|
|
|
|
|
actualTrigger.call(this, preTriggerName, preTriggerArgs);
|
|
|
|
|
|
if (preTriggerArgs.prevented) {
|
|
|
args.prevented = true;
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
actualTrigger.call(this, name, args);
|
|
|
};
|
|
|
|
|
|
Select2.prototype.toggleDropdown = function () {
|
|
|
if (this.isDisabled()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (this.isOpen()) {
|
|
|
this.close();
|
|
|
} else {
|
|
|
this.open();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Select2.prototype.open = function () {
|
|
|
if (this.isOpen()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (this.isDisabled()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
this.trigger('query', {});
|
|
|
};
|
|
|
|
|
|
Select2.prototype.close = function (evt) {
|
|
|
if (!this.isOpen()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
this.trigger('close', { originalEvent : evt });
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Helper method to abstract the "enabled" (not "disabled") state of this
|
|
|
* object.
|
|
|
*
|
|
|
* @return {true} if the instance is not disabled.
|
|
|
* @return {false} if the instance is disabled.
|
|
|
*/
|
|
|
Select2.prototype.isEnabled = function () {
|
|
|
return !this.isDisabled();
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Helper method to abstract the "disabled" state of this object.
|
|
|
*
|
|
|
* @return {true} if the disabled option is true.
|
|
|
* @return {false} if the disabled option is false.
|
|
|
*/
|
|
|
Select2.prototype.isDisabled = function () {
|
|
|
return this.options.get('disabled');
|
|
|
};
|
|
|
|
|
|
Select2.prototype.isOpen = function () {
|
|
|
return this.$container[0].classList.contains('select2-container--open');
|
|
|
};
|
|
|
|
|
|
Select2.prototype.hasFocus = function () {
|
|
|
return this.$container[0].classList.contains('select2-container--focus');
|
|
|
};
|
|
|
|
|
|
Select2.prototype.focus = function (data) {
|
|
|
// No need to re-trigger focus events if we are already focused
|
|
|
if (this.hasFocus()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
this.$container[0].classList.add('select2-container--focus');
|
|
|
this.trigger('focus', {});
|
|
|
};
|
|
|
|
|
|
Select2.prototype.enable = function (args) {
|
|
|
if (this.options.get('debug') && window.console && console.warn) {
|
|
|
console.warn(
|
|
|
'Select2: The `select2("enable")` method has been deprecated and will' +
|
|
|
' be removed in later Select2 versions. Use $element.prop("disabled")' +
|
|
|
' instead.'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (args == null || args.length === 0) {
|
|
|
args = [true];
|
|
|
}
|
|
|
|
|
|
var disabled = !args[0];
|
|
|
|
|
|
this.$element.prop('disabled', disabled);
|
|
|
};
|
|
|
|
|
|
Select2.prototype.data = function () {
|
|
|
if (this.options.get('debug') &&
|
|
|
arguments.length > 0 && window.console && console.warn) {
|
|
|
console.warn(
|
|
|
'Select2: Data can no longer be set using `select2("data")`. You ' +
|
|
|
'should consider setting the value instead using `$element.val()`.'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
var data = [];
|
|
|
|
|
|
this.dataAdapter.current(function (currentData) {
|
|
|
data = currentData;
|
|
|
});
|
|
|
|
|
|
return data;
|
|
|
};
|
|
|
|
|
|
Select2.prototype.val = function (args) {
|
|
|
if (this.options.get('debug') && window.console && console.warn) {
|
|
|
console.warn(
|
|
|
'Select2: The `select2("val")` method has been deprecated and will be' +
|
|
|
' removed in later Select2 versions. Use $element.val() instead.'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (args == null || args.length === 0) {
|
|
|
return this.$element.val();
|
|
|
}
|
|
|
|
|
|
var newVal = args[0];
|
|
|
|
|
|
if (Array.isArray(newVal)) {
|
|
|
newVal = newVal.map(function (obj) {
|
|
|
return obj.toString();
|
|
|
});
|
|
|
}
|
|
|
|
|
|
this.$element.val(newVal).trigger('input').trigger('change');
|
|
|
};
|
|
|
|
|
|
Select2.prototype.destroy = function () {
|
|
|
Utils.RemoveData(this.$container[0]);
|
|
|
this.$container.remove();
|
|
|
|
|
|
this._observer.disconnect();
|
|
|
this._observer = null;
|
|
|
|
|
|
this._syncA = null;
|
|
|
this._syncS = null;
|
|
|
|
|
|
this.$element.off('.select2');
|
|
|
this.$element.attr('tabindex',
|
|
|
Utils.GetData(this.$element[0], 'old-tabindex'));
|
|
|
|
|
|
this.$element[0].classList.remove('select2-hidden-accessible');
|
|
|
this.$element.attr('aria-hidden', 'false');
|
|
|
Utils.RemoveData(this.$element[0]);
|
|
|
this.$element.removeData('select2');
|
|
|
|
|
|
this.dataAdapter.destroy();
|
|
|
this.selection.destroy();
|
|
|
this.dropdown.destroy();
|
|
|
this.results.destroy();
|
|
|
|
|
|
this.dataAdapter = null;
|
|
|
this.selection = null;
|
|
|
this.dropdown = null;
|
|
|
this.results = null;
|
|
|
};
|
|
|
|
|
|
Select2.prototype.render = function () {
|
|
|
var $container = $(
|
|
|
'<span class="select2 select2-container">' +
|
|
|
'<span class="selection"></span>' +
|
|
|
'<span class="dropdown-wrapper" aria-hidden="true"></span>' +
|
|
|
'</span>'
|
|
|
);
|
|
|
|
|
|
$container.attr('dir', this.options.get('dir'));
|
|
|
|
|
|
this.$container = $container;
|
|
|
|
|
|
this.$container[0].classList
|
|
|
.add('select2-container--' + this.options.get('theme'));
|
|
|
|
|
|
Utils.StoreData($container[0], 'element', this.$element);
|
|
|
|
|
|
return $container;
|
|
|
};
|
|
|
|
|
|
return Select2;
|
|
|
});
|
|
|
|
|
|
S2.define('jquery-mousewheel',[
|
|
|
'jquery'
|
|
|
], function ($) {
|
|
|
// Used to shim jQuery.mousewheel for non-full builds.
|
|
|
return $;
|
|
|
});
|
|
|
|
|
|
S2.define('jquery.select2',[
|
|
|
'jquery',
|
|
|
'jquery-mousewheel',
|
|
|
|
|
|
'./select2/core',
|
|
|
'./select2/defaults',
|
|
|
'./select2/utils'
|
|
|
], function ($, _, Select2, Defaults, Utils) {
|
|
|
if ($.fn.select2 == null) {
|
|
|
// All methods that should return the element
|
|
|
var thisMethods = ['open', 'close', 'destroy'];
|
|
|
|
|
|
$.fn.select2 = function (options) {
|
|
|
options = options || {};
|
|
|
|
|
|
if (typeof options === 'object') {
|
|
|
this.each(function () {
|
|
|
var instanceOptions = $.extend(true, {}, options);
|
|
|
|
|
|
var instance = new Select2($(this), instanceOptions);
|
|
|
});
|
|
|
|
|
|
return this;
|
|
|
} else if (typeof options === 'string') {
|
|
|
var ret;
|
|
|
var args = Array.prototype.slice.call(arguments, 1);
|
|
|
|
|
|
this.each(function () {
|
|
|
var instance = Utils.GetData(this, 'select2');
|
|
|
|
|
|
if (instance == null && window.console && console.error) {
|
|
|
console.error(
|
|
|
'The select2(\'' + options + '\') method was called on an ' +
|
|
|
'element that is not using Select2.'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
ret = instance[options].apply(instance, args);
|
|
|
});
|
|
|
|
|
|
// Check if we should be returning `this`
|
|
|
if (thisMethods.indexOf(options) > -1) {
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
return ret;
|
|
|
} else {
|
|
|
throw new Error('Invalid arguments for Select2: ' + options);
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
|
|
|
if ($.fn.select2.defaults == null) {
|
|
|
$.fn.select2.defaults = Defaults;
|
|
|
}
|
|
|
|
|
|
return Select2;
|
|
|
});
|
|
|
|
|
|
// Return the AMD loader configuration so it can be used outside of this file
|
|
|
return {
|
|
|
define: S2.define,
|
|
|
require: S2.require
|
|
|
};
|
|
|
}());
|
|
|
|
|
|
// Autoload the jQuery bindings
|
|
|
// We know that all of the modules exist above this, so we're safe
|
|
|
var select2 = S2.require('jquery.select2');
|
|
|
|
|
|
// Hold the AMD module references on the jQuery function that was just loaded
|
|
|
// This allows Select2 to use the internal loader outside of this file, such
|
|
|
// as in the language files.
|
|
|
jQuery.fn.select2.amd = S2;
|
|
|
|
|
|
// Return the Select2 instance for anyone who is importing it.
|
|
|
return select2;
|
|
|
}));
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/uprogress/src/js/uprogress.js":
|
|
|
/*!****************************************************!*\
|
|
|
!*** ./node_modules/uprogress/src/js/uprogress.js ***!
|
|
|
\****************************************************/
|
|
|
/*! exports provided: default */
|
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return UProgressAPI; });
|
|
|
/* harmony import */ var mout_function_debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mout/function/debounce */ "./node_modules/mout/function/debounce.js");
|
|
|
/* harmony import */ var mout_function_debounce__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mout_function_debounce__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var mout_math_clamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/math/clamp */ "./node_modules/mout/math/clamp.js");
|
|
|
/* harmony import */ var mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_math_clamp__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util */ "./node_modules/uprogress/src/js/util.js");
|
|
|
/* eslint-env jasmine, jquery, browser */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
* ------------------------------------------------------------------------
|
|
|
* Global variables
|
|
|
* ------------------------------------------------------------------------
|
|
|
*/
|
|
|
|
|
|
/**
|
|
|
* Used to generate sequential id to save active UProgresses in allProgress
|
|
|
* @private
|
|
|
* @type {number}
|
|
|
*/
|
|
|
let keyCounter = 0;
|
|
|
/**
|
|
|
* Store active UProgresses (so the resize listener can be shared across instances)
|
|
|
*
|
|
|
* @private
|
|
|
* @type {Object}
|
|
|
*/
|
|
|
const allUProgress = {};
|
|
|
/**
|
|
|
* Default options for all new {@link UProgress} instances.
|
|
|
*
|
|
|
* @private
|
|
|
* @type {Object}
|
|
|
* @see UProgress.default
|
|
|
*/
|
|
|
const DEFAULT = Object.seal({
|
|
|
rtl: false,
|
|
|
start: 0.01,
|
|
|
end: 0.99,
|
|
|
duration: 25000,
|
|
|
doneDuration: 100,
|
|
|
fadeDuration: 200,
|
|
|
class: 'uprogress',
|
|
|
barClass: 'bar',
|
|
|
blurClass: 'blur',
|
|
|
resizeDebounce: 300,
|
|
|
});
|
|
|
/**
|
|
|
* Global function registered once to the window `resize` event. On window `resize` event, calls {@link UProgress#refresh} for each exixsting instances.
|
|
|
* Debounced with threshold defined in `UProgress.Default.resizeDebounce`.
|
|
|
*
|
|
|
* @private
|
|
|
* @type {function}
|
|
|
*/
|
|
|
const _onResize = mout_function_debounce__WEBPACK_IMPORTED_MODULE_0___default()(() => {
|
|
|
for (let i = 0, keys = Object.keys(allUProgress), {length} = keys; i < length; i++) {
|
|
|
const uProgress = allUProgress[keys[i]];
|
|
|
|
|
|
if (uProgress._parent.contains(uProgress._wrapper)) {
|
|
|
uProgress.refresh();
|
|
|
} else {
|
|
|
uProgress.destroy();
|
|
|
}
|
|
|
}
|
|
|
}, DEFAULT.resizeDebounce);
|
|
|
|
|
|
/*
|
|
|
* ------------------------------------------------------------------------
|
|
|
* Class Definition
|
|
|
* ------------------------------------------------------------------------
|
|
|
*/
|
|
|
|
|
|
/**
|
|
|
* Creates and control a µProgress.
|
|
|
* @class
|
|
|
*/
|
|
|
class UProgress {
|
|
|
/**
|
|
|
* - Create a new UProgress instance.
|
|
|
* - Create a `div` for the µProgress and add it to the `parent`.
|
|
|
* - Register to the `resize` event.
|
|
|
*
|
|
|
* @instance
|
|
|
* @constructor
|
|
|
* @param {HTMLElement} [parent=document.body] The `HTMLElement` on which the µProgress will stand on top of.
|
|
|
* @param {Object} [opts] The µProgress configutation.
|
|
|
* @param {boolean} [rtl=false] `true` to move the µProgress from right to left, `false` for left to right.
|
|
|
* @param {number} [opts.start=0.01] The position in percentage (.35 is 35%, 1 is 100%) at which the µProgress starts.
|
|
|
* @param {number} [opts.end=0.99] The position in percentage (.35 is 35%, 1 is 100%) the µProgress is moving toward when started. Once reached, it will stop until {@link UProgress#set} or {@link UProgress#done} are called.
|
|
|
* @param {number} [opts.duration=25000] The durarion in ms it takes for the µProgress to go from `opts.start` to `opts.end`.
|
|
|
* @param {number} [opts.doneDuration=100] The duration in ms that the µProgress take to complete when {@link UProgress#done} is called.
|
|
|
* @param {number} [opts.fadeDuration=200] The duration in ms the µProgress takes to fade out after it has completed.
|
|
|
* @param {number} [opts.class='uprogress'] The CSS class to set on the µProgress element.
|
|
|
* @param {number} [opts.barClass='bar'] The CSS class to set on the µProgress bar element.
|
|
|
* @param {number} [opts.blurClass='blur'] The CSS class to set on the µProgress blur element.
|
|
|
*
|
|
|
* @example
|
|
|
* Create a new µProgress on top of the viewport with default options.
|
|
|
* ```javascript
|
|
|
* const uProgress = new UProgress();
|
|
|
* uProgress.start();
|
|
|
* ```
|
|
|
*
|
|
|
* @example
|
|
|
* Create a new µProgress on top of a modal with default options.
|
|
|
* ```javascript
|
|
|
* const uProgress = new UProgress(document.getElementById('my-modal'));
|
|
|
* uProgress.start();
|
|
|
* ```
|
|
|
*
|
|
|
* @example
|
|
|
* Create a new µProgress on top of the viewport with custom options.
|
|
|
* ```javascript
|
|
|
* const uProgress = new UProgress({
|
|
|
* start: 0.05,
|
|
|
* duration: 30000
|
|
|
* });
|
|
|
* uProgress.start();
|
|
|
* ```
|
|
|
*/
|
|
|
constructor(parent = document.body, opts) {
|
|
|
this._wrapper = document.createElement('div');
|
|
|
this._progressbar = document.createElement('div');
|
|
|
this._blur = document.createElement('div');
|
|
|
if (arguments.length === 1 && !(parent instanceof HTMLElement)) {
|
|
|
this._parent = document.body;
|
|
|
this._options(parent, DEFAULT);
|
|
|
} else {
|
|
|
this._options(opts, DEFAULT);
|
|
|
this._parent = parent;
|
|
|
}
|
|
|
this._progressbar.className = this._opts.barClass;
|
|
|
this._progressbar.setAttribute('role', 'bar');
|
|
|
this._wrapper.appendChild(this._progressbar);
|
|
|
this._blur.className = this._opts.blurClass;
|
|
|
this._progressbar.appendChild(this._blur);
|
|
|
this._width =
|
|
|
this._parent === document.body
|
|
|
? Math.min(
|
|
|
document.body.scrollWidth,
|
|
|
document.documentElement.clientWidth,
|
|
|
document.documentElement.offsetWidth
|
|
|
)
|
|
|
: this._parent.clientWidth;
|
|
|
this._key = keyCounter;
|
|
|
this._started = false;
|
|
|
this._completing = false;
|
|
|
this._destroyed = false;
|
|
|
this._to = null;
|
|
|
this._from = null;
|
|
|
this._duration = null;
|
|
|
this._end = null;
|
|
|
this._rtl = false;
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["styles"])(this._wrapper, {
|
|
|
width: `${this._width}px`,
|
|
|
position: this._parent === document.body ? 'fixed' : 'absolute',
|
|
|
});
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["styles"])(this._progressbar, {
|
|
|
visibility: 'hidden',
|
|
|
width: `${this._width}px`,
|
|
|
});
|
|
|
this._parent.appendChild(this._wrapper);
|
|
|
if (Object.keys(allUProgress).length === 0) {
|
|
|
window.addEventListener('resize', _onResize);
|
|
|
}
|
|
|
allUProgress[this._key] = this;
|
|
|
keyCounter += 1;
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
* ------------------------------------------------------------------------
|
|
|
* Public methods
|
|
|
* ------------------------------------------------------------------------
|
|
|
*/
|
|
|
|
|
|
/**
|
|
|
* Display the µProgress and start its progress from `opts.start` to `opts.end` at a speed corresponding to `opts.duration`. Has no effect if the µProgress is already started.
|
|
|
*
|
|
|
* @method start
|
|
|
* @memberof UProgress
|
|
|
* @instance
|
|
|
* @return {boolean} `true` if the µProgress has started, `false` otherwise.
|
|
|
*
|
|
|
* @example
|
|
|
* Start the µProgress.
|
|
|
* ```javascript
|
|
|
* const uProgress = new UProgress();
|
|
|
* uProgress.start();
|
|
|
* // true
|
|
|
* ```
|
|
|
*/
|
|
|
start() {
|
|
|
if (!this._started && !this._completing) {
|
|
|
this._from = this._opts.start;
|
|
|
this._rtl = this._opts.rtl;
|
|
|
this._wrapper.className = `${this._opts.class}${this._rtl ? ' rtl' : ''}`;
|
|
|
// Initialize µProgress and position it at 'start'
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["styles"])(this._progressbar, {
|
|
|
transition: 'none',
|
|
|
transform: `translateX(${this._targetToPosition(this._opts.start)}px)`,
|
|
|
opacity: 1,
|
|
|
visibility: 'visible',
|
|
|
});
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["reflow"])(this._progressbar);
|
|
|
this._started = true;
|
|
|
return this._set(this._opts.duration, this._opts.end);
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Change the µProgress `target` and the speed at which it reaches it. Useful to give a more accurate progress of multiple sequentials tasks.
|
|
|
* If the value of `duration` parameter is equal or greater than 1, then the µProgress will automatically fade out once it reaches 100% progress (equivalent to calling {@link UProgress#done} with `opts.doneDuration` = `duration`).
|
|
|
*
|
|
|
* @method set
|
|
|
* @memberof UProgress
|
|
|
* @instance
|
|
|
* @param {number} duration The duration in ms the µProgress will take to reach its `target`.
|
|
|
* @param {number} [target] The position in percentage (.35 is 35%, 1 is 100%) the µProgress will moving toward. Once reached, it will stop until {@link UProgress#set} or {@link UProgress#done} are called. If `undefined` or `null`, the µProgress target will stay the same.
|
|
|
* @param {boolean} [force=false] `true` to set the requested `target` even if ti makes the µProgress moves backward.
|
|
|
* @return {boolean} `true` if the µProgress `duration` or `target` has been changed, `false` otherwise.
|
|
|
*
|
|
|
* @example
|
|
|
* Update µProgress speed based on tasks progress.
|
|
|
* ```javascript
|
|
|
* // doHeavyTask calls a callback when done and is expected to takes up to 7s
|
|
|
* // doLightTask calls a callback when done and is expected to takes up to 3s
|
|
|
* const uProgress = new UProgress({
|
|
|
* duration: 7000
|
|
|
* end: 0.7
|
|
|
* });
|
|
|
* uProgress.start();
|
|
|
* doHeavyTask(() => {
|
|
|
* // when heavy task is done
|
|
|
* uProgress.set(3000, .99);
|
|
|
* doLightTask(() => {
|
|
|
* // When light task is done
|
|
|
* uProgress.done();
|
|
|
* });
|
|
|
* });
|
|
|
* ```
|
|
|
*/
|
|
|
set(duration, target = this._to, force = false) {
|
|
|
if (this._started && !this._completing) {
|
|
|
if (target !== null && target >= 1) {
|
|
|
return this._done(false, duration, this._opts.fadeDuration);
|
|
|
}
|
|
|
if (target === null || force || this._status().progress < target) {
|
|
|
return this._set(duration, target === null ? this._to : Math.max(target, this._opts.start), force);
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Gracefully complete the µProgress by moving quickly to 100% progress and then fading out. It will moves to 100% at the speed corresponding to `opts.doneDuration` and then fade out with the duration of `opts.fadeDuration`.
|
|
|
* Has no effect if the µProgress is not started or if {@link UProgress#done}).
|
|
|
*
|
|
|
* @method done
|
|
|
* @memberof UProgress
|
|
|
* @instance
|
|
|
* @param {boolean} destroy `true` to automatically call {@link UProgress#destroy} once the µProgress has completed.
|
|
|
* @return {boolean} `true` if the µProgress is going to be completed, `false` otherwise.
|
|
|
*
|
|
|
* @example
|
|
|
* Complete the µProgress once the monitored task is done.
|
|
|
* ```javascript
|
|
|
* // `doTask` calls a callback when done
|
|
|
* const uProgress = new UProgress();
|
|
|
* uProgress.start();
|
|
|
* doTask(() => {
|
|
|
* // when task is done,
|
|
|
* uProgress.done();
|
|
|
* });
|
|
|
* ```
|
|
|
*/
|
|
|
done(destroy) {
|
|
|
return this._done(destroy, this._opts.doneDuration, this._opts.fadeDuration);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Status of the µProgress instance.
|
|
|
*
|
|
|
* @typedef {Object} Status
|
|
|
* @memberof UProgress
|
|
|
* @inner
|
|
|
* @property {number} target The position in percentage (.35 is 35%, 1 is 100%) the µProgress is moving toward. Once reached, it will stop until {@link UProgress#set} or {@link UProgress#done} are called.
|
|
|
* @property {number} duration The duration in ms left to reach the position `Status.target`. Only returned if the µProgress is started.
|
|
|
* @property {number} progress The current progress in percentage (.35 is 35%, 1 is 100%). Only returned if the µProgress is started.
|
|
|
*/
|
|
|
|
|
|
/**
|
|
|
* Get the {@link UProgress~Status} of the µProgress if it's not destroyed, `false` otherwise.
|
|
|
*
|
|
|
* @method status
|
|
|
* @memberof UProgress
|
|
|
* @instance
|
|
|
* @return {Status|boolean} The current {@link UProgress~Status} or `false`.
|
|
|
*
|
|
|
* @example
|
|
|
* Get the status.
|
|
|
* ```javascript
|
|
|
* const uProgress = new UProgress({duration: 20000});
|
|
|
* uProgress.start();
|
|
|
* setTimeout(() => {
|
|
|
* uProgress.status();
|
|
|
* // {target: 0.99, duration: 15000, progress: 0.25}
|
|
|
* }, 5000);
|
|
|
* ```
|
|
|
*/
|
|
|
status() {
|
|
|
return this._destroyed ? false : this._status();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Update the µProgress instance configuration.
|
|
|
*
|
|
|
* @method options
|
|
|
* @memberof UProgress
|
|
|
* @instance
|
|
|
* @param {Object} [opts] The µProgress configutation.
|
|
|
* @param {boolean} [rtl=false] `true` to move the µProgress from right to left, `false` for left to right.Will be used on next call to {@link UProgress#start}.
|
|
|
* @param {number} [opts.start=0.01] The position in percentage (.35 is 35%, 1 is 100%) at which the µProgress starts. Will be used on next call to {@link UProgress#start}.
|
|
|
* @param {number} [opts.end=0.99] The position in percentage (.35 is 35%, 1 is 100%) the µProgress is moving toward when started. Once reached, it will stop until {@link UProgress#set} or {@link UProgress#done} are called. Will be used on next call to {@link UProgress#start}.
|
|
|
* @param {number} [opts.duration=25000] The durarion in ms it takes for the µProgress to go from `opts.start` to `opts.end`. Will be used on next call to {@link UProgress#start}.
|
|
|
* @param {number} [opts.doneDuration=100] The duration in ms that the µProgress take to complete when {@link UProgress#done} is called. Will be used on next call to {@link UProgress#done}.
|
|
|
* @param {number} [opts.fadeDuration=200] The duration in ms the µProgress takes to fade out after it has completed. Will be used on next call to {@link UProgress#done}.
|
|
|
* @param {number} [opts.class='uprogress'] The CSS class to set on the the µProgress element. Will be applied right away.
|
|
|
* @param {number} [opts.barClass='bar'] The CSS class to set on the the µProgress bar element. Will be applied right away.
|
|
|
* @param {number} [opts.blurClass='blur'] The CSS class to set on the the µProgress blur element. Will be applied right away.
|
|
|
* @return {UProgress} this, chainable
|
|
|
*
|
|
|
* @example
|
|
|
* Change duration.
|
|
|
* ```javascript
|
|
|
* const uProgress = new UProgress();
|
|
|
* uProgress.options({duration: 20000}).start();
|
|
|
* setTimeout(() => {
|
|
|
* uProgress.status();
|
|
|
* // {target: 0.99, duration: 5000, progress: 0.75}
|
|
|
* }, 15000);
|
|
|
* ```
|
|
|
*/
|
|
|
options(opts) {
|
|
|
this._options(opts);
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Update the µProgress with and position based on its parent width. This methods is automatically called on a window `resize` event. However it has to be called manually if the parent container width changes for a reason other than a window resize.
|
|
|
*
|
|
|
* @method refresh
|
|
|
* @memberof UProgress
|
|
|
* @instance
|
|
|
*
|
|
|
* @example
|
|
|
* Create a new µProgress on top of a modal and change it's width.
|
|
|
* ```javascript
|
|
|
* const uProgress = new UProgress(document.getElementById('my-modal'));
|
|
|
* // Modify the modal content (i.e. refresh content with Ajax)
|
|
|
* changeModalContent();
|
|
|
* uProgress.refresh();
|
|
|
* ```
|
|
|
*/
|
|
|
refresh() {
|
|
|
const parentWidth =
|
|
|
this._parent === document.body
|
|
|
? Math.min(
|
|
|
document.body.scrollWidth,
|
|
|
document.documentElement.clientWidth,
|
|
|
document.documentElement.offsetWidth
|
|
|
)
|
|
|
: this._parent.clientWidth;
|
|
|
|
|
|
if (parentWidth !== this._width) {
|
|
|
const transitionProgress =
|
|
|
1 - this._progressbar.getBoundingClientRect().left / (this._width * (this._rtl ? 1 : -1));
|
|
|
|
|
|
this._width = parentWidth;
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["style"])(this._wrapper, 'width', `${this._width}px`);
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["style"])(this._progressbar, 'width', `${this._width}px`);
|
|
|
if (this._started) {
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["styles"])(this._progressbar, {
|
|
|
transition: 'none',
|
|
|
transform: `translateX(${this._targetToPosition(transitionProgress)}px)`,
|
|
|
});
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["reflow"])(this._progressbar);
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["styles"])(this._progressbar, {
|
|
|
transition: `${Object(_util__WEBPACK_IMPORTED_MODULE_2__["getVendorCSSProp"])('transform')} ${this._status().duration}ms linear`,
|
|
|
transform: `translateX(${this._targetToPosition(this._to)}px)`,
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* - Remove the µProgress from the DOM.
|
|
|
* - Remove the `resize` event listener if this is the only non-destroyed instance.
|
|
|
*
|
|
|
* @method destroy
|
|
|
* @memberof UProgress
|
|
|
* @instance
|
|
|
*/
|
|
|
destroy() {
|
|
|
if (!this._destroyed) {
|
|
|
if (this._wrapper.parentNode === this._parent) {
|
|
|
this._parent.removeChild(this._wrapper);
|
|
|
}
|
|
|
delete allUProgress[this._key];
|
|
|
if (Object.keys(allUProgress).length === 0) {
|
|
|
window.removeEventListener('resize', _onResize);
|
|
|
_onResize.cancel();
|
|
|
}
|
|
|
this._started = false;
|
|
|
this._destroyed = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
* ------------------------------------------------------------------------
|
|
|
* Private methods
|
|
|
* ------------------------------------------------------------------------
|
|
|
*/
|
|
|
|
|
|
/**
|
|
|
* Update the µProgress instance configuration.
|
|
|
*
|
|
|
* @method _options
|
|
|
* @private
|
|
|
* @memberof UProgress
|
|
|
* @instance
|
|
|
* @param {Object} opts New options to set.
|
|
|
* @param {Object} [base=this._opts] Options to use when not defined in `opts`.
|
|
|
*/
|
|
|
_options(opts, base = this._opts) {
|
|
|
this._opts = Object.assign({}, base, opts);
|
|
|
this._opts.start = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(this._opts.start, 0, 0.99);
|
|
|
this._opts.end = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(this._opts.end, this._opts.start, 1);
|
|
|
this._opts.doneDuration = Math.max(this._opts.doneDuration, 0);
|
|
|
this._opts.fadeDuration = Math.max(this._opts.fadeDuration, 0);
|
|
|
if (opts && opts.class) {
|
|
|
this._wrapper.className = `${this._opts.class}`;
|
|
|
}
|
|
|
if (opts && opts.blurClass) {
|
|
|
this._blur.className = this._opts.blurClass;
|
|
|
}
|
|
|
if (opts && opts.barClass) {
|
|
|
this._progressbar.className = this._opts.barClass;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Change the µProgress `target` and the speed at which it reaches it.
|
|
|
*
|
|
|
* @method _set
|
|
|
* @private
|
|
|
* @memberof UProgress
|
|
|
* @instance
|
|
|
* @param {number} [duration=null] The duration in ms the µProgress will take to reach its `target`.
|
|
|
* @param {number} [target=this._to] The position in percentage (.35 is 35%, 1 is 100%) the µProgress will moving toward.
|
|
|
* @return {boolean} `true` if the µProgress `duration` or `target` has been changed, `false` otherwise.
|
|
|
*/
|
|
|
_set(duration = null, target = this._to) {
|
|
|
if (duration !== null && !this._destroyed) {
|
|
|
if (target === this._to) {
|
|
|
// Stop the transition by setting the target position to the current one
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["style"])(this._progressbar, 'transform', `translateX(${this._progressbar.getBoundingClientRect().left}px)`);
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["reflow"])(this._progressbar);
|
|
|
}
|
|
|
this._duration = Math.max(duration, 0);
|
|
|
this._to = target;
|
|
|
this._end = Date.now() + this._duration;
|
|
|
this._from = this._status().progress;
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["styles"])(this._progressbar, {
|
|
|
transition: this._duration > 0 ? `${Object(_util__WEBPACK_IMPORTED_MODULE_2__["getVendorCSSProp"])('transform')} ${this._duration}ms linear` : 'none',
|
|
|
transform: `translateX(${this._targetToPosition(this._to)}px)`,
|
|
|
});
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["reflow"])(this._progressbar);
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get the {@link UProgress~Status} of the µProgress.
|
|
|
*
|
|
|
* @method _status
|
|
|
* @private
|
|
|
* @memberof UProgress
|
|
|
* @instance
|
|
|
* @return {Status} The current {@link UProgress~Status}.
|
|
|
*/
|
|
|
_status() {
|
|
|
if (!this._started) {
|
|
|
return {target: this._opts.end};
|
|
|
}
|
|
|
const duration = Math.max(0, this._end - Date.now());
|
|
|
|
|
|
return {
|
|
|
target: this._to,
|
|
|
duration,
|
|
|
progress: this._from + (this._to - this._from) * (1 - (this._duration <= 0 ? 0 : duration / this._duration)),
|
|
|
};
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Gracefully complete the µProgress by moving quickly to 100% progress and then fading out.
|
|
|
*
|
|
|
* @method _done
|
|
|
* @private
|
|
|
* @memberof UProgress
|
|
|
* @instance
|
|
|
* @param {boolean} destroy `true` to automatically call {@link UProgress#destroy} once the µProgress has completed.
|
|
|
* @param {number} doneDuration The duration in ms that the µProgress take to complete.
|
|
|
* @param {number} fadeDuration The duration in ms the µProgress takes to fade out after it has completed.
|
|
|
* @return {boolen} `true` if the µProgress is going to be completed, `false` otherwise.
|
|
|
*/
|
|
|
_done(destroy, doneDuration, fadeDuration) {
|
|
|
if (this._started && !this._destroyed && !this._completing) {
|
|
|
this._completing = true;
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["transition"])(
|
|
|
this._progressbar,
|
|
|
() => {
|
|
|
this._set(doneDuration, 1);
|
|
|
},
|
|
|
() =>
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["transition"])(
|
|
|
this._progressbar,
|
|
|
() => {
|
|
|
this._started = false;
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["styles"])(this._progressbar, {
|
|
|
transition: fadeDuration > 0 ? `opacity ${fadeDuration}ms linear` : 'none',
|
|
|
opacity: 0,
|
|
|
});
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["reflow"])(this._progressbar);
|
|
|
},
|
|
|
() => {
|
|
|
if (destroy) {
|
|
|
this.destroy();
|
|
|
} else {
|
|
|
Object(_util__WEBPACK_IMPORTED_MODULE_2__["style"])(this._progressbar, 'visibility', 'hidden');
|
|
|
this._to = null;
|
|
|
}
|
|
|
this._completing = false;
|
|
|
},
|
|
|
fadeDuration <= 0,
|
|
|
'opacity'
|
|
|
),
|
|
|
doneDuration <= 0,
|
|
|
'transform'
|
|
|
);
|
|
|
} else if (destroy) {
|
|
|
this.destroy();
|
|
|
return this._started;
|
|
|
} else {
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Convert a target (in percentage) to a pixel position.
|
|
|
*
|
|
|
* @method _targetToPosition
|
|
|
* @private
|
|
|
* @param {number} target The target to convert (number between 0 and 1).
|
|
|
* @return {number} The position in pixel corresponding to the given target.
|
|
|
*/
|
|
|
_targetToPosition(target) {
|
|
|
return this._width * (1 - target) * (this._rtl ? 1 : -1);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* The default options for all new µProgress instances.
|
|
|
*
|
|
|
* @name Default
|
|
|
* @memberof UProgress
|
|
|
* @static
|
|
|
* @constant
|
|
|
* @default
|
|
|
* @readonly
|
|
|
* @type {Object}
|
|
|
* @property {boolean} [rtl=false] `true` to move the µProgress from right to left, `false` for left to right.
|
|
|
* @property {number} [start=0.01] The position in percentage (.35 is 35%, 1 is 100%) at which the µProgress starts.
|
|
|
* @property {number} [end=0.99] The position in percentage (.35 is 35%, 1 is 100%) the µProgress is moving toward when started. Once reached, it will stop until {@link UProgress#set} or {@link UProgress#done} are called.
|
|
|
* @property {number} [duration=2500] The durarion in ms it takes for the µProgress to go from `start` to `end`.
|
|
|
* @property {number} [doneDuration=100] The duration in ms that the µProgress take to complete when {@link UProgress#done} is called.
|
|
|
* @property {number} [fadeDuration=200] The duration in ms the µProgress takes to fade out after it has completed.
|
|
|
* @property {number} [class='uprogress'] The CSS class to set on the the µProgress element.
|
|
|
* @property {number} [blurClass='blur'] The CSS class to set on the the µProgress blur element.
|
|
|
* @property {number} [barClass='bar'] The CSS class to set on the the µProgress bar element.
|
|
|
* @property {number} [resizeDebounce=300] the debounce threshold after which a window `resize` event trigger a call to {@link UProgress#refresh}.
|
|
|
*
|
|
|
* @example
|
|
|
* Change default options
|
|
|
* ```javascript
|
|
|
* UProgress.Default.duration = 3000;
|
|
|
* UProgress.Default.class = 'custom-uprogress';
|
|
|
* ```
|
|
|
*/
|
|
|
/* eslint-disable-next-line prefer-reflect */
|
|
|
Object.defineProperty(UProgressAPI, 'Default', {
|
|
|
get() {
|
|
|
return DEFAULT;
|
|
|
},
|
|
|
});
|
|
|
|
|
|
/**
|
|
|
* Wrap an instance of {@link UProgress} in a closure to exposed only public methods, and hide private attributes.
|
|
|
*
|
|
|
* @method UProgressAPI
|
|
|
* @private
|
|
|
* @param {...Any} args arguments passed to {@link UProgress#constrcutor}.
|
|
|
* @constructor
|
|
|
*/
|
|
|
function UProgressAPI(...args) {
|
|
|
const uProgress = new UProgress(...args);
|
|
|
const self = {};
|
|
|
|
|
|
for (
|
|
|
let i = 0, PUBLIC_METHODS = ['start', 'done', 'set', 'status', 'refresh', 'destroy'], {length} = PUBLIC_METHODS;
|
|
|
i < length;
|
|
|
i++
|
|
|
) {
|
|
|
self[PUBLIC_METHODS[i]] = uProgress[PUBLIC_METHODS[i]].bind(uProgress);
|
|
|
}
|
|
|
self.options = (...chainableArgs) => {
|
|
|
uProgress.options(...chainableArgs);
|
|
|
return self;
|
|
|
};
|
|
|
return Object.freeze(self);
|
|
|
}
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/uprogress/src/js/util.js":
|
|
|
/*!***********************************************!*\
|
|
|
!*** ./node_modules/uprogress/src/js/util.js ***!
|
|
|
\***********************************************/
|
|
|
/*! exports provided: TRANSITION_END_EVENT, reflow, style, styles, getVendorCSSProp, transition */
|
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TRANSITION_END_EVENT", function() { return TRANSITION_END_EVENT; });
|
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reflow", function() { return reflow; });
|
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "style", function() { return style; });
|
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styles", function() { return styles; });
|
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVendorCSSProp", function() { return getVendorCSSProp; });
|
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return transition; });
|
|
|
/* eslint-env browser */
|
|
|
|
|
|
/**
|
|
|
* ------------------------------------------------------------------------
|
|
|
* Constants
|
|
|
* ------------------------------------------------------------------------
|
|
|
*/
|
|
|
const CSS_PREFIXES = ['Webkit', 'O', 'Moz', 'ms'];
|
|
|
const PREFIXED_EVENT_NAMES = {
|
|
|
transition: 'transitionend',
|
|
|
MozTransition: 'mozTransitionEnd',
|
|
|
OTransition: 'oTransitionEnd',
|
|
|
WebkitTransition: 'webkitTransitionEnd',
|
|
|
};
|
|
|
const PREFIXED_PROP_CACHE = {};
|
|
|
|
|
|
const TRANSITION_END_EVENT = PREFIXED_EVENT_NAMES[getVendorProp('transition')];
|
|
|
|
|
|
/**
|
|
|
* ------------------------------------------------------------------------
|
|
|
* Public methods
|
|
|
* ------------------------------------------------------------------------
|
|
|
*/
|
|
|
|
|
|
/**
|
|
|
* Trigger a reflow on an element.
|
|
|
*
|
|
|
* @method reflow
|
|
|
* @param {HTMLElement} element the element to reflow
|
|
|
*/
|
|
|
function reflow(element) {
|
|
|
// eslint-disable-next-line no-unused-expressions
|
|
|
element.offsetHeight;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Set a style property of an element.
|
|
|
*
|
|
|
* @method style
|
|
|
* @param {HTMLElement} element the element on which to set the style property.
|
|
|
* @param {string} prop the CSS property to set.
|
|
|
* @param {string|number} value the value to set.
|
|
|
*/
|
|
|
function style(element, prop, value) {
|
|
|
element.style[getVendorProp(prop)] = value;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Set multiple style properties of an element.
|
|
|
*
|
|
|
* @method styles
|
|
|
* @param {HTMLElement} element the element on which to set the style property.
|
|
|
* @param {Object<string, Any>} props a hash of CSS properties and values to set.
|
|
|
*/
|
|
|
function styles(element, props) {
|
|
|
for (let i = 0, keys = Object.keys(props), {length} = keys; i < length; i++) {
|
|
|
style(element, keys[i], props[keys[i]]);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get the camel case vendor prefixed version of a style attribute, if the browser doesn't support the unprefixed one.
|
|
|
*
|
|
|
* @method getVendorProp
|
|
|
* @param {string} name the unprefixed camel case attribute
|
|
|
* @return {string} the attribute supported by the browser
|
|
|
*/
|
|
|
function getVendorProp(name) {
|
|
|
if (PREFIXED_PROP_CACHE[name]) {
|
|
|
return PREFIXED_PROP_CACHE[name];
|
|
|
}
|
|
|
|
|
|
if (!(name in document.body.style)) {
|
|
|
for (let i = 0, {length} = CSS_PREFIXES; i < length; i++) {
|
|
|
const vendorName = `${CSS_PREFIXES[i]}${name.charAt(0).toUpperCase()}${name.slice(1)}`;
|
|
|
|
|
|
if (vendorName in document.body.style) {
|
|
|
PREFIXED_PROP_CACHE[name] = vendorName;
|
|
|
return vendorName;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
PREFIXED_PROP_CACHE[name] = name;
|
|
|
return name;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Get the kebab case version of a style attribute, unprefixed if the browser support it, prefixed otherwise.
|
|
|
*
|
|
|
* @method getVendorCSSProp
|
|
|
* @param {String} name the unprefixed camel case attribute
|
|
|
* @return {String} the attribute supported by the browser
|
|
|
*/
|
|
|
function getVendorCSSProp(name) {
|
|
|
return getVendorProp(name)
|
|
|
.replace(/([A-Z])/g, (str, m1) => `-${m1.toLowerCase()}`)
|
|
|
.replace(/^ms-/, '-ms-');
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Execute a start function that trigger a transition, and if an end function is defined,
|
|
|
* call it when the transition is over, for the given property.
|
|
|
*
|
|
|
* @method transition
|
|
|
* @param {HTMLElement} element The element that will transition when the start function is called
|
|
|
* @param {function} start a function that trigger the transition on element
|
|
|
* @param {function} end the function to call when the transition ends
|
|
|
* @param {boolean} immediate true to call the end function immediatly
|
|
|
* @param {string} property the property that transition; end function will be called only at the end of the transition on that property
|
|
|
*/
|
|
|
function transition(element, start, end, immediate, property) {
|
|
|
if (end) {
|
|
|
if (immediate) {
|
|
|
setTimeout(end);
|
|
|
} else {
|
|
|
const handler = event => {
|
|
|
if (!property || event.propertyName === getVendorCSSProp(property)) {
|
|
|
end(event);
|
|
|
element.removeEventListener(TRANSITION_END_EVENT, handler);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
element.addEventListener(TRANSITION_END_EVENT, handler);
|
|
|
}
|
|
|
}
|
|
|
start();
|
|
|
}
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/webpack/buildin/global.js":
|
|
|
/*!***********************************!*\
|
|
|
!*** (webpack)/buildin/global.js ***!
|
|
|
\***********************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
var g;
|
|
|
|
|
|
// This works in non-strict mode
|
|
|
g = (function() {
|
|
|
return this;
|
|
|
})();
|
|
|
|
|
|
try {
|
|
|
// This works if eval is allowed (see CSP)
|
|
|
g = g || new Function("return this")();
|
|
|
} catch (e) {
|
|
|
// This works if the window reference is available
|
|
|
if (typeof window === "object") g = window;
|
|
|
}
|
|
|
|
|
|
// g can still be undefined, but nothing to do about it...
|
|
|
// We return undefined, instead of nothing here, so it's
|
|
|
// easier to handle this case. if(!global) { ...}
|
|
|
|
|
|
module.exports = g;
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/webpack/buildin/module.js":
|
|
|
/*!***********************************!*\
|
|
|
!*** (webpack)/buildin/module.js ***!
|
|
|
\***********************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
module.exports = function(module) {
|
|
|
if (!module.webpackPolyfill) {
|
|
|
module.deprecate = function() {};
|
|
|
module.paths = [];
|
|
|
// module.parent = undefined by default
|
|
|
if (!module.children) module.children = [];
|
|
|
Object.defineProperty(module, "loaded", {
|
|
|
enumerable: true,
|
|
|
get: function() {
|
|
|
return module.l;
|
|
|
}
|
|
|
});
|
|
|
Object.defineProperty(module, "id", {
|
|
|
enumerable: true,
|
|
|
get: function() {
|
|
|
return module.i;
|
|
|
}
|
|
|
});
|
|
|
module.webpackPolyfill = 1;
|
|
|
}
|
|
|
return module;
|
|
|
};
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./node_modules/wowjs/dist/wow.min.js":
|
|
|
/*!********************************************!*\
|
|
|
!*** ./node_modules/wowjs/dist/wow.min.js ***!
|
|
|
\********************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
/*! WOW - v1.1.2 - 2016-04-08
|
|
|
* Copyright (c) 2016 Matthieu Aussaguel;*/(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)?a["on"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a,b){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),null!=a.scrollContainer&&(this.config.scrollContainer=document.querySelector(a.scrollContainer)),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(b){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),this.util().emitEvent(a,this.wowEvent),this.util().addEvent(a,"animationend",this.resetAnimation),this.util().addEvent(a,"oanimationend",this.resetAnimation),this.util().addEvent(a,"webkitAnimationEnd",this.resetAnimation),this.util().addEvent(a,"MSAnimationEnd",this.resetAnimation),a},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-wow-duration"),c=a.getAttribute("data-wow-delay"),e=a.getAttribute("data-wow-iteration"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility="visible");return e},e.prototype.resetAnimation=function(a){var b;return a.type.toLowerCase().indexOf("animationend")>=0?(b=a.target||a.srcElement,b.className=b.className.replace(this.config.animateClass,"").trim()):void 0},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a},e.prototype.vendors=["moz","webkit"],e.prototype.vendorSet=function(a,b){var c,d,e,f;d=[];for(c in b)e=b[c],a[""+c]=e,d.push(function(){var b,d,g,h;for(g=this.vendors,h=[],b=0,d=g.length;d>b;b++)f=g[b],h.push(a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=e);return h}.call(this));return d},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(h=d(a),g=h.getPropertyCSSValue(b),f=this.vendors,c=0,e=f.length;e>c;c++)i=f[c],g=g||h.getPropertyCSSValue("-"+i+"-"+b);return g},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=d(a).getPropertyValue("animation-name")}return"none"===b?"":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-wow-offset")||this.config.offset,f=this.config.scrollContainer&&this.config.scrollContainer.scrollTop||window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./resources/css/app.scss":
|
|
|
/*!********************************!*\
|
|
|
!*** ./resources/css/app.scss ***!
|
|
|
\********************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
// removed by extract-text-webpack-plugin
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./resources/js/app.js":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./resources/js/app.js ***!
|
|
|
\*****************************/
|
|
|
/*! no exports provided */
|
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
/* harmony import */ var uprogress__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uprogress */ "./node_modules/uprogress/src/js/uprogress.js");
|
|
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
|
|
|
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
|
|
|
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
|
|
|
|
/**
|
|
|
* First we will load all of this project's JavaScript dependencies which
|
|
|
* includes Vue and other libraries. It is a great starting point when
|
|
|
* building robust, powerful web applications using Vue and Laravel.
|
|
|
*/
|
|
|
__webpack_require__(/*! ./bootstrap */ "./resources/js/bootstrap.js");
|
|
|
|
|
|
__webpack_require__(/*! rvnm/src/jquery-rvnm */ "./node_modules/rvnm/src/jquery-rvnm.js");
|
|
|
|
|
|
__webpack_require__(/*! bootstrap-select/dist/js/bootstrap-select.min */ "./node_modules/bootstrap-select/dist/js/bootstrap-select.min.js");
|
|
|
|
|
|
__webpack_require__(/*! bootstrap-select/dist/js/i18n/defaults-fa_IR.min */ "./node_modules/bootstrap-select/dist/js/i18n/defaults-fa_IR.min.js");
|
|
|
|
|
|
__webpack_require__(/*! bootstrap-tagsinput/dist/bootstrap-tagsinput.min */ "./node_modules/bootstrap-tagsinput/dist/bootstrap-tagsinput.min.js");
|
|
|
|
|
|
__webpack_require__(/*! lightbox2/dist/js/lightbox-plus-jquery.min */ "./node_modules/lightbox2/dist/js/lightbox-plus-jquery.min.js");
|
|
|
|
|
|
__webpack_require__(/*! alertifyjs/build/alertify.min */ "./node_modules/alertifyjs/build/alertify.min.js");
|
|
|
|
|
|
__webpack_require__(/*! fontawesome-iconpicker/dist/js/fontawesome-iconpicker.min */ "./node_modules/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.min.js");
|
|
|
|
|
|
__webpack_require__(/*! select2 */ "./node_modules/select2/dist/js/select2.js");
|
|
|
|
|
|
var Chart = __webpack_require__(/*! chart.js */ "./node_modules/chart.js/dist/Chart.js");
|
|
|
|
|
|
window.chart = Chart;
|
|
|
|
|
|
var uProgress = new uprogress__WEBPACK_IMPORTED_MODULE_0__["default"]();
|
|
|
window.uProgress = uProgress;
|
|
|
uProgress.start();
|
|
|
|
|
|
var alertify = __webpack_require__(/*! alertifyjs/build/alertify.min */ "./node_modules/alertifyjs/build/alertify.min.js");
|
|
|
|
|
|
window.alertify = alertify;
|
|
|
/**
|
|
|
* The following block of code may be used to automatically register your
|
|
|
* Vue components. It will recursively scan this directory for the Vue
|
|
|
* components and automatically register them with their "basename".
|
|
|
*
|
|
|
* Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
|
|
|
*/
|
|
|
// const files = require.context('./', true, /\.vue$/i)
|
|
|
// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))
|
|
|
|
|
|
/**
|
|
|
* Next, we will create a fresh Vue application instance and attach it to
|
|
|
* the page. Then, you may begin adding components to this application
|
|
|
* or customize the JavaScript scaffolding to fit your unique needs.
|
|
|
*/
|
|
|
|
|
|
__webpack_require__(/*! ./other/typehead */ "./resources/js/other/typehead.js");
|
|
|
|
|
|
__webpack_require__(/*! ./other/general */ "./resources/js/other/general.js");
|
|
|
|
|
|
__webpack_require__(/*! ./other/menu */ "./resources/js/other/menu.js");
|
|
|
|
|
|
__webpack_require__(/*! ./other/slider */ "./resources/js/other/slider.js");
|
|
|
|
|
|
try {
|
|
|
$(".select2 .sel").select2();
|
|
|
} catch (e) {
|
|
|
console.log(e.message);
|
|
|
}
|
|
|
|
|
|
var StarterKit = /*#__PURE__*/function () {
|
|
|
function StarterKit() {
|
|
|
_classCallCheck(this, StarterKit);
|
|
|
|
|
|
this.bootingCallbacks = [];
|
|
|
}
|
|
|
|
|
|
_createClass(StarterKit, [{
|
|
|
key: "booting",
|
|
|
value: function booting(callback) {
|
|
|
this.bootingCallbacks.push(callback);
|
|
|
}
|
|
|
}, {
|
|
|
key: "boot",
|
|
|
value: function boot() {
|
|
|
this.bootingCallbacks.forEach(function (callback) {
|
|
|
return callback(window.$, window.axios, window.chart, window.alertify);
|
|
|
});
|
|
|
this.bootingCallbacks = [];
|
|
|
}
|
|
|
}]);
|
|
|
|
|
|
return StarterKit;
|
|
|
}();
|
|
|
|
|
|
window.StarterKit = new StarterKit();
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./resources/js/bootstrap.js":
|
|
|
/*!***********************************!*\
|
|
|
!*** ./resources/js/bootstrap.js ***!
|
|
|
\***********************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
/**
|
|
|
* We'll load jQuery and the Bootstrap jQuery plugin which provides support
|
|
|
* for JavaScript based Bootstrap features such as modals and tabs. This
|
|
|
* code may be modified to fit the specific needs of your application.
|
|
|
*/
|
|
|
try {
|
|
|
window.Popper = __webpack_require__(/*! popper.js */ "./node_modules/popper.js/dist/esm/popper.js")["default"];
|
|
|
window.$ = window.jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
|
|
|
|
|
|
__webpack_require__(/*! bootstrap */ "./node_modules/bootstrap/dist/js/bootstrap.js");
|
|
|
} catch (e) {}
|
|
|
/**
|
|
|
* We'll load the axios HTTP library which allows us to easily issue requests
|
|
|
* to our Laravel back-end. This library automatically handles sending the
|
|
|
* CSRF token as a header based on the value of the "XSRF" token cookie.
|
|
|
*/
|
|
|
|
|
|
|
|
|
window.axios = __webpack_require__(/*! axios */ "./node_modules/axios/index.js");
|
|
|
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
|
|
|
/**
|
|
|
* Echo exposes an expressive API for subscribing to channels and listening
|
|
|
* for events that are broadcast by Laravel. Echo and event broadcasting
|
|
|
* allows your team to easily build robust real-time web applications.
|
|
|
*/
|
|
|
// import Echo from 'laravel-echo';
|
|
|
// window.Pusher = require('pusher-js');
|
|
|
// window.Echo = new Echo({
|
|
|
// broadcaster: 'pusher',
|
|
|
// key: process.env.MIX_PUSHER_APP_KEY,
|
|
|
// cluster: process.env.MIX_PUSHER_APP_CLUSTER,
|
|
|
// forceTLS: true
|
|
|
// });
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./resources/js/other/general.js":
|
|
|
/*!***************************************!*\
|
|
|
!*** ./resources/js/other/general.js ***!
|
|
|
\***************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
|
|
|
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
|
|
|
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
|
|
|
|
function getParameterByName(name) {
|
|
|
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
|
|
|
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
|
|
|
}
|
|
|
|
|
|
jQuery(function () {
|
|
|
$('.icon-pickerx').iconpicker();
|
|
|
$('.icp-dd').iconpicker({//title: 'Dropdown with picker',
|
|
|
//component:'.btn > i'
|
|
|
}).on('iconpickerSelected', function (event) {
|
|
|
$($(this).data('src')).val(event.iconpickerValue);
|
|
|
});
|
|
|
$(".clip").click(function () {
|
|
|
if (!$(this).hasClass('played')) {
|
|
|
$(this).find('img').hide();
|
|
|
$(this).find('video').show();
|
|
|
$(this).addClass('played');
|
|
|
}
|
|
|
});
|
|
|
$(document).on('click', '.rm-row', function () {
|
|
|
if (confirm(areYouSure)) {
|
|
|
$(this).closest('.row').remove();
|
|
|
$(window).resize();
|
|
|
}
|
|
|
});
|
|
|
$('.add-row').click(function () {
|
|
|
$("#row-base").append(' <div class="row p-2">\n' + ' <div class="col-11">\n' + " <input type=\"text\" class=\"form-control\" name=\"options[]\" value=\"\" placeholder=\"".concat(option, "\"/>\n") + ' </div>\n' + ' <div class="col-1">\n' + ' <div class="btn btn-danger rm-row">\n' + ' <i class="fa fa-times"></i>\n' + ' </div>\n' + ' </div>\n' + ' </div>');
|
|
|
$(window).resize();
|
|
|
});
|
|
|
|
|
|
try {
|
|
|
$("#navbar").rvnm({
|
|
|
theme: 'dark-doder'
|
|
|
});
|
|
|
} catch (e) {// console.log(e.message);
|
|
|
}
|
|
|
|
|
|
$(".xsumbmiter").submit(function () {
|
|
|
$(this).attr('action', $("#smt").val());
|
|
|
});
|
|
|
$(".comment-reply").click(function () {
|
|
|
$('#reply').remove();
|
|
|
var pid = $(this).data('id');
|
|
|
$("#comment-form-body").append("<input type=\"hidden\" id=\"reply\" name=\"parent\" value=\"".concat(pid, "\" />"));
|
|
|
$("#comment-message").focus();
|
|
|
});
|
|
|
/**
|
|
|
* delete confirm
|
|
|
*/
|
|
|
|
|
|
$(document).on('click', '.delete-confirm,.del-conf', function () {
|
|
|
if (!confirm(areYouSure)) {
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
/**
|
|
|
* delete confirm for images
|
|
|
*/
|
|
|
|
|
|
$(document).on('click', '.delete-image-btn', function () {
|
|
|
if (!confirm(areYouSure)) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
$(this).closest('.thumb').slideUp(300, function () {
|
|
|
$(this).remove();
|
|
|
});
|
|
|
return false;
|
|
|
});
|
|
|
/**
|
|
|
* delete confirm for bulk delete
|
|
|
*/
|
|
|
|
|
|
$(document).on('submit', '.bulk-action', function () {
|
|
|
if ($(this).find('#bulk').val() == 'delete') {
|
|
|
if (!confirm('Are you sure to bulk delete?')) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
}); // checkbox group select begin
|
|
|
// source: http://stackoverflow.com/questions/659508/how-can-i-shift-select-multiple-checkboxes-like-gmail
|
|
|
|
|
|
var $chkboxes = $('.chkbox');
|
|
|
var lastChecked = null;
|
|
|
$chkboxes.click(function (e) {
|
|
|
if (!lastChecked) {
|
|
|
lastChecked = this;
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (e.shiftKey) {
|
|
|
var start = $chkboxes.index(this);
|
|
|
var end = $chkboxes.index(lastChecked);
|
|
|
$chkboxes.slice(Math.min(start, end), Math.max(start, end) + 1).prop('checked', lastChecked.checked);
|
|
|
}
|
|
|
|
|
|
lastChecked = this;
|
|
|
});
|
|
|
$(".chkall").on('change click', function () {
|
|
|
var ischeck = $(this).is(":checked");
|
|
|
|
|
|
if (ischeck) {
|
|
|
$(this).closest('table').find('.chkbox').attr('checked', '');
|
|
|
} else {
|
|
|
$(this).closest('table').find('.chkbox').removeAttr('checked');
|
|
|
}
|
|
|
});
|
|
|
$("#like-now,#dislike-now").click(function () {
|
|
|
var url = $("#like-route").val();
|
|
|
var act = 0;
|
|
|
|
|
|
if ($(this).attr('id') == 'like-now') {
|
|
|
act = 1;
|
|
|
}
|
|
|
|
|
|
axios.post(url, {
|
|
|
'action': act
|
|
|
}).then(function (e) {
|
|
|
if (e.data.OK) {
|
|
|
alertify.success(e.data.msg);
|
|
|
|
|
|
if (act == 1) {
|
|
|
$("#like-posts").text((parseInt($("#like-posts").text()) + 1).toString());
|
|
|
} else {
|
|
|
$("#dislike-posts").text((parseInt($("#dislike-posts").text()) + 1).toString());
|
|
|
}
|
|
|
} else {
|
|
|
alertify.error(e.data.msg);
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
|
|
|
var winLoader = function winLoader() {
|
|
|
// console.log('e');
|
|
|
setTimeout(function () {
|
|
|
$("#posts-li").click();
|
|
|
}, 500);
|
|
|
clearInterval(winld); // filter set
|
|
|
|
|
|
if (getParameterByName('filter') !== null) {
|
|
|
var filterval = getParameterByName('filter');
|
|
|
$("[data-filter=\"".concat(filterval, "\"]")).removeClass('btn-dark').addClass('btn-primary');
|
|
|
} else {
|
|
|
$("[data-filter=\"all\"]").removeClass('btn-dark').addClass('btn-primary');
|
|
|
}
|
|
|
|
|
|
|
|
|
$(window).resize();
|
|
|
}; // windows load
|
|
|
|
|
|
|
|
|
$(window).on('load', function () {
|
|
|
winLoader();
|
|
|
uProgress.done();
|
|
|
}); //
|
|
|
|
|
|
var winld = setTimeout(winLoader, 1000);
|
|
|
$("#gallery_images").change(function (e) {
|
|
|
$("#newimgs").html('');
|
|
|
var tmp = '';
|
|
|
|
|
|
var _iterator = _createForOfIteratorHelper(e.target.files),
|
|
|
_step;
|
|
|
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var img = _step.value;
|
|
|
tmp += "<li> <div class=\"img\" style=\"background-image: url('".concat(URL.createObjectURL(img), "')\"></div> <br> <input class=\"form-control\" type=\"text\" name=\"title[]\" placeholder=\"Title\" /> </li>");
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
|
|
|
$("#newimgs").append(tmp);
|
|
|
});
|
|
|
|
|
|
try {
|
|
|
$(".taggble").tagsinput({
|
|
|
typeahead: {
|
|
|
source: function source(query) {
|
|
|
return $.get(tagsearch + '/' + query);
|
|
|
}
|
|
|
},
|
|
|
freeInput: true
|
|
|
});
|
|
|
$(document).on('click', ".typeahead .dropdown-item", function () {
|
|
|
setTimeout(function () {
|
|
|
console.log($(".bootstrap-tagsinput").find('input').val());
|
|
|
$(".bootstrap-tagsinput").find('input').val('').focus();
|
|
|
}, 100);
|
|
|
});
|
|
|
$('.searchable').selectpicker();
|
|
|
} catch (e) {
|
|
|
console.log(e.message);
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
if ($("[name='body']").length) {
|
|
|
CKEDITOR.replace('body', {
|
|
|
filebrowserUploadUrl: xupload,
|
|
|
filebrowserUploadMethod: 'form',
|
|
|
// contentsLangDirection: 'rtl'
|
|
|
});
|
|
|
}
|
|
|
} catch (e) {}
|
|
|
|
|
|
try {
|
|
|
lightbox.option({
|
|
|
'resizeDuration': 200,
|
|
|
'wrapAround': true
|
|
|
});
|
|
|
} catch (e) {
|
|
|
console.log(e.message);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./resources/js/other/menu.js":
|
|
|
/*!************************************!*\
|
|
|
!*** ./resources/js/other/menu.js ***!
|
|
|
\************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
|
|
|
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
|
|
|
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
|
|
|
|
__webpack_require__(/*! ./sortable */ "./resources/js/other/sortable.js");
|
|
|
|
|
|
try {
|
|
|
__webpack_require__(/*! jquery-autocomplete/jquery.autocomplete */ "./node_modules/jquery-autocomplete/jquery.autocomplete.js");
|
|
|
} catch (e) {
|
|
|
console.log(e.message);
|
|
|
}
|
|
|
|
|
|
function validURL(str) {
|
|
|
var pattern = new RegExp('^(https?:\\/\\/)?' + // protocol
|
|
|
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
|
|
|
'((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
|
|
|
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
|
|
|
'(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
|
|
|
'(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator
|
|
|
|
|
|
return !!pattern.test(str);
|
|
|
}
|
|
|
|
|
|
jQuery(function () {
|
|
|
$("#main-menu .toggle").click(function () {
|
|
|
$("#main-menu").toggleClass('show-menu');
|
|
|
$(window).scrollTop(0);
|
|
|
|
|
|
if ($("#main-menu").hasClass('show-menu')) {
|
|
|
$("#main-menu .toggle").html('<i class="fa fa-times"></i>');
|
|
|
} else {
|
|
|
$("#main-menu .toggle").html('<i class="fa fa-bars"></i>');
|
|
|
}
|
|
|
});
|
|
|
$("#main-menu .search").click(function () {
|
|
|
$("#main-menu li:not(.search)").hide();
|
|
|
$("#main-menu-search").show();
|
|
|
$("#main-menu-search").focus();
|
|
|
$(this).css({
|
|
|
'padding': 0,
|
|
|
'display': 'block',
|
|
|
'float': 'none'
|
|
|
}).find('.fa').hide();
|
|
|
});
|
|
|
$("#main-menu-search").blur(function () {
|
|
|
$("#main-menu li:not(.search)").removeAttr('style');
|
|
|
$("#main-menu-search").hide();
|
|
|
$("#main-menu .search").removeAttr('style');
|
|
|
$("#main-menu .search .fa").show();
|
|
|
});
|
|
|
$("#main-menu-search").keyup(function (e) {
|
|
|
if (e.keyCode == 13) {
|
|
|
window.location.href = search_url + $(this).val();
|
|
|
}
|
|
|
|
|
|
if (e.keyCode == 27) {
|
|
|
$("#main-menu-search").blur();
|
|
|
}
|
|
|
});
|
|
|
cates = $("#cat-sort").sortable({
|
|
|
onDrop: function onDrop($item, container, _super) {
|
|
|
_super($item, container);
|
|
|
|
|
|
var data = cates.sortable("serialize").get();
|
|
|
var jsonString = JSON.stringify(data, null, ' ');
|
|
|
$('#sorted').val(jsonString);
|
|
|
}
|
|
|
});
|
|
|
$("#cat-sort-save").click(function () {
|
|
|
var url = $("#cat-sort-store").val();
|
|
|
|
|
|
if ($('#sorted').val() == '[]') {
|
|
|
alertify.warning('Not save any thing');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
axios.post(url, {
|
|
|
'info': $('#sorted').val()
|
|
|
}).then(function (e) {
|
|
|
if (e.data["OK"] == true) {
|
|
|
alertify.success(e.data.msg);
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
|
|
|
try {
|
|
|
var group = $("#menu-manage").sortable({
|
|
|
group: 'no-drop',
|
|
|
onDragStart: function onDragStart($item, container, _super) {
|
|
|
// Duplicate items of the no drop area
|
|
|
if (!container.options.drop) $item.clone().insertAfter($item);
|
|
|
|
|
|
_super($item, container);
|
|
|
},
|
|
|
onDrop: function onDrop($item, container, _super) {
|
|
|
$item.find('ol.dropdown-menu').sortable('enable');
|
|
|
|
|
|
if ($($item).data('can') == false || $($item).data('can') == "false") {
|
|
|
alertify.error('You must complete information');
|
|
|
$($item).remove();
|
|
|
} else {
|
|
|
$($item).find('input,select').each(function () {
|
|
|
try {
|
|
|
var tmp = $(this).attr('name').toString();
|
|
|
tmp = tmp.substr(7, tmp.length - 8);
|
|
|
$($item).data(tmp, $(this).val());
|
|
|
} catch (e) {
|
|
|
console.log(e.message);
|
|
|
}
|
|
|
|
|
|
$(this).remove();
|
|
|
});
|
|
|
}
|
|
|
|
|
|
_super($item, container);
|
|
|
|
|
|
var data = group.sortable("serialize").get();
|
|
|
var jsonString = JSON.stringify(data, null, ' ');
|
|
|
$('#sorted').val(jsonString);
|
|
|
autcom();
|
|
|
}
|
|
|
});
|
|
|
$("#draggable").sortable({
|
|
|
group: 'no-drop',
|
|
|
drop: false
|
|
|
});
|
|
|
$(document).on('keyup', '#empy-title', function () {
|
|
|
if ($(this).val().toString().length > 3) {
|
|
|
$(this).parent().data('can', 'true');
|
|
|
$(this).parent().find('span').text($(this).val());
|
|
|
} else {
|
|
|
$(this).parent().data('can', 'false');
|
|
|
}
|
|
|
});
|
|
|
$(document).on('keyup', '#tag-title', function () {
|
|
|
if ($(this).val().toString().length > 3 && $("#tag-auto1").val().toString().length > 1) {
|
|
|
$(this).parent().data('can', 'true');
|
|
|
$(this).parent().find('span').text($(this).val());
|
|
|
} else {
|
|
|
$(this).parent().data('can', 'false');
|
|
|
}
|
|
|
});
|
|
|
$(document).on('keyup', '#tag-sub-title', function () {
|
|
|
if ($(this).val().toString().length > 3 && $("#tag-auto2").val().toString().length > 1) {
|
|
|
$(this).parent().data('can', 'true');
|
|
|
$(this).parent().find('span').text($(this).val());
|
|
|
} else {
|
|
|
$(this).parent().data('can', 'false');
|
|
|
}
|
|
|
});
|
|
|
$(document).on('keyup', '#cat-title,#cat-post-title,#cat-sub-title', function () {
|
|
|
if ($(this).val().toString().length > 3) {
|
|
|
$(this).parent().data('can', 'true');
|
|
|
$(this).parent().find('span').text($(this).val());
|
|
|
} else {
|
|
|
$(this).parent().data('can', 'false');
|
|
|
}
|
|
|
});
|
|
|
$(document).on('keyup', '#link-title,#link-link', function () {
|
|
|
if ($("#link-title").val().toString().length > 3 && validURL($("#link-link").val())) {
|
|
|
$(this).parent().data('can', 'true');
|
|
|
$(this).parent().find('span').text($("#link-title").val());
|
|
|
} else {
|
|
|
$(this).parent().data('can', 'false');
|
|
|
}
|
|
|
});
|
|
|
$(document).on('keyup', '#posts-title', function () {
|
|
|
if ($(this).val().toString().length > 3 && $("#nid").val() != '') {
|
|
|
$(this).parent().data('can', 'true');
|
|
|
$(this).parent().find('span').text($(this).val());
|
|
|
} else {
|
|
|
$(this).parent().data('can', 'false');
|
|
|
}
|
|
|
});
|
|
|
$("#save-menu").click(function () {
|
|
|
var url = $(this).closest('form').attr('action');
|
|
|
axios.post(url, {
|
|
|
'info': $('#sorted').val()
|
|
|
}).then(function (e) {
|
|
|
if (e.data["OK"] == true) {
|
|
|
alertify.success(e.data.msg);
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
autcom();
|
|
|
var data = group.sortable("serialize").get();
|
|
|
var jsonString = JSON.stringify(data, null, ' ');
|
|
|
$('#sorted').val(jsonString);
|
|
|
} catch (e) {
|
|
|
console.log(e.message);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
var autcom = function autcom() {
|
|
|
try {
|
|
|
$("#tag-auto1,#tag-auto2").autocomplete({
|
|
|
minLength: 2,
|
|
|
source: [function (q, add) {
|
|
|
$.getJSON($("#tag-search").val() + '/' + encodeURIComponent(q), function (resp) {
|
|
|
add(resp);
|
|
|
});
|
|
|
}]
|
|
|
}).on('selected.xdsoft', function (e, dt) {
|
|
|
console.log(dt);
|
|
|
});
|
|
|
$("#posts-auto").autocomplete({
|
|
|
minLength: 2,
|
|
|
source: [function (q, add) {
|
|
|
$.getJSON($("#posts-search").val() + '/' + encodeURIComponent(q), function (resp) {
|
|
|
back = [];
|
|
|
|
|
|
var _iterator = _createForOfIteratorHelper(resp),
|
|
|
_step;
|
|
|
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var i = _step.value;
|
|
|
back.push(i.id + '||' + i.title);
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
|
|
|
add(back);
|
|
|
});
|
|
|
}]
|
|
|
}).on('selected.xdsoft', function (e, dt) {
|
|
|
$("#nid").val(dt.split("||")[0]);
|
|
|
});
|
|
|
} catch (e) {
|
|
|
console.log(e.message);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./resources/js/other/slider.js":
|
|
|
/*!**************************************!*\
|
|
|
!*** ./resources/js/other/slider.js ***!
|
|
|
\**************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
__webpack_require__(/*! owl.carousel/dist/owl.carousel.min */ "./node_modules/owl.carousel/dist/owl.carousel.min.js");
|
|
|
|
|
|
__webpack_require__(/*! wowjs/dist/wow.min */ "./node_modules/wowjs/dist/wow.min.js");
|
|
|
|
|
|
jQuery(function () {
|
|
|
var singleSlide = $('#single-slider').owlCarousel({
|
|
|
loop: true,
|
|
|
margin: 0,
|
|
|
nav: false,
|
|
|
autoplay: true,
|
|
|
autoplayTimeout: 9000,
|
|
|
responsive: {
|
|
|
0: {
|
|
|
items: 1
|
|
|
},
|
|
|
600: {
|
|
|
items: 1
|
|
|
},
|
|
|
1000: {
|
|
|
items: 1
|
|
|
}
|
|
|
},
|
|
|
pause_on_hover: true
|
|
|
});
|
|
|
$('.multi-slide').owlCarousel({
|
|
|
loop: true,
|
|
|
margin: 0,
|
|
|
nav: true,
|
|
|
autoplayTimeout: 9000,
|
|
|
autoplay: true,
|
|
|
responsive: {
|
|
|
0: {
|
|
|
items: 1
|
|
|
},
|
|
|
600: {
|
|
|
items: 2
|
|
|
},
|
|
|
1000: {
|
|
|
items: 3
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
$('.single-slider').owlCarousel({
|
|
|
loop: true,
|
|
|
margin: 0,
|
|
|
nav: true,
|
|
|
autoplayTimeout: 9000,
|
|
|
autoplay: true,
|
|
|
responsive: {
|
|
|
0: {
|
|
|
items: 1
|
|
|
},
|
|
|
600: {
|
|
|
items: 1
|
|
|
},
|
|
|
1000: {
|
|
|
items: 1
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
singleSlide.on('changed.owl.carousel', function (event) {
|
|
|
// Trigger method goes here
|
|
|
$("#single-slider .item div").removeClass('wow backInUp animated').attr("style", "");
|
|
|
setTimeout(function () {
|
|
|
$("#single-slider .item div").addClass("wow backInUp animated");
|
|
|
$("#single-slider .item div").attr("style", "visibility: visible; animation-name: backInUp;");
|
|
|
}, 100);
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./resources/js/other/sortable.js":
|
|
|
/*!****************************************!*\
|
|
|
!*** ./resources/js/other/sortable.js ***!
|
|
|
\****************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
|
|
|
|
!function (d, B, m, f) {
|
|
|
function v(a, b) {
|
|
|
var c = Math.max(0, a[0] - b[0], b[0] - a[1]),
|
|
|
e = Math.max(0, a[2] - b[1], b[1] - a[3]);
|
|
|
return c + e;
|
|
|
}
|
|
|
|
|
|
function w(a, b, c, e) {
|
|
|
var k = a.length;
|
|
|
e = e ? "offset" : "position";
|
|
|
|
|
|
for (c = c || 0; k--;) {
|
|
|
var g = a[k].el ? a[k].el : d(a[k]),
|
|
|
l = g[e]();
|
|
|
l.left += parseInt(g.css("margin-left"), 10);
|
|
|
l.top += parseInt(g.css("margin-top"), 10);
|
|
|
b[k] = [l.left - c, l.left + g.outerWidth() + c, l.top - c, l.top + g.outerHeight() + c];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function p(a, b) {
|
|
|
var c = b.offset();
|
|
|
return {
|
|
|
left: a.left - c.left,
|
|
|
top: a.top - c.top
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function x(a, b, c) {
|
|
|
b = [b.left, b.top];
|
|
|
c = c && [c.left, c.top];
|
|
|
|
|
|
for (var e, k = a.length, d = []; k--;) {
|
|
|
e = a[k], d[k] = [k, v(e, b), c && v(e, c)];
|
|
|
}
|
|
|
|
|
|
return d = d.sort(function (a, b) {
|
|
|
return b[1] - a[1] || b[2] - a[2] || b[0] - a[0];
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function q(a) {
|
|
|
this.options = d.extend({}, n, a);
|
|
|
this.containers = [];
|
|
|
this.options.rootGroup || (this.scrollProxy = d.proxy(this.scroll, this), this.dragProxy = d.proxy(this.drag, this), this.dropProxy = d.proxy(this.drop, this), this.placeholder = d(this.options.placeholder), a.isValidTarget || (this.options.isValidTarget = f));
|
|
|
}
|
|
|
|
|
|
function s(a, b) {
|
|
|
this.el = a;
|
|
|
this.options = d.extend({}, z, b);
|
|
|
this.group = q.get(this.options);
|
|
|
this.rootGroup = this.options.rootGroup || this.group;
|
|
|
this.handle = this.rootGroup.options.handle || this.rootGroup.options.itemSelector;
|
|
|
var c = this.rootGroup.options.itemPath;
|
|
|
this.target = c ? this.el.find(c) : this.el;
|
|
|
this.target.on(t.start, this.handle, d.proxy(this.dragInit, this));
|
|
|
this.options.drop && this.group.containers.push(this);
|
|
|
}
|
|
|
|
|
|
var z = {
|
|
|
drag: !0,
|
|
|
drop: !0,
|
|
|
exclude: "",
|
|
|
nested: !0,
|
|
|
vertical: !0
|
|
|
},
|
|
|
n = {
|
|
|
afterMove: function afterMove(a, b, c) {},
|
|
|
containerPath: "",
|
|
|
containerSelector: "ol, ul",
|
|
|
distance: 0,
|
|
|
delay: 0,
|
|
|
handle: "",
|
|
|
itemPath: "",
|
|
|
itemSelector: "li",
|
|
|
bodyClass: "dragging",
|
|
|
draggedClass: "dragged",
|
|
|
isValidTarget: function isValidTarget(a, b) {
|
|
|
return !0;
|
|
|
},
|
|
|
onCancel: function onCancel(a, b, c, e) {},
|
|
|
onDrag: function onDrag(a, b, c, e) {
|
|
|
a.css(b);
|
|
|
},
|
|
|
onDragStart: function onDragStart(a, b, c, e) {
|
|
|
a.css({
|
|
|
height: a.outerHeight(),
|
|
|
width: a.outerWidth()
|
|
|
});
|
|
|
a.addClass(b.group.options.draggedClass);
|
|
|
d("body").addClass(b.group.options.bodyClass);
|
|
|
},
|
|
|
onDrop: function onDrop(a, b, c, e) {
|
|
|
a.removeClass(b.group.options.draggedClass).removeAttr("style");
|
|
|
d("body").removeClass(b.group.options.bodyClass);
|
|
|
},
|
|
|
onMousedown: function onMousedown(a, b, c) {
|
|
|
if (!c.target.nodeName.match(/^(input|select|textarea)$/i)) return c.preventDefault(), !0;
|
|
|
},
|
|
|
placeholderClass: "placeholder",
|
|
|
placeholder: '<li class="placeholder"></li>',
|
|
|
pullPlaceholder: !0,
|
|
|
serialize: function serialize(a, b, c) {
|
|
|
a = d.extend({}, a.data());
|
|
|
if (c) return [b];
|
|
|
b[0] && (a.children = b);
|
|
|
delete a.subContainers;
|
|
|
delete a.sortable;
|
|
|
return a;
|
|
|
},
|
|
|
tolerance: 0
|
|
|
},
|
|
|
r = {},
|
|
|
y = 0,
|
|
|
A = {
|
|
|
left: 0,
|
|
|
top: 0,
|
|
|
bottom: 0,
|
|
|
right: 0
|
|
|
},
|
|
|
t = {
|
|
|
start: "touchstart.sortable mousedown.sortable",
|
|
|
drop: "touchend.sortable touchcancel.sortable mouseup.sortable",
|
|
|
drag: "touchmove.sortable mousemove.sortable",
|
|
|
scroll: "scroll.sortable"
|
|
|
};
|
|
|
|
|
|
q.get = function (a) {
|
|
|
r[a.group] || (a.group === f && (a.group = y++), r[a.group] = new q(a));
|
|
|
return r[a.group];
|
|
|
};
|
|
|
|
|
|
q.prototype = {
|
|
|
dragInit: function dragInit(a, b) {
|
|
|
this.$document = d(b.el[0].ownerDocument);
|
|
|
var c = d(a.target).closest(this.options.itemSelector);
|
|
|
c.length && (this.item = c, this.itemContainer = b, !this.item.is(this.options.exclude) && this.options.onMousedown(this.item, n.onMousedown, a) && (this.setPointer(a), this.toggleListeners("on"), this.setupDelayTimer(), this.dragInitDone = !0));
|
|
|
},
|
|
|
drag: function drag(a) {
|
|
|
if (!this.dragging) {
|
|
|
if (!this.distanceMet(a) || !this.delayMet) return;
|
|
|
this.options.onDragStart(this.item, this.itemContainer, n.onDragStart, a);
|
|
|
this.item.before(this.placeholder);
|
|
|
this.dragging = !0;
|
|
|
}
|
|
|
|
|
|
this.setPointer(a);
|
|
|
this.options.onDrag(this.item, p(this.pointer, this.item.offsetParent()), n.onDrag, a);
|
|
|
a = this.getPointer(a);
|
|
|
var b = this.sameResultBox,
|
|
|
c = this.options.tolerance;
|
|
|
(!b || b.top - c > a.top || b.bottom + c < a.top || b.left - c > a.left || b.right + c < a.left) && !this.searchValidTarget() && (this.placeholder.detach(), this.lastAppendedItem = f);
|
|
|
},
|
|
|
drop: function drop(a) {
|
|
|
this.toggleListeners("off");
|
|
|
this.dragInitDone = !1;
|
|
|
|
|
|
if (this.dragging) {
|
|
|
if (this.placeholder.closest("html")[0]) this.placeholder.before(this.item).detach();else this.options.onCancel(this.item, this.itemContainer, n.onCancel, a);
|
|
|
this.options.onDrop(this.item, this.getContainer(this.item), n.onDrop, a);
|
|
|
this.clearDimensions();
|
|
|
this.clearOffsetParent();
|
|
|
this.lastAppendedItem = this.sameResultBox = f;
|
|
|
this.dragging = !1;
|
|
|
}
|
|
|
},
|
|
|
searchValidTarget: function searchValidTarget(a, b) {
|
|
|
a || (a = this.relativePointer || this.pointer, b = this.lastRelativePointer || this.lastPointer);
|
|
|
|
|
|
for (var c = x(this.getContainerDimensions(), a, b), e = c.length; e--;) {
|
|
|
var d = c[e][0];
|
|
|
if (!c[e][1] || this.options.pullPlaceholder) if (d = this.containers[d], !d.disabled) {
|
|
|
if (!this.$getOffsetParent()) {
|
|
|
var g = d.getItemOffsetParent();
|
|
|
a = p(a, g);
|
|
|
b = p(b, g);
|
|
|
}
|
|
|
|
|
|
if (d.searchValidTarget(a, b)) return !0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
this.sameResultBox && (this.sameResultBox = f);
|
|
|
},
|
|
|
movePlaceholder: function movePlaceholder(a, b, c, e) {
|
|
|
var d = this.lastAppendedItem;
|
|
|
if (e || !d || d[0] !== b[0]) b[c](this.placeholder), this.lastAppendedItem = b, this.sameResultBox = e, this.options.afterMove(this.placeholder, a, b);
|
|
|
},
|
|
|
getContainerDimensions: function getContainerDimensions() {
|
|
|
this.containerDimensions || w(this.containers, this.containerDimensions = [], this.options.tolerance, !this.$getOffsetParent());
|
|
|
return this.containerDimensions;
|
|
|
},
|
|
|
getContainer: function getContainer(a) {
|
|
|
return a.closest(this.options.containerSelector).data(m);
|
|
|
},
|
|
|
$getOffsetParent: function $getOffsetParent() {
|
|
|
if (this.offsetParent === f) {
|
|
|
var a = this.containers.length - 1,
|
|
|
b = this.containers[a].getItemOffsetParent();
|
|
|
if (!this.options.rootGroup) for (; a--;) {
|
|
|
if (b[0] != this.containers[a].getItemOffsetParent()[0]) {
|
|
|
b = !1;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
this.offsetParent = b;
|
|
|
}
|
|
|
|
|
|
return this.offsetParent;
|
|
|
},
|
|
|
setPointer: function setPointer(a) {
|
|
|
a = this.getPointer(a);
|
|
|
|
|
|
if (this.$getOffsetParent()) {
|
|
|
var b = p(a, this.$getOffsetParent());
|
|
|
this.lastRelativePointer = this.relativePointer;
|
|
|
this.relativePointer = b;
|
|
|
}
|
|
|
|
|
|
this.lastPointer = this.pointer;
|
|
|
this.pointer = a;
|
|
|
},
|
|
|
distanceMet: function distanceMet(a) {
|
|
|
a = this.getPointer(a);
|
|
|
return Math.max(Math.abs(this.pointer.left - a.left), Math.abs(this.pointer.top - a.top)) >= this.options.distance;
|
|
|
},
|
|
|
getPointer: function getPointer(a) {
|
|
|
var b = a.originalEvent || a.originalEvent.touches && a.originalEvent.touches[0];
|
|
|
return {
|
|
|
left: a.pageX || b.pageX,
|
|
|
top: a.pageY || b.pageY
|
|
|
};
|
|
|
},
|
|
|
setupDelayTimer: function setupDelayTimer() {
|
|
|
var a = this;
|
|
|
this.delayMet = !this.options.delay;
|
|
|
this.delayMet || (clearTimeout(this._mouseDelayTimer), this._mouseDelayTimer = setTimeout(function () {
|
|
|
a.delayMet = !0;
|
|
|
}, this.options.delay));
|
|
|
},
|
|
|
scroll: function scroll(a) {
|
|
|
this.clearDimensions();
|
|
|
this.clearOffsetParent();
|
|
|
},
|
|
|
toggleListeners: function toggleListeners(a) {
|
|
|
var b = this;
|
|
|
d.each(["drag", "drop", "scroll"], function (c, e) {
|
|
|
b.$document[a](t[e], b[e + "Proxy"]);
|
|
|
});
|
|
|
},
|
|
|
clearOffsetParent: function clearOffsetParent() {
|
|
|
this.offsetParent = f;
|
|
|
},
|
|
|
clearDimensions: function clearDimensions() {
|
|
|
this.traverse(function (a) {
|
|
|
a._clearDimensions();
|
|
|
});
|
|
|
},
|
|
|
traverse: function traverse(a) {
|
|
|
a(this);
|
|
|
|
|
|
for (var b = this.containers.length; b--;) {
|
|
|
this.containers[b].traverse(a);
|
|
|
}
|
|
|
},
|
|
|
_clearDimensions: function _clearDimensions() {
|
|
|
this.containerDimensions = f;
|
|
|
},
|
|
|
_destroy: function _destroy() {
|
|
|
r[this.options.group] = f;
|
|
|
}
|
|
|
};
|
|
|
s.prototype = {
|
|
|
dragInit: function dragInit(a) {
|
|
|
var b = this.rootGroup;
|
|
|
!this.disabled && !b.dragInitDone && this.options.drag && this.isValidDrag(a) && b.dragInit(a, this);
|
|
|
},
|
|
|
isValidDrag: function isValidDrag(a) {
|
|
|
return 1 == a.which || "touchstart" == a.type && 1 == a.originalEvent.touches.length;
|
|
|
},
|
|
|
searchValidTarget: function searchValidTarget(a, b) {
|
|
|
var c = x(this.getItemDimensions(), a, b),
|
|
|
e = c.length,
|
|
|
d = this.rootGroup,
|
|
|
g = !d.options.isValidTarget || d.options.isValidTarget(d.item, this);
|
|
|
if (!e && g) return d.movePlaceholder(this, this.target, "append"), !0;
|
|
|
|
|
|
for (; e--;) {
|
|
|
if (d = c[e][0], !c[e][1] && this.hasChildGroup(d)) {
|
|
|
if (this.getContainerGroup(d).searchValidTarget(a, b)) return !0;
|
|
|
} else if (g) return this.movePlaceholder(d, a), !0;
|
|
|
}
|
|
|
},
|
|
|
movePlaceholder: function movePlaceholder(a, b) {
|
|
|
var c = d(this.items[a]),
|
|
|
e = this.itemDimensions[a],
|
|
|
k = "after",
|
|
|
g = c.outerWidth(),
|
|
|
f = c.outerHeight(),
|
|
|
h = c.offset(),
|
|
|
h = {
|
|
|
left: h.left,
|
|
|
right: h.left + g,
|
|
|
top: h.top,
|
|
|
bottom: h.top + f
|
|
|
};
|
|
|
this.options.vertical ? b.top <= (e[2] + e[3]) / 2 ? (k = "before", h.bottom -= f / 2) : h.top += f / 2 : b.left <= (e[0] + e[1]) / 2 ? (k = "before", h.right -= g / 2) : h.left += g / 2;
|
|
|
this.hasChildGroup(a) && (h = A);
|
|
|
this.rootGroup.movePlaceholder(this, c, k, h);
|
|
|
},
|
|
|
getItemDimensions: function getItemDimensions() {
|
|
|
this.itemDimensions || (this.items = this.$getChildren(this.el, "item").filter(":not(." + this.group.options.placeholderClass + ", ." + this.group.options.draggedClass + ")").get(), w(this.items, this.itemDimensions = [], this.options.tolerance));
|
|
|
return this.itemDimensions;
|
|
|
},
|
|
|
getItemOffsetParent: function getItemOffsetParent() {
|
|
|
var a = this.el;
|
|
|
return "relative" === a.css("position") || "absolute" === a.css("position") || "fixed" === a.css("position") ? a : a.offsetParent();
|
|
|
},
|
|
|
hasChildGroup: function hasChildGroup(a) {
|
|
|
return this.options.nested && this.getContainerGroup(a);
|
|
|
},
|
|
|
getContainerGroup: function getContainerGroup(a) {
|
|
|
var b = d.data(this.items[a], "subContainers");
|
|
|
|
|
|
if (b === f) {
|
|
|
var c = this.$getChildren(this.items[a], "container"),
|
|
|
b = !1;
|
|
|
c[0] && (b = d.extend({}, this.options, {
|
|
|
rootGroup: this.rootGroup,
|
|
|
group: y++
|
|
|
}), b = c[m](b).data(m).group);
|
|
|
d.data(this.items[a], "subContainers", b);
|
|
|
}
|
|
|
|
|
|
return b;
|
|
|
},
|
|
|
$getChildren: function $getChildren(a, b) {
|
|
|
var c = this.rootGroup.options,
|
|
|
e = c[b + "Path"],
|
|
|
c = c[b + "Selector"];
|
|
|
a = d(a);
|
|
|
e && (a = a.find(e));
|
|
|
return a.children(c);
|
|
|
},
|
|
|
_serialize: function _serialize(a, b) {
|
|
|
var c = this,
|
|
|
e = this.$getChildren(a, b ? "item" : "container").not(this.options.exclude).map(function () {
|
|
|
return c._serialize(d(this), !b);
|
|
|
}).get();
|
|
|
return this.rootGroup.options.serialize(a, e, b);
|
|
|
},
|
|
|
traverse: function traverse(a) {
|
|
|
d.each(this.items || [], function (b) {
|
|
|
(b = d.data(this, "subContainers")) && b.traverse(a);
|
|
|
});
|
|
|
a(this);
|
|
|
},
|
|
|
_clearDimensions: function _clearDimensions() {
|
|
|
this.itemDimensions = f;
|
|
|
},
|
|
|
_destroy: function _destroy() {
|
|
|
var a = this;
|
|
|
this.target.off(t.start, this.handle);
|
|
|
this.el.removeData(m);
|
|
|
this.options.drop && (this.group.containers = d.grep(this.group.containers, function (b) {
|
|
|
return b != a;
|
|
|
}));
|
|
|
d.each(this.items || [], function () {
|
|
|
d.removeData(this, "subContainers");
|
|
|
});
|
|
|
}
|
|
|
};
|
|
|
var u = {
|
|
|
enable: function enable() {
|
|
|
this.traverse(function (a) {
|
|
|
a.disabled = !1;
|
|
|
});
|
|
|
},
|
|
|
disable: function disable() {
|
|
|
this.traverse(function (a) {
|
|
|
a.disabled = !0;
|
|
|
});
|
|
|
},
|
|
|
serialize: function serialize() {
|
|
|
return this._serialize(this.el, !0);
|
|
|
},
|
|
|
refresh: function refresh() {
|
|
|
this.traverse(function (a) {
|
|
|
a._clearDimensions();
|
|
|
});
|
|
|
},
|
|
|
destroy: function destroy() {
|
|
|
this.traverse(function (a) {
|
|
|
a._destroy();
|
|
|
});
|
|
|
}
|
|
|
};
|
|
|
d.extend(s.prototype, u);
|
|
|
|
|
|
d.fn[m] = function (a) {
|
|
|
var b = Array.prototype.slice.call(arguments, 1);
|
|
|
return this.map(function () {
|
|
|
var c = d(this),
|
|
|
e = c.data(m);
|
|
|
if (e && u[a]) return u[a].apply(e, b) || this;
|
|
|
e || a !== f && "object" !== _typeof(a) || c.data(m, new s(c, a));
|
|
|
return this;
|
|
|
});
|
|
|
};
|
|
|
}(jQuery, window, "sortable");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./resources/js/other/typehead.js":
|
|
|
/*!****************************************!*\
|
|
|
!*** ./resources/js/other/typehead.js ***!
|
|
|
\****************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
|
|
|
|
!function (t, e) {
|
|
|
"use strict";
|
|
|
|
|
|
true && module.exports ? module.exports = e(__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (t) {
|
|
|
return e(t);
|
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;
|
|
|
}(this, function (t) {
|
|
|
"use strict";
|
|
|
|
|
|
var e = function e(s, i) {
|
|
|
this.$element = t(s), this.options = t.extend({}, e.defaults, i), this.matcher = this.options.matcher || this.matcher, this.sorter = this.options.sorter || this.sorter, this.select = this.options.select || this.select, this.autoSelect = "boolean" != typeof this.options.autoSelect || this.options.autoSelect, this.highlighter = this.options.highlighter || this.highlighter, this.render = this.options.render || this.render, this.updater = this.options.updater || this.updater, this.displayText = this.options.displayText || this.displayText, this.itemLink = this.options.itemLink || this.itemLink, this.itemTitle = this.options.itemTitle || this.itemTitle, this.followLinkOnSelect = this.options.followLinkOnSelect || this.followLinkOnSelect, this.source = this.options.source, this.delay = this.options.delay, this.theme = this.options.theme && this.options.themes && this.options.themes[this.options.theme] || e.defaults.themes[e.defaults.theme], this.$menu = t(this.options.menu || this.theme.menu), this.$appendTo = this.options.appendTo ? t(this.options.appendTo) : null, this.fitToElement = "boolean" == typeof this.options.fitToElement && this.options.fitToElement, this.shown = !1, this.listen(), this.showHintOnFocus = ("boolean" == typeof this.options.showHintOnFocus || "all" === this.options.showHintOnFocus) && this.options.showHintOnFocus, this.afterSelect = this.options.afterSelect, this.afterEmptySelect = this.options.afterEmptySelect, this.addItem = !1, this.value = this.$element.val() || this.$element.text(), this.keyPressed = !1, this.focused = this.$element.is(":focus"), this.changeInputOnSelect = this.options.changeInputOnSelect || this.changeInputOnSelect, this.changeInputOnMove = this.options.changeInputOnMove || this.changeInputOnMove, this.openLinkInNewTab = this.options.openLinkInNewTab || this.openLinkInNewTab, this.selectOnBlur = this.options.selectOnBlur || this.selectOnBlur, this.showCategoryHeader = this.options.showCategoryHeader || this.showCategoryHeader;
|
|
|
};
|
|
|
|
|
|
e.prototype = {
|
|
|
constructor: e,
|
|
|
setDefault: function setDefault(t) {
|
|
|
if (this.$element.data("active", t), this.autoSelect || t) {
|
|
|
var e = this.updater(t);
|
|
|
e || (e = ""), this.$element.val(this.displayText(e) || e).text(this.displayText(e) || e).change(), this.afterSelect(e);
|
|
|
}
|
|
|
|
|
|
return this.hide();
|
|
|
},
|
|
|
select: function select() {
|
|
|
var t = this.$menu.find(".active").data("value");
|
|
|
|
|
|
if (this.$element.data("active", t), this.autoSelect || t) {
|
|
|
var e = this.updater(t);
|
|
|
e || (e = ""), this.changeInputOnSelect && this.$element.val(this.displayText(e) || e).text(this.displayText(e) || e).change(), this.followLinkOnSelect && this.itemLink(t) ? (this.openLinkInNewTab ? window.open(this.itemLink(t), "_blank") : document.location = this.itemLink(t), this.afterSelect(e)) : this.followLinkOnSelect && !this.itemLink(t) ? this.afterEmptySelect(e) : this.afterSelect(e);
|
|
|
} else this.afterEmptySelect();
|
|
|
|
|
|
return this.hide();
|
|
|
},
|
|
|
updater: function updater(t) {
|
|
|
return t;
|
|
|
},
|
|
|
setSource: function setSource(t) {
|
|
|
this.source = t;
|
|
|
},
|
|
|
show: function show() {
|
|
|
var e,
|
|
|
s = t.extend({}, this.$element.position(), {
|
|
|
height: this.$element[0].offsetHeight
|
|
|
}),
|
|
|
i = "function" == typeof this.options.scrollHeight ? this.options.scrollHeight.call() : this.options.scrollHeight;
|
|
|
|
|
|
if (this.shown ? e = this.$menu : this.$appendTo ? (e = this.$menu.appendTo(this.$appendTo), this.hasSameParent = this.$appendTo.is(this.$element.parent())) : (e = this.$menu.insertAfter(this.$element), this.hasSameParent = !0), !this.hasSameParent) {
|
|
|
e.css("position", "fixed");
|
|
|
var o = this.$element.offset();
|
|
|
s.top = o.top, s.left = o.left;
|
|
|
}
|
|
|
|
|
|
var n = t(e).parent().hasClass("dropup") ? "auto" : s.top + s.height + i,
|
|
|
h = t(e).hasClass("dropdown-menu-right") ? "auto" : s.left;
|
|
|
return e.css({
|
|
|
top: n,
|
|
|
left: h
|
|
|
}).show(), !0 === this.options.fitToElement && e.css("width", this.$element.outerWidth() + "px"), this.shown = !0, this;
|
|
|
},
|
|
|
hide: function hide() {
|
|
|
return this.$menu.hide(), this.shown = !1, this;
|
|
|
},
|
|
|
lookup: function lookup(e) {
|
|
|
if (this.query = null != e ? e : this.$element.val(), this.query.length < this.options.minLength && !this.options.showHintOnFocus) return this.shown ? this.hide() : this;
|
|
|
var s = t.proxy(function () {
|
|
|
t.isFunction(this.source) && 3 === this.source.length ? this.source(this.query, t.proxy(this.process, this), t.proxy(this.process, this)) : t.isFunction(this.source) ? this.source(this.query, t.proxy(this.process, this)) : this.source && this.process(this.source);
|
|
|
}, this);
|
|
|
clearTimeout(this.lookupWorker), this.lookupWorker = setTimeout(s, this.delay);
|
|
|
},
|
|
|
process: function process(e) {
|
|
|
var s = this;
|
|
|
return e = t.grep(e, function (t) {
|
|
|
return s.matcher(t);
|
|
|
}), (e = this.sorter(e)).length || this.options.addItem ? (e.length > 0 ? this.$element.data("active", e[0]) : this.$element.data("active", null), "all" != this.options.items && (e = e.slice(0, this.options.items)), this.options.addItem && e.push(this.options.addItem), this.render(e).show()) : this.shown ? this.hide() : this;
|
|
|
},
|
|
|
matcher: function matcher(t) {
|
|
|
return ~this.displayText(t).toLowerCase().indexOf(this.query.toLowerCase());
|
|
|
},
|
|
|
sorter: function sorter(t) {
|
|
|
for (var e, s = [], i = [], o = []; e = t.shift();) {
|
|
|
var n = this.displayText(e);
|
|
|
n.toLowerCase().indexOf(this.query.toLowerCase()) ? ~n.indexOf(this.query) ? i.push(e) : o.push(e) : s.push(e);
|
|
|
}
|
|
|
|
|
|
return s.concat(i, o);
|
|
|
},
|
|
|
highlighter: function highlighter(t) {
|
|
|
var e = this.query;
|
|
|
if ("" === e) return t;
|
|
|
var s,
|
|
|
i = t.match(/(>)([^<]*)(<)/g),
|
|
|
o = [],
|
|
|
n = [];
|
|
|
if (i && i.length) for (s = 0; s < i.length; ++s) {
|
|
|
i[s].length > 2 && o.push(i[s]);
|
|
|
} else (o = []).push(t);
|
|
|
e = e.replace(/[\(\)\/\.\*\+\?\[\]]/g, function (t) {
|
|
|
return "\\" + t;
|
|
|
});
|
|
|
var h,
|
|
|
a = new RegExp(e, "g");
|
|
|
|
|
|
for (s = 0; s < o.length; ++s) {
|
|
|
(h = o[s].match(a)) && h.length > 0 && n.push(o[s]);
|
|
|
}
|
|
|
|
|
|
for (s = 0; s < n.length; ++s) {
|
|
|
t = t.replace(n[s], n[s].replace(a, "<strong>$&</strong>"));
|
|
|
}
|
|
|
|
|
|
return t;
|
|
|
},
|
|
|
render: function render(e) {
|
|
|
var s = this,
|
|
|
i = this,
|
|
|
o = !1,
|
|
|
n = [],
|
|
|
h = s.options.separator;
|
|
|
return t.each(e, function (t, s) {
|
|
|
t > 0 && s[h] !== e[t - 1][h] && n.push({
|
|
|
__type: "divider"
|
|
|
}), this.showCategoryHeader && (!s[h] || 0 !== t && s[h] === e[t - 1][h] || n.push({
|
|
|
__type: "category",
|
|
|
name: s[h]
|
|
|
})), n.push(s);
|
|
|
}), e = t(n).map(function (e, n) {
|
|
|
if ("category" == (n.__type || !1)) return t(s.options.headerHtml || s.theme.headerHtml).text(n.name)[0];
|
|
|
if ("divider" == (n.__type || !1)) return t(s.options.headerDivider || s.theme.headerDivider)[0];
|
|
|
var h = i.displayText(n);
|
|
|
return (e = t(s.options.item || s.theme.item).data("value", n)).find(s.options.itemContentSelector || s.theme.itemContentSelector).addBack(s.options.itemContentSelector || s.theme.itemContentSelector).html(s.highlighter(h, n)), s.options.followLinkOnSelect && e.find("a").attr("href", i.itemLink(n)), e.find("a").attr("title", i.itemTitle(n)), h == i.$element.val() && (e.addClass("active"), i.$element.data("active", n), o = !0), e[0];
|
|
|
}), this.autoSelect && !o && (e.filter(":not(.dropdown-header)").first().addClass("active"), this.$element.data("active", e.first().data("value"))), this.$menu.html(e), this;
|
|
|
},
|
|
|
displayText: function displayText(t) {
|
|
|
return void 0 !== t && void 0 !== t.name ? t.name : t;
|
|
|
},
|
|
|
itemLink: function itemLink(t) {
|
|
|
return null;
|
|
|
},
|
|
|
itemTitle: function itemTitle(t) {
|
|
|
return null;
|
|
|
},
|
|
|
next: function next(e) {
|
|
|
var s = this.$menu.find(".active").removeClass("active").next();
|
|
|
|
|
|
for (s.length || (s = t(this.$menu.find(t(this.options.item || this.theme.item).prop("tagName"))[0])); s.hasClass("divider") || s.hasClass("dropdown-header");) {
|
|
|
s = s.next();
|
|
|
}
|
|
|
|
|
|
s.addClass("active");
|
|
|
var i = this.updater(s.data("value"));
|
|
|
this.changeInputOnMove && this.$element.val(this.displayText(i) || i);
|
|
|
},
|
|
|
prev: function prev(e) {
|
|
|
var s = this.$menu.find(".active").removeClass("active").prev();
|
|
|
|
|
|
for (s.length || (s = this.$menu.find(t(this.options.item || this.theme.item).prop("tagName")).last()); s.hasClass("divider") || s.hasClass("dropdown-header");) {
|
|
|
s = s.prev();
|
|
|
}
|
|
|
|
|
|
s.addClass("active");
|
|
|
var i = this.updater(s.data("value"));
|
|
|
this.changeInputOnMove && this.$element.val(this.displayText(i) || i);
|
|
|
},
|
|
|
listen: function listen() {
|
|
|
this.$element.on("focus.bootstrap3Typeahead", t.proxy(this.focus, this)).on("blur.bootstrap3Typeahead", t.proxy(this.blur, this)).on("keypress.bootstrap3Typeahead", t.proxy(this.keypress, this)).on("propertychange.bootstrap3Typeahead input.bootstrap3Typeahead", t.proxy(this.input, this)).on("keyup.bootstrap3Typeahead", t.proxy(this.keyup, this)), this.eventSupported("keydown") && this.$element.on("keydown.bootstrap3Typeahead", t.proxy(this.keydown, this));
|
|
|
var e = t(this.options.item || this.theme.item).prop("tagName");
|
|
|
"ontouchstart" in document.documentElement ? this.$menu.on("touchstart", e, t.proxy(this.touchstart, this)).on("touchend", e, t.proxy(this.click, this)) : this.$menu.on("click", t.proxy(this.click, this)).on("mouseenter", e, t.proxy(this.mouseenter, this)).on("mouseleave", e, t.proxy(this.mouseleave, this)).on("mousedown", t.proxy(this.mousedown, this));
|
|
|
},
|
|
|
destroy: function destroy() {
|
|
|
this.$element.data("typeahead", null), this.$element.data("active", null), this.$element.unbind("focus.bootstrap3Typeahead").unbind("blur.bootstrap3Typeahead").unbind("keypress.bootstrap3Typeahead").unbind("propertychange.bootstrap3Typeahead input.bootstrap3Typeahead").unbind("keyup.bootstrap3Typeahead"), this.eventSupported("keydown") && this.$element.unbind("keydown.bootstrap3-typeahead"), this.$menu.remove(), this.destroyed = !0;
|
|
|
},
|
|
|
eventSupported: function eventSupported(t) {
|
|
|
var e = (t in this.$element);
|
|
|
return e || (this.$element.setAttribute(t, "return;"), e = "function" == typeof this.$element[t]), e;
|
|
|
},
|
|
|
move: function move(t) {
|
|
|
if (this.shown) switch (t.keyCode) {
|
|
|
case 9:
|
|
|
case 13:
|
|
|
case 27:
|
|
|
t.preventDefault();
|
|
|
break;
|
|
|
|
|
|
case 38:
|
|
|
if (t.shiftKey) return;
|
|
|
t.preventDefault(), this.prev();
|
|
|
break;
|
|
|
|
|
|
case 40:
|
|
|
if (t.shiftKey) return;
|
|
|
t.preventDefault(), this.next();
|
|
|
}
|
|
|
},
|
|
|
keydown: function keydown(e) {
|
|
|
17 !== e.keyCode && (this.keyPressed = !0, this.suppressKeyPressRepeat = ~t.inArray(e.keyCode, [40, 38, 9, 13, 27]), this.shown || 40 != e.keyCode ? this.move(e) : this.lookup());
|
|
|
},
|
|
|
keypress: function keypress(t) {
|
|
|
this.suppressKeyPressRepeat || this.move(t);
|
|
|
},
|
|
|
input: function input(t) {
|
|
|
var e = this.$element.val() || this.$element.text();
|
|
|
this.value !== e && (this.value = e, this.lookup());
|
|
|
},
|
|
|
keyup: function keyup(t) {
|
|
|
if (!this.destroyed) switch (t.keyCode) {
|
|
|
case 40:
|
|
|
case 38:
|
|
|
case 16:
|
|
|
case 17:
|
|
|
case 18:
|
|
|
break;
|
|
|
|
|
|
case 9:
|
|
|
if (!this.shown || this.showHintOnFocus && !this.keyPressed) return;
|
|
|
this.select();
|
|
|
break;
|
|
|
|
|
|
case 13:
|
|
|
if (!this.shown) return;
|
|
|
this.select();
|
|
|
break;
|
|
|
|
|
|
case 27:
|
|
|
if (!this.shown) return;
|
|
|
this.hide();
|
|
|
}
|
|
|
},
|
|
|
focus: function focus(t) {
|
|
|
this.focused || (this.focused = !0, this.keyPressed = !1, this.options.showHintOnFocus && !0 !== this.skipShowHintOnFocus && ("all" === this.options.showHintOnFocus ? this.lookup("") : this.lookup())), this.skipShowHintOnFocus && (this.skipShowHintOnFocus = !1);
|
|
|
},
|
|
|
blur: function blur(t) {
|
|
|
this.mousedover || this.mouseddown || !this.shown ? this.mouseddown && (this.skipShowHintOnFocus = !0, this.$element.focus(), this.mouseddown = !1) : (this.selectOnBlur && this.select(), this.hide(), this.focused = !1, this.keyPressed = !1);
|
|
|
},
|
|
|
click: function click(t) {
|
|
|
t.preventDefault(), this.skipShowHintOnFocus = !0, this.select(), this.$element.focus(), this.hide();
|
|
|
},
|
|
|
mouseenter: function mouseenter(e) {
|
|
|
this.mousedover = !0, this.$menu.find(".active").removeClass("active"), t(e.currentTarget).addClass("active");
|
|
|
},
|
|
|
mouseleave: function mouseleave(t) {
|
|
|
this.mousedover = !1, !this.focused && this.shown && this.hide();
|
|
|
},
|
|
|
mousedown: function mousedown(t) {
|
|
|
this.mouseddown = !0, this.$menu.one("mouseup", function (t) {
|
|
|
this.mouseddown = !1;
|
|
|
}.bind(this));
|
|
|
},
|
|
|
touchstart: function touchstart(e) {
|
|
|
e.preventDefault(), this.$menu.find(".active").removeClass("active"), t(e.currentTarget).addClass("active");
|
|
|
},
|
|
|
touchend: function touchend(t) {
|
|
|
t.preventDefault(), this.select(), this.$element.focus();
|
|
|
}
|
|
|
};
|
|
|
var s = t.fn.typeahead;
|
|
|
t.fn.typeahead = function (s) {
|
|
|
var i = arguments;
|
|
|
return "string" == typeof s && "getActive" == s ? this.data("active") : this.each(function () {
|
|
|
var o = t(this),
|
|
|
n = o.data("typeahead"),
|
|
|
h = "object" == _typeof(s) && s;
|
|
|
n || o.data("typeahead", n = new e(this, h)), "string" == typeof s && n[s] && (i.length > 1 ? n[s].apply(n, Array.prototype.slice.call(i, 1)) : n[s]());
|
|
|
});
|
|
|
}, e.defaults = {
|
|
|
source: [],
|
|
|
items: 8,
|
|
|
minLength: 1,
|
|
|
scrollHeight: 0,
|
|
|
autoSelect: !0,
|
|
|
afterSelect: t.noop,
|
|
|
afterEmptySelect: t.noop,
|
|
|
addItem: !1,
|
|
|
followLinkOnSelect: !1,
|
|
|
delay: 0,
|
|
|
separator: "category",
|
|
|
changeInputOnSelect: !0,
|
|
|
changeInputOnMove: !0,
|
|
|
openLinkInNewTab: !1,
|
|
|
selectOnBlur: !0,
|
|
|
showCategoryHeader: !0,
|
|
|
theme: "bootstrap3",
|
|
|
themes: {
|
|
|
bootstrap3: {
|
|
|
menu: '<ul class="typeahead dropdown-menu" role="listbox"></ul>',
|
|
|
item: '<li><a class="dropdown-item" href="#" role="option"></a></li>',
|
|
|
itemContentSelector: "a",
|
|
|
headerHtml: '<li class="dropdown-header"></li>',
|
|
|
headerDivider: '<li class="divider" role="separator"></li>'
|
|
|
},
|
|
|
bootstrap4: {
|
|
|
menu: '<div class="typeahead dropdown-menu" role="listbox"></div>',
|
|
|
item: '<button class="dropdown-item" role="option"></button>',
|
|
|
itemContentSelector: ".dropdown-item",
|
|
|
headerHtml: '<h6 class="dropdown-header"></h6>',
|
|
|
headerDivider: '<div class="dropdown-divider"></div>'
|
|
|
}
|
|
|
}
|
|
|
}, t.fn.typeahead.Constructor = e, t.fn.typeahead.noConflict = function () {
|
|
|
return t.fn.typeahead = s, this;
|
|
|
}, t(document).on("focus.typeahead.data-api", '[data-provide="typeahead"]', function (e) {
|
|
|
var s = t(this);
|
|
|
s.data("typeahead") || s.typeahead(s.data());
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 0:
|
|
|
/*!************************************************************!*\
|
|
|
!*** multi ./resources/js/app.js ./resources/css/app.scss ***!
|
|
|
\************************************************************/
|
|
|
/*! no static exports found */
|
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
__webpack_require__(/*! /home/freeman/Project/laravel/laravel-starter-kit/resources/js/app.js */"./resources/js/app.js");
|
|
|
module.exports = __webpack_require__(/*! /home/freeman/Project/laravel/laravel-starter-kit/resources/css/app.scss */"./resources/css/app.scss");
|
|
|
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
},[[0,"/vendor/js/manifest","/vendor/js/vendor"]]]);
|