sixseconds-modules 1.3.2 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/assets/svg/bell.svg?react","../src/assets/svg/credis.svg?react","../src/assets/svg/down.svg?react","../src/assets/svg/folder.svg?react","../src/assets/svg/logo.svg?react","../src/assets/svg/logout.svg?react","../src/assets/svg/person-checked.svg?react","../src/assets/svg/printer.svg?react","../src/assets/svg/scanner.svg?react","../src/assets/svg/stoke.svg?react","../src/assets/svg/user-edit.svg?react","../src/assets/svg/gridIcon.svg?react","../src/assets/svg/index.ts","../src/components/header/subheaderStyled.ts","../node_modules/@t3-oss/env-core/dist/src-Cq4nGjdj.js","../src/constants/env.ts","../src/constants/common.ts","../src/constants/routes.ts","../src/constants/dates.ts","../src/utils/common.ts","../node_modules/moment/dist/moment.js","../src/utils/date.ts","../src/components/header/userProfile.tsx","../src/components/header/language.tsx","../src/components/header/dropDownMenu.tsx","../src/assets/images/us.png","../src/assets/images/index.ts","../src/components/dialogs/dangerDialog.tsx","../node_modules/urlcat/dist/index.js","../src/api/index.ts","../src/api/transforms/user.ts","../src/api/user.ts","../node_modules/react-infinite-scroll-component/dist/index.es.js","../src/components/header/notification.tsx","../src/components/header/appMenus.tsx","../src/components/header/index.tsx","../src/components/elements/logo.tsx","../src/index.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgBell = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 24, height: 24, fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20.7013 16.4944C20.145 15.5366 19.4816 13.7192 19.4816 10.5V9.83475C19.4816 5.68294 16.1509 2.28056 12.057 2.25019L11.9998 2.25C10.0132 2.25258 8.10904 3.0442 6.70613 4.45072C5.30322 5.85723 4.51649 7.76344 4.519 9.75V10.5C4.519 13.719 3.85535 15.5363 3.29875 16.494C3.16581 16.7218 3.09527 16.9805 3.09425 17.2443C3.09322 17.508 3.16175 17.7673 3.29291 17.9961C3.42408 18.2249 3.61325 18.415 3.84135 18.5474C4.06944 18.6798 4.32841 18.7496 4.59213 18.75H8.24997C8.24997 19.7446 8.64506 20.6984 9.34832 21.4016C10.0516 22.1049 11.0054 22.5 12 22.5C12.9945 22.5 13.9484 22.1049 14.6516 21.4016C15.3549 20.6984 15.75 19.7446 15.75 18.75H19.4078C19.6715 18.7497 19.9304 18.6798 20.1585 18.5475C20.3866 18.4151 20.5757 18.225 20.7069 17.9963C20.8381 17.7675 20.9066 17.5083 20.9056 17.2446C20.9047 16.9809 20.8342 16.7221 20.7013 16.4944ZM12 21C11.4034 20.9993 10.8315 20.7621 10.4097 20.3403C9.98791 19.9184 9.75064 19.3465 9.74997 18.75H14.25C14.2493 19.3465 14.012 19.9184 13.5902 20.3403C13.1684 20.7621 12.5965 20.9993 12 21ZM4.5955 17.2478C5.24491 16.1306 6.019 14.0531 6.019 10.5V9.75C6.01651 8.1612 6.64527 6.63649 7.76695 5.51127C8.88863 4.38606 10.4114 3.75251 12.0002 3.75L12.0458 3.75019C15.3188 3.77447 17.9817 6.504 17.9817 9.83475V10.5C17.9817 14.0531 18.7554 16.1306 19.4078 17.25L4.5955 17.2478Z\", fill: \"#808080\" }));\nexport default SvgBell;\n","import * as React from \"react\";\nconst SvgCredis = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 38, height: 38, viewBox: \"0 0 38 38\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 38, height: 38, rx: 19, fill: \"#F8F8F8\" }), /* @__PURE__ */ React.createElement(\"rect\", { x: 11, y: 11, width: 16, height: 16, rx: 2, fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.5 16.6V16.25C22.5 14.6812 20.1375 13.5 17 13.5C13.8625 13.5 11.5 14.6812 11.5 16.25V18.75C11.5 20.0562 13.1375 21.0938 15.5 21.4062V21.75C15.5 23.3188 17.8625 24.5 21 24.5C24.1375 24.5 26.5 23.3188 26.5 21.75V19.25C26.5 17.9562 24.9125 16.9187 22.5 16.6ZM25.5 19.25C25.5 20.075 23.575 21 21 21C20.7687 21 20.5375 20.9938 20.3062 20.975C21.6562 20.4875 22.5 19.6875 22.5 18.75V17.6062C24.3687 17.8875 25.5 18.6438 25.5 19.25ZM15.5 20.3875V18.9062C15.9974 18.9702 16.4985 19.0015 17 19C17.5015 19.0015 18.0026 18.9702 18.5 18.9062V20.3875C18.0038 20.4648 17.5022 20.5024 17 20.5C16.4978 20.5024 15.9962 20.4648 15.5 20.3875V20.3875ZM21.5 17.8688V18.75C21.5 19.275 20.725 19.8375 19.5 20.1812V18.7188C20.3062 18.525 20.9875 18.2313 21.5 17.8688V17.8688ZM17 14.5C19.575 14.5 21.5 15.425 21.5 16.25C21.5 17.075 19.575 18 17 18C14.425 18 12.5 17.075 12.5 16.25C12.5 15.425 14.425 14.5 17 14.5ZM12.5 18.75V17.8688C13.0125 18.2313 13.6938 18.525 14.5 18.7188V20.1812C13.275 19.8375 12.5 19.275 12.5 18.75ZM16.5 21.75V21.4875L17 21.5C17.2458 21.5 17.4833 21.4937 17.7125 21.4812C17.9625 21.5687 18.225 21.6437 18.5 21.7125V23.1812C17.275 22.8375 16.5 22.275 16.5 21.75V21.75ZM19.5 23.3875V21.9C19.9974 21.9652 20.4984 21.9987 21 22C21.5015 22.0015 22.0026 21.9702 22.5 21.9062V23.3875C21.5056 23.5375 20.4944 23.5375 19.5 23.3875V23.3875ZM23.5 23.1812V21.7188C24.3062 21.525 24.9875 21.2312 25.5 20.8687V21.75C25.5 22.275 24.725 22.8375 23.5 23.1812V23.1812Z\", fill: \"#808080\" }));\nexport default SvgCredis;\n","import * as React from \"react\";\nconst SvgDown = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 12, height: 12, viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 12, height: 12, fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M10.0152 4.76517L6.26519 8.51517C6.23036 8.55 6.18902 8.57762 6.14353 8.59647C6.09803 8.61531 6.04926 8.62501 6.00001 8.62501C5.95077 8.62501 5.902 8.61531 5.8565 8.59647C5.81101 8.57762 5.76966 8.55 5.73484 8.51517L1.98484 4.76517C1.93239 4.71273 1.89668 4.64591 1.88221 4.57316C1.86774 4.50042 1.87516 4.42502 1.90355 4.35649C1.93193 4.28797 1.98 4.2294 2.04167 4.18819C2.10334 4.14699 2.17584 4.125 2.25001 4.125H9.75001C9.82418 4.125 9.89669 4.14699 9.95836 4.18819C10.02 4.2294 10.0681 4.28797 10.0965 4.35649C10.1249 4.42502 10.1323 4.50042 10.1178 4.57316C10.1034 4.64591 10.0676 4.71273 10.0152 4.76517Z\", fill: \"#808080\" }));\nexport default SvgDown;\n","import * as React from \"react\";\nconst SvgFolder = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 42, height: 42, viewBox: \"0 0 42 42\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 42, height: 42, rx: 21, fill: \"#F8F8F8\" }), /* @__PURE__ */ React.createElement(\"rect\", { width: 20, height: 20, transform: \"translate(11 11)\", fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M13.7929 11.7852C15.545 11.6618 16.8495 11.6399 19.0998 11.7499C19.7999 11.7841 20.408 12.2349 20.6497 12.8878L21.1347 14.1972C21.1702 14.2931 21.2607 14.3574 21.3621 14.3596C21.7714 14.3685 22.1508 14.3761 22.5079 14.3833C24.6092 14.4254 25.9364 14.452 28.0202 14.6489C29.3304 14.7728 30.3586 15.826 30.4495 17.1395C30.7007 20.7703 30.6293 23.6734 30.2909 26.5069C30.0858 28.2245 28.7087 29.5816 26.9915 29.7685C22.9929 30.2039 19.0488 30.2152 15.047 29.7795C13.3387 29.5935 11.8632 28.3153 11.6473 26.5069C11.1361 22.2262 11.3006 17.9548 11.7867 13.7237C11.9051 12.6933 12.7312 11.8599 13.7929 11.7852ZM19.0266 13.2481C16.8316 13.1408 15.5869 13.1626 13.8983 13.2815C13.5839 13.3036 13.316 13.5548 13.2769 13.8949C12.7991 18.0535 12.6438 22.2009 13.1367 26.3291C13.2615 27.3742 14.1225 28.1699 15.2094 28.2883L15.1304 29.0142L15.2094 28.2883C19.1004 28.712 22.9356 28.7013 26.8292 28.2774L26.8292 28.2773C27.8548 28.1657 28.6795 27.3509 28.8015 26.3291C29.1273 23.6007 29.1987 20.7927 28.953 17.243C28.9129 16.6627 28.4588 16.1971 27.8791 16.1423C25.8536 15.9508 24.5821 15.9253 22.4835 15.8831C22.1254 15.876 21.7433 15.8683 21.3293 15.8592C20.6117 15.8435 19.977 15.3905 19.7281 14.7182L19.2431 13.4087C19.2083 13.3148 19.1219 13.2528 19.0266 13.2481Z\", fill: \"#777777\" }));\nexport default SvgFolder;\n","import * as React from \"react\";\nconst SvgLogo = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 151, height: 40, viewBox: \"0 0 151 40\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 150.222, height: 40, fill: \"url(#pattern0)\" }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"pattern\", { id: \"pattern0\", patternContentUnits: \"objectBoundingBox\", width: 1, height: 1 }, /* @__PURE__ */ React.createElement(\"use\", { xlinkHref: \"#image0_357_8117\", transform: \"matrix(0.000961271 0 0 0.00361011 -0.00226431 0)\" })), /* @__PURE__ */ React.createElement(\"image\", { id: \"image0_357_8117\", width: 1045, height: 277, xlinkHref: \"data:image/png;base64,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\" })));\nexport default SvgLogo;\n","import * as React from \"react\";\nconst SvgLogout = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M7.41663 6.3002C7.67496 3.3002 9.21663 2.0752 12.5916 2.0752H12.7C16.425 2.0752 17.9166 3.56686 17.9166 7.29186V12.7252C17.9166 16.4502 16.425 17.9419 12.7 17.9419H12.5916C9.24163 17.9419 7.69996 16.7335 7.42496 13.7835\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12.5001 10H3.01672\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4.87504 7.2085L2.08337 10.0002L4.87504 12.7918\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgLogout;\n","import * as React from \"react\";\nconst SvgPersonChecked = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 23, height: 20, viewBox: \"0 0 23 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M9.58339 10.0008C11.7887 10.0008 13.5764 8.21301 13.5764 6.0077C13.5764 3.8024 11.7887 2.01465 9.58339 2.01465C7.37808 2.01465 5.59033 3.8024 5.59033 6.0077C5.59033 8.21301 7.37808 10.0008 9.58339 10.0008Z\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.4434 17.9868C16.4434 14.8961 13.3687 12.3965 9.58333 12.3965C5.79792 12.3965 2.72327 14.8961 2.72327 17.9868\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.0973 7.12517C21.9379 7.12122 21.7684 7.18696 21.6358 7.31971L18.6197 10.3386L17.6555 9.37337C17.4204 9.13789 17.0671 9.11258 16.8631 9.31637L16.4291 9.75076C16.2255 9.95463 16.251 10.3088 16.486 10.5442L18.2524 12.3119C18.4511 12.5114 18.8033 12.4965 18.9876 12.3119L22.8053 8.49013C23.0405 8.25473 23.0663 7.90097 22.8623 7.69718L22.4284 7.26237C22.339 7.17342 22.2213 7.12819 22.0973 7.12517Z\", fill: \"#BEBEBE\" }));\nexport default SvgPersonChecked;\n","import * as React from \"react\";\nconst SvgPrinter = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 42, height: 42, viewBox: \"0 0 42 42\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 42, height: 42, rx: 21, fill: \"#F8F8F8\" }), /* @__PURE__ */ React.createElement(\"rect\", { width: 20, height: 20, transform: \"translate(11 11)\", fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20.0295 16.5616C20.0295 16.1474 20.3653 15.8116 20.7795 15.8116H23.4189C23.8332 15.8116 24.1689 16.1474 24.1689 16.5616C24.1689 16.9759 23.8332 17.3116 23.4189 17.3116H20.7795C20.3653 17.3116 20.0295 16.9759 20.0295 16.5616Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20.7795 19.5023C20.3653 19.5023 20.0295 19.8381 20.0295 20.2523C20.0295 20.6665 20.3653 21.0023 20.7795 21.0023H23.4189C23.8332 21.0023 24.1689 20.6665 24.1689 20.2523C24.1689 19.8381 23.8332 19.5023 23.4189 19.5023H20.7795Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M18.7797 11.7148C18.7027 11.7148 18.6261 11.7267 18.5527 11.75C17.2763 12.1554 16.5369 13.1718 16.1354 14.3252C15.7382 15.4664 15.6365 16.8262 15.6701 18.1283C15.7199 20.0599 16.0725 21.9967 16.3398 23.1848H12.7293C12.3849 23.1848 12.0847 23.4194 12.0015 23.7537C11.7785 24.6501 11.5014 26.1981 11.8295 27.5639C11.9976 28.264 12.336 28.9627 12.9655 29.483C13.5996 30.007 14.4499 30.2845 15.5162 30.2845L25.2731 30.2845C25.3138 30.2845 25.3538 30.2813 25.3927 30.2751C26.2481 30.2206 26.9568 29.9381 27.4964 29.4156C28.0846 28.8459 28.3856 28.0734 28.5346 27.2617C28.8268 25.6698 28.5872 23.5826 28.3508 21.6008L28.3268 21.4004C28.0903 19.4204 27.8629 17.5177 28.0209 15.9849C28.1015 15.2017 28.2783 14.5792 28.5609 14.1187C28.8311 13.6783 29.2141 13.3575 29.7898 13.1824C30.1453 13.0742 30.368 12.722 30.3133 12.3545C30.2586 11.9869 29.943 11.7148 29.5714 11.7148H18.7797ZM25.1883 28.7832C25.8236 28.7643 26.2035 28.5795 26.4529 28.338C26.7321 28.0676 26.9409 27.6359 27.0592 26.9909C27.3018 25.6697 27.1066 23.8342 26.8613 21.7785L26.8276 21.4961C26.5991 19.5884 26.3532 17.5355 26.5287 15.8312C26.6218 14.9279 26.8378 14.0587 27.2824 13.3342C27.3071 13.2939 27.3325 13.2541 27.3586 13.2148H18.9055C18.2846 13.4499 17.8435 13.981 17.5521 14.8183C17.2408 15.7126 17.138 16.865 17.1696 18.0896C17.2213 20.0943 17.627 22.1313 17.8796 23.1848H22.4782C22.726 23.1848 22.9578 23.3072 23.0976 23.5118C23.2373 23.7164 23.267 23.9769 23.1768 24.2077C22.7382 25.3304 22.7775 26.5185 23.1754 27.3929C23.55 28.216 24.2274 28.7534 25.1883 28.7832ZM21.8101 28.0142C21.9347 28.2879 22.0856 28.5466 22.2618 28.7845H15.5162C14.7142 28.7845 14.2277 28.5801 13.9211 28.3267C13.6099 28.0696 13.4037 27.6954 13.288 27.2136C13.0976 26.4209 13.1833 25.4681 13.3323 24.6848H21.4797C21.2472 25.8445 21.3613 27.028 21.8101 28.0142Z\", fill: \"#777777\" }));\nexport default SvgPrinter;\n","import * as React from \"react\";\nconst SvgScanner = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 42, height: 42, viewBox: \"0 0 42 42\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 42, height: 42, rx: 21, fill: \"#F8F8F8\" }), /* @__PURE__ */ React.createElement(\"rect\", { width: 20, height: 20, transform: \"translate(11 11)\", fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M17.4503 12.2664C17.406 11.8546 17.0362 11.5567 16.6243 11.6011C16.1263 11.6547 15.629 11.7124 15.1398 11.7691C14.8688 11.8005 14.6003 11.8316 14.3356 11.8616C13.029 12.0097 11.9904 13.046 11.8456 14.3556C11.8211 14.5775 11.7959 14.8015 11.7706 15.0272C11.7112 15.5561 11.6507 16.0946 11.5948 16.6358C11.5523 17.0478 11.8518 17.4163 12.2639 17.4588C12.6759 17.5014 13.0444 17.2018 13.0869 16.7898C13.1421 16.2555 13.2013 15.7281 13.2604 15.2021C13.2859 14.9748 13.3114 14.7477 13.3365 14.5205C13.404 13.9099 13.8914 13.4215 14.5044 13.3521C14.7775 13.3211 15.0497 13.2896 15.3222 13.258C15.8066 13.2018 16.292 13.1455 16.785 13.0924C17.1968 13.0481 17.4947 12.6782 17.4503 12.2664Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M24.5498 12.2664C24.5942 11.8546 24.964 11.5567 25.3758 11.6011C25.8739 11.6547 26.3712 11.7124 26.8603 11.7691C27.1312 11.8005 27.4 11.8316 27.6646 11.8616C28.9711 12.0097 30.0098 13.046 30.1546 14.3556C30.1791 14.5775 30.2043 14.8015 30.2296 15.0272C30.289 15.5562 30.3494 16.0945 30.4053 16.6358C30.4478 17.0478 30.1483 17.4163 29.7363 17.4588C29.3243 17.5014 28.9558 17.2018 28.9132 16.7898C28.8581 16.2555 28.7988 15.728 28.7398 15.202C28.7143 14.975 28.6887 14.7474 28.6637 14.5205C28.5962 13.9099 28.1087 13.4215 27.4957 13.3521C27.2227 13.3211 26.9505 13.2896 26.678 13.258C26.1935 13.2018 25.7081 13.1455 25.2152 13.0924C24.8033 13.0481 24.5054 12.6782 24.5498 12.2664Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M21.0002 14.1232C18.9137 14.1232 17.2223 15.8147 17.2223 17.9012C17.2223 19.3589 18.0479 20.6238 19.2571 21.2538C18.549 21.475 17.8843 21.8307 17.3016 22.307C16.3226 23.1072 15.6313 24.2016 15.3279 25.4245C15.2336 25.8043 15.4473 26.1927 15.8185 26.3165C16.1234 26.4183 16.442 26.4893 16.7703 26.5259C18.1259 26.677 19.5448 26.8101 21.0002 26.8101C22.4555 26.8101 23.8744 26.677 25.23 26.5259C25.5583 26.4893 25.8768 26.4183 26.1817 26.3166C26.5529 26.1928 26.7666 25.8043 26.6723 25.4245C26.3689 24.2017 25.6776 23.1072 24.6987 22.307C24.1159 21.8307 23.4513 21.4751 22.7433 21.2538C23.9525 20.6239 24.7782 19.3589 24.7782 17.9012C24.7782 15.8147 23.0867 14.1232 21.0002 14.1232ZM18.7223 17.9012C18.7223 16.6431 19.7422 15.6232 21.0002 15.6232C22.2583 15.6232 23.2782 16.6431 23.2782 17.9012C23.2782 19.1592 22.2583 20.1791 21.0002 20.1791C19.7422 20.1791 18.7223 19.1592 18.7223 17.9012ZM18.2508 23.4684C19.0267 22.8342 19.998 22.4878 21.0001 22.4878C22.0022 22.4878 22.9735 22.8342 23.7494 23.4684C24.2731 23.8965 24.6861 24.4379 24.9605 25.0466C23.6518 25.1912 22.3344 25.3101 21.0002 25.3101C19.6659 25.3101 18.3485 25.1911 17.0397 25.0466C17.3141 24.4379 17.7271 23.8965 18.2508 23.4684Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.3758 30.3992C24.964 30.4436 24.5942 30.1457 24.5498 29.7338C24.5054 29.322 24.8033 28.9522 25.2152 28.9078C25.708 28.8547 26.1933 28.7985 26.6776 28.7423C26.95 28.7107 27.2228 28.6791 27.4957 28.6482C28.1087 28.5787 28.5962 28.0903 28.6637 27.4798C28.6888 27.2526 28.7143 27.0255 28.7398 26.7982C28.7988 26.2722 28.8581 25.7448 28.9132 25.2104C28.9558 24.7984 29.3243 24.4989 29.7363 24.5414C30.1483 24.584 30.4478 24.9525 30.4053 25.3645C30.3494 25.9057 30.289 26.444 30.2296 26.973C30.2043 27.1988 30.1791 27.4228 30.1546 27.6446C30.0098 28.9542 28.9711 29.9906 27.6646 30.1386C27.4008 30.1685 27.1332 30.1995 26.8632 30.2308L26.8603 30.2312C26.3712 30.2879 25.8739 30.3455 25.3758 30.3992Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.6243 30.3992C17.0362 30.4436 17.406 30.1457 17.4503 29.7338C17.4947 29.322 17.1968 28.9522 16.785 28.9078C16.2922 28.8547 15.8069 28.7985 15.3226 28.7423C15.0502 28.7107 14.7774 28.6791 14.5044 28.6482C13.8914 28.5787 13.404 28.0903 13.3365 27.4798C13.3114 27.2526 13.2859 27.0255 13.2604 26.7982C13.2013 26.2722 13.1421 25.7448 13.0869 25.2104C13.0444 24.7984 12.6759 24.4989 12.2639 24.5414C11.8518 24.584 11.5523 24.9525 11.5948 25.3645C11.6507 25.9057 11.7111 26.4439 11.7705 26.9728C11.7959 27.1985 11.8211 27.4228 11.8456 27.6446C11.9904 28.9542 13.029 29.9906 14.3356 30.1386C14.5994 30.1685 14.8671 30.1996 15.1372 30.2309L15.1398 30.2312C15.629 30.2879 16.1263 30.3455 16.6243 30.3992Z\", fill: \"#777777\" }));\nexport default SvgScanner;\n","import * as React from \"react\";\nconst SvgStoke = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 42, height: 42, viewBox: \"0 0 42 42\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 42, height: 42, rx: 21, fill: \"#F8F8F8\" }), /* @__PURE__ */ React.createElement(\"rect\", { width: 20, height: 20, transform: \"translate(11 11)\", fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20.2614 17.0441C20.1684 16.7502 19.9051 16.5431 19.5975 16.522C19.29 16.501 19.0008 16.6703 18.8687 16.9488L17.4273 19.9867H16.0658C15.6516 19.9867 15.3158 20.3225 15.3158 20.7367C15.3158 21.1509 15.6516 21.4867 16.0658 21.4867H17.9016C18.1913 21.4867 18.455 21.3199 18.5792 21.0582L19.4063 19.3149L21.1902 24.9556C21.2807 25.2418 21.5332 25.4465 21.8319 25.4758C22.1307 25.5052 22.4181 25.3536 22.5627 25.0905L24.542 21.4867H25.934C26.3482 21.4867 26.684 21.1509 26.684 20.7367C26.684 20.3225 26.3482 19.9867 25.934 19.9867H24.0982C23.8245 19.9867 23.5726 20.1358 23.4408 20.3756L22.0918 22.8319L20.2614 17.0441Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M20.9999 11.3213C18.9769 11.3213 17.0085 11.5495 15.1542 11.7645L15.1522 11.7647C13.3678 11.9716 11.9439 13.3929 11.7433 15.1814C11.5359 17.03 11.3213 18.9876 11.3213 20.9999C11.3213 23.0121 11.5359 24.9697 11.7433 26.8184C11.9439 28.6068 13.3678 30.0281 15.1522 30.235L15.1542 30.2352C17.0085 30.4502 18.9769 30.6784 20.9999 30.6784C23.0228 30.6784 24.9911 30.4502 26.8454 30.2352L26.8475 30.235C28.632 30.0281 30.0558 28.6068 30.2565 26.8184C30.4639 24.9697 30.6784 23.0121 30.6784 20.9999C30.6784 18.9876 30.4639 17.03 30.2565 15.1814C30.0558 13.3929 28.632 11.9716 26.8475 11.7647L26.8456 11.7645C24.9912 11.5495 23.0228 11.3213 20.9999 11.3213ZM15.3249 13.2547C17.1919 13.0383 19.0765 12.8213 20.9999 12.8213C22.9232 12.8213 24.8078 13.0383 26.6748 13.2547C27.7688 13.3816 28.6434 14.2573 28.7658 15.3486C28.9741 17.205 29.1784 19.0833 29.1784 20.9999C29.1784 22.9164 28.9741 24.7947 28.7658 26.6511C28.6434 27.7424 27.7688 28.6181 26.6748 28.745C24.8078 28.9614 22.9232 29.1784 20.9999 29.1784C19.0765 29.1784 17.1919 28.9614 15.3249 28.745C14.2309 28.6181 13.3563 27.7424 13.2339 26.6511C13.0256 24.7947 12.8213 22.9164 12.8213 20.9999C12.8213 19.0833 13.0256 17.205 13.2339 15.3486C13.3563 14.2573 14.2309 13.3816 15.3249 13.2547Z\", fill: \"#777777\" }));\nexport default SvgStoke;\n","import * as React from \"react\";\nconst SvgUserEdit = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M10 9.99984C12.3012 9.99984 14.1667 8.13436 14.1667 5.83317C14.1667 3.53198 12.3012 1.6665 10 1.6665C7.69885 1.6665 5.83337 3.53198 5.83337 5.83317C5.83337 8.13436 7.69885 9.99984 10 9.99984Z\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.0084 13.1167L13.0584 16.0667C12.9417 16.1834 12.8334 16.4 12.8084 16.5584L12.6501 17.6833C12.5917 18.0917 12.8751 18.375 13.2834 18.3167L14.4084 18.1583C14.5667 18.1333 14.7917 18.025 14.9001 17.9084L17.8501 14.9584C18.3584 14.45 18.6001 13.8583 17.8501 13.1083C17.1084 12.3667 16.5168 12.6083 16.0084 13.1167Z\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeMiterlimit: 10, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M15.5834 13.5415C15.8334 14.4415 16.5333 15.1415 17.4333 15.3915\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeMiterlimit: 10, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M2.84155 18.3333C2.84155 15.1083 6.04991 12.5 9.99991 12.5C10.8666 12.5 11.6999 12.625 12.4749 12.8583\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgUserEdit;\n","import * as React from \"react\";\nconst SvgGridIcon = (props) => /* @__PURE__ */ React.createElement(\"svg\", { stroke: \"currentColor\", fill: \"none\", strokeWidth: 0, viewBox: \"0 0 24 24\", height: \"40px\", width: \"40px\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M8 6C8 7.10457 7.10457 8 6 8C4.89543 8 4 7.10457 4 6C4 4.89543 4.89543 4 6 4C7.10457 4 8 4.89543 8 6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8 12C8 13.1046 7.10457 14 6 14C4.89543 14 4 13.1046 4 12C4 10.8954 4.89543 10 6 10C7.10457 10 8 10.8954 8 12Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M6 20C7.10457 20 8 19.1046 8 18C8 16.8954 7.10457 16 6 16C4.89543 16 4 16.8954 4 18C4 19.1046 4.89543 20 6 20Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14 6C14 7.10457 13.1046 8 12 8C10.8954 8 10 7.10457 10 6C10 4.89543 10.8954 4 12 4C13.1046 4 14 4.89543 14 6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 14C13.1046 14 14 13.1046 14 12C14 10.8954 13.1046 10 12 10C10.8954 10 10 10.8954 10 12C10 13.1046 10.8954 14 12 14Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14 18C14 19.1046 13.1046 20 12 20C10.8954 20 10 19.1046 10 18C10 16.8954 10.8954 16 12 16C13.1046 16 14 16.8954 14 18Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 8C19.1046 8 20 7.10457 20 6C20 4.89543 19.1046 4 18 4C16.8954 4 16 4.89543 16 6C16 7.10457 16.8954 8 18 8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20 12C20 13.1046 19.1046 14 18 14C16.8954 14 16 13.1046 16 12C16 10.8954 16.8954 10 18 10C19.1046 10 20 10.8954 20 12Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 20C19.1046 20 20 19.1046 20 18C20 16.8954 19.1046 16 18 16C16.8954 16 16 16.8954 16 18C16 19.1046 16.8954 20 18 20Z\", fill: \"currentColor\" }));\nexport default SvgGridIcon;\n","import Alert from \"./alert.svg?react\"\r\nimport ArrowLeft from \"./arrow-left.svg?react\"\r\nimport ArrowRight from \"./arrow-right.svg?react\"\r\nimport ArrowSquareOut from \"./arrow-square-out.svg?react\"\r\nimport Arrow from \"./arrow.svg?react\"\r\nimport Assessment from \"./assessment.svg?react\"\r\nimport BackArrow from \"./backarrow.svg?react\"\r\nimport Bell2 from \"./bell2.svg?react\"\r\nimport Bell from \"./bell.svg?react\"\r\nimport Book from \"./book.svg?react\"\r\nimport Brain from \"./brain.svg?react\"\r\nimport CaretDown from \"./caret-down.svg?react\"\r\nimport ChartBar from \"./chart-bar.svg?react\"\r\nimport Chart from \"./chart.svg?react\"\r\nimport CheckCircle from \"./check-circle.svg?react\"\r\nimport CheckedIcon from \"./checkbox-seleted.svg?react\"\r\nimport Checked from \"./checkbox.svg?react\"\r\nimport China from \"./china.svg?react\"\r\nimport Circle from \"./circle.svg?react\"\r\nimport CloseSidebarIcon from \"./closeSidebar.svg?react\"\r\nimport CloudArrow from \"./cloud-arrow-down.svg?react\"\r\nimport Coins from \"./coins.svg?react\"\r\nimport Config from \"./config.svg?react\"\r\nimport Credits from \"./credis.svg?react\"\r\nimport Bigcross from \"./crossBig.svg?react\"\r\nimport Dairy from \"./dairy.svg?react\"\r\nimport Delete from \"./delete.svg?react\"\r\nimport Document from \"./document.svg?react\"\r\nimport Dots from \"./dots.svg?react\"\r\nimport Dawn from \"./down.svg?react\"\r\nimport Download from \"./download.svg?react\"\r\nimport DownloadFileIcon from \"./downloadFile.svg?react\"\r\nimport Drag from \"./drag.svg?react\"\r\nimport Earth from \"./earth.svg?react\"\r\nimport Edit from \"./edit.svg?react\"\r\nimport Email from \"./email.svg?react\"\r\nimport Envelope from \"./envelope.svg?react\"\r\nimport Eye from \"./eye.svg?react\"\r\nimport Facebook from \"./facebook.svg?react\"\r\nimport FilePlus from \"./file-plus.svg?react\"\r\nimport File from \"./file-text.svg?react\"\r\nimport FileFolder from \"./filefolder.svg?react\"\r\nimport Flag1 from \"./flag1.svg?react\"\r\nimport Flag2 from \"./flag2.svg?react\"\r\nimport Flag3 from \"./flag3.svg?react\"\r\nimport Flag from \"./flag.svg?react\"\r\nimport Folder from \"./folder.svg?react\"\r\nimport France from \"./france.svg?react\"\r\nimport Globe from \"./globe.svg?react\"\r\nimport GreenFlag from \"./greenFlag.svg?react\"\r\nimport GreenCircle from \"./greencircle.svg?react\"\r\nimport GreenCircles from \"./greencircles.svg?react\"\r\nimport GreyCircle from \"./greycircle.svg?react\"\r\nimport HeaderUsa from \"./header-usa.svg?react\"\r\nimport In from \"./in.svg?react\"\r\nimport Inbox from \"./inbox.svg?react\"\r\nimport India from \"./india.svg?react\"\r\nimport Info from \"./info.svg?react\"\r\nimport Instagram from \"./insta.svg?react\"\r\nimport Language from \"./language.svg?react\"\r\nimport LeftArrow from \"./left-arrow.svg?react\"\r\nimport Lifebuoy from \"./lifebuoy.svg?react\"\r\nimport Link from \"./link.svg?react\"\r\nimport Linkedin from \"./linkedin.svg?react\"\r\nimport Linking from \"./linking.svg?react\"\r\nimport Logo from \"./logo.svg?react\"\r\nimport Logout from \"./logout.svg?react\"\r\nimport Massage from \"./massage.svg?react\"\r\nimport Msg from \"./msg.svg?react\"\r\nimport Notes from \"./notes.svg?react\"\r\nimport OpenSidebarIcon from \"./openSidebar.svg?react\"\r\nimport Pdf from \"./pdf.svg?react\"\r\nimport Pencil from \"./pencil.svg?react\"\r\nimport CheckedPerson from \"./person-checked.svg?react\"\r\nimport Pin from \"./pin.svg?react\"\r\nimport Plus from \"./plus.svg?react\"\r\nimport Print from \"./print.svg?react\"\r\nimport Printer from \"./printer.svg?react\"\r\nimport Profile from \"./profile.svg?react\"\r\nimport Question from \"./question.svg?react\"\r\nimport Questions from \"./questions.svg?react\"\r\nimport RedCircle from \"./redcircle.svg?react\"\r\nimport Report from \"./report.svg?react\"\r\nimport ReportDocument from \"./reportdocument.svg?react\"\r\nimport Sample from \"./sample.svg?react\"\r\nimport Scanner from \"./scanner.svg?react\"\r\nimport Search from \"./search.svg?react\"\r\nimport Send from \"./send.svg?react\"\r\nimport Spain from \"./spain.svg?react\"\r\nimport Star from \"./star.svg?react\"\r\nimport Step2 from \"./step2.svg?react\"\r\nimport Step3 from \"./step3.svg?react\"\r\nimport Step4 from \"./step4.svg?react\"\r\nimport Step5 from \"./step5.svg?react\"\r\nimport Step from \"./step.svg?react\"\r\nimport Stock from \"./stoke.svg?react\"\r\nimport Structure from \"./structure.svg?react\"\r\nimport Success from \"./success.svg?react\"\r\nimport Target from \"./target.svg?react\"\r\nimport NewTwitterIcons from \"./twitter-new.svg?react\"\r\nimport Twitter from \"./twitter.svg?react\"\r\nimport UploadSimple from \"./upload-simple.svg?react\"\r\nimport Upload from \"./upload.svg?react\"\r\nimport USA from \"./usa.svg?react\"\r\nimport UserEdit from \"./user-edit.svg?react\"\r\nimport Users from \"./user.svg?react\"\r\nimport User from \"./users.svg?react\"\r\nimport Warning from \"./warning.svg?react\"\r\nimport Watch from \"./watch.svg?react\"\r\nimport XCircle from \"./x-circle.svg?react\"\r\nimport X from \"./x.svg?react\"\r\nimport Youtube from \"./youtube.svg?react\"\r\nimport CertIcon from \"./certIcon.svg?react\"\r\nimport CardIcon from \"./cardIcon.svg?react\"\r\nimport EventIcon from \"./eventsIcon.svg?react\"\r\nimport ToolsIcon from \"./toolsIcon.svg?react\"\r\nimport ManagementIcon from \"./management.svg?react\"\r\nimport KeyIcon from \"./key.svg?react\"\r\n\r\nimport GridIcon from \"./gridIcon.svg?react\"\r\nimport DashboardIcon from \"./dashboardIcon.svg?react\"\r\nimport HomeIcon from \"./homeIcon.svg?react\"\r\nimport SearchIcon from \"./searchIcon.svg?react\"\r\nimport RightArrow from \"./rightArrow.svg?react\"\r\n\r\nconst SVG = {\r\n NewTwitterIcons,\r\n UserEdit,\r\n Logout,\r\n CheckedPerson,\r\n Bell2,\r\n Assessment,\r\n ArrowRight,\r\n Arrow,\r\n ArrowLeft,\r\n ArrowSquareOut,\r\n Alert,\r\n Credits,\r\n BackArrow,\r\n Bell,\r\n Brain,\r\n Book,\r\n Chart,\r\n CaretDown,\r\n Circle,\r\n ChartBar,\r\n Coins,\r\n China,\r\n CheckCircle,\r\n CloudArrow,\r\n Config,\r\n Document,\r\n Dots,\r\n Delete,\r\n Dawn,\r\n Download,\r\n Dairy,\r\n Eye,\r\n Email,\r\n Earth,\r\n Envelope,\r\n Edit,\r\n File,\r\n Facebook,\r\n Flag,\r\n Flag1,\r\n Flag2,\r\n Flag3,\r\n France,\r\n FilePlus,\r\n Folder,\r\n FileFolder,\r\n HeaderUsa,\r\n Globe,\r\n GreyCircle,\r\n GreenCircle,\r\n GreenCircles,\r\n GreenFlag,\r\n Instagram,\r\n Info,\r\n India,\r\n In,\r\n Inbox,\r\n Logo,\r\n Linkedin,\r\n Link,\r\n LeftArrow,\r\n Lifebuoy,\r\n Linking,\r\n Massage,\r\n Msg,\r\n Notes,\r\n Pencil,\r\n Print,\r\n Printer,\r\n Profile,\r\n Plus,\r\n Pin,\r\n Pdf,\r\n Question,\r\n Questions,\r\n RedCircle,\r\n Report,\r\n ReportDocument,\r\n Send,\r\n Search,\r\n Spain,\r\n Star,\r\n Stock,\r\n Scanner,\r\n Sample,\r\n Success,\r\n Structure,\r\n Step,\r\n Step2,\r\n Step3,\r\n Step4,\r\n Step5,\r\n Twitter,\r\n Target,\r\n USA,\r\n Users,\r\n User,\r\n Upload,\r\n UploadSimple,\r\n Watch,\r\n Warning,\r\n XCircle,\r\n X,\r\n Youtube,\r\n Drag,\r\n Language,\r\n Checked,\r\n CheckedIcon,\r\n Bigcross,\r\n OpenSidebarIcon,\r\n CloseSidebarIcon,\r\n DownloadFileIcon,\r\n CertIcon,\r\n CardIcon,\r\n EventIcon,\r\n ToolsIcon,\r\n ManagementIcon,\r\n KeyIcon,\r\n GridIcon,\r\n DashboardIcon,\r\n HomeIcon,\r\n SearchIcon,\r\n RightArrow,\r\n}\r\nexport default SVG\r\n","import { AppBar, styled } from \"@mui/material\";\r\n\r\nconst SubHeaderStyled = styled(AppBar)(() => ({\r\n // \"@media screen and (max-width:1920px) and (min-width:1600px)\": {\r\n // \"& .submenu\": {\r\n // width: \"84% !important\",\r\n // },\r\n // },\r\n // \"@media screen and (max-width:1600px) and (min-width:1440px)\": {\r\n // \"& .submenu\": {\r\n // width: \"82% !important\",\r\n // },\r\n // },\r\n // \"@media screen and (max-width:5000px) and (min-width:2560px)\": {\r\n // \"& .submenu\": {\r\n // width: \"89% !important\",\r\n // },\r\n // },\r\n \"& \": {\r\n background: \"#fff\",\r\n color: \"#000\",\r\n height: \"70px\",\r\n width: \"100vw\",\r\n fontFamily: \"Inter, sans-serif\",\r\n position: \"fixed\",\r\n boxShadow: \" -6px 2px 7px 1px #EDEDED\",\r\n\r\n zIndex: \"99\",\r\n // left: \"255px\",\r\n right: \"0px\",\r\n top: \"0px\",\r\n },\r\n \"& .submenu\": {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n margin: \"0px\",\r\n fontFamily: \"Inter, sans-serif\",\r\n },\r\n \"& .profile\": {\r\n position: \"absolute\",\r\n right: \"0px\",\r\n top: \"66px\",\r\n background: \"#fff\",\r\n width: \"256px\",\r\n borderRadius: \"16px\",\r\n zIndex: \"999\",\r\n boxShadow: \"0px 4px 6px -2px #1A191908\",\r\n fontFamily: \"Inter, sans-serif\",\r\n border: \"1px solid #EDEDED\",\r\n \"& ul\": {\r\n margin: \"0px\",\r\n padding: \"0px 16px 16px\",\r\n listStyle: \"none\",\r\n \"& li\": {\r\n padding: \"10px 0px\",\r\n borderBottom: \"1px solid #E9E9E9\",\r\n cursor: \"pointer\",\r\n \"&:last-child\": { borderBottom: \"0px\" },\r\n },\r\n },\r\n },\r\n \"& .notification\": {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n fontFamily: \"Inter, sans-serif\",\r\n },\r\n \"& .notification h6,p\": {\r\n margin: \"10px\",\r\n fontFamily: \"Inter, sans-serif\",\r\n },\r\n \"& .total\": {\r\n border: \"1px solid #C9C9C9\",\r\n borderRadius: \"6px\",\r\n padding: \"4px 8px 4px 8px\",\r\n color: \"#666666\",\r\n fontSize: \"14px\",\r\n fontWeight: \"500\",\r\n display: \"flex\",\r\n fontFamily: \"Inter, sans-serif\",\r\n },\r\n}));\r\nexport default SubHeaderStyled;\r\n","//#region src/standard.ts\nfunction ensureSynchronous(value, message) {\n\tif (value instanceof Promise) throw new Error(message);\n}\nfunction parseWithDictionary(dictionary, value) {\n\tconst result = {};\n\tconst issues = [];\n\tfor (const key in dictionary) {\n\t\tconst propResult = dictionary[key][\"~standard\"].validate(value[key]);\n\t\tensureSynchronous(propResult, `Validation must be synchronous, but ${key} returned a Promise.`);\n\t\tif (propResult.issues) {\n\t\t\tissues.push(...propResult.issues.map((issue) => ({\n\t\t\t\t...issue,\n\t\t\t\tpath: [key, ...issue.path ?? []]\n\t\t\t})));\n\t\t\tcontinue;\n\t\t}\n\t\tresult[key] = propResult.value;\n\t}\n\tif (issues.length) return { issues };\n\treturn { value: result };\n}\n\n//#endregion\n//#region src/index.ts\n/**\n* Create a new environment variable schema.\n*/\nfunction createEnv(opts) {\n\tconst runtimeEnv = opts.runtimeEnvStrict ?? opts.runtimeEnv ?? process.env;\n\tconst emptyStringAsUndefined = opts.emptyStringAsUndefined ?? false;\n\tif (emptyStringAsUndefined) {\n\t\tfor (const [key, value] of Object.entries(runtimeEnv)) if (value === \"\") delete runtimeEnv[key];\n\t}\n\tconst skip = !!opts.skipValidation;\n\tif (skip) return runtimeEnv;\n\tconst _client = typeof opts.client === \"object\" ? opts.client : {};\n\tconst _server = typeof opts.server === \"object\" ? opts.server : {};\n\tconst _shared = typeof opts.shared === \"object\" ? opts.shared : {};\n\tconst isServer = opts.isServer ?? (typeof window === \"undefined\" || \"Deno\" in window);\n\tconst finalSchemaShape = isServer ? {\n\t\t..._server,\n\t\t..._shared,\n\t\t..._client\n\t} : {\n\t\t..._client,\n\t\t..._shared\n\t};\n\tconst parsed = opts.createFinalSchema?.(finalSchemaShape, isServer)[\"~standard\"].validate(runtimeEnv) ?? parseWithDictionary(finalSchemaShape, runtimeEnv);\n\tensureSynchronous(parsed, \"Validation must be synchronous\");\n\tconst onValidationError = opts.onValidationError ?? ((issues) => {\n\t\tconsole.error(\"❌ Invalid environment variables:\", issues);\n\t\tthrow new Error(\"Invalid environment variables\");\n\t});\n\tconst onInvalidAccess = opts.onInvalidAccess ?? (() => {\n\t\tthrow new Error(\"❌ Attempted to access a server-side environment variable on the client\");\n\t});\n\tif (parsed.issues) return onValidationError(parsed.issues);\n\tconst isServerAccess = (prop) => {\n\t\tif (!opts.clientPrefix) return true;\n\t\treturn !prop.startsWith(opts.clientPrefix) && !(prop in _shared);\n\t};\n\tconst isValidServerAccess = (prop) => {\n\t\treturn isServer || !isServerAccess(prop);\n\t};\n\tconst ignoreProp = (prop) => {\n\t\treturn prop === \"__esModule\" || prop === \"$$typeof\";\n\t};\n\tconst extendedObj = (opts.extends ?? []).reduce((acc, curr) => {\n\t\treturn Object.assign(acc, curr);\n\t}, {});\n\tconst fullObj = Object.assign(extendedObj, parsed.value);\n\tconst env = new Proxy(fullObj, { get(target, prop) {\n\t\tif (typeof prop !== \"string\") return void 0;\n\t\tif (ignoreProp(prop)) return void 0;\n\t\tif (!isValidServerAccess(prop)) return onInvalidAccess(prop);\n\t\treturn Reflect.get(target, prop);\n\t} });\n\treturn env;\n}\n\n//#endregion\nexport { createEnv };","import { createEnv } from \"@t3-oss/env-core\"\r\nimport { commonValidation } from \"./validation\"\r\n\r\nexport const env = createEnv({\r\n clientPrefix: \"VITE_\",\r\n client: {\r\n // frontend\r\n VITE_MODULES_SSO_FRONTEND_BASE_URL: commonValidation.envUrl,\r\n VITE_MODULES_TOOLS_FRONTEND_BASE_URL: commonValidation.envUrl,\r\n VITE_MODULES_EVENTS_FRONTEND_BASE_URL: commonValidation.envUrl,\r\n VITE_MODULES_CARDS_HOME_FRONTEND_BASE_URL: commonValidation.envUrl,\r\n VITE_MODULES_CARDS_ADMIN_FRONTEND_BASE_URL: commonValidation.envUrl,\r\n VITE_MODULES_CERT_FRONTEND_BASE_URL: commonValidation.envUrl,\r\n\r\n // backends\r\n VITE_MODULES_SSO_BACKEND_BASE_URL: commonValidation.envUrl,\r\n },\r\n runtimeEnv: import.meta.env,\r\n skipValidation: true,\r\n})\r\n","export const SERVER_STATUS_CODE = Object.freeze({\r\n notFound: 404,\r\n badRequest: 400,\r\n forbidden: 403,\r\n authenticationDenied: 401,\r\n serverError: 500,\r\n success: 200,\r\n})\r\n\r\nexport const SERVER_STATUS = Object.freeze({\r\n success: \"success\",\r\n failure: \"failure\",\r\n})\r\n\r\nexport const APP_NAMES = Object.freeze({\r\n events: \"Events\",\r\n tools: \"Tools\",\r\n certHome: \"Cert Home\",\r\n cards: \"Cards\",\r\n sso: \"SSO Admin\",\r\n cardsHome: \"Cards Home\",\r\n cardsAdmin: \"Cards Admin\",\r\n})\r\n\r\nexport const ALERT_MESSAGES = Object.freeze({\r\n // not found\r\n dataNoFount: \"Data not found\",\r\n searchNotFount: \"Sorry, there are no matches. Try a new search?\",\r\n // generic\r\n commonLoadingMessage: \"Please wait...\",\r\n submittingSuccessMassage: \"Detail Added Successfully\",\r\n allFieldsRequired: \"Please fill all required fields\",\r\n NA: \"N/A\",\r\n // error\r\n fallbackError: \"Something went wrong, Please try again later!\",\r\n networkError: \"Please check your internet connection!\",\r\n timeOutError: \"Your connection taking too long to get data!\",\r\n})\r\n\r\nexport const ROLES = Object.freeze({\r\n master: \"Master\",\r\n distributor: \"Distributor\",\r\n coach: \"Coach\",\r\n referent: \"Referent\",\r\n})\r\n\r\nexport const REGEX = Object.freeze({\r\n email: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$/i,\r\n mobile: /^[6-9]\\d{9}$/,\r\n website: /^(https?:\\/\\/)?(www\\.)?[a-zA-Z0-9-]+\\.[a-zA-Z]{2,}(\\/.*)?$/,\r\n password: /^(?=.*[A-Z])(?=.*\\d)(?=.*[@!$%^&*()_+[\\]{};':\"\\\\|,.<>/?#]).*$/,\r\n})\r\n\r\nexport const WEBSITE_LINKS = Object.freeze({\r\n // helpDisk: \"https://6seconds.atlassian.net/servicedesk/customer/portal/8\",\r\n helpDisk: \"#\",\r\n instagram: \"https://www.instagram.com/6secondseq/\",\r\n facebook: \"https://www.facebook.com/sixseconds\",\r\n linkedin: \"https://www.linkedin.com/company/six-seconds/\",\r\n youtube: \"https://www.youtube.com/c/SixSeconds\",\r\n x: \"https://x.com/6s_EQ\",\r\n termsOfService: \"https://www.6seconds.org/about/terms-of-use/\",\r\n privacyPolicy: \"https://www.6seconds.org/about/policies/privacy/\",\r\n certUrl: \"https://cert.6seconds.org/\",\r\n})\r\n\r\nexport const RTK_ERROR_CODES = Object.freeze({\r\n fetchError: \"FETCH_ERROR\",\r\n parsingError: \"PARSING_ERROR\",\r\n timeOutError: \"TIMEOUT_ERROR\",\r\n customError: \"CUSTOM_ERROR\",\r\n})\r\n\r\nexport const APP_ACCESS = Object.freeze({\r\n events: \"Events\",\r\n tools: \"Tools\",\r\n certHome: \"Cert Home\",\r\n cards: \"Cards\",\r\n ssoAdmin: \"SSO Admin\",\r\n cardsHome: \"Cards Home\",\r\n cardsAdmin: \"Cards Admin\",\r\n})\r\n\r\nexport const NOTIFICATIONS_TYPES = Object.freeze({\r\n project: \"Project\",\r\n credit: \"Credit\",\r\n report: \"Report\",\r\n group: \"Group\",\r\n system: \"System\",\r\n})\r\n","import { APP_NAMES } from \"./common\"\r\nimport { env } from \"./env\"\r\n\r\nexport const TOOLS_ROUTES = {\r\n creditList: env.VITE_MODULES_TOOLS_FRONTEND_BASE_URL + \"/credit/regular-credits\",\r\n groupList: env.VITE_MODULES_TOOLS_FRONTEND_BASE_URL + \"/sei/adult/groups\",\r\n projectList: env.VITE_MODULES_TOOLS_FRONTEND_BASE_URL + \"/sei/adult/projects\",\r\n reportList: env.VITE_MODULES_TOOLS_FRONTEND_BASE_URL + \"/sei/adult/reports\",\r\n}\r\n\r\nexport const SSO_ROUTES = (APP_NAME?: (typeof APP_NAMES)[keyof typeof APP_NAMES]) => {\r\n return {\r\n languages: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/languages?source=${APP_NAME}`,\r\n translations: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/translations?source=${APP_NAME}`,\r\n editProfile: `${APP_NAME !== APP_NAMES.sso?env.VITE_MODULES_SSO_FRONTEND_BASE_URL : \".\"}/edit-profile?source=${APP_NAME}`,\r\n email: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/settings/email-templates?source=${APP_NAME}`,\r\n changePasswordDialog: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/dashboard?change-password&source=${APP_NAME}`,\r\n viewProfile: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/dashboard?view-profile`,\r\n unauthorized: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/unauthorized`,\r\n }\r\n}\r\n\r\nexport const ROUTES = {\r\n home: \"/\",\r\n}\r\n","export const MAIN_DATE_FORMAT = \"MM/DD/YYYY\"\r\nexport const FILTER_DATE_FORMAT = \"YYYY-MM-DD\"\r\nexport const MAIN_TIME_FORMAT = \"h:mm a\"\r\n","import SVG from \"@/assets/svg\"\r\nimport { APP_ACCESS, NOTIFICATIONS_TYPES, TOOLS_ROUTES } from \"@/constants\"\r\nimport { OnClick } from \"@/types\"\r\nimport { createElement } from \"react\"\r\n\r\n// make big string into ...\r\nexport const truncateValUtil = (val: string, maxTruncateVal = 15) => {\r\n return val.length > maxTruncateVal ? val.substring(0, maxTruncateVal) + \"...\" : val\r\n}\r\n\r\nexport function formatTwoValues(val1?: string, val2?: any, symbol: string = \",\"): string {\r\n return val1 ? `${val1}${symbol} ${val2}` : val2 || \"\"\r\n}\r\n\r\nexport const url = (url: string) => {\r\n window.location.href = url\r\n}\r\n\r\n// close all dialog\r\nexport const handleCloseUtil = (setState: any) => {\r\n setState((prevState: any) => {\r\n const updatedToggles = Object.fromEntries(Object.entries(prevState.toggles).map(([key]) => [key, false]))\r\n return {\r\n ...prevState,\r\n toggles: updatedToggles,\r\n }\r\n })\r\n}\r\n\r\n// open specific dialog according to key name\r\nexport const handleOpenUtil = (e: OnClick, setState: any) => {\r\n const name = e.currentTarget.getAttribute(\"data-toggle-name\")\r\n setState((p: any) => {\r\n return {\r\n ...p,\r\n toggles: {\r\n ...p.toggles,\r\n [e?.target?.name || name]: true,\r\n },\r\n }\r\n })\r\n}\r\n\r\nexport const getIcons = (val: string, defaultIcon: string) => {\r\n switch (val) {\r\n case \"Project\":\r\n return createElement(SVG.Printer)\r\n case \"Group\":\r\n return createElement(SVG.Folder)\r\n case \"Report\":\r\n return createElement(SVG.Stock)\r\n case \"Credit\":\r\n return createElement(SVG.Credits)\r\n default:\r\n return defaultIcon || createElement(SVG.Scanner)\r\n }\r\n}\r\n\r\nexport const handleRedirection = (type: string, source: string) => {\r\n if (source === APP_ACCESS.tools) {\r\n switch (type) {\r\n case NOTIFICATIONS_TYPES.project:\r\n window.open(TOOLS_ROUTES.projectList)\r\n break\r\n case NOTIFICATIONS_TYPES.credit:\r\n window.open(TOOLS_ROUTES.creditList)\r\n break\r\n case NOTIFICATIONS_TYPES.group:\r\n window.open(TOOLS_ROUTES.groupList)\r\n break\r\n case NOTIFICATIONS_TYPES.report:\r\n window.open(TOOLS_ROUTES.reportList)\r\n break\r\n case NOTIFICATIONS_TYPES.system:\r\n window.open(TOOLS_ROUTES.projectList)\r\n break\r\n default:\r\n window.open(TOOLS_ROUTES.projectList)\r\n }\r\n }\r\n}\r\n","//! moment.js\n//! version : 2.30.1\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 var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\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 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 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 D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\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 date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\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\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 match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\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\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\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\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\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\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// 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 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 if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n}\n\nfunction set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\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\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// PARSING\n\naddRegexToken('M', match1to2, match1to2NoLeadingZero);\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 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 var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\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 shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\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\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\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// PARSING\n\naddRegexToken('w', match1to2, match1to2NoLeadingZero);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2, match1to2NoLeadingZero);\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// 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\n var day = get(this, 'Day');\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// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2, match1to2HasZero);\naddRegexToken('h', match1to2, match1to2NoLeadingZero);\naddRegexToken('k', match1to2, match1to2NoLeadingZero);\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 // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\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 erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\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\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() + this.localeData()._week.dow,\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// 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// PARSING\n\naddRegexToken('D', match1to2, match1to2NoLeadingZero);\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// 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// PARSING\n\naddRegexToken('m', match1to2, match1to2HasZero);\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// PARSING\n\naddRegexToken('s', match1to2, match1to2HasZero);\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// 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\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 valueOf$1 = asMilliseconds;\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.30.1';\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', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n};\n\nexport default hooks;\n","import { MAIN_DATE_FORMAT, MAIN_TIME_FORMAT } from \"@/constants\"\r\nimport moment, { type Moment } from \"moment\"\r\n\r\nimport { formatTwoValues } from \"./common\"\r\n\r\nexport function formatDateUtil(\r\n dateString: string | Date | Moment | null,\r\n flag?: string,\r\n formatDate: string = MAIN_DATE_FORMAT,\r\n) {\r\n const dateTime = moment.utc(dateString).local()\r\n if (flag === \"time\") {\r\n return dateString ? dateTime.format(MAIN_TIME_FORMAT) : \"\"\r\n }\r\n\r\n if (flag === \"date\") {\r\n return dateString ? dateTime.format(formatDate) : \"\"\r\n }\r\n\r\n return dateString ? formatTwoValues(dateTime.format(formatDate), dateTime.format(MAIN_TIME_FORMAT)) : \"\"\r\n}\r\n\r\nexport const getTimeZone = () => Intl.DateTimeFormat().resolvedOptions().timeZone\r\n","import { SSO_ROUTES } from \"@/constants\"\r\nimport { handleCloseUtil, handleOpenUtil, truncateValUtil } from \"@/utils\"\r\nimport { Avatar, Box, ClickAwayListener, Link, Stack, Typography } from \"@mui/material\"\r\nimport SVG from \"@/assets/svg\"\r\nimport { useState } from \"react\"\r\nimport { IState } from \"./type\"\r\nimport { SetStateAction } from \"@/types\"\r\n\r\ninterface IProps {\r\n userData: any\r\n initialState: IState\r\n setInitialState?: SetStateAction<IState>\r\n extraMenuOptions?: any\r\n}\r\n\r\nconst UserProfile = ({ userData, setInitialState, extraMenuOptions }: IProps) => {\r\n const [state, setState] = useState({ toggles: { userProfile: false } })\r\n return (\r\n <>\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n ml: { md: 1.5, lg: 1.5, xs: \"5px\" },\r\n cursor: \"pointer\",\r\n width: \"auto\",\r\n height: \"auto\",\r\n }}\r\n data-toggle-name=\"userProfile\"\r\n onClick={e => handleOpenUtil(e, setState)}\r\n >\r\n <Avatar src={userData?.userprofile} sx={{ width: \"40px\", height: \"40px\" }} />\r\n <Box sx={{ margin: \"2px 0px 0px 2px\" }}>\r\n <SVG.Dawn />\r\n </Box>\r\n </Box>\r\n {state.toggles.userProfile && (\r\n <ClickAwayListener onClickAway={() => handleCloseUtil(setState)}>\r\n <Box className=\"profile\">\r\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"} sx={{ borderBottom: \"1px solid #EDEDED\", p: 2 }}>\r\n <Avatar src={userData?.userprofile} sx={{ width: \"55px\", height: \"55px\" }} />\r\n <Box\r\n sx={{\r\n flex: 1,\r\n whiteSpace: \"normal\",\r\n wordBreak: \"break-all\",\r\n }}\r\n >\r\n <Typography variant=\"h4\" sx={{ fontSize: \"16px\", fontWeight: \"500\", m: 0 }}>\r\n {userData?.fullName}\r\n </Typography>\r\n <Typography component={\"span\"} sx={{ m: 0, fontSize: \"14px\", color: \"#666666\" }}>\r\n {truncateValUtil(userData?.email)} <br />({userData?.role})\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n <ul>\r\n {extraMenuOptions.isViewProfile && (\r\n <li>\r\n <Stack\r\n direction={\"row\"}\r\n spacing={1}\r\n alignItems={\"center\"}\r\n component={Link}\r\n href={SSO_ROUTES(userData.appName).viewProfile}\r\n target=\"_blank\"\r\n sx={{ color: \"#1A1919\", cursor: \"pointer\" }}\r\n >\r\n <SVG.CheckedPerson />\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n m: 0,\r\n }}\r\n >\r\n View Profile\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </li>\r\n )}\r\n {extraMenuOptions.isEditProfile && (\r\n <li>\r\n <Stack\r\n direction={\"row\"}\r\n spacing={1}\r\n alignItems={\"center\"}\r\n component={Link}\r\n href={SSO_ROUTES(userData.appName).editProfile}\r\n target=\"_blank\"\r\n sx={{ color: \"#1A1919\" }}\r\n >\r\n <SVG.UserEdit />\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n m: 0,\r\n }}\r\n >\r\n {\"Edit Profile\"}\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </li>\r\n )}\r\n {extraMenuOptions.isChangePassword && (\r\n <li>\r\n <Stack\r\n direction={\"row\"}\r\n spacing={1}\r\n alignItems={\"center\"}\r\n component={Link}\r\n href={SSO_ROUTES(userData.appName).changePasswordDialog}\r\n target=\"_blank\"\r\n sx={{ cursor: \"pointer\" }}\r\n >\r\n <SVG.CheckedPerson />\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n color: \"#1A1919\",\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n m: 0,\r\n }}\r\n >\r\n {\"Change Password\"}\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </li>\r\n )}\r\n {extraMenuOptions.components}\r\n <li>\r\n <Stack\r\n direction={\"row\"}\r\n spacing={1}\r\n alignItems={\"center\"}\r\n onClick={() =>\r\n setInitialState?.(p => ({\r\n ...p,\r\n toggles: { ...p.toggles, logout: true },\r\n }))\r\n }\r\n >\r\n <SVG.Logout />\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n m: 0,\r\n }}\r\n >\r\n Logout\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </li>\r\n </ul>\r\n </Box>\r\n </ClickAwayListener>\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nexport default UserProfile\r\n","import { SetStateAction } from \"@/types\"\r\nimport CheckIcon from \"@mui/icons-material/Check\"\r\nimport { Box, ClickAwayListener, Stack, Typography } from \"@mui/material\"\r\nimport { IState } from \"./type\"\r\nimport { handleCloseUtil } from \"@/utils\"\r\n\r\ninterface IProps {\r\n setState?: any\r\n interFaceLangList?: any\r\n userData?: any\r\n updateInterfaceLang?: any\r\n selectedInterFaceLang?: any\r\n setInitialState: SetStateAction<IState>\r\n}\r\n\r\nexport default function Language({\r\n interFaceLangList,\r\n // updateInterfaceLang,\r\n selectedInterFaceLang,\r\n setInitialState,\r\n}: IProps) {\r\n return (\r\n <ClickAwayListener onClickAway={() => handleCloseUtil(setInitialState)}>\r\n <Box\r\n sx={{\r\n p: 2,\r\n borderRadius: \"16px\",\r\n border: \"1px solid #EDEDED\",\r\n boxShadow: \"0px 12px 16px -4px #1A191914\",\r\n maxWidth: \"333px\",\r\n minWidth: { md: \"333px\", lg: \"333px\", xs: \"200px\" },\r\n background: \"#fff\",\r\n top: \"66px\",\r\n right: \"0px\",\r\n position: \"absolute\",\r\n }}\r\n >\r\n <Box\r\n component={\"ul\"}\r\n sx={{\r\n margin: \"0px\",\r\n padding: \"0px 16px 0px 0px\",\r\n listStyle: \"none\",\r\n overflow: \"hidden\",\r\n overflowY: \"auto\",\r\n maxHeight: \"300px\",\r\n \"& li\": {\r\n borderBottom: \"1px solid #EDEDED\",\r\n padding: \"16px 0px\",\r\n cursor: \"pointer\",\r\n \"&:last-child\": {\r\n borderBottom: \"0px\",\r\n },\r\n },\r\n }}\r\n >\r\n {interFaceLangList?.map((lang: any, i: number) => {\r\n return (\r\n <li key={i}>\r\n <Stack\r\n direction={\"row\"}\r\n spacing={2}\r\n alignItems={\"center\"}\r\n onClick={() => {\r\n // updateInterfaceLang({\r\n // user_id: userData?.id,\r\n // lang: lang?.label,\r\n // })\r\n setInitialState((p: any) => ({ ...p, toggles: { ...p.toggles, lang: false } }))\r\n }}\r\n >\r\n <Box sx={{ flex: 1 }}>\r\n <Stack direction={\"row\"} alignItems={\"center\"} justifyContent={\"flex-start\"} gap={2}>\r\n <img src={lang?.flag} alt={lang?.label} width={32} height={30} />\r\n <Typography variant=\"h4\" sx={{ fontSize: \"16px\", fontWeight: \"500\", m: 0 }}>\r\n {lang?.label}\r\n </Typography>\r\n {selectedInterFaceLang?.value === lang?.value && (\r\n <CheckIcon sx={{ color: \"#007FC0\", fontSize: \"30px\" }} />\r\n )}\r\n </Stack>\r\n </Box>\r\n </Stack>\r\n </li>\r\n )\r\n })}\r\n </Box>\r\n </Box>\r\n </ClickAwayListener>\r\n )\r\n}\r\n","import { useMediaQuery } from \"@mui/material\"\r\nimport type { IState } from \"./type\"\r\nimport type { SetStateAction } from \"@/types\"\r\n\r\ninterface IProps {\r\n headerMenuArray: any[]\r\n initialState: IState\r\n setInitialState?: SetStateAction<IState>\r\n}\r\nconst DropdownMenu = ({ headerMenuArray, initialState }: IProps) => {\r\n const pathname = window.location.pathname\r\n const isMobile = useMediaQuery(\"(max-width: 1324px)\")\r\n return (\r\n <nav style={{ backgroundColor: \"#fff\", color: \"#000\" }}>\r\n { !isMobile ? (\r\n <ul className=\" main_list_Menu desktopMenu\">\r\n {headerMenuArray.map((items: any, index: number) => (\r\n <>\r\n <li className=\"menu-item\" key={index}>\r\n <a\r\n href={items.value || \"\"}\r\n target={items.target}\r\n className={`menu-link`}\r\n >\r\n {items.label}\r\n </a>\r\n {/* Dropdown */}\r\n {Boolean(items.children.length) && (\r\n <ul className=\"submenuData \">\r\n {items.children?.map((child: any, index: number) => (\r\n <>\r\n <li key={index}>\r\n <a\r\n href={child.value || \"\"}\r\n target={child.target}\r\n className=\"submenu-link\"\r\n >\r\n {child.label}\r\n </a>\r\n </li>\r\n </>\r\n ))}\r\n </ul>\r\n )}\r\n </li>\r\n </>\r\n ))}\r\n </ul>\r\n ): initialState.toggles.dropDownMenu &&(\r\n <div className=\"lg:hidden smallDeviceMenu\" id=\"mobile-menu\">\r\n <div className=\" layout_mobile_menu\">\r\n {headerMenuArray.map((items: any, index: number) => (\r\n <>\r\n <a\r\n href={items.value || \"\"}\r\n className={`bg_main_menu ${\r\n pathname === items.value ? \"text-customBlue\" : \"text-[#2C2E35]\"\r\n }`}\r\n key={index}\r\n >\r\n {items.label}\r\n </a>\r\n {Boolean(items.children.length) && (\r\n <ul className=\"submenu_child\">\r\n {items.children?.map((items: any, index: number) => (\r\n <>\r\n <li key={index}>\r\n <a\r\n href={items.value || \"\"}\r\n target={items.target}\r\n className=\"submenu_child_link \"\r\n >\r\n {items.label}\r\n </a>\r\n </li>\r\n </>\r\n ))}\r\n </ul>\r\n )}\r\n </>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n </nav>\r\n )\r\n}\r\n\r\nexport default DropdownMenu\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAA1CAMAAACA7r40AAAA/FBMVEWyIjNPN2Y8O27///8/PnBOTXxycpY9PG9RUX5HR3dIR3dLSnlPTny4uMpWVYFFRHVwb5VlZIx7e52DgqOIh6aIiKc+PXBJSHhTUn9hYYqyIjReXohgX4lYV4Lr6/C2tcjPdYB0c5haWYRYV4Nra5GJiac+PW/FxdTHYG1RUH3eoajltbtOTXvty89BQHHg3+hSUX6GYoC6usyVlbFycZa7u8yUk6+sq8FCQXO0tMe1tMhiYYpMS3pDQnNvbpTExNN8fJ7GxdTGxtWCgqLHx9WXlrLXi5SYl7Kiobrg4Oiiorrn5u3n5+2jo7ukpLvw8PTx8fX09Pf19firqsC5sMNxAAAAAnRSTlPQ9qN1Xw4AAAGlSURBVHhe7ZXFiiRBFEVjznvp5W7t7j3u7m7//y8D1dAMGbnI4jW5KOpsgjibCxFcrrtVEmcBGAGQJHB98d3EgEM/ygsg/nwRAy15rxQ4Ywh3JQX49hVgKA/Ad1hDkkGTMSQJjGkOEmo133FmwAEQyl8FfSj3gFgkzjsQAw6AZ796AP2fGcDBS8/ZQ7ZQlJ2d+bEFqp6zhuh9Cf9/pDtKkTs04KBTD4jgx3eICOodoshz1p7M6UUAUQ+Ap2Pf2UMI5UBBX18/Ut7ZQ84Jui10QKsbcA7dt77jxIBDt+sxMNzrD4HL+rZS4Iw9iTZkCjRFmsBUHkcUOGMI7dkpKezuQsrprM3zR76zN572ekdBX623gaONJ0d5B5sGHAA1+QTwRQJgX2Q/7+w9GZGlDZKERpoxgkbDc8s0WscGSo+WGMiNVlgwWuFNjdafPsDe7wzg3RvP2UNCFGVtbX6EoOo7PhgoO1rGnswHiquB4mqgfIcxpBTGkNslMf2JVMAShRxXgJtUwBKFbFbAqicL4U4qYNWThXCHFbDqyUK4swpY9WQhXBX8A2rVjaQ6HWXmAAAAAElFTkSuQmCC\"","import Us from \"./us.png\"\r\n\r\nconst IMAGES = {\r\n Us,\r\n}\r\n\r\nexport default IMAGES\r\n","import { handleCloseUtil } from \"../../utils\"\r\nimport { Box, Button, Dialog, Stack } from \"@mui/material\"\r\nimport { ALERT_MESSAGES } from \"../../constants\"\r\nimport SVG from \"@/assets/svg\"\r\n\r\ninterface IProps {\r\n open: boolean\r\n title?: string\r\n description?: string\r\n setInitialState: any\r\n buttonTitle?: string\r\n handleClick: () => void\r\n isLoading?: boolean\r\n}\r\n\r\nconst DangerDialog = ({\r\n open,\r\n setInitialState,\r\n title = \"Warning\",\r\n description = \"Are you sure you want to delete this entry\",\r\n buttonTitle = \"Delete\",\r\n isLoading = false,\r\n handleClick,\r\n}: IProps) => {\r\n return (\r\n <Dialog\r\n fullWidth={false}\r\n sx={{ \"& .MuiPaper-root\": { maxWidth: \"400px\", borderRadius: \"12px\" } }}\r\n onClose={() => handleCloseUtil(setInitialState)}\r\n open={open}\r\n aria-labelledby=\"draggable-dialog-title\"\r\n >\r\n <Box sx={{ p: 2 }}>\r\n <Stack direction={\"column\"} spacing={2} alignItems={\"self-start\"}>\r\n <SVG.Logout />\r\n <h5>{title}</h5>\r\n <Stack\r\n direction={\"column\"}\r\n spacing={1}\r\n alignItems={\"self-start\"}\r\n sx={{\r\n \"& h5\": { fontSize: \"18px\", fontWeight: \"600\" },\r\n \"& p\": {\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n color: \"#666666\",\r\n },\r\n }}\r\n >\r\n <p>{description}</p>\r\n </Stack>\r\n </Stack>\r\n <Stack direction={\"row\"} alignItems={\"center\"} spacing={2} sx={{ mt: 2 }}>\r\n <Button\r\n variant=\"outlined\"\r\n fullWidth\r\n onClick={() => handleCloseUtil(setInitialState)}\r\n sx={{\r\n borderColor: \"#D9D9D9\",\r\n color: \"#4C4C4C\",\r\n textTransform: \"capitalize\",\r\n borderRadius: \"8px\",\r\n fontSize: \"14px\",\r\n \"&:hover\": { borderColor: \"#D9D9D9\" },\r\n }}\r\n >\r\n Cancel\r\n </Button>\r\n <Button\r\n variant=\"contained\"\r\n fullWidth\r\n disableElevation\r\n disabled={isLoading}\r\n onClick={handleClick}\r\n sx={{\r\n background: \"#EC5962\",\r\n color: \"#fff\",\r\n textTransform: \"capitalize\",\r\n borderRadius: \"8px\",\r\n fontSize: \"14px\",\r\n \"&:hover\": { background: \"#EC5962\" },\r\n }}\r\n >\r\n {isLoading ? ALERT_MESSAGES.commonLoadingMessage : buttonTitle}\r\n </Button>\r\n </Stack>\r\n </Box>\r\n </Dialog>\r\n )\r\n}\r\nexport default DangerDialog\r\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.join = exports.subst = exports.query = void 0;\r\nfunction urlcat(baseUrlOrTemplate, pathTemplateOrParams, maybeParams) {\r\n if (maybeParams === void 0) { maybeParams = {}; }\r\n if (typeof pathTemplateOrParams === 'string') {\r\n var baseUrl = baseUrlOrTemplate;\r\n var pathTemplate = pathTemplateOrParams;\r\n var params = maybeParams;\r\n return urlcatImpl(pathTemplate, params, baseUrl);\r\n }\r\n else {\r\n var baseTemplate = baseUrlOrTemplate;\r\n var params = pathTemplateOrParams;\r\n return urlcatImpl(baseTemplate, params);\r\n }\r\n}\r\nexports.default = urlcat;\r\nfunction urlcatImpl(pathTemplate, params, baseUrl) {\r\n var _a = path(pathTemplate, params), renderedPath = _a.renderedPath, remainingParams = _a.remainingParams;\r\n var cleanParams = removeNullOrUndef(remainingParams);\r\n var renderedQuery = query(cleanParams);\r\n var pathAndQuery = join(renderedPath, '?', renderedQuery);\r\n return baseUrl\r\n ? join(baseUrl, '/', pathAndQuery)\r\n : pathAndQuery;\r\n}\r\n/**\r\n * Creates a query string from the specified object.\r\n *\r\n * @param {Object} params an object to convert into a query string.\r\n *\r\n * @returns {String} Query string.\r\n *\r\n * @example\r\n * ```ts\r\n * query({ id: 42, search: 'foo' })\r\n * // -> 'id=42&search=foo'\r\n * ```\r\n */\r\nfunction query(params) {\r\n return new URLSearchParams(params).toString();\r\n}\r\nexports.query = query;\r\n/**\r\n * Substitutes :params in a template with property values of an object.\r\n *\r\n * @param {String} template a string that contains :params.\r\n * @param {Object} params an object with keys that correspond to the params in the template.\r\n *\r\n * @returns {String} Rendered path after substitution.\r\n *\r\n * @example\r\n * ```ts\r\n * subst('/users/:id/posts/:postId', { id: 42, postId: 36 })\r\n * // -> '/users/42/posts/36'\r\n * ```\r\n */\r\nfunction subst(template, params) {\r\n var renderedPath = path(template, params).renderedPath;\r\n return renderedPath;\r\n}\r\nexports.subst = subst;\r\nfunction path(template, params) {\r\n var remainingParams = __assign({}, params);\r\n var allowedTypes = [\"boolean\", \"string\", \"number\"];\r\n var renderedPath = template.replace(/:\\w+/g, function (p) {\r\n var key = p.slice(1);\r\n if (/^\\d+$/.test(key)) {\r\n return p;\r\n }\r\n if (!params.hasOwnProperty(key)) {\r\n throw new Error(\"Missing value for path parameter \" + key + \".\");\r\n }\r\n if (!allowedTypes.includes(typeof params[key])) {\r\n throw new TypeError(\"Path parameter \" + key + \" cannot be of type \" + typeof params[key] + \". \" +\r\n (\"Allowed types are: \" + allowedTypes.join(', ') + \".\"));\r\n }\r\n if (typeof params[key] === \"string\" && params[key].trim() === '') {\r\n throw new Error(\"Path parameter \" + key + \" cannot be an empty string.\");\r\n }\r\n delete remainingParams[key];\r\n return encodeURIComponent(params[key]);\r\n });\r\n return { renderedPath: renderedPath, remainingParams: remainingParams };\r\n}\r\n/**\r\n * Joins two strings using a separator.\r\n * If the separator occurs at the concatenation boundary in either of the strings, it is removed.\r\n * This prevents accidental duplication of the separator.\r\n *\r\n * @param {String} part1 First string.\r\n * @param {String} separator Separator used for joining.\r\n * @param {String} part2 Second string.\r\n *\r\n * @returns {String} Joined string.\r\n *\r\n * @example\r\n * ```ts\r\n * join('first/', '/', '/second')\r\n * // -> 'first/second'\r\n * ```\r\n */\r\nfunction join(part1, separator, part2) {\r\n var p1 = part1.endsWith(separator)\r\n ? part1.slice(0, -separator.length)\r\n : part1;\r\n var p2 = part2.startsWith(separator)\r\n ? part2.slice(separator.length)\r\n : part2;\r\n return p1 === '' || p2 === ''\r\n ? p1 + p2\r\n : p1 + separator + p2;\r\n}\r\nexports.join = join;\r\nfunction removeNullOrUndef(params) {\r\n return Object.keys(params)\r\n .filter(function (k) { return notNullOrUndefined(params[k]); })\r\n .reduce(function (result, k) {\r\n result[k] = params[k];\r\n return result;\r\n }, {});\r\n}\r\nfunction notNullOrUndefined(v) {\r\n return v !== undefined && v !== null;\r\n}\r\n","import axios, { AxiosError, AxiosRequestConfig } from \"axios\"\r\nimport urlcat from \"urlcat\"\r\nimport { ErrorResult, SuccessResult } from \"./types/base\"\r\nimport { ALERT_MESSAGES, env, SERVER_STATUS } from \"@/constants\"\r\n\r\nif (env.VITE_MODULES_SSO_BACKEND_BASE_URL === undefined) {\r\n throw new Error(\"env is not set\")\r\n}\r\n\r\nfunction createAxiosInstance(baseUrl: string) {\r\n return axios.create({\r\n baseURL: urlcat(baseUrl, \"/api/\"),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n withCredentials: true,\r\n })\r\n}\r\n\r\nexport async function req(config: AxiosRequestConfig): Promise<SuccessResult<any> | ErrorResult> {\r\n const baseUrl = env.VITE_MODULES_SSO_BACKEND_BASE_URL\r\n const axiosInstance = createAxiosInstance(baseUrl)\r\n try {\r\n const response = await axiosInstance.request({ ...config })\r\n return {\r\n remote: SERVER_STATUS.success,\r\n data: response?.data?.data,\r\n }\r\n } catch (error: any) {\r\n if (error.response) {\r\n const axiosError = error as AxiosError | any\r\n const errorMessage = axiosError.response?.data?.message || ALERT_MESSAGES.fallbackError\r\n const errorCode = axiosError.response?.status\r\n const errorData = axiosError.response?.data?.data || null\r\n return {\r\n status: errorCode,\r\n remote: SERVER_STATUS.failure,\r\n error: {\r\n message: errorMessage,\r\n data: errorData,\r\n },\r\n }\r\n }\r\n throw error\r\n }\r\n}\r\n\r\nexport function BaseAPI() {\r\n throw new Error(\"Function not implemented.\")\r\n}\r\n","import { formatDateUtil } from \"@/utils\"\r\n\r\nexport const transformNotifications = (itm: any): any => {\r\n return {\r\n id: itm.id,\r\n title: itm.title,\r\n date: formatDateUtil(itm.created_at),\r\n type: itm.message_type,\r\n status: itm.app_access,\r\n source: itm.app_access,\r\n }\r\n}\r\n\r\nexport const transformUser = (userData: any) => {\r\n const data = userData?.data?.data\r\n const { user, additional_data } = data\r\n\r\n return {\r\n name: user?.Name,\r\n email: user?.Email,\r\n user_profile: additional_data?.user_profile,\r\n }\r\n}\r\n\r\nexport const transformMenuBuilderData = (itm: any) => {\r\n return {\r\n label: itm.name,\r\n value: itm.route,\r\n target: itm.target,\r\n id: itm.id,\r\n order: itm.order,\r\n children: itm.children?.length ? itm.children.map((data: any) => transformMenuBuilderData(data)) : [],\r\n }\r\n}\r\n","import { SERVER_STATUS } from \"@/constants\"\r\nimport { req } from \".\"\r\nimport { transformMenuBuilderData } from \"./transforms/user\"\r\nimport urlcat from \"urlcat\"\r\n\r\nexport async function getDropDownMenuAPI(params: any) {\r\n const res = await req({\r\n url: urlcat(\"menu/menus\", params),\r\n method: \"GET\",\r\n })\r\n if (res.remote === SERVER_STATUS.success) {\r\n return {\r\n remote: SERVER_STATUS.success,\r\n data: res?.data?.map(transformMenuBuilderData),\r\n }\r\n }\r\n return res\r\n}\r\n\r\nexport async function notificationApi(data: any) {\r\n const res = await req({\r\n url: urlcat(\"/notification/index\", data),\r\n method: \"GET\",\r\n })\r\n if (res.remote === SERVER_STATUS.success) {\r\n return {\r\n remote: SERVER_STATUS.success,\r\n data: res?.data?.pager,\r\n }\r\n }\r\n return res\r\n}\r\n","import React, { Component } from 'react';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\n/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nfunction throttle (delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n var self = this;\n var elapsed = Date.now() - lastExec;\n var args = arguments;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, args);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\nvar ThresholdUnits = {\r\n Pixel: 'Pixel',\r\n Percent: 'Percent',\r\n};\r\nvar defaultThreshold = {\r\n unit: ThresholdUnits.Percent,\r\n value: 0.8,\r\n};\r\nfunction parseThreshold(scrollThreshold) {\r\n if (typeof scrollThreshold === 'number') {\r\n return {\r\n unit: ThresholdUnits.Percent,\r\n value: scrollThreshold * 100,\r\n };\r\n }\r\n if (typeof scrollThreshold === 'string') {\r\n if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)px$/)) {\r\n return {\r\n unit: ThresholdUnits.Pixel,\r\n value: parseFloat(scrollThreshold),\r\n };\r\n }\r\n if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)%$/)) {\r\n return {\r\n unit: ThresholdUnits.Percent,\r\n value: parseFloat(scrollThreshold),\r\n };\r\n }\r\n console.warn('scrollThreshold format is invalid. Valid formats: \"120px\", \"50%\"...');\r\n return defaultThreshold;\r\n }\r\n console.warn('scrollThreshold should be string or number');\r\n return defaultThreshold;\r\n}\n\nvar InfiniteScroll = /** @class */ (function (_super) {\r\n __extends(InfiniteScroll, _super);\r\n function InfiniteScroll(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.lastScrollTop = 0;\r\n _this.actionTriggered = false;\r\n // variables to keep track of pull down behaviour\r\n _this.startY = 0;\r\n _this.currentY = 0;\r\n _this.dragging = false;\r\n // will be populated in componentDidMount\r\n // based on the height of the pull down element\r\n _this.maxPullDownDistance = 0;\r\n _this.getScrollableTarget = function () {\r\n if (_this.props.scrollableTarget instanceof HTMLElement)\r\n return _this.props.scrollableTarget;\r\n if (typeof _this.props.scrollableTarget === 'string') {\r\n return document.getElementById(_this.props.scrollableTarget);\r\n }\r\n if (_this.props.scrollableTarget === null) {\r\n console.warn(\"You are trying to pass scrollableTarget but it is null. This might\\n happen because the element may not have been added to DOM yet.\\n See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\\n \");\r\n }\r\n return null;\r\n };\r\n _this.onStart = function (evt) {\r\n if (_this.lastScrollTop)\r\n return;\r\n _this.dragging = true;\r\n if (evt instanceof MouseEvent) {\r\n _this.startY = evt.pageY;\r\n }\r\n else if (evt instanceof TouchEvent) {\r\n _this.startY = evt.touches[0].pageY;\r\n }\r\n _this.currentY = _this.startY;\r\n if (_this._infScroll) {\r\n _this._infScroll.style.willChange = 'transform';\r\n _this._infScroll.style.transition = \"transform 0.2s cubic-bezier(0,0,0.31,1)\";\r\n }\r\n };\r\n _this.onMove = function (evt) {\r\n if (!_this.dragging)\r\n return;\r\n if (evt instanceof MouseEvent) {\r\n _this.currentY = evt.pageY;\r\n }\r\n else if (evt instanceof TouchEvent) {\r\n _this.currentY = evt.touches[0].pageY;\r\n }\r\n // user is scrolling down to up\r\n if (_this.currentY < _this.startY)\r\n return;\r\n if (_this.currentY - _this.startY >=\r\n Number(_this.props.pullDownToRefreshThreshold)) {\r\n _this.setState({\r\n pullToRefreshThresholdBreached: true,\r\n });\r\n }\r\n // so you can drag upto 1.5 times of the maxPullDownDistance\r\n if (_this.currentY - _this.startY > _this.maxPullDownDistance * 1.5)\r\n return;\r\n if (_this._infScroll) {\r\n _this._infScroll.style.overflow = 'visible';\r\n _this._infScroll.style.transform = \"translate3d(0px, \" + (_this.currentY -\r\n _this.startY) + \"px, 0px)\";\r\n }\r\n };\r\n _this.onEnd = function () {\r\n _this.startY = 0;\r\n _this.currentY = 0;\r\n _this.dragging = false;\r\n if (_this.state.pullToRefreshThresholdBreached) {\r\n _this.props.refreshFunction && _this.props.refreshFunction();\r\n _this.setState({\r\n pullToRefreshThresholdBreached: false,\r\n });\r\n }\r\n requestAnimationFrame(function () {\r\n // this._infScroll\r\n if (_this._infScroll) {\r\n _this._infScroll.style.overflow = 'auto';\r\n _this._infScroll.style.transform = 'none';\r\n _this._infScroll.style.willChange = 'unset';\r\n }\r\n });\r\n };\r\n _this.onScrollListener = function (event) {\r\n if (typeof _this.props.onScroll === 'function') {\r\n // Execute this callback in next tick so that it does not affect the\r\n // functionality of the library.\r\n setTimeout(function () { return _this.props.onScroll && _this.props.onScroll(event); }, 0);\r\n }\r\n var target = _this.props.height || _this._scrollableNode\r\n ? event.target\r\n : document.documentElement.scrollTop\r\n ? document.documentElement\r\n : document.body;\r\n // return immediately if the action has already been triggered,\r\n // prevents multiple triggers.\r\n if (_this.actionTriggered)\r\n return;\r\n var atBottom = _this.props.inverse\r\n ? _this.isElementAtTop(target, _this.props.scrollThreshold)\r\n : _this.isElementAtBottom(target, _this.props.scrollThreshold);\r\n // call the `next` function in the props to trigger the next data fetch\r\n if (atBottom && _this.props.hasMore) {\r\n _this.actionTriggered = true;\r\n _this.setState({ showLoader: true });\r\n _this.props.next && _this.props.next();\r\n }\r\n _this.lastScrollTop = target.scrollTop;\r\n };\r\n _this.state = {\r\n showLoader: false,\r\n pullToRefreshThresholdBreached: false,\r\n prevDataLength: props.dataLength,\r\n };\r\n _this.throttledOnScrollListener = throttle(150, _this.onScrollListener).bind(_this);\r\n _this.onStart = _this.onStart.bind(_this);\r\n _this.onMove = _this.onMove.bind(_this);\r\n _this.onEnd = _this.onEnd.bind(_this);\r\n return _this;\r\n }\r\n InfiniteScroll.prototype.componentDidMount = function () {\r\n if (typeof this.props.dataLength === 'undefined') {\r\n throw new Error(\"mandatory prop \\\"dataLength\\\" is missing. The prop is needed\" +\r\n \" when loading more content. Check README.md for usage\");\r\n }\r\n this._scrollableNode = this.getScrollableTarget();\r\n this.el = this.props.height\r\n ? this._infScroll\r\n : this._scrollableNode || window;\r\n if (this.el) {\r\n this.el.addEventListener('scroll', this\r\n .throttledOnScrollListener);\r\n }\r\n if (typeof this.props.initialScrollY === 'number' &&\r\n this.el &&\r\n this.el instanceof HTMLElement &&\r\n this.el.scrollHeight > this.props.initialScrollY) {\r\n this.el.scrollTo(0, this.props.initialScrollY);\r\n }\r\n if (this.props.pullDownToRefresh && this.el) {\r\n this.el.addEventListener('touchstart', this.onStart);\r\n this.el.addEventListener('touchmove', this.onMove);\r\n this.el.addEventListener('touchend', this.onEnd);\r\n this.el.addEventListener('mousedown', this.onStart);\r\n this.el.addEventListener('mousemove', this.onMove);\r\n this.el.addEventListener('mouseup', this.onEnd);\r\n // get BCR of pullDown element to position it above\r\n this.maxPullDownDistance =\r\n (this._pullDown &&\r\n this._pullDown.firstChild &&\r\n this._pullDown.firstChild.getBoundingClientRect()\r\n .height) ||\r\n 0;\r\n this.forceUpdate();\r\n if (typeof this.props.refreshFunction !== 'function') {\r\n throw new Error(\"Mandatory prop \\\"refreshFunction\\\" missing.\\n Pull Down To Refresh functionality will not work\\n as expected. Check README.md for usage'\");\r\n }\r\n }\r\n };\r\n InfiniteScroll.prototype.componentWillUnmount = function () {\r\n if (this.el) {\r\n this.el.removeEventListener('scroll', this\r\n .throttledOnScrollListener);\r\n if (this.props.pullDownToRefresh) {\r\n this.el.removeEventListener('touchstart', this.onStart);\r\n this.el.removeEventListener('touchmove', this.onMove);\r\n this.el.removeEventListener('touchend', this.onEnd);\r\n this.el.removeEventListener('mousedown', this.onStart);\r\n this.el.removeEventListener('mousemove', this.onMove);\r\n this.el.removeEventListener('mouseup', this.onEnd);\r\n }\r\n }\r\n };\r\n InfiniteScroll.prototype.componentDidUpdate = function (prevProps) {\r\n // do nothing when dataLength is unchanged\r\n if (this.props.dataLength === prevProps.dataLength)\r\n return;\r\n this.actionTriggered = false;\r\n // update state when new data was sent in\r\n this.setState({\r\n showLoader: false,\r\n });\r\n };\r\n InfiniteScroll.getDerivedStateFromProps = function (nextProps, prevState) {\r\n var dataLengthChanged = nextProps.dataLength !== prevState.prevDataLength;\r\n // reset when data changes\r\n if (dataLengthChanged) {\r\n return __assign(__assign({}, prevState), { prevDataLength: nextProps.dataLength });\r\n }\r\n return null;\r\n };\r\n InfiniteScroll.prototype.isElementAtTop = function (target, scrollThreshold) {\r\n if (scrollThreshold === void 0) { scrollThreshold = 0.8; }\r\n var clientHeight = target === document.body || target === document.documentElement\r\n ? window.screen.availHeight\r\n : target.clientHeight;\r\n var threshold = parseThreshold(scrollThreshold);\r\n if (threshold.unit === ThresholdUnits.Pixel) {\r\n return (target.scrollTop <=\r\n threshold.value + clientHeight - target.scrollHeight + 1);\r\n }\r\n return (target.scrollTop <=\r\n threshold.value / 100 + clientHeight - target.scrollHeight + 1);\r\n };\r\n InfiniteScroll.prototype.isElementAtBottom = function (target, scrollThreshold) {\r\n if (scrollThreshold === void 0) { scrollThreshold = 0.8; }\r\n var clientHeight = target === document.body || target === document.documentElement\r\n ? window.screen.availHeight\r\n : target.clientHeight;\r\n var threshold = parseThreshold(scrollThreshold);\r\n if (threshold.unit === ThresholdUnits.Pixel) {\r\n return (target.scrollTop + clientHeight >= target.scrollHeight - threshold.value);\r\n }\r\n return (target.scrollTop + clientHeight >=\r\n (threshold.value / 100) * target.scrollHeight);\r\n };\r\n InfiniteScroll.prototype.render = function () {\r\n var _this = this;\r\n var style = __assign({ height: this.props.height || 'auto', overflow: 'auto', WebkitOverflowScrolling: 'touch' }, this.props.style);\r\n var hasChildren = this.props.hasChildren ||\r\n !!(this.props.children &&\r\n this.props.children instanceof Array &&\r\n this.props.children.length);\r\n // because heighted infiniteScroll visualy breaks\r\n // on drag down as overflow becomes visible\r\n var outerDivStyle = this.props.pullDownToRefresh && this.props.height\r\n ? { overflow: 'auto' }\r\n : {};\r\n return (React.createElement(\"div\", { style: outerDivStyle, className: \"infinite-scroll-component__outerdiv\" },\r\n React.createElement(\"div\", { className: \"infinite-scroll-component \" + (this.props.className || ''), ref: function (infScroll) { return (_this._infScroll = infScroll); }, style: style },\r\n this.props.pullDownToRefresh && (React.createElement(\"div\", { style: { position: 'relative' }, ref: function (pullDown) { return (_this._pullDown = pullDown); } },\r\n React.createElement(\"div\", { style: {\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n top: -1 * this.maxPullDownDistance,\r\n } }, this.state.pullToRefreshThresholdBreached\r\n ? this.props.releaseToRefreshContent\r\n : this.props.pullDownToRefreshContent))),\r\n this.props.children,\r\n !this.state.showLoader &&\r\n !hasChildren &&\r\n this.props.hasMore &&\r\n this.props.loader,\r\n this.state.showLoader && this.props.hasMore && this.props.loader,\r\n !this.props.hasMore && this.props.endMessage)));\r\n };\r\n return InfiniteScroll;\r\n}(Component));\n\nexport default InfiniteScroll;\n//# sourceMappingURL=index.es.js.map\n","import { useEffect, useState } from \"react\"\r\nimport { Avatar, Box, Button, ClickAwayListener, Link, MenuItem, Typography } from \"@mui/material\"\r\nimport InfiniteScroll from \"react-infinite-scroll-component\"\r\nimport { ALERT_MESSAGES } from \"@/constants\"\r\nimport { notificationApi } from \"@/api/user\"\r\nimport { transformNotifications } from \"@/api/transforms/user\"\r\nimport { getIcons, handleCloseUtil, handleRedirection } from \"@/utils\"\r\nimport { SetStateAction } from \"@/types\"\r\nimport { IState } from \"./type\"\r\n\r\ninterface IProps {\r\n userData: any\r\n setInitialState: SetStateAction<IState>\r\n initialState: IState\r\n}\r\n\r\nconst Notification = ({ setInitialState, userData, initialState }: IProps) => {\r\n const [notifications, setNotifications] = useState<any>([])\r\n const [hasMore, setHasMore] = useState(true)\r\n const [activeTab, setActiveTab] = useState(\"all\")\r\n const [page, setPage] = useState(0)\r\n\r\n const fetchData = async () => {\r\n setNotifications([])\r\n setHasMore(true)\r\n setPage(0)\r\n\r\n const res = await notificationApi({\r\n source: activeTab === \"all\" ? \"\" : activeTab,\r\n page: 0,\r\n limit: 5,\r\n })\r\n\r\n if (res.remote === \"success\") {\r\n const pager = res.data\r\n if (!pager.data.length && pager.current_page >= pager.last_page) {\r\n setHasMore(false)\r\n return\r\n }\r\n\r\n const newNotifications = pager?.data?.map((itm: any) => transformNotifications(itm))\r\n setNotifications(newNotifications)\r\n setPage(1)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (initialState.toggles.notification) {\r\n fetchData()\r\n }\r\n }, [activeTab, initialState.toggles.notification])\r\n\r\n const loadMoreData = async () => {\r\n const res = await notificationApi({\r\n source: activeTab === \"all\" ? \"\" : activeTab,\r\n page: page,\r\n })\r\n\r\n if (res.remote === \"success\") {\r\n const pager = res.data\r\n if (!pager || pager.current_page >= pager.last_page || !pager.total) {\r\n setHasMore(false)\r\n return\r\n }\r\n\r\n const newNotifications = pager?.data?.map((itm: any) => transformNotifications(itm))\r\n setNotifications((prev: any) => [...prev, ...newNotifications])\r\n setPage(prev => prev + 1)\r\n }\r\n }\r\n\r\n return (\r\n <ClickAwayListener onClickAway={() => handleCloseUtil(setInitialState)}>\r\n <Box\r\n sx={{\r\n p: 2,\r\n borderRadius: \"16px\",\r\n border: \"1px solid #EDEDED\",\r\n boxShadow: \"0px 12px 16px -4px #1A191914\",\r\n maxWidth: \"auto\",\r\n minWidth: { md: \"450px\", lg: \"450px\", xs: \"200px\" },\r\n background: \"#fff\",\r\n top: \"66px\",\r\n right: \"-60px\",\r\n position: \"absolute\",\r\n }}\r\n >\r\n <Box sx={{paddingBottom:\"8px\",display:\"flex\",borderBottom:\"1px solid #ddd\"}}>\r\n {userData?.appAccess?.map((tab: any) => (\r\n <Button\r\n key={tab.name}\r\n onClick={() => setActiveTab(tab.name)}\r\n sx={{\r\n padding: \"2px 20px\",\r\n fontSize: \"14px\",\r\n textTransform: \"capitalize\",\r\n background: activeTab === tab.name ? \"#007fc0\" : \"#fff\",\r\n color: activeTab === tab.name ? \"#fff\" : \"#007fc0\",\r\n borderRadius: \"0px\",\r\n borderTopLeftRadius: \"5px\",\r\n borderTopRightRadius: \"5px\",\r\n borderBottom: \"1px solid #007fc0\",\r\n }}\r\n >\r\n <Typography sx={{ textWrap: \"nowrap\" }}>{tab.name}</Typography>\r\n </Button>\r\n ))}\r\n </Box>\r\n <Box sx={{ fontSize: \"16px\", fontWeight: \"500\", mt: 1, color: \"black\" }}>{\"Notifications\"}</Box>\r\n <Box\r\n id=\"scrollableDiv\"\r\n sx={{\r\n margin: \"0px\",\r\n padding: \"0px 5px 0px 0px\",\r\n overflowY: \"auto\",\r\n maxHeight: \"300px\",\r\n }}\r\n >\r\n <InfiniteScroll\r\n dataLength={notifications.length}\r\n next={loadMoreData}\r\n hasMore={hasMore}\r\n loader={\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n pT: 1,\r\n }}\r\n >\r\n <Typography color={\"#000\"}>{ALERT_MESSAGES.commonLoadingMessage}</Typography>\r\n </Box>\r\n }\r\n scrollableTarget=\"scrollableDiv\"\r\n >\r\n {!notifications.length && !hasMore ? (\r\n <Typography display={\"flex\"} justifyContent={\"center\"} color=\"#000\">\r\n {ALERT_MESSAGES.dataNoFount}\r\n </Typography>\r\n ) : (\r\n notifications.map((itm: any) => (\r\n <MenuItem key={itm.id} sx={{ bgcolor: \"#fff\", p: 2 }}>\r\n <Avatar sx={{ bgcolor: \"#ccc\", mr: 1, color: \"#000\" }}>{getIcons(itm.type, itm?.source[0])}</Avatar>\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n fontSize: \"16px\",\r\n fontWeight: \"500\",\r\n m: 0,\r\n color: \"black\",\r\n }}\r\n >\r\n {itm.title}\r\n </Typography>\r\n <Typography component=\"span\" sx={{ fontSize: \"14px\", color: \"#666\" }}>\r\n {itm.date}, {itm.type}\r\n <Link\r\n onClick={() => handleRedirection(itm.type, itm?.source)}\r\n style={{\r\n textDecoration: \"none\",\r\n color: \"rgb(25, 118, 210)\",\r\n marginLeft: \"5px\",\r\n }}\r\n >\r\n {\"View\"}\r\n </Link>\r\n </Typography>\r\n </Box>\r\n </MenuItem>\r\n ))\r\n )}\r\n </InfiniteScroll>\r\n </Box>\r\n </Box>\r\n </ClickAwayListener>\r\n )\r\n}\r\n\r\nexport default Notification\r\n","import { SetStateAction } from \"@/types\"\r\nimport { Box, ClickAwayListener, Grid, Link, Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport { IState } from \"./type\"\r\nimport { handleCloseUtil } from \"@/utils\"\r\n\r\ninterface HeaderMenuProps {\r\n menuItems: any\r\n setInitialState: SetStateAction<IState>\r\n}\r\n\r\nconst AppMenus: React.FC<HeaderMenuProps> = ({ menuItems, setInitialState }) => {\r\n return (\r\n <ClickAwayListener onClickAway={() => handleCloseUtil(setInitialState)}>\r\n <Box sx={{ p: 1 }}>\r\n <Grid container>\r\n {menuItems.map((item: any, index: number) => (\r\n <Grid\r\n component={Link}\r\n href={item.link}\r\n target=\"_blank\"\r\n item\r\n md={4}\r\n xs={6}\r\n key={index}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n <div>\r\n <Box\r\n className=\"dashboard_Boxs\"\r\n sx={{\r\n marginTop: \"10px\",\r\n textAlign: \"center\",\r\n borderRadius: \"16px\",\r\n \"& svg\": {\r\n margin: \"0 auto\",\r\n width: \"25px\",\r\n height: \"25px\",\r\n },\r\n }}\r\n >\r\n <Box>\r\n <img\r\n width={34}\r\n height={34}\r\n style={{ margin: \"0px auto\",width:\"34px\",height:\"34px\" }}\r\n src={item.icon}\r\n alt=\"\"\r\n \r\n />\r\n </Box>\r\n <Typography\r\n sx={{\r\n fontSize: \"12.5px\",\r\n color: \"#252525\",\r\n fontWeight: 500,\r\n }}\r\n >\r\n {item.name}\r\n </Typography>\r\n </Box>\r\n </div>\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </Box>\r\n </ClickAwayListener>\r\n )\r\n}\r\n\r\nexport default AppMenus\r\n","import MenuIcon from \"@mui/icons-material/Menu\"\r\nimport SubHeaderStyled from \"./subheaderStyled\"\r\nimport { Badge, Box, Container, IconButton, Typography, useMediaQuery } from \"@mui/material\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { IState } from \"./type\"\r\nimport UserProfile from \"./userProfile\"\r\nimport Language from \"./language\"\r\nimport type { t } from \"@/types\"\r\nimport DropdownMenu from \"./dropDownMenu\"\r\nimport \"../../assets/images/us.png\"\r\nimport IMAGES from \"@/assets/images\"\r\nimport { DangerDialog } from \"../dialogs\"\r\nimport { handleOpenUtil } from \"@/utils\"\r\nimport { getDropDownMenuAPI } from \"@/api/user\"\r\nimport SVG from \"@/assets/svg\"\r\nimport Notification from \"./notification\"\r\nimport AppMenus from \"./appMenus\"\r\n\r\ninterface SubHeaderProps {\r\n isDesktopCollapsed?: boolean\r\n userData?: any\r\n interFaceLangList?: any\r\n endCustomComponents?: any\r\n frontCustomComponent?: any\r\n centerCustomComponents?: any\r\n toggleSiderMenu?: any\r\n updateInterfaceLang?: any\r\n selectedInterFaceLang?: any\r\n logoutHandler?: any\r\n logo?: any\r\n isMenu?: boolean\r\n isNotification?: boolean\r\n extraMenuOptions?: any\r\n isAccessAppMenu?: boolean\r\n t?: t\r\n sx?: any\r\n}\r\nexport const Header = ({\r\n frontCustomComponent,\r\n endCustomComponents,\r\n // isDesktopCollapsed = false,\r\n userData,\r\n interFaceLangList,\r\n // toggleSiderMenu,\r\n centerCustomComponents,\r\n // updateInterfaceLang,\r\n selectedInterFaceLang,\r\n logoutHandler,\r\n logo,\r\n isNotification,\r\n extraMenuOptions,\r\n isMenu,\r\n isAccessAppMenu,\r\n sx,\r\n}: SubHeaderProps) => {\r\n const isMobile = useMediaQuery(\"(max-width: 1324px)\")\r\n const [state, setState] = useState<IState>({\r\n languages: [],\r\n menuData: [],\r\n toggles: {\r\n appMenus: false,\r\n dropDownMenu: false,\r\n logout: false,\r\n lang: false,\r\n notification: false,\r\n },\r\n })\r\n\r\n const handleLogout = async () => {\r\n setState(p => ({ ...p, isLoading: true }))\r\n logoutHandler()\r\n }\r\n\r\n const getDropDownMenuData = async () => {\r\n const res = await getDropDownMenuAPI({ source: userData.appName, language_id: selectedInterFaceLang.id })\r\n if (res.remote === \"success\") {\r\n setState(p => ({ ...p, menuData: res.data }))\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (isMenu) {\r\n getDropDownMenuData()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isMenu])\r\n return (\r\n <>\r\n <SubHeaderStyled sx={sx}>\r\n <Container maxWidth={false} sx={{ display: \"flex\", justifyContent: \"space-between\",alignItems:\"center\" }}>\r\n <Box sx={{ position: \"relative\" }}>\r\n {logo}\r\n {frontCustomComponent}\r\n </Box>\r\n <Box sx={{ position: \"relative\" }}>\r\n {isMenu && (\r\n <DropdownMenu headerMenuArray={state.menuData} setInitialState={setState} initialState={state} />\r\n )}\r\n {centerCustomComponents}\r\n </Box>\r\n <Box\r\n sx={{\r\n margin: { md: \"10px\", lg: \"10px\", xs: \"10px 0\" },\r\n position: \"relative\",\r\n }}\r\n >\r\n <Box className=\"notification\">\r\n {endCustomComponents}\r\n {isAccessAppMenu && (\r\n <Box>\r\n <Box\r\n sx={{\r\n mr: { md: 2, lg: 2, xs: \"0px\" },\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n ml: { md: 1.5, lg: 1.5, xs: \"5px\" },\r\n cursor: \"pointer\",\r\n width: \"auto\",\r\n height: \"auto\",\r\n \"& svg\": {\r\n color: \"#808080\",\r\n width: { md: \"40px\", lg: \"40px\", xs: \"30px\" },\r\n height: { md: \"40px\", lg: \"40px\", xs: \"30px\" },\r\n },\r\n }}\r\n data-toggle-name=\"appMenus\"\r\n onClick={e => handleOpenUtil(e, setState)}\r\n >\r\n <SVG.GridIcon />\r\n </Box>\r\n {state.toggles.appMenus && userData?.appAccess?.length && (\r\n <Box className=\"profile headerMenu\">\r\n <AppMenus menuItems={userData?.appAccess} setInitialState={setState} />\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n {Boolean(interFaceLangList?.length) && (\r\n <Box sx={{ position: \"relative\" }}>\r\n <Typography\r\n data-toggle-name=\"lang\"\r\n onClick={e => handleOpenUtil(e, setState)}\r\n sx={{\r\n display: \"inline-flex\",\r\n gap: \"5px\",\r\n alignItems: \"center\",\r\n color: \"#777777\",\r\n cursor: \"pointer\",\r\n margin: {\r\n md: \"10px\",\r\n lg: \"10px\",\r\n xs: \"10px 3px!important\",\r\n },\r\n }}\r\n >\r\n <img width={40} height={30} alt={\"lang\"} src={selectedInterFaceLang?.flag || IMAGES.Us} />\r\n <Box sx={{ margin: \"2px 0px 0px 2px\" }}>\r\n <SVG.Dawn />\r\n </Box>\r\n </Typography>\r\n {state.toggles.lang && (\r\n <Language\r\n setInitialState={setState}\r\n interFaceLangList={interFaceLangList}\r\n userData={userData}\r\n // updateInterfaceLang={updateInterfaceLang}\r\n setState={setState}\r\n selectedInterFaceLang={selectedInterFaceLang}\r\n />\r\n )}\r\n </Box>\r\n )}\r\n {isNotification && (\r\n <Box sx={{ position: \"relative\" }}>\r\n <Typography\r\n sx={{\r\n cursor: \"pointer\",\r\n margin: {\r\n md: \"10px\",\r\n lg: \"10px\",\r\n xs: \"10px 3px!important\",\r\n },\r\n }}\r\n data-toggle-name=\"notification\"\r\n onClick={e => handleOpenUtil(e, setState)}\r\n >\r\n <Badge badgeContent={userData?.notificationCount} color=\"error\" className=\"notification_icon_error\">\r\n <SVG.Bell />\r\n </Badge>\r\n </Typography>\r\n {state.toggles.notification && (\r\n <Box>\r\n <Notification initialState={state} userData={userData} setInitialState={setState} />\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n {Boolean(userData?.fullName) && (\r\n <UserProfile\r\n userData={userData}\r\n initialState={state}\r\n setInitialState={setState}\r\n extraMenuOptions={extraMenuOptions}\r\n />\r\n )}\r\n {isMobile && isMenu && (\r\n <IconButton\r\n className=\"hamburger-icon-btn\"\r\n onClick={() =>\r\n setState(p => ({ ...p, toggles: { ...p.toggles, dropDownMenu: !p.toggles.dropDownMenu } }))\r\n }\r\n >\r\n <MenuIcon style={{width: \"20px\", height: \"20px\"}} />\r\n </IconButton>\r\n )}\r\n </Box>\r\n </Box>\r\n </Container>\r\n </SubHeaderStyled>\r\n <DangerDialog\r\n handleClick={handleLogout}\r\n open={state.toggles.logout}\r\n setInitialState={setState}\r\n buttonTitle=\"Logout\"\r\n description=\"Are you sure you want to logout\"\r\n title=\"Logout\"\r\n />\r\n </>\r\n )\r\n}\r\n","import SVG from \"@/assets/svg\"\r\nimport { ROUTES } from \"@/constants\"\r\nimport { url } from \"@/utils\"\r\nimport { Box, SxProps } from \"@mui/material\"\r\ninterface IProps {\r\n sx?: SxProps\r\n}\r\n\r\nfunction Logo({ sx }: IProps) {\r\n return (\r\n <Box\r\n sx={{\r\n cursor: \"pointer\",\r\n p: 2,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n ...sx,\r\n }}\r\n onClick={() => url(ROUTES.home)}\r\n >\r\n <SVG.Logo />\r\n </Box>\r\n )\r\n}\r\n\r\nexport default Logo\r\n","import { Header } from \"@/components\"\r\nimport SVG from \"./assets/svg\"\r\nimport { Box, Stack, Typography } from \"@mui/material\"\r\nimport Logo from \"./components/elements/logo\"\r\n\r\nconst App = () => {\r\n return (\r\n <>\r\n <Header\r\n isDesktopCollapsed\r\n isAccessAppMenu\r\n userData={{\r\n userprofile: \"\",\r\n email: \"sanskar.sahu@digimonk.in\",\r\n role: \"Master\",\r\n fullName: \"sanskar sahu\",\r\n appName: \"Tools\",\r\n appAccess: [\r\n {\r\n name: \"Tools\",\r\n icon: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/dashboard/tools.svg\",\r\n link: \"https://tools.6seconds.org\",\r\n },\r\n {\r\n name: \"Cards Home\",\r\n icon: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/dashboard/cardshome.svg\",\r\n link: \"https://cards.6seconds.org\",\r\n },\r\n {\r\n name: \"Settings\",\r\n icon: \"/app-icons/Settings.svg\",\r\n link: \"/settings.svg\",\r\n },\r\n {\r\n name: \"Translations\",\r\n icon: \"/translate.svg\",\r\n link: \"/translations\",\r\n },\r\n ],\r\n notificationCount: 10,\r\n }}\r\n interFaceLangList={[\r\n {\r\n label: \"Chinese\",\r\n value: 4,\r\n flag: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/flags/1736568764.png\",\r\n },\r\n {\r\n label: \"English (US)\",\r\n value: 2,\r\n flag: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/flags/1735277288.png\",\r\n },\r\n {\r\n label: \"Spanish\",\r\n value: 3,\r\n flag: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/flags/1735277337.png\",\r\n },\r\n ]}\r\n updateInterfaceLang={[]}\r\n selectedInterFaceLang={{\r\n label: \"Spanish\",\r\n value: 3,\r\n flag: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/flags/1735277337.png\",\r\n }}\r\n logo={<Logo />}\r\n isNotification\r\n extraMenuOptions={{\r\n components: (\r\n <>\r\n <li>\r\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"} sx={{ cursor: \"pointer\" }}>\r\n <SVG.CheckedPerson />\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n color: \"#1A1919\",\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n m: 0,\r\n }}\r\n >\r\n {\"extraMenuOptions\"}\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </li>\r\n <li>\r\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"} sx={{ cursor: \"pointer\" }}>\r\n <SVG.CheckedPerson />\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n color: \"#1A1919\",\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n m: 0,\r\n }}\r\n >\r\n {\"extraMenuOptions\"}\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </li>\r\n <li>\r\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"} sx={{ cursor: \"pointer\" }}>\r\n <SVG.CheckedPerson />\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n color: \"#1A1919\",\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n m: 0,\r\n }}\r\n >\r\n {\"extraMenuOptions\"}\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </li>\r\n </>\r\n ),\r\n isViewProfile: true,\r\n isChangePassword: true,\r\n isEditProfile: true,\r\n }}\r\n isMenu\r\n t={() => \"\"}\r\n />\r\n </>\r\n )\r\n}\r\n\r\nexport { Header } from \"./components\"\r\n\r\nexport default App\r\n"],"names":["React","UserEdit","Logout","CheckedPerson","Credits","Bell","Dawn","Folder","Logo","Printer","Stock","Scanner","GridIcon","styled","AppBar","url","createElement","format","locale","to","from","now","sign","token","ordinal","i","diff","localeData","hours","minutes","tokens","meridiem","years","months","weeks","days","seconds","milliseconds","offset","thresholds","moment","useState","jsxs","Fragment","Box","jsx","Avatar","ClickAwayListener","Stack","Typography","Link","lang","useMediaQuery","index","items","Dialog","Button","__assign","this","urlcat","d","b","InfiniteScroll","Component","useEffect","MenuItem","Grid","Container","Badge","IconButton"],"mappings":"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","x_google_ignoreList":[14,20,28,32]}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/assets/svg/bell.svg?react","../src/assets/svg/credis.svg?react","../src/assets/svg/down.svg?react","../src/assets/svg/folder.svg?react","../src/assets/svg/logo.svg?react","../src/assets/svg/logout.svg?react","../src/assets/svg/person-checked.svg?react","../src/assets/svg/printer.svg?react","../src/assets/svg/scanner.svg?react","../src/assets/svg/stoke.svg?react","../src/assets/svg/user-edit.svg?react","../src/assets/svg/gridIcon.svg?react","../src/assets/svg/index.ts","../src/components/header/subheaderStyled.ts","../node_modules/@t3-oss/env-core/dist/src-Cq4nGjdj.js","../src/constants/env.ts","../src/constants/common.ts","../src/constants/routes.ts","../src/constants/dates.ts","../src/utils/common.ts","../node_modules/moment/dist/moment.js","../src/utils/date.ts","../src/components/header/userProfile.tsx","../src/components/header/language.tsx","../src/components/header/dropDownMenu.tsx","../src/assets/images/us.png","../src/assets/images/index.ts","../src/components/dialogs/dangerDialog.tsx","../node_modules/urlcat/dist/index.js","../src/api/index.ts","../src/api/transforms/user.ts","../src/api/user.ts","../node_modules/react-infinite-scroll-component/dist/index.es.js","../src/components/header/notification.tsx","../src/components/header/appMenus.tsx","../src/components/header/index.tsx","../src/components/elements/logo.tsx","../src/index.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgBell = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 24, height: 24, fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20.7013 16.4944C20.145 15.5366 19.4816 13.7192 19.4816 10.5V9.83475C19.4816 5.68294 16.1509 2.28056 12.057 2.25019L11.9998 2.25C10.0132 2.25258 8.10904 3.0442 6.70613 4.45072C5.30322 5.85723 4.51649 7.76344 4.519 9.75V10.5C4.519 13.719 3.85535 15.5363 3.29875 16.494C3.16581 16.7218 3.09527 16.9805 3.09425 17.2443C3.09322 17.508 3.16175 17.7673 3.29291 17.9961C3.42408 18.2249 3.61325 18.415 3.84135 18.5474C4.06944 18.6798 4.32841 18.7496 4.59213 18.75H8.24997C8.24997 19.7446 8.64506 20.6984 9.34832 21.4016C10.0516 22.1049 11.0054 22.5 12 22.5C12.9945 22.5 13.9484 22.1049 14.6516 21.4016C15.3549 20.6984 15.75 19.7446 15.75 18.75H19.4078C19.6715 18.7497 19.9304 18.6798 20.1585 18.5475C20.3866 18.4151 20.5757 18.225 20.7069 17.9963C20.8381 17.7675 20.9066 17.5083 20.9056 17.2446C20.9047 16.9809 20.8342 16.7221 20.7013 16.4944ZM12 21C11.4034 20.9993 10.8315 20.7621 10.4097 20.3403C9.98791 19.9184 9.75064 19.3465 9.74997 18.75H14.25C14.2493 19.3465 14.012 19.9184 13.5902 20.3403C13.1684 20.7621 12.5965 20.9993 12 21ZM4.5955 17.2478C5.24491 16.1306 6.019 14.0531 6.019 10.5V9.75C6.01651 8.1612 6.64527 6.63649 7.76695 5.51127C8.88863 4.38606 10.4114 3.75251 12.0002 3.75L12.0458 3.75019C15.3188 3.77447 17.9817 6.504 17.9817 9.83475V10.5C17.9817 14.0531 18.7554 16.1306 19.4078 17.25L4.5955 17.2478Z\", fill: \"#808080\" }));\nexport default SvgBell;\n","import * as React from \"react\";\nconst SvgCredis = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 38, height: 38, viewBox: \"0 0 38 38\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 38, height: 38, rx: 19, fill: \"#F8F8F8\" }), /* @__PURE__ */ React.createElement(\"rect\", { x: 11, y: 11, width: 16, height: 16, rx: 2, fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.5 16.6V16.25C22.5 14.6812 20.1375 13.5 17 13.5C13.8625 13.5 11.5 14.6812 11.5 16.25V18.75C11.5 20.0562 13.1375 21.0938 15.5 21.4062V21.75C15.5 23.3188 17.8625 24.5 21 24.5C24.1375 24.5 26.5 23.3188 26.5 21.75V19.25C26.5 17.9562 24.9125 16.9187 22.5 16.6ZM25.5 19.25C25.5 20.075 23.575 21 21 21C20.7687 21 20.5375 20.9938 20.3062 20.975C21.6562 20.4875 22.5 19.6875 22.5 18.75V17.6062C24.3687 17.8875 25.5 18.6438 25.5 19.25ZM15.5 20.3875V18.9062C15.9974 18.9702 16.4985 19.0015 17 19C17.5015 19.0015 18.0026 18.9702 18.5 18.9062V20.3875C18.0038 20.4648 17.5022 20.5024 17 20.5C16.4978 20.5024 15.9962 20.4648 15.5 20.3875V20.3875ZM21.5 17.8688V18.75C21.5 19.275 20.725 19.8375 19.5 20.1812V18.7188C20.3062 18.525 20.9875 18.2313 21.5 17.8688V17.8688ZM17 14.5C19.575 14.5 21.5 15.425 21.5 16.25C21.5 17.075 19.575 18 17 18C14.425 18 12.5 17.075 12.5 16.25C12.5 15.425 14.425 14.5 17 14.5ZM12.5 18.75V17.8688C13.0125 18.2313 13.6938 18.525 14.5 18.7188V20.1812C13.275 19.8375 12.5 19.275 12.5 18.75ZM16.5 21.75V21.4875L17 21.5C17.2458 21.5 17.4833 21.4937 17.7125 21.4812C17.9625 21.5687 18.225 21.6437 18.5 21.7125V23.1812C17.275 22.8375 16.5 22.275 16.5 21.75V21.75ZM19.5 23.3875V21.9C19.9974 21.9652 20.4984 21.9987 21 22C21.5015 22.0015 22.0026 21.9702 22.5 21.9062V23.3875C21.5056 23.5375 20.4944 23.5375 19.5 23.3875V23.3875ZM23.5 23.1812V21.7188C24.3062 21.525 24.9875 21.2312 25.5 20.8687V21.75C25.5 22.275 24.725 22.8375 23.5 23.1812V23.1812Z\", fill: \"#808080\" }));\nexport default SvgCredis;\n","import * as React from \"react\";\nconst SvgDown = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 12, height: 12, viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 12, height: 12, fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M10.0152 4.76517L6.26519 8.51517C6.23036 8.55 6.18902 8.57762 6.14353 8.59647C6.09803 8.61531 6.04926 8.62501 6.00001 8.62501C5.95077 8.62501 5.902 8.61531 5.8565 8.59647C5.81101 8.57762 5.76966 8.55 5.73484 8.51517L1.98484 4.76517C1.93239 4.71273 1.89668 4.64591 1.88221 4.57316C1.86774 4.50042 1.87516 4.42502 1.90355 4.35649C1.93193 4.28797 1.98 4.2294 2.04167 4.18819C2.10334 4.14699 2.17584 4.125 2.25001 4.125H9.75001C9.82418 4.125 9.89669 4.14699 9.95836 4.18819C10.02 4.2294 10.0681 4.28797 10.0965 4.35649C10.1249 4.42502 10.1323 4.50042 10.1178 4.57316C10.1034 4.64591 10.0676 4.71273 10.0152 4.76517Z\", fill: \"#808080\" }));\nexport default SvgDown;\n","import * as React from \"react\";\nconst SvgFolder = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 42, height: 42, viewBox: \"0 0 42 42\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 42, height: 42, rx: 21, fill: \"#F8F8F8\" }), /* @__PURE__ */ React.createElement(\"rect\", { width: 20, height: 20, transform: \"translate(11 11)\", fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M13.7929 11.7852C15.545 11.6618 16.8495 11.6399 19.0998 11.7499C19.7999 11.7841 20.408 12.2349 20.6497 12.8878L21.1347 14.1972C21.1702 14.2931 21.2607 14.3574 21.3621 14.3596C21.7714 14.3685 22.1508 14.3761 22.5079 14.3833C24.6092 14.4254 25.9364 14.452 28.0202 14.6489C29.3304 14.7728 30.3586 15.826 30.4495 17.1395C30.7007 20.7703 30.6293 23.6734 30.2909 26.5069C30.0858 28.2245 28.7087 29.5816 26.9915 29.7685C22.9929 30.2039 19.0488 30.2152 15.047 29.7795C13.3387 29.5935 11.8632 28.3153 11.6473 26.5069C11.1361 22.2262 11.3006 17.9548 11.7867 13.7237C11.9051 12.6933 12.7312 11.8599 13.7929 11.7852ZM19.0266 13.2481C16.8316 13.1408 15.5869 13.1626 13.8983 13.2815C13.5839 13.3036 13.316 13.5548 13.2769 13.8949C12.7991 18.0535 12.6438 22.2009 13.1367 26.3291C13.2615 27.3742 14.1225 28.1699 15.2094 28.2883L15.1304 29.0142L15.2094 28.2883C19.1004 28.712 22.9356 28.7013 26.8292 28.2774L26.8292 28.2773C27.8548 28.1657 28.6795 27.3509 28.8015 26.3291C29.1273 23.6007 29.1987 20.7927 28.953 17.243C28.9129 16.6627 28.4588 16.1971 27.8791 16.1423C25.8536 15.9508 24.5821 15.9253 22.4835 15.8831C22.1254 15.876 21.7433 15.8683 21.3293 15.8592C20.6117 15.8435 19.977 15.3905 19.7281 14.7182L19.2431 13.4087C19.2083 13.3148 19.1219 13.2528 19.0266 13.2481Z\", fill: \"#777777\" }));\nexport default SvgFolder;\n","import * as React from \"react\";\nconst SvgLogo = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 151, height: 40, viewBox: \"0 0 151 40\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 150.222, height: 40, fill: \"url(#pattern0)\" }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"pattern\", { id: \"pattern0\", patternContentUnits: \"objectBoundingBox\", width: 1, height: 1 }, /* @__PURE__ */ React.createElement(\"use\", { xlinkHref: \"#image0_357_8117\", transform: \"matrix(0.000961271 0 0 0.00361011 -0.00226431 0)\" })), /* @__PURE__ */ React.createElement(\"image\", { id: \"image0_357_8117\", width: 1045, height: 277, xlinkHref: \"data:image/png;base64,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\" })));\nexport default SvgLogo;\n","import * as React from \"react\";\nconst SvgLogout = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M7.41663 6.3002C7.67496 3.3002 9.21663 2.0752 12.5916 2.0752H12.7C16.425 2.0752 17.9166 3.56686 17.9166 7.29186V12.7252C17.9166 16.4502 16.425 17.9419 12.7 17.9419H12.5916C9.24163 17.9419 7.69996 16.7335 7.42496 13.7835\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12.5001 10H3.01672\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4.87504 7.2085L2.08337 10.0002L4.87504 12.7918\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgLogout;\n","import * as React from \"react\";\nconst SvgPersonChecked = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 23, height: 20, viewBox: \"0 0 23 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M9.58339 10.0008C11.7887 10.0008 13.5764 8.21301 13.5764 6.0077C13.5764 3.8024 11.7887 2.01465 9.58339 2.01465C7.37808 2.01465 5.59033 3.8024 5.59033 6.0077C5.59033 8.21301 7.37808 10.0008 9.58339 10.0008Z\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.4434 17.9868C16.4434 14.8961 13.3687 12.3965 9.58333 12.3965C5.79792 12.3965 2.72327 14.8961 2.72327 17.9868\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.0973 7.12517C21.9379 7.12122 21.7684 7.18696 21.6358 7.31971L18.6197 10.3386L17.6555 9.37337C17.4204 9.13789 17.0671 9.11258 16.8631 9.31637L16.4291 9.75076C16.2255 9.95463 16.251 10.3088 16.486 10.5442L18.2524 12.3119C18.4511 12.5114 18.8033 12.4965 18.9876 12.3119L22.8053 8.49013C23.0405 8.25473 23.0663 7.90097 22.8623 7.69718L22.4284 7.26237C22.339 7.17342 22.2213 7.12819 22.0973 7.12517Z\", fill: \"#BEBEBE\" }));\nexport default SvgPersonChecked;\n","import * as React from \"react\";\nconst SvgPrinter = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 42, height: 42, viewBox: \"0 0 42 42\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 42, height: 42, rx: 21, fill: \"#F8F8F8\" }), /* @__PURE__ */ React.createElement(\"rect\", { width: 20, height: 20, transform: \"translate(11 11)\", fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20.0295 16.5616C20.0295 16.1474 20.3653 15.8116 20.7795 15.8116H23.4189C23.8332 15.8116 24.1689 16.1474 24.1689 16.5616C24.1689 16.9759 23.8332 17.3116 23.4189 17.3116H20.7795C20.3653 17.3116 20.0295 16.9759 20.0295 16.5616Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20.7795 19.5023C20.3653 19.5023 20.0295 19.8381 20.0295 20.2523C20.0295 20.6665 20.3653 21.0023 20.7795 21.0023H23.4189C23.8332 21.0023 24.1689 20.6665 24.1689 20.2523C24.1689 19.8381 23.8332 19.5023 23.4189 19.5023H20.7795Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M18.7797 11.7148C18.7027 11.7148 18.6261 11.7267 18.5527 11.75C17.2763 12.1554 16.5369 13.1718 16.1354 14.3252C15.7382 15.4664 15.6365 16.8262 15.6701 18.1283C15.7199 20.0599 16.0725 21.9967 16.3398 23.1848H12.7293C12.3849 23.1848 12.0847 23.4194 12.0015 23.7537C11.7785 24.6501 11.5014 26.1981 11.8295 27.5639C11.9976 28.264 12.336 28.9627 12.9655 29.483C13.5996 30.007 14.4499 30.2845 15.5162 30.2845L25.2731 30.2845C25.3138 30.2845 25.3538 30.2813 25.3927 30.2751C26.2481 30.2206 26.9568 29.9381 27.4964 29.4156C28.0846 28.8459 28.3856 28.0734 28.5346 27.2617C28.8268 25.6698 28.5872 23.5826 28.3508 21.6008L28.3268 21.4004C28.0903 19.4204 27.8629 17.5177 28.0209 15.9849C28.1015 15.2017 28.2783 14.5792 28.5609 14.1187C28.8311 13.6783 29.2141 13.3575 29.7898 13.1824C30.1453 13.0742 30.368 12.722 30.3133 12.3545C30.2586 11.9869 29.943 11.7148 29.5714 11.7148H18.7797ZM25.1883 28.7832C25.8236 28.7643 26.2035 28.5795 26.4529 28.338C26.7321 28.0676 26.9409 27.6359 27.0592 26.9909C27.3018 25.6697 27.1066 23.8342 26.8613 21.7785L26.8276 21.4961C26.5991 19.5884 26.3532 17.5355 26.5287 15.8312C26.6218 14.9279 26.8378 14.0587 27.2824 13.3342C27.3071 13.2939 27.3325 13.2541 27.3586 13.2148H18.9055C18.2846 13.4499 17.8435 13.981 17.5521 14.8183C17.2408 15.7126 17.138 16.865 17.1696 18.0896C17.2213 20.0943 17.627 22.1313 17.8796 23.1848H22.4782C22.726 23.1848 22.9578 23.3072 23.0976 23.5118C23.2373 23.7164 23.267 23.9769 23.1768 24.2077C22.7382 25.3304 22.7775 26.5185 23.1754 27.3929C23.55 28.216 24.2274 28.7534 25.1883 28.7832ZM21.8101 28.0142C21.9347 28.2879 22.0856 28.5466 22.2618 28.7845H15.5162C14.7142 28.7845 14.2277 28.5801 13.9211 28.3267C13.6099 28.0696 13.4037 27.6954 13.288 27.2136C13.0976 26.4209 13.1833 25.4681 13.3323 24.6848H21.4797C21.2472 25.8445 21.3613 27.028 21.8101 28.0142Z\", fill: \"#777777\" }));\nexport default SvgPrinter;\n","import * as React from \"react\";\nconst SvgScanner = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 42, height: 42, viewBox: \"0 0 42 42\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 42, height: 42, rx: 21, fill: \"#F8F8F8\" }), /* @__PURE__ */ React.createElement(\"rect\", { width: 20, height: 20, transform: \"translate(11 11)\", fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M17.4503 12.2664C17.406 11.8546 17.0362 11.5567 16.6243 11.6011C16.1263 11.6547 15.629 11.7124 15.1398 11.7691C14.8688 11.8005 14.6003 11.8316 14.3356 11.8616C13.029 12.0097 11.9904 13.046 11.8456 14.3556C11.8211 14.5775 11.7959 14.8015 11.7706 15.0272C11.7112 15.5561 11.6507 16.0946 11.5948 16.6358C11.5523 17.0478 11.8518 17.4163 12.2639 17.4588C12.6759 17.5014 13.0444 17.2018 13.0869 16.7898C13.1421 16.2555 13.2013 15.7281 13.2604 15.2021C13.2859 14.9748 13.3114 14.7477 13.3365 14.5205C13.404 13.9099 13.8914 13.4215 14.5044 13.3521C14.7775 13.3211 15.0497 13.2896 15.3222 13.258C15.8066 13.2018 16.292 13.1455 16.785 13.0924C17.1968 13.0481 17.4947 12.6782 17.4503 12.2664Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M24.5498 12.2664C24.5942 11.8546 24.964 11.5567 25.3758 11.6011C25.8739 11.6547 26.3712 11.7124 26.8603 11.7691C27.1312 11.8005 27.4 11.8316 27.6646 11.8616C28.9711 12.0097 30.0098 13.046 30.1546 14.3556C30.1791 14.5775 30.2043 14.8015 30.2296 15.0272C30.289 15.5562 30.3494 16.0945 30.4053 16.6358C30.4478 17.0478 30.1483 17.4163 29.7363 17.4588C29.3243 17.5014 28.9558 17.2018 28.9132 16.7898C28.8581 16.2555 28.7988 15.728 28.7398 15.202C28.7143 14.975 28.6887 14.7474 28.6637 14.5205C28.5962 13.9099 28.1087 13.4215 27.4957 13.3521C27.2227 13.3211 26.9505 13.2896 26.678 13.258C26.1935 13.2018 25.7081 13.1455 25.2152 13.0924C24.8033 13.0481 24.5054 12.6782 24.5498 12.2664Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M21.0002 14.1232C18.9137 14.1232 17.2223 15.8147 17.2223 17.9012C17.2223 19.3589 18.0479 20.6238 19.2571 21.2538C18.549 21.475 17.8843 21.8307 17.3016 22.307C16.3226 23.1072 15.6313 24.2016 15.3279 25.4245C15.2336 25.8043 15.4473 26.1927 15.8185 26.3165C16.1234 26.4183 16.442 26.4893 16.7703 26.5259C18.1259 26.677 19.5448 26.8101 21.0002 26.8101C22.4555 26.8101 23.8744 26.677 25.23 26.5259C25.5583 26.4893 25.8768 26.4183 26.1817 26.3166C26.5529 26.1928 26.7666 25.8043 26.6723 25.4245C26.3689 24.2017 25.6776 23.1072 24.6987 22.307C24.1159 21.8307 23.4513 21.4751 22.7433 21.2538C23.9525 20.6239 24.7782 19.3589 24.7782 17.9012C24.7782 15.8147 23.0867 14.1232 21.0002 14.1232ZM18.7223 17.9012C18.7223 16.6431 19.7422 15.6232 21.0002 15.6232C22.2583 15.6232 23.2782 16.6431 23.2782 17.9012C23.2782 19.1592 22.2583 20.1791 21.0002 20.1791C19.7422 20.1791 18.7223 19.1592 18.7223 17.9012ZM18.2508 23.4684C19.0267 22.8342 19.998 22.4878 21.0001 22.4878C22.0022 22.4878 22.9735 22.8342 23.7494 23.4684C24.2731 23.8965 24.6861 24.4379 24.9605 25.0466C23.6518 25.1912 22.3344 25.3101 21.0002 25.3101C19.6659 25.3101 18.3485 25.1911 17.0397 25.0466C17.3141 24.4379 17.7271 23.8965 18.2508 23.4684Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.3758 30.3992C24.964 30.4436 24.5942 30.1457 24.5498 29.7338C24.5054 29.322 24.8033 28.9522 25.2152 28.9078C25.708 28.8547 26.1933 28.7985 26.6776 28.7423C26.95 28.7107 27.2228 28.6791 27.4957 28.6482C28.1087 28.5787 28.5962 28.0903 28.6637 27.4798C28.6888 27.2526 28.7143 27.0255 28.7398 26.7982C28.7988 26.2722 28.8581 25.7448 28.9132 25.2104C28.9558 24.7984 29.3243 24.4989 29.7363 24.5414C30.1483 24.584 30.4478 24.9525 30.4053 25.3645C30.3494 25.9057 30.289 26.444 30.2296 26.973C30.2043 27.1988 30.1791 27.4228 30.1546 27.6446C30.0098 28.9542 28.9711 29.9906 27.6646 30.1386C27.4008 30.1685 27.1332 30.1995 26.8632 30.2308L26.8603 30.2312C26.3712 30.2879 25.8739 30.3455 25.3758 30.3992Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.6243 30.3992C17.0362 30.4436 17.406 30.1457 17.4503 29.7338C17.4947 29.322 17.1968 28.9522 16.785 28.9078C16.2922 28.8547 15.8069 28.7985 15.3226 28.7423C15.0502 28.7107 14.7774 28.6791 14.5044 28.6482C13.8914 28.5787 13.404 28.0903 13.3365 27.4798C13.3114 27.2526 13.2859 27.0255 13.2604 26.7982C13.2013 26.2722 13.1421 25.7448 13.0869 25.2104C13.0444 24.7984 12.6759 24.4989 12.2639 24.5414C11.8518 24.584 11.5523 24.9525 11.5948 25.3645C11.6507 25.9057 11.7111 26.4439 11.7705 26.9728C11.7959 27.1985 11.8211 27.4228 11.8456 27.6446C11.9904 28.9542 13.029 29.9906 14.3356 30.1386C14.5994 30.1685 14.8671 30.1996 15.1372 30.2309L15.1398 30.2312C15.629 30.2879 16.1263 30.3455 16.6243 30.3992Z\", fill: \"#777777\" }));\nexport default SvgScanner;\n","import * as React from \"react\";\nconst SvgStoke = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 42, height: 42, viewBox: \"0 0 42 42\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { width: 42, height: 42, rx: 21, fill: \"#F8F8F8\" }), /* @__PURE__ */ React.createElement(\"rect\", { width: 20, height: 20, transform: \"translate(11 11)\", fill: \"white\", fillOpacity: 0.01 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20.2614 17.0441C20.1684 16.7502 19.9051 16.5431 19.5975 16.522C19.29 16.501 19.0008 16.6703 18.8687 16.9488L17.4273 19.9867H16.0658C15.6516 19.9867 15.3158 20.3225 15.3158 20.7367C15.3158 21.1509 15.6516 21.4867 16.0658 21.4867H17.9016C18.1913 21.4867 18.455 21.3199 18.5792 21.0582L19.4063 19.3149L21.1902 24.9556C21.2807 25.2418 21.5332 25.4465 21.8319 25.4758C22.1307 25.5052 22.4181 25.3536 22.5627 25.0905L24.542 21.4867H25.934C26.3482 21.4867 26.684 21.1509 26.684 20.7367C26.684 20.3225 26.3482 19.9867 25.934 19.9867H24.0982C23.8245 19.9867 23.5726 20.1358 23.4408 20.3756L22.0918 22.8319L20.2614 17.0441Z\", fill: \"#777777\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M20.9999 11.3213C18.9769 11.3213 17.0085 11.5495 15.1542 11.7645L15.1522 11.7647C13.3678 11.9716 11.9439 13.3929 11.7433 15.1814C11.5359 17.03 11.3213 18.9876 11.3213 20.9999C11.3213 23.0121 11.5359 24.9697 11.7433 26.8184C11.9439 28.6068 13.3678 30.0281 15.1522 30.235L15.1542 30.2352C17.0085 30.4502 18.9769 30.6784 20.9999 30.6784C23.0228 30.6784 24.9911 30.4502 26.8454 30.2352L26.8475 30.235C28.632 30.0281 30.0558 28.6068 30.2565 26.8184C30.4639 24.9697 30.6784 23.0121 30.6784 20.9999C30.6784 18.9876 30.4639 17.03 30.2565 15.1814C30.0558 13.3929 28.632 11.9716 26.8475 11.7647L26.8456 11.7645C24.9912 11.5495 23.0228 11.3213 20.9999 11.3213ZM15.3249 13.2547C17.1919 13.0383 19.0765 12.8213 20.9999 12.8213C22.9232 12.8213 24.8078 13.0383 26.6748 13.2547C27.7688 13.3816 28.6434 14.2573 28.7658 15.3486C28.9741 17.205 29.1784 19.0833 29.1784 20.9999C29.1784 22.9164 28.9741 24.7947 28.7658 26.6511C28.6434 27.7424 27.7688 28.6181 26.6748 28.745C24.8078 28.9614 22.9232 29.1784 20.9999 29.1784C19.0765 29.1784 17.1919 28.9614 15.3249 28.745C14.2309 28.6181 13.3563 27.7424 13.2339 26.6511C13.0256 24.7947 12.8213 22.9164 12.8213 20.9999C12.8213 19.0833 13.0256 17.205 13.2339 15.3486C13.3563 14.2573 14.2309 13.3816 15.3249 13.2547Z\", fill: \"#777777\" }));\nexport default SvgStoke;\n","import * as React from \"react\";\nconst SvgUserEdit = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M10 9.99984C12.3012 9.99984 14.1667 8.13436 14.1667 5.83317C14.1667 3.53198 12.3012 1.6665 10 1.6665C7.69885 1.6665 5.83337 3.53198 5.83337 5.83317C5.83337 8.13436 7.69885 9.99984 10 9.99984Z\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.0084 13.1167L13.0584 16.0667C12.9417 16.1834 12.8334 16.4 12.8084 16.5584L12.6501 17.6833C12.5917 18.0917 12.8751 18.375 13.2834 18.3167L14.4084 18.1583C14.5667 18.1333 14.7917 18.025 14.9001 17.9084L17.8501 14.9584C18.3584 14.45 18.6001 13.8583 17.8501 13.1083C17.1084 12.3667 16.5168 12.6083 16.0084 13.1167Z\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeMiterlimit: 10, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M15.5834 13.5415C15.8334 14.4415 16.5333 15.1415 17.4333 15.3915\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeMiterlimit: 10, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M2.84155 18.3333C2.84155 15.1083 6.04991 12.5 9.99991 12.5C10.8666 12.5 11.6999 12.625 12.4749 12.8583\", stroke: \"#BEBEBE\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgUserEdit;\n","import * as React from \"react\";\nconst SvgGridIcon = (props) => /* @__PURE__ */ React.createElement(\"svg\", { stroke: \"currentColor\", fill: \"none\", strokeWidth: 0, viewBox: \"0 0 24 24\", height: \"40px\", width: \"40px\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M8 6C8 7.10457 7.10457 8 6 8C4.89543 8 4 7.10457 4 6C4 4.89543 4.89543 4 6 4C7.10457 4 8 4.89543 8 6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8 12C8 13.1046 7.10457 14 6 14C4.89543 14 4 13.1046 4 12C4 10.8954 4.89543 10 6 10C7.10457 10 8 10.8954 8 12Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M6 20C7.10457 20 8 19.1046 8 18C8 16.8954 7.10457 16 6 16C4.89543 16 4 16.8954 4 18C4 19.1046 4.89543 20 6 20Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14 6C14 7.10457 13.1046 8 12 8C10.8954 8 10 7.10457 10 6C10 4.89543 10.8954 4 12 4C13.1046 4 14 4.89543 14 6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 14C13.1046 14 14 13.1046 14 12C14 10.8954 13.1046 10 12 10C10.8954 10 10 10.8954 10 12C10 13.1046 10.8954 14 12 14Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14 18C14 19.1046 13.1046 20 12 20C10.8954 20 10 19.1046 10 18C10 16.8954 10.8954 16 12 16C13.1046 16 14 16.8954 14 18Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 8C19.1046 8 20 7.10457 20 6C20 4.89543 19.1046 4 18 4C16.8954 4 16 4.89543 16 6C16 7.10457 16.8954 8 18 8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20 12C20 13.1046 19.1046 14 18 14C16.8954 14 16 13.1046 16 12C16 10.8954 16.8954 10 18 10C19.1046 10 20 10.8954 20 12Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 20C19.1046 20 20 19.1046 20 18C20 16.8954 19.1046 16 18 16C16.8954 16 16 16.8954 16 18C16 19.1046 16.8954 20 18 20Z\", fill: \"currentColor\" }));\nexport default SvgGridIcon;\n","import Alert from \"./alert.svg?react\"\nimport ArrowLeft from \"./arrow-left.svg?react\"\nimport ArrowRight from \"./arrow-right.svg?react\"\nimport ArrowSquareOut from \"./arrow-square-out.svg?react\"\nimport Arrow from \"./arrow.svg?react\"\nimport Assessment from \"./assessment.svg?react\"\nimport BackArrow from \"./backarrow.svg?react\"\nimport Bell2 from \"./bell2.svg?react\"\nimport Bell from \"./bell.svg?react\"\nimport Book from \"./book.svg?react\"\nimport Brain from \"./brain.svg?react\"\nimport CaretDown from \"./caret-down.svg?react\"\nimport ChartBar from \"./chart-bar.svg?react\"\nimport Chart from \"./chart.svg?react\"\nimport CheckCircle from \"./check-circle.svg?react\"\nimport CheckedIcon from \"./checkbox-seleted.svg?react\"\nimport Checked from \"./checkbox.svg?react\"\nimport China from \"./china.svg?react\"\nimport Circle from \"./circle.svg?react\"\nimport CloseSidebarIcon from \"./closeSidebar.svg?react\"\nimport CloudArrow from \"./cloud-arrow-down.svg?react\"\nimport Coins from \"./coins.svg?react\"\nimport Config from \"./config.svg?react\"\nimport Credits from \"./credis.svg?react\"\nimport Bigcross from \"./crossBig.svg?react\"\nimport Dairy from \"./dairy.svg?react\"\nimport Delete from \"./delete.svg?react\"\nimport Document from \"./document.svg?react\"\nimport Dots from \"./dots.svg?react\"\nimport Dawn from \"./down.svg?react\"\nimport Download from \"./download.svg?react\"\nimport DownloadFileIcon from \"./downloadFile.svg?react\"\nimport Drag from \"./drag.svg?react\"\nimport Earth from \"./earth.svg?react\"\nimport Edit from \"./edit.svg?react\"\nimport Email from \"./email.svg?react\"\nimport Envelope from \"./envelope.svg?react\"\nimport Eye from \"./eye.svg?react\"\nimport Facebook from \"./facebook.svg?react\"\nimport FilePlus from \"./file-plus.svg?react\"\nimport File from \"./file-text.svg?react\"\nimport FileFolder from \"./filefolder.svg?react\"\nimport Flag1 from \"./flag1.svg?react\"\nimport Flag2 from \"./flag2.svg?react\"\nimport Flag3 from \"./flag3.svg?react\"\nimport Flag from \"./flag.svg?react\"\nimport Folder from \"./folder.svg?react\"\nimport France from \"./france.svg?react\"\nimport Globe from \"./globe.svg?react\"\nimport GreenFlag from \"./greenFlag.svg?react\"\nimport GreenCircle from \"./greencircle.svg?react\"\nimport GreenCircles from \"./greencircles.svg?react\"\nimport GreyCircle from \"./greycircle.svg?react\"\nimport HeaderUsa from \"./header-usa.svg?react\"\nimport In from \"./in.svg?react\"\nimport Inbox from \"./inbox.svg?react\"\nimport India from \"./india.svg?react\"\nimport Info from \"./info.svg?react\"\nimport Instagram from \"./insta.svg?react\"\nimport Language from \"./language.svg?react\"\nimport LeftArrow from \"./left-arrow.svg?react\"\nimport Lifebuoy from \"./lifebuoy.svg?react\"\nimport Link from \"./link.svg?react\"\nimport Linkedin from \"./linkedin.svg?react\"\nimport Linking from \"./linking.svg?react\"\nimport Logo from \"./logo.svg?react\"\nimport Logout from \"./logout.svg?react\"\nimport Massage from \"./massage.svg?react\"\nimport Msg from \"./msg.svg?react\"\nimport Notes from \"./notes.svg?react\"\nimport OpenSidebarIcon from \"./openSidebar.svg?react\"\nimport Pdf from \"./pdf.svg?react\"\nimport Pencil from \"./pencil.svg?react\"\nimport CheckedPerson from \"./person-checked.svg?react\"\nimport Pin from \"./pin.svg?react\"\nimport Plus from \"./plus.svg?react\"\nimport Print from \"./print.svg?react\"\nimport Printer from \"./printer.svg?react\"\nimport Profile from \"./profile.svg?react\"\nimport Question from \"./question.svg?react\"\nimport Questions from \"./questions.svg?react\"\nimport RedCircle from \"./redcircle.svg?react\"\nimport Report from \"./report.svg?react\"\nimport ReportDocument from \"./reportdocument.svg?react\"\nimport Sample from \"./sample.svg?react\"\nimport Scanner from \"./scanner.svg?react\"\nimport Search from \"./search.svg?react\"\nimport Send from \"./send.svg?react\"\nimport Spain from \"./spain.svg?react\"\nimport Star from \"./star.svg?react\"\nimport Step2 from \"./step2.svg?react\"\nimport Step3 from \"./step3.svg?react\"\nimport Step4 from \"./step4.svg?react\"\nimport Step5 from \"./step5.svg?react\"\nimport Step from \"./step.svg?react\"\nimport Stock from \"./stoke.svg?react\"\nimport Structure from \"./structure.svg?react\"\nimport Success from \"./success.svg?react\"\nimport Target from \"./target.svg?react\"\nimport NewTwitterIcons from \"./twitter-new.svg?react\"\nimport Twitter from \"./twitter.svg?react\"\nimport UploadSimple from \"./upload-simple.svg?react\"\nimport Upload from \"./upload.svg?react\"\nimport USA from \"./usa.svg?react\"\nimport UserEdit from \"./user-edit.svg?react\"\nimport Users from \"./user.svg?react\"\nimport User from \"./users.svg?react\"\nimport Warning from \"./warning.svg?react\"\nimport Watch from \"./watch.svg?react\"\nimport XCircle from \"./x-circle.svg?react\"\nimport X from \"./x.svg?react\"\nimport Youtube from \"./youtube.svg?react\"\nimport CertIcon from \"./certIcon.svg?react\"\nimport CardIcon from \"./cardIcon.svg?react\"\nimport EventIcon from \"./eventsIcon.svg?react\"\nimport ToolsIcon from \"./toolsIcon.svg?react\"\nimport ManagementIcon from \"./management.svg?react\"\nimport KeyIcon from \"./key.svg?react\"\n\nimport GridIcon from \"./gridIcon.svg?react\"\nimport DashboardIcon from \"./dashboardIcon.svg?react\"\nimport HomeIcon from \"./homeIcon.svg?react\"\nimport SearchIcon from \"./searchIcon.svg?react\"\nimport RightArrow from \"./rightArrow.svg?react\"\n\nconst SVG = {\n NewTwitterIcons,\n UserEdit,\n Logout,\n CheckedPerson,\n Bell2,\n Assessment,\n ArrowRight,\n Arrow,\n ArrowLeft,\n ArrowSquareOut,\n Alert,\n Credits,\n BackArrow,\n Bell,\n Brain,\n Book,\n Chart,\n CaretDown,\n Circle,\n ChartBar,\n Coins,\n China,\n CheckCircle,\n CloudArrow,\n Config,\n Document,\n Dots,\n Delete,\n Dawn,\n Download,\n Dairy,\n Eye,\n Email,\n Earth,\n Envelope,\n Edit,\n File,\n Facebook,\n Flag,\n Flag1,\n Flag2,\n Flag3,\n France,\n FilePlus,\n Folder,\n FileFolder,\n HeaderUsa,\n Globe,\n GreyCircle,\n GreenCircle,\n GreenCircles,\n GreenFlag,\n Instagram,\n Info,\n India,\n In,\n Inbox,\n Logo,\n Linkedin,\n Link,\n LeftArrow,\n Lifebuoy,\n Linking,\n Massage,\n Msg,\n Notes,\n Pencil,\n Print,\n Printer,\n Profile,\n Plus,\n Pin,\n Pdf,\n Question,\n Questions,\n RedCircle,\n Report,\n ReportDocument,\n Send,\n Search,\n Spain,\n Star,\n Stock,\n Scanner,\n Sample,\n Success,\n Structure,\n Step,\n Step2,\n Step3,\n Step4,\n Step5,\n Twitter,\n Target,\n USA,\n Users,\n User,\n Upload,\n UploadSimple,\n Watch,\n Warning,\n XCircle,\n X,\n Youtube,\n Drag,\n Language,\n Checked,\n CheckedIcon,\n Bigcross,\n OpenSidebarIcon,\n CloseSidebarIcon,\n DownloadFileIcon,\n CertIcon,\n CardIcon,\n EventIcon,\n ToolsIcon,\n ManagementIcon,\n KeyIcon,\n GridIcon,\n DashboardIcon,\n HomeIcon,\n SearchIcon,\n RightArrow,\n}\nexport default SVG\n","import { AppBar, styled } from \"@mui/material\";\n\nconst SubHeaderStyled = styled(AppBar)(() => ({\n // \"@media screen and (max-width:1920px) and (min-width:1600px)\": {\n // \"& .submenu\": {\n // width: \"84% !important\",\n // },\n // },\n // \"@media screen and (max-width:1600px) and (min-width:1440px)\": {\n // \"& .submenu\": {\n // width: \"82% !important\",\n // },\n // },\n // \"@media screen and (max-width:5000px) and (min-width:2560px)\": {\n // \"& .submenu\": {\n // width: \"89% !important\",\n // },\n // },\n \"& \": {\n background: \"#fff\",\n color: \"#000\",\n height: \"70px\",\n width: \"100vw\",\n fontFamily: \"Inter, sans-serif\",\n position: \"fixed\",\n boxShadow: \" -6px 2px 7px 1px #EDEDED\",\n\n zIndex: \"99\",\n // left: \"255px\",\n right: \"0px\",\n top: \"0px\",\n },\n \"& .submenu\": {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n margin: \"0px\",\n fontFamily: \"Inter, sans-serif\",\n },\n \"& .profile\": {\n position: \"absolute\",\n right: \"0px\",\n top: \"66px\",\n background: \"#fff\",\n width: \"256px\",\n borderRadius: \"16px\",\n zIndex: \"999\",\n boxShadow: \"0px 4px 6px -2px #1A191908\",\n fontFamily: \"Inter, sans-serif\",\n border: \"1px solid #EDEDED\",\n \"& ul\": {\n margin: \"0px\",\n padding: \"0px 16px 16px\",\n listStyle: \"none\",\n \"& li\": {\n padding: \"10px 0px\",\n borderBottom: \"1px solid #E9E9E9\",\n cursor: \"pointer\",\n \"&:last-child\": { borderBottom: \"0px\" },\n },\n },\n },\n \"& .notification\": {\n display: \"flex\",\n alignItems: \"center\",\n fontFamily: \"Inter, sans-serif\",\n },\n \"& .notification h6,p\": {\n margin: \"10px\",\n fontFamily: \"Inter, sans-serif\",\n },\n \"& .total\": {\n border: \"1px solid #C9C9C9\",\n borderRadius: \"6px\",\n padding: \"4px 8px 4px 8px\",\n color: \"#666666\",\n fontSize: \"14px\",\n fontWeight: \"500\",\n display: \"flex\",\n fontFamily: \"Inter, sans-serif\",\n },\n}));\nexport default SubHeaderStyled;\n","//#region src/standard.ts\nfunction ensureSynchronous(value, message) {\n\tif (value instanceof Promise) throw new Error(message);\n}\nfunction parseWithDictionary(dictionary, value) {\n\tconst result = {};\n\tconst issues = [];\n\tfor (const key in dictionary) {\n\t\tconst propResult = dictionary[key][\"~standard\"].validate(value[key]);\n\t\tensureSynchronous(propResult, `Validation must be synchronous, but ${key} returned a Promise.`);\n\t\tif (propResult.issues) {\n\t\t\tissues.push(...propResult.issues.map((issue) => ({\n\t\t\t\t...issue,\n\t\t\t\tpath: [key, ...issue.path ?? []]\n\t\t\t})));\n\t\t\tcontinue;\n\t\t}\n\t\tresult[key] = propResult.value;\n\t}\n\tif (issues.length) return { issues };\n\treturn { value: result };\n}\n\n//#endregion\n//#region src/index.ts\n/**\n* Create a new environment variable schema.\n*/\nfunction createEnv(opts) {\n\tconst runtimeEnv = opts.runtimeEnvStrict ?? opts.runtimeEnv ?? process.env;\n\tconst emptyStringAsUndefined = opts.emptyStringAsUndefined ?? false;\n\tif (emptyStringAsUndefined) {\n\t\tfor (const [key, value] of Object.entries(runtimeEnv)) if (value === \"\") delete runtimeEnv[key];\n\t}\n\tconst skip = !!opts.skipValidation;\n\tif (skip) return runtimeEnv;\n\tconst _client = typeof opts.client === \"object\" ? opts.client : {};\n\tconst _server = typeof opts.server === \"object\" ? opts.server : {};\n\tconst _shared = typeof opts.shared === \"object\" ? opts.shared : {};\n\tconst isServer = opts.isServer ?? (typeof window === \"undefined\" || \"Deno\" in window);\n\tconst finalSchemaShape = isServer ? {\n\t\t..._server,\n\t\t..._shared,\n\t\t..._client\n\t} : {\n\t\t..._client,\n\t\t..._shared\n\t};\n\tconst parsed = opts.createFinalSchema?.(finalSchemaShape, isServer)[\"~standard\"].validate(runtimeEnv) ?? parseWithDictionary(finalSchemaShape, runtimeEnv);\n\tensureSynchronous(parsed, \"Validation must be synchronous\");\n\tconst onValidationError = opts.onValidationError ?? ((issues) => {\n\t\tconsole.error(\"❌ Invalid environment variables:\", issues);\n\t\tthrow new Error(\"Invalid environment variables\");\n\t});\n\tconst onInvalidAccess = opts.onInvalidAccess ?? (() => {\n\t\tthrow new Error(\"❌ Attempted to access a server-side environment variable on the client\");\n\t});\n\tif (parsed.issues) return onValidationError(parsed.issues);\n\tconst isServerAccess = (prop) => {\n\t\tif (!opts.clientPrefix) return true;\n\t\treturn !prop.startsWith(opts.clientPrefix) && !(prop in _shared);\n\t};\n\tconst isValidServerAccess = (prop) => {\n\t\treturn isServer || !isServerAccess(prop);\n\t};\n\tconst ignoreProp = (prop) => {\n\t\treturn prop === \"__esModule\" || prop === \"$$typeof\";\n\t};\n\tconst extendedObj = (opts.extends ?? []).reduce((acc, curr) => {\n\t\treturn Object.assign(acc, curr);\n\t}, {});\n\tconst fullObj = Object.assign(extendedObj, parsed.value);\n\tconst env = new Proxy(fullObj, { get(target, prop) {\n\t\tif (typeof prop !== \"string\") return void 0;\n\t\tif (ignoreProp(prop)) return void 0;\n\t\tif (!isValidServerAccess(prop)) return onInvalidAccess(prop);\n\t\treturn Reflect.get(target, prop);\n\t} });\n\treturn env;\n}\n\n//#endregion\nexport { createEnv };","import { createEnv } from \"@t3-oss/env-core\"\nimport { commonValidation } from \"./validation\"\n\nexport const env = createEnv({\n clientPrefix: \"VITE_\",\n client: {\n // frontend\n VITE_MODULES_SSO_FRONTEND_BASE_URL: commonValidation.envUrl,\n VITE_MODULES_TOOLS_FRONTEND_BASE_URL: commonValidation.envUrl,\n VITE_MODULES_EVENTS_FRONTEND_BASE_URL: commonValidation.envUrl,\n VITE_MODULES_CARDS_HOME_FRONTEND_BASE_URL: commonValidation.envUrl,\n VITE_MODULES_CARDS_ADMIN_FRONTEND_BASE_URL: commonValidation.envUrl,\n VITE_MODULES_CERT_FRONTEND_BASE_URL: commonValidation.envUrl,\n\n // backends\n VITE_MODULES_SSO_BACKEND_BASE_URL: commonValidation.envUrl,\n },\n runtimeEnv: import.meta.env,\n skipValidation: true,\n})\n","export const SERVER_STATUS_CODE = Object.freeze({\n notFound: 404,\n badRequest: 400,\n forbidden: 403,\n authenticationDenied: 401,\n serverError: 500,\n success: 200,\n})\n\nexport const SERVER_STATUS = Object.freeze({\n success: \"success\",\n failure: \"failure\",\n})\n\nexport const APP_NAMES = Object.freeze({\n events: \"Events\",\n tools: \"Tools\",\n certHome: \"Cert Home\",\n cards: \"Cards\",\n sso: \"SSO Admin\",\n cardsHome: \"Cards Home\",\n cardsAdmin: \"Cards Admin\",\n})\n\nexport const ALERT_MESSAGES = Object.freeze({\n // not found\n dataNoFount: \"Data not found\",\n searchNotFount: \"Sorry, there are no matches. Try a new search?\",\n // generic\n commonLoadingMessage: \"Please wait...\",\n submittingSuccessMassage: \"Detail Added Successfully\",\n allFieldsRequired: \"Please fill all required fields\",\n NA: \"N/A\",\n // error\n fallbackError: \"Something went wrong, Please try again later!\",\n networkError: \"Please check your internet connection!\",\n timeOutError: \"Your connection taking too long to get data!\",\n})\n\nexport const ROLES = Object.freeze({\n master: \"Master\",\n distributor: \"Distributor\",\n coach: \"Coach\",\n referent: \"Referent\",\n})\n\nexport const REGEX = Object.freeze({\n email: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$/i,\n mobile: /^[6-9]\\d{9}$/,\n website: /^(https?:\\/\\/)?(www\\.)?[a-zA-Z0-9-]+\\.[a-zA-Z]{2,}(\\/.*)?$/,\n password: /^(?=.*[A-Z])(?=.*\\d)(?=.*[@!$%^&*()_+[\\]{};':\"\\\\|,.<>/?#]).*$/,\n})\n\nexport const WEBSITE_LINKS = Object.freeze({\n // helpDisk: \"https://6seconds.atlassian.net/servicedesk/customer/portal/8\",\n helpDisk: \"#\",\n instagram: \"https://www.instagram.com/6secondseq/\",\n facebook: \"https://www.facebook.com/sixseconds\",\n linkedin: \"https://www.linkedin.com/company/six-seconds/\",\n youtube: \"https://www.youtube.com/c/SixSeconds\",\n x: \"https://x.com/6s_EQ\",\n termsOfService: \"https://www.6seconds.org/about/terms-of-use/\",\n privacyPolicy: \"https://www.6seconds.org/about/policies/privacy/\",\n certUrl: \"https://cert.6seconds.org/\",\n})\n\nexport const RTK_ERROR_CODES = Object.freeze({\n fetchError: \"FETCH_ERROR\",\n parsingError: \"PARSING_ERROR\",\n timeOutError: \"TIMEOUT_ERROR\",\n customError: \"CUSTOM_ERROR\",\n})\n\nexport const APP_ACCESS = Object.freeze({\n events: \"Events\",\n tools: \"Tools\",\n certHome: \"Cert Home\",\n cards: \"Cards\",\n ssoAdmin: \"SSO Admin\",\n cardsHome: \"Cards Home\",\n cardsAdmin: \"Cards Admin\",\n})\n\nexport const NOTIFICATIONS_TYPES = Object.freeze({\n project: \"Project\",\n credit: \"Credit\",\n report: \"Report\",\n group: \"Group\",\n system: \"System\",\n})\n","import { APP_NAMES } from \"./common\"\nimport { env } from \"./env\"\n\nexport const TOOLS_ROUTES = {\n creditList: env.VITE_MODULES_TOOLS_FRONTEND_BASE_URL + \"/credit/regular-credits\",\n groupList: env.VITE_MODULES_TOOLS_FRONTEND_BASE_URL + \"/sei/adult/groups\",\n projectList: env.VITE_MODULES_TOOLS_FRONTEND_BASE_URL + \"/sei/adult/projects\",\n reportList: env.VITE_MODULES_TOOLS_FRONTEND_BASE_URL + \"/sei/adult/reports\",\n}\n\nexport const SSO_ROUTES = (APP_NAME?: (typeof APP_NAMES)[keyof typeof APP_NAMES]) => {\n return {\n languages: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/languages?source=${APP_NAME}`,\n translations: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/translations?source=${APP_NAME}`,\n editProfile: `${APP_NAME !== APP_NAMES.sso?env.VITE_MODULES_SSO_FRONTEND_BASE_URL : \".\"}/edit-profile?source=${APP_NAME}`,\n email: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/settings/email-templates?source=${APP_NAME}`,\n changePasswordDialog: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/dashboard?change-password&source=${APP_NAME}`,\n viewProfile: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/dashboard?view-profile`,\n unauthorized: `${env.VITE_MODULES_SSO_FRONTEND_BASE_URL}/unauthorized`,\n }\n}\n\nexport const ROUTES = {\n home: \"/\",\n}\n","export const MAIN_DATE_FORMAT = \"MM/DD/YYYY\"\nexport const FILTER_DATE_FORMAT = \"YYYY-MM-DD\"\nexport const MAIN_TIME_FORMAT = \"h:mm a\"\n","import SVG from \"@/assets/svg\"\r\nimport { APP_ACCESS, NOTIFICATIONS_TYPES, TOOLS_ROUTES } from \"@/constants\"\r\nimport { OnClick } from \"@/types\"\r\nimport { createElement } from \"react\"\r\n\r\n// make big string into ...\r\nexport const truncateValUtil = (val: string, maxTruncateVal = 15) => {\r\n return val.length > maxTruncateVal ? val.substring(0, maxTruncateVal) + \"...\" : val\r\n}\r\n\r\nexport function formatTwoValues(val1?: string, val2?: any, symbol: string = \",\"): string {\r\n return val1 ? `${val1}${symbol} ${val2}` : val2 || \"\"\r\n}\r\n\r\nexport const url = (url: string) => {\r\n window.location.href = url\r\n}\r\n\r\n// close all dialog\r\nexport const handleCloseUtil = (setState: any) => {\r\n setState((prevState: any) => {\r\n const updatedToggles = Object.fromEntries(Object.entries(prevState.toggles).map(([key]) => [key, false]))\r\n return {\r\n ...prevState,\r\n toggles: updatedToggles,\r\n }\r\n })\r\n}\r\n\r\n// open specific dialog according to key name\r\nexport const handleOpenUtil = (e: OnClick, setState: any) => {\r\n const name = e.currentTarget.getAttribute(\"data-toggle-name\")\r\n setState((p: any) => {\r\n return {\r\n ...p,\r\n toggles: {\r\n ...p.toggles,\r\n [e?.target?.name || name]: true,\r\n },\r\n }\r\n })\r\n}\r\n\r\nexport const getIcons = (val: string, defaultIcon: string) => {\r\n switch (val) {\r\n case \"Project\":\r\n return createElement(SVG.Printer)\r\n case \"Group\":\r\n return createElement(SVG.Folder)\r\n case \"Report\":\r\n return createElement(SVG.Stock)\r\n case \"Credit\":\r\n return createElement(SVG.Credits)\r\n default:\r\n return defaultIcon || createElement(SVG.Scanner)\r\n }\r\n}\r\n\r\nexport const handleRedirection = (type: string, source: string) => {\r\n if (source === APP_ACCESS.tools) {\r\n switch (type) {\r\n case NOTIFICATIONS_TYPES.project:\r\n window.open(TOOLS_ROUTES.projectList)\r\n break\r\n case NOTIFICATIONS_TYPES.credit:\r\n window.open(TOOLS_ROUTES.creditList)\r\n break\r\n case NOTIFICATIONS_TYPES.group:\r\n window.open(TOOLS_ROUTES.groupList)\r\n break\r\n case NOTIFICATIONS_TYPES.report:\r\n window.open(TOOLS_ROUTES.reportList)\r\n break\r\n case NOTIFICATIONS_TYPES.system:\r\n window.open(TOOLS_ROUTES.projectList)\r\n break\r\n default:\r\n window.open(TOOLS_ROUTES.projectList)\r\n }\r\n }\r\n}\r\n","//! moment.js\n//! version : 2.30.1\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 var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\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 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 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 D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\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 date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\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\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 match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\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\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\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\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\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\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// 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 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 if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n}\n\nfunction set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\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\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// PARSING\n\naddRegexToken('M', match1to2, match1to2NoLeadingZero);\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 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 var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\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 shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\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\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\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// PARSING\n\naddRegexToken('w', match1to2, match1to2NoLeadingZero);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2, match1to2NoLeadingZero);\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// 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\n var day = get(this, 'Day');\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// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2, match1to2HasZero);\naddRegexToken('h', match1to2, match1to2NoLeadingZero);\naddRegexToken('k', match1to2, match1to2NoLeadingZero);\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 // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\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 erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\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\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() + this.localeData()._week.dow,\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// 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// PARSING\n\naddRegexToken('D', match1to2, match1to2NoLeadingZero);\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// 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// PARSING\n\naddRegexToken('m', match1to2, match1to2HasZero);\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// PARSING\n\naddRegexToken('s', match1to2, match1to2HasZero);\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// 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\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 valueOf$1 = asMilliseconds;\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.30.1';\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', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n};\n\nexport default hooks;\n","import { MAIN_DATE_FORMAT, MAIN_TIME_FORMAT } from \"@/constants\"\r\nimport moment, { type Moment } from \"moment\"\r\n\r\nimport { formatTwoValues } from \"./common\"\r\n\r\nexport function formatDateUtil(\r\n dateString: string | Date | Moment | null,\r\n flag?: string,\r\n formatDate: string = MAIN_DATE_FORMAT,\r\n) {\r\n const dateTime = moment.utc(dateString).local()\r\n if (flag === \"time\") {\r\n return dateString ? dateTime.format(MAIN_TIME_FORMAT) : \"\"\r\n }\r\n\r\n if (flag === \"date\") {\r\n return dateString ? dateTime.format(formatDate) : \"\"\r\n }\r\n\r\n return dateString ? formatTwoValues(dateTime.format(formatDate), dateTime.format(MAIN_TIME_FORMAT)) : \"\"\r\n}\r\n\r\nexport const getTimeZone = () => Intl.DateTimeFormat().resolvedOptions().timeZone\r\n","import { SSO_ROUTES } from \"@/constants\"\r\nimport { handleCloseUtil, handleOpenUtil, truncateValUtil } from \"@/utils\"\r\nimport { Avatar, Box, ClickAwayListener, Link, Stack, Typography } from \"@mui/material\"\r\nimport SVG from \"@/assets/svg\"\r\nimport { useState } from \"react\"\r\nimport { IState } from \"./type\"\r\nimport { SetStateAction } from \"@/types\"\r\n\r\ninterface IProps {\r\n userData: any\r\n initialState: IState\r\n setInitialState?: SetStateAction<IState>\r\n extraMenuOptions?: any\r\n}\r\n\r\nconst UserProfile = ({ userData, setInitialState, extraMenuOptions }: IProps) => {\r\n const [state, setState] = useState({ toggles: { userProfile: false } })\r\n return (\r\n <>\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n ml: { md: 1.5, lg: 1.5, xs: \"5px\" },\r\n cursor: \"pointer\",\r\n width: \"auto\",\r\n height: \"auto\",\r\n }}\r\n data-toggle-name=\"userProfile\"\r\n onClick={e => handleOpenUtil(e, setState)}\r\n >\r\n <Avatar src={userData?.userprofile} sx={{ width: \"40px\", height: \"40px\" }} />\r\n <Box sx={{ margin: \"2px 0px 0px 2px\" }}>\r\n <SVG.Dawn />\r\n </Box>\r\n </Box>\r\n {state.toggles.userProfile && (\r\n <ClickAwayListener onClickAway={() => handleCloseUtil(setState)}>\r\n <Box className=\"profile\">\r\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"} sx={{ borderBottom: \"1px solid #EDEDED\", p: 2 }}>\r\n <Avatar src={userData?.userprofile} sx={{ width: \"55px\", height: \"55px\" }} />\r\n <Box\r\n sx={{\r\n flex: 1,\r\n whiteSpace: \"normal\",\r\n wordBreak: \"break-all\",\r\n }}\r\n >\r\n <Typography variant=\"h4\" sx={{ fontSize: \"16px\", fontWeight: \"500\", m: 0 }}>\r\n {userData?.fullName}\r\n </Typography>\r\n <Typography component={\"span\"} sx={{ m: 0, fontSize: \"14px\", color: \"#666666\" }}>\r\n {truncateValUtil(userData?.email)} <br />({userData?.role})\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n <ul>\r\n {extraMenuOptions.isViewProfile && (\r\n <li>\r\n <Stack\r\n direction={\"row\"}\r\n spacing={1}\r\n alignItems={\"center\"}\r\n component={Link}\r\n href={SSO_ROUTES(userData.appName).viewProfile}\r\n target=\"_blank\"\r\n sx={{ color: \"#1A1919\", cursor: \"pointer\" }}\r\n >\r\n <SVG.CheckedPerson />\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n m: 0,\r\n }}\r\n >\r\n View Profile\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </li>\r\n )}\r\n {extraMenuOptions.isEditProfile && (\r\n <li>\r\n <Stack\r\n direction={\"row\"}\r\n spacing={1}\r\n alignItems={\"center\"}\r\n component={Link}\r\n href={SSO_ROUTES(userData.appName).editProfile}\r\n target=\"_blank\"\r\n sx={{ color: \"#1A1919\" }}\r\n >\r\n <SVG.UserEdit />\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n m: 0,\r\n }}\r\n >\r\n {\"Edit Profile\"}\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </li>\r\n )}\r\n {extraMenuOptions.isChangePassword && (\r\n <li>\r\n <Stack\r\n direction={\"row\"}\r\n spacing={1}\r\n alignItems={\"center\"}\r\n component={Link}\r\n href={SSO_ROUTES(userData.appName).changePasswordDialog}\r\n target=\"_blank\"\r\n sx={{ cursor: \"pointer\" }}\r\n >\r\n <SVG.CheckedPerson />\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n color: \"#1A1919\",\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n m: 0,\r\n }}\r\n >\r\n {\"Change Password\"}\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </li>\r\n )}\r\n {extraMenuOptions.components}\r\n <li>\r\n <Stack\r\n direction={\"row\"}\r\n spacing={1}\r\n alignItems={\"center\"}\r\n onClick={() =>\r\n setInitialState?.(p => ({\r\n ...p,\r\n toggles: { ...p.toggles, logout: true },\r\n }))\r\n }\r\n >\r\n <SVG.Logout />\r\n <Box sx={{ flex: 1 }}>\r\n <Typography\r\n variant=\"h4\"\r\n sx={{\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n m: 0,\r\n }}\r\n >\r\n Logout\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </li>\r\n </ul>\r\n </Box>\r\n </ClickAwayListener>\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nexport default UserProfile\r\n","import { SetStateAction } from \"@/types\"\nimport CheckIcon from \"@mui/icons-material/Check\"\nimport { Box, ClickAwayListener, Stack, Typography } from \"@mui/material\"\nimport { IState } from \"./type\"\nimport { handleCloseUtil } from \"@/utils\"\n\ninterface IProps {\n setState?: any\n interFaceLangList?: any\n userData?: any\n updateInterfaceLang?: any\n selectedInterFaceLang?: any\n setInitialState: SetStateAction<IState>\n}\n\nexport default function Language({\n interFaceLangList,\n // updateInterfaceLang,\n selectedInterFaceLang,\n setInitialState,\n}: IProps) {\n return (\n <ClickAwayListener onClickAway={() => handleCloseUtil(setInitialState)}>\n <Box\n sx={{\n p: 2,\n borderRadius: \"16px\",\n border: \"1px solid #EDEDED\",\n boxShadow: \"0px 12px 16px -4px #1A191914\",\n maxWidth: \"333px\",\n minWidth: { md: \"333px\", lg: \"333px\", xs: \"200px\" },\n background: \"#fff\",\n top: \"66px\",\n right: \"0px\",\n position: \"absolute\",\n }}\n >\n <Box\n component={\"ul\"}\n sx={{\n margin: \"0px\",\n padding: \"0px 16px 0px 0px\",\n listStyle: \"none\",\n overflow: \"hidden\",\n overflowY: \"auto\",\n maxHeight: \"300px\",\n \"& li\": {\n borderBottom: \"1px solid #EDEDED\",\n padding: \"16px 0px\",\n cursor: \"pointer\",\n \"&:last-child\": {\n borderBottom: \"0px\",\n },\n },\n }}\n >\n {interFaceLangList?.map((lang: any, i: number) => {\n return (\n <li key={i}>\n <Stack\n direction={\"row\"}\n spacing={2}\n alignItems={\"center\"}\n onClick={() => {\n // updateInterfaceLang({\n // user_id: userData?.id,\n // lang: lang?.label,\n // })\n setInitialState((p: any) => ({ ...p, toggles: { ...p.toggles, lang: false } }))\n }}\n >\n <Box sx={{ flex: 1 }}>\n <Stack direction={\"row\"} alignItems={\"center\"} justifyContent={\"flex-start\"} gap={2}>\n <img src={lang?.flag} alt={lang?.label} width={32} height={30} />\n <Typography variant=\"h4\" sx={{ fontSize: \"16px\", fontWeight: \"500\", m: 0 }}>\n {lang?.label}\n </Typography>\n {selectedInterFaceLang?.value === lang?.value && (\n <CheckIcon sx={{ color: \"#007FC0\", fontSize: \"30px\" }} />\n )}\n </Stack>\n </Box>\n </Stack>\n </li>\n )\n })}\n </Box>\n </Box>\n </ClickAwayListener>\n )\n}\n","import { useMediaQuery } from \"@mui/material\"\r\nimport type { IState } from \"./type\"\r\nimport type { SetStateAction } from \"@/types\"\r\n\r\ninterface IProps {\r\n headerMenuArray: any[]\r\n initialState: IState\r\n setInitialState?: SetStateAction<IState>\r\n}\r\nconst DropdownMenu = ({ headerMenuArray, initialState }: IProps) => {\r\n const pathname = window.location.pathname\r\n const isMobile = useMediaQuery(\"(max-width: 1324px)\")\r\n return (\r\n <nav style={{ backgroundColor: \"#fff\", color: \"#000\" }}>\r\n { !isMobile ? (\r\n <ul className=\" main_list_Menu desktopMenu\">\r\n {headerMenuArray.map((items: any, index: number) => (\r\n <>\r\n <li className=\"menu-item\" key={index}>\r\n <a\r\n href={items.value || \"\"}\r\n target={items.target}\r\n className={`menu-link`}\r\n >\r\n {items.label}\r\n </a>\r\n {/* Dropdown */}\r\n {Boolean(items.children.length) && (\r\n <ul className=\"submenuData \">\r\n {items.children?.map((child: any, index: number) => (\r\n <>\r\n <li key={index}>\r\n <a\r\n href={child.value || \"\"}\r\n target={child.target}\r\n className=\"submenu-link\"\r\n >\r\n {child.label}\r\n </a>\r\n </li>\r\n </>\r\n ))}\r\n </ul>\r\n )}\r\n </li>\r\n </>\r\n ))}\r\n </ul>\r\n ): initialState.toggles.dropDownMenu &&(\r\n <div className=\"lg:hidden smallDeviceMenu\" id=\"mobile-menu\">\r\n <div className=\" layout_mobile_menu\">\r\n {headerMenuArray.map((items: any, index: number) => (\r\n <>\r\n <a\r\n href={items.value || \"\"}\r\n className={`bg_main_menu ${\r\n pathname === items.value ? \"text-customBlue\" : \"text-[#2C2E35]\"\r\n }`}\r\n key={index}\r\n >\r\n {items.label}\r\n </a>\r\n {Boolean(items.children.length) && (\r\n <ul className=\"submenu_child\">\r\n {items.children?.map((items: any, index: number) => (\r\n <>\r\n <li key={index}>\r\n <a\r\n href={items.value || \"\"}\r\n target={items.target}\r\n className=\"submenu_child_link \"\r\n >\r\n {items.label}\r\n </a>\r\n </li>\r\n </>\r\n ))}\r\n </ul>\r\n )}\r\n </>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n </nav>\r\n )\r\n}\r\n\r\nexport default DropdownMenu\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAA1CAMAAACA7r40AAAA/FBMVEWyIjNPN2Y8O27///8/PnBOTXxycpY9PG9RUX5HR3dIR3dLSnlPTny4uMpWVYFFRHVwb5VlZIx7e52DgqOIh6aIiKc+PXBJSHhTUn9hYYqyIjReXohgX4lYV4Lr6/C2tcjPdYB0c5haWYRYV4Nra5GJiac+PW/FxdTHYG1RUH3eoajltbtOTXvty89BQHHg3+hSUX6GYoC6usyVlbFycZa7u8yUk6+sq8FCQXO0tMe1tMhiYYpMS3pDQnNvbpTExNN8fJ7GxdTGxtWCgqLHx9WXlrLXi5SYl7Kiobrg4Oiiorrn5u3n5+2jo7ukpLvw8PTx8fX09Pf19firqsC5sMNxAAAAAnRSTlPQ9qN1Xw4AAAGlSURBVHhe7ZXFiiRBFEVjznvp5W7t7j3u7m7//y8D1dAMGbnI4jW5KOpsgjibCxFcrrtVEmcBGAGQJHB98d3EgEM/ygsg/nwRAy15rxQ4Ywh3JQX49hVgKA/Ad1hDkkGTMSQJjGkOEmo133FmwAEQyl8FfSj3gFgkzjsQAw6AZ796AP2fGcDBS8/ZQ7ZQlJ2d+bEFqp6zhuh9Cf9/pDtKkTs04KBTD4jgx3eICOodoshz1p7M6UUAUQ+Ap2Pf2UMI5UBBX18/Ut7ZQ84Jui10QKsbcA7dt77jxIBDt+sxMNzrD4HL+rZS4Iw9iTZkCjRFmsBUHkcUOGMI7dkpKezuQsrprM3zR76zN572ekdBX623gaONJ0d5B5sGHAA1+QTwRQJgX2Q/7+w9GZGlDZKERpoxgkbDc8s0WscGSo+WGMiNVlgwWuFNjdafPsDe7wzg3RvP2UNCFGVtbX6EoOo7PhgoO1rGnswHiquB4mqgfIcxpBTGkNslMf2JVMAShRxXgJtUwBKFbFbAqicL4U4qYNWThXCHFbDqyUK4swpY9WQhXBX8A2rVjaQ6HWXmAAAAAElFTkSuQmCC\"","import Us from \"./us.png\"\r\n\r\nconst IMAGES = {\r\n Us,\r\n}\r\n\r\nexport default IMAGES\r\n","import { handleCloseUtil } from \"../../utils\"\r\nimport { Box, Button, Dialog, Stack } from \"@mui/material\"\r\nimport { ALERT_MESSAGES } from \"../../constants\"\r\nimport SVG from \"@/assets/svg\"\r\n\r\ninterface IProps {\r\n open: boolean\r\n title?: string\r\n description?: string\r\n setInitialState: any\r\n buttonTitle?: string\r\n handleClick: () => void\r\n isLoading?: boolean\r\n}\r\n\r\nconst DangerDialog = ({\r\n open,\r\n setInitialState,\r\n title = \"Warning\",\r\n description = \"Are you sure you want to delete this entry\",\r\n buttonTitle = \"Delete\",\r\n isLoading = false,\r\n handleClick,\r\n}: IProps) => {\r\n return (\r\n <Dialog\r\n fullWidth={false}\r\n sx={{ \"& .MuiPaper-root\": { maxWidth: \"400px\", borderRadius: \"12px\" } }}\r\n onClose={() => handleCloseUtil(setInitialState)}\r\n open={open}\r\n aria-labelledby=\"draggable-dialog-title\"\r\n >\r\n <Box sx={{ p: 2 }}>\r\n <Stack direction={\"column\"} spacing={2} alignItems={\"self-start\"}>\r\n <SVG.Logout />\r\n <h5>{title}</h5>\r\n <Stack\r\n direction={\"column\"}\r\n spacing={1}\r\n alignItems={\"self-start\"}\r\n sx={{\r\n \"& h5\": { fontSize: \"18px\", fontWeight: \"600\" },\r\n \"& p\": {\r\n fontSize: \"16px\",\r\n fontWeight: \"400\",\r\n color: \"#666666\",\r\n },\r\n }}\r\n >\r\n <p>{description}</p>\r\n </Stack>\r\n </Stack>\r\n <Stack direction={\"row\"} alignItems={\"center\"} spacing={2} sx={{ mt: 2 }}>\r\n <Button\r\n variant=\"outlined\"\r\n fullWidth\r\n onClick={() => handleCloseUtil(setInitialState)}\r\n sx={{\r\n borderColor: \"#D9D9D9\",\r\n color: \"#4C4C4C\",\r\n textTransform: \"capitalize\",\r\n borderRadius: \"8px\",\r\n fontSize: \"14px\",\r\n \"&:hover\": { borderColor: \"#D9D9D9\" },\r\n }}\r\n >\r\n Cancel\r\n </Button>\r\n <Button\r\n variant=\"contained\"\r\n fullWidth\r\n disableElevation\r\n disabled={isLoading}\r\n onClick={handleClick}\r\n sx={{\r\n background: \"#EC5962\",\r\n color: \"#fff\",\r\n textTransform: \"capitalize\",\r\n borderRadius: \"8px\",\r\n fontSize: \"14px\",\r\n \"&:hover\": { background: \"#EC5962\" },\r\n }}\r\n >\r\n {isLoading ? ALERT_MESSAGES.commonLoadingMessage : buttonTitle}\r\n </Button>\r\n </Stack>\r\n </Box>\r\n </Dialog>\r\n )\r\n}\r\nexport default DangerDialog\r\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.join = exports.subst = exports.query = void 0;\r\nfunction urlcat(baseUrlOrTemplate, pathTemplateOrParams, maybeParams) {\r\n if (maybeParams === void 0) { maybeParams = {}; }\r\n if (typeof pathTemplateOrParams === 'string') {\r\n var baseUrl = baseUrlOrTemplate;\r\n var pathTemplate = pathTemplateOrParams;\r\n var params = maybeParams;\r\n return urlcatImpl(pathTemplate, params, baseUrl);\r\n }\r\n else {\r\n var baseTemplate = baseUrlOrTemplate;\r\n var params = pathTemplateOrParams;\r\n return urlcatImpl(baseTemplate, params);\r\n }\r\n}\r\nexports.default = urlcat;\r\nfunction urlcatImpl(pathTemplate, params, baseUrl) {\r\n var _a = path(pathTemplate, params), renderedPath = _a.renderedPath, remainingParams = _a.remainingParams;\r\n var cleanParams = removeNullOrUndef(remainingParams);\r\n var renderedQuery = query(cleanParams);\r\n var pathAndQuery = join(renderedPath, '?', renderedQuery);\r\n return baseUrl\r\n ? join(baseUrl, '/', pathAndQuery)\r\n : pathAndQuery;\r\n}\r\n/**\r\n * Creates a query string from the specified object.\r\n *\r\n * @param {Object} params an object to convert into a query string.\r\n *\r\n * @returns {String} Query string.\r\n *\r\n * @example\r\n * ```ts\r\n * query({ id: 42, search: 'foo' })\r\n * // -> 'id=42&search=foo'\r\n * ```\r\n */\r\nfunction query(params) {\r\n return new URLSearchParams(params).toString();\r\n}\r\nexports.query = query;\r\n/**\r\n * Substitutes :params in a template with property values of an object.\r\n *\r\n * @param {String} template a string that contains :params.\r\n * @param {Object} params an object with keys that correspond to the params in the template.\r\n *\r\n * @returns {String} Rendered path after substitution.\r\n *\r\n * @example\r\n * ```ts\r\n * subst('/users/:id/posts/:postId', { id: 42, postId: 36 })\r\n * // -> '/users/42/posts/36'\r\n * ```\r\n */\r\nfunction subst(template, params) {\r\n var renderedPath = path(template, params).renderedPath;\r\n return renderedPath;\r\n}\r\nexports.subst = subst;\r\nfunction path(template, params) {\r\n var remainingParams = __assign({}, params);\r\n var allowedTypes = [\"boolean\", \"string\", \"number\"];\r\n var renderedPath = template.replace(/:\\w+/g, function (p) {\r\n var key = p.slice(1);\r\n if (/^\\d+$/.test(key)) {\r\n return p;\r\n }\r\n if (!params.hasOwnProperty(key)) {\r\n throw new Error(\"Missing value for path parameter \" + key + \".\");\r\n }\r\n if (!allowedTypes.includes(typeof params[key])) {\r\n throw new TypeError(\"Path parameter \" + key + \" cannot be of type \" + typeof params[key] + \". \" +\r\n (\"Allowed types are: \" + allowedTypes.join(', ') + \".\"));\r\n }\r\n if (typeof params[key] === \"string\" && params[key].trim() === '') {\r\n throw new Error(\"Path parameter \" + key + \" cannot be an empty string.\");\r\n }\r\n delete remainingParams[key];\r\n return encodeURIComponent(params[key]);\r\n });\r\n return { renderedPath: renderedPath, remainingParams: remainingParams };\r\n}\r\n/**\r\n * Joins two strings using a separator.\r\n * If the separator occurs at the concatenation boundary in either of the strings, it is removed.\r\n * This prevents accidental duplication of the separator.\r\n *\r\n * @param {String} part1 First string.\r\n * @param {String} separator Separator used for joining.\r\n * @param {String} part2 Second string.\r\n *\r\n * @returns {String} Joined string.\r\n *\r\n * @example\r\n * ```ts\r\n * join('first/', '/', '/second')\r\n * // -> 'first/second'\r\n * ```\r\n */\r\nfunction join(part1, separator, part2) {\r\n var p1 = part1.endsWith(separator)\r\n ? part1.slice(0, -separator.length)\r\n : part1;\r\n var p2 = part2.startsWith(separator)\r\n ? part2.slice(separator.length)\r\n : part2;\r\n return p1 === '' || p2 === ''\r\n ? p1 + p2\r\n : p1 + separator + p2;\r\n}\r\nexports.join = join;\r\nfunction removeNullOrUndef(params) {\r\n return Object.keys(params)\r\n .filter(function (k) { return notNullOrUndefined(params[k]); })\r\n .reduce(function (result, k) {\r\n result[k] = params[k];\r\n return result;\r\n }, {});\r\n}\r\nfunction notNullOrUndefined(v) {\r\n return v !== undefined && v !== null;\r\n}\r\n","import axios, { AxiosError, AxiosRequestConfig } from \"axios\"\r\nimport urlcat from \"urlcat\"\r\nimport { ErrorResult, SuccessResult } from \"./types/base\"\r\nimport { ALERT_MESSAGES, env, SERVER_STATUS } from \"@/constants\"\r\n\r\nif (env.VITE_MODULES_SSO_BACKEND_BASE_URL === undefined) {\r\n throw new Error(\"env is not set\")\r\n}\r\n\r\nfunction createAxiosInstance(baseUrl: string) {\r\n return axios.create({\r\n baseURL: urlcat(baseUrl, \"/api/\"),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n withCredentials: true,\r\n })\r\n}\r\n\r\nexport async function req(config: AxiosRequestConfig): Promise<SuccessResult<any> | ErrorResult> {\r\n const baseUrl = env.VITE_MODULES_SSO_BACKEND_BASE_URL\r\n const axiosInstance = createAxiosInstance(baseUrl)\r\n try {\r\n const response = await axiosInstance.request({ ...config })\r\n return {\r\n remote: SERVER_STATUS.success,\r\n data: response?.data?.data,\r\n }\r\n } catch (error: any) {\r\n if (error.response) {\r\n const axiosError = error as AxiosError | any\r\n const errorMessage = axiosError.response?.data?.message || ALERT_MESSAGES.fallbackError\r\n const errorCode = axiosError.response?.status\r\n const errorData = axiosError.response?.data?.data || null\r\n return {\r\n status: errorCode,\r\n remote: SERVER_STATUS.failure,\r\n error: {\r\n message: errorMessage,\r\n data: errorData,\r\n },\r\n }\r\n }\r\n throw error\r\n }\r\n}\r\n\r\nexport function BaseAPI() {\r\n throw new Error(\"Function not implemented.\")\r\n}\r\n","import { formatDateUtil } from \"@/utils\"\r\n\r\nexport const transformNotifications = (itm: any): any => {\r\n return {\r\n id: itm.id,\r\n title: itm.title,\r\n date: formatDateUtil(itm.created_at),\r\n type: itm.message_type,\r\n status: itm.app_access,\r\n source: itm.app_access,\r\n }\r\n}\r\n\r\nexport const transformUser = (userData: any) => {\r\n const data = userData?.data?.data\r\n const { user, additional_data } = data\r\n\r\n return {\r\n name: user?.Name,\r\n email: user?.Email,\r\n user_profile: additional_data?.user_profile,\r\n }\r\n}\r\n\r\nexport const transformMenuBuilderData = (itm: any) => {\r\n return {\r\n label: itm.name,\r\n value: itm.route,\r\n target: itm.target,\r\n id: itm.id,\r\n order: itm.order,\r\n children: itm.children?.length ? itm.children.map((data: any) => transformMenuBuilderData(data)) : [],\r\n }\r\n}\r\n","import { SERVER_STATUS } from \"@/constants\"\nimport { req } from \".\"\nimport { transformMenuBuilderData } from \"./transforms/user\"\nimport urlcat from \"urlcat\"\n\nexport async function getDropDownMenuAPI(params: any) {\n const res = await req({\n url: urlcat(\"menu/menus\", params),\n method: \"GET\",\n })\n if (res.remote === SERVER_STATUS.success) {\n return {\n remote: SERVER_STATUS.success,\n data: res?.data?.map(transformMenuBuilderData),\n }\n }\n return res\n}\n\nexport async function notificationApi(data: any) {\n const res = await req({\n url: urlcat(\"/notification/index\", data),\n method: \"GET\",\n })\n if (res.remote === SERVER_STATUS.success) {\n return {\n remote: SERVER_STATUS.success,\n data: res?.data?.pager,\n }\n }\n return res\n}\n","import React, { Component } from 'react';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\n/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nfunction throttle (delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n var self = this;\n var elapsed = Date.now() - lastExec;\n var args = arguments;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, args);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\nvar ThresholdUnits = {\r\n Pixel: 'Pixel',\r\n Percent: 'Percent',\r\n};\r\nvar defaultThreshold = {\r\n unit: ThresholdUnits.Percent,\r\n value: 0.8,\r\n};\r\nfunction parseThreshold(scrollThreshold) {\r\n if (typeof scrollThreshold === 'number') {\r\n return {\r\n unit: ThresholdUnits.Percent,\r\n value: scrollThreshold * 100,\r\n };\r\n }\r\n if (typeof scrollThreshold === 'string') {\r\n if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)px$/)) {\r\n return {\r\n unit: ThresholdUnits.Pixel,\r\n value: parseFloat(scrollThreshold),\r\n };\r\n }\r\n if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)%$/)) {\r\n return {\r\n unit: ThresholdUnits.Percent,\r\n value: parseFloat(scrollThreshold),\r\n };\r\n }\r\n console.warn('scrollThreshold format is invalid. Valid formats: \"120px\", \"50%\"...');\r\n return defaultThreshold;\r\n }\r\n console.warn('scrollThreshold should be string or number');\r\n return defaultThreshold;\r\n}\n\nvar InfiniteScroll = /** @class */ (function (_super) {\r\n __extends(InfiniteScroll, _super);\r\n function InfiniteScroll(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.lastScrollTop = 0;\r\n _this.actionTriggered = false;\r\n // variables to keep track of pull down behaviour\r\n _this.startY = 0;\r\n _this.currentY = 0;\r\n _this.dragging = false;\r\n // will be populated in componentDidMount\r\n // based on the height of the pull down element\r\n _this.maxPullDownDistance = 0;\r\n _this.getScrollableTarget = function () {\r\n if (_this.props.scrollableTarget instanceof HTMLElement)\r\n return _this.props.scrollableTarget;\r\n if (typeof _this.props.scrollableTarget === 'string') {\r\n return document.getElementById(_this.props.scrollableTarget);\r\n }\r\n if (_this.props.scrollableTarget === null) {\r\n console.warn(\"You are trying to pass scrollableTarget but it is null. This might\\n happen because the element may not have been added to DOM yet.\\n See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\\n \");\r\n }\r\n return null;\r\n };\r\n _this.onStart = function (evt) {\r\n if (_this.lastScrollTop)\r\n return;\r\n _this.dragging = true;\r\n if (evt instanceof MouseEvent) {\r\n _this.startY = evt.pageY;\r\n }\r\n else if (evt instanceof TouchEvent) {\r\n _this.startY = evt.touches[0].pageY;\r\n }\r\n _this.currentY = _this.startY;\r\n if (_this._infScroll) {\r\n _this._infScroll.style.willChange = 'transform';\r\n _this._infScroll.style.transition = \"transform 0.2s cubic-bezier(0,0,0.31,1)\";\r\n }\r\n };\r\n _this.onMove = function (evt) {\r\n if (!_this.dragging)\r\n return;\r\n if (evt instanceof MouseEvent) {\r\n _this.currentY = evt.pageY;\r\n }\r\n else if (evt instanceof TouchEvent) {\r\n _this.currentY = evt.touches[0].pageY;\r\n }\r\n // user is scrolling down to up\r\n if (_this.currentY < _this.startY)\r\n return;\r\n if (_this.currentY - _this.startY >=\r\n Number(_this.props.pullDownToRefreshThreshold)) {\r\n _this.setState({\r\n pullToRefreshThresholdBreached: true,\r\n });\r\n }\r\n // so you can drag upto 1.5 times of the maxPullDownDistance\r\n if (_this.currentY - _this.startY > _this.maxPullDownDistance * 1.5)\r\n return;\r\n if (_this._infScroll) {\r\n _this._infScroll.style.overflow = 'visible';\r\n _this._infScroll.style.transform = \"translate3d(0px, \" + (_this.currentY -\r\n _this.startY) + \"px, 0px)\";\r\n }\r\n };\r\n _this.onEnd = function () {\r\n _this.startY = 0;\r\n _this.currentY = 0;\r\n _this.dragging = false;\r\n if (_this.state.pullToRefreshThresholdBreached) {\r\n _this.props.refreshFunction && _this.props.refreshFunction();\r\n _this.setState({\r\n pullToRefreshThresholdBreached: false,\r\n });\r\n }\r\n requestAnimationFrame(function () {\r\n // this._infScroll\r\n if (_this._infScroll) {\r\n _this._infScroll.style.overflow = 'auto';\r\n _this._infScroll.style.transform = 'none';\r\n _this._infScroll.style.willChange = 'unset';\r\n }\r\n });\r\n };\r\n _this.onScrollListener = function (event) {\r\n if (typeof _this.props.onScroll === 'function') {\r\n // Execute this callback in next tick so that it does not affect the\r\n // functionality of the library.\r\n setTimeout(function () { return _this.props.onScroll && _this.props.onScroll(event); }, 0);\r\n }\r\n var target = _this.props.height || _this._scrollableNode\r\n ? event.target\r\n : document.documentElement.scrollTop\r\n ? document.documentElement\r\n : document.body;\r\n // return immediately if the action has already been triggered,\r\n // prevents multiple triggers.\r\n if (_this.actionTriggered)\r\n return;\r\n var atBottom = _this.props.inverse\r\n ? _this.isElementAtTop(target, _this.props.scrollThreshold)\r\n : _this.isElementAtBottom(target, _this.props.scrollThreshold);\r\n // call the `next` function in the props to trigger the next data fetch\r\n if (atBottom && _this.props.hasMore) {\r\n _this.actionTriggered = true;\r\n _this.setState({ showLoader: true });\r\n _this.props.next && _this.props.next();\r\n }\r\n _this.lastScrollTop = target.scrollTop;\r\n };\r\n _this.state = {\r\n showLoader: false,\r\n pullToRefreshThresholdBreached: false,\r\n prevDataLength: props.dataLength,\r\n };\r\n _this.throttledOnScrollListener = throttle(150, _this.onScrollListener).bind(_this);\r\n _this.onStart = _this.onStart.bind(_this);\r\n _this.onMove = _this.onMove.bind(_this);\r\n _this.onEnd = _this.onEnd.bind(_this);\r\n return _this;\r\n }\r\n InfiniteScroll.prototype.componentDidMount = function () {\r\n if (typeof this.props.dataLength === 'undefined') {\r\n throw new Error(\"mandatory prop \\\"dataLength\\\" is missing. The prop is needed\" +\r\n \" when loading more content. Check README.md for usage\");\r\n }\r\n this._scrollableNode = this.getScrollableTarget();\r\n this.el = this.props.height\r\n ? this._infScroll\r\n : this._scrollableNode || window;\r\n if (this.el) {\r\n this.el.addEventListener('scroll', this\r\n .throttledOnScrollListener);\r\n }\r\n if (typeof this.props.initialScrollY === 'number' &&\r\n this.el &&\r\n this.el instanceof HTMLElement &&\r\n this.el.scrollHeight > this.props.initialScrollY) {\r\n this.el.scrollTo(0, this.props.initialScrollY);\r\n }\r\n if (this.props.pullDownToRefresh && this.el) {\r\n this.el.addEventListener('touchstart', this.onStart);\r\n this.el.addEventListener('touchmove', this.onMove);\r\n this.el.addEventListener('touchend', this.onEnd);\r\n this.el.addEventListener('mousedown', this.onStart);\r\n this.el.addEventListener('mousemove', this.onMove);\r\n this.el.addEventListener('mouseup', this.onEnd);\r\n // get BCR of pullDown element to position it above\r\n this.maxPullDownDistance =\r\n (this._pullDown &&\r\n this._pullDown.firstChild &&\r\n this._pullDown.firstChild.getBoundingClientRect()\r\n .height) ||\r\n 0;\r\n this.forceUpdate();\r\n if (typeof this.props.refreshFunction !== 'function') {\r\n throw new Error(\"Mandatory prop \\\"refreshFunction\\\" missing.\\n Pull Down To Refresh functionality will not work\\n as expected. Check README.md for usage'\");\r\n }\r\n }\r\n };\r\n InfiniteScroll.prototype.componentWillUnmount = function () {\r\n if (this.el) {\r\n this.el.removeEventListener('scroll', this\r\n .throttledOnScrollListener);\r\n if (this.props.pullDownToRefresh) {\r\n this.el.removeEventListener('touchstart', this.onStart);\r\n this.el.removeEventListener('touchmove', this.onMove);\r\n this.el.removeEventListener('touchend', this.onEnd);\r\n this.el.removeEventListener('mousedown', this.onStart);\r\n this.el.removeEventListener('mousemove', this.onMove);\r\n this.el.removeEventListener('mouseup', this.onEnd);\r\n }\r\n }\r\n };\r\n InfiniteScroll.prototype.componentDidUpdate = function (prevProps) {\r\n // do nothing when dataLength is unchanged\r\n if (this.props.dataLength === prevProps.dataLength)\r\n return;\r\n this.actionTriggered = false;\r\n // update state when new data was sent in\r\n this.setState({\r\n showLoader: false,\r\n });\r\n };\r\n InfiniteScroll.getDerivedStateFromProps = function (nextProps, prevState) {\r\n var dataLengthChanged = nextProps.dataLength !== prevState.prevDataLength;\r\n // reset when data changes\r\n if (dataLengthChanged) {\r\n return __assign(__assign({}, prevState), { prevDataLength: nextProps.dataLength });\r\n }\r\n return null;\r\n };\r\n InfiniteScroll.prototype.isElementAtTop = function (target, scrollThreshold) {\r\n if (scrollThreshold === void 0) { scrollThreshold = 0.8; }\r\n var clientHeight = target === document.body || target === document.documentElement\r\n ? window.screen.availHeight\r\n : target.clientHeight;\r\n var threshold = parseThreshold(scrollThreshold);\r\n if (threshold.unit === ThresholdUnits.Pixel) {\r\n return (target.scrollTop <=\r\n threshold.value + clientHeight - target.scrollHeight + 1);\r\n }\r\n return (target.scrollTop <=\r\n threshold.value / 100 + clientHeight - target.scrollHeight + 1);\r\n };\r\n InfiniteScroll.prototype.isElementAtBottom = function (target, scrollThreshold) {\r\n if (scrollThreshold === void 0) { scrollThreshold = 0.8; }\r\n var clientHeight = target === document.body || target === document.documentElement\r\n ? window.screen.availHeight\r\n : target.clientHeight;\r\n var threshold = parseThreshold(scrollThreshold);\r\n if (threshold.unit === ThresholdUnits.Pixel) {\r\n return (target.scrollTop + clientHeight >= target.scrollHeight - threshold.value);\r\n }\r\n return (target.scrollTop + clientHeight >=\r\n (threshold.value / 100) * target.scrollHeight);\r\n };\r\n InfiniteScroll.prototype.render = function () {\r\n var _this = this;\r\n var style = __assign({ height: this.props.height || 'auto', overflow: 'auto', WebkitOverflowScrolling: 'touch' }, this.props.style);\r\n var hasChildren = this.props.hasChildren ||\r\n !!(this.props.children &&\r\n this.props.children instanceof Array &&\r\n this.props.children.length);\r\n // because heighted infiniteScroll visualy breaks\r\n // on drag down as overflow becomes visible\r\n var outerDivStyle = this.props.pullDownToRefresh && this.props.height\r\n ? { overflow: 'auto' }\r\n : {};\r\n return (React.createElement(\"div\", { style: outerDivStyle, className: \"infinite-scroll-component__outerdiv\" },\r\n React.createElement(\"div\", { className: \"infinite-scroll-component \" + (this.props.className || ''), ref: function (infScroll) { return (_this._infScroll = infScroll); }, style: style },\r\n this.props.pullDownToRefresh && (React.createElement(\"div\", { style: { position: 'relative' }, ref: function (pullDown) { return (_this._pullDown = pullDown); } },\r\n React.createElement(\"div\", { style: {\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n top: -1 * this.maxPullDownDistance,\r\n } }, this.state.pullToRefreshThresholdBreached\r\n ? this.props.releaseToRefreshContent\r\n : this.props.pullDownToRefreshContent))),\r\n this.props.children,\r\n !this.state.showLoader &&\r\n !hasChildren &&\r\n this.props.hasMore &&\r\n this.props.loader,\r\n this.state.showLoader && this.props.hasMore && this.props.loader,\r\n !this.props.hasMore && this.props.endMessage)));\r\n };\r\n return InfiniteScroll;\r\n}(Component));\n\nexport default InfiniteScroll;\n//# sourceMappingURL=index.es.js.map\n","import { useEffect, useState } from \"react\"\nimport { Avatar, Box, Button, ClickAwayListener, Link, MenuItem, Typography } from \"@mui/material\"\nimport InfiniteScroll from \"react-infinite-scroll-component\"\nimport { ALERT_MESSAGES } from \"@/constants\"\nimport { notificationApi } from \"@/api/user\"\nimport { transformNotifications } from \"@/api/transforms/user\"\nimport { getIcons, handleCloseUtil, handleRedirection } from \"@/utils\"\nimport { SetStateAction } from \"@/types\"\nimport { IState } from \"./type\"\n\ninterface IProps {\n userData: any\n setInitialState: SetStateAction<IState>\n initialState: IState\n}\n\nconst Notification = ({ setInitialState, userData, initialState }: IProps) => {\n const [notifications, setNotifications] = useState<any>([])\n const [hasMore, setHasMore] = useState(true)\n const [activeTab, setActiveTab] = useState(\"all\")\n const [page, setPage] = useState(0)\n\n const fetchData = async () => {\n setNotifications([])\n setHasMore(true)\n setPage(0)\n\n const res = await notificationApi({\n source: activeTab === \"all\" ? \"\" : activeTab,\n page: 0,\n limit: 5,\n })\n\n if (res.remote === \"success\") {\n const pager = res.data\n if (!pager.data.length && pager.current_page >= pager.last_page) {\n setHasMore(false)\n return\n }\n\n const newNotifications = pager?.data?.map((itm: any) => transformNotifications(itm))\n setNotifications(newNotifications)\n setPage(1)\n }\n }\n\n useEffect(() => {\n if (initialState.toggles.notification) {\n fetchData()\n }\n }, [activeTab, initialState.toggles.notification])\n\n const loadMoreData = async () => {\n const res = await notificationApi({\n source: activeTab === \"all\" ? \"\" : activeTab,\n page: page,\n })\n\n if (res.remote === \"success\") {\n const pager = res.data\n if (!pager || pager.current_page >= pager.last_page || !pager.total) {\n setHasMore(false)\n return\n }\n\n const newNotifications = pager?.data?.map((itm: any) => transformNotifications(itm))\n setNotifications((prev: any) => [...prev, ...newNotifications])\n setPage(prev => prev + 1)\n }\n }\n\n return (\n <ClickAwayListener onClickAway={() => handleCloseUtil(setInitialState)}>\n <Box\n sx={{\n p: 2,\n borderRadius: \"16px\",\n border: \"1px solid #EDEDED\",\n boxShadow: \"0px 12px 16px -4px #1A191914\",\n maxWidth: \"auto\",\n minWidth: { md: \"450px\", lg: \"450px\", xs: \"200px\" },\n background: \"#fff\",\n top: \"66px\",\n right: \"-60px\",\n position: \"absolute\",\n }}\n >\n <Box sx={{paddingBottom:\"8px\",display:\"flex\",borderBottom:\"1px solid #ddd\"}}>\n {userData?.appAccess?.map((tab: any) => (\n <Button\n key={tab.name}\n onClick={() => setActiveTab(tab.name)}\n sx={{\n padding: \"2px 20px\",\n fontSize: \"14px\",\n textTransform: \"capitalize\",\n background: activeTab === tab.name ? \"#007fc0\" : \"#fff\",\n color: activeTab === tab.name ? \"#fff\" : \"#007fc0\",\n borderRadius: \"0px\",\n borderTopLeftRadius: \"5px\",\n borderTopRightRadius: \"5px\",\n borderBottom: \"1px solid #007fc0\",\n }}\n >\n <Typography sx={{ textWrap: \"nowrap\" }}>{tab.name}</Typography>\n </Button>\n ))}\n </Box>\n <Box sx={{ fontSize: \"16px\", fontWeight: \"500\", mt: 1, color: \"black\" }}>{\"Notifications\"}</Box>\n <Box\n id=\"scrollableDiv\"\n sx={{\n margin: \"0px\",\n padding: \"0px 5px 0px 0px\",\n overflowY: \"auto\",\n maxHeight: \"300px\",\n }}\n >\n <InfiniteScroll\n dataLength={notifications.length}\n next={loadMoreData}\n hasMore={hasMore}\n loader={\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n pT: 1,\n }}\n >\n <Typography color={\"#000\"}>{ALERT_MESSAGES.commonLoadingMessage}</Typography>\n </Box>\n }\n scrollableTarget=\"scrollableDiv\"\n >\n {!notifications.length && !hasMore ? (\n <Typography display={\"flex\"} justifyContent={\"center\"} color=\"#000\">\n {ALERT_MESSAGES.dataNoFount}\n </Typography>\n ) : (\n notifications.map((itm: any) => (\n <MenuItem key={itm.id} sx={{ bgcolor: \"#fff\", p: 2 }}>\n <Avatar sx={{ bgcolor: \"#ccc\", mr: 1, color: \"#000\" }}>{getIcons(itm.type, itm?.source[0])}</Avatar>\n <Box sx={{ flex: 1 }}>\n <Typography\n variant=\"h4\"\n sx={{\n fontSize: \"16px\",\n fontWeight: \"500\",\n m: 0,\n color: \"black\",\n }}\n >\n {itm.title}\n </Typography>\n <Typography component=\"span\" sx={{ fontSize: \"14px\", color: \"#666\" }}>\n {itm.date}, {itm.type}\n <Link\n onClick={() => handleRedirection(itm.type, itm?.source)}\n style={{\n textDecoration: \"none\",\n color: \"rgb(25, 118, 210)\",\n marginLeft: \"5px\",\n }}\n >\n {\"View\"}\n </Link>\n </Typography>\n </Box>\n </MenuItem>\n ))\n )}\n </InfiniteScroll>\n </Box>\n </Box>\n </ClickAwayListener>\n )\n}\n\nexport default Notification\n","import { SetStateAction } from \"@/types\"\r\nimport { Box, ClickAwayListener, Grid, Link, Typography } from \"@mui/material\"\r\nimport React from \"react\"\r\nimport { IState } from \"./type\"\r\nimport { handleCloseUtil } from \"@/utils\"\r\n\r\ninterface HeaderMenuProps {\r\n menuItems: any\r\n setInitialState: SetStateAction<IState>\r\n}\r\n\r\nconst AppMenus: React.FC<HeaderMenuProps> = ({ menuItems, setInitialState }) => {\r\n return (\r\n <ClickAwayListener onClickAway={() => handleCloseUtil(setInitialState)}>\r\n <Box sx={{ p: 1 }}>\r\n <Grid container>\r\n {menuItems.map((item: any, index: number) => (\r\n <Grid\r\n component={Link}\r\n href={item.link}\r\n target=\"_blank\"\r\n item\r\n md={4}\r\n xs={6}\r\n key={index}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n <div>\r\n <Box\r\n className=\"dashboard_Boxs\"\r\n sx={{\r\n marginTop: \"10px\",\r\n textAlign: \"center\",\r\n borderRadius: \"16px\",\r\n \"& svg\": {\r\n margin: \"0 auto\",\r\n width: \"25px\",\r\n height: \"25px\",\r\n },\r\n }}\r\n >\r\n <Box>\r\n <img\r\n width={34}\r\n height={34}\r\n style={{ margin: \"0px auto\",width:\"34px\",height:\"34px\" }}\r\n src={item.icon}\r\n alt=\"\"\r\n \r\n />\r\n </Box>\r\n <Typography\r\n sx={{\r\n fontSize: \"12.5px\",\r\n color: \"#252525\",\r\n fontWeight: 500,\r\n }}\r\n >\r\n {item.name}\r\n </Typography>\r\n </Box>\r\n </div>\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </Box>\r\n </ClickAwayListener>\r\n )\r\n}\r\n\r\nexport default AppMenus\r\n","import MenuIcon from \"@mui/icons-material/Menu\"\nimport SubHeaderStyled from \"./subheaderStyled\"\nimport { Badge, Box, Container, IconButton, Typography, useMediaQuery } from \"@mui/material\"\nimport { useEffect, useState } from \"react\"\nimport { IState } from \"./type\"\nimport UserProfile from \"./userProfile\"\nimport Language from \"./language\"\nimport type { t } from \"@/types\"\nimport DropdownMenu from \"./dropDownMenu\"\nimport \"../../assets/images/us.png\"\nimport IMAGES from \"@/assets/images\"\nimport { DangerDialog } from \"../dialogs\"\nimport { handleOpenUtil } from \"@/utils\"\nimport { getDropDownMenuAPI } from \"@/api/user\"\nimport SVG from \"@/assets/svg\"\nimport Notification from \"./notification\"\nimport AppMenus from \"./appMenus\"\n\ninterface SubHeaderProps {\n isDesktopCollapsed?: boolean\n userData?: any\n interFaceLangList?: any\n endCustomComponents?: any\n frontCustomComponent?: any\n centerCustomComponents?: any\n toggleSiderMenu?: any\n updateInterfaceLang?: any\n selectedInterFaceLang?: any\n logoutHandler?: any\n logo?: any\n isMenu?: boolean\n isNotification?: boolean\n extraMenuOptions?: any\n isAccessAppMenu?: boolean\n t?: t\n sx?: any\n}\nexport const Header = ({\n frontCustomComponent,\n endCustomComponents,\n // isDesktopCollapsed = false,\n userData,\n interFaceLangList,\n // toggleSiderMenu,\n centerCustomComponents,\n // updateInterfaceLang,\n selectedInterFaceLang,\n logoutHandler,\n logo,\n isNotification,\n extraMenuOptions,\n isMenu,\n isAccessAppMenu,\n sx,\n}: SubHeaderProps) => {\n const isMobile = useMediaQuery(\"(max-width: 1324px)\")\n const [state, setState] = useState<IState>({\n languages: [],\n menuData: [],\n toggles: {\n appMenus: false,\n dropDownMenu: false,\n logout: false,\n lang: false,\n notification: false,\n },\n })\n\n const handleLogout = async () => {\n setState(p => ({ ...p, isLoading: true }))\n logoutHandler()\n }\n\n const getDropDownMenuData = async () => {\n const res = await getDropDownMenuAPI({ source: userData.appName, language_id: selectedInterFaceLang.id })\n if (res.remote === \"success\") {\n setState(p => ({ ...p, menuData: res.data }))\n }\n }\n\n useEffect(() => {\n if (isMenu) {\n getDropDownMenuData()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMenu])\n return (\n <>\n <SubHeaderStyled sx={sx}>\n <Container maxWidth={false} sx={{ display: \"flex\", justifyContent: \"space-between\",alignItems:\"center\" }}>\n <Box sx={{ position: \"relative\" }}>\n {logo}\n {frontCustomComponent}\n </Box>\n <Box sx={{ position: \"relative\" }}>\n {isMenu && (\n <DropdownMenu headerMenuArray={state.menuData} setInitialState={setState} initialState={state} />\n )}\n {centerCustomComponents}\n </Box>\n <Box\n sx={{\n margin: { md: \"10px\", lg: \"10px\", xs: \"10px 0\" },\n position: \"relative\",\n }}\n >\n <Box className=\"notification\">\n {endCustomComponents}\n {isAccessAppMenu && (\n <Box>\n <Box\n sx={{\n mr: { md: 2, lg: 2, xs: \"0px\" },\n display: \"flex\",\n alignItems: \"center\",\n ml: { md: 1.5, lg: 1.5, xs: \"5px\" },\n cursor: \"pointer\",\n width: \"auto\",\n height: \"auto\",\n \"& svg\": {\n color: \"#808080\",\n width: { md: \"40px\", lg: \"40px\", xs: \"30px\" },\n height: { md: \"40px\", lg: \"40px\", xs: \"30px\" },\n },\n }}\n data-toggle-name=\"appMenus\"\n onClick={e => handleOpenUtil(e, setState)}\n >\n <SVG.GridIcon />\n </Box>\n {state.toggles.appMenus && userData?.appAccess?.length && (\n <Box className=\"profile headerMenu\">\n <AppMenus menuItems={userData?.appAccess} setInitialState={setState} />\n </Box>\n )}\n </Box>\n )}\n {Boolean(interFaceLangList?.length) && (\n <Box sx={{ position: \"relative\" }}>\n <Typography\n data-toggle-name=\"lang\"\n onClick={e => handleOpenUtil(e, setState)}\n sx={{\n display: \"inline-flex\",\n gap: \"5px\",\n alignItems: \"center\",\n color: \"#777777\",\n cursor: \"pointer\",\n margin: {\n md: \"10px\",\n lg: \"10px\",\n xs: \"10px 3px!important\",\n },\n }}\n >\n <img width={40} height={30} alt={\"lang\"} src={selectedInterFaceLang?.flag || IMAGES.Us} />\n <Box sx={{ margin: \"2px 0px 0px 2px\" }}>\n <SVG.Dawn />\n </Box>\n </Typography>\n {state.toggles.lang && (\n <Language\n setInitialState={setState}\n interFaceLangList={interFaceLangList}\n userData={userData}\n // updateInterfaceLang={updateInterfaceLang}\n setState={setState}\n selectedInterFaceLang={selectedInterFaceLang}\n />\n )}\n </Box>\n )}\n {isNotification && (\n <Box sx={{ position: \"relative\" }}>\n <Typography\n sx={{\n cursor: \"pointer\",\n margin: {\n md: \"10px\",\n lg: \"10px\",\n xs: \"10px 3px!important\",\n },\n }}\n data-toggle-name=\"notification\"\n onClick={e => handleOpenUtil(e, setState)}\n >\n <Badge badgeContent={userData?.notificationCount} color=\"error\" className=\"notification_icon_error\">\n <SVG.Bell />\n </Badge>\n </Typography>\n {state.toggles.notification && (\n <Box>\n <Notification initialState={state} userData={userData} setInitialState={setState} />\n </Box>\n )}\n </Box>\n )}\n {Boolean(userData?.fullName) && (\n <UserProfile\n userData={userData}\n initialState={state}\n setInitialState={setState}\n extraMenuOptions={extraMenuOptions}\n />\n )}\n {isMobile && isMenu && (\n <IconButton\n className=\"hamburger-icon-btn\"\n onClick={() =>\n setState(p => ({ ...p, toggles: { ...p.toggles, dropDownMenu: !p.toggles.dropDownMenu } }))\n }\n >\n <MenuIcon style={{width: \"20px\", height: \"20px\"}} />\n </IconButton>\n )}\n </Box>\n </Box>\n </Container>\n </SubHeaderStyled>\n <DangerDialog\n handleClick={handleLogout}\n open={state.toggles.logout}\n setInitialState={setState}\n buttonTitle=\"Logout\"\n description=\"Are you sure you want to logout\"\n title=\"Logout\"\n />\n </>\n )\n}\n","import SVG from \"@/assets/svg\"\r\nimport { ROUTES } from \"@/constants\"\r\nimport { url } from \"@/utils\"\r\nimport { Box, SxProps } from \"@mui/material\"\r\ninterface IProps {\r\n sx?: SxProps\r\n}\r\n\r\nfunction Logo({ sx }: IProps) {\r\n return (\r\n <Box\r\n sx={{\r\n cursor: \"pointer\",\r\n p: 2,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n ...sx,\r\n }}\r\n onClick={() => url(ROUTES.home)}\r\n >\r\n <SVG.Logo />\r\n </Box>\r\n )\r\n}\r\n\r\nexport default Logo\r\n","import { Header } from \"@/components\"\nimport SVG from \"./assets/svg\"\nimport { Box, Stack, Typography } from \"@mui/material\"\nimport Logo from \"./components/elements/logo\"\nimport \"./styles.css\"\n\nconst App = () => {\n return (\n <>\n <Header\n isDesktopCollapsed\n isAccessAppMenu\n userData={{\n userprofile: \"\",\n email: \"sanskar.sahu@digimonk.in\",\n role: \"Master\",\n fullName: \"sanskar sahu\",\n appName: \"Tools\",\n appAccess: [\n {\n name: \"Tools\",\n icon: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/dashboard/tools.svg\",\n link: \"https://tools.6seconds.org\",\n },\n {\n name: \"Cards Home\",\n icon: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/dashboard/cardshome.svg\",\n link: \"https://cards.6seconds.org\",\n },\n {\n name: \"Settings\",\n icon: \"/app-icons/Settings.svg\",\n link: \"/settings.svg\",\n },\n {\n name: \"Translations\",\n icon: \"/translate.svg\",\n link: \"/translations\",\n },\n ],\n notificationCount: 10,\n }}\n interFaceLangList={[\n {\n label: \"Chinese\",\n value: 4,\n flag: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/flags/1736568764.png\",\n },\n {\n label: \"English (US)\",\n value: 2,\n flag: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/flags/1735277288.png\",\n },\n {\n label: \"Spanish\",\n value: 3,\n flag: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/flags/1735277337.png\",\n },\n ]}\n updateInterfaceLang={[]}\n selectedInterFaceLang={{\n label: \"Spanish\",\n value: 3,\n flag: \"https://cert-6seconds.s3.us-west-2.amazonaws.com/uploads/flags/1735277337.png\",\n }}\n logo={<Logo />}\n isNotification\n extraMenuOptions={{\n components: (\n <>\n <li>\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"} sx={{ cursor: \"pointer\" }}>\n <SVG.CheckedPerson />\n <Box sx={{ flex: 1 }}>\n <Typography\n variant=\"h4\"\n sx={{\n color: \"#1A1919\",\n fontSize: \"16px\",\n fontWeight: \"400\",\n m: 0,\n }}\n >\n {\"extraMenuOptions\"}\n </Typography>\n </Box>\n </Stack>\n </li>\n <li>\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"} sx={{ cursor: \"pointer\" }}>\n <SVG.CheckedPerson />\n <Box sx={{ flex: 1 }}>\n <Typography\n variant=\"h4\"\n sx={{\n color: \"#1A1919\",\n fontSize: \"16px\",\n fontWeight: \"400\",\n m: 0,\n }}\n >\n {\"extraMenuOptions\"}\n </Typography>\n </Box>\n </Stack>\n </li>\n <li>\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"} sx={{ cursor: \"pointer\" }}>\n <SVG.CheckedPerson />\n <Box sx={{ flex: 1 }}>\n <Typography\n variant=\"h4\"\n sx={{\n color: \"#1A1919\",\n fontSize: \"16px\",\n fontWeight: \"400\",\n m: 0,\n }}\n >\n {\"extraMenuOptions\"}\n </Typography>\n </Box>\n </Stack>\n </li>\n </>\n ),\n isViewProfile: true,\n isChangePassword: true,\n isEditProfile: true,\n }}\n isMenu\n t={() => \"\"}\n />\n </>\n )\n}\n\nexport { Header } from \"./components\"\n\nexport default App\n"],"names":["React","UserEdit","Logout","CheckedPerson","Credits","Bell","Dawn","Folder","Logo","Printer","Stock","Scanner","GridIcon","styled","AppBar","url","createElement","format","locale","to","from","now","sign","token","ordinal","i","diff","localeData","hours","minutes","tokens","meridiem","years","months","weeks","days","seconds","milliseconds","offset","thresholds","moment","useState","jsxs","Fragment","Box","jsx","Avatar","ClickAwayListener","Stack","Typography","Link","lang","useMediaQuery","index","items","Dialog","Button","__assign","this","urlcat","d","b","InfiniteScroll","Component","useEffect","MenuItem","Grid","Container","Badge","IconButton"],"mappings":"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","x_google_ignoreList":[14,20,28,32]}