@jenesei-software/jenesei-kit-react 1.3.39 → 2.0.0
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.
- package/README.md +0 -37
- package/build/AnimatePresence-BByJ67dn.js +134 -0
- package/build/AnimatePresence-BByJ67dn.js.map +1 -0
- package/build/AnimatePresence-BtUPiqYm.cjs +11 -0
- package/build/AnimatePresence-BtUPiqYm.cjs.map +1 -0
- package/build/area-outside.cjs.js +1 -2
- package/build/area-outside.d.ts +2 -28
- package/build/area-outside.es.js +2 -3
- package/build/area-preview.cjs.js +1 -2
- package/build/area-preview.d.ts +2 -48
- package/build/area-preview.es.js +3 -5
- package/build/area-skeleton.cjs.js +1 -2
- package/build/area-skeleton.d.ts +2 -68
- package/build/area-skeleton.es.js +2 -4
- package/build/areas/outside/area.d.ts +7 -0
- package/build/areas/outside/index.d.ts +1 -0
- package/build/areas/preview/area.d.ts +3 -0
- package/build/areas/preview/area.hooks.d.ts +1 -0
- package/build/areas/preview/area.types.d.ts +19 -0
- package/build/areas/preview/index.d.ts +3 -0
- package/build/areas/skeleton/area.d.ts +3 -0
- package/build/areas/skeleton/area.types.d.ts +21 -0
- package/build/areas/skeleton/index.d.ts +2 -0
- package/build/build-info.txt +3 -3
- package/build/button-C5PgNYns.cjs +3 -0
- package/build/button-C5PgNYns.cjs.map +1 -0
- package/build/button-D8zdhI-0.js +102 -0
- package/build/button-D8zdhI-0.js.map +1 -0
- package/build/checkbox-Ba0-4wxk.js +98 -0
- package/build/checkbox-Ba0-4wxk.js.map +1 -0
- package/build/checkbox-BtkbSjHq.cjs +3 -0
- package/build/checkbox-BtkbSjHq.cjs.map +1 -0
- package/build/chunk-CW3en5xf.cjs +1 -0
- package/build/chunk-D1xtDmiO.js +31 -0
- package/build/component-6HgOL-7c.js +71 -0
- package/build/component-6HgOL-7c.js.map +1 -0
- package/build/component-BjdeqpEq.cjs +3 -0
- package/build/component-BjdeqpEq.cjs.map +1 -0
- package/build/component-button.cjs.js +1 -2
- package/build/component-button.d.ts +2 -208
- package/build/component-button.es.js +2 -5
- package/build/component-checkbox.cjs.js +1 -2
- package/build/component-checkbox.d.ts +2 -208
- package/build/component-checkbox.es.js +2 -8
- package/build/component-date-picker.cjs.js +1 -2
- package/build/component-date-picker.d.ts +2 -582
- package/build/component-date-picker.es.js +2 -19
- package/build/component-icon.cjs.js +1 -2
- package/build/component-icon.d.ts +2 -136
- package/build/component-icon.es.js +4 -8
- package/build/component-input-otp.cjs.js +1 -2
- package/build/component-input-otp.d.ts +2 -211
- package/build/component-input-otp.es.js +2 -7
- package/build/component-input.cjs.js +1 -2
- package/build/component-input.d.ts +2 -286
- package/build/component-input.es.js +2 -18
- package/build/component-pagination.cjs.js +1 -2
- package/build/component-pagination.d.ts +2 -196
- package/build/component-pagination.es.js +2 -4
- package/build/component-popover.cjs.js +1 -0
- package/build/component-popover.d.ts +2 -0
- package/build/component-popover.es.js +5 -0
- package/build/component-select.cjs.js +1 -2
- package/build/component-select.d.ts +2 -411
- package/build/component-select.es.js +6 -18
- package/build/component-separator.cjs.js +1 -2
- package/build/component-separator.d.ts +2 -49
- package/build/component-separator.es.js +2 -5
- package/build/component-stack.cjs.js +1 -2
- package/build/component-stack.d.ts +2 -72
- package/build/component-stack.es.js +3 -6
- package/build/component-textarea.cjs.js +1 -2
- package/build/component-textarea.d.ts +2 -202
- package/build/component-textarea.es.js +2 -6
- package/build/component-toggle.cjs.js +1 -2
- package/build/component-toggle.d.ts +2 -150
- package/build/component-toggle.es.js +2 -6
- package/build/component-tooltip.cjs.js +1 -2
- package/build/component-tooltip.d.ts +2 -360
- package/build/component-tooltip.es.js +2 -10
- package/build/component-typography.cjs.js +1 -2
- package/build/component-typography.d.ts +2 -316
- package/build/component-typography.es.js +3 -9
- package/build/components/button/component.d.ts +3 -0
- package/build/components/button/component.types.d.ts +41 -0
- package/build/components/button/index.d.ts +2 -0
- package/build/components/checkbox/component.d.ts +3 -0
- package/build/components/checkbox/component.types.d.ts +51 -0
- package/build/components/checkbox/index.d.ts +2 -0
- package/build/components/date-picker/component.d.ts +2 -0
- package/build/components/date-picker/component.types.d.ts +86 -0
- package/build/components/date-picker/index.d.ts +2 -0
- package/build/components/error/component.d.ts +3 -0
- package/build/components/error/component.types.d.ts +11 -0
- package/build/components/error/index.d.ts +2 -0
- package/build/components/icon/component.consts.d.ts +6 -0
- package/build/components/icon/component.d.ts +9 -0
- package/build/components/icon/component.functions.d.ts +2 -0
- package/build/components/icon/component.hooks.d.ts +5 -0
- package/build/components/icon/component.types.d.ts +47 -0
- package/build/components/icon/index.d.ts +4 -0
- package/build/components/input/component.d.ts +6 -0
- package/build/components/input/component.types.d.ts +78 -0
- package/build/components/input/index.d.ts +2 -0
- package/build/components/input-otp/component.d.ts +2 -0
- package/build/components/input-otp/component.types.d.ts +8 -0
- package/build/components/input-otp/index.d.ts +2 -0
- package/build/components/pagination/component.constants.d.ts +1 -0
- package/build/components/pagination/component.d.ts +3 -0
- package/build/components/pagination/component.types.d.ts +22 -0
- package/build/components/pagination/index.d.ts +2 -0
- package/build/components/popover/component.constants.d.ts +3 -0
- package/build/components/popover/component.d.ts +34 -0
- package/build/components/popover/component.types.d.ts +113 -0
- package/build/components/popover/index.d.ts +2 -0
- package/build/components/select/component.d.ts +4 -0
- package/build/components/select/component.examples.d.ts +6 -0
- package/build/components/select/component.types.d.ts +109 -0
- package/build/components/select/index.d.ts +3 -0
- package/build/components/separator/component.d.ts +3 -0
- package/build/components/separator/component.types.d.ts +10 -0
- package/build/components/separator/index.d.ts +2 -0
- package/build/components/stack/component.d.ts +4 -0
- package/build/components/stack/component.types.d.ts +20 -0
- package/build/components/stack/index.d.ts +2 -0
- package/build/components/textarea/component.d.ts +2 -0
- package/build/components/textarea/component.types.d.ts +67 -0
- package/build/components/textarea/index.d.ts +2 -0
- package/build/components/toggle/component.d.ts +2 -0
- package/build/components/toggle/component.types.d.ts +25 -0
- package/build/components/toggle/index.d.ts +2 -0
- package/build/components/tooltip/component.constants.d.ts +3 -0
- package/build/components/tooltip/component.d.ts +4 -0
- package/build/components/tooltip/component.types.d.ts +12 -0
- package/build/components/tooltip/index.d.ts +2 -0
- package/build/components/typography/component.d.ts +3 -0
- package/build/components/typography/component.types.d.ts +18 -0
- package/build/components/typography/index.d.ts +2 -0
- package/build/components-error.cjs.js +1 -0
- package/build/components-error.d.ts +2 -0
- package/build/components-error.es.js +4 -0
- package/build/context-app-4_kY3Qcd.js +417 -0
- package/build/context-app-4_kY3Qcd.js.map +1 -0
- package/build/context-app-DKsS6_WR.cjs +9 -0
- package/build/context-app-DKsS6_WR.cjs.map +1 -0
- package/build/context-app.cjs.js +1 -2
- package/build/context-app.d.ts +2 -224
- package/build/context-app.es.js +3 -19
- package/build/context-browser-theme-CPhqqRUP.js +35 -0
- package/build/context-browser-theme-CPhqqRUP.js.map +1 -0
- package/build/context-browser-theme-o9geUlSH.cjs +3 -0
- package/build/context-browser-theme-o9geUlSH.cjs.map +1 -0
- package/build/context-browser-theme.cjs.js +1 -0
- package/build/context-browser-theme.d.ts +2 -0
- package/build/context-browser-theme.es.js +5 -0
- package/build/context-cookie-5CBhf-gb.js +138 -0
- package/build/context-cookie-5CBhf-gb.js.map +1 -0
- package/build/context-cookie-CvTU44MD.cjs +3 -0
- package/build/context-cookie-CvTU44MD.cjs.map +1 -0
- package/build/context-cookie.cjs.js +1 -2
- package/build/context-cookie.d.ts +2 -67
- package/build/context-cookie.es.js +3 -8
- package/build/context-dialog-CCnhd1EY.cjs +3 -0
- package/build/context-dialog-CCnhd1EY.cjs.map +1 -0
- package/build/context-dialog-HLeQ5WNn.js +176 -0
- package/build/context-dialog-HLeQ5WNn.js.map +1 -0
- package/build/context-dialog.cjs.js +1 -2
- package/build/context-dialog.d.ts +2 -106
- package/build/context-dialog.es.js +4 -17
- package/build/context-geolocation-C7PYGQ2g.js +42 -0
- package/build/context-geolocation-C7PYGQ2g.js.map +1 -0
- package/build/context-geolocation-ffFFV4kn.cjs +3 -0
- package/build/context-geolocation-ffFFV4kn.cjs.map +1 -0
- package/build/context-geolocation.cjs.js +1 -2
- package/build/context-geolocation.d.ts +2 -22
- package/build/context-geolocation.es.js +3 -6
- package/build/context-local-storage-Bb_vktd8.js +83 -0
- package/build/context-local-storage-Bb_vktd8.js.map +1 -0
- package/build/context-local-storage-kmxWNK_4.cjs +3 -0
- package/build/context-local-storage-kmxWNK_4.cjs.map +1 -0
- package/build/context-local-storage.cjs.js +1 -2
- package/build/context-local-storage.d.ts +2 -54
- package/build/context-local-storage.es.js +3 -8
- package/build/context-permission-Co4BKDOu.js +77 -0
- package/build/context-permission-Co4BKDOu.js.map +1 -0
- package/build/context-permission-K3tWOiAx.cjs +3 -0
- package/build/context-permission-K3tWOiAx.cjs.map +1 -0
- package/build/context-permission.cjs.js +1 -2
- package/build/context-permission.d.ts +2 -28
- package/build/context-permission.es.js +3 -7
- package/build/context-screen-width-CEsyIyg6.js +53 -0
- package/build/context-screen-width-CEsyIyg6.js.map +1 -0
- package/build/context-screen-width-ind6z7Ny.cjs +3 -0
- package/build/context-screen-width-ind6z7Ny.cjs.map +1 -0
- package/build/context-screen-width.cjs.js +1 -2
- package/build/context-screen-width.d.ts +2 -34
- package/build/context-screen-width.es.js +3 -5
- package/build/context-sonner-Bniiz914.js +218 -0
- package/build/context-sonner-Bniiz914.js.map +1 -0
- package/build/context-sonner-L0OMEvZE.cjs +3 -0
- package/build/context-sonner-L0OMEvZE.cjs.map +1 -0
- package/build/context-sonner.cjs.js +1 -2
- package/build/context-sonner.d.ts +2 -457
- package/build/context-sonner.es.js +3 -20
- package/build/contexts/context-app/context.d.ts +33 -0
- package/build/contexts/context-app/context.hooks.d.ts +2 -0
- package/build/contexts/context-app/context.styles.d.ts +14 -0
- package/build/contexts/context-app/context.types.d.ts +87 -0
- package/build/contexts/context-app/index.d.ts +2 -0
- package/build/contexts/context-browser-theme/context.d.ts +4 -0
- package/build/contexts/context-browser-theme/context.hooks.d.ts +2 -0
- package/build/contexts/context-browser-theme/context.types.d.ts +12 -0
- package/build/contexts/context-browser-theme/index.d.ts +2 -0
- package/build/contexts/context-cookie/context.d.ts +27 -0
- package/build/contexts/context-cookie/context.functions.d.ts +3 -0
- package/build/contexts/context-cookie/context.hooks.d.ts +9 -0
- package/build/contexts/context-cookie/context.types.d.ts +18 -0
- package/build/contexts/context-cookie/index.d.ts +3 -0
- package/build/contexts/context-dialog/context.constants.d.ts +8 -0
- package/build/contexts/context-dialog/context.d.ts +4 -0
- package/build/contexts/context-dialog/context.hooks.d.ts +3 -0
- package/build/contexts/context-dialog/context.styles.d.ts +9 -0
- package/build/contexts/context-dialog/context.types.d.ts +47 -0
- package/build/contexts/context-dialog/index.d.ts +3 -0
- package/build/contexts/context-geolocation/context.d.ts +4 -0
- package/build/contexts/context-geolocation/context.hooks.d.ts +2 -0
- package/build/contexts/context-geolocation/context.types.d.ts +10 -0
- package/build/contexts/context-geolocation/index.d.ts +2 -0
- package/build/contexts/context-local-storage/context.d.ts +21 -0
- package/build/contexts/context-local-storage/context.functions.d.ts +2 -0
- package/build/contexts/context-local-storage/context.hooks.d.ts +5 -0
- package/build/contexts/context-local-storage/context.types.d.ts +16 -0
- package/build/contexts/context-local-storage/index.d.ts +3 -0
- package/build/contexts/context-permission/context.d.ts +3 -0
- package/build/contexts/context-permission/context.functions.d.ts +1 -0
- package/build/contexts/context-permission/context.hooks.d.ts +5 -0
- package/build/contexts/context-permission/context.types.d.ts +11 -0
- package/build/contexts/context-permission/index.d.ts +2 -0
- package/build/contexts/context-screen-width/context.d.ts +4 -0
- package/build/contexts/context-screen-width/context.hooks.d.ts +2 -0
- package/build/contexts/context-screen-width/context.types.d.ts +11 -0
- package/build/contexts/context-screen-width/index.d.ts +3 -0
- package/build/contexts/context-sonner/context.constants.d.ts +9 -0
- package/build/contexts/context-sonner/context.d.ts +4 -0
- package/build/contexts/context-sonner/context.hooks.d.ts +2 -0
- package/build/contexts/context-sonner/context.styles.d.ts +30 -0
- package/build/contexts/context-sonner/context.types.d.ts +59 -0
- package/build/contexts/context-sonner/index.d.ts +3 -0
- package/build/cores/consts.d.ts +30 -0
- package/build/{functions.d.ts → cores/functions.d.ts} +18 -22
- package/build/cores/logger.d.ts +1 -0
- package/build/cores/types.d.ts +18 -0
- package/build/date-picker-CQUe3ZXt.cjs +3 -0
- package/build/date-picker-CQUe3ZXt.cjs.map +1 -0
- package/build/date-picker-z3LcE7Ab.js +689 -0
- package/build/date-picker-z3LcE7Ab.js.map +1 -0
- package/build/dist-C8r_OdG1.cjs +3 -0
- package/build/dist-C8r_OdG1.cjs.map +1 -0
- package/build/dist-Dq_YJa2q.js +483 -0
- package/build/dist-Dq_YJa2q.js.map +1 -0
- package/build/error--kiPVmoi.cjs +3 -0
- package/build/error--kiPVmoi.cjs.map +1 -0
- package/build/error-D1UNY-0f.js +50 -0
- package/build/error-D1UNY-0f.js.map +1 -0
- package/build/functions-CLGf7hqw.js +20 -0
- package/build/functions-CLGf7hqw.js.map +1 -0
- package/build/functions-Dwo54amB.cjs +3 -0
- package/build/functions-Dwo54amB.cjs.map +1 -0
- package/build/hooks/use-debounced-callback/index.d.ts +1 -0
- package/build/hooks/use-debounced-callback/use.d.ts +1 -0
- package/build/hooks/use-deep-compare-memoize/index.d.ts +1 -0
- package/build/hooks/use-deep-compare-memoize/use.d.ts +1 -0
- package/build/hooks/use-deep-memo/index.d.ts +1 -0
- package/build/hooks/use-deep-memo/use.d.ts +1 -0
- package/build/hooks/use-merge-refs/index.d.ts +1 -0
- package/build/hooks/use-merge-refs/use.d.ts +2 -0
- package/build/hooks/use-overflowing/index.d.ts +2 -0
- package/build/hooks/use-overflowing/use.d.ts +12 -0
- package/build/hooks/use-overflowing/use.types.d.ts +6 -0
- package/build/hooks/use-overflowing-advanced/index.d.ts +2 -0
- package/build/hooks/use-overflowing-advanced/use.d.ts +7 -0
- package/build/hooks/use-overflowing-advanced/use.types.d.ts +5 -0
- package/build/hooks/use-overflowing-in-container/index.d.ts +2 -0
- package/build/hooks/use-overflowing-in-container/use.d.ts +7 -0
- package/build/hooks/use-overflowing-in-container/use.types.d.ts +7 -0
- package/build/hooks/use-responsive-layout/index.d.ts +1 -0
- package/build/hooks/use-responsive-layout/use.d.ts +2 -0
- package/build/hooks/use-typography-styles/index.d.ts +2 -0
- package/build/hooks/use-typography-styles/use.d.ts +2 -0
- package/build/hooks/use-typography-styles/use.types.d.ts +11 -0
- package/build/hooks-use-debounced-callback.cjs.js +3 -2
- package/build/hooks-use-debounced-callback.cjs.js.map +1 -1
- package/build/hooks-use-debounced-callback.d.ts +2 -3
- package/build/hooks-use-debounced-callback.es.js +12 -3
- package/build/hooks-use-debounced-callback.es.js.map +1 -1
- package/build/hooks-use-deep-compare-memoize.cjs.js +3 -2
- package/build/hooks-use-deep-compare-memoize.cjs.js.map +1 -1
- package/build/hooks-use-deep-compare-memoize.d.ts +2 -3
- package/build/hooks-use-deep-compare-memoize.es.js +10 -3
- package/build/hooks-use-deep-compare-memoize.es.js.map +1 -1
- package/build/hooks-use-deep-memo.cjs.js +3 -0
- package/build/hooks-use-deep-memo.cjs.js.map +1 -0
- package/build/hooks-use-deep-memo.d.ts +2 -0
- package/build/hooks-use-deep-memo.es.js +13 -0
- package/build/hooks-use-deep-memo.es.js.map +1 -0
- package/build/hooks-use-merge-refs.cjs.js +3 -0
- package/build/hooks-use-merge-refs.cjs.js.map +1 -0
- package/build/hooks-use-merge-refs.d.ts +2 -0
- package/build/hooks-use-merge-refs.es.js +13 -0
- package/build/hooks-use-merge-refs.es.js.map +1 -0
- package/build/hooks-use-overflowing-advanced.cjs.js +3 -0
- package/build/hooks-use-overflowing-advanced.cjs.js.map +1 -0
- package/build/hooks-use-overflowing-advanced.d.ts +2 -0
- package/build/hooks-use-overflowing-advanced.es.js +24 -0
- package/build/hooks-use-overflowing-advanced.es.js.map +1 -0
- package/build/hooks-use-overflowing-in-container.cjs.js +3 -0
- package/build/hooks-use-overflowing-in-container.cjs.js.map +1 -0
- package/build/hooks-use-overflowing-in-container.d.ts +2 -0
- package/build/hooks-use-overflowing-in-container.es.js +20 -0
- package/build/hooks-use-overflowing-in-container.es.js.map +1 -0
- package/build/hooks-use-overflowing.cjs.js +3 -0
- package/build/hooks-use-overflowing.cjs.js.map +1 -0
- package/build/hooks-use-overflowing.d.ts +2 -0
- package/build/hooks-use-overflowing.es.js +28 -0
- package/build/hooks-use-overflowing.es.js.map +1 -0
- package/build/hooks-use-responsive-layout.cjs.js +3 -0
- package/build/hooks-use-responsive-layout.cjs.js.map +1 -0
- package/build/hooks-use-responsive-layout.d.ts +2 -0
- package/build/hooks-use-responsive-layout.es.js +22 -0
- package/build/hooks-use-responsive-layout.es.js.map +1 -0
- package/build/hooks-use-typography-styles.cjs.js +3 -0
- package/build/hooks-use-typography-styles.cjs.js.map +1 -0
- package/build/hooks-use-typography-styles.d.ts +2 -0
- package/build/hooks-use-typography-styles.es.js +37 -0
- package/build/hooks-use-typography-styles.es.js.map +1 -0
- package/build/icon-BG6R5Lfa.js +277 -0
- package/build/icon-BG6R5Lfa.js.map +1 -0
- package/build/icon-CreblPsB.cjs +3 -0
- package/build/icon-CreblPsB.cjs.map +1 -0
- package/build/index.cjs.js +1 -2
- package/build/index.d.ts +39 -2494
- package/build/index.es.js +104 -309
- package/build/input-CWcWWMCp.cjs +11 -0
- package/build/input-CWcWWMCp.cjs.map +1 -0
- package/build/input-DqMLnOz5.js +917 -0
- package/build/input-DqMLnOz5.js.map +1 -0
- package/build/input-otp-DPp3qmvI.js +106 -0
- package/build/input-otp-DPp3qmvI.js.map +1 -0
- package/build/input-otp-Z_wz6o6L.cjs +3 -0
- package/build/input-otp-Z_wz6o6L.cjs.map +1 -0
- package/build/isEqual-VCZu3vai.js +675 -0
- package/build/isEqual-VCZu3vai.js.map +1 -0
- package/build/isEqual-wc3RBuBi.cjs +3 -0
- package/build/isEqual-wc3RBuBi.cjs.map +1 -0
- package/build/logger-BRWLzI5S.js +174 -0
- package/build/logger-BRWLzI5S.js.map +1 -0
- package/build/logger-DZFY33QY.cjs +5 -0
- package/build/logger-DZFY33QY.cjs.map +1 -0
- package/build/motion-BeQRGZxW.cjs +3 -0
- package/build/motion-BeQRGZxW.cjs.map +1 -0
- package/build/motion-Ot_yGWVJ.js +128 -0
- package/build/motion-Ot_yGWVJ.js.map +1 -0
- package/build/outside-BtjOuCPD.js +24 -0
- package/build/outside-BtjOuCPD.js.map +1 -0
- package/build/outside-DJ1B9sBT.cjs +3 -0
- package/build/outside-DJ1B9sBT.cjs.map +1 -0
- package/build/pagination-BnvQ1aha.cjs +3 -0
- package/build/pagination-BnvQ1aha.cjs.map +1 -0
- package/build/pagination-CpaP3Svg.js +110 -0
- package/build/pagination-CpaP3Svg.js.map +1 -0
- package/build/popover-1k1MNFwv.js +1948 -0
- package/build/popover-1k1MNFwv.js.map +1 -0
- package/build/popover-fte_EMYr.cjs +3 -0
- package/build/popover-fte_EMYr.cjs.map +1 -0
- package/build/preview-BvJN6QoV.js +65 -0
- package/build/preview-BvJN6QoV.js.map +1 -0
- package/build/preview-CG76AiC9.cjs +3 -0
- package/build/preview-CG76AiC9.cjs.map +1 -0
- package/build/proxy-D2Z8K6jr.cjs +3 -0
- package/build/proxy-D2Z8K6jr.cjs.map +1 -0
- package/build/proxy-DTLy-pV-.js +4354 -0
- package/build/proxy-DTLy-pV-.js.map +1 -0
- package/build/select-B4JeEvIF.js +3443 -0
- package/build/select-B4JeEvIF.js.map +1 -0
- package/build/select-BQtWzaxE.cjs +9 -0
- package/build/select-BQtWzaxE.cjs.map +1 -0
- package/build/separator-BXoT44nC.cjs +3 -0
- package/build/separator-BXoT44nC.cjs.map +1 -0
- package/build/separator-hWp-s54-.js +29 -0
- package/build/separator-hWp-s54-.js.map +1 -0
- package/build/skeleton-BOfnrUaI.cjs +3 -0
- package/build/skeleton-BOfnrUaI.cjs.map +1 -0
- package/build/skeleton-Bzr92XmL.js +39 -0
- package/build/skeleton-Bzr92XmL.js.map +1 -0
- package/build/style-motion.cjs.js +1 -2
- package/build/style-motion.d.ts +2 -20
- package/build/style-motion.es.js +5 -6
- package/build/style-utils.cjs.js +1 -0
- package/build/style-utils.d.ts +2 -0
- package/build/style-utils.es.js +7 -0
- package/build/styles/motion/index.d.ts +1 -0
- package/build/styles/motion/motion.d.ts +13 -0
- package/build/styles/utils/constants.d.ts +1797 -0
- package/build/styles/utils/functions.d.ts +3 -0
- package/build/styles/utils/index.d.ts +3 -0
- package/build/styles/utils/types.d.ts +68 -0
- package/build/textarea-BRzorAFw.cjs +3 -0
- package/build/textarea-BRzorAFw.cjs.map +1 -0
- package/build/textarea-BssfjUe3.js +132 -0
- package/build/textarea-BssfjUe3.js.map +1 -0
- package/build/toggle-BFp9Nmas.cjs +3 -0
- package/build/toggle-BFp9Nmas.cjs.map +1 -0
- package/build/toggle-CCfZoBpW.js +86 -0
- package/build/toggle-CCfZoBpW.js.map +1 -0
- package/build/typography-B2KioMfq.js +116 -0
- package/build/typography-B2KioMfq.js.map +1 -0
- package/build/typography-whjfut7N.cjs +3 -0
- package/build/typography-whjfut7N.cjs.map +1 -0
- package/build/utils-Cona48dZ.js +925 -0
- package/build/utils-Cona48dZ.js.map +1 -0
- package/build/utils-DtinAjAU.cjs +3 -0
- package/build/utils-DtinAjAU.cjs.map +1 -0
- package/build/v4-BDi_Luux.cjs +3 -0
- package/build/v4-BDi_Luux.cjs.map +1 -0
- package/build/v4-CYaPyb-W.js +31 -0
- package/build/v4-CYaPyb-W.js.map +1 -0
- package/package.json +189 -194
- package/build/area-0BNtBqG8.cjs +0 -2
- package/build/area-0BNtBqG8.cjs.map +0 -1
- package/build/area-B6xxVQ87.js +0 -35
- package/build/area-B6xxVQ87.js.map +0 -1
- package/build/area-B7-4IFQB.js +0 -19
- package/build/area-B7-4IFQB.js.map +0 -1
- package/build/area-DxKLtDFZ.cjs +0 -2
- package/build/area-DxKLtDFZ.cjs.map +0 -1
- package/build/area-outside.cjs.js.map +0 -1
- package/build/area-outside.es.js.map +0 -1
- package/build/area-preview.cjs.js.map +0 -1
- package/build/area-preview.es.js.map +0 -1
- package/build/area-scroll.cjs.js +0 -2
- package/build/area-scroll.cjs.js.map +0 -1
- package/build/area-scroll.d.ts +0 -57
- package/build/area-scroll.es.js +0 -7
- package/build/area-scroll.es.js.map +0 -1
- package/build/area-skeleton.cjs.js.map +0 -1
- package/build/area-skeleton.es.js.map +0 -1
- package/build/area-smooth.cjs.js +0 -2
- package/build/area-smooth.cjs.js.map +0 -1
- package/build/area-smooth.d.ts +0 -37
- package/build/area-smooth.es.js +0 -5
- package/build/area-smooth.es.js.map +0 -1
- package/build/area.hooks-Bk04M7mk.js +0 -26
- package/build/area.hooks-Bk04M7mk.js.map +0 -1
- package/build/area.hooks-C_UKZzcb.cjs +0 -2
- package/build/area.hooks-C_UKZzcb.cjs.map +0 -1
- package/build/area.styles-Cpx4H0gc.cjs +0 -27
- package/build/area.styles-Cpx4H0gc.cjs.map +0 -1
- package/build/area.styles-DhCCEhuq.js +0 -32
- package/build/area.styles-DhCCEhuq.js.map +0 -1
- package/build/component-B0PbrKuJ.cjs +0 -2
- package/build/component-B0PbrKuJ.cjs.map +0 -1
- package/build/component-BBrKC5hB.js +0 -84
- package/build/component-BBrKC5hB.js.map +0 -1
- package/build/component-BMIqhbpK.js +0 -23
- package/build/component-BMIqhbpK.js.map +0 -1
- package/build/component-BlEglNo9.js +0 -60
- package/build/component-BlEglNo9.js.map +0 -1
- package/build/component-CONSm7hH.cjs +0 -2
- package/build/component-CONSm7hH.cjs.map +0 -1
- package/build/component-CPVG0orB.js +0 -50
- package/build/component-CPVG0orB.js.map +0 -1
- package/build/component-CTrSBI75.js +0 -64
- package/build/component-CTrSBI75.js.map +0 -1
- package/build/component-CWawez-M.js +0 -443
- package/build/component-CWawez-M.js.map +0 -1
- package/build/component-CZM5p4mC.js +0 -74
- package/build/component-CZM5p4mC.js.map +0 -1
- package/build/component-Cfs39n8Q.js +0 -21
- package/build/component-Cfs39n8Q.js.map +0 -1
- package/build/component-CoOTSdM5.cjs +0 -28
- package/build/component-CoOTSdM5.cjs.map +0 -1
- package/build/component-Cu2i_-RT.cjs +0 -2
- package/build/component-Cu2i_-RT.cjs.map +0 -1
- package/build/component-D-HMYzXU.js +0 -65
- package/build/component-D-HMYzXU.js.map +0 -1
- package/build/component-DGpaKn6_.js +0 -248
- package/build/component-DGpaKn6_.js.map +0 -1
- package/build/component-DJAq34yj.cjs +0 -2
- package/build/component-DJAq34yj.cjs.map +0 -1
- package/build/component-DKzHmIUP.js +0 -10
- package/build/component-DKzHmIUP.js.map +0 -1
- package/build/component-Dkw50gzn.cjs +0 -2
- package/build/component-Dkw50gzn.cjs.map +0 -1
- package/build/component-DqV_-YxZ.cjs +0 -2
- package/build/component-DqV_-YxZ.cjs.map +0 -1
- package/build/component-Dy66XPIf.cjs +0 -2
- package/build/component-Dy66XPIf.cjs.map +0 -1
- package/build/component-DyLdklDO.cjs +0 -2
- package/build/component-DyLdklDO.cjs.map +0 -1
- package/build/component-LG-duo2b.cjs +0 -2
- package/build/component-LG-duo2b.cjs.map +0 -1
- package/build/component-PZe4p8qh.cjs +0 -2
- package/build/component-PZe4p8qh.cjs.map +0 -1
- package/build/component-RlcwDmkg.js +0 -39
- package/build/component-RlcwDmkg.js.map +0 -1
- package/build/component-ZdZUAyaP.cjs +0 -2
- package/build/component-ZdZUAyaP.cjs.map +0 -1
- package/build/component-accordion.cjs.js +0 -2
- package/build/component-accordion.cjs.js.map +0 -1
- package/build/component-accordion.d.ts +0 -100
- package/build/component-accordion.es.js +0 -11
- package/build/component-accordion.es.js.map +0 -1
- package/build/component-buGvmEo6.cjs +0 -2
- package/build/component-buGvmEo6.cjs.map +0 -1
- package/build/component-button-group.cjs.js +0 -2
- package/build/component-button-group.cjs.js.map +0 -1
- package/build/component-button-group.d.ts +0 -195
- package/build/component-button-group.es.js +0 -7
- package/build/component-button-group.es.js.map +0 -1
- package/build/component-button.cjs.js.map +0 -1
- package/build/component-button.es.js.map +0 -1
- package/build/component-checkbox-group.cjs.js +0 -2
- package/build/component-checkbox-group.cjs.js.map +0 -1
- package/build/component-checkbox-group.d.ts +0 -224
- package/build/component-checkbox-group.es.js +0 -12
- package/build/component-checkbox-group.es.js.map +0 -1
- package/build/component-checkbox.cjs.js.map +0 -1
- package/build/component-checkbox.es.js.map +0 -1
- package/build/component-date-picker.cjs.js.map +0 -1
- package/build/component-date-picker.es.js.map +0 -1
- package/build/component-gcvwlILJ.js +0 -76
- package/build/component-gcvwlILJ.js.map +0 -1
- package/build/component-icon.cjs.js.map +0 -1
- package/build/component-icon.es.js.map +0 -1
- package/build/component-image-button.cjs.js +0 -2
- package/build/component-image-button.cjs.js.map +0 -1
- package/build/component-image-button.d.ts +0 -215
- package/build/component-image-button.es.js +0 -5
- package/build/component-image-button.es.js.map +0 -1
- package/build/component-image-select.cjs.js +0 -2
- package/build/component-image-select.cjs.js.map +0 -1
- package/build/component-image-select.d.ts +0 -313
- package/build/component-image-select.es.js +0 -12
- package/build/component-image-select.es.js.map +0 -1
- package/build/component-image-slider.cjs.js +0 -2
- package/build/component-image-slider.cjs.js.map +0 -1
- package/build/component-image-slider.d.ts +0 -108
- package/build/component-image-slider.es.js +0 -9
- package/build/component-image-slider.es.js.map +0 -1
- package/build/component-image.cjs.js +0 -2
- package/build/component-image.cjs.js.map +0 -1
- package/build/component-image.d.ts +0 -51
- package/build/component-image.es.js +0 -7
- package/build/component-image.es.js.map +0 -1
- package/build/component-input-otp.cjs.js.map +0 -1
- package/build/component-input-otp.es.js.map +0 -1
- package/build/component-input.cjs.js.map +0 -1
- package/build/component-input.es.js.map +0 -1
- package/build/component-pagination.cjs.js.map +0 -1
- package/build/component-pagination.es.js.map +0 -1
- package/build/component-range.cjs.js +0 -2
- package/build/component-range.cjs.js.map +0 -1
- package/build/component-range.d.ts +0 -212
- package/build/component-range.es.js +0 -9
- package/build/component-range.es.js.map +0 -1
- package/build/component-ripple.cjs.js +0 -2
- package/build/component-ripple.cjs.js.map +0 -1
- package/build/component-ripple.d.ts +0 -47
- package/build/component-ripple.es.js +0 -12
- package/build/component-ripple.es.js.map +0 -1
- package/build/component-sNGsB3JK.js +0 -88
- package/build/component-sNGsB3JK.js.map +0 -1
- package/build/component-sVzC5XUR.cjs +0 -2
- package/build/component-sVzC5XUR.cjs.map +0 -1
- package/build/component-select.cjs.js.map +0 -1
- package/build/component-select.es.js.map +0 -1
- package/build/component-separator.cjs.js.map +0 -1
- package/build/component-separator.es.js.map +0 -1
- package/build/component-stack.cjs.js.map +0 -1
- package/build/component-stack.es.js.map +0 -1
- package/build/component-textarea.cjs.js.map +0 -1
- package/build/component-textarea.es.js.map +0 -1
- package/build/component-toggle.cjs.js.map +0 -1
- package/build/component-toggle.es.js.map +0 -1
- package/build/component-tooltip.cjs.js.map +0 -1
- package/build/component-tooltip.es.js.map +0 -1
- package/build/component-typography.cjs.js.map +0 -1
- package/build/component-typography.es.js.map +0 -1
- package/build/component-wOmehMbn.js +0 -170
- package/build/component-wOmehMbn.js.map +0 -1
- package/build/component-zLIAB2HV.cjs +0 -2
- package/build/component-zLIAB2HV.cjs.map +0 -1
- package/build/component.constants-CJcoXCFC.js +0 -757
- package/build/component.constants-CJcoXCFC.js.map +0 -1
- package/build/component.constants-Ctj7PsM8.cjs +0 -2
- package/build/component.constants-Ctj7PsM8.cjs.map +0 -1
- package/build/component.constants-CzKFXlYT.cjs +0 -2
- package/build/component.constants-CzKFXlYT.cjs.map +0 -1
- package/build/component.constants-DjzlauTL.js +0 -142
- package/build/component.constants-DjzlauTL.js.map +0 -1
- package/build/component.functions-D9ffjEok.cjs +0 -8
- package/build/component.functions-D9ffjEok.cjs.map +0 -1
- package/build/component.functions-DNW6h8kk.js +0 -12
- package/build/component.functions-DNW6h8kk.js.map +0 -1
- package/build/component.styles-BX2Aiqp_.cjs +0 -43
- package/build/component.styles-BX2Aiqp_.cjs.map +0 -1
- package/build/component.styles-C0oU5oX_.js +0 -59
- package/build/component.styles-C0oU5oX_.js.map +0 -1
- package/build/component.styles-CD6ZzRrk.cjs +0 -14
- package/build/component.styles-CD6ZzRrk.cjs.map +0 -1
- package/build/component.styles-SZ5VuhNG.js +0 -20
- package/build/component.styles-SZ5VuhNG.js.map +0 -1
- package/build/component.types-CryJGkU7.js +0 -907
- package/build/component.types-CryJGkU7.js.map +0 -1
- package/build/component.types-Drt-O54w.cjs +0 -2
- package/build/component.types-Drt-O54w.cjs.map +0 -1
- package/build/consts.cjs.js +0 -2
- package/build/consts.cjs.js.map +0 -1
- package/build/consts.d.ts +0 -77
- package/build/consts.es.js +0 -151
- package/build/consts.es.js.map +0 -1
- package/build/context-B1id3uai.cjs +0 -2
- package/build/context-B1id3uai.cjs.map +0 -1
- package/build/context-B8kTBKjt.cjs +0 -2
- package/build/context-B8kTBKjt.cjs.map +0 -1
- package/build/context-BkovkNHQ.js +0 -117
- package/build/context-BkovkNHQ.js.map +0 -1
- package/build/context-C0_RNFp_.js +0 -195
- package/build/context-C0_RNFp_.js.map +0 -1
- package/build/context-DyTE2I_6.cjs +0 -4
- package/build/context-DyTE2I_6.cjs.map +0 -1
- package/build/context-LBih45kv.js +0 -44
- package/build/context-LBih45kv.js.map +0 -1
- package/build/context-app.cjs.js.map +0 -1
- package/build/context-app.es.js.map +0 -1
- package/build/context-cookie.cjs.js.map +0 -1
- package/build/context-cookie.es.js.map +0 -1
- package/build/context-dialog.cjs.js.map +0 -1
- package/build/context-dialog.es.js.map +0 -1
- package/build/context-geolocation.cjs.js.map +0 -1
- package/build/context-geolocation.es.js.map +0 -1
- package/build/context-local-storage.cjs.js.map +0 -1
- package/build/context-local-storage.es.js.map +0 -1
- package/build/context-permission.cjs.js.map +0 -1
- package/build/context-permission.es.js.map +0 -1
- package/build/context-screen-width.cjs.js.map +0 -1
- package/build/context-screen-width.es.js.map +0 -1
- package/build/context-sonner.cjs.js.map +0 -1
- package/build/context-sonner.es.js.map +0 -1
- package/build/context.constants-Bzn9Rcey.cjs +0 -32
- package/build/context.constants-Bzn9Rcey.cjs.map +0 -1
- package/build/context.constants-D0UjboYX.js +0 -12593
- package/build/context.constants-D0UjboYX.js.map +0 -1
- package/build/context.constants-DUVlJghM.js +0 -249
- package/build/context.constants-DUVlJghM.js.map +0 -1
- package/build/context.constants-gXk1ewxx.cjs +0 -1742
- package/build/context.constants-gXk1ewxx.cjs.map +0 -1
- package/build/context.functions-B8FDl7nJ.js +0 -14
- package/build/context.functions-B8FDl7nJ.js.map +0 -1
- package/build/context.functions-BqeTmcmr.cjs +0 -2
- package/build/context.functions-BqeTmcmr.cjs.map +0 -1
- package/build/context.functions-D2K4Xk47.js +0 -35
- package/build/context.functions-D2K4Xk47.js.map +0 -1
- package/build/context.functions-Duwzgcga.cjs +0 -2
- package/build/context.functions-Duwzgcga.cjs.map +0 -1
- package/build/context.functions-ObfwvEVG.js +0 -35
- package/build/context.functions-ObfwvEVG.js.map +0 -1
- package/build/context.functions-ar41xFVo.cjs +0 -2
- package/build/context.functions-ar41xFVo.cjs.map +0 -1
- package/build/context.hooks-B9dsW2kz.js +0 -117
- package/build/context.hooks-B9dsW2kz.js.map +0 -1
- package/build/context.hooks-Bkj1PSKe.cjs +0 -2
- package/build/context.hooks-Bkj1PSKe.cjs.map +0 -1
- package/build/context.hooks-CCLq09Ra.js +0 -13
- package/build/context.hooks-CCLq09Ra.js.map +0 -1
- package/build/context.hooks-CDvi20Bm.cjs +0 -2
- package/build/context.hooks-CDvi20Bm.cjs.map +0 -1
- package/build/context.hooks-CUXDpPaG.cjs +0 -2
- package/build/context.hooks-CUXDpPaG.cjs.map +0 -1
- package/build/context.hooks-CXJ-eM6d.js +0 -13
- package/build/context.hooks-CXJ-eM6d.js.map +0 -1
- package/build/context.hooks-CYJnoIrt.cjs +0 -2
- package/build/context.hooks-CYJnoIrt.cjs.map +0 -1
- package/build/context.hooks-DDD8ffJI.cjs +0 -2
- package/build/context.hooks-DDD8ffJI.cjs.map +0 -1
- package/build/context.hooks-Djt5R2yX.js +0 -13
- package/build/context.hooks-Djt5R2yX.js.map +0 -1
- package/build/context.hooks-DpwnIiRj.cjs +0 -2
- package/build/context.hooks-DpwnIiRj.cjs.map +0 -1
- package/build/context.hooks-oclt34zD.js +0 -68
- package/build/context.hooks-oclt34zD.js.map +0 -1
- package/build/context.hooks-v8uZ7dfO.js +0 -49
- package/build/context.hooks-v8uZ7dfO.js.map +0 -1
- package/build/functions.cjs.js +0 -2
- package/build/functions.cjs.js.map +0 -1
- package/build/functions.es.js +0 -50
- package/build/functions.es.js.map +0 -1
- package/build/index.cjs.js.map +0 -1
- package/build/index.es.js.map +0 -1
- package/build/jsx-runtime-C6yv_9g1.cjs +0 -11
- package/build/jsx-runtime-C6yv_9g1.cjs.map +0 -1
- package/build/jsx-runtime-DZS36FSE.js +0 -316
- package/build/jsx-runtime-DZS36FSE.js.map +0 -1
- package/build/motion-DrSN18V7.cjs +0 -2
- package/build/motion-DrSN18V7.cjs.map +0 -1
- package/build/motion-K7hUU4gL.js +0 -85
- package/build/motion-K7hUU4gL.js.map +0 -1
- package/build/style-BfuEu91g.js +0 -176
- package/build/style-BfuEu91g.js.map +0 -1
- package/build/style-Drq-Q1Im.cjs +0 -136
- package/build/style-Drq-Q1Im.cjs.map +0 -1
- package/build/style-add.cjs.js +0 -2
- package/build/style-add.cjs.js.map +0 -1
- package/build/style-add.d.ts +0 -88
- package/build/style-add.es.js +0 -17
- package/build/style-add.es.js.map +0 -1
- package/build/style-error.cjs.js +0 -2
- package/build/style-error.cjs.js.map +0 -1
- package/build/style-error.d.ts +0 -99
- package/build/style-error.es.js +0 -7
- package/build/style-error.es.js.map +0 -1
- package/build/style-fRZ6xrVp.cjs +0 -10
- package/build/style-fRZ6xrVp.cjs.map +0 -1
- package/build/style-motion.cjs.js.map +0 -1
- package/build/style-motion.es.js.map +0 -1
- package/build/style-plT9Ah7t.js +0 -33
- package/build/style-plT9Ah7t.js.map +0 -1
- package/build/style-sx.cjs.js +0 -2
- package/build/style-sx.cjs.js.map +0 -1
- package/build/style-sx.d.ts +0 -33
- package/build/style-sx.es.js +0 -5
- package/build/style-sx.es.js.map +0 -1
- package/build/style-theme.cjs.js +0 -2
- package/build/style-theme.cjs.js.map +0 -1
- package/build/style-theme.d.ts +0 -293
- package/build/style-theme.es.js +0 -16
- package/build/style-theme.es.js.map +0 -1
- package/build/types.cjs.js +0 -2
- package/build/types.cjs.js.map +0 -1
- package/build/types.d.ts +0 -27
- package/build/types.es.js +0 -2
- package/build/types.es.js.map +0 -1
- package/build/use-BNuSnUSV.cjs +0 -16
- package/build/use-BNuSnUSV.cjs.map +0 -1
- package/build/use-Bp8UVw4Y.js +0 -16
- package/build/use-Bp8UVw4Y.js.map +0 -1
- package/build/use-C7vngeRk.js +0 -882
- package/build/use-C7vngeRk.js.map +0 -1
- package/build/use-D8uozTND.js +0 -1577
- package/build/use-D8uozTND.js.map +0 -1
- package/build/use-IhzeVumv.cjs +0 -2
- package/build/use-IhzeVumv.cjs.map +0 -1
- package/build/use-zW3LuRc_.cjs +0 -2
- package/build/use-zW3LuRc_.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-BQtWzaxE.cjs","names":["memo","memo","React"],"sources":["../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../node_modules/@tanstack/virtual-core/dist/esm/index.js","../node_modules/@tanstack/react-virtual/dist/esm/index.js","../src/components/select/component.tsx","../node_modules/moment/dist/moment.js","../src/components/select/component.examples.tsx"],"sourcesContent":["function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a, _b, _c;\n let depTime;\n if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();\n result = fn(...newDeps);\n if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeElementOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n const { horizontal, isRtl } = instance.options;\n offset = horizontal ? element[\"scrollLeft\"] * (isRtl && -1 || 1) : element[\"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeWindowOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst measureElement = (element, entry, instance) => {\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollState = null;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.now = () => {\n var _a, _b, _c;\n return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();\n };\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n const node = entry.target;\n const index = this.indexFromElement(node);\n if (!node.isConnected) {\n this.observer.unobserve(node);\n return;\n }\n if (this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(\n index,\n this.options.measureElement(node, entry, this)\n );\n }\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n laneAssignmentMode: \"estimate\",\n ...opts2\n };\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n if (this.rafId != null && this.targetWindow) {\n this.targetWindow.cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.scrollState = null;\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n if (this.scrollState) {\n this.scheduleScrollReconcile();\n }\n this.maybeNotify();\n })\n );\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n };\n this.rafId = null;\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes,\n this.options.laneAssignmentMode\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCache],\n ({\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n }, itemSizeCache) => {\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMeasuredCacheIndexes = [];\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n laneLastIndex[item.lane] = m;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n const shouldCacheLane = laneAssignmentMode === \"estimate\" || itemSizeCache.has(key);\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;\n } else {\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n if (this.options.lanes > 1 && shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n laneLastIndex[lane] = i;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this.shouldMeasureDuringScroll = (index) => {\n var _a;\n if (!this.scrollState || this.scrollState.behavior !== \"smooth\") {\n return true;\n }\n const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);\n if (scrollIndex !== void 0 && this.range) {\n const bufferSize = Math.max(\n this.options.overscan,\n Math.ceil((this.range.endIndex - this.range.startIndex) / 2)\n );\n const minIndex = Math.max(0, scrollIndex - bufferSize);\n const maxIndex = Math.min(\n this.options.count - 1,\n scrollIndex + bufferSize\n );\n return index >= minIndex && index <= maxIndex;\n }\n return true;\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key2) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key2);\n }\n });\n return;\n }\n const index = this.indexFromElement(node);\n const key = this.options.getItemKey(index);\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(index, this.options.measureElement(node, void 0, this));\n }\n };\n this.resizeItem = (index, size) => {\n var _a;\n const item = this.measurementsCache[index];\n if (!item) return;\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (((_a = this.scrollState) == null ? void 0 : _a.behavior) !== \"smooth\" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments)) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(false);\n }\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n return notUndefined(\n measurements[findNearestBinarySearch(\n 0,\n measurements.length - 1,\n (index) => notUndefined(measurements[index]).start,\n offset\n )]\n );\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n const item = this.measurementsCache[index];\n if (!item) return;\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior = \"auto\" } = {}) => {\n const offset = this.getOffsetForAlignment(toOffset, align);\n const now = this.now();\n this.scrollState = {\n index: null,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToIndex = (index, {\n align: initialAlign = \"auto\",\n behavior = \"auto\"\n } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const offsetInfo = this.getOffsetForIndex(index, initialAlign);\n if (!offsetInfo) {\n return;\n }\n const [offset, align] = offsetInfo;\n const now = this.now();\n this.scrollState = {\n index,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollBy = (delta, { behavior = \"auto\" } = {}) => {\n const offset = this.getScrollOffset() + delta;\n const now = this.now();\n this.scrollState = {\n index: null,\n align: \"start\",\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n end = ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0;\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.notify(false);\n };\n this.setOptions(opts);\n }\n scheduleScrollReconcile() {\n if (!this.targetWindow) {\n this.scrollState = null;\n return;\n }\n if (this.rafId != null) return;\n this.rafId = this.targetWindow.requestAnimationFrame(() => {\n this.rafId = null;\n this.reconcileScroll();\n });\n }\n reconcileScroll() {\n if (!this.scrollState) return;\n const el = this.scrollElement;\n if (!el) return;\n const MAX_RECONCILE_MS = 5e3;\n if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {\n this.scrollState = null;\n return;\n }\n const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;\n const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;\n const STABLE_FRAMES = 1;\n const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;\n if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {\n this.scrollState.stableFrames++;\n if (this.scrollState.stableFrames >= STABLE_FRAMES) {\n this.scrollState = null;\n return;\n }\n } else {\n this.scrollState.stableFrames = 0;\n if (targetChanged) {\n this.scrollState.lastTargetOffset = targetOffset;\n this.scrollState.behavior = \"auto\";\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: \"auto\"\n });\n }\n }\n this.scheduleScrollReconcile();\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n}) {\n const lastIndex = measurements.length - 1;\n const getOffset = (index) => measurements[index].start;\n if (measurements.length <= lanes) {\n return {\n startIndex: 0,\n endIndex: lastIndex\n };\n }\n let startIndex = findNearestBinarySearch(\n 0,\n lastIndex,\n getOffset,\n scrollOffset\n );\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Virtualizer, elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase({\n useFlushSync = true,\n ...options\n}) {\n const rerender = React.useReducer(() => ({}), {})[1];\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n if (useFlushSync && sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(\n () => new Virtualizer(resolvedOptions)\n );\n instance.setOptions(resolvedOptions);\n useIsomorphicLayoutEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n","/** biome-ignore-all lint/a11y/noNoninteractiveTabindex: <explanation> */\n/** biome-ignore-all lint/a11y/useKeyWithClickEvents: <explanation> */\nimport { Button } from '@local/components/button';\nimport { ErrorMessage } from '@local/components/error';\nimport { Icon } from '@local/components/icon';\nimport { Popover, usePopover } from '@local/components/popover';\nimport { TextArea } from '@local/components/textarea';\nimport { Typography } from '@local/components/typography';\nimport { useMergeRefs } from '@local/hooks/use-merge-refs';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, CSS_VARS_RAW, EXTRA_VALUE } from '@local/styles/utils';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { KeyboardEvent, memo, Ref, useCallback, useMemo, useRef } from 'react';\n\nimport { IContainerDropdownListOption, IContainerSelectListOption, ISelect, ISelectItem } from './component.types';\n\nconst DEFAULT_LABEL_SELECT_ALL = 'Select all option';\nconst DEFAULT_LABEL_PLACEHOLDER = 'Select an option';\nconst DEFAULT_LABEL_EMPTY_OPTION = 'No options available';\nconst DEFAULT_LABEL_AND_MORE = (count: number) => `+${count} more`;\nconst DEFAULT_LABEL_ADD_OPTION = (value: string) => `Add \"${value}\" option`;\n\nconst DEFAULT_MAX_VIEW_SELECT = 2;\nconst DEFAULT_MAX_VIEW_DROPDOWN = 5;\nconst DEFAULT_MIN_VIEW_DROPDOWN = 1;\nconst DEFAULT_OVERSCAN = 1;\n\nexport const Select = <T extends object & ISelectItem>(props: ISelect<T>) => {\n const sizeHeight = useMemo(() => CSS_VARS.sizeValue[props.size].height, [props.size]);\n const sizePadding = useMemo(() => CSS_VARS.sizeValue[props.size].padding, [props.size]);\n const sizeRadius = useMemo(() => CSS_VARS.sizeValue[props.size].radius, [props.size]);\n\n const {\n isOpen,\n close,\n open,\n refReference: refReferencePopover,\n refFloating: refFloatingPopover,\n floatingStyles,\n toggle,\n } = usePopover({\n isFocusTrap: true,\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n isWidthAsContent: true,\n isDisabled: props?.isDisabled,\n onBlur: props.onBlur,\n onFocus: props.onFocus,\n });\n const refTextArea = useRef<HTMLTextAreaElement>(null);\n const refDropdownList = useRef<HTMLDivElement>(null);\n\n const refReference = useMergeRefs([props.refReference, refReferencePopover]);\n const refFloating = useMergeRefs([props.refFloating, refFloatingPopover]);\n\n const labelSelectAll = useMemo(() => props.labelSelectAll ?? DEFAULT_LABEL_SELECT_ALL, [props.labelSelectAll]);\n const labelPlaceholder = useMemo(() => props.labelPlaceholder ?? DEFAULT_LABEL_PLACEHOLDER, [props.labelPlaceholder]);\n const labelEmptyOption = useMemo(\n () => props.labelEmptyOption ?? DEFAULT_LABEL_EMPTY_OPTION,\n [props.labelEmptyOption],\n );\n const labelAndMore = useMemo(() => props.labelAndMore ?? DEFAULT_LABEL_AND_MORE, [props.labelAndMore]);\n const labelAddOption = useMemo(() => props.labelAddOption ?? DEFAULT_LABEL_ADD_OPTION, [props.labelAddOption]);\n\n const maxViewSelect = useMemo(() => props.maxViewSelect ?? DEFAULT_MAX_VIEW_SELECT, [props.maxViewSelect]);\n const maxViewDropdown = useMemo(() => props.maxViewDropdown ?? DEFAULT_MAX_VIEW_DROPDOWN, [props.maxViewDropdown]);\n const minViewDropdown = useMemo(() => props.minViewDropdown ?? DEFAULT_MIN_VIEW_DROPDOWN, [props.minViewDropdown]);\n\n const isAll = useMemo(\n () => props.value.length === props.option.length || props.value.length === props.optionAllLength,\n [props.option.length, props.optionAllLength, props.value.length],\n );\n const isHaveOption = useMemo(() => !!props.option.length, [props.option.length]);\n const isHaveValue = useMemo(() => !!props.value.length, [props.value.length]);\n const isShowAddOption = useMemo(\n () => props.valueSearch && props.isShowAddOption,\n [props.valueSearch, props.isShowAddOption],\n );\n\n const optionsLength = useMemo(() => {\n if (props.isNotShowDisabledOptions) {\n return props.option.filter((option) => !option.isDisabled).length;\n } else {\n return props.option.length;\n }\n }, [props.option, props.isNotShowDisabledOptions]);\n\n const heightDropdownList = useMemo(() => {\n let result = 0;\n result =\n sizeHeight *\n (optionsLength < maxViewDropdown\n ? optionsLength < minViewDropdown\n ? optionsLength\n : optionsLength\n : maxViewDropdown);\n result =\n result +\n (optionsLength < maxViewDropdown\n ? optionsLength < minViewDropdown\n ? (optionsLength - 1) * (sizePadding / 2.8)\n : (optionsLength - 1) * (sizePadding / 2.8)\n : (maxViewDropdown - 1) * (sizePadding / 2.8));\n return result;\n }, [sizeHeight, optionsLength, maxViewDropdown, minViewDropdown, sizePadding]);\n\n const heightPopover = useMemo(() => {\n const selectAll = props.isShowSelectAll && isHaveOption ? sizeHeight : 0;\n const selectNoOption = !isHaveOption ? sizeHeight : 0;\n const selectList = isHaveOption ? heightDropdownList : 0;\n const selectAdd = isShowAddOption ? sizeHeight : 0;\n const selectSearch = props.isSearch ? sizeHeight : 0;\n const sum =\n (selectAll !== 0 ? 1 : 0) +\n (selectNoOption !== 0 ? 1 : 0) +\n (selectList !== 0 ? 1 : 0) +\n (selectAdd !== 0 ? 1 : 0) +\n (selectSearch !== 0 ? 1 : 0);\n const gap = sum <= 1 ? 0 : (sum - 1) * (sizePadding / 2.8);\n const padding = (sizePadding / 4) * 2;\n const result = selectAll + selectNoOption + selectList + selectAdd + selectSearch + padding + gap;\n return result;\n }, [\n props.isShowSelectAll,\n sizeHeight,\n isHaveOption,\n sizePadding,\n heightDropdownList,\n isShowAddOption,\n props.isSearch,\n ]);\n\n const isValueMoreMaxViewSelect = useMemo(\n () => props.value.length > maxViewSelect,\n [maxViewSelect, props.value.length],\n );\n const isShowIconSearchClear = useMemo(\n () => props.isShowIconSearchClear && props.valueSearch,\n [props.isShowIconSearchClear, props.valueSearch],\n );\n const isShowButtonList = useMemo(\n () => isShowIconSearchClear || props.isShowIconToggle || (props.isShowIconFetching && props.isFetching),\n [isShowIconSearchClear, props.isShowIconToggle, props.isShowIconFetching, props.isFetching],\n );\n const isShowScroll = useMemo(() => optionsLength > maxViewDropdown, [maxViewDropdown, optionsLength]);\n const isSelectedItem = useCallback(\n (option: T): boolean => {\n return isAll || props.value.some((val) => val.value === option.value);\n },\n [isAll, props.value],\n );\n const isShowDropdownSettingsList = useMemo(\n () => isShowAddOption || (props.isShowSelectAll && isHaveOption) || !isHaveOption,\n [isHaveOption, isShowAddOption, props.isShowSelectAll],\n );\n const listVirtualizer = useVirtualizer({\n count: optionsLength,\n estimateSize: props.getEstimateSize ? props.getEstimateSize : () => sizeHeight,\n getScrollElement: () => refDropdownList.current,\n overscan: DEFAULT_OVERSCAN,\n paddingEnd: 0,\n gap: sizePadding / 2.8,\n });\n\n const onClick = useCallback(\n (option: T) => {\n let newValues: T[] = [];\n const optionValue = option.value;\n\n const findIndex = (val: T) => val.value === optionValue;\n const index = props.value.findIndex(findIndex);\n const isFind = index !== -1;\n\n if (props.isMulti) {\n if (isFind) {\n newValues = [...props.value.slice(0, index), ...props.value.slice(index + 1)];\n } else {\n newValues = [...props.value, option];\n }\n } else {\n if (isFind && !props.isStayValueAfterSelect) {\n newValues = [...props.value.slice(0, index), ...props.value.slice(index + 1)];\n } else {\n newValues = [option];\n }\n }\n props.onChange(newValues);\n if (props.isOnClickOptionClose) {\n close();\n }\n },\n [close, props],\n );\n const onClickAll = useCallback(() => {\n props.onChangeAll?.(isAll ? [] : props.option, !isAll);\n if (props.isOnClickOptionClose) {\n close();\n }\n }, [close, isAll, props]);\n // const onClear = useCallback(() => {\n // props.onChange([]);\n // }, [props]);\n const onClearSearch = useCallback(() => {\n props.onChangeSearch?.('');\n }, [props]);\n const onScroll = useCallback(\n (containerRefElement?: HTMLDivElement | null) => {\n if (containerRefElement) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement;\n if (scrollHeight - scrollTop - clientHeight < heightDropdownList && !props.isFetching && props.fetchNextPage) {\n props.fetchNextPage();\n }\n }\n },\n [heightDropdownList, props],\n );\n const onAddOption = useCallback(\n (value: string) => {\n props.onAddOption?.(value);\n props.onChangeSearch?.('');\n },\n [props],\n );\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: {\n variant: EXTRA_VALUE.sizeToController[props.size],\n weight: props.isBold ? '700' : '400',\n height: '1',\n ...props?.sxTypography,\n },\n });\n\n const { className: classNameWrapper, style: styleWrapper } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.select.wrapper,\n CSS_CLASS.control[\n props.isDisabled ? 'none' : (props.control ?? (isOpen ? 'boxShadowSelect' : 'boxShadowOnlyHover'))\n ],\n CSS_CLASS.transition.color,\n isShowScroll && CSS_CLASS.component.select.isShowScroll,\n props.isCenter && CSS_CLASS.component.select.isCenter,\n props.isWrapSelectOption && CSS_CLASS.component.select.isWrapSelectOption,\n props.isClearWhenClickSelectListOption && CSS_CLASS.component.select.isClearWhenClickSelectListOption,\n props.isOnlyColorInSelectListOption && CSS_CLASS.component.select.isOnlyColorInSelectListOption,\n props.error?.isError && CSS_CLASS.isError,\n props.className,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.select.background] = CSS_VARS.genre.select[props.genre].background.index;\n vars[CSS_VARS_RAW.component.select.color] = CSS_VARS.genre.select[props.genre].color.index;\n vars[CSS_VARS_RAW.component.select.borderColor] = CSS_VARS.genre.select[props.genre].border.index;\n vars[CSS_VARS_RAW.component.select.borderColorSelect] = CSS_VARS.genre.select[props.genre].border.select;\n\n vars[CSS_VARS_RAW.component.select.backgroundChecked] = CSS_VARS.genre.select[props.genre].background.select;\n vars[CSS_VARS_RAW.component.select.borderColorChecked] = CSS_VARS.genre.select[props.genre].border.select;\n\n vars[CSS_VARS_RAW.component.select.height] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.select.padding] = CSS_VARS.size[props.size].padding;\n vars[CSS_VARS_RAW.component.select.borderRadius] = CSS_VARS.size[props.size].radius;\n\n vars[CSS_VARS_RAW.component.select.backgroundInput] = CSS_VARS.genre.input[props.genre].background;\n vars[CSS_VARS_RAW.component.select.colorInput] = CSS_VARS.genre.input[props.genre].color;\n vars[CSS_VARS_RAW.component.select.borderColorInput] = CSS_VARS.genre.input[props.genre].border;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, props.style]);\n\n return { className, style };\n }, [\n props.className,\n props.style,\n props.genre,\n props.isDisabled,\n props.size,\n props.control,\n isOpen,\n props.error?.isError,\n isShowScroll,\n props.isCenter,\n props.isClearWhenClickSelectListOption,\n props.isOnlyColorInSelectListOption,\n props.isWrapSelectOption,\n ]);\n\n const { className: classNamePopover, style: stylePopover } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.transition.color,\n isShowScroll && CSS_CLASS.component.select.isShowScroll,\n props.isCenter && CSS_CLASS.component.select.isCenter,\n props.classNamePopover,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.select.background] = CSS_VARS.genre.select[props.genre].background.index;\n vars[CSS_VARS_RAW.component.select.color] = CSS_VARS.genre.select[props.genre].color.index;\n vars[CSS_VARS_RAW.component.select.borderColor] = CSS_VARS.genre.select[props.genre].border.index;\n vars[CSS_VARS_RAW.component.select.borderColorSelect] = CSS_VARS.genre.select[props.genre].border.select;\n\n vars[CSS_VARS_RAW.component.select.backgroundChecked] = CSS_VARS.genre.select[props.genre].background.select;\n vars[CSS_VARS_RAW.component.select.borderColorChecked] = CSS_VARS.genre.select[props.genre].border.select;\n\n vars[CSS_VARS_RAW.component.select.height] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.select.padding] = CSS_VARS.size[props.size].padding;\n vars[CSS_VARS_RAW.component.select.borderRadius] = CSS_VARS.size[props.size].radius;\n\n vars[CSS_VARS_RAW.component.select.backgroundInput] = CSS_VARS.genre.input[props.genre].background;\n vars[CSS_VARS_RAW.component.select.backgroundOption] = CSS_VARS.genre.input[props.genre].backgroundOption;\n vars[CSS_VARS_RAW.component.select.colorInput] = CSS_VARS.genre.input[props.genre].color;\n vars[CSS_VARS_RAW.component.select.borderColorInput] = CSS_VARS.genre.input[props.genre].border;\n\n const style = setStyles([\n Object.keys(vars).length ? vars : undefined,\n {\n background: CSS_VARS.genre.popover[props.genre].background,\n borderRadius: `${sizeRadius}px`,\n padding: '0px',\n maxHeight: `${heightPopover}px`,\n boxSizing: 'content-box',\n },\n props.stylePopover,\n ]);\n\n return { className, style };\n }, [\n props.genre,\n props.size,\n isShowScroll,\n heightPopover,\n sizeRadius,\n props.isCenter,\n props.classNamePopover,\n props.stylePopover,\n ]);\n return (\n <>\n <div\n tabIndex={0}\n className={classNameWrapper}\n style={styleWrapper}\n ref={refReference as Ref<HTMLDivElement | null>}\n onMouseDown={(e) => {\n e.preventDefault();\n toggle();\n }}\n onFocus={() => {\n // При фокусе через Tab/клавиатуру открываем select\n if (!isOpen) {\n open();\n }\n }}\n >\n {isHaveValue && (props.isShowSelectAllLabel ? !isAll : true) ? (\n <ul\n className={CSS_CLASS.component.select.list}\n tabIndex={-1}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={(e) => {\n e.preventDefault();\n }}\n >\n {props.value.map((value, index) => {\n if (index >= maxViewSelect) return null;\n\n const isChecked = isSelectedItem(value);\n return (\n <SelectListOption\n key={`${value.value}-${index}`}\n isChecked={isChecked}\n onClick={() => {\n if (props.isClearWhenClickSelectListOption) {\n onClick(value);\n }\n if (props.isToggleWhenClickSelectListOption) {\n toggle();\n }\n }}\n item={value}\n genre={props.genre}\n size={props.size}\n isOnlyColorInSelectListOption={props.isOnlyColorInSelectListOption}\n isClearWhenClickSelectListOption={props.isClearWhenClickSelectListOption}\n isWrapSelectOption={props.isWrapSelectOption}\n isCenter={props.isCenter}\n className={classNameTypography}\n style={styleTypography}\n />\n );\n })}\n </ul>\n ) : null}\n {isHaveValue && (props.isShowSelectAllLabel ? isAll : false) ? (\n <Typography\n style={{\n padding: `${sizePadding / 2.8}px 0px ${sizePadding / 2.8}px ${sizePadding / 2.8}px`,\n }}\n sx={{ size: 16, line: 1, isNoUserSelect: true }}\n >\n {labelSelectAll}\n </Typography>\n ) : null}\n {!isHaveValue ? (\n <Typography\n style={{\n color: CSS_VARS.genre.select[props.genre].placeholder.index,\n padding: `${sizePadding / 2.8}px 0px ${sizePadding / 2.8}px ${sizePadding / 2.8}px`,\n }}\n sx={{ size: 16, line: 1, isNoUserSelect: true }}\n >\n {labelPlaceholder}\n </Typography>\n ) : null}\n {isValueMoreMaxViewSelect && isHaveValue && (props.isShowSelectAllLabel ? !isAll : true) ? (\n <Typography\n style={{\n padding: `${sizePadding / 2.8}px 0px ${sizePadding / 2.8}px ${sizePadding / 2.8}px`,\n }}\n sx={{ size: 16, line: 1, isNoUserSelect: true }}\n >\n {labelAndMore(props.value.length - maxViewSelect)}\n </Typography>\n ) : null}\n {isShowButtonList ? (\n <div\n className={CSS_CLASS.component.select.listButton}\n onMouseDown={(e) => {\n e.preventDefault();\n }}\n >\n {props.isShowIconToggle && (\n <Button\n genre={props.genre}\n isOnlyIcon\n size='small'\n isWidthAsHeight\n isFullSize\n isFullRadius\n isHiddenBorder\n icons={[{ name: 'Select', type: 'id', size: 'large' }]}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n )}\n {props.isShowIconFetching && props.isFetching && (\n <Button\n tabIndex={-1}\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isFullRadius\n isHiddenBorder\n control='none'\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <Icon type={'loading'} name={'Line'} size={props.size} />\n </Button>\n )}\n </div>\n ) : null}\n </div>\n <Popover\n style={stylePopover}\n className={classNamePopover}\n size={props.size}\n genre={props.genre}\n floatingStyles={floatingStyles}\n ref={refFloating}\n isOpen={isOpen}\n control='boxShadowSelect'\n isDisabledBoxShadow\n >\n <div\n tabIndex={-1}\n ref={refDropdownList}\n className={CSS_CLASS.component.select.dropdownListWrapper}\n onScroll={(e) => onScroll(e.target as HTMLDivElement)}\n >\n {isShowDropdownSettingsList && (\n <ul style={{ position: 'sticky', top: 0, zIndex: 1 }} className={CSS_CLASS.component.select.dropdownList}>\n {props.isSearch && (\n <li\n className={setClasses([\n CSS_CLASS.component.select.dropdownListOption,\n CSS_CLASS.component.select.dropdownListOptionIsBorder,\n CSS_CLASS.control.boxShadow,\n classNameTypography,\n ])}\n tabIndex={0}\n onClick={() => {\n refTextArea.current?.focus();\n }}\n style={setStyles([{ position: 'relative', minHeight: `${sizeHeight}px` }, styleTypography])}\n >\n <TextArea\n className={CSS_CLASS.component.select.textarea}\n ref={refTextArea}\n genre={props.genre}\n size={props.size}\n minRows={1}\n maxRows={5}\n isAutoHeight\n onChange={(value) => {\n props?.onChangeSearch?.(value);\n }}\n onMouseDown={(e) => {\n e.stopPropagation();\n }}\n value={props.valueSearch}\n placeholder={labelPlaceholder}\n control='none'\n />\n {isShowIconSearchClear && (\n <Button\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isFullRadius\n isHiddenBorder\n isOnlyIcon\n icons={[{ name: 'Close', type: 'id', size: 'large' }]}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onClearSearch();\n }}\n />\n )}\n </li>\n )}\n {isShowAddOption ? (\n <li\n className={setClasses([\n CSS_CLASS.component.select.dropdownListOption,\n CSS_CLASS.component.select.dropdownListOptionIsBorder,\n CSS_CLASS.control.boxShadow,\n classNameTypography,\n ])}\n tabIndex={0}\n onClick={() => props.valueSearch && onAddOption(props.valueSearch)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && props.valueSearch) onAddOption(props.valueSearch);\n }}\n style={setStyles([{ position: 'relative', minHeight: `${sizeHeight}px` }, styleTypography])}\n >\n {props.valueSearch && labelAddOption(props.valueSearch)}\n </li>\n ) : null}\n {props.isShowSelectAll && isHaveOption ? (\n <li\n className={setClasses([\n CSS_CLASS.component.select.dropdownListOption,\n isAll && CSS_CLASS.component.select.dropdownListOptionIsChecked,\n CSS_CLASS.control.boxShadow,\n classNameTypography,\n ])}\n tabIndex={0}\n onClick={() => onClickAll()}\n onKeyDown={(e) => {\n if (e.key === 'Enter') onClickAll();\n }}\n style={setStyles([{ position: 'relative', minHeight: `${sizeHeight}px` }, styleTypography])}\n >\n {labelSelectAll}\n {props.isShowDropdownOptionIcon && (\n <Icon\n className={CSS_CLASS.component.select.dropdownListOptionIcon}\n tabIndex={-1}\n size={props.size}\n type='checkbox'\n name='Arrow'\n />\n )}\n </li>\n ) : null}\n {!isHaveOption ? (\n <li\n tabIndex={-1}\n className={setClasses([CSS_CLASS.component.select.dropdownListOption, classNameTypography])}\n style={setStyles([{ position: 'relative', minHeight: `${sizeHeight}px` }, styleTypography])}\n >\n <Typography sx={{ size: 16, line: 1 }}>{labelEmptyOption}</Typography>\n </li>\n ) : null}\n </ul>\n )}\n\n {isHaveOption ? (\n <ul\n tabIndex={-1}\n style={{ height: `${listVirtualizer.getTotalSize()}px`, minHeight: `${heightDropdownList}px` }}\n className={CSS_CLASS.component.select.dropdownList}\n >\n {listVirtualizer.getVirtualItems().map((virtualRow) => {\n const item = props.option[virtualRow.index];\n const isChecked = isSelectedItem(item);\n return (\n <DropdownListOption\n key={virtualRow.index}\n virtualRowSize={virtualRow.size}\n virtualRowStart={virtualRow.start}\n isChecked={isChecked}\n onClick={() => onClick(item)}\n item={item}\n genre={props.genre}\n size={props.size}\n className={classNameTypography}\n style={styleTypography}\n isCenter={props.isCenter}\n isShowScroll={isShowScroll}\n isShowDropdownOptionIcon={props.isShowDropdownOptionIcon}\n />\n );\n })}\n </ul>\n ) : null}\n </div>\n </Popover>\n {props?.error?.isError && (\n <ErrorMessage\n size={props?.error.size ?? props.size}\n sxTypography={{ size: 16, weight: '400', ...props?.error.sxTypography }}\n {...props.error}\n />\n )}\n </>\n );\n};\n\nconst ContainerDropdownListOption = <T extends object & ISelectItem>(props: IContainerDropdownListOption<T>) => {\n const handleKeyDown = (event: KeyboardEvent<HTMLLIElement>) => {\n if (props.item.isDisabled) return;\n if (event.key === 'Enter') {\n props.onClick();\n }\n };\n\n return (\n <li\n className={setClasses([\n CSS_CLASS.component.select.dropdownListOption,\n props.isChecked && CSS_CLASS.component.select.dropdownListOptionIsChecked,\n props.item.isDisabled && CSS_CLASS.component.select.dropdownListOptionIsDisabled,\n CSS_CLASS.control[props.item.isDisabled ? 'none' : 'boxShadow'],\n props.className,\n ])}\n tabIndex={0}\n onClick={() => {\n !props.item.isDisabled && props.onClick();\n }}\n onKeyDown={handleKeyDown}\n style={setStyles([\n {\n position: 'absolute',\n height: `${props.virtualRowSize}px`,\n transform: `translateY(${props.virtualRowStart}px)`,\n },\n props.style,\n ])}\n >\n {props.item.label}\n {props.isShowDropdownOptionIcon && (\n <Icon\n className={CSS_CLASS.component.select.dropdownListOptionIcon}\n color='inherit'\n tabIndex={-1}\n type='checkbox'\n name='Arrow'\n size={props.size}\n />\n )}\n </li>\n );\n};\n\nconst ContainerSelectListOption = <T extends object & ISelectItem>(props: IContainerSelectListOption<T>) => {\n return (\n <li\n className={setClasses([\n CSS_CLASS.component.select.listOption,\n props.isChecked && CSS_CLASS.component.select.listOptionIsChecked,\n props.className,\n ])}\n style={props.style}\n tabIndex={-1}\n onClick={props.onClick}\n >\n <Typography sx={{ size: 16, height: 1 }}>{props.item.label}</Typography>\n </li>\n );\n};\n\nexport const DropdownListOption = memo(ContainerDropdownListOption);\nexport const SelectListOption = memo(ContainerSelectListOption);\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 { LIST_LANGUAGE } from '@local/cores/consts';\n\nimport moment from 'moment';\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Select } from './component';\nimport { ISelectLanguage, ISelectLanguageOption, ISelectMonth, ISelectMonths, ISelectYear } from './component.types';\n\nexport const SelectLanguage: FC<ISelectLanguage> = (props) => {\n const { value, onChange } = props;\n\n const option = LIST_LANGUAGE;\n\n const [viewOption] = useState<ISelectLanguageOption[]>(option);\n\n const handleSelectChange = (value: ISelectLanguageOption[]) => {\n if (value.length === 0) {\n onChange(null);\n } else {\n onChange(value[0].value.toString());\n }\n };\n const valueLocal = useMemo(() => {\n const findOption = option.find((e) => e.value === value);\n if (!findOption) return [];\n return [findOption];\n }, [value]);\n\n return (\n <Select<ISelectLanguageOption> {...props} option={viewOption} value={valueLocal} onChange={handleSelectChange} />\n );\n};\nexport const SelectMonth: FC<ISelectMonth> = (props) => {\n const { value, onChange, dateMin, dateMax, monthsLocale, isShortLabel } = props;\n\n const year = moment(value).utc().year();\n\n const option = useMemo(() => {\n return monthsLocale.map((monthItem) => {\n const monthIndex = moment().month(monthItem.value).month();\n\n const monthMoment = moment.utc().year(year).month(monthIndex).startOf('month');\n const isDisabled =\n (dateMin && monthMoment.isBefore(moment.utc(dateMin), 'month')) ||\n (dateMax && monthMoment.isAfter(moment.utc(dateMax), 'month'));\n\n return {\n value: monthMoment.valueOf(),\n label: isShortLabel ? monthItem.localeShort : monthItem.localeLong,\n placeholder: isShortLabel ? monthItem.localeShort : monthItem.localeLong,\n search: `${monthItem.localeLong.toLowerCase()}, ${monthIndex + 1}`,\n isDisabled: !!isDisabled,\n monthValue: monthItem.value,\n };\n });\n }, [monthsLocale, year, dateMin, dateMax, isShortLabel]);\n\n const handleSelectChange = (value: ISelectLanguageOption[]) => {\n if (value.length === 0) onChange(null);\n onChange(+value[0].value);\n };\n const valueLocal = useMemo(() => {\n const findOption = option.find((e) => e.value === value);\n if (!findOption) return [];\n return [findOption];\n }, [value, option]);\n\n return <Select<ISelectLanguageOption> {...props} option={option} value={valueLocal} onChange={handleSelectChange} />;\n};\nexport const SelectMonths: FC<ISelectMonths> = (props) => {\n const { value, onChange, dateMin, dateMax, monthsLocale, isShortLabel } = props;\n\n const year = moment(value).utc().year();\n\n const option = useMemo(() => {\n return monthsLocale.map((monthItem) => {\n const monthIndex = moment().month(monthItem.value).month();\n\n const monthMoment = moment.utc().year(year).month(monthIndex).startOf('month');\n const isDisabled =\n (dateMin && monthMoment.isBefore(moment.utc(dateMin), 'month')) ||\n (dateMax && monthMoment.isAfter(moment.utc(dateMax), 'month'));\n\n return {\n value: monthMoment.valueOf(),\n label: isShortLabel ? monthItem.localeShort : monthItem.localeLong,\n placeholder: isShortLabel ? monthItem.localeShort : monthItem.localeLong,\n search: `${monthItem.localeLong.toLowerCase()}, ${monthIndex + 1}`,\n isDisabled: !!isDisabled,\n monthValue: monthItem.value,\n };\n });\n }, [monthsLocale, year, dateMin, dateMax, isShortLabel]);\n const [viewOption, setViewOption] = useState<ISelectLanguageOption[]>(option);\n\n useEffect(() => {\n setViewOption(option);\n }, [option]);\n const handleSelectChange = (value: ISelectLanguageOption[]) => {\n if (value.length === 0) onChange([]);\n onChange(value.map((e) => +e.value));\n };\n const valueLocal = useMemo(() => {\n if (!value || value.length === 0) return [];\n return value.map((val) => option.find((opt) => opt.value === val)).filter(Boolean) as ISelectLanguageOption[];\n }, [value, option]);\n\n const [search, setSearch] = useState<string>('');\n const handleSearchChange = useCallback(\n (value: string) => {\n setSearch(value);\n\n if (value === '') {\n setViewOption(option);\n } else {\n const filteredOptions = option.filter((option) =>\n Object.values(option).some((field) => field?.toString().toLowerCase().includes(value.toLowerCase())),\n );\n setViewOption(filteredOptions);\n }\n },\n [option],\n );\n return (\n <Select<ISelectLanguageOption>\n {...props}\n valueSearch={search}\n onChangeSearch={handleSearchChange}\n optionAllLength={option.length}\n option={viewOption}\n minViewDropdown={1}\n isMulti\n value={valueLocal}\n onChange={handleSelectChange}\n onChangeAll={(_value, isAll) => {\n if (isAll) {\n onChange(viewOption.map((e) => +e.value));\n } else {\n onChange([]);\n }\n }}\n />\n );\n};\nexport const SelectYear: FC<ISelectYear> = (props) => {\n const { value, onChange, dateMin, dateMax, sortOrder = 'desc' } = props;\n\n const startYear = moment(dateMin).utc().year();\n const endYear = moment(dateMax).utc().year();\n\n const option = useMemo(() => {\n const yearArray = Array.from({ length: endYear - startYear + 1 }, (_, index) => {\n const year = startYear + index;\n return {\n value: moment().year(year).utc().startOf('year').valueOf(),\n label: moment().year(year).utc().format('YYYY'),\n placeholder: moment().year(year).utc().format('YYYY'),\n search: `${moment().year(year).utc().format('YYYY').toLowerCase()}`,\n };\n });\n\n return sortOrder === 'asc'\n ? yearArray.sort((a, b) => a.value - b.value)\n : yearArray.sort((a, b) => b.value - a.value);\n }, [endYear, startYear, sortOrder]);\n\n const handleSelectChange = (value: ISelectLanguageOption[]) => {\n if (value.length === 0) onChange(null);\n onChange(+value[0].value);\n };\n const valueLocal = useMemo(() => {\n const findOption = option.find((e) => e.value === value);\n if (!findOption) return [];\n return [findOption];\n }, [value, option]);\n\n return <Select<ISelectLanguageOption> {...props} option={option} value={valueLocal} onChange={handleSelectChange} />;\n};\n"],"x_google_ignoreList":[0,1,2,4],"mappings":"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"}
|