{"version":3,"file":"index-BulxAstG.js","sources":["../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/vue-types/dist/vue-types.m.js","../../node_modules/ant-design-vue/es/_util/vue-types/index.js","../../node_modules/ant-design-vue/es/_util/util.js","../../node_modules/ant-design-vue/es/_util/classNames.js","../../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../node_modules/ant-design-vue/es/_util/isValid.js","../../node_modules/ant-design-vue/es/_util/props-util/index.js","../../node_modules/ant-design-vue/es/_util/type.js","../../node_modules/ant-design-vue/es/_util/supportsPassive.js","../../node_modules/ant-design-vue/es/vc-util/Dom/addEventListener.js","../../node_modules/ant-design-vue/es/vc-pagination/locale/en_US.js","../../node_modules/ant-design-vue/es/vc-calendar/src/locale/en_US.js","../../node_modules/ant-design-vue/es/time-picker/locale/en_US.js","../../node_modules/ant-design-vue/es/date-picker/locale/en_US.js","../../node_modules/ant-design-vue/es/locale/default.js","../../node_modules/ant-design-vue/es/locale-provider/LocaleReceiver.js","../../node_modules/ant-design-vue/es/empty/empty.js","../../node_modules/ant-design-vue/es/empty/simple.js","../../node_modules/ant-design-vue/es/empty/index.js","../../node_modules/ant-design-vue/es/config-provider/renderEmpty.js","../../node_modules/moment/dist/moment.js","../../node_modules/ant-design-vue/es/_util/interopDefault.js","../../node_modules/ant-design-vue/es/modal/locale.js","../../node_modules/ant-design-vue/es/vc-util/warning.js","../../node_modules/ant-design-vue/es/_util/warning.js","../../node_modules/ant-design-vue/es/locale-provider/index.js","../../node_modules/ant-design-vue/es/config-provider/index.js","../../node_modules/ant-design-vue/es/_util/vnode.js","../../node_modules/ant-design-vue/es/vc-util/Dom/contains.js","../../node_modules/ant-design-vue/es/_util/getRequestAnimationFrame.js","../../node_modules/ant-design-vue/es/_util/requestAnimationTimeout.js","../../node_modules/dom-align/dist-web/index.js","../../node_modules/ant-design-vue/es/vc-util/Dom/isVisible.js","../../node_modules/ant-design-vue/es/vc-align/util.js","../../node_modules/ant-design-vue/es/vc-align/hooks/useBuffer.js","../../node_modules/ant-design-vue/es/vc-align/Align.js","../../node_modules/ant-design-vue/es/vc-trigger/LazyRenderBox.js","../../node_modules/ant-design-vue/es/vc-trigger/PopupInner.js","../../node_modules/ant-design-vue/es/_util/BaseMixin.js","../../node_modules/ant-design-vue/es/vc-trigger/utils.js","../../node_modules/ant-design-vue/es/_util/transition.js","../../node_modules/ant-design-vue/es/vc-trigger/Popup.js","../../node_modules/ant-design-vue/es/_util/Portal.js","../../node_modules/ant-design-vue/es/vc-trigger/Trigger.js","../../node_modules/ant-design-vue/es/vc-tooltip/placements.js","../../node_modules/ant-design-vue/es/vc-tooltip/Content.js","../../node_modules/ant-design-vue/es/vc-tooltip/Tooltip.js","../../node_modules/ant-design-vue/es/tooltip/placements.js","../../node_modules/ant-design-vue/es/_util/colors.js","../../node_modules/ant-design-vue/es/tooltip/abstractTooltipProps.js","../../node_modules/ant-design-vue/es/tooltip/Tooltip.js","../../node_modules/ant-design-vue/es/tooltip/index.js"],"sourcesContent":["export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function e(e,t){for(var n=0;n=0||(i[n]=e[n]);return i}function o(e){return 1==(null!=(t=e)&&\"object\"==typeof t&&!1===Array.isArray(t))&&\"[object Object]\"===Object.prototype.toString.call(e);var t}var u=Object.prototype,a=u.toString,f=u.hasOwnProperty,c=/^\\s*function (\\w+)/;function l(e){var t,n=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(n){var r=n.toString().match(c);return r?r[1]:\"\"}return\"\"}var s=function(e){var t,n;return!1!==o(e)&&\"function\"==typeof(t=e.constructor)&&!1!==o(n=t.prototype)&&!1!==n.hasOwnProperty(\"isPrototypeOf\")},v=function(e){return e},y=v;if(\"production\"!==process.env.NODE_ENV){var p=\"undefined\"!=typeof console;y=p?function(e){console.warn(\"[VueTypes warn]: \"+e)}:v}var d=function(e,t){return f.call(e,t)},h=Number.isInteger||function(e){return\"number\"==typeof e&&isFinite(e)&&Math.floor(e)===e},b=Array.isArray||function(e){return\"[object Array]\"===a.call(e)},O=function(e){return\"[object Function]\"===a.call(e)},g=function(e){return s(e)&&d(e,\"_vueTypes_name\")},m=function(e){return s(e)&&(d(e,\"type\")||[\"_vueTypes_name\",\"validator\",\"default\",\"required\"].some(function(t){return d(e,t)}))};function j(e,t){return Object.defineProperty(e.bind(t),\"__original\",{value:e})}function _(e,t,n){var r;void 0===n&&(n=!1);var i=!0,o=\"\";r=s(e)?e:{type:e};var u=g(r)?r._vueTypes_name+\" - \":\"\";if(m(r)&&null!==r.type){if(void 0===r.type||!0===r.type)return i;if(!r.required&&void 0===t)return i;b(r.type)?(i=r.type.some(function(e){return!0===_(e,t,!0)}),o=r.type.map(function(e){return l(e)}).join(\" or \")):i=\"Array\"===(o=l(r))?b(t):\"Object\"===o?s(t):\"String\"===o||\"Number\"===o||\"Boolean\"===o||\"Function\"===o?function(e){if(null==e)return\"\";var t=e.constructor.toString().match(c);return t?t[1]:\"\"}(t)===o:t instanceof r.type}if(!i){var a=u+'value \"'+t+'\" should be of type \"'+o+'\"';return!1===n?(y(a),!1):a}if(d(r,\"validator\")&&O(r.validator)){var f=y,v=[];if(y=function(e){v.push(e)},i=r.validator(t),y=f,!i){var p=(v.length>1?\"* \":\"\")+v.join(\"\\n* \");return v.length=0,!1===n?(y(p),i):p}}return i}function T(e,t){var n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(e){return void 0!==e||this.default?O(e)||!0===_(this,e,!0)?(this.default=b(e)?function(){return[].concat(e)}:s(e)?function(){return Object.assign({},e)}:e,this):(y(this._vueTypes_name+' - invalid default value: \"'+e+'\"'),this):this}}}),r=n.validator;return O(r)&&(n.validator=j(r,n)),n}function w(e,t){var n=T(e,t);return Object.defineProperty(n,\"validate\",{value:function(e){return O(this.validator)&&y(this._vueTypes_name+\" - calling .validate() will overwrite the current custom validator function. Validator info:\\n\"+JSON.stringify(this)),this.validator=j(e,this),this}})}function k(e,t,n){var r,o,u=(r=t,o={},Object.getOwnPropertyNames(r).forEach(function(e){o[e]=Object.getOwnPropertyDescriptor(r,e)}),Object.defineProperties({},o));if(u._vueTypes_name=e,!s(n))return u;var a,f,c=n.validator,l=i(n,[\"validator\"]);if(O(c)){var v=u.validator;v&&(v=null!==(f=(a=v).__original)&&void 0!==f?f:a),u.validator=j(v?function(e){return v.call(this,e)&&c.call(this,e)}:c,u)}return Object.assign(u,l)}function P(e){return e.replace(/^(?!\\s*$)/gm,\" \")}var x=function(){return w(\"any\",{})},A=function(){return w(\"function\",{type:Function})},E=function(){return w(\"boolean\",{type:Boolean})},N=function(){return w(\"string\",{type:String})},q=function(){return w(\"number\",{type:Number})},S=function(){return w(\"array\",{type:Array})},V=function(){return w(\"object\",{type:Object})},F=function(){return T(\"integer\",{type:Number,validator:function(e){return h(e)}})},D=function(){return T(\"symbol\",{validator:function(e){return\"symbol\"==typeof e}})};function L(e,t){if(void 0===t&&(t=\"custom validation failed\"),\"function\"!=typeof e)throw new TypeError(\"[VueTypes error]: You must provide a function as argument\");return T(e.name||\"<>\",{validator:function(n){var r=e(n);return r||y(this._vueTypes_name+\" - \"+t),r}})}function Y(e){if(!b(e))throw new TypeError(\"[VueTypes error]: You must provide an array as argument.\");var t='oneOf - value should be one of \"'+e.join('\", \"')+'\".',n=e.reduce(function(e,t){if(null!=t){var n=t.constructor;-1===e.indexOf(n)&&e.push(n)}return e},[]);return T(\"oneOf\",{type:n.length>0?n:void 0,validator:function(n){var r=-1!==e.indexOf(n);return r||y(t),r}})}function B(e){if(!b(e))throw new TypeError(\"[VueTypes error]: You must provide an array as argument\");for(var t=!1,n=[],r=0;r0&&n.some(function(e){return-1===o.indexOf(e)})){var u=n.filter(function(e){return-1===o.indexOf(e)});return y(1===u.length?'shape - required property \"'+u[0]+'\" is not defined.':'shape - required properties \"'+u.join('\", \"')+'\" are not defined.'),!1}return o.every(function(n){if(-1===t.indexOf(n))return!0===i._vueTypes_isLoose||(y('shape - shape definition does not include a \"'+n+'\" property. Allowed keys: \"'+t.join('\", \"')+'\".'),!1);var o=_(e[n],r[n],!0);return\"string\"==typeof o&&y('shape - \"'+n+'\" property validation error:\\n '+P(o)),!0===o})}});return Object.defineProperty(r,\"_vueTypes_isLoose\",{writable:!0,value:!1}),Object.defineProperty(r,\"loose\",{get:function(){return this._vueTypes_isLoose=!0,this}}),r}var $=function(){function e(){}return e.extend=function(e){var t=this;if(b(e))return e.forEach(function(e){return t.extend(e)}),this;var n=e.name,r=e.validate,o=void 0!==r&&r,u=e.getter,a=void 0!==u&&u,f=i(e,[\"name\",\"validate\",\"getter\"]);if(d(this,n))throw new TypeError('[VueTypes error]: Type \"'+n+'\" already defined');var c,l=f.type;return g(l)?(delete f.type,Object.defineProperty(this,n,a?{get:function(){return k(n,l,f)}}:{value:function(){var e,t=k(n,l,f);return t.validator&&(t.validator=(e=t.validator).bind.apply(e,[t].concat([].slice.call(arguments)))),t}})):(c=a?{get:function(){var e=Object.assign({},f);return o?w(n,e):T(n,e)},enumerable:!0}:{value:function(){var e,t,r=Object.assign({},f);return e=o?w(n,r):T(n,r),r.validator&&(e.validator=(t=r.validator).bind.apply(t,[e].concat([].slice.call(arguments)))),e},enumerable:!0},Object.defineProperty(this,n,c))},t(e,null,[{key:\"any\",get:function(){return x()}},{key:\"func\",get:function(){return A().def(this.defaults.func)}},{key:\"bool\",get:function(){return E().def(this.defaults.bool)}},{key:\"string\",get:function(){return N().def(this.defaults.string)}},{key:\"number\",get:function(){return q().def(this.defaults.number)}},{key:\"array\",get:function(){return S().def(this.defaults.array)}},{key:\"object\",get:function(){return V().def(this.defaults.object)}},{key:\"integer\",get:function(){return F().def(this.defaults.integer)}},{key:\"symbol\",get:function(){return D()}}]),e}();function z(e){var i;return void 0===e&&(e={func:function(){},bool:!0,string:\"\",number:0,array:function(){return[]},object:function(){return{}},integer:0}),(i=function(i){function o(){return i.apply(this,arguments)||this}return r(o,i),t(o,null,[{key:\"sensibleDefaults\",get:function(){return n({},this.defaults)},set:function(t){this.defaults=!1!==t?n({},!0!==t?t:e):{}}}]),o}($)).defaults=n({},e),i}$.defaults={},$.custom=L,$.oneOf=Y,$.instanceOf=J,$.oneOfType=B,$.arrayOf=I,$.objectOf=M,$.shape=R,$.utils={validate:function(e,t){return!0===_(t,e,!0)},toType:function(e,t,n){return void 0===n&&(n=!1),n?w(e,t):T(e,t)}};var C=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t}(z());export default C;export{x as any,S as array,I as arrayOf,E as bool,z as createTypes,L as custom,k as fromType,A as func,J as instanceOf,F as integer,q as number,V as object,M as objectOf,Y as oneOf,B as oneOfType,R as shape,N as string,D as symbol,T as toType,w as toValidableType,_ as validateType};\n//# sourceMappingURL=vue-types.m.js.map\n","import { createTypes } from 'vue-types';\nvar PropTypes = createTypes({\n func: undefined,\n bool: undefined,\n string: undefined,\n number: undefined,\n array: undefined,\n object: undefined,\n integer: undefined\n});\nPropTypes.extend([{\n name: 'looseBool',\n getter: true,\n type: Boolean,\n default: undefined\n}, {\n name: 'style',\n getter: true,\n type: [String, Object],\n default: undefined\n}, {\n name: 'VNodeChild',\n getter: true,\n type: null\n}]);\nexport function withUndefined(type) {\n type.default = undefined;\n return type;\n}\nexport default PropTypes;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var isFunction = function isFunction(val) {\n return typeof val === 'function';\n};\nexport var isArray = Array.isArray;\nexport var isString = function isString(val) {\n return typeof val === 'string';\n};\nexport var isSymbol = function isSymbol(val) {\n return _typeof(val) === 'symbol';\n};\nexport var isObject = function isObject(val) {\n return val !== null && _typeof(val) === 'object';\n};\nvar onRE = /^on[^a-z]/;\n\nvar isOn = function isOn(key) {\n return onRE.test(key);\n};\n\nvar cacheStringFunction = function cacheStringFunction(fn) {\n var cache = Object.create(null);\n return function (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\n\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cacheStringFunction(function (str) {\n return str.replace(camelizeRE, function (_, c) {\n return c ? c.toUpperCase() : '';\n });\n});\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cacheStringFunction(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\nvar capitalize = cacheStringFunction(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar hasOwn = function hasOwn(val, key) {\n return hasOwnProperty.call(val, key);\n}; // change from vue sourcecode\n\n\nfunction resolvePropValue(options, props, key, value) {\n var opt = options[key];\n\n if (opt != null) {\n var hasDefault = hasOwn(opt, 'default'); // default values\n\n if (hasDefault && value === undefined) {\n var defaultValue = opt.default;\n value = opt.type !== Function && isFunction(defaultValue) ? defaultValue() : defaultValue;\n } // boolean casting\n\n\n if (opt.type === Boolean) {\n if (!hasOwn(props, key) && !hasDefault) {\n value = false;\n } else if (value === '') {\n value = true;\n }\n }\n }\n\n return value;\n}\n\nexport function getDataAndAriaProps(props) {\n return Object.keys(props).reduce(function (memo, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-') {\n memo[key] = props[key];\n }\n\n return memo;\n }, {});\n}\nexport { isOn, cacheStringFunction, camelize, hyphenate, capitalize, resolvePropValue };","import { isArray, isString, isObject } from './util';\n\nfunction classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var value = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (!value) continue;\n\n if (isString(value)) {\n classes.push(value);\n } else if (isArray(value)) {\n for (var _i = 0; _i < value.length; _i++) {\n var inner = classNames(value[_i]);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (isObject(value)) {\n for (var name in value) {\n if (value[name]) {\n classes.push(name);\n }\n }\n }\n }\n\n return classes.join(' ');\n}\n\nexport default classNames;","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","var isValid = function isValid(value) {\n return value !== undefined && value !== null && value !== '';\n};\n\nexport default isValid;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _this = this;\n\nimport isPlainObject from 'lodash-es/isPlainObject';\nimport classNames from '../classNames';\nimport { isVNode, Fragment, Comment, Text, h } from 'vue';\nimport { camelize, hyphenate, isOn, resolvePropValue } from '../util';\nimport isValid from '../isValid'; // function getType(fn) {\n// const match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n// return match ? match[1] : '';\n// }\n\nvar splitAttrs = function splitAttrs(attrs) {\n var allAttrs = Object.keys(attrs);\n var eventAttrs = {};\n var onEvents = {};\n var extraAttrs = {};\n\n for (var i = 0, l = allAttrs.length; i < l; i++) {\n var key = allAttrs[i];\n\n if (isOn(key)) {\n eventAttrs[key[2].toLowerCase() + key.slice(3)] = attrs[key];\n onEvents[key] = attrs[key];\n } else {\n extraAttrs[key] = attrs[key];\n }\n }\n\n return {\n onEvents: onEvents,\n events: eventAttrs,\n extraAttrs: extraAttrs\n };\n};\n\nvar parseStyleText = function parseStyleText() {\n var cssText = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var camel = arguments.length > 1 ? arguments[1] : undefined;\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n\n if (tmp.length > 1) {\n var k = camel ? camelize(tmp[0].trim()) : tmp[0].trim();\n res[k] = tmp[1].trim();\n }\n }\n });\n return res;\n};\n\nvar hasProp = function hasProp(instance, prop) {\n return prop in getOptionProps(instance);\n}; // 重构后直接使用 hasProp 替换\n\n\nvar slotHasProp = function slotHasProp(slot, prop) {\n return hasProp(slot, prop);\n};\n\nvar getScopedSlots = function getScopedSlots(ele) {\n return ele.data && ele.data.scopedSlots || {};\n};\n\nvar getSlots = function getSlots(ele) {\n var componentOptions = ele.componentOptions || {};\n\n if (ele.$vnode) {\n componentOptions = ele.$vnode.componentOptions || {};\n }\n\n var children = ele.children || componentOptions.children || [];\n var slots = {};\n children.forEach(function (child) {\n if (!isEmptyElement(child)) {\n var name = child.data && child.data.slot || 'default';\n slots[name] = slots[name] || [];\n slots[name].push(child);\n }\n });\n return _extends(_extends({}, slots), getScopedSlots(ele));\n};\n\nvar flattenChildren = function flattenChildren() {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var filterEmpty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var temp = Array.isArray(children) ? children : [children];\n var res = [];\n temp.forEach(function (child) {\n if (Array.isArray(child)) {\n res.push.apply(res, _toConsumableArray(flattenChildren(child, filterEmpty)));\n } else if (child && child.type === Fragment) {\n res.push.apply(res, _toConsumableArray(flattenChildren(child.children, filterEmpty)));\n } else if (child && isVNode(child)) {\n if (filterEmpty && !isEmptyElement(child)) {\n res.push(child);\n } else if (!filterEmpty) {\n res.push(child);\n }\n } else if (isValid(child)) {\n res.push(child);\n }\n });\n return res;\n};\n\nvar getSlot = function getSlot(self) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (isVNode(self)) {\n if (self.type === Fragment) {\n return name === 'default' ? flattenChildren(self.children) : [];\n } else if (self.children && self.children[name]) {\n return flattenChildren(self.children[name](options));\n } else {\n return [];\n }\n } else {\n var res = self.$slots[name] && self.$slots[name](options);\n return flattenChildren(res);\n }\n};\n\nvar getAllChildren = function getAllChildren(ele) {\n var componentOptions = ele.componentOptions || {};\n\n if (ele.$vnode) {\n componentOptions = ele.$vnode.componentOptions || {};\n }\n\n return ele.children || componentOptions.children || [];\n};\n\nvar getSlotOptions = function getSlotOptions() {\n throw Error('使用 .type 直接取值');\n};\n\nvar findDOMNode = function findDOMNode(instance) {\n var _a;\n\n var node = ((_a = instance === null || instance === void 0 ? void 0 : instance.vnode) === null || _a === void 0 ? void 0 : _a.el) || instance && (instance.$el || instance);\n\n while (node && !node.tagName) {\n node = node.nextSibling;\n }\n\n return node;\n};\n\nvar getOptionProps = function getOptionProps(instance) {\n var res = {};\n\n if (instance.$ && instance.$.vnode) {\n var props = instance.$.vnode.props || {};\n Object.keys(instance.$props).forEach(function (k) {\n var v = instance.$props[k];\n var hyphenateKey = hyphenate(k);\n\n if (v !== undefined || hyphenateKey in props) {\n res[k] = v; // 直接取 $props[k]\n }\n });\n } else if (isVNode(instance) && _typeof(instance.type) === 'object') {\n var originProps = instance.props || {};\n var _props = {};\n Object.keys(originProps).forEach(function (key) {\n _props[camelize(key)] = originProps[key];\n });\n var options = instance.type.props || {};\n Object.keys(options).forEach(function (k) {\n var v = resolvePropValue(options, _props, k, _props[k]);\n\n if (v !== undefined || k in _props) {\n res[k] = v;\n }\n });\n }\n\n return res;\n};\n\nvar getComponent = function getComponent(instance) {\n var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : instance;\n var execute = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var com = undefined;\n\n if (instance.$) {\n var temp = instance[prop];\n\n if (temp !== undefined) {\n return typeof temp === 'function' && execute ? temp(options) : temp;\n } else {\n com = instance.$slots[prop];\n com = execute && com ? com(options) : com;\n }\n } else if (isVNode(instance)) {\n var _temp = instance.props && instance.props[prop];\n\n if (_temp !== undefined && instance.props !== null) {\n return typeof _temp === 'function' && execute ? _temp(options) : _temp;\n } else if (instance.type === Fragment) {\n com = instance.children;\n } else if (instance.children && instance.children[prop]) {\n com = instance.children[prop];\n com = execute && com ? com(options) : com;\n }\n }\n\n if (Array.isArray(com)) {\n com = flattenChildren(com);\n com = com.length === 1 ? com[0] : com;\n com = com.length === 0 ? undefined : com;\n }\n\n return com;\n};\n\nvar getComponentFromProp = function getComponentFromProp(instance, prop) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : instance;\n var execute = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n if (instance.$createElement) {\n // const h = instance.$createElement;\n var temp = instance[prop];\n\n if (temp !== undefined) {\n return typeof temp === 'function' && execute ? temp(h, options) : temp;\n }\n\n return instance.$scopedSlots[prop] && execute && instance.$scopedSlots[prop](options) || instance.$scopedSlots[prop] || instance.$slots[prop] || undefined;\n } else {\n // const h = instance.context.$createElement;\n var _temp2 = getPropsData(instance)[prop];\n\n if (_temp2 !== undefined) {\n return typeof _temp2 === 'function' && execute ? _temp2(h, options) : _temp2;\n }\n\n var slotScope = getScopedSlots(instance)[prop];\n\n if (slotScope !== undefined) {\n return typeof slotScope === 'function' && execute ? slotScope(h, options) : slotScope;\n }\n\n var slotsProp = [];\n var componentOptions = instance.componentOptions || {};\n (componentOptions.children || []).forEach(function (child) {\n if (child.data && child.data.slot === prop) {\n if (child.data.attrs) {\n delete child.data.attrs.slot;\n }\n\n if (child.tag === 'template') {\n slotsProp.push(child.children);\n } else {\n slotsProp.push(child);\n }\n }\n });\n return slotsProp.length ? slotsProp : undefined;\n }\n};\n\nvar getAllProps = function getAllProps(ele) {\n var props = getOptionProps(ele);\n\n if (ele.$) {\n props = _extends(_extends({}, props), _this.$attrs);\n } else {\n props = _extends(_extends({}, ele.props), props);\n }\n\n return props;\n};\n\nvar getPropsData = function getPropsData(ins) {\n var vnode = ins.$ ? ins.$ : ins;\n var res = {};\n var originProps = vnode.props || {};\n var props = {};\n Object.keys(originProps).forEach(function (key) {\n props[camelize(key)] = originProps[key];\n });\n var options = isPlainObject(vnode.type) ? vnode.type.props : {};\n options && Object.keys(options).forEach(function (k) {\n var v = resolvePropValue(options, props, k, props[k]);\n\n if (k in props) {\n // 仅包含 props,不包含默认值\n res[k] = v;\n }\n });\n return _extends(_extends({}, props), res); // 合并事件、未声明属性等\n};\n\nvar getValueByProp = function getValueByProp(ele, prop) {\n return getPropsData(ele)[prop];\n};\n\nvar getAttrs = function getAttrs(ele) {\n var data = ele.data;\n\n if (ele.$vnode) {\n data = ele.$vnode.data;\n }\n\n return data ? data.attrs || {} : {};\n};\n\nvar getKey = function getKey(ele) {\n var key = ele.key;\n return key;\n};\n\nexport function getEvents() {\n var ele = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var on = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var props = {};\n\n if (ele.$) {\n props = _extends(_extends({}, props), ele.$attrs);\n } else {\n props = _extends(_extends({}, props), ele.props);\n }\n\n return splitAttrs(props)[on ? 'onEvents' : 'events'];\n}\nexport function getEvent(child, event) {\n return child.props && child.props[event];\n} // 获取 xxx.native 或者 原生标签 事件\n\nexport function getDataEvents(child) {\n var events = {};\n\n if (child.data && child.data.on) {\n events = child.data.on;\n }\n\n return _extends({}, events);\n} // use getListeners instead this.$listeners\n// https://github.com/vueComponent/ant-design-vue/issues/1705\n\nexport function getListeners(context) {\n return (context.$vnode ? context.$vnode.componentOptions.listeners : context.$listeners) || {};\n}\nexport function getClass(ele) {\n var props = (isVNode(ele) ? ele.props : ele.$attrs) || {};\n var tempCls = props.class || {};\n var cls = {};\n\n if (typeof tempCls === 'string') {\n tempCls.split(' ').forEach(function (c) {\n cls[c.trim()] = true;\n });\n } else if (Array.isArray(tempCls)) {\n classNames(tempCls).split(' ').forEach(function (c) {\n cls[c.trim()] = true;\n });\n } else {\n cls = _extends(_extends({}, cls), tempCls);\n }\n\n return cls;\n}\nexport function getStyle(ele, camel) {\n var props = (isVNode(ele) ? ele.props : ele.$attrs) || {};\n var style = props.style || {};\n\n if (typeof style === 'string') {\n style = parseStyleText(style, camel);\n } else if (camel && style) {\n // 驼峰化\n var res = {};\n Object.keys(style).forEach(function (k) {\n return res[camelize(k)] = style[k];\n });\n return res;\n }\n\n return style;\n}\nexport function getComponentName(opts) {\n return opts && (opts.Ctor.options.name || opts.tag);\n}\nexport function isFragment(c) {\n return c.length === 1 && c[0].type === Fragment;\n}\nexport function isEmptyContent(c) {\n return c === undefined || c === null || c === '' || Array.isArray(c) && c.length === 0;\n}\nexport function isEmptyElement(c) {\n return c && (c.type === Comment || c.type === Fragment && c.children.length === 0 || c.type === Text && c.children.trim() === '');\n}\nexport function isEmptySlot(c) {\n return !c || c().every(isEmptyElement);\n}\nexport function isStringElement(c) {\n return c && c.type === Text;\n}\nexport function filterEmpty() {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var res = [];\n children.forEach(function (child) {\n if (Array.isArray(child)) {\n res.push.apply(res, _toConsumableArray(child));\n } else if (child.type === Fragment) {\n res.push.apply(res, _toConsumableArray(child.children));\n } else {\n res.push(child);\n }\n });\n return res.filter(function (c) {\n return !isEmptyElement(c);\n });\n}\n\nvar initDefaultProps = function initDefaultProps(propTypes, defaultProps) {\n Object.keys(defaultProps).forEach(function (k) {\n if (propTypes[k]) {\n propTypes[k].def && (propTypes[k] = propTypes[k].def(defaultProps[k]));\n } else {\n throw new Error(\"not have \".concat(k, \" prop\"));\n }\n });\n return propTypes;\n};\n\nexport function mergeProps() {\n var args = [].slice.call(arguments, 0);\n var props = {};\n args.forEach(function () {\n var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n for (var _i = 0, _Object$entries = Object.entries(p); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n k = _Object$entries$_i[0],\n v = _Object$entries$_i[1];\n\n props[k] = props[k] || {};\n\n if (isPlainObject(v)) {\n _extends(props[k], v);\n } else {\n props[k] = v;\n }\n }\n });\n return props;\n}\n\nfunction isValidElement(element) {\n return element && element.__v_isVNode && _typeof(element.type) !== 'symbol'; // remove text node\n}\n\nfunction getPropsSlot(slots, props) {\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'default';\n\n var _a, _b;\n\n return (_a = props[prop]) !== null && _a !== void 0 ? _a : (_b = slots[prop]) === null || _b === void 0 ? void 0 : _b.call(slots);\n}\n\nexport { splitAttrs, hasProp, getOptionProps, getComponent, getComponentFromProp, getSlotOptions, slotHasProp, getPropsData, getKey, getAttrs, getValueByProp, parseStyleText, initDefaultProps, isValidElement, camelize, getSlots, getSlot, getAllProps, getAllChildren, findDOMNode, flattenChildren, getPropsSlot };\nexport default hasProp;","// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args;\n};\nexport var tupleNum = function tupleNum() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args;\n};\nexport var withInstall = function withInstall(comp) {\n var c = comp;\n\n c.install = function (app) {\n app.component(c.displayName || c.name, comp);\n };\n\n return comp;\n};","// Test via a getter in the options object to see if the passive property is accessed\nvar supportsPassive = false;\n\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassive', null, opts);\n window.removeEventListener('testPassive', null, opts);\n} catch (e) {}\n\nexport default supportsPassive;","import supportsPassive from '../../_util/supportsPassive';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n if (target.addEventListener) {\n var opt = option;\n\n if (opt === undefined && supportsPassive && (eventType === 'touchstart' || eventType === 'touchmove' || eventType === 'wheel')) {\n opt = {\n passive: false\n };\n }\n\n target.addEventListener(eventType, cb, opt);\n }\n\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, cb);\n }\n }\n };\n}","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: '',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages'\n};","export default {\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};","var locale = {\n placeholder: 'Select time'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from '../../vc-calendar/src/locale/en_US';\nimport TimePickerLocale from '../../time-picker/locale/en_US'; // Merge into a locale object\n\nvar locale = {\n lang: _extends({\n placeholder: 'Select date',\n rangePlaceholder: ['Start date', 'End date']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n}; // All settings at:\n// https://github.com/vueComponent/ant-design-vue/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","import Pagination from '../vc-pagination/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nimport Calendar from '../calendar/locale/en_US'; // import ColorPicker from '../color-picker/locale/en_US';\n\nvar typeTemplate = '${label} is not a valid ${type}';\nexport default {\n locale: 'en',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No Data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n default: 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n enum: '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { inject, defineComponent, computed } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport defaultLocaleData from './default';\nexport default defineComponent({\n name: 'LocaleReceiver',\n props: {\n componentName: PropTypes.string,\n defaultLocale: {\n type: [Object, Function]\n },\n children: {\n type: Function\n }\n },\n setup: function setup(props, _ref) {\n var slots = _ref.slots;\n var localeData = inject('localeData', {});\n var locale = computed(function () {\n var _props$componentName = props.componentName,\n componentName = _props$componentName === void 0 ? 'global' : _props$componentName,\n defaultLocale = props.defaultLocale;\n var locale = defaultLocale || defaultLocaleData[componentName || 'global'];\n var antLocale = localeData.antLocale;\n var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n });\n var localeCode = computed(function () {\n var antLocale = localeData.antLocale;\n var localeCode = antLocale && antLocale.locale; // Had use LocaleProvide but didn't set locale\n\n if (antLocale && antLocale.exist && !localeCode) {\n return defaultLocaleData.locale;\n }\n\n return localeCode;\n });\n return function () {\n var children = props.children || slots.default;\n var antLocale = localeData.antLocale;\n return children === null || children === void 0 ? void 0 : children(locale.value, localeCode.value, antLocale);\n };\n }\n});\nexport function useLocaleReceiver(componentName, defaultLocale) {\n var localeData = inject('localeData', {});\n var componentLocale = computed(function () {\n var antLocale = localeData.antLocale;\n var locale = defaultLocale || defaultLocaleData[componentName || 'global'];\n var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n });\n return [componentLocale];\n}","import { createVNode as _createVNode } from \"vue\";\nimport { inject } from 'vue';\nimport { defaultConfigProvider } from '../config-provider';\n\nvar Empty = function Empty() {\n var _inject = inject('configProvider', defaultConfigProvider),\n getPrefixCls = _inject.getPrefixCls;\n\n var prefixCls = getPrefixCls('empty-img-default');\n return _createVNode(\"svg\", {\n \"class\": prefixCls,\n \"width\": \"184\",\n \"height\": \"152\",\n \"viewBox\": \"0 0 184 152\"\n }, [_createVNode(\"g\", {\n \"fill\": \"none\",\n \"fill-rule\": \"evenodd\"\n }, [_createVNode(\"g\", {\n \"transform\": \"translate(24 31.67)\"\n }, [_createVNode(\"ellipse\", {\n \"class\": \"\".concat(prefixCls, \"-ellipse\"),\n \"cx\": \"67.797\",\n \"cy\": \"106.89\",\n \"rx\": \"67.797\",\n \"ry\": \"12.668\"\n }, null), _createVNode(\"path\", {\n \"class\": \"\".concat(prefixCls, \"-path-1\"),\n \"d\": \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n }, null), _createVNode(\"path\", {\n \"class\": \"\".concat(prefixCls, \"-path-2\"),\n \"d\": \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n \"transform\": \"translate(13.56)\"\n }, null), _createVNode(\"path\", {\n \"class\": \"\".concat(prefixCls, \"-path-3\"),\n \"d\": \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n }, null), _createVNode(\"path\", {\n \"class\": \"\".concat(prefixCls, \"-path-4\"),\n \"d\": \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n }, null)]), _createVNode(\"path\", {\n \"class\": \"\".concat(prefixCls, \"-path-5\"),\n \"d\": \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n }, null), _createVNode(\"g\", {\n \"class\": \"\".concat(prefixCls, \"-g\"),\n \"transform\": \"translate(149.65 15.383)\"\n }, [_createVNode(\"ellipse\", {\n \"cx\": \"20.654\",\n \"cy\": \"3.167\",\n \"rx\": \"2.849\",\n \"ry\": \"2.815\"\n }, null), _createVNode(\"path\", {\n \"d\": \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n }, null)])])]);\n};\n\nEmpty.PRESENTED_IMAGE_DEFAULT = true;\nexport default Empty;","import { createVNode as _createVNode } from \"vue\";\nimport { inject } from 'vue';\nimport { defaultConfigProvider } from '../config-provider';\n\nvar Simple = function Simple() {\n var _inject = inject('configProvider', defaultConfigProvider),\n getPrefixCls = _inject.getPrefixCls;\n\n var prefixCls = getPrefixCls('empty-img-simple');\n return _createVNode(\"svg\", {\n \"class\": prefixCls,\n \"width\": \"64\",\n \"height\": \"41\",\n \"viewBox\": \"0 0 64 41\"\n }, [_createVNode(\"g\", {\n \"transform\": \"translate(0 1)\",\n \"fill\": \"none\",\n \"fill-rule\": \"evenodd\"\n }, [_createVNode(\"ellipse\", {\n \"class\": \"\".concat(prefixCls, \"-ellipse\"),\n \"fill\": \"#F5F5F5\",\n \"cx\": \"32\",\n \"cy\": \"33\",\n \"rx\": \"32\",\n \"ry\": \"7\"\n }, null), _createVNode(\"g\", {\n \"class\": \"\".concat(prefixCls, \"-g\"),\n \"fill-rule\": \"nonzero\",\n \"stroke\": \"#D9D9D9\"\n }, [_createVNode(\"path\", {\n \"d\": \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n }, null), _createVNode(\"path\", {\n \"d\": \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n \"fill\": \"#FAFAFA\",\n \"class\": \"\".concat(prefixCls, \"-path\")\n }, null)])])]);\n};\n\nSimple.PRESENTED_IMAGE_SIMPLE = true;\nexport default Simple;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport { inject } from 'vue';\nimport classNames from '../_util/classNames';\nimport { defaultConfigProvider } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nimport { filterEmpty } from '../_util/props-util';\nimport PropTypes from '../_util/vue-types';\nimport { withInstall } from '../_util/type';\n\nvar defaultEmptyImg = _createVNode(DefaultEmptyImg, null, null);\n\nvar simpleEmptyImg = _createVNode(SimpleEmptyImg, null, null);\n\nvar Empty = function Empty(props, _ref) {\n var _ref$slots = _ref.slots,\n slots = _ref$slots === void 0 ? {} : _ref$slots,\n attrs = _ref.attrs;\n\n var _a;\n\n var configProvider = inject('configProvider', defaultConfigProvider);\n var getPrefixCls = configProvider.getPrefixCls,\n direction = configProvider.direction;\n\n var _b = _extends(_extends({}, props), attrs),\n customizePrefixCls = _b.prefixCls,\n _b$image = _b.image,\n image = _b$image === void 0 ? defaultEmptyImg : _b$image,\n _b$description = _b.description,\n description = _b$description === void 0 ? ((_a = slots.description) === null || _a === void 0 ? void 0 : _a.call(slots)) || undefined : _b$description,\n imageStyle = _b.imageStyle,\n _b$class = _b.class,\n className = _b$class === void 0 ? '' : _b$class,\n restProps = __rest(_b, [\"prefixCls\", \"image\", \"description\", \"imageStyle\", \"class\"]);\n\n return _createVNode(LocaleReceiver, {\n \"componentName\": \"Empty\",\n \"children\": function children(locale) {\n var _classNames;\n\n var prefixCls = getPrefixCls('empty', customizePrefixCls);\n var des = typeof description !== 'undefined' ? description : locale.description;\n var alt = typeof des === 'string' ? des : 'empty';\n var imageNode = null;\n\n if (typeof image === 'string') {\n imageNode = _createVNode(\"img\", {\n \"alt\": alt,\n \"src\": image\n }, null);\n } else {\n imageNode = image;\n }\n\n return _createVNode(\"div\", _objectSpread({\n \"class\": classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-normal\"), image === simpleEmptyImg), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames))\n }, restProps), [_createVNode(\"div\", {\n \"class\": \"\".concat(prefixCls, \"-image\"),\n \"style\": imageStyle\n }, [imageNode]), des && _createVNode(\"p\", {\n \"class\": \"\".concat(prefixCls, \"-description\")\n }, [des]), slots.default && _createVNode(\"div\", {\n \"class\": \"\".concat(prefixCls, \"-footer\")\n }, [filterEmpty(slots.default())])]);\n }\n }, null);\n};\n\nEmpty.displayName = 'AEmpty';\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nEmpty.inheritAttrs = false;\nEmpty.props = {\n prefixCls: PropTypes.string,\n image: PropTypes.any,\n description: PropTypes.any,\n imageStyle: PropTypes.object\n};\nexport default withInstall(Empty);","import { createVNode as _createVNode } from \"vue\";\nimport { inject } from 'vue';\nimport Empty from '../empty';\nimport { defaultConfigProvider } from '.';\n\nvar RenderEmpty = function RenderEmpty(props) {\n var configProvider = inject('configProvider', defaultConfigProvider);\n\n var renderHtml = function renderHtml(componentName) {\n var getPrefixCls = configProvider.getPrefixCls;\n var prefix = getPrefixCls('empty');\n\n switch (componentName) {\n case 'Table':\n case 'List':\n return _createVNode(Empty, {\n \"image\": Empty.PRESENTED_IMAGE_SIMPLE\n }, null);\n\n case 'Select':\n case 'TreeSelect':\n case 'Cascader':\n case 'Transfer':\n case 'Mentions':\n return _createVNode(Empty, {\n \"image\": Empty.PRESENTED_IMAGE_SIMPLE,\n \"class\": \"\".concat(prefix, \"-small\")\n }, null);\n\n default:\n return _createVNode(Empty, null, null);\n }\n };\n\n return renderHtml(props.componentName);\n};\n\nfunction renderEmpty(componentName) {\n return _createVNode(RenderEmpty, {\n \"componentName\": componentName\n }, null);\n}\n\nexport default renderEmpty;","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nvar hookCallback;\n\nfunction hooks() {\n return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback(callback) {\n hookCallback = callback;\n}\n\nfunction isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\nfunction isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nfunction hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n}\n\nfunction isUndefined(input) {\n return input === void 0;\n}\n\nfunction isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n}\n\nfunction isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n}\n\nfunction map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n}\n\nfunction extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n}\n\nfunction createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n}\n\nfunction getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n\nvar some;\nif (Array.prototype.some) {\n some = Array.prototype.some;\n} else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nfunction isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n}\n\nfunction createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nfunction copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\n// Moment prototype object\nfunction Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nfunction isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n\nfunction warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nfunction deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n\nfunction set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nvar defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n};\n\nfunction calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n}\n\nvar formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([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,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n}\n\nfunction expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n\nvar defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nfunction longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n};\n\nfunction relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n}\n\nfunction pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nvar aliases = {};\n\nfunction addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n}\n\nfunction normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n\nvar priorities = {};\n\nfunction addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n}\n\nfunction getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nfunction absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n\nfunction toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n\nfunction makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n}\n\nfunction get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n}\n\nfunction set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nfunction stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n\nvar match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[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,\n regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nfunction getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n}\n\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nvar tokens = {};\n\nfunction addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n}\n\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nvar YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\nfunction mod(n, x) {\n return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// ALIASES\n\naddUnitAlias('month', 'M');\n\n// PRIORITY\n\naddUnitPriority('month', 8);\n\n// PARSING\n\naddRegexToken('M', match1to2);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\nfunction localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n}\n\nfunction localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n}\n\nfunction getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n}\n\nfunction getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nfunction monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n}\n\nfunction monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// ALIASES\n\naddUnitAlias('year', 'y');\n\n// PRIORITIES\n\naddUnitPriority('year', 1);\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n return isLeapYear(this.year());\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n}\n\nfunction weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// ALIASES\n\naddUnitAlias('week', 'w');\naddUnitAlias('isoWeek', 'W');\n\n// PRIORITIES\n\naddUnitPriority('week', 5);\naddUnitPriority('isoWeek', 5);\n\n// PARSING\n\naddRegexToken('w', match1to2);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n);\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// ALIASES\n\naddUnitAlias('day', 'd');\naddUnitAlias('weekday', 'e');\naddUnitAlias('isoWeekday', 'E');\n\n// PRIORITY\naddUnitPriority('day', 11);\naddUnitPriority('weekday', 11);\naddUnitPriority('isoWeekday', 11);\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\nfunction localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n}\n\nfunction localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n}\n\nfunction localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n}\n\nfunction handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nfunction getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nfunction weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n}\n\nfunction weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n}\n\nfunction weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n}\n\nfunction computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// ALIASES\n\naddUnitAlias('hour', 'h');\n\n// PRIORITY\naddUnitPriority('hour', 13);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2);\naddRegexToken('h', match1to2);\naddRegexToken('k', match1to2);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\nfunction localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\nvar baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n};\n\n// internal storage for locale config files\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n}\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n}\n\nfunction isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n}\n\nfunction loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n}\n\nfunction defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nfunction updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nfunction getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nfunction listLocales() {\n return keys(locales);\n}\n\nfunction checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n\n// iso 8601 regex\n// 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)\nvar extendedIsoRegex =\n /^\\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)?)?$/,\n basicIsoRegex =\n /^\\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)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(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}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n// date from iso format\nfunction configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\nfunction extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nfunction configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nfunction prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nfunction createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n\nfunction createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nfunction isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\nfunction isValid$1() {\n return this._isValid;\n}\n\nfunction createInvalid$1() {\n return createDuration(NaN);\n}\n\nfunction Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\n\nfunction offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nfunction createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\nfunction isString(input) {\n return typeof input === 'string' || input instanceof String;\n}\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nfunction isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n}\n\nfunction isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n}\n\nfunction isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n}\n\nfunction calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n}\n\nfunction clone() {\n return new Moment(this);\n}\n\nfunction isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n}\n\nfunction isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n}\n\nfunction isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData() {\n return this._locale;\n}\n\nvar MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n}\n\nfunction utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n}\n\nfunction startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n return new Date(this.valueOf());\n}\n\nfunction toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n}\n\nfunction toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n}\n\nfunction toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2() {\n return isValid(this);\n}\n\nfunction parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n}\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n);\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n});\n\nfunction localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n}\n\nfunction localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n}\n\nfunction localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n}\n\nfunction getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n}\n\nfunction getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n}\n\nfunction getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n}\n\nfunction getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n}\n\nfunction erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\naddUnitAlias('weekYear', 'gg');\naddUnitAlias('isoWeekYear', 'GG');\n\n// PRIORITY\n\naddUnitPriority('weekYear', 1);\naddUnitPriority('isoWeekYear', 1);\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n);\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nfunction getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nfunction getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// ALIASES\n\naddUnitAlias('quarter', 'Q');\n\n// PRIORITY\n\naddUnitPriority('quarter', 7);\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// ALIASES\n\naddUnitAlias('date', 'D');\n\n// PRIORITY\naddUnitPriority('date', 9);\n\n// PARSING\n\naddRegexToken('D', match1to2);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// ALIASES\n\naddUnitAlias('dayOfYear', 'DDD');\n\n// PRIORITY\naddUnitPriority('dayOfYear', 4);\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// ALIASES\n\naddUnitAlias('minute', 'm');\n\n// PRIORITY\n\naddUnitPriority('minute', 14);\n\n// PARSING\n\naddRegexToken('m', match1to2);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// ALIASES\n\naddUnitAlias('second', 's');\n\n// PRIORITY\n\naddUnitPriority('second', 15);\n\n// PARSING\n\naddRegexToken('s', match1to2);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// ALIASES\n\naddUnitAlias('millisecond', 'ms');\n\n// PRIORITY\n\naddUnitPriority('millisecond', 16);\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\nproto.quarter = proto.quarters = getSetQuarter;\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\nproto.hour = proto.hours = getSetHour;\nproto.minute = proto.minutes = getSetMinute;\nproto.second = proto.seconds = getSetSecond;\nproto.millisecond = proto.milliseconds = getSetMillisecond;\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\nproto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n});\n\n// Side effect imports\n\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n}\n\nfunction monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n\nfunction as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n}\n\n// TODO: Use this.as('ms')?\nfunction valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n}\n\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\nfunction clone$1() {\n return createDuration(this);\n}\n\nfunction get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\nfunction weeks() {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nfunction humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nfunction toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asQuarters = asQuarters;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.clone = clone$1;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\nproto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n);\nproto$2.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.29.4';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n};\n\nexport default hooks;\n","// https://github.com/moment/moment/issues/3650\nexport default function interopDefault(m) {\n return m.default || m;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport defaultLocale from '../locale/default';\n\nvar runtimeLocale = _extends({}, defaultLocale.Modal);\n\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = _extends({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","import warning, { resetWarned } from '../vc-util/warning';\nexport { resetWarned };\nexport default (function (valid, component) {\n var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n warning(valid, \"[antdv: \".concat(component, \"] \").concat(message));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { provide, defineComponent, reactive, watch, onUnmounted } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport moment from 'moment';\nimport interopDefault from '../_util/interopDefault';\nimport { changeConfirmLocale } from '../modal/locale';\nimport warning from '../_util/warning';\nimport { withInstall } from '../_util/type';\nexport var ANT_MARK = 'internalMark';\n\nfunction setMomentLocale(locale) {\n if (locale && locale.locale) {\n interopDefault(moment).locale(locale.locale);\n } else {\n interopDefault(moment).locale('en');\n }\n}\n\nvar LocaleProvider = defineComponent({\n name: 'ALocaleProvider',\n props: {\n locale: {\n type: Object\n },\n ANT_MARK__: PropTypes.string\n },\n setup: function setup(props, _ref) {\n var slots = _ref.slots;\n warning(props.ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead');\n var state = reactive({\n antLocale: _extends(_extends({}, props.locale), {\n exist: true\n }),\n ANT_MARK__: ANT_MARK\n });\n provide('localeData', state);\n watch(function () {\n return props.locale;\n }, function (val) {\n state.antLocale = _extends(_extends({}, val), {\n exist: true\n });\n setMomentLocale(val);\n changeConfirmLocale(val && val.Modal);\n }, {\n immediate: true\n });\n onUnmounted(function () {\n changeConfirmLocale();\n });\n return function () {\n var _a;\n\n return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n };\n }\n});\n/* istanbul ignore next */\n\nLocaleProvider.install = function (app) {\n app.component(LocaleProvider.name, LocaleProvider);\n return app;\n};\n\nexport default withInstall(LocaleProvider);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { reactive, provide, defineComponent, watch } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport defaultRenderEmpty from './renderEmpty';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { withInstall } from '../_util/type';\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\nexport var configProviderProps = {\n getTargetContainer: {\n type: Function\n },\n getPopupContainer: {\n type: Function\n },\n prefixCls: String,\n getPrefixCls: {\n type: Function\n },\n renderEmpty: {\n type: Function\n },\n transformCellText: {\n type: Function\n },\n csp: {\n type: Object\n },\n autoInsertSpaceInButton: PropTypes.looseBool,\n locale: {\n type: Object\n },\n pageHeader: {\n type: Object\n },\n componentSize: {\n type: String\n },\n direction: {\n type: String\n },\n space: {\n type: Object\n },\n virtual: PropTypes.looseBool,\n dropdownMatchSelectWidth: PropTypes.looseBool,\n form: {\n type: Object\n }\n};\nvar ConfigProvider = defineComponent({\n name: 'AConfigProvider',\n props: configProviderProps,\n setup: function setup(props, _ref) {\n var slots = _ref.slots;\n\n var getPrefixCls = function getPrefixCls(suffixCls, customizePrefixCls) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'ant' : _props$prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"\".concat(prefixCls, \"-\").concat(suffixCls) : prefixCls;\n };\n\n var renderEmptyComponent = function renderEmptyComponent(name) {\n var renderEmpty = props.renderEmpty || slots.renderEmpty || defaultRenderEmpty;\n return renderEmpty(name);\n };\n\n var getPrefixClsWrapper = function getPrefixClsWrapper(suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n };\n\n var configProvider = reactive(_extends(_extends({}, props), {\n getPrefixCls: getPrefixClsWrapper,\n renderEmpty: renderEmptyComponent\n }));\n Object.keys(props).forEach(function (key) {\n watch(function () {\n return props[key];\n }, function () {\n configProvider[key] = props[key];\n });\n });\n provide('configProvider', configProvider);\n\n var renderProvider = function renderProvider(legacyLocale) {\n var _a;\n\n return _createVNode(LocaleProvider, {\n \"locale\": props.locale || legacyLocale,\n \"ANT_MARK__\": ANT_MARK\n }, {\n default: function _default() {\n return [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)];\n }\n });\n };\n\n return function () {\n return _createVNode(LocaleReceiver, {\n \"children\": function children(_, __, legacyLocale) {\n return renderProvider(legacyLocale);\n }\n }, null);\n };\n }\n});\nexport var defaultConfigProvider = reactive({\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"ant-\".concat(suffixCls) : 'ant';\n },\n renderEmpty: defaultRenderEmpty,\n direction: 'ltr'\n});\nexport default withInstall(ConfigProvider);","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { filterEmpty } from './props-util';\nimport { cloneVNode } from 'vue';\nimport warning from './warning';\nexport function cloneElement(vnode) {\n var nodeProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var mergeRef = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var ele = vnode;\n\n if (Array.isArray(vnode)) {\n ele = filterEmpty(vnode)[0];\n }\n\n if (!ele) {\n return null;\n }\n\n var node = cloneVNode(ele, nodeProps, mergeRef); // cloneVNode内部是合并属性,这里改成覆盖属性\n\n node.props = override ? _extends(_extends({}, node.props), nodeProps) : node.props;\n warning(_typeof(node.props.class) !== 'object', 'class must be string');\n return node;\n}\nexport function cloneVNodes(vnodes) {\n var nodeProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n return vnodes.map(function (vnode) {\n return cloneElement(vnode, nodeProps, override);\n });\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n return root.contains(n);\n}","var availablePrefixs = ['moz', 'ms', 'webkit'];\n\nfunction requestAnimationFramePolyfill() {\n var lastTime = 0;\n return function (callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n}\n\nexport default function getRequestAnimationFrame() {\n if (typeof window === 'undefined') {\n return function () {};\n }\n\n if (window.requestAnimationFrame) {\n // https://github.com/vuejs/vue/issues/4465\n return window.requestAnimationFrame.bind(window);\n }\n\n var prefix = availablePrefixs.filter(function (key) {\n return \"\".concat(key, \"RequestAnimationFrame\") in window;\n })[0];\n return prefix ? window[\"\".concat(prefix, \"RequestAnimationFrame\")] : requestAnimationFramePolyfill();\n}\nexport function cancelRequestAnimationFrame(id) {\n if (typeof window === 'undefined') {\n return null;\n }\n\n if (window.cancelAnimationFrame) {\n return window.cancelAnimationFrame(id);\n }\n\n var prefix = availablePrefixs.filter(function (key) {\n return \"\".concat(key, \"CancelAnimationFrame\") in window || \"\".concat(key, \"CancelRequestAnimationFrame\") in window;\n })[0];\n return prefix ? (window[\"\".concat(prefix, \"CancelAnimationFrame\")] || window[\"\".concat(prefix, \"CancelRequestAnimationFrame\")]).call(this, id) : clearTimeout(id);\n}","import getRequestAnimationFrame, { cancelRequestAnimationFrame as caf } from './getRequestAnimationFrame';\nvar raf = getRequestAnimationFrame();\nexport var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {\n return caf(frame.id);\n};\nexport var requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {\n var start = Date.now();\n\n function timeout() {\n if (Date.now() - start >= delay) {\n callback.call();\n } else {\n frame.id = raf(timeout);\n }\n }\n\n var frame = {\n id: raf(timeout)\n };\n return frame;\n};","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\nfunction setTransform(node, value) {\n var name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n return {\n x: 0,\n y: 0\n };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\nfunction css(el, name, v) {\n var value = v;\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = Math.floor(box.left);\n y = Math.floor(box.top);\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n if (node.nodeType === 9) {\n return node;\n }\n return node.ownerDocument;\n}\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n return val;\n}\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n }\n // force relayout\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n forceRelayout(elem);\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n var ret = {};\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n var _off = offset[_key] - originalOffset[_key];\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n css(elem, ret);\n}\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n setTransformXY(elem, resultXY);\n}\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n var extra = ex;\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? Math.floor(elem.getBoundingClientRect().width) : Math.floor(elem.getBoundingClientRect().height);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = Math.floor(parseFloat(cssBoxValue)) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var val;\n var elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n domUtils[name] = function (elem, v) {\n var val = v;\n if (val !== undefined) {\n if (elem) {\n var isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n var overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nvar getParent = utils.getParent;\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n }\n // ie 这个也不是完全可行\n /*\n
\n
\n 元素 6 高 100px 宽 50px
\n
\n
\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n for (parent = getParent$1(element);\n // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = getOffsetParent(el);\n }\n\n // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n var originalPosition = null;\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight;\n\n // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n var bodyStyle = window.getComputedStyle(body);\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n }\n\n // Reset element position after calculate the visible area\n if (element.style) {\n element.style.position = originalPosition;\n }\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\nfunction convertOffset(str, offsetLen) {\n var n;\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n // 当前节点可以被放置的显示区域\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n // 当前节点所占的区域, left/top/width/height\n var elRegion = getRegion(source);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion);\n // 当前节点将要被放置的位置\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n // 当前节点将要所处的区域\n var newElRegion = utils.merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n // 偏移量也反下\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n // 偏移量也反下\n var _newOffset = flipOffset(offset, 1);\n var _newTargetOffset = flipOffset(targetOffset, 1);\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points;\n\n // 重置对应部分的翻转逻辑\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n }\n // 2. 只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight;\n\n // Provide default target point\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2(_objectSpread2({}, align), {}, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\n","export default (function (element) {\n if (!element) {\n return false;\n }\n\n if (element.offsetParent) {\n return true;\n }\n\n if (element.getBBox) {\n var box = element.getBBox();\n\n if (box.width || box.height) {\n return true;\n }\n }\n\n if (element.getBoundingClientRect) {\n var _box = element.getBoundingClientRect();\n\n if (_box.width || _box.height) {\n return true;\n }\n }\n\n return false;\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport contains from '../vc-util/Dom/contains';\nimport ResizeObserver from 'resize-observer-polyfill';\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","export default (function (callback, buffer) {\n var called = false;\n var timeout = null;\n\n function cancelTrigger() {\n window.clearTimeout(timeout);\n }\n\n function trigger(force) {\n if (!called || force === true) {\n if (callback() === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n called = true;\n cancelTrigger();\n timeout = window.setTimeout(function () {\n called = false;\n }, buffer.value);\n } else {\n cancelTrigger();\n timeout = window.setTimeout(function () {\n called = false;\n trigger();\n }, buffer.value);\n }\n }\n\n return [trigger, function () {\n called = false;\n cancelTrigger();\n }];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { defineComponent, ref, computed, onMounted, onUpdated, watch, onUnmounted } from 'vue';\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from '../vc-util/Dom/addEventListener';\nimport { cloneElement } from '../_util/vnode';\nimport isVisible from '../vc-util/Dom/isVisible';\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\nvar alignProps = {\n align: Object,\n target: [Object, Function],\n onAlign: Function,\n monitorBufferTime: Number,\n monitorWindowResize: Boolean,\n disabled: Boolean\n};\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nexport default defineComponent({\n name: 'Align',\n props: alignProps,\n emits: ['align'],\n setup: function setup(props, _ref) {\n var expose = _ref.expose,\n slots = _ref.slots;\n var cacheRef = ref({});\n var nodeRef = ref();\n var forceAlignPropsRef = computed(function () {\n return {\n disabled: props.disabled,\n target: props.target,\n onAlign: props.onAlign\n };\n });\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$v = forceAlignPropsRef.value,\n latestDisabled = _forceAlignPropsRef$v.disabled,\n latestTarget = _forceAlignPropsRef$v.target,\n latestOnAlign = _forceAlignPropsRef$v.onAlign;\n\n if (!latestDisabled && latestTarget && nodeRef.value && nodeRef.value.$el) {\n var source = nodeRef.value.$el;\n var result;\n var element = getElement(latestTarget);\n var point = getPoint(latestTarget);\n cacheRef.value.element = element;\n cacheRef.value.point = point; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n // IE lose focus after element realign\n // We should record activeElement and restore later\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n // We only align when element is visible\n if (element && isVisible(element)) {\n result = alignElement(source, element, props.align);\n } else if (point) {\n result = alignPoint(source, point, props.align);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && result) {\n latestOnAlign(source, result);\n }\n\n return true;\n }\n\n return false;\n }, computed(function () {\n return props.monitorBufferTime;\n })),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Listen for target updated\n\n\n var resizeMonitor = ref({\n cancel: function cancel() {}\n }); // Listen for source updated\n\n var sourceResizeMonitor = ref({\n cancel: function cancel() {}\n });\n\n var goAlign = function goAlign() {\n var target = props.target;\n var element = getElement(target);\n var point = getPoint(target);\n\n if (nodeRef.value && nodeRef.value.$el !== sourceResizeMonitor.value.element) {\n sourceResizeMonitor.value.cancel();\n sourceResizeMonitor.value.element = nodeRef.value.$el;\n sourceResizeMonitor.value.cancel = monitorResize(nodeRef.value.$el, _forceAlign);\n }\n\n if (cacheRef.value.element !== element || !isSamePoint(cacheRef.value.point, point)) {\n _forceAlign(); // Add resize observer\n\n\n if (resizeMonitor.value.element !== element) {\n resizeMonitor.value.cancel();\n resizeMonitor.value.element = element;\n resizeMonitor.value.cancel = monitorResize(element, _forceAlign);\n }\n }\n };\n\n onMounted(function () {\n goAlign();\n });\n onUpdated(function () {\n goAlign();\n }); // Listen for disabled change\n\n watch(function () {\n return props.disabled;\n }, function (disabled) {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, {\n flush: 'post'\n }); // Listen for window resize\n\n var winResizeRef = ref(null);\n watch(function () {\n return props.monitorWindowResize;\n }, function (monitorWindowResize) {\n if (monitorWindowResize) {\n if (!winResizeRef.value) {\n winResizeRef.value = addEventListener(window, 'resize', _forceAlign);\n }\n } else if (winResizeRef.value) {\n winResizeRef.value.remove();\n winResizeRef.value = null;\n }\n }, {\n flush: 'post'\n });\n onUnmounted(function () {\n resizeMonitor.value.cancel();\n sourceResizeMonitor.value.cancel();\n if (winResizeRef.value) winResizeRef.value.remove();\n cancelForceAlign();\n });\n expose({\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n });\n return function () {\n var child = slots === null || slots === void 0 ? void 0 : slots.default();\n\n if (child) {\n return cloneElement(child[0], {\n ref: nodeRef\n }, true, true);\n }\n\n return child && child[0];\n };\n }\n});","import { createVNode as _createVNode } from \"vue\";\nimport { Text } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport { getSlot } from '../_util/props-util';\nexport default {\n name: 'LazyRenderBox',\n props: {\n visible: PropTypes.looseBool,\n hiddenClassName: PropTypes.string\n },\n render: function render() {\n var hiddenClassName = this.$props.hiddenClassName;\n var child = getSlot(this);\n\n if (hiddenClassName || child && child.length > 1 || child && child[0] && child[0].type === Text) {\n // const cls = '';\n // if (!visible && hiddenClassName) {\n // // cls += ` ${hiddenClassName}`\n // }\n return _createVNode(\"div\", null, [child]);\n }\n\n return child && child[0];\n }\n};","import { createVNode as _createVNode } from \"vue\";\nimport PropTypes from '../_util/vue-types';\nimport LazyRenderBox from './LazyRenderBox';\nexport default {\n props: {\n hiddenClassName: PropTypes.string.def(''),\n prefixCls: PropTypes.string,\n visible: PropTypes.looseBool\n },\n render: function render() {\n var _this = this;\n\n var _a, _b;\n\n var _this$$props = this.$props,\n prefixCls = _this$$props.prefixCls,\n visible = _this$$props.visible,\n hiddenClassName = _this$$props.hiddenClassName;\n return _createVNode(\"div\", {\n \"class\": !visible ? hiddenClassName : ''\n }, [_createVNode(LazyRenderBox, {\n \"class\": \"\".concat(prefixCls, \"-content\"),\n \"visible\": visible\n }, {\n default: function _default() {\n return [(_b = (_a = _this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a)];\n }\n })]);\n }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { nextTick } from 'vue';\nimport { getOptionProps } from './props-util';\nexport default {\n methods: {\n setState: function setState() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n var newState = typeof state === 'function' ? state(this.$data, this.$props) : state;\n\n if (this.getDerivedStateFromProps) {\n var s = this.getDerivedStateFromProps(getOptionProps(this), _extends(_extends({}, this.$data), newState));\n\n if (s === null) {\n return;\n } else {\n newState = _extends(_extends({}, newState), s || {});\n }\n }\n\n _extends(this.$data, newState);\n\n if (this._.isMounted) {\n this.$forceUpdate();\n }\n\n nextTick(function () {\n callback && callback();\n });\n },\n __emit: function __emit() {\n // 直接调用事件,底层组件不需要vueTool记录events\n var args = [].slice.call(arguments, 0);\n var eventName = args[0];\n eventName = \"on\".concat(eventName[0].toUpperCase()).concat(eventName.substring(1));\n var event = this.$props[eventName] || this.$attrs[eventName];\n\n if (args.length && event) {\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n event[i].apply(event, _toConsumableArray(args.slice(1)));\n }\n } else {\n event.apply(void 0, _toConsumableArray(args.slice(1)));\n }\n }\n }\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _extends(_extends({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n\n for (var placement in builtinPlacements) {\n if (builtinPlacements.hasOwnProperty(placement)) {\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n }\n\n return '';\n}\nexport function noop() {}\nexport function saveRef(name, component) {\n this[name] = component;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport { onUpdated } from 'vue';\nimport { getCurrentInstance } from 'vue';\nimport { defineComponent, nextTick, Transition as T, TransitionGroup as TG } from 'vue';\nexport var getTransitionProps = function getTransitionProps(transitionName) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (process.env.NODE_ENV === 'test') {\n return opt;\n }\n\n var transitionProps = transitionName ? _extends({\n appear: true,\n // appearFromClass: `${transitionName}-appear ${transitionName}-appear-prepare`,\n // appearActiveClass: `antdv-base-transtion`,\n appearToClass: \"\".concat(transitionName, \"-appear \").concat(transitionName, \"-appear-active\"),\n enterFromClass: \"\".concat(transitionName, \"-enter \").concat(transitionName, \"-enter-prepare\"),\n // enterActiveClass: `antdv-base-transtion`,\n enterToClass: \"\".concat(transitionName, \"-enter \").concat(transitionName, \"-enter-active\"),\n leaveFromClass: \" \".concat(transitionName, \"-leave\"),\n leaveActiveClass: \"\".concat(transitionName, \"-leave \").concat(transitionName, \"-leave-active\"),\n leaveToClass: \"\".concat(transitionName, \"-leave \").concat(transitionName, \"-leave-active\")\n }, opt) : _extends({\n css: false\n }, opt);\n return transitionProps;\n};\nexport var getTransitionGroupProps = function getTransitionGroupProps(transitionName) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var transitionProps = transitionName ? _extends({\n appear: true,\n // appearFromClass: `${transitionName}-appear ${transitionName}-appear-prepare`,\n appearActiveClass: \"\".concat(transitionName),\n appearToClass: \"\".concat(transitionName, \"-appear \").concat(transitionName, \"-appear-active\"),\n enterFromClass: \"\".concat(transitionName, \"-appear \").concat(transitionName, \"-enter \").concat(transitionName, \"-appear-prepare \").concat(transitionName, \"-enter-prepare\"),\n enterActiveClass: \"\".concat(transitionName),\n enterToClass: \"\".concat(transitionName, \"-enter \").concat(transitionName, \"-appear \").concat(transitionName, \"-appear-active \").concat(transitionName, \"-enter-active\"),\n leaveActiveClass: \"\".concat(transitionName, \" \").concat(transitionName, \"-leave\"),\n leaveToClass: \"\".concat(transitionName, \"-leave-active\")\n }, opt) : _extends({\n css: false\n }, opt);\n return transitionProps;\n};\nvar Transition = T;\nvar TransitionGroup = TG;\n\nif (process.env.NODE_ENV === 'test') {\n Transition = defineComponent({\n name: 'TransitionForTest',\n inheritAttrs: false,\n setup: function setup(_props, _ref) {\n var slots = _ref.slots,\n attrs = _ref.attrs;\n var instance = getCurrentInstance();\n onUpdated(function () {\n var child = instance.subTree.children[0];\n\n if (child && child.dirs && child.dirs[0]) {\n var value = child.dirs[0].value;\n var oldValue = child.dirs[0].oldValue;\n\n if (!value && value !== oldValue) {\n nextTick(function () {\n if (attrs.onAfterLeave) {\n attrs.onAfterLeave(instance.vnode.el);\n }\n });\n }\n }\n });\n return function () {\n var _a;\n\n return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n };\n }\n });\n TransitionGroup = defineComponent({\n name: 'TransitionGroupForTest',\n inheritAttrs: false,\n props: ['tag', 'class'],\n setup: function setup(props, _ref2) {\n var slots = _ref2.slots;\n return function () {\n var _a;\n\n var Tag = props.tag,\n rest = __rest(props, [\"tag\"]);\n\n var children = ((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)) || [];\n\n if (Tag) {\n return _createVNode(Tag, rest, {\n default: function _default() {\n return [children];\n }\n });\n } else {\n return children;\n }\n };\n }\n });\n} // ================== Collapse Motion ==================\n\n\nvar getCollapsedHeight = function getCollapsedHeight() {\n return {\n height: 0,\n opacity: 0\n };\n};\n\nvar getRealHeight = function getRealHeight(node) {\n return {\n height: \"\".concat(node.scrollHeight, \"px\"),\n opacity: 1\n };\n};\n\nvar getCurrentHeight = function getCurrentHeight(node) {\n return {\n height: \"\".concat(node.offsetHeight, \"px\")\n };\n};\n\nvar collapseMotion = function collapseMotion(style, className) {\n return {\n name: 'ant-motion-collapse',\n appear: true,\n css: true,\n onBeforeEnter: function onBeforeEnter(node) {\n className.value = 'ant-motion-collapse';\n style.value = getCollapsedHeight(node);\n },\n onEnter: function onEnter(node) {\n nextTick(function () {\n style.value = getRealHeight(node);\n });\n },\n onAfterEnter: function onAfterEnter() {\n className.value = '';\n style.value = {};\n },\n onBeforeLeave: function onBeforeLeave(node) {\n className.value = 'ant-motion-collapse';\n style.value = getCurrentHeight(node);\n },\n onLeave: function onLeave(node) {\n window.setTimeout(function () {\n style.value = getCollapsedHeight(node);\n });\n },\n onAfterLeave: function onAfterLeave() {\n className.value = '';\n style.value = {};\n }\n };\n};\n\nexport { Transition, TransitionGroup, collapseMotion };\nexport default Transition;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from \"vue\";\nimport PropTypes from '../_util/vue-types';\nimport Align from '../vc-align';\nimport PopupInner from './PopupInner';\nimport LazyRenderBox from './LazyRenderBox';\nimport BaseMixin from '../_util/BaseMixin';\nimport { saveRef } from './utils';\nimport { splitAttrs, findDOMNode } from '../_util/props-util';\nimport { getTransitionProps, Transition } from '../_util/transition';\nexport default {\n name: 'VCTriggerPopup',\n mixins: [BaseMixin],\n inheritAttrs: false,\n props: {\n visible: PropTypes.looseBool,\n getClassNameFromAlign: PropTypes.func,\n getRootDomNode: PropTypes.func,\n align: PropTypes.any,\n destroyPopupOnHide: PropTypes.looseBool,\n prefixCls: PropTypes.string,\n getContainer: PropTypes.func,\n transitionName: PropTypes.string,\n animation: PropTypes.any,\n maskAnimation: PropTypes.string,\n maskTransitionName: PropTypes.string,\n mask: PropTypes.looseBool,\n zIndex: PropTypes.number,\n popupClassName: PropTypes.any,\n popupStyle: PropTypes.object.def(function () {\n return {};\n }),\n stretch: PropTypes.string,\n point: PropTypes.shape({\n pageX: PropTypes.number,\n pageY: PropTypes.number\n }).loose\n },\n data: function data() {\n this.domEl = null;\n this.currentAlignClassName = undefined;\n this.transitionProps = {};\n this.savePopupRef = saveRef.bind(this, 'popupInstance');\n this.saveAlignRef = saveRef.bind(this, 'alignInstance');\n return {\n // Used for stretch\n stretchChecked: false,\n targetWidth: undefined,\n targetHeight: undefined\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.rootNode = _this.getPopupDomNode();\n\n _this.setStretchSize();\n });\n },\n // 如添加会导致动画失效,如放开会导致快速输入时闪动 https://github.com/vueComponent/ant-design-vue/issues/1327,\n // 目前方案是保留动画,闪动问题(动画多次执行)进一步定位\n // beforeUpdate() {\n // if (this.domEl && this.domEl.rcEndListener) {\n // this.domEl.rcEndListener();\n // this.domEl = null;\n // }\n // },\n updated: function updated() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setStretchSize();\n });\n },\n methods: {\n onAlign: function onAlign(popupDomNode, align) {\n var props = this.$props;\n var currentAlignClassName = props.getClassNameFromAlign(align); // FIX: https://github.com/react-component/trigger/issues/56\n // FIX: https://github.com/react-component/tooltip/issues/79\n\n if (this.currentAlignClassName !== currentAlignClassName) {\n this.currentAlignClassName = currentAlignClassName;\n popupDomNode.className = this.getClassName(currentAlignClassName, popupDomNode.className);\n }\n\n var onaAlign = this.$attrs.onaAlign;\n onaAlign && onaAlign(popupDomNode, align);\n },\n // Record size if stretch needed\n setStretchSize: function setStretchSize() {\n var _this$$props = this.$props,\n stretch = _this$$props.stretch,\n getRootDomNode = _this$$props.getRootDomNode,\n visible = _this$$props.visible;\n var _this$$data = this.$data,\n stretchChecked = _this$$data.stretchChecked,\n targetHeight = _this$$data.targetHeight,\n targetWidth = _this$$data.targetWidth;\n\n if (!stretch || !visible) {\n if (stretchChecked) {\n this.setState({\n stretchChecked: false\n });\n }\n\n return;\n }\n\n var $ele = getRootDomNode();\n if (!$ele) return;\n var height = $ele.offsetHeight;\n var width = $ele.offsetWidth;\n\n if (targetHeight !== height || targetWidth !== width || !stretchChecked) {\n this.setState({\n stretchChecked: true,\n targetHeight: height,\n targetWidth: width\n });\n }\n },\n getPopupDomNode: function getPopupDomNode() {\n return findDOMNode(this.popupInstance);\n },\n getTargetElement: function getTargetElement() {\n return this.$props.getRootDomNode();\n },\n // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n getAlignTarget: function getAlignTarget() {\n var point = this.$props.point;\n\n if (point) {\n return point;\n }\n\n return this.getTargetElement;\n },\n getMaskTransitionName: function getMaskTransitionName() {\n var props = this.$props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n\n if (!transitionName && animation) {\n transitionName = \"\".concat(props.prefixCls, \"-\").concat(animation);\n }\n\n return transitionName;\n },\n getTransitionName: function getTransitionName() {\n var props = this.$props;\n var transitionName = props.transitionName;\n var animation = props.animation;\n\n if (!transitionName) {\n if (typeof animation === 'string') {\n transitionName = \"\".concat(animation);\n } else if (animation && animation.props && animation.props.name) {\n transitionName = animation.props.name;\n }\n }\n\n return transitionName;\n },\n getClassName: function getClassName(currentAlignClassName) {\n var _this3 = this;\n\n var originClassName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n // 保留动画 class\n var enterActiveClass = [];\n\n if (this.transitionProps) {\n Object.keys(this.transitionProps).forEach(function (k) {\n if (typeof _this3.transitionProps[k] === 'string') {\n enterActiveClass.push.apply(enterActiveClass, _toConsumableArray(_this3.transitionProps[k].split(' ')));\n }\n });\n }\n\n var classNames = originClassName.split(' ').filter(function (c) {\n return enterActiveClass.indexOf(c) !== -1;\n }).join(' ');\n return \"\".concat(this.$props.prefixCls, \" \").concat(this.$attrs.class || '', \" \").concat(this.$props.popupClassName, \" \").concat(currentAlignClassName, \" \").concat(classNames);\n },\n getPopupElement: function getPopupElement() {\n var _this4 = this;\n\n var _a, _b;\n\n var savePopupRef = this.savePopupRef;\n var props = this.$props,\n $attrs = this.$attrs,\n $slots = this.$slots,\n getTransitionName = this.getTransitionName;\n var _this$$data2 = this.$data,\n stretchChecked = _this$$data2.stretchChecked,\n targetHeight = _this$$data2.targetHeight,\n targetWidth = _this$$data2.targetWidth;\n var _$attrs$style = $attrs.style,\n style = _$attrs$style === void 0 ? {} : _$attrs$style;\n var onEvents = splitAttrs($attrs).onEvents;\n var align = props.align,\n visible = props.visible,\n prefixCls = props.prefixCls,\n animation = props.animation,\n popupStyle = props.popupStyle,\n getClassNameFromAlign = props.getClassNameFromAlign,\n destroyPopupOnHide = props.destroyPopupOnHide,\n stretch = props.stretch;\n var className = this.getClassName(this.currentAlignClassName || getClassNameFromAlign(align)); // const hiddenClassName = `${prefixCls}-hidden`\n\n if (!visible) {\n this.currentAlignClassName = null;\n }\n\n var sizeStyle = {};\n\n if (stretch) {\n // Stretch with target\n if (stretch.indexOf('height') !== -1) {\n sizeStyle.height = typeof targetHeight === 'number' ? \"\".concat(targetHeight, \"px\") : targetHeight;\n } else if (stretch.indexOf('minHeight') !== -1) {\n sizeStyle.minHeight = typeof targetHeight === 'number' ? \"\".concat(targetHeight, \"px\") : targetHeight;\n }\n\n if (stretch.indexOf('width') !== -1) {\n sizeStyle.width = typeof targetWidth === 'number' ? \"\".concat(targetWidth, \"px\") : targetWidth;\n } else if (stretch.indexOf('minWidth') !== -1) {\n sizeStyle.minWidth = typeof targetWidth === 'number' ? \"\".concat(targetWidth, \"px\") : targetWidth;\n } // Delay force align to makes ui smooth\n\n\n if (!stretchChecked) {\n // sizeStyle.visibility = 'hidden'\n setTimeout(function () {\n if (_this4.alignInstance) {\n _this4.alignInstance.forceAlign();\n }\n }, 0);\n }\n }\n\n var popupInnerProps = _extends(_extends({\n prefixCls: prefixCls,\n visible: visible,\n // hiddenClassName,\n class: className\n }, onEvents), {\n ref: savePopupRef,\n style: _extends(_extends(_extends(_extends({}, sizeStyle), popupStyle), style), this.getZIndexStyle())\n });\n\n var transitionName = getTransitionName();\n var useTransition = !!transitionName;\n var transitionProps = getTransitionProps(transitionName);\n\n if (_typeof(animation) === 'object') {\n useTransition = true;\n transitionProps = _extends(_extends({}, transitionProps), animation);\n }\n\n if (!useTransition) {\n transitionProps = {};\n }\n\n this.transitionProps = transitionProps;\n\n if (destroyPopupOnHide) {\n return _createVNode(Transition, transitionProps, {\n default: function _default() {\n return [visible ? _createVNode(Align, {\n \"target\": _this4.getAlignTarget(),\n \"key\": \"popup\",\n \"ref\": _this4.saveAlignRef,\n \"monitorWindowResize\": true,\n \"align\": align,\n \"onAlign\": _this4.onAlign\n }, {\n default: function _default() {\n return [_createVNode(PopupInner, popupInnerProps, {\n default: function _default() {\n return [(_a = $slots.default) === null || _a === void 0 ? void 0 : _a.call($slots)];\n }\n })];\n }\n }) : null];\n }\n });\n }\n\n return _createVNode(Transition, transitionProps, {\n default: function _default() {\n return [_withDirectives(_createVNode(Align, {\n \"target\": _this4.getAlignTarget(),\n \"key\": \"popup\",\n \"ref\": _this4.saveAlignRef,\n \"monitorWindowResize\": true,\n \"disabled\": !visible,\n \"align\": align,\n \"onAlign\": _this4.onAlign\n }, {\n default: function _default() {\n return [_createVNode(PopupInner, popupInnerProps, {\n default: function _default() {\n return [(_b = $slots.default) === null || _b === void 0 ? void 0 : _b.call($slots)];\n }\n })];\n }\n }), [[_vShow, visible]])];\n }\n });\n },\n getZIndexStyle: function getZIndexStyle() {\n var style = {};\n var props = this.$props;\n\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n\n return style;\n },\n getMaskElement: function getMaskElement() {\n var props = this.$props;\n var maskElement = null;\n\n if (props.mask) {\n var maskTransition = this.getMaskTransitionName();\n maskElement = _withDirectives(_createVNode(LazyRenderBox, {\n \"style\": this.getZIndexStyle(),\n \"key\": \"mask\",\n \"class\": \"\".concat(props.prefixCls, \"-mask\"),\n \"visible\": props.visible\n }, null), [[_vShow, props.visible]]);\n\n if (maskTransition) {\n var _maskElement = function () {\n return maskElement;\n }();\n\n maskElement = _createVNode(Transition, {\n \"appear\": true,\n \"name\": maskTransition\n }, {\n default: function _default() {\n return [_maskElement];\n }\n });\n }\n }\n\n return maskElement;\n }\n },\n render: function render() {\n var getMaskElement = this.getMaskElement,\n getPopupElement = this.getPopupElement;\n return _createVNode(\"div\", null, [getMaskElement(), getPopupElement()]);\n }\n};","import { createVNode as _createVNode } from \"vue\";\nimport PropTypes from './vue-types';\nimport { defineComponent, nextTick, Teleport } from 'vue';\nexport default defineComponent({\n name: 'Portal',\n props: {\n getContainer: PropTypes.func.isRequired,\n children: PropTypes.any.isRequired,\n didUpdate: PropTypes.func\n },\n data: function data() {\n this._container = null;\n return {};\n },\n mounted: function mounted() {\n this.createContainer();\n },\n updated: function updated() {\n var _this = this;\n\n var didUpdate = this.$props.didUpdate;\n\n if (didUpdate) {\n nextTick(function () {\n didUpdate(_this.$props);\n });\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.removeContainer();\n },\n methods: {\n createContainer: function createContainer() {\n this._container = this.$props.getContainer();\n this.$forceUpdate();\n },\n removeContainer: function removeContainer() {\n if (this._container && this._container.parentNode) {\n this._container.parentNode.removeChild(this._container);\n }\n }\n },\n render: function render() {\n var _this2 = this;\n\n if (this._container) {\n return _createVNode(Teleport, {\n \"to\": this._container\n }, {\n default: function _default() {\n return [_this2.$props.children];\n }\n });\n }\n\n return null;\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, inject, provide } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport contains from '../vc-util/Dom/contains';\nimport { hasProp, getComponent as _getComponent, getEvents, filterEmpty, getSlot, findDOMNode } from '../_util/props-util';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../_util/requestAnimationTimeout';\nimport addEventListener from '../vc-util/Dom/addEventListener';\nimport warning from '../_util/warning';\nimport Popup from './Popup';\nimport { getAlignFromPlacement, getAlignPopupClassName, noop } from './utils';\nimport BaseMixin from '../_util/BaseMixin';\nimport Portal from '../_util/Portal';\nimport classNames from '../_util/classNames';\nimport { cloneElement } from '../_util/vnode';\nimport supportsPassive from '../_util/supportsPassive';\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument() {\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMousedown', 'onTouchstart', 'onMouseenter', 'onMouseleave', 'onFocus', 'onBlur', 'onContextmenu'];\nexport default defineComponent({\n name: 'Trigger',\n mixins: [BaseMixin],\n inheritAttrs: false,\n props: {\n action: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).def([]),\n showAction: PropTypes.any.def([]),\n hideAction: PropTypes.any.def([]),\n getPopupClassNameFromAlign: PropTypes.any.def(returnEmptyString),\n onPopupVisibleChange: PropTypes.func.def(noop),\n afterPopupVisibleChange: PropTypes.func.def(noop),\n popup: PropTypes.any,\n popupStyle: PropTypes.object.def(function () {\n return {};\n }),\n prefixCls: PropTypes.string.def('rc-trigger-popup'),\n popupClassName: PropTypes.string.def(''),\n popupPlacement: PropTypes.string,\n builtinPlacements: PropTypes.object,\n popupTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n popupAnimation: PropTypes.any,\n mouseEnterDelay: PropTypes.number.def(0),\n mouseLeaveDelay: PropTypes.number.def(0.1),\n zIndex: PropTypes.number,\n focusDelay: PropTypes.number.def(0),\n blurDelay: PropTypes.number.def(0.15),\n getPopupContainer: PropTypes.func,\n getDocument: PropTypes.func.def(returnDocument),\n forceRender: PropTypes.looseBool,\n destroyPopupOnHide: PropTypes.looseBool.def(false),\n mask: PropTypes.looseBool.def(false),\n maskClosable: PropTypes.looseBool.def(true),\n // onPopupAlign: PropTypes.func.def(noop),\n popupAlign: PropTypes.object.def(function () {\n return {};\n }),\n popupVisible: PropTypes.looseBool,\n defaultPopupVisible: PropTypes.looseBool.def(false),\n maskTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n maskAnimation: PropTypes.string,\n stretch: PropTypes.string,\n alignPoint: PropTypes.looseBool // Maybe we can support user pass position in the future\n\n },\n setup: function setup() {\n return {\n vcTriggerContext: inject('vcTriggerContext', {}),\n savePopupRef: inject('savePopupRef', noop),\n dialogContext: inject('dialogContext', null)\n };\n },\n data: function data() {\n var _this = this;\n\n var props = this.$props;\n var popupVisible;\n\n if (hasProp(this, 'popupVisible')) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n this._component = null;\n this.focusTime = null;\n this.clickOutsideHandler = null;\n this.contextmenuOutsideHandler1 = null;\n this.contextmenuOutsideHandler2 = null;\n this.touchOutsideHandler = null;\n return {\n prevPopupVisible: popupVisible,\n sPopupVisible: popupVisible,\n point: null\n };\n },\n watch: {\n popupVisible: function popupVisible(val) {\n if (val !== undefined) {\n this.prevPopupVisible = this.sPopupVisible;\n this.sPopupVisible = val;\n }\n }\n },\n created: function created() {\n provide('vcTriggerContext', this);\n },\n deactivated: function deactivated() {\n this.setPopupVisible(false);\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.updatedCal();\n });\n },\n updated: function updated() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.updatedCal();\n });\n },\n beforeUnmount: function beforeUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n },\n methods: {\n updatedCal: function updatedCal() {\n var props = this.$props;\n var state = this.$data; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.sPopupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextmenuToShow())) {\n currentDocument = props.getDocument();\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument();\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick, supportsPassive ? {\n passive: false\n } : false);\n } // close popup when trigger type contains 'onContextmenu' and document is scrolling.\n\n\n if (!this.contextmenuOutsideHandler1 && this.isContextmenuToShow()) {\n currentDocument = currentDocument || props.getDocument();\n this.contextmenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextmenuClose);\n } // close popup when trigger type contains 'onContextmenu' and window is blur.\n\n\n if (!this.contextmenuOutsideHandler2 && this.isContextmenuToShow()) {\n this.contextmenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextmenuClose);\n }\n } else {\n this.clearOutsideHandler();\n }\n },\n onMouseenter: function onMouseenter(e) {\n var mouseEnterDelay = this.$props.mouseEnterDelay;\n this.fireEvents('onMouseenter', e);\n this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n },\n onMouseMove: function onMouseMove(e) {\n this.fireEvents('onMousemove', e);\n this.setPoint(e);\n },\n onMouseleave: function onMouseleave(e) {\n this.fireEvents('onMouseleave', e);\n this.delaySetPopupVisible(false, this.$props.mouseLeaveDelay);\n },\n onPopupMouseenter: function onPopupMouseenter() {\n this.clearDelayTimer();\n },\n onPopupMouseleave: function onPopupMouseleave(e) {\n if (e && e.relatedTarget && !e.relatedTarget.setTimeout && this._component && this._component.getPopupDomNode && contains(this._component.getPopupDomNode(), e.relatedTarget)) {\n return;\n }\n\n this.delaySetPopupVisible(false, this.$props.mouseLeaveDelay);\n },\n onFocus: function onFocus(e) {\n this.fireEvents('onFocus', e); // incase focusin and focusout\n\n this.clearDelayTimer();\n\n if (this.isFocusToShow()) {\n this.focusTime = Date.now();\n this.delaySetPopupVisible(true, this.$props.focusDelay);\n }\n },\n onMousedown: function onMousedown(e) {\n this.fireEvents('onMousedown', e);\n this.preClickTime = Date.now();\n },\n onTouchstart: function onTouchstart(e) {\n this.fireEvents('onTouchstart', e);\n this.preTouchTime = Date.now();\n },\n onBlur: function onBlur(e) {\n if (!contains(e.target, e.relatedTarget || document.activeElement)) {\n this.fireEvents('onBlur', e);\n this.clearDelayTimer();\n\n if (this.isBlurToHide()) {\n this.delaySetPopupVisible(false, this.$props.blurDelay);\n }\n }\n },\n onContextmenu: function onContextmenu(e) {\n e.preventDefault();\n this.fireEvents('onContextmenu', e);\n this.setPopupVisible(true, e);\n },\n onContextmenuClose: function onContextmenuClose() {\n if (this.isContextmenuToShow()) {\n this.close();\n }\n },\n onClick: function onClick(event) {\n this.fireEvents('onClick', event); // focus will trigger click\n\n if (this.focusTime) {\n var preTime;\n\n if (this.preClickTime && this.preTouchTime) {\n preTime = Math.min(this.preClickTime, this.preTouchTime);\n } else if (this.preClickTime) {\n preTime = this.preClickTime;\n } else if (this.preTouchTime) {\n preTime = this.preTouchTime;\n }\n\n if (Math.abs(preTime - this.focusTime) < 20) {\n return;\n }\n\n this.focusTime = 0;\n }\n\n this.preClickTime = 0;\n this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (this.isClickToShow() && (this.isClickToHide() || this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n if (event && event.domEvent) {\n event.domEvent.preventDefault();\n }\n\n var nextVisible = !this.$data.sPopupVisible;\n\n if (this.isClickToHide() && !nextVisible || nextVisible && this.isClickToShow()) {\n this.setPopupVisible(!this.$data.sPopupVisible, event);\n }\n },\n onPopupMouseDown: function onPopupMouseDown() {\n var _this4 = this;\n\n var _this$vcTriggerContex = this.vcTriggerContext,\n vcTriggerContext = _this$vcTriggerContex === void 0 ? {} : _this$vcTriggerContex;\n this.hasPopupMouseDown = true;\n clearTimeout(this.mouseDownTimeout);\n this.mouseDownTimeout = setTimeout(function () {\n _this4.hasPopupMouseDown = false;\n }, 0);\n\n if (vcTriggerContext.onPopupMouseDown) {\n vcTriggerContext.onPopupMouseDown.apply(vcTriggerContext, arguments);\n }\n },\n onDocumentClick: function onDocumentClick(event) {\n if (this.$props.mask && !this.$props.maskClosable) {\n return;\n }\n\n var target = event.target;\n var root = findDOMNode(this);\n\n if (!contains(root, target) && !this.hasPopupMouseDown) {\n this.close();\n }\n },\n getPopupDomNode: function getPopupDomNode() {\n if (this._component && this._component.getPopupDomNode) {\n return this._component.getPopupDomNode();\n }\n\n return null;\n },\n getRootDomNode: function getRootDomNode() {\n return findDOMNode(this);\n },\n handleGetPopupClassFromAlign: function handleGetPopupClassFromAlign(align) {\n var className = [];\n var props = this.$props;\n var popupPlacement = props.popupPlacement,\n builtinPlacements = props.builtinPlacements,\n prefixCls = props.prefixCls,\n alignPoint = props.alignPoint,\n getPopupClassNameFromAlign = props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n },\n getPopupAlign: function getPopupAlign() {\n var props = this.$props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n },\n savePopup: function savePopup(node) {\n this._component = node;\n this.savePopupRef(node);\n },\n getComponent: function getComponent() {\n var self = this;\n var mouseProps = {};\n\n if (this.isMouseEnterToShow()) {\n mouseProps.onMouseenter = self.onPopupMouseenter;\n }\n\n if (this.isMouseLeaveToHide()) {\n mouseProps.onMouseleave = self.onPopupMouseleave;\n }\n\n mouseProps.onMousedown = this.onPopupMouseDown;\n mouseProps[supportsPassive ? 'onTouchstartPassive' : 'onTouchstart'] = this.onPopupMouseDown;\n var handleGetPopupClassFromAlign = self.handleGetPopupClassFromAlign,\n getRootDomNode = self.getRootDomNode,\n getContainer = self.getContainer,\n $attrs = self.$attrs;\n var _self$$props = self.$props,\n prefixCls = _self$$props.prefixCls,\n destroyPopupOnHide = _self$$props.destroyPopupOnHide,\n popupClassName = _self$$props.popupClassName,\n action = _self$$props.action,\n popupAnimation = _self$$props.popupAnimation,\n popupTransitionName = _self$$props.popupTransitionName,\n popupStyle = _self$$props.popupStyle,\n mask = _self$$props.mask,\n maskAnimation = _self$$props.maskAnimation,\n maskTransitionName = _self$$props.maskTransitionName,\n zIndex = _self$$props.zIndex,\n stretch = _self$$props.stretch,\n alignPoint = _self$$props.alignPoint;\n var _this$$data = this.$data,\n sPopupVisible = _this$$data.sPopupVisible,\n point = _this$$data.point;\n var align = this.getPopupAlign();\n\n var popupProps = _extends(_extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: sPopupVisible,\n point: alignPoint ? point : null,\n action: action,\n align: align,\n animation: popupAnimation,\n getClassNameFromAlign: handleGetPopupClassFromAlign,\n stretch: stretch,\n getRootDomNode: getRootDomNode,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n getContainer: getContainer,\n popupClassName: popupClassName,\n popupStyle: popupStyle,\n onAlign: $attrs.onPopupAlign || noop\n }, mouseProps), {\n ref: this.savePopup\n });\n\n return _createVNode(Popup, popupProps, {\n default: function _default() {\n return [_getComponent(self, 'popup')];\n }\n });\n },\n getContainer: function getContainer() {\n var props = this.$props,\n dialogContext = this.dialogContext;\n var popupContainer = document.createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n var mountNode = props.getPopupContainer ? props.getPopupContainer(findDOMNode(this), dialogContext) : props.getDocument().body;\n mountNode.appendChild(popupContainer);\n this.popupContainer = popupContainer;\n return popupContainer;\n },\n setPopupVisible: function setPopupVisible(sPopupVisible, event) {\n var alignPoint = this.alignPoint,\n prevPopupVisible = this.sPopupVisible,\n onPopupVisibleChange = this.onPopupVisibleChange;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== sPopupVisible) {\n if (!hasProp(this, 'popupVisible')) {\n this.setState({\n sPopupVisible: sPopupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n onPopupVisibleChange && onPopupVisibleChange(sPopupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event) {\n this.setPoint(event);\n }\n },\n setPoint: function setPoint(point) {\n var alignPoint = this.$props.alignPoint;\n if (!alignPoint || !point) return;\n this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n },\n handlePortalUpdate: function handlePortalUpdate() {\n if (this.prevPopupVisible !== this.sPopupVisible) {\n this.afterPopupVisibleChange(this.sPopupVisible);\n }\n },\n delaySetPopupVisible: function delaySetPopupVisible(visible, delayS, event) {\n var _this5 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = requestAnimationTimeout(function () {\n _this5.setPopupVisible(visible, point);\n\n _this5.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n },\n clearDelayTimer: function clearDelayTimer() {\n if (this.delayTimer) {\n cancelAnimationTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n },\n clearOutsideHandler: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextmenuOutsideHandler1) {\n this.contextmenuOutsideHandler1.remove();\n this.contextmenuOutsideHandler1 = null;\n }\n\n if (this.contextmenuOutsideHandler2) {\n this.contextmenuOutsideHandler2.remove();\n this.contextmenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n },\n createTwoChains: function createTwoChains(event) {\n var fn = function fn() {};\n\n var events = getEvents(this);\n\n if (this.childOriginEvents[event] && events[event]) {\n return this[\"fire\".concat(event)];\n }\n\n fn = this.childOriginEvents[event] || events[event] || fn;\n return fn;\n },\n isClickToShow: function isClickToShow() {\n var _this$$props = this.$props,\n action = _this$$props.action,\n showAction = _this$$props.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n },\n isContextmenuToShow: function isContextmenuToShow() {\n var _this$$props2 = this.$props,\n action = _this$$props2.action,\n showAction = _this$$props2.showAction;\n return action.indexOf('contextmenu') !== -1 || showAction.indexOf('contextmenu') !== -1;\n },\n isClickToHide: function isClickToHide() {\n var _this$$props3 = this.$props,\n action = _this$$props3.action,\n hideAction = _this$$props3.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n },\n isMouseEnterToShow: function isMouseEnterToShow() {\n var _this$$props4 = this.$props,\n action = _this$$props4.action,\n showAction = _this$$props4.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseenter') !== -1;\n },\n isMouseLeaveToHide: function isMouseLeaveToHide() {\n var _this$$props5 = this.$props,\n action = _this$$props5.action,\n hideAction = _this$$props5.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseleave') !== -1;\n },\n isFocusToShow: function isFocusToShow() {\n var _this$$props6 = this.$props,\n action = _this$$props6.action,\n showAction = _this$$props6.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n },\n isBlurToHide: function isBlurToHide() {\n var _this$$props7 = this.$props,\n action = _this$$props7.action,\n hideAction = _this$$props7.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n },\n forcePopupAlign: function forcePopupAlign() {\n if (this.$data.sPopupVisible && this._component && this._component.alignInstance) {\n this._component.alignInstance.forceAlign();\n }\n },\n fireEvents: function fireEvents(type, e) {\n if (this.childOriginEvents[type]) {\n this.childOriginEvents[type](e);\n }\n\n var event = this.$props[type] || this.$attrs[type];\n\n if (event) {\n event(e);\n }\n },\n close: function close() {\n this.setPopupVisible(false);\n }\n },\n render: function render() {\n var _this6 = this;\n\n var sPopupVisible = this.sPopupVisible,\n $attrs = this.$attrs;\n var children = filterEmpty(getSlot(this));\n var _this$$props8 = this.$props,\n forceRender = _this$$props8.forceRender,\n alignPoint = _this$$props8.alignPoint;\n\n if (children.length > 1) {\n warning(false, 'Trigger children just support only one default', true);\n }\n\n var child = children[0];\n this.childOriginEvents = getEvents(child);\n var newChildProps = {\n key: 'trigger'\n };\n\n if (this.isContextmenuToShow()) {\n newChildProps.onContextmenu = this.onContextmenu;\n } else {\n newChildProps.onContextmenu = this.createTwoChains('onContextmenu');\n }\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMousedown = this.onMousedown;\n newChildProps[supportsPassive ? 'onTouchstartPassive' : 'onTouchstart'] = this.onTouchstart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMousedown = this.createTwoChains('onMousedown');\n newChildProps[supportsPassive ? 'onTouchstartPassive' : 'onTouchstart'] = this.createTwoChains('onTouchstart');\n }\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseenter = this.onMouseenter;\n\n if (alignPoint) {\n newChildProps.onMousemove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseenter = this.createTwoChains('onMouseenter');\n }\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseleave = this.onMouseleave;\n } else {\n newChildProps.onMouseleave = this.createTwoChains('onMouseleave');\n }\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n\n newChildProps.onBlur = function (e) {\n if (e && (!e.relatedTarget || !contains(e.target, e.relatedTarget))) {\n _this6.createTwoChains('onBlur')(e);\n }\n };\n }\n\n var childrenClassName = classNames(child && child.props && child.props.class, $attrs.class);\n\n if (childrenClassName) {\n newChildProps.class = childrenClassName;\n }\n\n var trigger = cloneElement(child, newChildProps);\n var portal; // prevent unmounting after it's rendered\n\n if (sPopupVisible || this._component || forceRender) {\n portal = _createVNode(Portal, {\n \"key\": \"portal\",\n \"children\": this.getComponent(),\n \"getContainer\": this.getContainer,\n \"didUpdate\": this.handlePortalUpdate\n }, null);\n }\n\n return [portal, trigger];\n }\n});","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import { createVNode as _createVNode } from \"vue\";\nimport PropTypes from '../_util/vue-types';\nexport default {\n name: 'Content',\n props: {\n prefixCls: PropTypes.string,\n overlay: PropTypes.any,\n trigger: PropTypes.any,\n overlayInnerStyle: PropTypes.any\n },\n updated: function updated() {\n var trigger = this.trigger;\n\n if (trigger) {\n trigger.forcePopupAlign();\n }\n },\n render: function render() {\n var overlay = this.overlay,\n prefixCls = this.prefixCls,\n overlayInnerStyle = this.overlayInnerStyle;\n return _createVNode(\"div\", {\n \"class\": \"\".concat(prefixCls, \"-inner\"),\n \"role\": \"tooltip\",\n \"style\": overlayInnerStyle\n }, [typeof overlay === 'function' ? overlay() : overlay]);\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport PropTypes from '../_util/vue-types';\nimport Trigger from '../vc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\nimport { hasProp, getComponent, getOptionProps, getSlot } from '../_util/props-util';\nimport { defineComponent } from 'vue';\n\nfunction noop() {}\n\nexport default defineComponent({\n name: 'Tooltip',\n inheritAttrs: false,\n props: {\n trigger: PropTypes.any.def(['hover']),\n defaultVisible: PropTypes.looseBool,\n visible: PropTypes.looseBool,\n placement: PropTypes.string.def('right'),\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n animation: PropTypes.any,\n afterVisibleChange: PropTypes.func.def(function () {}),\n overlay: PropTypes.any,\n overlayStyle: PropTypes.object,\n overlayClassName: PropTypes.string,\n prefixCls: PropTypes.string.def('rc-tooltip'),\n mouseEnterDelay: PropTypes.number.def(0),\n mouseLeaveDelay: PropTypes.number.def(0.1),\n getTooltipContainer: PropTypes.func,\n destroyTooltipOnHide: PropTypes.looseBool.def(false),\n align: PropTypes.object.def(function () {\n return {};\n }),\n arrowContent: PropTypes.any.def(null),\n tipId: PropTypes.string,\n builtinPlacements: PropTypes.object,\n overlayInnerStyle: PropTypes.style\n },\n methods: {\n getPopupElement: function getPopupElement() {\n var _this$$props = this.$props,\n prefixCls = _this$$props.prefixCls,\n tipId = _this$$props.tipId,\n overlayInnerStyle = _this$$props.overlayInnerStyle;\n return [_createVNode(\"div\", {\n \"class\": \"\".concat(prefixCls, \"-arrow\"),\n \"key\": \"arrow\"\n }, [getComponent(this, 'arrowContent')]), _createVNode(Content, {\n \"key\": \"content\",\n \"trigger\": this.$refs.trigger,\n \"prefixCls\": prefixCls,\n \"id\": tipId,\n \"overlay\": getComponent(this, 'overlay'),\n \"overlayInnerStyle\": overlayInnerStyle\n }, null)];\n },\n getPopupDomNode: function getPopupDomNode() {\n return this.$refs.trigger.getPopupDomNode();\n }\n },\n render: function render(h) {\n var _this = this;\n\n var _a = getOptionProps(this),\n overlayClassName = _a.overlayClassName,\n trigger = _a.trigger,\n mouseEnterDelay = _a.mouseEnterDelay,\n mouseLeaveDelay = _a.mouseLeaveDelay,\n overlayStyle = _a.overlayStyle,\n prefixCls = _a.prefixCls,\n afterVisibleChange = _a.afterVisibleChange,\n transitionName = _a.transitionName,\n animation = _a.animation,\n placement = _a.placement,\n align = _a.align,\n destroyTooltipOnHide = _a.destroyTooltipOnHide,\n defaultVisible = _a.defaultVisible,\n getTooltipContainer = _a.getTooltipContainer,\n restProps = __rest(_a, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\"]);\n\n var extraProps = _extends({}, restProps);\n\n if (hasProp(this, 'visible')) {\n extraProps.popupVisible = this.$props.visible;\n }\n\n var $attrs = this.$attrs;\n\n var triggerProps = _extends(_extends(_extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltipOnHide,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), $attrs), {\n onPopupVisibleChange: $attrs.onVisibleChange || noop,\n onPopupAlign: $attrs.onPopupAlign || noop,\n ref: 'trigger',\n popup: this.getPopupElement()\n });\n\n return _createVNode(Trigger, triggerProps, {\n default: function _default() {\n return [getSlot(_this)[0]];\n }\n });\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { placements as rcPlacements } from '../vc-tooltip/placements';\nvar autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nvar autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nvar targetOffset = [0, 0];\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n\n return _extends(_extends({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\nexport default function getPlacements(config) {\n var _config$arrowWidth = config.arrowWidth,\n arrowWidth = _config$arrowWidth === void 0 ? 5 : _config$arrowWidth,\n _config$horizontalArr = config.horizontalArrowShift,\n horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr,\n _config$verticalArrow = config.verticalArrowShift,\n verticalArrowShift = _config$verticalArrow === void 0 ? 12 : _config$verticalArrow,\n _config$autoAdjustOve = config.autoAdjustOverflow,\n autoAdjustOverflow = _config$autoAdjustOve === void 0 ? true : _config$autoAdjustOve;\n var placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(function (key) {\n placementMap[key] = config.arrowPointAtCenter ? _extends(_extends({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset: targetOffset\n }) : _extends(_extends({}, rcPlacements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","import { tuple } from './type';\nexport var PresetStatusColorTypes = tuple('success', 'processing', 'error', 'default', 'warning');\nexport var PresetColorTypes = tuple('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');","import PropTypes from '../_util/vue-types';\nimport { tuple } from '../_util/type';\nvar triggerType = PropTypes.oneOf(tuple('hover', 'focus', 'click', 'contextmenu'));\nexport default (function () {\n return {\n trigger: PropTypes.oneOfType([triggerType, PropTypes.arrayOf(triggerType)]).def('hover'),\n visible: PropTypes.looseBool,\n defaultVisible: PropTypes.looseBool,\n placement: PropTypes.oneOf(tuple('top', 'left', 'right', 'bottom', 'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom')).def('top'),\n color: PropTypes.string,\n transitionName: PropTypes.string.def('zoom-big-fast'),\n overlayStyle: PropTypes.object.def(function () {\n return {};\n }),\n overlayClassName: PropTypes.string,\n openClassName: PropTypes.string,\n prefixCls: PropTypes.string,\n mouseEnterDelay: PropTypes.number.def(0.1),\n mouseLeaveDelay: PropTypes.number.def(0.1),\n getPopupContainer: PropTypes.func,\n arrowPointAtCenter: PropTypes.looseBool.def(false),\n autoAdjustOverflow: PropTypes.oneOfType([PropTypes.looseBool, PropTypes.object]).def(true),\n destroyTooltipOnHide: PropTypes.looseBool.def(false),\n align: PropTypes.object.def(function () {\n return {};\n }),\n builtinPlacements: PropTypes.object,\n children: PropTypes.array,\n onVisibleChange: PropTypes.func,\n 'onUpdate:visible': PropTypes.func\n };\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, inject } from 'vue';\nimport VcTooltip from '../vc-tooltip';\nimport classNames from '../_util/classNames';\nimport _getPlacements from './placements';\nimport PropTypes from '../_util/vue-types';\nimport { PresetColorTypes } from '../_util/colors';\nimport { hasProp, getComponent, getStyle, filterEmpty, getSlot, isValidElement } from '../_util/props-util';\nimport { cloneElement } from '../_util/vnode';\nimport { defaultConfigProvider } from '../config-provider';\nimport abstractTooltipProps from './abstractTooltipProps';\n\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n\n var omitted = _extends({}, obj);\n\n keys.forEach(function (key) {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked: picked,\n omitted: omitted\n };\n};\n\nvar props = abstractTooltipProps();\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\"));\n\nvar tooltipProps = _extends(_extends({}, props), {\n title: PropTypes.VNodeChild\n});\n\nexport default defineComponent({\n name: 'ATooltip',\n inheritAttrs: false,\n props: tooltipProps,\n emits: ['update:visible', 'visibleChange'],\n setup: function setup() {\n return {\n configProvider: inject('configProvider', defaultConfigProvider)\n };\n },\n data: function data() {\n return {\n sVisible: !!this.$props.visible || !!this.$props.defaultVisible\n };\n },\n watch: {\n visible: function visible(val) {\n this.sVisible = val;\n }\n },\n methods: {\n handleVisibleChange: function handleVisibleChange(visible) {\n if (!hasProp(this, 'visible')) {\n this.sVisible = this.isNoTitle() ? false : visible;\n }\n\n if (!this.isNoTitle()) {\n this.$emit('update:visible', visible);\n this.$emit('visibleChange', visible);\n }\n },\n getPopupDomNode: function getPopupDomNode() {\n return this.$refs.tooltip.getPopupDomNode();\n },\n getPlacements: function getPlacements() {\n var _this$$props = this.$props,\n builtinPlacements = _this$$props.builtinPlacements,\n arrowPointAtCenter = _this$$props.arrowPointAtCenter,\n autoAdjustOverflow = _this$$props.autoAdjustOverflow;\n return builtinPlacements || _getPlacements({\n arrowPointAtCenter: arrowPointAtCenter,\n verticalArrowShift: 8,\n autoAdjustOverflow: autoAdjustOverflow\n });\n },\n // Fix Tooltip won't hide at disabled button\n // mouse events don't trigger at disabled button in Chrome\n // https://github.com/react-component/tooltip/issues/18\n getDisabledCompatibleChildren: function getDisabledCompatibleChildren(ele) {\n if ((_typeof(ele.type) === 'object' && (ele.type.__ANT_BUTTON === true || ele.type.__ANT_SWITCH === true || ele.type.__ANT_CHECKBOX === true) || ele.type === 'button') && ele.props && (ele.props.disabled || ele.props.disabled === '')) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n var _splitObject = splitObject(getStyle(ele), ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']),\n picked = _splitObject.picked,\n omitted = _splitObject.omitted;\n\n var spanStyle = _extends(_extends({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: ele.props && ele.props.block ? '100%' : null\n });\n\n var buttonStyle = _extends(_extends({}, omitted), {\n pointerEvents: 'none'\n });\n\n var child = cloneElement(ele, {\n style: buttonStyle\n }, true);\n return _createVNode(\"span\", {\n \"style\": spanStyle\n }, [child]);\n }\n\n return ele;\n },\n isNoTitle: function isNoTitle() {\n var title = getComponent(this, 'title');\n return !title && title !== 0;\n },\n getOverlay: function getOverlay() {\n var title = getComponent(this, 'title');\n\n if (title === 0) {\n return title;\n }\n\n return title || '';\n },\n // 动态设置动画点\n onPopupAlign: function onPopupAlign(domNode, align) {\n var placements = this.getPlacements(); // 当前返回的位置\n\n var placement = Object.keys(placements).filter(function (key) {\n return placements[key].points[0] === align.points[0] && placements[key].points[1] === align.points[1];\n })[0];\n\n if (!placement) {\n return;\n } // 根据当前坐标设置动画点\n\n\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n\n if (placement.indexOf('top') >= 0 || placement.indexOf('Bottom') >= 0) {\n transformOrigin.top = \"\".concat(rect.height - align.offset[1], \"px\");\n } else if (placement.indexOf('Top') >= 0 || placement.indexOf('bottom') >= 0) {\n transformOrigin.top = \"\".concat(-align.offset[1], \"px\");\n }\n\n if (placement.indexOf('left') >= 0 || placement.indexOf('Right') >= 0) {\n transformOrigin.left = \"\".concat(rect.width - align.offset[0], \"px\");\n } else if (placement.indexOf('right') >= 0 || placement.indexOf('Left') >= 0) {\n transformOrigin.left = \"\".concat(-align.offset[0], \"px\");\n }\n\n domNode.style.transformOrigin = \"\".concat(transformOrigin.left, \" \").concat(transformOrigin.top);\n }\n },\n render: function render() {\n var _classNames;\n\n var $props = this.$props,\n $data = this.$data,\n $attrs = this.$attrs;\n var customizePrefixCls = $props.prefixCls,\n openClassName = $props.openClassName,\n getPopupContainer = $props.getPopupContainer,\n color = $props.color,\n overlayClassName = $props.overlayClassName;\n var getContextPopupContainer = this.configProvider.getPopupContainer;\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n var children = this.children || filterEmpty(getSlot(this));\n children = children.length === 1 ? children[0] : children;\n var sVisible = $data.sVisible; // Hide tooltip when there is no title\n\n if (!hasProp(this, 'visible') && this.isNoTitle()) {\n sVisible = false;\n }\n\n if (!children) {\n return null;\n }\n\n var child = this.getDisabledCompatibleChildren(isValidElement(children) ? children : _createVNode(\"span\", null, [children]));\n var childCls = classNames((_classNames = {}, _defineProperty(_classNames, openClassName || \"\".concat(prefixCls, \"-open\"), sVisible), _defineProperty(_classNames, child.props && child.props.class, child.props && child.props.class), _classNames));\n var customOverlayClassName = classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(color), color && PresetColorRegex.test(color)));\n var formattedOverlayInnerStyle;\n var arrowContentStyle;\n\n if (color && !PresetColorRegex.test(color)) {\n formattedOverlayInnerStyle = {\n backgroundColor: color\n };\n arrowContentStyle = {\n backgroundColor: color\n };\n }\n\n var vcTooltipProps = _extends(_extends(_extends({}, $attrs), $props), {\n prefixCls: prefixCls,\n getTooltipContainer: getPopupContainer || getContextPopupContainer,\n builtinPlacements: this.getPlacements(),\n overlay: this.getOverlay(),\n visible: sVisible,\n ref: 'tooltip',\n overlayClassName: customOverlayClassName,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: _createVNode(\"span\", {\n \"class\": \"\".concat(prefixCls, \"-arrow-content\"),\n \"style\": arrowContentStyle\n }, null),\n onVisibleChange: this.handleVisibleChange,\n onPopupAlign: this.onPopupAlign\n });\n\n return _createVNode(VcTooltip, vcTooltipProps, {\n default: function _default() {\n return [sVisible ? cloneElement(child, {\n class: childCls\n }) : child];\n }\n });\n }\n});","import { withInstall } from '../_util/type';\nimport ToolTip from './Tooltip';\nexport default withInstall(ToolTip);"],"names":["_typeof","obj","_toPrimitive","input","hint","prim","res","_toPropertyKey","arg","key","toPrimitive","_defineProperty","value","toPropertyKey","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread2","target","i","source","defineProperty","_extends","e","t","n","r","o","u","a","f","c","l","s","v","y","d","h","b","O","g","m","j","_","p","T","w","k","P","x","A","E","N","q","S","V","F","D","L","Y","B","I","J","M","R","$","z","C","PropTypes","createTypes","isFunction","val","isArray","isString","isObject","onRE","isOn","cacheStringFunction","fn","cache","str","hit","camelizeRE","camelize","hyphenateRE","hyphenate","hasOwnProperty","hasOwn","resolvePropValue","options","props","opt","hasDefault","defaultValue","classNames","classes","_i","inner","name","MapShim","getIndex","arr","result","entry","index","class_1","entries","callback","ctx","_a","isBrowser","global$1","requestAnimationFrame$1","trailingTimeout","throttle","delay","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","REFRESH_DELAY","transitionKeys","mutationObserverSupported","ResizeObserverController","observer","observers","changesDetected","activeObservers","_b","propertyName","isReflowProperty","defineConfigurable","getWindowOf","ownerGlobal","emptyRect","createRectInit","toFloat","getBordersSize","styles","positions","size","position","getPaddings","paddings","positions_1","getSVGContentRect","bbox","getHTMLElementContentRect","clientWidth","clientHeight","horizPad","vertPad","width","height","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","getContentRect","createReadOnlyRect","Constr","rect","ResizeObservation","ResizeObserverEntry","rectInit","contentRect","ResizeObserverSPI","controller","callbackCtx","observations","_this","observation","ResizeObserver","method","_arrayWithHoles","_iterableToArrayLimit","_s","_e","_x","_r","_arr","_n","_d","err","_arrayLikeToArray","len","arr2","_unsupportedIterableToArray","minLen","arrayLikeToArray","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_arrayWithoutHoles","_iterableToArray","iter","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","nonIterableSpread","isValid","splitAttrs","attrs","allAttrs","eventAttrs","onEvents","extraAttrs","parseStyleText","cssText","camel","listDelimiter","propertyDelimiter","item","tmp","hasProp","instance","prop","getOptionProps","flattenChildren","children","filterEmpty","temp","child","Fragment","isVNode","isEmptyElement","getSlot","self","findDOMNode","node","hyphenateKey","originProps","_props","getComponent","execute","com","_temp","getEvents","ele","on","getStyle","style","Comment","Text","isValidElement","element","tuple","_len","args","_key","withInstall","comp","app","supportsPassive","opts","addEventListenerWrap","eventType","cb","option","enUS","enUs","locale","CalendarLocale","TimePickerLocale","typeTemplate","defaultLocale","Pagination","DatePicker","TimePicker","Calendar","LocaleReceiver","defineComponent","_ref","slots","localeData","inject","computed","_props$componentName","componentName","defaultLocaleData","antLocale","localeFromContext","localeCode","Empty","_inject","defaultConfigProvider","getPrefixCls","prefixCls","_createVNode","Simple","__rest","defaultEmptyImg","DefaultEmptyImg","simpleEmptyImg","SimpleEmptyImg","_ref$slots","configProvider","direction","customizePrefixCls","_b$image","image","_b$description","description","imageStyle","_b$class","className","restProps","_classNames","des","alt","imageNode","_objectSpread","Empty$1","RenderEmpty","renderHtml","prefix","renderEmpty","hookCallback","hooks","setHookCallback","hasOwnProp","isObjectEmpty","isUndefined","isNumber","isDate","map","arrLen","extend","createUTC","format","strict","createLocalOrUTC","defaultParsingFlags","getParsingFlags","some","fun","flags","parsedParts","isNowValid","createInvalid","momentProperties","updateInProgress","copyConfig","to","from","momentPropertiesLen","Moment","config","isMoment","warn","msg","deprecate","firstTime","argLen","deprecations","deprecateSimple","set","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","calendar","mom","now","output","zeroFill","number","targetLength","forceSign","absNumber","zerosToFill","sign","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","removeFormattingTokens","makeFormatFunction","array","length","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTime","withoutSuffix","string","isFuture","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","get","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","indexOf","month","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","localeMonthsShort","handleStrictParse","monthName","ii","llc","localeMonthsParse","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","getSetYear","getIsLeapYear","createDate","ms","date","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","weekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse$1","weekdayName","localeWeekdaysParse","getSetDayOfWeek","day","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","hours","minutes","isLower","baseConfig","locales","localeFamilies","globalLocale","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","names","next","split","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","getSetGlobalLocale","values","data","getLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","overflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","match","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","defaults","currentDateArray","nowValue","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","weekYear","weekdayOverflow","curWeek","createLocal","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","min","max","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","months","weeks","days","seconds","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","createAdder","period","dur","isAdding","updateOffset","add","subtract","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","property","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","clone","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","toString","toISOString","keepOffset","utc","inspect","zone","datetime","suffix","inputString","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","valueOf","unix","toDate","toArray","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","abbr","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","preParsePostFormat","proto$1","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","abs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","round","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","proto$2","interopDefault","runtimeLocale","changeConfirmLocale","newLocale","warned","warning","valid","message","call","warningOnce","component","ANT_MARK","setMomentLocale","moment","LocaleProvider","state","reactive","provide","watch","onUnmounted","LocaleProvider$1","configProviderProps","ConfigProvider","suffixCls","_props$prefixCls","renderEmptyComponent","defaultRenderEmpty","getPrefixClsWrapper","mergedPrefixCls","renderProvider","legacyLocale","__","cloneElement","vnode","nodeProps","override","mergeRef","cloneVNode","contains","root","availablePrefixs","requestAnimationFramePolyfill","lastTime","currTime","timeToCall","id","getRequestAnimationFrame","cancelRequestAnimationFrame","raf","cancelAnimationTimeout","frame","caf","requestAnimationTimeout","start","timeout","vendorPrefix","jsCssMap","getVendorPrefix","testProp","getTransitionName","getTransformName","setTransitionProperty","setTransform","getTransitionProperty","getTransformXY","transform","matrix","matrix2d","matrix3d","setTransformXY","xy","match2d","match3d","RE_NUM","getComputedStyleX","forceRelayout","elem","originalStyle","css","el","getClientPosition","box","doc","body","docElem","getScroll","top","getScrollLeft","getScrollTop","getOffset","isWindow","getDocument","_getComputedStyle","cs","computedStyle","_RE_NUM_NO_PX","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","LEFT","PX","_getComputedStyleIE","left","rsLeft","getOffsetDirection","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","off","_dir","_off","setTransform$1","originalXY","resultXY","setOffset","oriOffset","oLeft","oTop","tLeft","tTop","each","isBorderBoxFn","BOX_MODELS","CONTENT_INDEX","PADDING_INDEX","BORDER_INDEX","MARGIN_INDEX","swap","getPBMWidth","which","cssProp","domUtils","parent","refWin","win","documentElement","documentElementProp","getWH","ex","extra","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","cssShow","getWHIgnoreDisplay","_key2","first","includeMargin","mix","utils","getParent","getOffsetParent","positionStyle","skipStatic","getParent$1","isAncestorFixed","getVisibleRectForElement","alwaysByViewport","visibleRect","originalPosition","scrollX","scrollY","viewportWidth","viewportHeight","documentWidth","documentHeight","bodyStyle","maxVisibleWidth","maxVisibleHeight","adjustForViewport","elFuturePos","elRegion","getRegion","getAlignOffset","region","align","H","getElFuturePos","refNodeRegion","points","targetOffset","isFailX","isFailY","isCompleteFailX","isCompleteFailY","flip","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newPoints","newOffset","newTargetOffset","newElFuturePos","_newPoints","_newOffset","_newTargetOffset","_newElFuturePos","isStillFailX","isStillFailY","_newPoints2","isOutOfVisibleRect","targetRegion","alignElement","refNode","isTargetNotOutOfVisible","alignPoint","tgtPoint","pageX","pageY","pointInView","isVisible","_box","isSamePoint","prev","restoreFocus","activeElement","container","monitorResize","prevWidth","prevHeight","onResize","_ref2","_target$getBoundingCl","fixedWidth","fixedHeight","resizeObserver","useBuffer","buffer","called","cancelTrigger","trigger","force","alignProps","getElement","getPoint","point","Align","expose","cacheRef","ref","nodeRef","forceAlignPropsRef","_useBuffer","_forceAlignPropsRef$v","latestDisabled","latestTarget","latestOnAlign","_document","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","sourceResizeMonitor","goAlign","onMounted","onUpdated","disabled","winResizeRef","monitorWindowResize","addEventListener","LazyRenderBox","hiddenClassName","PopupInner","_this$$props","visible","BaseMixin","newState","nextTick","eventName","event","isPointsEq","a1","a2","isAlignPoint","getAlignFromPlacement","builtinPlacements","placementStr","baseAlign","getAlignPopupClassName","placement","noop","saveRef","getTransitionProps","transitionName","transitionProps","Transition","Popup","_this2","popupDomNode","currentAlignClassName","onaAlign","stretch","getRootDomNode","_this$$data","stretchChecked","targetHeight","targetWidth","$ele","animation","_this3","originClassName","enterActiveClass","_this4","savePopupRef","$attrs","$slots","_this$$data2","_$attrs$style","popupStyle","getClassNameFromAlign","destroyPopupOnHide","sizeStyle","popupInnerProps","useTransition","_withDirectives","_vShow","maskElement","maskTransition","_maskElement","getMaskElement","getPopupElement","Portal","didUpdate","Teleport","returnEmptyString","returnDocument","ALL_HANDLERS","Trigger","popupVisible","currentDocument","mouseEnterDelay","preTime","nextVisible","_this$vcTriggerContex","vcTriggerContext","popupPlacement","getPopupClassNameFromAlign","popupAlign","mouseProps","handleGetPopupClassFromAlign","getContainer","_self$$props","popupClassName","action","popupAnimation","popupTransitionName","mask","maskAnimation","maskTransitionName","zIndex","sPopupVisible","popupProps","_getComponent","dialogContext","popupContainer","mountNode","prevPopupVisible","onPopupVisibleChange","delayS","_this5","events","showAction","_this$$props2","_this$$props3","hideAction","_this$$props4","_this$$props5","_this$$props6","_this$$props7","type","_this6","_this$$props8","forceRender","newChildProps","childrenClassName","portal","autoAdjustOverflow","placements","Content","overlay","overlayInnerStyle","Tooltip$1","tipId","overlayClassName","mouseLeaveDelay","overlayStyle","afterVisibleChange","destroyTooltipOnHide","defaultVisible","getTooltipContainer","extraProps","triggerProps","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","getOverflowOptions","getPlacements","_config$arrowWidth","arrowWidth","_config$horizontalArr","horizontalArrowShift","_config$verticalArrow","verticalArrowShift","_config$autoAdjustOve","placementMap","rcPlacements","PresetColorTypes","triggerType","abstractTooltipProps","splitObject","picked","omitted","PresetColorRegex","tooltipProps","ToolTip","arrowPointAtCenter","_getPlacements","_splitObject","spanStyle","buttonStyle","title","domNode","transformOrigin","$props","$data","openClassName","getPopupContainer","color","getContextPopupContainer","sVisible","childCls","customOverlayClassName","formattedOverlayInnerStyle","arrowContentStyle","vcTooltipProps","VcTooltip","Tooltip"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67]}