@tsed/react-formio 1.14.1 → 2.0.1
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/coverage.json +4 -4
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1277 -3684
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +956 -2767
- package/dist/index.modern.js.map +1 -1
- package/package.json +4 -5
- package/readme.md +9 -57
- package/src/components/input-tags/inputTags.component.tsx +1 -1
- package/src/components/select/select.component.tsx +1 -1
- package/src/components/table/filters/sliderColumnFilter.component.tsx +2 -2
- package/src/index.ts +3 -2
- package/dist/stores/action/action.actions.d.ts +0 -9
- package/dist/stores/action/action.actions.spec.d.ts +0 -1
- package/dist/stores/action/action.constant.d.ts +0 -1
- package/dist/stores/action/action.reducers.d.ts +0 -7
- package/dist/stores/action/action.reducers.spec.d.ts +0 -1
- package/dist/stores/action/action.selectors.d.ts +0 -2
- package/dist/stores/action/action.selectors.spec.d.ts +0 -1
- package/dist/stores/action/index.d.ts +0 -4
- package/dist/stores/action-info/action-info.actions.d.ts +0 -5
- package/dist/stores/action-info/action-info.actions.spec.d.ts +0 -1
- package/dist/stores/action-info/action-info.constant.d.ts +0 -1
- package/dist/stores/action-info/action-info.reducers.d.ts +0 -7
- package/dist/stores/action-info/action-info.reducers.spec.d.ts +0 -1
- package/dist/stores/action-info/action-info.selectors.d.ts +0 -2
- package/dist/stores/action-info/action-info.selectors.spec.d.ts +0 -1
- package/dist/stores/action-info/index.d.ts +0 -4
- package/dist/stores/actions/actions.actions.d.ts +0 -5
- package/dist/stores/actions/actions.actions.spec.d.ts +0 -1
- package/dist/stores/actions/actions.constant.d.ts +0 -1
- package/dist/stores/actions/actions.reducers.d.ts +0 -8
- package/dist/stores/actions/actions.reducers.spec.d.ts +0 -1
- package/dist/stores/actions/actions.selectors.d.ts +0 -2
- package/dist/stores/actions/actions.selectors.spec.d.ts +0 -1
- package/dist/stores/actions/index.d.ts +0 -4
- package/dist/stores/auth/auth.actions.d.ts +0 -9
- package/dist/stores/auth/auth.constant.d.ts +0 -1
- package/dist/stores/auth/auth.reducers.d.ts +0 -16
- package/dist/stores/auth/auth.reducers.spec.d.ts +0 -1
- package/dist/stores/auth/auth.selectors.d.ts +0 -6
- package/dist/stores/auth/auth.selectors.spec.d.ts +0 -1
- package/dist/stores/auth/auth.utils.d.ts +0 -6
- package/dist/stores/auth/auth.utils.spec.d.ts +0 -1
- package/dist/stores/auth/getAccess.action.d.ts +0 -1
- package/dist/stores/auth/getAccess.action.spec.d.ts +0 -1
- package/dist/stores/auth/getProjectAccess.action.d.ts +0 -1
- package/dist/stores/auth/index.d.ts +0 -10
- package/dist/stores/auth/initAuth.action.d.ts +0 -1
- package/dist/stores/auth/initAuth.action.spec.d.ts +0 -1
- package/dist/stores/auth/logout.action.d.ts +0 -1
- package/dist/stores/auth/logout.action.spec.d.ts +0 -1
- package/dist/stores/auth/setUser.action.d.ts +0 -1
- package/dist/stores/auth/setUser.action.spec.d.ts +0 -1
- package/dist/stores/form/form.actions.d.ts +0 -10
- package/dist/stores/form/form.actions.spec.d.ts +0 -1
- package/dist/stores/form/form.reducers.d.ts +0 -9
- package/dist/stores/form/form.reducers.spec.d.ts +0 -1
- package/dist/stores/form/form.selectors.d.ts +0 -2
- package/dist/stores/form/form.selectors.spec.d.ts +0 -1
- package/dist/stores/form/index.d.ts +0 -3
- package/dist/stores/forms/forms.actions.d.ts +0 -9
- package/dist/stores/forms/forms.actions.spec.d.ts +0 -1
- package/dist/stores/forms/forms.reducers.d.ts +0 -16
- package/dist/stores/forms/forms.reducers.spec.d.ts +0 -1
- package/dist/stores/forms/forms.selectors.d.ts +0 -10
- package/dist/stores/forms/forms.selectors.spec.d.ts +0 -1
- package/dist/stores/forms/index.d.ts +0 -3
- package/dist/stores/index.d.ts +0 -10
- package/dist/stores/index.spec.d.ts +0 -1
- package/dist/stores/root/index.d.ts +0 -1
- package/dist/stores/root/root.selectors.d.ts +0 -5
- package/dist/stores/root/root.selectors.spec.d.ts +0 -1
- package/dist/stores/submission/index.d.ts +0 -3
- package/dist/stores/submission/submission.actions.d.ts +0 -10
- package/dist/stores/submission/submission.actions.spec.d.ts +0 -1
- package/dist/stores/submission/submission.reducers.d.ts +0 -11
- package/dist/stores/submission/submission.reducers.spec.d.ts +0 -1
- package/dist/stores/submission/submission.selectors.d.ts +0 -2
- package/dist/stores/submission/submission.selectors.spec.d.ts +0 -1
- package/dist/stores/submissions/index.d.ts +0 -3
- package/dist/stores/submissions/submissions.actions.d.ts +0 -6
- package/dist/stores/submissions/submissions.actions.spec.d.ts +0 -1
- package/dist/stores/submissions/submissions.reducers.d.ts +0 -17
- package/dist/stores/submissions/submissions.reducers.spec.d.ts +0 -1
- package/dist/stores/submissions/submissions.selectors.d.ts +0 -9
- package/dist/stores/submissions/submissions.selectors.spec.d.ts +0 -1
- package/dist/utils/clean.d.ts +0 -1
- package/dist/utils/clean.test.d.ts +0 -1
- package/dist/utils/mapRequestParams.d.ts +0 -9
- package/dist/utils/mapRequestParams.test.d.ts +0 -1
- package/dist/utils/url.d.ts +0 -3
- package/dist/utils/url.test.d.ts +0 -1
- package/src/stores/action/action.actions.spec.ts +0 -114
- package/src/stores/action/action.actions.ts +0 -82
- package/src/stores/action/action.constant.ts +0 -1
- package/src/stores/action/action.reducers.spec.ts +0 -91
- package/src/stores/action/action.reducers.ts +0 -54
- package/src/stores/action/action.selectors.spec.ts +0 -19
- package/src/stores/action/action.selectors.ts +0 -6
- package/src/stores/action/index.ts +0 -4
- package/src/stores/action-info/action-info.actions.spec.ts +0 -46
- package/src/stores/action-info/action-info.actions.ts +0 -32
- package/src/stores/action-info/action-info.constant.ts +0 -1
- package/src/stores/action-info/action-info.reducers.spec.ts +0 -60
- package/src/stores/action-info/action-info.reducers.ts +0 -44
- package/src/stores/action-info/action-info.selectors.spec.ts +0 -19
- package/src/stores/action-info/action-info.selectors.ts +0 -7
- package/src/stores/action-info/index.ts +0 -4
- package/src/stores/actions/actions.actions.spec.ts +0 -62
- package/src/stores/actions/actions.actions.ts +0 -34
- package/src/stores/actions/actions.constant.ts +0 -1
- package/src/stores/actions/actions.reducers.spec.ts +0 -62
- package/src/stores/actions/actions.reducers.ts +0 -48
- package/src/stores/actions/actions.selectors.spec.ts +0 -34
- package/src/stores/actions/actions.selectors.ts +0 -7
- package/src/stores/actions/index.ts +0 -4
- package/src/stores/auth/auth.actions.ts +0 -13
- package/src/stores/auth/auth.constant.ts +0 -1
- package/src/stores/auth/auth.reducers.spec.ts +0 -376
- package/src/stores/auth/auth.reducers.ts +0 -151
- package/src/stores/auth/auth.selectors.spec.ts +0 -47
- package/src/stores/auth/auth.selectors.ts +0 -14
- package/src/stores/auth/auth.utils.spec.ts +0 -29
- package/src/stores/auth/auth.utils.tsx +0 -37
- package/src/stores/auth/getAccess.action.spec.ts +0 -257
- package/src/stores/auth/getAccess.action.ts +0 -57
- package/src/stores/auth/getProjectAccess.action.ts +0 -25
- package/src/stores/auth/index.ts +0 -10
- package/src/stores/auth/initAuth.action.spec.ts +0 -56
- package/src/stores/auth/initAuth.action.ts +0 -29
- package/src/stores/auth/logout.action.spec.ts +0 -25
- package/src/stores/auth/logout.action.ts +0 -9
- package/src/stores/auth/setUser.action.spec.ts +0 -25
- package/src/stores/auth/setUser.action.ts +0 -9
- package/src/stores/form/form.actions.spec.ts +0 -203
- package/src/stores/form/form.actions.ts +0 -84
- package/src/stores/form/form.reducers.spec.ts +0 -78
- package/src/stores/form/form.reducers.ts +0 -59
- package/src/stores/form/form.selectors.spec.ts +0 -19
- package/src/stores/form/form.selectors.ts +0 -5
- package/src/stores/form/index.ts +0 -3
- package/src/stores/forms/forms.actions.spec.ts +0 -91
- package/src/stores/forms/forms.actions.ts +0 -44
- package/src/stores/forms/forms.reducers.spec.ts +0 -97
- package/src/stores/forms/forms.reducers.ts +0 -77
- package/src/stores/forms/forms.selectors.spec.ts +0 -39
- package/src/stores/forms/forms.selectors.ts +0 -6
- package/src/stores/forms/index.ts +0 -3
- package/src/stores/index.spec.ts +0 -125
- package/src/stores/index.ts +0 -33
- package/src/stores/root/index.ts +0 -1
- package/src/stores/root/root.selectors.spec.ts +0 -94
- package/src/stores/root/root.selectors.ts +0 -23
- package/src/stores/submission/index.ts +0 -3
- package/src/stores/submission/submission.actions.spec.ts +0 -214
- package/src/stores/submission/submission.actions.ts +0 -81
- package/src/stores/submission/submission.reducers.spec.ts +0 -96
- package/src/stores/submission/submission.reducers.ts +0 -70
- package/src/stores/submission/submission.selectors.spec.ts +0 -19
- package/src/stores/submission/submission.selectors.ts +0 -5
- package/src/stores/submissions/index.ts +0 -3
- package/src/stores/submissions/submissions.actions.spec.ts +0 -99
- package/src/stores/submissions/submissions.actions.ts +0 -38
- package/src/stores/submissions/submissions.reducers.spec.ts +0 -98
- package/src/stores/submissions/submissions.reducers.ts +0 -78
- package/src/stores/submissions/submissions.selectors.spec.ts +0 -39
- package/src/stores/submissions/submissions.selectors.ts +0 -6
- package/src/utils/clean.test.ts +0 -7
- package/src/utils/clean.ts +0 -12
- package/src/utils/mapRequestParams.test.ts +0 -81
- package/src/utils/mapRequestParams.ts +0 -36
- package/src/utils/url.test.ts +0 -31
- package/src/utils/url.ts +0 -23
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../../../node_modules/classnames/index.js","../src/utils/iconClass.ts","../src/utils/getEventValue.ts","../src/components/form-control/formControl.component.tsx","../src/components/select/select.component.tsx","../src/components/table/utils/getPageNumbers.ts","../src/components/pagination/pagination.component.tsx","../src/components/table/components/defaultArrowSort.component.tsx","../src/components/table/components/defaultCellHeader.component.tsx","../src/utils/callLast.ts","../src/components/input-text/inputText.component.tsx","../src/components/table/filters/defaultColumnFilter.component.tsx","../src/utils/stopPropagationWrapper.ts","../src/components/table/components/defaultOperationButton.component.tsx","../src/components/table/components/defaultCellOperations.component.tsx","../src/components/table/utils/useOperations.hook.tsx","../src/components/table/table.component.tsx","../src/components/actions-table/actionsTable.component.tsx","../src/components/alert/alert.component.tsx","../src/components/card/card.component.tsx","../src/components/form/useForm.hook.ts","../src/components/form/form.component.tsx","../src/components/form-access/formAccess.schema.ts","../src/components/form-access/formAccess.utils.ts","../src/components/form-access/formAccess.component.tsx","../src/components/form-action/formAction.component.tsx","../src/components/form-builder/formBuilder.component.tsx","../src/hooks/useTooltip.ts","../src/components/form-edit/formCtas.component.tsx","../src/components/input-tags/inputTags.component.tsx","../src/components/form-edit/formParameters.component.tsx","../src/components/form-edit/formEdit.reducer.ts","../src/components/form-edit/useFormEdit.hook.ts","../src/components/form-edit/formEdit.component.tsx","../src/components/form-settings/formSettings.schema.ts","../src/components/form-settings/formSettings.utils.ts","../src/components/form-settings/formSettings.component.tsx","../src/components/table/filters/selectColumnFilter.component.tsx","../../../node_modules/moment/moment.js","../src/components/forms-table/components/formCell.component.tsx","../src/components/forms-table/formsTable.component.tsx","../src/components/loader/loader.component.tsx","../src/components/modal/modal.component.tsx","../src/components/modal/removeModal.component.tsx","../src/components/react-component/reactComponent.component.tsx","../src/components/table/components/defaultCell.component.tsx","../src/components/table/utils/mapFormToColumns.tsx","../src/components/submissions-table/submissionsTable.component.tsx","../src/components/table/filters/sliderColumnFilter.component.tsx","../src/components/tabs/tabs.component.tsx","../src/utils/url.ts","../src/stores/action-info/action-info.constant.ts","../src/stores/action-info/action-info.actions.ts","../src/stores/action-info/action-info.reducers.ts","../src/stores/root/root.selectors.ts","../src/stores/action-info/action-info.selectors.ts","../src/stores/action/action.constant.ts","../src/stores/action/action.actions.ts","../src/stores/action/action.reducers.ts","../src/stores/action/action.selectors.ts","../src/stores/actions/actions.constant.ts","../src/stores/actions/actions.actions.ts","../src/stores/actions/actions.reducers.ts","../src/stores/actions/actions.selectors.ts","../src/stores/auth/auth.actions.ts","../src/stores/auth/auth.constant.ts","../src/stores/auth/auth.reducers.ts","../src/stores/auth/auth.selectors.ts","../src/stores/auth/auth.utils.tsx","../src/stores/auth/getAccess.action.ts","../src/stores/auth/getProjectAccess.action.ts","../src/stores/auth/logout.action.ts","../src/stores/auth/setUser.action.ts","../src/stores/auth/initAuth.action.ts","../src/stores/form/form.selectors.ts","../src/stores/form/form.actions.ts","../src/stores/form/form.reducers.ts","../src/utils/clean.ts","../src/utils/mapRequestParams.ts","../src/stores/forms/forms.selectors.ts","../src/stores/forms/forms.actions.ts","../src/stores/forms/forms.reducers.ts","../src/stores/submission/submission.actions.ts","../src/stores/submission/submission.reducers.ts","../src/stores/submission/submission.selectors.ts","../src/stores/submissions/submissions.selectors.ts","../src/stores/submissions/submissions.actions.ts","../src/stores/submissions/submissions.reducers.ts","../src/stores/index.ts"],"sourcesContent":["/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Templates } from \"formiojs\";\n\nexport function iconClass(iconset: string | undefined, name: string, spinning?: boolean): string {\n return Templates.current.iconClass(iconset || Templates.current.defaultIconset, name, spinning);\n}\n","export function getEventValue(event: any) {\n const { target } = event;\n\n if (event.target.multiple && event.target.selectedOptions) {\n return Array.from(event.target.selectedOptions, (option: any) => option.value);\n }\n\n return target.type === \"checkbox\" ? target.checked : target.value;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nexport interface FormControlProps {\n name: string;\n required?: boolean;\n label?: string;\n className?: string;\n description?: string | React.ComponentType | any;\n prefix?: JSX.Element | React.ComponentType | any;\n suffix?: JSX.Element | React.ComponentType | any;\n shadow?: boolean;\n}\n\nexport function FormControl({\n children,\n name,\n required,\n prefix,\n suffix,\n description,\n label,\n className\n}: React.PropsWithChildren<FormControlProps>) {\n return (\n <div data-testid={name && `form-group-${name}`} id={`form-group-${name || \"\"}`} className={classnames(\"form-group\", className)}>\n {label && (\n <label htmlFor={name} data-testid='form-control-label' className={`col-form-label ${required ? \" field-required\" : \"\"}`}>\n {label}\n </label>\n )}\n <div className={\"input-group\"}>\n {prefix && (\n <div className='input-group-prepend'>\n <span className='input-group-text' data-testid='form-control-prefix'>\n {prefix}\n </span>\n </div>\n )}\n {children}\n {suffix && (\n <div className='input-group-append'>\n <span className='input-group-text' data-testid='form-control-suffix'>\n {suffix}\n </span>\n </div>\n )}\n </div>\n {description && (\n <div data-testid='form-control-description' className='form-text text-muted'>\n {description}\n </div>\n )}\n </div>\n );\n}\n\nFormControl.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n children: PropTypes.any,\n required: PropTypes.bool,\n description: PropTypes.any\n};\n","import Choices from \"choices.js\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { ReactElement, useEffect, useRef } from \"react\";\n\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface SelectProps<T = any> extends FormControlProps {\n value?: any;\n size?: string;\n onChange?: (name: string, value: any) => void;\n placeholder?: string;\n choices: { label: string; value: T }[];\n layout?: \"html5\" | \"choicesjs\";\n multiple?: boolean;\n\n [key: string]: any;\n}\n\nexport function Select<T = any>({\n name,\n label,\n size,\n onChange,\n required,\n value,\n choices,\n description,\n placeholder,\n prefix,\n suffix,\n multiple,\n layout,\n ...props\n}: SelectProps<T>): ReactElement {\n const ref = useRef<any>();\n\n useEffect(() => {\n let instance: any;\n\n if (layout === \"choicesjs\") {\n instance = new Choices(ref.current, {\n removeItemButton: true,\n placeholderValue: placeholder\n });\n }\n\n return () => {\n instance && instance.destroy();\n };\n }, []);\n\n choices =\n layout === \"choicesjs\" || multiple || !placeholder\n ? choices\n : ([\n {\n label: placeholder,\n value: \"\"\n },\n ...choices\n ] as any[]);\n\n return (\n <FormControl name={name} label={label} required={required} description={description} prefix={prefix} suffix={suffix} shadow={false}>\n {/* eslint-disable-next-line jsx-a11y/no-onchange */}\n <select\n ref={ref}\n {...props}\n data-testid={`select_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n name={name}\n id={name}\n multiple={multiple}\n value={value || (\"\" as any)}\n placeholder={placeholder}\n onChange={(event) => {\n onChange && onChange(name, getEventValue(event));\n }}\n >\n {choices.map(({ label, value }) => {\n return (\n <option key={String(value)} label={label} value={value as any}>\n {label}\n </option>\n );\n })}\n </select>\n </FormControl>\n );\n}\n\nSelect.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n choices: PropTypes.array.isRequired\n};\n","export const LEFT_PAGE = \"LEFT\";\nexport const RIGHT_PAGE = \"RIGHT\";\n\nfunction range(from: number, to: number, step = 1): any[] {\n let i = from;\n const range = [];\n\n while (i <= to) {\n range.push(i);\n i += step;\n }\n\n return range;\n}\n\nexport function getPageNumbers({ currentPage, pageNeighbours = 1, totalPages }: any) {\n const totalNumbers = pageNeighbours * 2 + 3;\n const totalBlocks = totalNumbers + 2;\n\n if (totalPages > totalBlocks) {\n const calculatedStartPage = Math.max(2, currentPage - pageNeighbours);\n const calculatedEndPage = Math.min(totalPages - 1, currentPage + pageNeighbours);\n const startPage = calculatedStartPage === 3 ? 2 : calculatedStartPage;\n const endPage = calculatedEndPage === totalPages - 2 ? totalPages - 1 : calculatedEndPage;\n\n let pages = range(startPage, endPage);\n\n const hasLeftSpill = startPage > 2;\n const hasRightSpill = totalPages - endPage > 1;\n const spillOffset = totalNumbers - (pages.length + 1);\n let extraPages;\n\n if (hasLeftSpill && !hasRightSpill) {\n extraPages = range(startPage - spillOffset, startPage - 1);\n pages = [LEFT_PAGE, ...extraPages, ...pages];\n } else if (!hasLeftSpill && hasRightSpill) {\n extraPages = range(endPage + 1, endPage + spillOffset);\n pages = [...pages, ...extraPages, RIGHT_PAGE];\n } else {\n pages = [LEFT_PAGE, ...pages, RIGHT_PAGE];\n }\n\n return [1, ...pages, totalPages];\n }\n\n return range(1, totalPages);\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { Select } from \"../select/select.component\";\nimport { getPageNumbers, LEFT_PAGE, RIGHT_PAGE } from \"../table/utils/getPageNumbers\";\n\nfunction PaginationButton(\n props: PropsWithChildren<\n {\n component?: any;\n disabled?: boolean;\n className?: string;\n active?: boolean;\n } & Record<string, any>\n >\n) {\n const { component: Component = \"button\", children, disabled, active, ...otherProps } = props;\n\n return (\n <Component\n {...otherProps}\n data-testid='pagination-button'\n disabled={disabled}\n className={classnames(\"page-link\", disabled ? \"disabled\" : \"\", active ? \"\" : \"\", props.className)}\n >\n {children}\n </Component>\n );\n}\n\nexport interface PaginationProps {\n className?: string;\n pageSizes?: number[];\n gotoPage: any;\n canPreviousPage: boolean;\n previousPage: any;\n nextPage: any;\n canNextPage: boolean;\n pageCount: number;\n pageIndex: number;\n pageOptions?: any;\n pageSize: number;\n setPageSize: any;\n i18n?: (f: string) => string;\n}\n\nexport function Pagination(props: PaginationProps) {\n const {\n className,\n pageSizes = [10, 25, 50, 100],\n gotoPage,\n canPreviousPage,\n previousPage,\n nextPage,\n canNextPage,\n pageCount,\n pageIndex = 1,\n pageOptions,\n pageSize,\n setPageSize,\n i18n = (f: string) => f\n } = props;\n\n const pageNumbers = getPageNumbers({\n currentPage: pageIndex,\n // pageNeighbours,\n totalPages: pageCount\n });\n const choices: any[] = pageSizes.map((value) => ({ value, label: value }));\n\n return (\n <nav aria-label='Page navigation' className={classnames(\"pagination-group -mb-3\", className)}>\n <ul className='pagination mb-3 mr-3'>\n <li className={classnames(\"page-item\", !canPreviousPage && \"disabled\")}>\n <PaginationButton tabIndex={-1} disabled={!canPreviousPage} onClick={() => previousPage()}>\n {i18n(\"Previous\")}\n </PaginationButton>\n </li>\n\n {pageNumbers.map((page) => {\n if ([LEFT_PAGE, RIGHT_PAGE].includes(page)) {\n return (\n <li className='page-item' key={page}>\n <PaginationButton aria-hidden='true'>...</PaginationButton>\n </li>\n );\n }\n\n const active = page - 1 === pageIndex;\n return (\n <li className={classnames(\"page-item\", active && \"active\")} key={page}>\n <PaginationButton tabIndex={pageIndex} active={active} onClick={() => gotoPage(page - 1)}>\n {page}\n </PaginationButton>\n </li>\n );\n })}\n\n <li className={classnames(\"page-item\", !canNextPage && \"disabled\")}>\n <PaginationButton tabIndex={pageNumbers.length} disabled={!canNextPage} onClick={() => nextPage()}>\n {i18n(\"Next\")}\n </PaginationButton>\n </li>\n </ul>\n\n <li className='mb-3 mr-3 flex items-center'>\n <Select\n name={\"page\"}\n value={pageSize}\n choices={choices}\n onChange={(name: string, value: number) => {\n setPageSize(+value);\n }}\n />\n <span className={\"ml-3\"}>{i18n(\"items per page\")}</span>\n </li>\n {pageOptions && (\n <li className={\"mb-3 flex items-center\"}>\n <span>{i18n(\"Page\")} </span>\n <strong>\n {pageIndex + 1} of {pageOptions.length}\n </strong>\n </li>\n )}\n </nav>\n );\n}\n","import React from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\n\nexport function DefaultArrowSort({ column }: any) {\n const { isSorted, isSortedDesc } = column;\n return (\n <span className={\"table-arrow-sort\"}>\n {isSorted ? <i className={iconClass(undefined, isSortedDesc ? \"sort-up\" : \"sort-down\")} /> : \"\"}\n </span>\n );\n}\n","import React from \"react\";\nimport { HeaderGroup } from \"react-table\";\n\nexport interface DefaultCellHeaderProps<Data extends object = any> extends Record<string, unknown> {\n column: HeaderGroup<Data>;\n}\n\nexport function DefaultCellHeader<Data extends Record<string, unknown> = {}>({ column }: DefaultCellHeaderProps<Data>) {\n return (\n <div className={\"table-cell-header\"}>\n <div className='table-cell-header__label' {...column.getSortByToggleProps()}>\n <span>{column.render(\"Header\")}</span>\n\n {column.render(\"ArrowSort\")}\n </div>\n {column.canFilter ? <div className='table-cell-header__filter'>{column.render(\"Filter\")}</div> : null}\n </div>\n );\n}\n","export function callLast(fn: Function, time: number) {\n let last: any = null;\n\n return (...args: any[]) => {\n if (last) {\n clearTimeout(last);\n last = null;\n }\n\n last = setTimeout(() => fn(...args), time);\n };\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useMemo, useState } from \"react\";\n\nimport { callLast } from \"../../utils/callLast\";\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTextProps<T = any> extends FormControlProps {\n type?: string;\n value?: T;\n /**\n * The input size\n */\n size?: string;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputText<T = any>({\n name,\n value,\n label,\n onChange,\n required,\n size,\n type,\n prefix,\n suffix,\n description,\n className,\n placeholder,\n ...props\n}: InputTextProps<T>) {\n const [localValue, setValue] = useState(value);\n\n const change = useMemo(() => onChange && callLast(onChange, 300), [onChange]);\n\n useEffect(() => {\n setValue(value);\n }, [value]);\n\n return (\n <FormControl\n name={name}\n label={label}\n required={required}\n description={description}\n prefix={prefix}\n suffix={suffix}\n className={className}\n >\n <input\n type={type || \"text\"}\n {...props}\n data-testid={`input_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n id={name}\n required={required}\n value={(localValue || \"\") as any}\n placeholder={placeholder}\n onChange={(event) => {\n const value = getEventValue(event);\n setValue(value);\n\n return change && change(name, value);\n }}\n />\n </FormControl>\n );\n}\n\nInputText.propTypes = {\n label: PropTypes.string,\n type: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n size: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n prefix: PropTypes.any,\n suffix: PropTypes.any\n};\n","import React, { useCallback, useState } from \"react\";\nimport { FilterProps } from \"react-table\";\n\nimport { InputText } from \"../../input-text/inputText.component\";\n\nexport function DefaultColumnFilter<D extends Record<string, unknown> = {}>(\n props: FilterProps<D> & { filterId: string; setFilterId: any }\n) {\n const {\n filterId,\n setFilterId,\n column: { id, filterValue, setFilter }\n } = props;\n\n const [value, setValue] = useState(filterValue || \"\");\n\n const onChange = useCallback(\n (name, value) => {\n setValue(value);\n setFilterId(id);\n setFilter(value || undefined);\n },\n [id, setValue, setFilterId, setFilter]\n );\n\n return (\n <InputText\n size={\"sm\"}\n id={id}\n name={id}\n key={id}\n autoFocus={id === filterId}\n value={value}\n onChange={onChange}\n placeholder={\"Search records...\"}\n />\n );\n}\n","export const stopPropagationWrapper = (fn: Function) => (event: any) => {\n event.stopPropagation();\n fn();\n};\n","import classnames from \"classnames\";\nimport React from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport interface OperationButtonProps {\n className?: string;\n buttonType?: string;\n buttonSize?: string;\n buttonOutline?: boolean;\n data: any[];\n onClick: (action: string) => void;\n action: string;\n icon?: string;\n title?: string;\n i18n?: (i18n: string) => string;\n}\n\nexport function DefaultOperationButton(props: OperationButtonProps) {\n const {\n className = \"btn\",\n buttonSize = \"xs\",\n buttonType = \"primary\",\n buttonOutline,\n onClick,\n action,\n icon = \"\",\n title = \"\",\n i18n = (f: string) => f\n } = props;\n\n return (\n <button\n className={classnames(className, [\"btn\", buttonOutline && \"outline\", buttonType].filter(Boolean).join(\"-\"), `btn-${buttonSize}`)}\n onClick={stopPropagationWrapper(() => onClick(action))}\n >\n {icon ? (\n <>\n <i className={iconClass(undefined, icon)} /> {title && \" \"}\n </>\n ) : null}\n {title && <span className={icon && title ? \"ml-1\" : \"\"}>{i18n(title)}</span>}\n </button>\n );\n}\n","import React from \"react\";\n\nimport { DefaultOperationButton } from \"./defaultOperationButton.component\";\n\nexport function DefaultCellOperations({ operations, row, onClick, ctx, i18n }: any) {\n const data = row.original;\n\n return (\n <div className='btn-group'>\n {operations\n .filter(({ permissionsResolver }: any) => !permissionsResolver || permissionsResolver(data, ctx))\n .map(({ OperationButton = DefaultOperationButton, ...operation }: any) => {\n return (\n <OperationButton\n key={operation.action}\n {...operation}\n onClick={(action: string) => onClick(data, action)}\n data={data}\n i18n={i18n}\n ctx={ctx}\n />\n );\n })}\n </div>\n );\n}\n","import React from \"react\";\nimport { Hooks } from \"react-table\";\n\nimport { Operation } from \"../../../interfaces\";\nimport { DefaultCellOperations } from \"../components/defaultCellOperations.component\";\n\nexport type UseOperationsHookProps = {\n CellOperations?: React.ComponentType;\n operations: Operation[];\n onClick?: (data: any, event: string) => void;\n i18n?: (f: string) => string;\n ctx?: any;\n};\n\nexport function useOperations<D extends object = {}>({\n operations,\n CellOperations = DefaultCellOperations,\n onClick,\n i18n = (f: string) => f,\n ctx\n}: UseOperationsHookProps) {\n return (hooks: Hooks<D>): void => {\n hooks.visibleColumns.push((columns) => {\n if (!operations.length) {\n return columns;\n }\n\n return [\n ...columns,\n {\n id: \"operations\",\n groupByBoundary: true,\n Header: () => <div className={\"text-center\"}>{i18n(\"Operations\")}</div>,\n Cell: (props: any) => <CellOperations {...props} operations={operations} onClick={onClick} ctx={ctx} i18n={i18n} />\n }\n ];\n });\n };\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { PropsWithChildren } from \"react\";\nimport { CellProps, FilterProps, Renderer, TableOptions, useFilters, useGroupBy, usePagination, useSortBy, useTable } from \"react-table\";\n\nimport { OnClickOperation, Operation, QueryOptions } from \"../../interfaces\";\nimport { Pagination as DefaultPagination } from \"../pagination/pagination.component\";\nimport { DefaultArrowSort } from \"./components/defaultArrowSort.component\";\nimport { DefaultCellHeader, DefaultCellHeaderProps } from \"./components/defaultCellHeader.component\";\nimport { DefaultColumnFilter } from \"./filters/defaultColumnFilter.component\";\nimport { useOperations } from \"./utils/useOperations.hook\";\n\nexport interface TableProps<Data extends object = any> extends TableOptions<Data>, Partial<QueryOptions> {\n className?: string;\n /**\n * Call the listener when a filter / pagination / sort change.\n */\n onChange?: (query: QueryOptions) => void;\n /**\n * Call the listener when a line is clicked.\n */\n onClick?: OnClickOperation<Data>;\n /**\n * Pagination steps list\n */\n pageSizes?: number[];\n /**\n *\n */\n isLoading?: boolean;\n /**\n * Custom EmptyData displayed when there is no data\n */\n EmptyData?: React.ComponentType;\n /**\n * Custom ArrowSort\n */\n ArrowSort?: React.ComponentType;\n /**\n * Custom default ColumnFilter\n */\n ColumnFilter?: Renderer<FilterProps<Data>>;\n /**\n * Custom cell\n */\n Cell?: React.ComponentType<CellProps<Data>>;\n /**\n *\n */\n CellHeader?: React.ComponentType<DefaultCellHeaderProps<Data>>;\n /**\n *\n */\n CellOperations?: React.ComponentType;\n /**\n * Custom Loader\n */\n Loader?: React.ComponentType;\n /**\n * Custom Loader\n */\n Pagination?: React.ComponentType;\n /**\n * Disable filters\n */\n disableFilters?: boolean;\n /**\n * Disable pagination\n */\n disablePagination?: boolean;\n manualPagination?: boolean;\n manualSortBy?: boolean;\n manualFilters?: boolean;\n /**\n * Configuration operation for each line.\n */\n operations?: Operation[];\n\n i18n?: (f: string) => string;\n}\n\nfunction getOperationCallback(operations: Operation[], onClick: OnClickOperation) {\n return (data: any, action: string) => {\n const operation = operations.find((operation) => operation.action === action || operation.alias === action);\n if (operation) {\n onClick(data, operation);\n }\n };\n}\n\nfunction DefaultLoader() {\n return <div className={\"text-center p-2 pb-4 font-bold\"}>Loading in progress</div>;\n}\n\nfunction DefaultEmptyData() {\n return <div className='text-center p-2 pb-4 font-bold'>No data found</div>;\n}\n\nconst hooks = [useFilters, useGroupBy, useSortBy, usePagination];\n\nexport function Table<Data extends object = any>(props: PropsWithChildren<TableProps<Data>>) {\n const {\n children,\n className = \"\",\n columns,\n data,\n onChange = noop,\n onClick = noop,\n operations = [],\n pageSizes = [10, 25, 50, 100],\n filters: controlledFilters,\n filterId: controlledFilterId,\n pageSize: controlledPageSize,\n pageIndex: controlledPageIndex,\n sortBy: controlledSortBy,\n isLoading,\n disableFilters,\n disablePagination,\n ArrowSort = DefaultArrowSort,\n ColumnFilter = DefaultColumnFilter,\n EmptyData = DefaultEmptyData,\n Loader = DefaultLoader,\n Pagination = DefaultPagination,\n CellHeader = DefaultCellHeader as any,\n CellOperations,\n i18n = (f: string) => f,\n ...ctx\n } = props;\n\n const _onClick = getOperationCallback(operations, onClick);\n\n const defaultColumn = React.useMemo(\n () => ({\n // Let's set up our default Filter UI\n Filter: ColumnFilter,\n ArrowSort\n }),\n [ColumnFilter, ArrowSort]\n ) as any;\n\n const [filterId, setFilterId] = React.useState(controlledFilterId);\n\n const tableInstance = useTable<Data>(\n {\n ...props,\n columns,\n data,\n ctx,\n defaultColumn,\n initialState: {\n ...(props.initialState || {}),\n filters: controlledFilters || [],\n pageIndex: controlledPageIndex || 0,\n pageSize: controlledPageSize || 10,\n sortBy: controlledSortBy || []\n } as any,\n manualPagination: props.manualPagination === undefined ? true : props.manualPagination,\n manualSortBy: props.manualSortBy === undefined ? true : props.manualPagination,\n manualFilters: props.manualFilters === undefined ? true : props.manualFilters,\n disableFilters,\n filterId,\n setFilterId\n } as any,\n ...hooks,\n useOperations({ operations, CellOperations, onClick: _onClick, ctx, i18n })\n );\n\n const {\n setPageSize,\n state: { pageIndex, pageSize, sortBy, filters }\n } = tableInstance;\n\n React.useEffect(() => {\n onChange({\n pageIndex,\n pageSize,\n sortBy,\n filters,\n filterId\n });\n }, [onChange, pageIndex, pageSize, sortBy, filters, filterId]);\n\n // Render the UI for your table\n return (\n <div className={classnames(\"table-group table-responsive\", className)}>\n <table\n className={\"table table-striped table-hover\"}\n {...tableInstance.getTableProps()}\n /* style={{ marginBottom: disablePagination ? \"-1px\" : \"0px\" }} */\n >\n <thead>\n {tableInstance.headerGroups.map((headerGroup, i) => (\n <tr {...headerGroup.getHeaderGroupProps()} key={`tableInstance.headerGroups${i}`}>\n {headerGroup.headers.map((column) => (\n <th\n /* className='text-left py-2 align-top' */\n {...column.getHeaderProps()}\n key={`tableInstance.headers.column.${column.id}`}\n >\n <CellHeader column={column} />\n </th>\n ))}\n </tr>\n ))}\n </thead>\n {!isLoading ? (\n <tbody {...tableInstance.getTableBodyProps()}>\n {tableInstance.page.map((row) => {\n tableInstance.prepareRow(row);\n return (\n <tr onClick={() => _onClick(row.original, \"row\")} {...row.getRowProps()} key={`tableInstance.page.${row.id}`}>\n {row.cells.map((cell, i) => {\n const { hidden, colspan } = cell.column as any;\n if (hidden) {\n return null;\n }\n return (\n <td colSpan={colspan} {...cell.getCellProps()} key={`tableInstance.page.cells.${cell.value || \"value\"}.${i}`}>\n {cell.render(\"Cell\")}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n ) : null}\n </table>\n {isLoading ? <Loader /> : null}\n {!data.length ? <EmptyData /> : null}\n {!isLoading && data.length && !disablePagination ? (\n <div className={\"overflow-hidden\"}>\n <Pagination\n {...tableInstance}\n className={\"text-sm\"}\n pageIndex={pageIndex}\n pageSize={pageSize}\n pageSizes={pageSizes}\n setPageSize={setPageSize}\n i18n={i18n}\n />\n </div>\n ) : null}\n {children}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { useState } from \"react\";\n\nimport { ActionSchema } from \"../../interfaces\";\nimport { iconClass } from \"../../utils/iconClass\";\nimport { Select } from \"../select/select.component\";\nimport { Table, TableProps } from \"../table/table.component\";\n\nexport type ActionsTableProps = Omit<TableProps<ActionSchema>, \"columns\"> & {\n onAddAction?: (actionName: string) => void;\n availableActions?: { label: string; value: string }[];\n};\n\nexport function ActionsTable({\n disableFilters = true,\n disablePagination = true,\n availableActions = [],\n onAddAction = noop,\n ...props\n}: ActionsTableProps) {\n const { i18n = (f: string) => f } = props;\n const [currentAction, setAction] = useState(\"\");\n\n const columns = [\n {\n Header: i18n(\"Actions\"),\n accessor: \"title\",\n id: \"title\"\n }\n ];\n\n return (\n <Table {...props} disableFilters={disableFilters} disablePagination={disablePagination} columns={columns}>\n <div className={\"pagination-group\"}>\n <Select\n name={\"actions\"}\n value={currentAction}\n choices={[{ label: i18n(\"Select an action\"), value: \"\" }].concat(availableActions)}\n onChange={(name: string, action: string) => setAction(action)}\n />\n <div className={\"pl-3\"}>\n <button\n data-testid={\"submit\"}\n disabled={currentAction === \"\"}\n className={\"btn btn-success\"}\n onClick={() => currentAction && onAddAction(currentAction)}\n type={\"submit\"}\n >\n <i className={classnames(iconClass(undefined, \"plus\"), \"mr-1\")} /> {i18n(\"Add action\")}\n </button>\n </div>\n </div>\n </Table>\n );\n}\n","import React from \"react\";\n\nfunction formatError(error: any): any {\n if (typeof error === \"string\") {\n return error;\n }\n\n if (Array.isArray(error)) {\n return error.map(formatError);\n }\n\n if (Object.prototype.hasOwnProperty.call(error, \"errors\")) {\n return Object.keys(error.errors).map((key, index) => {\n const item = error.errors[key];\n return (\n <div key={index}>\n <strong>\n {item.name} ({item.path})\n </strong>{\" \"}\n - {item.message}\n </div>\n );\n });\n }\n\n // If this is a standard error.\n if (Object.prototype.hasOwnProperty.call(error, \"message\")) {\n return error.message;\n }\n\n // If this is a joy validation error.\n if (Object.prototype.hasOwnProperty.call(error, \"name\") && error.name === \"ValidationError\") {\n return error.details.map((item: any, index: number) => {\n return <div key={index}>{item.message}</div>;\n });\n }\n\n // If a conflict error occurs on a form, the form is returned.\n if (Object.prototype.hasOwnProperty.call(error, \"_id\") && Object.prototype.hasOwnProperty.call(error, \"display\")) {\n return \"Another user has saved this form already. Please reload and re-apply your changes.\";\n }\n\n return \"An error occurred. See console logs for details.\";\n}\n\nexport interface AlertProps {\n error?: any | any[];\n type?: string;\n}\n\nexport function Alert({ error, type = \"danger\" }: AlertProps) {\n if (!error || (Array.isArray(error) && !error.length)) {\n return null;\n }\n\n return (\n <div className={`alert alert-${type}`} role='alert'>\n {formatError(error)}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nexport interface CardProps {\n children: React.ReactNode;\n label: string;\n className?: string;\n}\n\nexport function Card({ children, label, className }: PropsWithChildren<CardProps>) {\n return (\n <div className={classnames(\"card\", className)}>\n <div className={\"card-header \"}>\n <h4 className={\"card-title\"}>{label}</h4>\n </div>\n <div className={\"card-body\"} role={\"article\"}>\n {children}\n </div>\n </div>\n );\n}\n","import { ExtendedComponentSchema, Form } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport { useEffect, useRef } from \"react\";\n\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\n\nexport interface ChangedSubmission<T = any> extends Submission<T> {\n changed: {\n component: ExtendedComponentSchema;\n instance: any;\n value: any;\n } & Record<string, any>;\n isValid: boolean;\n}\n\nexport interface FormPageChangeProps<Data = any> {\n page: number;\n submission: Submission<Data>;\n}\n\nexport interface UseFormHookProps<Data = any> extends Record<string, any> {\n src?: string;\n /**\n * url to fetch form\n */\n url?: string;\n /**\n * Raw form object\n */\n form?: Partial<FormSchema>;\n /**\n * Configuration option\n */\n options?: FormOptions;\n /**\n * Data submission\n */\n submission?: Submission<Data>;\n\n /// events\n onPrevPage?: (obj: FormPageChangeProps<Data>) => void;\n onNextPage?: (obj: FormPageChangeProps<Data>) => void;\n onCancel?: Function;\n onChange?: (submission: ChangedSubmission) => void;\n onCustomEvent?: (obj: { type: string; event: string; component: ExtendedComponentSchema; data: any }) => void;\n onComponentChange?: (component: ExtendedComponentSchema) => void;\n onSubmit?: (submission: Submission<Data>) => void;\n onAsyncSubmit?: (submission: Submission<Data>) => Promise<any>;\n onSubmitDone?: (submission: Submission<Data>) => void;\n onFormLoad?: Function;\n onError?: (errors: any) => void;\n onRender?: () => void;\n onAttach?: Function;\n onBuild?: Function;\n onFocus?: Function;\n onBlur?: Function;\n onInitialized?: Function;\n onFormReady?: (formio: any) => void;\n}\n\nfunction useEvent(event: string, callback: any, events: Map<string, any>) {\n useEffect(() => {\n if (callback) {\n events.set(event, callback);\n }\n }, [callback, event, events]);\n}\n\nfunction useEvents(funcs: any) {\n const events = useRef<Map<string, any>>(new Map());\n\n const hasEvent = (event: string) => {\n return funcs.hasOwnProperty(event) && typeof funcs[event] === \"function\";\n };\n\n const emit = (event: string, ...args: any[]) => {\n if (hasEvent(event)) {\n const fn = events.current.has(event) ? events.current.get(event) : funcs[event];\n return fn(...args);\n }\n };\n\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onPrevPage\", funcs[\"onPrevPage\"], events.current);\n useEvent(\"onNextPage\", funcs[\"onNextPage\"], events.current);\n useEvent(\"onCancel\", funcs[\"onCancel\"], events.current);\n useEvent(\"onChange\", funcs[\"onChange\"], events.current);\n useEvent(\"onCustomEvent\", funcs[\"onCustomEvent\"], events.current);\n useEvent(\"onComponentChange\", funcs[\"onComponentChange\"], events.current);\n useEvent(\"onSubmit\", funcs[\"onSubmit\"], events.current);\n useEvent(\"onAsyncSubmit\", funcs[\"onAsyncSubmit\"], events.current);\n useEvent(\"onSubmitDone\", funcs[\"onSubmitDone\"], events.current);\n useEvent(\"onFormLoad\", funcs[\"onFormLoad\"], events.current);\n useEvent(\"onError\", funcs[\"onError\"], events.current);\n useEvent(\"onRender\", funcs[\"onRender\"], events.current);\n useEvent(\"onAttach\", funcs[\"onAttach\"], events.current);\n useEvent(\"onBuild\", funcs[\"onBuild\"], events.current);\n useEvent(\"onFocus\", funcs[\"onFocus\"], events.current);\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onInitialized\", funcs[\"onInitialized\"], events.current);\n\n return { events, emit, hasEvent };\n}\n\nexport function useForm<Data = any>(props: UseFormHookProps<Data>) {\n const { src, form, options = {}, submission, url, ...funcs } = props;\n const element = useRef<any>();\n const isLoaded = useRef<boolean>();\n const instance = useRef<Form>();\n const { emit, hasEvent } = useEvents(funcs);\n\n async function customValidation(submission: Submission, callback: (err: Error | null) => void) {\n if (hasEvent(\"onAsyncSubmit\")) {\n try {\n await emit(\"onAsyncSubmit\", submission, instance.current);\n } catch (err) {\n callback(err?.errors || err);\n }\n } else {\n callback(null);\n }\n }\n\n const createWebForm = (srcOrForm: any, options: any) => {\n options = Object.assign({}, options);\n srcOrForm = typeof srcOrForm === \"string\" ? srcOrForm : cloneDeep(srcOrForm);\n\n if (!instance.current) {\n isLoaded.current = false;\n options.hooks = {\n ...(options.hooks || {}),\n customValidation: options?.hooks?.customValidation || customValidation\n };\n\n instance.current = new Form(element.current, srcOrForm, options);\n\n instance.current.onAny((event: string, ...args: any[]): void => {\n if (!instance.current) {\n return;\n }\n\n if (event.startsWith(\"formio.\")) {\n const eventName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;\n\n if (eventName === \"onChange\" && !args[0].changed) {\n return;\n }\n\n emit(eventName, ...args, instance.current);\n }\n });\n\n instance.current.ready.then((formio: any) => {\n submission && (formio.submission = cloneDeep(submission));\n\n if (props.onFormReady) {\n props.onFormReady(formio);\n }\n\n isLoaded.current = true;\n });\n }\n\n return instance.current;\n };\n\n useEffect(() => {\n if (instance.current) {\n instance.current.ready.then((formio: any) => {\n if (isEqual(formio.submission.data, submission?.data)) {\n return;\n }\n\n submission && (formio.submission = cloneDeep(submission));\n });\n }\n }, [submission]);\n\n useEffect(() => {\n if (form && instance.current) {\n instance.current.ready.then((formio: any) => {\n formio.form = form;\n if (url) {\n formio.url = url;\n }\n });\n }\n }, [form, url]);\n\n useEffect(() => {\n if (src) {\n if (instance.current) {\n isLoaded.current = false;\n (instance.current as any).destroy(true);\n }\n\n createWebForm(src, options);\n }\n }, [src]);\n\n useEffect(() => {\n if (form) {\n createWebForm(form, options);\n }\n\n return () => {\n isLoaded.current = false;\n instance.current && (instance.current as any).destroy(true);\n };\n }, []);\n\n return {\n element\n };\n}\n","import { Components } from \"formiojs\";\nimport AllComponents from \"formiojs/components\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { useForm, UseFormHookProps } from \"./useForm.hook\";\n\nComponents.setComponents(AllComponents);\n\nexport interface FormProps<Data = any> extends UseFormHookProps<Data> {\n name?: string;\n /**\n *\n */\n className?: string;\n}\n\nexport function Form<Data = any>(props: Partial<FormProps<Data>>) {\n const { element } = useForm(props);\n\n return <div data-testid={`formioContainer${props.name || \"\"}`} ref={element} className={props.className} />;\n}\n\nForm.propTypes = {\n name: PropTypes.string,\n className: PropTypes.string,\n /**\n *\n */\n src: PropTypes.string,\n /**\n * url to fetch form\n */\n url: PropTypes.string,\n /**\n * Raw form object\n */\n form: PropTypes.object,\n /**\n * Data submission\n */\n submission: PropTypes.object,\n /**\n * Configuration option\n */\n options: PropTypes.shape({\n readOnly: PropTypes.bool,\n noAlerts: PropTypes.bool,\n i18n: PropTypes.any,\n template: PropTypes.string,\n saveDraft: PropTypes.bool,\n hooks: PropTypes.any\n }),\n onPrevPage: PropTypes.func,\n onNextPage: PropTypes.func,\n onCancel: PropTypes.func,\n onChange: PropTypes.func,\n onCustomEvent: PropTypes.func,\n onComponentChange: PropTypes.func,\n onSubmit: PropTypes.func,\n onAsyncSubmit: PropTypes.func,\n onSubmitDone: PropTypes.func,\n onFormLoad: PropTypes.func,\n onError: PropTypes.func,\n onRender: PropTypes.func,\n onAttach: PropTypes.func,\n onBuild: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onInitialized: PropTypes.func,\n onFormReady: PropTypes.func,\n formioform: PropTypes.any\n};\n","import { ExtendedComponentSchema } from \"formiojs\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\n\nexport function getRoleComponent({ label, key, description, choices, data }: any): ExtendedComponentSchema {\n return {\n label,\n key,\n description,\n type: \"select\",\n labelPosition: \"top\",\n widget: \"choicesjs\",\n placeholder: \"Select roles...\",\n tooltip: \"\",\n multiple: true,\n dataSrc: \"values\",\n defaultValue: \"\",\n data: {\n values: choices\n },\n template: \"<span>{{ item.label }}</span>\",\n searchEnabled: true,\n selectThreshold: 0,\n validate: {\n required: false,\n custom: \"\",\n customPrivate: false\n },\n values: data\n };\n}\n\nfunction toDescription(description: string, hr = true): string {\n return '<span class=\"text-sm\">' + description + \"</span> \" + (hr ? '<hr class=\"mt-6 mb-5 border-gray-200 mx-20\"/>' : \"\");\n}\n\nexport function getSubmissionPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"create_own\",\n label: '<h4 class=\"text-gray-800\">Create Own Submissions</h4>',\n description: toDescription(\n \"The Create Own Submissions permission will allow a user with one of the Roles to create a Submission. Upon creating the Submission, the user will be defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"create_all\",\n label: '<h4 class=\"text-gray-800\">Create All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Create All Submissions permission will allow a user with one of the Roles to create a new Submission and assign ownership of that Submission to another user.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Own Submissions</h4>',\n description: toDescription(\n \"The Read Own Submissions permission will allow a user with one of the Roles to read a Submission. A user can only read a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: '<h4 class=\"text-gray-800\">Read All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read All Submissions permission will allow a user with one of the Roles to read all Submissions regardless of who owns them.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Own Submissions</h4>',\n description: toDescription(\n \"The Update Own Submissions permission will allow a user with one of the Roles to update a Submission. A user can only update a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update All Submissions permission will allow a user with one of the Roles to update a Submission, regardless of who owns the Submission. Additionally with this permission, a user can change the owner of a Submission.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Own Submissions</h4>',\n description: toDescription(\n \"The Delete Own Submissions permission will allow a user with one of the Roles, to delete a Submission. A user can only delete a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete All Submissions permission will allow a user with one of the Roles to delete a Submission, regardless of who owns the Submission.',\n false\n ),\n choices\n })\n ]\n };\n}\n\nexport function getAccessPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Read Own permission will allow a user, with one of the given Roles, to read a form. A user can only read a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: \"<h4>Read Form Definition</h4>\",\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read permission will allow a user, with one of the given Roles, to read the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Update Own permission will allow a user, with one of the given Roles, to update a form. A user can only update a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update permission will allow a user, with one of the given Roles, to read and edit the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Delete Own permission will allow a user, with one of the given Roles, to delete a form. A user can only delete a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete permission will allow a user, with one of the given Roles, to delete the form.',\n false\n ),\n choices\n })\n ]\n };\n}\n","import { ExtendedComponentSchema } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { RoleSchema } from \"../../interfaces/RoleSchema\";\nimport { getAccessPermissionForm, getSubmissionPermissionForm } from \"./formAccess.schema\";\n\nexport interface Choice {\n label: string;\n value: string;\n}\n\nexport interface Access {\n roles: string[];\n type: string;\n}\n\nexport type AccessRoles = Record<string, string[]>;\n\nexport type FormAccessSchema = {\n access: FormSchema;\n submissionAccess: FormSchema;\n};\n\nexport type SubmissionAccess = {\n access: Submission<AccessRoles>;\n submissionAccess: Submission<AccessRoles>;\n};\n\nfunction rolesToChoices(roles: RoleSchema[]): Choice[] {\n return Object.values(roles).map((role) => {\n return {\n label: role.title || \"\",\n value: role._id || \"\"\n };\n });\n}\n\nfunction accessToHash(keys: (string | undefined)[] | undefined, access: Access[] = []): AccessRoles {\n const hash = Object.values(access).reduce((o: any, role: any) => {\n o[role.type] = role.roles;\n return o;\n }, {});\n\n return ((keys || []).filter(Boolean) as any[]).reduce((data, key: string) => {\n return {\n ...data,\n [key]: hash[key] || []\n };\n }, {});\n}\n\nfunction hashToAccess(data: AccessRoles) {\n const accessRoles: any[] = [];\n\n Object.entries(data).forEach(([accessType, roles]) => {\n if (accessType === \"submit\") {\n return;\n }\n accessRoles.push({\n type: accessType,\n roles\n });\n });\n\n return accessRoles;\n}\n\nexport function getFormAccess(roles: RoleSchema[]): FormAccessSchema {\n const choices = rolesToChoices(roles);\n const access = getAccessPermissionForm({ choices });\n const submissionAccess = getSubmissionPermissionForm({ choices });\n\n return {\n access,\n submissionAccess\n };\n}\n\nexport function dataAccessToSubmissions(form: Partial<FormSchema>, formAccess: FormAccessSchema): SubmissionAccess {\n const getKeys = (components: ExtendedComponentSchema[]) => components.map(({ key }) => key);\n\n return {\n access: {\n data: accessToHash(getKeys(formAccess.access.components), form.access)\n },\n submissionAccess: {\n data: accessToHash(getKeys(formAccess.submissionAccess.components), form.submissionAccess)\n }\n };\n}\n\nexport function submissionsToDataAccess(form: Partial<FormSchema>, submissions: SubmissionAccess): Partial<FormSchema> {\n return {\n ...cloneDeep(form),\n access: hashToAccess(submissions.access.data),\n submissionAccess: hashToAccess(submissions.submissionAccess.data)\n };\n}\n\nexport function shouldUpdate(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess) {\n return !isEqual(submission.data, (submissions as any)[type].data);\n}\n\nexport function updateSubmissions(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess, cb: Function = noop) {\n if (shouldUpdate(type, submission, submissions)) {\n submissions = {\n ...submissions,\n [type]: { data: submission.data }\n };\n cb(submissions);\n }\n\n return submissions;\n}\n","import PropTypes from \"prop-types\";\nimport React, { PropsWithChildren, ReactElement, useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\nimport { Card } from \"../card/card.component\";\nimport { Form } from \"../form/form.component\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\nimport {\n AccessRoles,\n dataAccessToSubmissions,\n FormAccessSchema,\n getFormAccess,\n shouldUpdate,\n SubmissionAccess,\n submissionsToDataAccess,\n updateSubmissions\n} from \"./formAccess.utils\";\n\nexport interface FormAccessProps {\n form: Partial<FormSchema>;\n roles: any;\n onSubmit?: Function;\n options?: FormOptions;\n}\n\nfunction useFormAccess({ form: formDefinition, roles, onSubmit, options }: FormAccessProps) {\n // eslint-disable-next-line no-undef\n const form = useMemo(() => getFormAccess(roles), [roles]);\n\n const [submissions, setSubmissions] = useState(() => dataAccessToSubmissions(formDefinition, form));\n\n const onChange = useCallback(\n (type: string, submission: Submission<AccessRoles>) => {\n updateSubmissions(type, submission, submissions, setSubmissions);\n },\n [submissions]\n );\n\n useEffect(() => {\n const input = dataAccessToSubmissions(formDefinition, form);\n if (formDefinition?._id) {\n if (shouldUpdate(\"access\", submissions.access, input) || shouldUpdate(\"submissionAccess\", submissions.submissionAccess, input)) {\n setSubmissions(input);\n }\n }\n }, [formDefinition?._id]);\n\n return {\n options,\n form,\n type: formDefinition.type,\n submissions,\n onChange,\n onSubmit: () => {\n onSubmit && onSubmit(submissionsToDataAccess(formDefinition, submissions));\n }\n };\n}\n\ninterface NamedFormAccessProps {\n name: \"access\" | \"submissionAccess\";\n form: FormAccessSchema;\n submissions: SubmissionAccess;\n options: any;\n onSubmit: any;\n\n onChange(name: \"access\" | \"submissionAccess\", submission: Submission<AccessRoles>): void;\n}\n\nfunction NamedFormAccess({ name, form, submissions, options, onChange, onSubmit, children }: PropsWithChildren<NamedFormAccessProps>) {\n const [isValid, setIsValid] = useState(true);\n\n return (\n <>\n <Form\n name={name}\n form={form[name]}\n submission={submissions[name]}\n onChange={({ data, isValid }: ChangedSubmission<AccessRoles>) => {\n isValid && onChange(name, { data });\n setIsValid(isValid);\n }}\n options={options}\n />\n\n <button disabled={!isValid} className={\"mt-5 btn btn-primary\"} onClick={onSubmit}>\n Save access\n </button>\n\n {children}\n\n <div className={\"alert alert-warning mt-5\"}>\n Elevated permissions allow users to access and modify other user's entities. Assign with caution.\n </div>\n </>\n );\n}\n\nexport function FormAccess(props: PropsWithChildren<FormAccessProps>): ReactElement {\n const { type, form, submissions, options, onChange, onSubmit } = useFormAccess(props);\n\n return (\n <div>\n {props.children}\n <div className={\"flex mb-5\"}>\n <Card label={\"Manage submission access\"} className={\"flex-1\"}>\n <NamedFormAccess\n name={\"submissionAccess\"}\n form={form}\n submissions={submissions}\n onChange={onChange}\n onSubmit={onSubmit}\n options={options}\n >\n {props.children}\n </NamedFormAccess>\n </Card>\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Submission Data Permissions\"}>\n <p>Submission Data Permissions allow you to control who can create, view, and modify form submission data.</p>\n\n <ul className={\"mt-5 pl-7 list-disc\"}>\n <li className={\"pb-2\"}>\n <strong>Own Permissions</strong> - These permissions apply if the user is the original creator of the submission data and is\n listed as the owner of the submission in submission.owner. This allows users to create and edit their own submission data\n without seeing other user's data.\n </li>\n <li>\n <strong>All Permissions</strong> - These permissions apply to all submission data regardless of who owns it.\n </li>\n </ul>\n </Card>\n </div>\n </div>\n <div className={\"flex mb-5\"}>\n <Card label={`Manage ${type} definition access`} className={\"flex-1\"}>\n <NamedFormAccess name={\"access\"} form={form} submissions={submissions} onChange={onChange} onSubmit={onSubmit} options={options}>\n {props.children}\n </NamedFormAccess>\n </Card>\n\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Form Definition Access\"}>\n <p>These permissions allow you to give access to a single form's JSON definition so they can render the form.</p>\n\n <p>Typically you will want to allow all of your roles to be able to Read the form definition.</p>\n\n <p>\n Each form also has an owner at <strong>form.owner</strong> which is the user who created the form. In some applications users\n are allowed to create their own forms. In those cases it is helpful to have Owner based permissions as well.\n </p>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n\nFormAccess.propTypes = {\n type: PropTypes.string.isRequired,\n form: PropTypes.object,\n roles: PropTypes.any,\n children: PropTypes.any,\n options: PropTypes.any,\n onSubmit: PropTypes.func\n};\n","import FormioUtils from \"formiojs/utils\";\nimport React, { PropsWithChildren, ReactElement } from \"react\";\n\nimport { ActionDefaultsSchema, ActionSchema, FormOptions, Submission } from \"../../interfaces\";\nimport { Form } from \"../form/form.component\";\n\nfunction mapData(options: any, defaults: ActionDefaultsSchema): any {\n return {\n ...defaults,\n ...options\n };\n}\n\nfunction mapSettingsForm({ action, ...settingsForm }: any): any {\n FormioUtils.eachComponent(settingsForm.components, (component: any) => {\n const resourceExclude = \"\";\n\n if (component.type === \"resourcefields\") {\n component.type = \"select\";\n component.label = component.title;\n component.dataSrc = \"url\";\n component.data = {\n url: `${component.basePath}?type=resource${resourceExclude}`\n };\n component.valueProperty = \"_id\";\n component.template = \"<span>{{ item.title }}</span>\";\n component.persistent = true;\n }\n });\n\n return settingsForm;\n}\n\nexport interface FormActionProps {\n actionInfo: Partial<ActionSchema>;\n submission?: Partial<Submission>;\n onSubmit?: (submission: Submission<ActionSchema>) => void;\n options: FormOptions;\n}\n\nexport function FormAction({ actionInfo, children, onSubmit, options, ...props }: PropsWithChildren<FormActionProps>): ReactElement {\n const { form, submission } = (() => {\n const submission = mapData(props.submission || {}, actionInfo.defaults!);\n const form = mapSettingsForm(actionInfo.settingsForm);\n\n return { form, submission: { data: submission } };\n })();\n\n return (\n <div>\n {children}\n\n <Form form={form} submission={submission} onSubmit={onSubmit} options={options} />\n\n {children}\n </div>\n );\n}\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { ComponentSchema } from \"formiojs\";\nimport AllComponents from \"formiojs/components\";\nimport Components from \"formiojs/components/Components\";\nimport FormioFormBuilder from \"formiojs/FormBuilder\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport noop from \"lodash/noop\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { callLast } from \"../../utils/callLast\";\n\nComponents.setComponents(AllComponents);\n\nconst EVENTS = [\n \"addComponent\",\n \"updateComponent\",\n \"removeComponent\",\n \"saveComponent\",\n \"cancelComponent\",\n \"moveComponent\",\n \"editComponent\",\n \"editJson\",\n \"copyComponent\",\n \"pasteComponent\"\n];\n\nconst EVENTS_CHANGE = [\"addComponent\", \"saveComponent\", \"updateComponent\", \"removeComponent\"];\n\nasync function createBuilder(el: Element, { components = [], display, options, onChange, events = {} }: any): Promise<void> {\n const form = {\n display,\n components: [...components]\n };\n\n try {\n const builder = await new FormioFormBuilder(el, form, { ...options }).ready;\n\n const handleEvent = (event: string) => {\n return (...args: any[]) => {\n events[event] && events[event](...args);\n\n if (EVENTS_CHANGE.includes(event)) {\n onChange(builder.form.components);\n }\n };\n };\n\n EVENTS.forEach((event) => builder.on(event, callLast(handleEvent(event), 200)));\n\n return builder;\n } catch (er) {\n console.error(er);\n }\n}\n\nexport interface FormBuilderProps {\n components: ComponentSchema[];\n display?: string;\n options?: any;\n builder?: any;\n onChange?: (components: ComponentSchema[]) => void;\n onAddComponent?: Function;\n onUpdateComponent?: Function;\n onRemoveComponent?: Function;\n onSaveComponent?: Function;\n onCancelComponent?: Function;\n onMoveComponent?: Function;\n onEditComponent?: Function;\n onEditJson?: Function;\n onCopyComponent?: Function;\n onPasteComponent?: Function;\n}\n\nexport class FormBuilder extends React.Component<FormBuilderProps, any> {\n static defaultProps = {\n options: {},\n onChange: noop,\n onReady: noop,\n onDestroy: noop\n };\n\n static propTypes = {\n components: PropTypes.array,\n display: PropTypes.string,\n options: PropTypes.object,\n onChange: PropTypes.func,\n onAddComponent: PropTypes.func,\n onUpdateComponent: PropTypes.func,\n onRemoveComponent: PropTypes.func,\n onSaveComponent: PropTypes.func,\n onCancelComponent: PropTypes.func,\n onMoveComponent: PropTypes.func,\n onEditComponent: PropTypes.func,\n onEditJson: PropTypes.func,\n onCopyComponent: PropTypes.func,\n onPasteComponent: PropTypes.func\n };\n\n private elRef: any;\n private builderRef: any;\n\n constructor(props: FormBuilderProps) {\n super(props);\n\n this.state = {\n display: props.display,\n components: cloneDeep(props.components)\n };\n this.elRef = null;\n this.builderRef = null;\n }\n\n async componentDidMount(): Promise<void> {\n await this.create(this.props);\n }\n\n async create(props: FormBuilderProps) {\n const {\n options,\n display,\n components,\n onAddComponent,\n onUpdateComponent,\n onRemoveComponent,\n onSaveComponent,\n onCancelComponent,\n onMoveComponent,\n onEditComponent,\n onEditJson,\n onCopyComponent,\n onPasteComponent\n } = props;\n\n this.builderRef = await createBuilder(this.elRef.firstChild, {\n display,\n options: { ...options },\n components: cloneDeep(components),\n onChange: this.whenComponentsChange.bind(this),\n events: {\n onAddComponent,\n onUpdateComponent,\n onRemoveComponent,\n onSaveComponent,\n onCancelComponent,\n onMoveComponent,\n onEditComponent,\n onEditJson,\n onCopyComponent,\n onPasteComponent\n }\n });\n }\n\n componentWillUnmount(): void {\n this.builderRef?.destroy();\n }\n\n // eslint-disable-next-line react/no-deprecated\n async componentWillReceiveProps(nextProps: FormBuilderProps) {\n if (this.builderRef) {\n if (nextProps.display !== this.state.display) {\n await this.create({\n ...this.props,\n display: nextProps.display\n });\n } else if (nextProps.components !== this.state.components) {\n this.builderRef.form = {\n display: this.state.display,\n components: nextProps.components\n };\n }\n }\n }\n\n whenComponentsChange(components: ComponentSchema[]) {\n this.setState({ components }, () => {\n this.props?.onChange && this.props.onChange(components);\n });\n }\n\n render() {\n return (\n <div\n ref={(ref) => {\n this.elRef = ref;\n }}\n onClick={(e) => e.stopPropagation()}\n >\n <div />\n </div>\n );\n }\n}\n","import { useEffect, useRef } from \"react\";\nimport Tooltip, { Options } from \"tooltip.js\";\n\nexport function useTooltip(options: Options) {\n const ref = useRef<any>();\n\n useEffect(() => {\n ref.current && new Tooltip(ref.current as any, options);\n }, [ref, options]);\n\n return ref;\n}\n","import PropTypes from \"prop-types\";\nimport React, { ReactElement } from \"react\";\n\nimport { useTooltip } from \"../../hooks/useTooltip\";\nimport { FormOptions } from \"../../interfaces\";\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport interface FormEditCTAsProps extends Record<string, unknown> {\n saveText?: string;\n options?: FormOptions;\n hasUndo?: boolean;\n hasRedo?: boolean;\n disabled?: boolean;\n onCopy?: Function;\n onSubmit?: Function;\n onReset?: Function;\n onUndo?: Function;\n onRedo?: Function;\n}\n\nexport function FormEditCTAs({\n saveText = \"Save\",\n disabled,\n options = {},\n onCopy,\n hasUndo,\n hasRedo,\n onUndo,\n onRedo,\n onReset,\n onSubmit\n}: FormEditCTAsProps): ReactElement {\n const { i18n: t = (t: string): string => t } = options;\n\n const copyTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Copy\")\n });\n\n const undoTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Undo last change\")\n });\n\n const redoTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Redo last change\")\n });\n\n const resetTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Reset all changes\")\n });\n\n return (\n <div className={\"form-edit__actions\"}>\n <div>\n <button\n className={`btn btn-primary btn-save flex ${disabled ? \"disabled\" : \"\"}`}\n disabled={disabled}\n onClick={() => !disabled && onSubmit && onSubmit()}\n >\n <i className={`mr-1 ${iconClass(options.iconset, \"save\")}`} />\n {saveText}\n </button>\n\n <div>\n <button className={`btn btn-light btn-undo ${hasUndo ? \"\" : \"disabled\"}`} onClick={() => onUndo && onUndo()} ref={undoTooltipRef}>\n <i className={iconClass(options.iconset, \"undo\")} />\n </button>\n\n <button className={`btn btn-light btn-redo ${hasRedo ? \"\" : \"disabled\"}`} onClick={() => onRedo && onRedo()} ref={redoTooltipRef}>\n <i className={iconClass(options.iconset, \"redo\")} />\n </button>\n </div>\n\n <div>\n {onCopy && (\n <button className='btn btn-light' onClick={() => onCopy()} ref={copyTooltipRef!}>\n <i className={iconClass(options.iconset, \"copy\")} />\n </button>\n )}\n\n <button className={`btn btn-light btn-reset`} onClick={() => onReset && onReset()} ref={resetTooltipRef!}>\n <i className={iconClass(options.iconset, \"reset\")} />\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nFormEditCTAs.propTypes = {\n saveText: PropTypes.string,\n options: PropTypes.object,\n hasUndo: PropTypes.bool,\n hasRedo: PropTypes.bool,\n disabled: PropTypes.bool,\n onCopy: PropTypes.func,\n onSubmit: PropTypes.func,\n onReset: PropTypes.func\n};\n","import Choices from \"choices.js\";\nimport uniq from \"lodash/uniq\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTagsProps<T = any> extends Omit<FormControlProps, \"description\" | \"prefix\" | \"suffix\"> {\n value?: T;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputTags({ name, value = [], label, onChange, required, description, prefix, suffix, ...props }: InputTagsProps) {\n const ref: any = useRef();\n\n useEffect(() => {\n const instance = new Choices(ref.current, {\n delimiter: \",\",\n editItems: true,\n removeItemButton: true\n });\n\n instance.setValue([].concat(value, []));\n\n instance.passedElement.element.addEventListener(\"addItem\", (event: any) => {\n onChange && onChange(name, uniq(value.concat(event.detail.value)));\n });\n\n instance.passedElement.element.addEventListener(\"removeItem\", (event: any) => {\n onChange &&\n onChange(\n name,\n value.filter((v: string) => v !== event.detail.value)\n );\n });\n\n return () => {\n instance.destroy();\n };\n }, []);\n\n return (\n <FormControl name={name} label={label} required={required} description={description} prefix={prefix} suffix={suffix}>\n <input ref={ref} type='text' {...props} id={name} required={required} />\n </FormControl>\n );\n}\n\nInputTags.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.array,\n required: PropTypes.bool,\n onChange: PropTypes.func\n};\n","import PropTypes from \"prop-types\";\nimport React, { ReactElement } from \"react\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { InputTags } from \"../input-tags/inputTags.component\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Select } from \"../select/select.component\";\n\nexport const defaultDisplayChoices = [\n { label: \"Form\", value: \"form\" },\n { label: \"Wizard\", value: \"wizard\" },\n { label: \"Pdf\", value: \"pdf\" }\n];\n\nexport interface FormParametersProps {\n onChange?: (name: string, value: any) => void;\n form: Partial<FormSchema>;\n typeChoices?: { label: string; value: any }[];\n displayChoices?: { label: string; value: any }[];\n enableTags?: boolean;\n className?: string;\n baseUrl?: string;\n readonly?: Record<string, boolean>;\n}\n\nexport function FormParameters({\n onChange,\n form,\n enableTags = true,\n typeChoices = [],\n displayChoices = defaultDisplayChoices,\n className = \"\",\n readonly = {},\n baseUrl = window.location.origin\n}: FormParametersProps): ReactElement {\n const hasTypeChoices = typeChoices && typeChoices.length > 1;\n\n return (\n <div className={`form-edit__settings ${className}`}>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Title\"}\n placeholder='Enter the form title'\n name={\"title\"}\n required={true}\n value={form.title}\n disabled={!!readonly[\"title\"]}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Name\"}\n placeholder='Enter the form machine name'\n name={\"name\"}\n required={true}\n disabled={!!readonly[\"name\"]}\n value={form.name}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Path\"}\n placeholder='example'\n name={\"path\"}\n className={\"mb-0\"}\n description={\n <span className={\"text-xxs flex items-center\"}>\n <i className={\"bx bx-link ml-1 mr-1\"} />\n {`${baseUrl}/${form.path}`}\n </span>\n }\n required={true}\n value={form.path}\n disabled={!!readonly[\"path\"]}\n style={{ textTransform: \"lowercase\", width: \"120px\" }}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <Select\n label={\"Display as\"}\n name={\"display\"}\n disabled={!!readonly[\"display\"]}\n value={form.display}\n choices={displayChoices}\n onChange={onChange}\n />\n </div>\n {hasTypeChoices && (\n <div className={\"w-1/3\"}>\n <Select label={\"Type\"} name={\"type\"} value={form.type} choices={typeChoices} onChange={onChange} />\n </div>\n )}\n {enableTags && (\n <div className={\"w-1/3\"}>\n <InputTags label={\"Tags\"} name={\"tags\"} value={form.tags} onChange={onChange} />\n </div>\n )}\n </div>\n );\n}\n\nFormParameters.propTypes = {\n onChange: PropTypes.func,\n form: PropTypes.object,\n enableTags: PropTypes.bool,\n typeChoices: PropTypes.array,\n displayChoices: PropTypes.array,\n className: PropTypes.string\n};\n","import camelCase from \"lodash/camelCase\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\n\nimport { FormSchema } from \"../../interfaces\";\n\nexport const hasChanged = (form: Partial<FormSchema>, value: Partial<FormSchema>): boolean => !isEqual(form, value);\n\nexport interface FormEditState {\n past: Partial<FormSchema>[];\n future: Partial<FormSchema>[];\n current: Partial<FormSchema>;\n original: Partial<FormSchema>;\n}\n\nexport function createInitialState(props: any): FormEditState {\n return {\n past: [],\n future: [],\n current: cloneDeep(props.form),\n original: cloneDeep(props.form)\n };\n}\n\nexport const reducer = (state: FormEditState, { type, value }: any): FormEditState => {\n const { past, current, future } = state;\n\n const update = (newValue: any): any => {\n if (newValue.title !== state.current.title && !state.current._id) {\n newValue.name = camelCase(value.title);\n newValue.path = camelCase(value.title).toLowerCase();\n }\n\n return {\n ...state,\n past: [...past, cloneDeep(current)],\n current: newValue\n };\n };\n\n switch (type) {\n case \"undo\":\n if (past.length) {\n const previous = past[past.length - 1];\n const newPast = past.slice(0, past.length - 1);\n\n return {\n ...state,\n past: newPast,\n current: cloneDeep(previous),\n future: [cloneDeep(current), ...future]\n };\n }\n break;\n\n case \"redo\":\n if (future.length) {\n const next = future[0];\n const newFuture = future.slice(1);\n\n return {\n ...state,\n past: [...past, cloneDeep(current)],\n current: cloneDeep(next),\n future: newFuture\n };\n }\n break;\n\n case \"reset\":\n return update(cloneDeep(state.original));\n\n case \"formChange\":\n // eslint-disable-next-line no-case-declarations\n const newValue = { ...state.current, ...value };\n\n if (hasChanged(state.current, newValue)) {\n return update(newValue);\n }\n break;\n\n case \"replaceForm\":\n return {\n ...state,\n past: [],\n future: [],\n current: cloneDeep(value),\n original: cloneDeep(value)\n };\n\n default:\n break;\n }\n\n return state;\n};\n","import cloneDeep from \"lodash/cloneDeep\";\nimport { useEffect, useReducer } from \"react\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { createInitialState, hasChanged, reducer } from \"./formEdit.reducer\";\n\nexport interface UseFormEditHookProps extends Record<string, unknown> {\n form?: Partial<FormSchema>;\n typeChoices?: { label: string; value: any }[];\n displayChoices?: { label: string; value: any }[];\n enableTags?: boolean;\n onSubmit?: (form: Partial<FormSchema>) => void;\n onCopy?: (form: Partial<FormSchema>) => void;\n}\n\nexport function useFormEdit(props: UseFormEditHookProps) {\n const [{ current, future, past }, dispatchFormAction] = useReducer(reducer, createInitialState(props));\n\n const onSubmit = () => {\n if (props.onSubmit && typeof props.onSubmit === \"function\") {\n props.onSubmit(current);\n }\n };\n const onCopy = () => {\n if (props.onSubmit && typeof props.onCopy === \"function\") {\n props.onCopy(current);\n }\n };\n\n useEffect(() => {\n if (props.form && (current._id !== props.form._id || current.modified !== props.form.modified)) {\n dispatchFormAction({ type: \"replaceForm\", value: props.form });\n }\n }, [props.form]);\n\n const formChange = (newForm: Partial<FormSchema>) => {\n if (hasChanged(current, { ...current, ...newForm })) {\n dispatchFormAction({ type: \"formChange\", value: newForm });\n }\n };\n\n const redo = () => dispatchFormAction({ type: \"redo\" });\n const undo = () => dispatchFormAction({ type: \"undo\" });\n const reset = () => dispatchFormAction({ type: \"reset\" });\n\n const setChange = (path: string, value: any) => {\n formChange({ ...current, [path]: value });\n };\n\n return {\n form: cloneDeep(current),\n redo,\n undo,\n reset,\n hasChanged: !!past.length,\n isValid: current.title && current.name && current.path,\n hasUndo: !!past.length,\n hasRedo: !!future.length,\n onSubmit,\n onCopy,\n formChange,\n setChange\n };\n}\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { FormOptions } from \"../../interfaces/FormOptions\";\nimport { FormBuilder } from \"../form-builder/formBuilder.component\";\nimport { FormEditCTAs } from \"./formCtas.component\";\nimport { FormParameters } from \"./formParameters.component\";\nimport { useFormEdit, UseFormEditHookProps } from \"./useFormEdit.hook\";\n\nexport interface FormEditProps extends UseFormEditHookProps {\n builder?: any;\n options?: FormOptions;\n}\n\nexport function FormEdit(props: FormEditProps) {\n const { form, isValid, setChange, hasRedo, hasChanged, hasUndo, redo, undo, reset, onSubmit, onCopy } = useFormEdit(props);\n const { options = {}, builder } = props;\n\n return (\n <div>\n <div className='form-edit'>\n <FormParameters {...props} className={\"\"} key={`form-settings-${form._id}`} form={form} onChange={setChange} />\n <FormEditCTAs\n {...props}\n className={\"\"}\n key={`form-edit-ctas-${form._id}`}\n options={options}\n hasRedo={hasRedo}\n hasUndo={hasUndo}\n disabled={!(isValid && hasChanged)}\n onRedo={redo}\n onUndo={undo}\n onReset={reset}\n onCopy={onCopy}\n onSubmit={onSubmit}\n />\n </div>\n\n <FormBuilder\n key={`form-builder-${form._id}`}\n components={form.components!}\n display={form.display}\n options={options}\n builder={builder}\n onChange={(components) => {\n setChange(\"components\", components);\n }}\n />\n </div>\n );\n}\n\nFormEdit.propTypes = {\n form: PropTypes.object.isRequired,\n options: PropTypes.object,\n typeChoices: PropTypes.array,\n displayChoices: PropTypes.array,\n enableTags: PropTypes.bool,\n onSubmit: PropTypes.func\n};\n","import { FormSchema } from \"../../interfaces\";\n\nexport function getFormSettingsSchema(): FormSchema {\n return {\n type: \"form\",\n tags: [],\n components: [\n {\n input: true,\n key: \"action\",\n placeholder: \"Enter the custom submission URL\",\n label: \"Custom Action Url\",\n labelPosition: \"top\",\n widget: { type: \"input\" },\n type: \"url\",\n mask: false,\n inputType: \"url\",\n inputFormat: \"plain\",\n spellcheck: true,\n id: \"efyrzea\",\n attributes: {\n \"data-testid\": \"action\"\n }\n },\n {\n input: true,\n key: \"tags\",\n placeholder: \"Add tags\",\n label: \"Form tags\",\n widget: { type: \"input\" },\n type: \"tags\",\n delimeter: \",\",\n storeas: \"array\",\n maxTags: 0,\n id: \"erxcyw\"\n },\n {\n input: true,\n key: \"properties\",\n label: \"Custom Properties\",\n labelPosition: \"top\",\n type: \"datamap\",\n addAnother: \"Add Another\",\n disableAddingRemovingRows: false,\n keyBeforeValue: true,\n valueComponent: {\n type: \"textfield\",\n key: \"value\",\n label: \"Value\",\n input: true,\n hideLabel: true\n },\n id: \"ezne35\"\n }\n ],\n display: \"form\"\n };\n}\n","import cloneDeep from \"lodash/cloneDeep\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\n\nexport type FormSettingsSchema = {\n action: string;\n tags: string[];\n properties: Record<string, any>;\n};\n\nexport function formSettingsToSubmission(form: Partial<FormSchema>): Submission<FormSettingsSchema> {\n return {\n data: {\n action: form.action!,\n tags: form.tags!,\n properties: form.properties!\n }\n };\n}\n\nexport function submissionToFormSettings(form: Partial<FormSchema>, submission: Submission<FormSettingsSchema>): Partial<FormSchema> {\n return {\n ...cloneDeep(form),\n tags: submission.data.tags,\n action: submission.data.action,\n properties: submission.data.properties\n };\n}\n","import isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\nimport React, { useEffect, useState } from \"react\";\n\nimport { FormOptions, FormSchema } from \"../../interfaces\";\nimport { Form } from \"../form/form.component\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\nimport { getFormSettingsSchema } from \"./formSettings.schema\";\nimport { FormSettingsSchema, formSettingsToSubmission, submissionToFormSettings } from \"./formSettings.utils\";\n\nexport interface FormSettingsProps {\n form: Partial<FormSchema>;\n onSubmit?: Function;\n options?: FormOptions;\n}\n\nfunction useFormSettings({ form: formDefinition, onSubmit = noop, options }: FormSettingsProps) {\n const form = getFormSettingsSchema();\n const [isValid, setIsValid] = useState(true);\n const [submission, setSubmission] = useState(() => formSettingsToSubmission(formDefinition));\n\n const onChange = ({ data, isValid }: ChangedSubmission<FormSettingsSchema>) => {\n if (isValid) {\n setSubmission({ data });\n }\n setIsValid(isValid);\n };\n\n useEffect(() => {\n const input = formSettingsToSubmission(formDefinition);\n if (formDefinition?._id && !isEqual(submission.data, input.data)) {\n setSubmission(input);\n }\n }, [formDefinition?._id]);\n\n return {\n options,\n form,\n type: formDefinition.type,\n submission,\n onChange,\n isValid,\n setIsValid,\n onSubmit: () => {\n onSubmit(submissionToFormSettings(formDefinition, submission));\n }\n };\n}\n\nexport function FormSettings(props: FormSettingsProps) {\n const { form, submission, options = {}, onChange, onSubmit, isValid } = useFormSettings(props);\n\n const i18n = options.i18n || ((f: string) => f);\n\n return (\n <div>\n <Form form={form} submission={submission} onChange={onChange} options={options} />\n\n <button data-testid='submit' disabled={!isValid} className={\"mt-5 btn btn-primary\"} onClick={onSubmit} type={\"submit\"}>\n {i18n(\"Save settings\")}\n </button>\n </div>\n );\n}\n","import React from \"react\";\nimport { FilterProps } from \"react-table\";\n\nimport { Select } from \"../../select/select.component\";\n\nexport function SelectColumnFilter<D extends Record<string, unknown> = {}>({ column }: FilterProps<D>) {\n const { id, preFilteredRows, filterValue, setFilter } = column;\n const { choices: customChoices } = column as any;\n\n const choices =\n customChoices ||\n [...new Set(preFilteredRows.map((row) => row.values[id]))].filter((value) => value).map((value) => ({ label: value, value }));\n\n return (\n <Select\n key={`filter-${column.id}`}\n name={`filter-${column.id}`}\n size={\"sm\"}\n value={filterValue}\n choices={[{ value: \"\", label: \"All\" }].concat(choices)}\n onChange={(name, value) => {\n setFilter(value || undefined);\n }}\n />\n );\n}\n","//! moment.js\n//! version : 2.29.3\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function 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.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function 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\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function 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\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function 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\n function 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\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function 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\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (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\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function 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.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function 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\n function 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\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function 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\n function 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\n var deprecations = {};\n\n function 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\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function 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\n function 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\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (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\n var 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\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function 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\n var 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 }\n function 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\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function 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\n function 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\n function 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\n var 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\n function 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\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var 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\n function 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\n function 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\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function 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\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function 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\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function 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\n function 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\n function 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\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function 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\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function 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\n function 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\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function 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\n function 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\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var 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 function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (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\n function 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\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['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\n var 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\n function 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\n function 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\n function 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\n function 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\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function 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\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function 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\n function 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\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\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\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var 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\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function 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\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['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\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function 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\n function 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\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function 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\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('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 });\n addParseToken('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 });\n addParseToken('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 });\n addParseToken('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\n function 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\n var 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\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var 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\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function 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\n function 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\n function 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\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function 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.\n function 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\n function 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\n function 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\n function 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\n function listLocales() {\n return keys(locales);\n }\n\n function 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)\n var 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n hooks.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.\n function 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\n function 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]\n function 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\n function 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\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var 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.\n function 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?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function 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\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function 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\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function 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\n function 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\n function 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\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['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']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function 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.\n function 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\n function 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.\n hooks.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.\n function 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\n function 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\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function 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\n function 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\n function 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\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function 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\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var 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\n function 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\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function 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\n function 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\n function 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\n function 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\n function 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\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function clone() {\n return new Moment(this);\n }\n\n function 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\n function 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\n function 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\n function 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\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function 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\n function 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\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function 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 */\n function 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\n function 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\n function 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\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function 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\n function 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.\n function 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\n var 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\n function localeData() {\n return this._locale;\n }\n\n var 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):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function 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\n function 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\n function 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\n function 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\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function 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\n function 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\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function 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\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\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\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function 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\n function 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\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function 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\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('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\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function 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\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function 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)\n function 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\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('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\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function 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\n function 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)\n function 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)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function 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\n function 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\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var 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\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var 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\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var 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\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function 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\n function 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\n function 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\n function 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\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function 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\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.3';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.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\n return hooks;\n\n})));\n","import classnames from \"classnames\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { CellProps } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport function FormsCell(props: CellProps<FormSchema> & { icon: string; i18n: (f: string) => string }) {\n const {\n icon = \"server\",\n row: { original: form }\n } = props;\n\n return (\n <div className={\"p-1\"}>\n <h4 className={\"text-primary text-lg flex items-center\"}>\n <i className={classnames(iconClass(undefined, icon), \"mr-1\")} />\n {form.title}\n </h4>\n\n <ul className='reset-list text-gray-500'>\n <li className={\"text-sm\"}>Name: {form.name || form.machineName}</li>\n <li className='mt-5'>\n <span className='badge bg-light mr-1'>\n <i className={classnames(iconClass(undefined, \"history\"), \"mr-1\")} />\n <span>Updated {moment(form.modified).fromNow()}</span>\n </span>\n\n {(form.tags || []).map((tag, index) => (\n <button\n key={index}\n className='badge badge-hover bg-secondary mr-1'\n onClick={stopPropagationWrapper(() => {\n props.setFilter(\"tags\", tag);\n props.gotoPage(0);\n })}\n >\n <i className={classnames(iconClass(undefined, \"tags\"), \"mr-1\")} />\n {tag}\n </button>\n ))}\n </li>\n </ul>\n </div>\n );\n}\n","import React from \"react\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { DefaultColumnFilter } from \"../table/filters/defaultColumnFilter.component\";\nimport { SelectColumnFilter } from \"../table/filters/selectColumnFilter.component\";\nimport { Table, TableProps } from \"../table/table.component\";\nimport { FormsCell as DefaultFormCell } from \"./components/formCell.component\";\n\nexport type FormsTableProps = Omit<TableProps<FormSchema>, \"columns\"> & {\n icon?: string;\n tags?: { label: string; value: string }[];\n};\n\nexport function FormsTable({ Cell, ...props }: FormsTableProps) {\n const { i18n = (f: string) => f, tags } = props;\n const FormCell = Cell || (DefaultFormCell as any);\n const columns = [\n {\n Header: i18n(\"Title\"),\n accessor: \"title\",\n id: \"title\",\n Cell: (props: any) => <FormCell {...props} icon={props.icon} i18n={i18n} />,\n Filter: DefaultColumnFilter,\n colspan: 2\n },\n {\n Header: i18n(\"Tags\"),\n accessor: \"tags\",\n id: \"tags\",\n hidden: true,\n Filter: (props: any) =>\n tags && tags.length ? (\n <SelectColumnFilter {...props} column={{ ...props.columns, choices: tags }} />\n ) : (\n <DefaultColumnFilter {...props} />\n )\n }\n ];\n\n return <Table {...props} columns={columns} />;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport interface LoaderProps {\n isActive?: boolean;\n color?: string;\n icon?: string;\n className?: string;\n}\n\nexport function Loader({ isActive, color = \"blue\", icon = \"radio-circle\", className = \"\" }: PropsWithChildren<LoaderProps>) {\n if (isActive) {\n return (\n <div\n className={classnames(\n \"opacity-85 z-20 flex items-center justify-center p-5 absolute top-0 right-0 left-0 bottom-0 bg-white\",\n className\n )}\n >\n <span data-testid={`icon_${icon}`} color={color} className={`text-11xl ${iconClass(undefined, icon, true)}`} />\n </div>\n );\n }\n return null;\n}\n\nLoader.propTypes = {\n isActive: PropTypes.bool,\n icon: PropTypes.string,\n color: PropTypes.string,\n className: PropTypes.string\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport noop from \"lodash\";\nimport React, { PropsWithChildren, useEffect, useRef, useState } from \"react\";\n\nexport function useModal() {\n const [show, setShowModal] = useState(false);\n\n return {\n show,\n setShowModal,\n openModal() {\n setShowModal(true);\n },\n closeModal() {\n setShowModal(false);\n }\n };\n}\n\nexport interface ModalProps extends Record<string, any> {\n show?: boolean;\n closeModal?: () => void;\n onClose?: () => void;\n footer?: any;\n title?: string;\n}\n\nexport function Modal({\n show,\n children,\n closeModal = noop as any,\n onClose = noop as any,\n title,\n footer: ModalFooter,\n style,\n className = \"\",\n ...props\n}: PropsWithChildren<ModalProps>) {\n const titleRef: any = useRef<HTMLDivElement>();\n const footerRef: any = useRef<HTMLDivElement>();\n const [maxHeight, setMaxHeight] = useState<string>();\n\n const onClickClose = () => {\n closeModal();\n onClose();\n };\n\n useEffect(() => {\n if (titleRef.current || footerRef.current) {\n const height = (titleRef?.current?.offsetHeight || 0) + (footerRef?.current?.offsetHeight || 0);\n\n setMaxHeight(`calc(85vh - ${height}px)`);\n } else {\n setMaxHeight(\"auto\");\n }\n }, [show]);\n\n if (!show) {\n return null;\n }\n\n return (\n <div role={\"dialog\"} className={`formio-dialog formio-dialog-theme-default ${className}`}>\n <div className='formio-dialog-overlay' onClick={onClickClose} />\n <div style={style} className={\"formio-dialog-content\"}>\n <div className={\"formio-dialog-wrapper\"}>\n {title ? (\n <div className={\"formio-dialog-title\"} ref={titleRef} data-testid={\"modalTitle\"}>\n {title}\n </div>\n ) : null}\n\n <div className='formio-dialog-body' style={{ maxHeight }} data-testid={\"modalBody\"}>\n {show && children}\n </div>\n\n {ModalFooter ? (\n <div className={\"formio-dialog-footer\"} ref={footerRef} data-testid={\"modalFooter\"}>\n <ModalFooter {...props} closeModal={closeModal} onClose={onClickClose} />\n </div>\n ) : null}\n </div>\n <button\n className='formio-dialog-close float-right btn btn-secondary btn-sm'\n aria-label='close'\n data-testid={\"closeModal\"}\n onClick={onClickClose}\n />\n </div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { PropsWithChildren, useState } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Modal, ModalProps } from \"./modal.component\";\n\nfunction RemoveModalFooter({ value, valueToCompare, onSubmit, onClose, i18n = (f: string) => f }: ModalProps) {\n return (\n <div className={\"flex items-center justify-center bg-white p-2\"}>\n <button data-testid='customCloseModal' className={\"btn btn-outline-dark mx-2\"} onClick={onClose}>\n {i18n(\"Cancel\")}\n </button>\n <button\n disabled={valueToCompare !== value}\n data-testid='customSubmitModal'\n className={\"btn btn-danger mx-2\"}\n onClick={(e) => {\n if (valueToCompare === value) {\n onSubmit(e);\n }\n }}\n >\n <i className={classnames(iconClass(undefined, \"trash\"), \"mr-2\")} />\n {i18n(\"Remove\")}\n </button>\n </div>\n );\n}\n\nexport interface RemoveModalProps extends ModalProps {\n valueToCompare: string;\n itemType?: string;\n i18n?: (f: string) => string;\n maxWidth?: string;\n}\n\nexport function RemoveModal({ maxWidth = \"300px\", children, ...props }: PropsWithChildren<RemoveModalProps>) {\n const { i18n = noop } = props;\n const [value, setValue] = useState();\n\n return (\n <Modal\n {...props}\n className={classnames(props.className, \"formio-dialog-theme-remove\")}\n style={{ maxWidth }}\n title={`Drop ${props.itemType?.toLowerCase()}`}\n value={value}\n footer={RemoveModalFooter}\n >\n <div className={\"px-4 pt-3 pb-5\"}>\n <div className={\"pb-1\"}>\n {children}\n {i18n(\"To drop\")} <strong>{props.valueToCompare}</strong>, \n {i18n(\"type the\")} \n <strong>"{props.itemType?.toLowerCase()}"</strong> \n {i18n(\"name\")} <strong>"{props.valueToCompare}"</strong>.\n </div>\n <InputText name='remove' value={value} onChange={(name, value) => setValue(value)} />\n </div>\n </Modal>\n );\n}\n","import { Components, ComponentSchema } from \"formiojs\";\nimport ReactDOM from \"react-dom\";\n\nimport { Submission } from \"../../interfaces/Submission\";\n\nexport class ReactComponent<Data = any> extends Components.components.field {\n public reactInstance: any;\n public shouldSetValue?: boolean;\n private dataForSetting?: Data;\n\n /**\n * This is the first phase of component building where the component is instantiated.\n *\n * @param component - The component definition created from the settings form.\n * @param options - Any options passed into the renderer.\n * @param data - The submission data where this component's data exists.\n */\n // eslint-disable-next-line no-useless-constructor,import/no-anonymous-default-export\n constructor(component: ComponentSchema, options: any, data: Submission<Data>) {\n super(component, options, data);\n }\n\n get $reactNode() {\n return (this.refs as any)[`react-${this.id}`];\n }\n\n /**\n * This method is called any time the component needs to be rebuilt. It is most frequently used to listen to other\n * components using the this.on() function.\n */\n init() {\n return super.init();\n }\n\n /**\n * This method is called before the component is going to be destroyed, which is when the component instance is\n * destroyed. This is different from detach which is when the component instance still exists but the dom instance is\n * removed.\n */\n destroy() {\n return super.destroy();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n\n /**\n * The third phase of component building where the component has been attached to the DOM as 'element' and is ready\n * to have its javascript events attached.\n *\n * @param element\n * @returns {Promise<void>} - Return a promise that resolves when the attach is complete.\n */\n async attach(element: any) {\n super.attach(element);\n\n // The loadRefs function will find all dom elements that have the \"ref\" setting that match the object property.\n // It can load a single element or multiple elements with the same ref.\n this.loadRefs(element, {\n [`react-${this.id}`]: \"single\"\n });\n\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.reactInstance = this.attachReact(this.refs[`react-${this.id}`]);\n\n if (this.shouldSetValue) {\n this.setValue(this.dataForSetting);\n this.updateValue(this.dataForSetting);\n }\n }\n }\n\n /**\n * The fourth phase of component building where the component is being removed from the page. This could be a redraw\n * or it is being removed from the form.\n */\n detach() {\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.detachReact(this.refs[`react-${this.id}`]);\n }\n super.detach();\n }\n\n /**\n * Override this function to render a react component.\n */\n renderReact(): any {\n return null;\n }\n\n /**\n * Override this function to insert your custom component.\n *\n * @param element\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n attachReact(element?: any) {\n // eslint-disable-next-line react/no-render-return-value\n return ReactDOM.render(this.renderReact(), element);\n }\n\n /**\n * Override this function.\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n detachReact(element?: any) {\n if (element) {\n ReactDOM.unmountComponentAtNode(element);\n }\n }\n\n /**\n * Something external has set a value and our component needs to be updated to reflect that. For example, loading a submission.\n *\n * @param value\n * @param flags\n */\n setValue(value: any, flags?: any) {\n if (this.reactInstance) {\n this.reactInstance.setState({\n value: value\n });\n this.shouldSetValue = false;\n } else {\n this.shouldSetValue = true;\n this.dataForSetting = value;\n }\n\n return false;\n }\n\n /**\n * The user has changed the value in the component and the value needs to be updated on the main submission object and other components notified of a change event.\n *\n * @param value\n * @param flags\n */\n updateValue = (value?: Data, flags?: Record<string, any>) => {\n flags = flags || {};\n\n const newValue = value === undefined || value === null ? this.getValue() : value;\n\n const changed = newValue !== undefined ? this.hasChanged(newValue, this.dataValue) : false;\n\n this.dataValue = Array.isArray(newValue) ? [...newValue] : newValue;\n\n this.updateOnChange(flags, changed);\n return changed;\n };\n\n /**\n * Get the current value of the component. Should return the value set in the react component.\n *\n * @returns {*}\n */\n getValue(): Data {\n if (this.reactInstance) {\n return this.reactInstance.state.value;\n }\n return this.defaultValue;\n }\n\n /**\n * Override normal validation check to insert custom validation in react component.\n *\n * @param data\n * @param dirty\n * @param rowData\n * @returns {boolean}\n */\n checkValidity(data: Data, dirty: boolean, rowData: any) {\n const valid = super.checkValidity(data, dirty, rowData);\n\n if (!valid) {\n return false;\n }\n\n return this.validate(data, dirty, rowData);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate(data: Data, dirty: boolean, rowData: any) {\n return true;\n }\n}\n","import React from \"react\";\n\nexport function DefaultCell({ value, render = (f: any) => f }: any): JSX.Element {\n if (value === undefined) {\n return <span></span>;\n }\n\n const rendered = render(value);\n\n if (value !== rendered) {\n return <div dangerouslySetInnerHTML={{ __html: rendered }} />;\n }\n\n return <span>{String(value)}</span>;\n}\n","import { Components, ExtendedComponentSchema } from \"formiojs\";\nimport FormioUtils from \"formiojs/utils\";\nimport React from \"react\";\nimport { Column } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { DefaultCell } from \"../components/defaultCell.component\";\nimport { SelectColumnFilter } from \"../filters/selectColumnFilter.component\";\n\nexport function mapFormToColumns(form: FormSchema): Column[] {\n const columns: Column[] = [];\n\n FormioUtils.eachComponent(form.components, (component: ExtendedComponentSchema) => {\n if (component.tableView && component.key) {\n const cmp: any = Components.create(component, {}, null, true);\n\n const column: Column = {\n Header: component.label || component.title || component.key,\n accessor: `data.${component.key}`,\n Cell: (props: any) => <DefaultCell {...props} render={(value: any) => cmp.asString(value)} />\n };\n\n if (component.type === \"select\" && component.dataSrc === \"values\") {\n column.Filter = SelectColumnFilter;\n (column as any).choices = component.data.values;\n }\n\n columns.push(column);\n }\n });\n\n return columns;\n}\n","import React from \"react\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { Table, TableProps } from \"../table/table.component\";\nimport { mapFormToColumns } from \"../table/utils/mapFormToColumns\";\n\nexport type SubmissionsTableProps = Omit<TableProps<Submission>, \"columns\"> & {\n form?: FormSchema;\n};\n\nexport function SubmissionsTable({ form, ...props }: SubmissionsTableProps) {\n const columns: any[] | undefined = form && mapFormToColumns(form);\n\n return <Table {...props} columns={columns!} />;\n}\n","import React from \"react\";\nimport { FilterProps } from \"react-table\";\n\nexport function SliderColumnFilter<D extends Record<string, unknown> = {}>({\n column: { filterValue, setFilter, preFilteredRows, id }\n}: FilterProps<D>) {\n const [min, max] = React.useMemo(() => {\n let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n preFilteredRows.forEach((row) => {\n min = Math.min(row.values[id], min);\n max = Math.max(row.values[id], max);\n });\n return [min, max];\n }, [id, preFilteredRows]);\n\n return (\n <>\n <input\n type='range'\n min={min}\n max={max}\n value={filterValue || min}\n onChange={(e) => {\n setFilter(parseInt(e.target.value, 10));\n }}\n />\n <button onClick={() => setFilter(undefined)}>Off</button>\n </>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport function ButtonTab({ icon, back, onClick, isActive, reverse, children, className, after }: PropsWithChildren<any>) {\n return (\n <div\n title={\"button-wrapper\"}\n className={classnames(\"tw-tabs__button-wrapper\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\", className)}\n >\n <button\n title={\"button-tab\"}\n className={classnames(\"tw-tabs__button\", reverse ? \"-reverse\" : \"\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\")}\n onClick={onClick}\n >\n {icon && <i className={classnames(iconClass(undefined, icon), \"tw-tabs__button-icon\")} />}\n <span className={\"tw-tabs__button-label\"}>{children}</span>\n {after}\n </button>\n <div className={classnames(\"tw-tabs__button-border\", isActive ? \"-active\" : \"\")} />\n </div>\n );\n}\n\nexport interface TabsItemProps extends Record<string, any> {\n label?: string;\n icon?: string;\n}\n\nexport interface TabsProps extends Record<string, any> {\n headerChildren?: any;\n AddButton?: any;\n current?: TabsItemProps;\n items?: TabsItemProps[];\n style?: any;\n className?: string;\n reverse?: boolean;\n Button?: any;\n onClick?: (item: TabsItemProps) => void;\n i18n?: (f: string) => string;\n}\n\nexport function Tabs({\n style,\n current,\n items = [],\n children,\n HeaderChildren,\n AddButton,\n Button = ButtonTab,\n className,\n onClick,\n i18n = (f) => f,\n ...additionalProps\n}: PropsWithChildren<TabsProps>) {\n return (\n <div data-testid={\"tabs-comp\"} className={`tw-tabs ${className}`} style={style}>\n <div>\n <nav className='tw-tabs__header'>\n <div className='tw-tabs__header-wrapper'>\n <div className='tw-tabs__header-border' />\n {items\n .filter((item) => item.label || item.icon)\n .map((item, index) => {\n return (\n <Button\n key={index}\n back={item.back}\n isActive={current?.action === item.action}\n exact={item.exact}\n onClick={() => {\n onClick && onClick(item);\n }}\n {...additionalProps}\n {...item}\n >\n {i18n(item.label || \"\")}\n </Button>\n );\n })}\n {AddButton && <AddButton {...additionalProps} current={current} />}\n </div>\n </nav>\n {HeaderChildren && <HeaderChildren {...additionalProps} current={current} />}\n </div>\n <div title={\"tab-body\"} className={\"tw-tabs__body\"}>\n {children}\n </div>\n </div>\n );\n}\n","import { Formio, Utils } from \"formiojs\";\n\nexport function getFormUrl(formId: string): string {\n const url = [Formio.getProjectUrl()];\n\n if (Utils.isMongoId(formId)) {\n url.push(\"form\");\n } else if (formId.includes(\"__\")) {\n formId = formId.replace(/__/gi, \"/\");\n }\n\n url.push(formId);\n\n return url.join(\"/\");\n}\n\nexport function getActionUrl(formId: string, actionId?: string): string {\n return [getFormUrl(formId), \"action\", actionId].filter(Boolean).join(\"/\");\n}\n\nexport function getSubmissionUrl(formId: string, submissionId?: string): string {\n return [getFormUrl(formId), \"submission\", submissionId].filter(Boolean).join(\"/\");\n}\n","export const ACTION_INFO = \"actionInfo\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { getFormUrl } from \"../../utils/url\";\nimport { ACTION_INFO } from \"./action-info.constant\";\n\nexport const resetActionInfo = createAction();\nexport const requestActionInfo = createAction();\nexport const receiveActionInfo = createAction();\nexport const failActionInfo = createAction();\n\nexport const getActionInfo =\n (formId: string, actionType: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(requestActionInfo(ACTION_INFO));\n\n const url = getFormUrl(formId);\n const formio = new Formio(url);\n\n try {\n const actionInfo = await formio.actionInfo(actionType);\n\n actionInfo.settingsForm.action = Formio.getProjectUrl() + actionInfo.settingsForm.action;\n\n dispatch(receiveActionInfo(ACTION_INFO, { actionInfo }));\n done(null, actionInfo);\n } catch (error) {\n dispatch(failActionInfo(ACTION_INFO, { error }));\n done(error);\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\n\nimport { ActionSchema } from \"../../interfaces\";\nimport { failActionInfo, receiveActionInfo, requestActionInfo, resetActionInfo } from \"./action-info.actions\";\nimport { ACTION_INFO } from \"./action-info.constant\";\n\nexport interface ActionInfoState {\n error: null | Error;\n data?: Partial<ActionSchema>;\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator<ActionInfoState> = () => ({\n error: null,\n data: {},\n isActive: false\n});\n\nexport const actionInfoReducer = createReducer<ActionInfoState>(\n {\n [resetActionInfo.toString()]: (_, _2, reset) => {\n return reset();\n },\n [requestActionInfo.toString()]: (state) => ({\n ...state,\n error: null,\n data: {},\n isActive: true\n }),\n [receiveActionInfo.toString()]: (state, { actionInfo }) => ({\n ...state,\n error: null,\n data: actionInfo,\n isActive: false\n }),\n [failActionInfo.toString()]: (state, { error }) => ({\n ...state,\n data: {},\n error,\n isActive: false\n })\n },\n createInitialState\n)(ACTION_INFO);\n","import get from \"lodash/get\";\n\nexport function selectRoot<State = Record<string, any>>(name: string): (state: Record<string, any>) => State;\nexport function selectRoot<State = Record<string, any>>(name: string, state: Record<string, any>): State;\nexport function selectRoot<State = Record<string, any>>(name: string, state?: Record<string, any>): State & any {\n if (state) {\n return state[name];\n }\n\n return (state: Record<string, any>) => selectRoot(name, state);\n}\n\nexport const selectError = (name: string, state: Record<string, any>): null | Error => get(selectRoot(name, state)!, \"error\");\n\nexport const selectIsActive = (name: string, state: Record<string, any>): boolean => get(selectRoot(name, state)!, \"isActive\");\n\nexport function oneOfIsActive(...names: string[]) {\n return (state: any) => {\n return !!names.find((name) => {\n return get(state, `${name}.isActive`, get(state, `${name}.current.isActive`));\n });\n };\n}\n","import { ActionSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { ACTION_INFO } from \"./action-info.constant\";\nimport { ActionInfoState } from \"./action-info.reducers\";\n\nexport const selectActionInfo = (state: Record<string, any>): Partial<ActionSchema> =>\n selectRoot<ActionInfoState>(ACTION_INFO, state).data!;\n","export const ACTION = \"action\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport get from \"lodash/get\";\nimport noop from \"lodash/noop\";\n\nimport { getActionUrl } from \"../../utils/url\";\nimport { getActionInfo } from \"../action-info\";\nimport { ACTION } from \"./action.constant\";\n\nexport const clearActionError = createAction();\nexport const resetAction = createAction();\nexport const requestAction = createAction();\nexport const receiveAction = createAction();\nexport const failAction = createAction();\nexport const sendAction = createAction();\n\nfunction getFormio(formId: string, id: string) {\n const url = getActionUrl(formId, id);\n return new Formio(url);\n}\n\nexport const getAction =\n (formId: string, actionId: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n dispatch(requestAction(ACTION));\n\n const formio = getFormio(formId, actionId);\n\n try {\n const action = await formio.loadAction();\n\n dispatch(getActionInfo(formId, action.name));\n dispatch(receiveAction(ACTION, { action }));\n done(null, action);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n\nexport const saveAction =\n (formId: string, action: any, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n dispatch(sendAction(ACTION, { action }));\n\n const formio = getFormio(formId, get(action, \"data._id\", \"\"));\n\n try {\n const result = await formio.saveAction(action);\n dispatch(receiveAction(ACTION, { action: result }));\n done(null, result);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n\nexport const deleteAction = (formId: string, actionId: string, done = noop) => {\n return async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n\n // const state = getState();\n // const path = formId.replace(\"__\", \"/\");\n // const form = selectForm(\"form\", state);\n // const resource = selectForm(\"resource\", state);\n //\n // formId = (path === form.path ? form._id : resource._id) || formId;\n\n const formio = getFormio(formId, actionId);\n\n try {\n await formio.deleteAction();\n dispatch(resetAction(ACTION));\n done(null);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n};\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\n\nimport { ActionSchema } from \"../../interfaces\";\nimport { clearActionError, failAction, receiveAction, requestAction, resetAction, sendAction } from \"./action.actions\";\nimport { ACTION } from \"./action.constant\";\n\nexport interface ActionState {\n error: null | Error;\n data: ActionSchema;\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator = (): ActionState => ({\n error: null,\n data: {} as any,\n isActive: false\n});\n\nexport const actionReducer = createReducer<ActionState>({}, createInitialState)\n .on(resetAction, (_: any, _2: any, reset: any) => reset())\n .on(clearActionError, (state) => ({\n ...state,\n error: null\n }))\n .on(requestAction, (state) => ({\n ...state,\n error: null,\n data: {},\n isActive: true\n }))\n .on(sendAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: true\n }))\n .on(receiveAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: false\n }))\n .on(receiveAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: false\n }))\n .on(failAction, (state, { error }) => ({\n ...state,\n data: {},\n error,\n isActive: false\n }))(ACTION);\n","import { ActionSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { ACTION } from \"./action.constant\";\nimport { ActionState } from \"./action.reducers\";\n\nexport const selectAction = (state: Record<string, any>): ActionSchema => selectRoot<ActionState>(ACTION, state).data;\n","export const ACTIONS = \"actions\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { getFormUrl } from \"../../utils/url\";\nimport { ACTIONS } from \"./actions.constant\";\n\nexport const resetActions = createAction();\nexport const requestActions = createAction();\nexport const receiveActions = createAction<{\n actions: any[];\n availableActions: any[];\n}>();\nexport const failActions = createAction<{ error: Error }>();\n\nexport const getActions =\n (id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(resetActions(ACTIONS));\n dispatch(requestActions(ACTIONS));\n\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n const [actions, availableActions] = await Promise.all([formio.loadActions({ params: {} }), formio.availableActions()]);\n\n dispatch(receiveActions(ACTIONS, { actions, availableActions }));\n done(null, actions, availableActions);\n } catch (error) {\n dispatch(failActions(ACTIONS, { error }));\n done(error);\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\n\nimport { ActionInfoSchema, ActionSchema } from \"../../interfaces\";\nimport { failActions, receiveActions, requestActions, resetActions } from \"./actions.actions\";\nimport { ACTIONS } from \"./actions.constant\";\n\nexport interface ActionsState {\n error: null | Error;\n data: ActionSchema[];\n availableActions: ActionInfoSchema[];\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator<ActionsState> = () => ({\n error: null,\n data: [],\n availableActions: [],\n isActive: false\n});\n\nexport const actionsReducer = createReducer<ActionsState>(\n {\n [resetActions.toString()]: (_, _2, reset) => {\n return reset();\n },\n [requestActions.toString()]: (state) => ({\n ...state,\n error: null,\n data: [],\n availableActions: [],\n isActive: true\n }),\n [receiveActions.toString()]: (state, { actions, availableActions }) => ({\n ...state,\n error: null,\n data: actions,\n availableActions,\n isActive: false\n }),\n [failActions.toString()]: (state, { error }) => ({\n ...state,\n error,\n data: [],\n isActive: false\n })\n },\n createInitialState\n)(ACTIONS);\n","import { selectRoot } from \"../root\";\nimport { ACTIONS } from \"./actions.constant\";\nimport { ActionsState } from \"./actions.reducers\";\n\nexport const selectActions = (state: Record<string, any>) => selectRoot<ActionsState>(ACTIONS, state).data;\n\nexport const selectAvailableActions = (state: Record<string, any>) => selectRoot<ActionsState>(ACTIONS, state).availableActions;\n","import { createAction } from \"@tsed/redux-utils\";\n\nimport { FormSchema, RoleSchema, Submission } from \"../../interfaces\";\n\nexport const requestUser = createAction();\nexport const receiveUser = createAction<{ user: Submission }>();\nexport const failUser = createAction<{ error: Error }>();\nexport const logoutUser = createAction();\nexport const submissionAccessUser = createAction<{ submissionAccess: any }>();\nexport const formAccessUser = createAction<{ formAccess: any }>();\nexport const projectAccessUser = createAction<{ projectAccess: any }>();\nexport const userRoles = createAction<{ roles: Record<string, RoleSchema> }>();\nexport const userForms = createAction<{ forms: Record<string, FormSchema> }>();\n","export const AUTH = \"auth\";\n","import { createReducer } from \"@tsed/redux-utils\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { RoleSchema } from \"../../interfaces/RoleSchema\";\nimport {\n failUser,\n formAccessUser,\n logoutUser,\n projectAccessUser,\n receiveUser,\n requestUser,\n submissionAccessUser,\n userForms,\n userRoles\n} from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport interface AuthState<User = any> {\n init: boolean;\n isActive: boolean;\n user: null | Submission<User>;\n authenticated: boolean;\n projectAccess: Record<string, string[]>;\n formAccess: Record<string, string[]>;\n submissionAccess: Record<string, string[]>;\n roles: Record<string, RoleSchema>;\n forms: Record<string, FormSchema>;\n is: Record<string, boolean>;\n error: null | Error;\n}\n\nfunction createInitialState(): AuthState {\n return {\n init: false,\n isActive: false,\n user: null,\n authenticated: false,\n submissionAccess: {},\n formAccess: {},\n projectAccess: {},\n roles: {},\n forms: {},\n is: {},\n error: null\n };\n}\n\nfunction mapProjectRolesToUserRoles(projectRoles: Record<string, any>, userRoles: any[]) {\n return Object.entries(projectRoles).reduce(\n (result, [name, role]) => ({\n ...result,\n [name]: userRoles.includes(role._id)\n }),\n {}\n );\n}\n\nfunction getUserRoles(projectRoles: Record<string, RoleSchema>) {\n return Object.keys(projectRoles).reduce(\n (result, name) => ({\n ...result,\n [name]: name === \"anonymous\"\n }),\n {}\n );\n}\n\nexport const authReducer = createReducer<AuthState>(\n {\n [requestUser.toString()](state) {\n return {\n ...state,\n init: true,\n submissionAccess: false,\n isActive: true\n };\n },\n [receiveUser.toString()](state, { user }) {\n return {\n ...state,\n isActive: false,\n user,\n authenticated: true,\n is: mapProjectRolesToUserRoles(state.roles, user.roles),\n error: null\n };\n },\n [failUser.toString()](state, { error }: any) {\n return {\n ...state,\n isActive: false,\n is: getUserRoles(state.roles),\n error\n };\n },\n [logoutUser.toString()](state) {\n return {\n ...state,\n user: null,\n isActive: false,\n authenticated: false,\n is: getUserRoles(state.roles),\n error: null\n };\n },\n [submissionAccessUser.toString()](state, { submissionAccess }: any) {\n return {\n ...state,\n submissionAccess\n };\n },\n [formAccessUser.toString()](state, { formAccess }: any) {\n return {\n ...state,\n formAccess\n };\n },\n [userForms.toString()](state, { forms }: any) {\n return {\n ...state,\n forms\n };\n },\n [projectAccessUser.toString()](state, { projectAccess }: any) {\n return {\n ...state,\n projectAccess\n };\n },\n [userRoles.toString()](state, { roles }: any) {\n return {\n ...state,\n roles\n };\n },\n default(state: any) {\n if (!window.localStorage.getItem(\"formioUser\")) {\n return {\n ...state,\n user: null,\n isActive: false,\n authenticated: false,\n is: getUserRoles(state.roles),\n error: null\n };\n }\n return state;\n }\n },\n createInitialState\n)(AUTH);\n","import get from \"lodash/get\";\n\nimport { RoleSchema, Submission } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { AUTH } from \"./auth.constant\";\nimport { AuthState } from \"./auth.reducers\";\n\nexport const selectAuth = (state: any) => selectRoot<AuthState>(AUTH, state);\n\nexport const selectUser = <User = any>(state: any): null | Submission<User> => get(selectAuth(state), \"user\");\n\nexport const selectRoles = (state: any): Record<string, RoleSchema> => get(selectAuth(state), \"roles\");\n\nexport const selectIsAuthenticated = (state: any): boolean => get(selectAuth(state), \"authenticated\");\n","import get from \"lodash/get\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { AuthState } from \"./auth.reducers\";\n\nexport function hasRole(auth: AuthState, role: string): boolean {\n return auth.is[role];\n}\n\nexport function hasRoles(auth: AuthState, roles: string[]): boolean {\n roles = ([] as string[]).concat(roles);\n\n return !!roles.find((role) => hasRole(auth, role));\n}\n\nexport function isAuthorized(auth: AuthState, roles: string[] = []): boolean {\n if (auth && auth.authenticated) {\n if (roles.length) {\n return !!hasRoles(auth, roles);\n }\n return true;\n }\n\n return false;\n}\n\nexport function checkRoleFormAccess(auth: AuthState, form?: Partial<FormSchema>, roles?: string[]) {\n if (roles && roles.length) {\n if (isAuthorized(auth, roles)) {\n return true;\n }\n\n return roles.includes(\"owner\") && get(form, \"owner\") === get(auth, \"user._id\");\n }\n\n return true;\n}\n","import { Formio } from \"formiojs\";\n\nimport { RoleSchema } from \"../../interfaces\";\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { formAccessUser, submissionAccessUser, userForms, userRoles } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nfunction transformSubmissionAccess(forms: Record<string, FormSchema>) {\n return Object.values(forms).reduce(\n (result, form) => ({\n ...result,\n [form.name as string]: form.submissionAccess.reduce(\n (formSubmissionAccess: any, access: any) => ({\n ...formSubmissionAccess,\n [access.type]: access.roles\n }),\n {}\n )\n }),\n {}\n );\n}\n\nfunction transformFormAccess(forms: Record<string, FormSchema>) {\n return Object.values(forms).reduce(\n (result, form) => ({\n ...result,\n [form.name as string]: form.access.reduce(\n (formAccess: any, access: any) => ({\n ...formAccess,\n [access.type]: access.roles\n }),\n {}\n )\n }),\n {}\n );\n}\n\nexport async function getAccess(dispatch: any) {\n const projectUrl = Formio.getProjectUrl();\n\n try {\n const result: {\n roles: Record<string, RoleSchema>;\n forms: Record<string, FormSchema>;\n } = await Formio.makeStaticRequest(`${projectUrl}/access`);\n\n const submissionAccess = transformSubmissionAccess(result.forms);\n const formAccess = transformFormAccess(result.forms);\n\n dispatch(submissionAccessUser(AUTH, { submissionAccess }));\n dispatch(formAccessUser(AUTH, { formAccess }));\n dispatch(userRoles(AUTH, { roles: result.roles }));\n dispatch(userForms(AUTH, { forms: result.forms }));\n } catch (err) {}\n}\n","import { Formio } from \"formiojs\";\n\nimport { projectAccessUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nfunction transformProjectAccess(projectAccess: any[]) {\n return projectAccess.reduce(\n (result: any, access: any) => ({\n ...result,\n [access.type]: access.roles\n }),\n {}\n );\n}\n\nexport async function getProjectAccess(dispatch: any) {\n const projectUrl = Formio.getProjectUrl();\n\n try {\n const project = await Formio.makeStaticRequest(projectUrl);\n const projectAccess = transformProjectAccess(project.access);\n\n dispatch(projectAccessUser(AUTH, projectAccess));\n } catch (er) {}\n}\n","import { Formio } from \"formiojs\";\n\nimport { logoutUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport const logout = () => async (dispatch: any) => {\n await Formio.logout();\n dispatch(logoutUser(AUTH));\n};\n","import { Formio } from \"formiojs\";\n\nimport { receiveUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport const setUser = (user: any) => (dispatch: any) => {\n Formio.setUser(user);\n dispatch(receiveUser(AUTH, { user }));\n};\n","import { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { failUser, requestUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\nimport { getAccess } from \"./getAccess.action\";\nimport { getProjectAccess } from \"./getProjectAccess.action\";\nimport { logout } from \"./logout.action\";\nimport { setUser } from \"./setUser.action\";\n\nexport const initAuth =\n (done = noop) =>\n async (dispatch: any) => {\n dispatch(requestUser(AUTH));\n\n try {\n const [user] = await Promise.all([Formio.currentUser(), getAccess(dispatch), getProjectAccess(dispatch)]);\n\n if (user) {\n dispatch(setUser(user));\n } else {\n dispatch(logout());\n }\n } catch (error) {\n dispatch(failUser(AUTH, { error }));\n }\n\n done();\n };\n","import { FormSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { FormState } from \"./form.reducers\";\n\nexport const selectForm = (name: string, state: any): Partial<FormSchema> => selectRoot<FormState>(name, state).data!;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { getFormUrl } from \"../../utils/url\";\nimport { getActions } from \"../actions\";\nimport { selectForm } from \"./form.selectors\";\n\nexport const clearFormError = createAction();\nexport const requestForm = createAction();\nexport const receiveForm = createAction();\nexport const failForm = createAction();\nexport const resetForm = createAction();\nexport const sendForm = createAction();\n\nfunction shouldGet(form: Partial<FormSchema>, id: string) {\n return form && form.components && Array.isArray(form.components) && form.components.length && form._id === id;\n}\n\nexport const getForm =\n (name: string, id = \"\", done = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(clearFormError(name));\n // Check to see if the form is already loaded.\n const form = selectForm(name, getState());\n\n if (shouldGet(form, id)) {\n return;\n }\n\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n dispatch(requestForm(name, { id, url }));\n\n try {\n const form = await formio.loadForm();\n\n dispatch(receiveForm(name, { form, url }));\n dispatch(getActions(form._id));\n done(null, form);\n } catch (error) {\n dispatch(failForm(name, { error }));\n done({ error });\n }\n };\n\nexport const saveForm =\n (name: string, form: Partial<FormSchema>, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearFormError(name));\n dispatch(sendForm(name, { form }));\n\n const id = form._id || \"\";\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n const result = await formio.saveForm(form);\n dispatch(receiveForm(name, { form: result, url: getFormUrl(result._id) }));\n done(null, result);\n } catch (error) {\n dispatch(failForm(name, { error }));\n done(error);\n }\n };\n\nexport const deleteForm =\n (name: string, id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearFormError(name));\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n await formio.deleteForm();\n dispatch(resetForm(name));\n done();\n } catch (error) {\n dispatch(failForm(name, { error }));\n done({ error });\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { clearFormError, failForm, receiveForm, requestForm, resetForm, sendForm } from \"./form.actions\";\n\nexport interface FormState {\n error: null | Error;\n data?: Partial<FormSchema>;\n isActive: boolean;\n lastUpdated: number;\n url: string;\n}\n\nconst createInitialState: InitialStateCreator<FormState> = () => ({\n id: \"\",\n isActive: false,\n lastUpdated: 0,\n data: {},\n url: \"\",\n error: null\n});\n\nexport const formReducer = createReducer<FormState>(\n {\n [resetForm.toString()]: (_, _2, reset) => reset(),\n [clearFormError.toString()]: (state) => ({\n ...state,\n error: null\n }),\n [requestForm.toString()]: (state, { id, url }) => ({\n ...state,\n isActive: true,\n id,\n url,\n data: {},\n error: null\n }),\n [receiveForm.toString()]: (state, { form, url }) => ({\n ...state,\n isActive: false,\n id: form._id,\n data: form,\n url: url || state.url,\n error: null\n }),\n [failForm.toString()]: (state, payload) => ({\n ...state,\n error: payload.error,\n isActive: false\n }),\n [sendForm.toString()]: (state, { form, url }) => ({\n ...state,\n data: form,\n url,\n isActive: true\n })\n },\n createInitialState\n);\n","export function clean(obj: any = {}) {\n return Object.entries(obj).reduce((obj, [key, entry]) => {\n if (entry !== undefined) {\n return {\n ...obj,\n [key]: entry\n };\n }\n\n return obj;\n }, {});\n}\n","import { QueryOptions } from \"../interfaces/QueryOptions\";\nimport { clean } from \"./clean\";\n\nexport interface RequestParamsOptions extends QueryOptions {\n select: string | string[];\n query: {\n [key: string]: string;\n };\n [key: string]: any;\n}\n\nexport function mapRequestParams({ query, pageSize = 10, pageIndex = 0, select, filters, sortBy }: Partial<RequestParamsOptions>) {\n const requestParams: any = {\n ...clean(query),\n limit: pageSize,\n skip: pageIndex * pageSize\n };\n\n if (select && select.length) {\n requestParams.select = Array.isArray(select) ? select.join(\",\") : select;\n }\n\n if (filters && filters.length) {\n filters.forEach((filter) => {\n if (filter.value) {\n requestParams[`${filter.id}__regex`] = new RegExp(filter.value, \"gi\").toString();\n }\n });\n }\n\n if (sortBy && sortBy.length) {\n requestParams.sort = (sortBy[0].desc ? \"-\" : \"\") + sortBy[0].id;\n }\n\n return requestParams;\n}\n","import { selectRoot } from \"../root\";\nimport { FormsState } from \"./forms.reducers\";\n\nexport const selectForms = (name: string, state: any) => selectRoot<FormsState>(name, state).data;\n\nexport const selectFormsParameters = (name: string, state: any) => selectRoot<FormsState>(name, state).parameters;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport type { RequestParamsOptions } from \"../../utils/mapRequestParams\";\nimport { mapRequestParams } from \"../../utils/mapRequestParams\";\nimport { selectFormsParameters } from \"./forms.selectors\";\n\nexport const resetForms = createAction();\nexport const requestForms = createAction<{\n parameters: Partial<RequestParamsOptions>;\n}>();\nexport const receiveForms = createAction<{ forms: FormSchema[] }>();\nexport const failForms = createAction();\n\nexport type GetFormsCB = (err: any, forms?: FormSchema[]) => void;\n\nexport const getForms =\n (name: string, parameters: Partial<RequestParamsOptions>, done: GetFormsCB = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(requestForms(name, { parameters }));\n\n const formio = new Formio(`${Formio.getProjectUrl()}/form`);\n const requestParams = mapRequestParams(selectFormsParameters(name, getState()));\n\n try {\n const result: FormSchema[] = await formio.loadForms({\n params: requestParams\n });\n dispatch(receiveForms(name, { forms: result }));\n done(null, result);\n } catch (error) {\n dispatch(failForms(name, { error }));\n done(error);\n }\n };\n\nexport const refreshForms = (name: string, done = noop) => {\n return async (dispatch: any, getState: any) => {\n const parameters = selectFormsParameters(name, getState());\n return getForms(name, parameters, done)(dispatch, getState);\n };\n};\n","import { createReducer } from \"@tsed/redux-utils\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { failForms, receiveForms, requestForms, resetForms } from \"./forms.actions\";\n\nexport interface FormsState {\n error: null | Error;\n isActive: boolean;\n parameters: {\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n query: any;\n select: any;\n sortBy: any[];\n filters: any[];\n };\n data: FormSchema[];\n}\n\nconst createInitialState = ({ pageIndex = 0, pageSize = 10, query = {}, select = \"\", sortBy = [] }: any = {}): FormsState => {\n return {\n error: null,\n isActive: false,\n parameters: {\n pageSize,\n pageIndex,\n pageCount: 0,\n query,\n select,\n sortBy,\n filters: []\n },\n data: []\n };\n};\n\nexport const formsReducer = createReducer<FormsState>({}, createInitialState)\n .on(resetForms, (_: any, _2: any, reset: any) => {\n return reset();\n })\n .on(requestForms, (state: FormsState, { parameters }: any) => {\n return {\n ...state,\n parameters: {\n ...state.parameters,\n ...parameters\n },\n error: null,\n data: [],\n isActive: true\n };\n })\n .on(receiveForms, (state: FormsState, { forms }: any) => {\n const total = forms.serverCount;\n const pageCount = Math.ceil(total / (state.parameters.pageSize || 10));\n\n delete forms.serverCount;\n\n return {\n ...state,\n data: forms,\n isActive: false,\n parameters: {\n ...state.parameters,\n pageCount,\n totalLength: total\n }\n };\n })\n .on(failForms, (state: any, { error }: any) => {\n return {\n ...state,\n error,\n isActive: false\n };\n });\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { Submission } from \"../../interfaces\";\nimport { getSubmissionUrl } from \"../../utils/url\";\n\nexport const clearSubmissionError = createAction();\nexport const requestSubmission = createAction();\nexport const sendSubmission = createAction();\nexport const receiveSubmission = createAction();\nexport const failSubmission = createAction();\nexport const resetSubmission = createAction();\n\nexport const getSubmission =\n (name: string, formId: string, id: string, done = noop) =>\n async (dispatch: any, getState: any) => {\n // Check to see if the submission is already loaded.\n if (getState().id === id) {\n return;\n }\n\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n dispatch(clearSubmissionError(name));\n dispatch(requestSubmission(name, { id, formId, url }));\n\n try {\n const result = await formio.loadSubmission();\n\n dispatch(receiveSubmission(name, { submission: result, url }));\n done(null, result);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n\nexport const saveSubmission =\n (name: string, formId: string, data: Submission, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearSubmissionError(name));\n dispatch(sendSubmission(name, { submission: data, formId }));\n\n const id = data._id;\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n try {\n const result = await formio.saveSubmission(data);\n dispatch(\n receiveSubmission(name, {\n submission: result,\n url: getSubmissionUrl(formId, result._id)\n })\n );\n done(null, result);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n\nexport const deleteSubmission =\n (name: string, formId: string, id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearSubmissionError(name));\n\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n try {\n await formio.deleteSubmission();\n dispatch(resetSubmission(name));\n done(null);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\n\nimport { Submission } from \"../../interfaces\";\nimport {\n clearSubmissionError,\n failSubmission,\n receiveSubmission,\n requestSubmission,\n resetSubmission,\n sendSubmission\n} from \"./submission.actions\";\n\nexport interface SubmissionState {\n formId: string;\n id: string;\n isActive: boolean;\n lastUpdated: number;\n data: Partial<Submission>;\n url: string;\n error: null | Error;\n}\n\nconst createInitialState: InitialStateCreator = () => ({\n formId: \"\",\n id: \"\",\n isActive: false,\n lastUpdated: 0,\n data: {},\n url: \"\",\n error: null\n});\n\nexport const submissionReducer = createReducer<SubmissionState>(\n {\n [resetSubmission.toString()]: (_: any, _2: any, reset: any) => reset(),\n [clearSubmissionError.toString()]: (state: any) => ({\n ...state,\n error: null\n }),\n [requestSubmission.toString()]: (state: any, { formId, id, url }: any) => ({\n ...state,\n formId,\n id,\n url,\n data: {},\n isActive: true\n }),\n [sendSubmission.toString()]: (state: any, { formId, submission, id, url }: any) => ({\n ...state,\n formId,\n id,\n url: url || state.url,\n data: submission,\n isActive: true\n }),\n [receiveSubmission.toString()]: (state: any, { submission, url }: any) => ({\n ...state,\n data: submission,\n url: url || state.url,\n isActive: false,\n error: null\n }),\n [failSubmission.toString()]: (state: any, { error }: any) => ({\n ...state,\n isActive: false,\n error\n })\n },\n createInitialState\n);\n","import { Submission } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { SubmissionState } from \"./submission.reducers\";\n\nexport const selectSubmission = (name: string, state: any): Partial<Submission> => selectRoot<SubmissionState>(name, state).data;\n","import { selectRoot } from \"../root\";\nimport { SubmissionsState } from \"./submissions.reducers\";\n\nexport const selectSubmissions = (name: string, state: any) => selectRoot<SubmissionsState>(name, state).data;\n\nexport const selectSubmissionsParameters = (name: string, state: any) => selectRoot<SubmissionsState>(name, state).parameters;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { mapRequestParams } from \"../../utils/mapRequestParams\";\nimport { getSubmissionUrl } from \"../../utils/url\";\nimport { selectSubmissionsParameters } from \"./submissions.selectors\";\n\nexport const resetSubmissions = createAction();\nexport const requestSubmissions = createAction();\nexport const receiveSubmissions = createAction();\nexport const failSubmissions = createAction();\n\nexport const getSubmissions =\n (name: string, formId: string, parameters: any = {}, done = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(requestSubmissions(name, { formId, parameters }));\n\n const url = getSubmissionUrl(formId);\n const formio = new Formio(url);\n const requestParams = mapRequestParams(selectSubmissionsParameters(name, getState()));\n\n try {\n const submissions = await formio.loadSubmissions({ params: requestParams });\n dispatch(receiveSubmissions(name, { submissions }));\n done(null, submissions);\n } catch (error) {\n dispatch(failSubmissions(name, { error }));\n done(error);\n }\n };\n\nexport const refreshSubmissions = (name: string, formId: string, done = noop) => {\n return async (dispatch: any, getState: any) => {\n const parameters = selectSubmissionsParameters(name, getState());\n return getSubmissions(name, formId, parameters, done)(dispatch, getState);\n };\n};\n","import { createReducer } from \"@tsed/redux-utils\";\n\nimport { Submission } from \"../../interfaces/Submission\";\nimport { failSubmissions, receiveSubmissions, requestSubmissions, resetSubmissions } from \"./submissions.actions\";\n\nexport interface SubmissionsState {\n error: null | Error;\n formId: string;\n isActive: boolean;\n parameters: {\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n query: any;\n select: any;\n sortBy: any[];\n };\n data: Submission[];\n}\n\nexport function createInitialState({ pageIndex = 0, pageSize = 10, query = {}, select = \"\", sortBy = [] }: any = {}): SubmissionsState {\n return {\n error: null,\n formId: \"\",\n isActive: false,\n parameters: {\n pageSize,\n pageIndex,\n pageCount: 0,\n query,\n select,\n sortBy\n },\n data: []\n };\n}\n\nexport const submissionsReducer = createReducer<SubmissionsState>({}, createInitialState)\n .on(resetSubmissions, (_: any, _2: any, reset: any) => {\n return reset();\n })\n .on(requestSubmissions, (state: any, { parameters, formId }: any) => {\n return {\n ...state,\n formId,\n parameters: {\n ...state.parameters,\n ...parameters\n },\n error: null,\n data: [],\n isActive: true\n };\n })\n .on(receiveSubmissions, (state: SubmissionsState, { submissions }: any) => {\n const total = submissions.serverCount;\n const pageCount = Math.ceil(total / (state.parameters.pageSize || 10));\n\n delete submissions.serverCount;\n\n return {\n ...state,\n data: submissions,\n isActive: false,\n parameters: {\n ...state.parameters,\n pageCount,\n totalLength: total\n }\n };\n })\n .on(failSubmissions, (state: any, { error }: any) => {\n return {\n ...state,\n error,\n isActive: false\n };\n });\n","import { combine } from \"@tsed/redux-utils\";\n\nimport { actionReducer } from \"./action\";\nimport { actionInfoReducer } from \"./action-info\";\nimport { actionsReducer } from \"./actions\";\nimport { authReducer } from \"./auth\";\nimport { formReducer } from \"./form\";\nimport { formsReducer } from \"./forms\";\nimport { submissionReducer } from \"./submission\";\nimport { submissionsReducer } from \"./submissions\";\n\nexport * from \"./action\";\nexport * from \"./action-info\";\nexport * from \"./actions\";\nexport * from \"./auth\";\nexport * from \"./form\";\nexport * from \"./forms\";\nexport * from \"./root\";\nexport * from \"./submission\";\nexport * from \"./submissions\";\n\nexport const defaultFormioReducer = combine(\n authReducer,\n actionsReducer,\n actionReducer,\n actionInfoReducer,\n formReducer(\"form\"),\n formsReducer(\"forms\", { query: { type: \"form\" } }),\n formReducer(\"resource\"),\n formsReducer(\"resources\", { query: { type: \"resource\" } }),\n submissionReducer(\"submission\"),\n submissionsReducer(\"submissions\")\n);\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","key","call","join","module","exports","default","window","iconClass","iconset","name","spinning","Templates","current","defaultIconset","getEventValue","event","target","multiple","selectedOptions","from","option","value","type","checked","FormControl","children","required","prefix","suffix","description","label","className","classnames","propTypes","PropTypes","string","isRequired","any","bool","Select","size","onChange","choices","placeholder","layout","props","ref","useRef","useEffect","instance","Choices","removeItemButton","placeholderValue","destroy","map","String","func","array","LEFT_PAGE","RIGHT_PAGE","range","to","step","getPageNumbers","currentPage","pageNeighbours","totalPages","totalNumbers","totalBlocks","calculatedStartPage","Math","max","calculatedEndPage","min","startPage","endPage","pages","hasLeftSpill","hasRightSpill","spillOffset","extraPages","PaginationButton","component","Component","disabled","active","otherProps","Pagination","pageSizes","gotoPage","canPreviousPage","previousPage","nextPage","canNextPage","pageCount","pageIndex","pageOptions","pageSize","setPageSize","i18n","f","pageNumbers","page","includes","DefaultArrowSort","column","isSorted","isSortedDesc","undefined","DefaultCellHeader","getSortByToggleProps","render","canFilter","callLast","fn","time","last","args","clearTimeout","setTimeout","InputText","localValue","setValue","useState","change","useMemo","DefaultColumnFilter","filterId","setFilterId","id","filterValue","setFilter","useCallback","stopPropagationWrapper","stopPropagation","DefaultOperationButton","buttonSize","buttonType","buttonOutline","onClick","action","icon","title","filter","Boolean","DefaultCellOperations","operations","row","ctx","data","original","permissionsResolver","OperationButton","operation","useOperations","CellOperations","hooks","visibleColumns","columns","groupByBoundary","Header","Cell","getOperationCallback","find","alias","DefaultLoader","DefaultEmptyData","useFilters","useGroupBy","useSortBy","usePagination","Table","noop","filters","controlledFilters","controlledFilterId","controlledPageSize","controlledPageIndex","sortBy","controlledSortBy","isLoading","disableFilters","disablePagination","ArrowSort","ColumnFilter","EmptyData","Loader","DefaultPagination","CellHeader","_onClick","defaultColumn","React","Filter","tableInstance","useTable","initialState","manualPagination","manualSortBy","manualFilters","state","getTableProps","headerGroups","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getTableBodyProps","prepareRow","getRowProps","cells","cell","hidden","colspan","getCellProps","ActionsTable","availableActions","onAddAction","currentAction","setAction","accessor","concat","formatError","error","Object","prototype","keys","errors","index","item","path","message","details","Alert","Card","useEvent","callback","events","set","useEvents","funcs","Map","hasEvent","emit","has","get","useForm","src","form","options","submission","url","element","isLoaded","customValidation","err","createWebForm","srcOrForm","assign","cloneDeep","Form","onAny","startsWith","eventName","charAt","toUpperCase","slice","changed","ready","then","formio","onFormReady","isEqual","Components","setComponents","AllComponents","object","shape","readOnly","noAlerts","template","saveDraft","onPrevPage","onNextPage","onCancel","onCustomEvent","onComponentChange","onSubmit","onAsyncSubmit","onSubmitDone","onFormLoad","onError","onRender","onAttach","onBuild","onFocus","onBlur","onInitialized","formioform","getRoleComponent","labelPosition","widget","tooltip","dataSrc","defaultValue","values","searchEnabled","selectThreshold","validate","custom","customPrivate","toDescription","hr","getSubmissionPermissionForm","components","getAccessPermissionForm","rolesToChoices","roles","role","_id","accessToHash","access","hash","reduce","o","hashToAccess","accessRoles","entries","forEach","accessType","getFormAccess","submissionAccess","dataAccessToSubmissions","formAccess","getKeys","submissionsToDataAccess","submissions","shouldUpdate","updateSubmissions","cb","useFormAccess","formDefinition","setSubmissions","input","NamedFormAccess","isValid","setIsValid","FormAccess","mapData","defaults","mapSettingsForm","settingsForm","FormioUtils","eachComponent","resourceExclude","basePath","valueProperty","persistent","FormAction","actionInfo","EVENTS","EVENTS_CHANGE","createBuilder","el","display","builder","FormioFormBuilder","handleEvent","on","er","console","FormBuilder","constructor","elRef","builderRef","componentDidMount","create","onAddComponent","onUpdateComponent","onRemoveComponent","onSaveComponent","onCancelComponent","onMoveComponent","onEditComponent","onEditJson","onCopyComponent","onPasteComponent","firstChild","whenComponentsChange","bind","componentWillUnmount","componentWillReceiveProps","nextProps","setState","e","defaultProps","onReady","onDestroy","useTooltip","Tooltip","FormEditCTAs","saveText","onCopy","hasUndo","hasRedo","onUndo","onRedo","onReset","t","copyTooltipRef","trigger","placement","undoTooltipRef","redoTooltipRef","resetTooltipRef","InputTags","delimiter","editItems","passedElement","addEventListener","uniq","detail","v","defaultDisplayChoices","FormParameters","enableTags","typeChoices","displayChoices","readonly","baseUrl","location","origin","hasTypeChoices","textTransform","width","tags","hasChanged","createInitialState","past","future","reducer","update","newValue","camelCase","toLowerCase","previous","newPast","next","newFuture","useFormEdit","dispatchFormAction","useReducer","modified","formChange","newForm","redo","undo","reset","setChange","FormEdit","getFormSettingsSchema","mask","inputType","inputFormat","spellcheck","attributes","delimeter","storeas","maxTags","addAnother","disableAddingRemovingRows","keyBeforeValue","valueComponent","hideLabel","formSettingsToSubmission","properties","submissionToFormSettings","useFormSettings","setSubmission","FormSettings","SelectColumnFilter","preFilteredRows","customChoices","Set","global","factory","this","hookCallback","setHookCallback","toString","isObject","hasOwnProp","a","b","isObjectEmpty","obj","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","arr","res","arrLen","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","some","fun","len","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","momentProperties","updateInProgress","copyConfig","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","Error","stack","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","abs","zerosToFill","sign","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","localeData","removeFormattingTokens","match","replace","makeFormatFunction","formatMoment","invalidDate","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","s","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","n","x","indexOf","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","parseTwoDigitYear","parseInt","daysInYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","hours","kFormat","minutes","seconds","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","_abbr","require","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","exec","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","_useUTC","c","currentDateArray","nowValue","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","invalid","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","property","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","defaultFormat","defaultFormatUtc","toISOString","keepOffset","toDate","inspect","zone","datetime","inputString","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","eraYearOrdinalParse","localeEras","eras","_eras","since","until","Infinity","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","abbrPieces","namePieces","narrowPieces","isoWeekYear","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseZone","isDST","zoneAbbr","zoneName","dates","isDSTShifted","createUnix","createInZone","preParsePostFormat","proto$1","firstDayOfYear","firstDayOfWeek","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","FormsCell","machineName","moment","tag","FormsTable","FormCell","DefaultFormCell","isActive","color","useModal","show","setShowModal","openModal","closeModal","Modal","onClose","footer","ModalFooter","style","titleRef","footerRef","maxHeight","setMaxHeight","onClickClose","height","offsetHeight","RemoveModalFooter","valueToCompare","RemoveModal","maxWidth","itemType","ReactComponent","reactInstance","shouldSetValue","dataForSetting","updateValue","getValue","dataValue","updateOnChange","$reactNode","refs","init","attach","loadRefs","attachReact","detach","detachReact","renderReact","ReactDOM","unmountComponentAtNode","checkValidity","dirty","rowData","valid","DefaultCell","rendered","__html","mapFormToColumns","tableView","cmp","asString","SubmissionsTable","SliderColumnFilter","ButtonTab","back","reverse","after","Tabs","items","HeaderChildren","AddButton","Button","additionalProps","exact","getFormUrl","formId","Formio","getProjectUrl","Utils","isMongoId","getActionUrl","actionId","getSubmissionUrl","submissionId","ACTION_INFO","resetActionInfo","createAction","requestActionInfo","receiveActionInfo","failActionInfo","getActionInfo","actionType","done","dispatch","actionInfoReducer","createReducer","_","_2","selectRoot","selectError","selectIsActive","oneOfIsActive","selectActionInfo","ACTION","clearActionError","resetAction","requestAction","receiveAction","failAction","sendAction","getFormio","getAction","loadAction","saveAction","deleteAction","actionReducer","selectAction","ACTIONS","resetActions","requestActions","receiveActions","failActions","getActions","actions","Promise","all","loadActions","params","actionsReducer","selectActions","selectAvailableActions","requestUser","receiveUser","failUser","logoutUser","submissionAccessUser","formAccessUser","projectAccessUser","userRoles","userForms","AUTH","user","authenticated","projectAccess","forms","is","mapProjectRolesToUserRoles","projectRoles","getUserRoles","authReducer","localStorage","getItem","selectAuth","selectUser","selectRoles","selectIsAuthenticated","hasRole","auth","hasRoles","isAuthorized","checkRoleFormAccess","transformSubmissionAccess","formSubmissionAccess","transformFormAccess","getAccess","projectUrl","makeStaticRequest","transformProjectAccess","getProjectAccess","project","logout","setUser","initAuth","currentUser","selectForm","clearFormError","requestForm","receiveForm","failForm","resetForm","sendForm","shouldGet","getForm","getState","loadForm","saveForm","deleteForm","lastUpdated","formReducer","payload","clean","entry","mapRequestParams","query","select","requestParams","skip","desc","selectForms","selectFormsParameters","parameters","resetForms","requestForms","receiveForms","failForms","getForms","loadForms","refreshForms","formsReducer","serverCount","totalLength","clearSubmissionError","requestSubmission","sendSubmission","receiveSubmission","failSubmission","resetSubmission","getSubmission","loadSubmission","saveSubmission","deleteSubmission","submissionReducer","selectSubmission","selectSubmissions","selectSubmissionsParameters","resetSubmissions","requestSubmissions","receiveSubmissions","failSubmissions","getSubmissions","loadSubmissions","refreshSubmissions","submissionsReducer","defaultFormioReducer","combine"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../../../node_modules/classnames/index.js","../src/utils/iconClass.ts","../src/utils/getEventValue.ts","../src/components/form-control/formControl.component.tsx","../src/components/select/select.component.tsx","../src/components/table/utils/getPageNumbers.ts","../src/components/pagination/pagination.component.tsx","../src/components/table/components/defaultArrowSort.component.tsx","../src/components/table/components/defaultCellHeader.component.tsx","../src/utils/callLast.ts","../src/components/input-text/inputText.component.tsx","../src/components/table/filters/defaultColumnFilter.component.tsx","../src/utils/stopPropagationWrapper.ts","../src/components/table/components/defaultOperationButton.component.tsx","../src/components/table/components/defaultCellOperations.component.tsx","../src/components/table/utils/useOperations.hook.tsx","../src/components/table/table.component.tsx","../src/components/actions-table/actionsTable.component.tsx","../src/components/alert/alert.component.tsx","../src/components/card/card.component.tsx","../src/components/form/useForm.hook.ts","../src/components/form/form.component.tsx","../src/components/form-access/formAccess.schema.ts","../src/components/form-access/formAccess.utils.ts","../src/components/form-access/formAccess.component.tsx","../src/components/form-action/formAction.component.tsx","../src/components/form-builder/formBuilder.component.tsx","../src/hooks/useTooltip.ts","../src/components/form-edit/formCtas.component.tsx","../src/components/input-tags/inputTags.component.tsx","../src/components/form-edit/formParameters.component.tsx","../src/components/form-edit/formEdit.reducer.ts","../src/components/form-edit/useFormEdit.hook.ts","../src/components/form-edit/formEdit.component.tsx","../src/components/form-settings/formSettings.schema.ts","../src/components/form-settings/formSettings.utils.ts","../src/components/form-settings/formSettings.component.tsx","../src/components/table/filters/selectColumnFilter.component.tsx","../../../node_modules/moment/moment.js","../src/components/forms-table/components/formCell.component.tsx","../src/components/forms-table/formsTable.component.tsx","../src/components/loader/loader.component.tsx","../src/components/modal/modal.component.tsx","../src/components/modal/removeModal.component.tsx","../src/components/react-component/reactComponent.component.tsx","../src/components/table/components/defaultCell.component.tsx","../src/components/table/utils/mapFormToColumns.tsx","../src/components/submissions-table/submissionsTable.component.tsx","../src/components/table/filters/sliderColumnFilter.component.tsx","../src/components/tabs/tabs.component.tsx","../src/utils/mapPagination.ts"],"sourcesContent":["/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Templates } from \"formiojs\";\n\nexport function iconClass(iconset: string | undefined, name: string, spinning?: boolean): string {\n return Templates.current.iconClass(iconset || Templates.current.defaultIconset, name, spinning);\n}\n","export function getEventValue(event: any) {\n const { target } = event;\n\n if (event.target.multiple && event.target.selectedOptions) {\n return Array.from(event.target.selectedOptions, (option: any) => option.value);\n }\n\n return target.type === \"checkbox\" ? target.checked : target.value;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nexport interface FormControlProps {\n name: string;\n required?: boolean;\n label?: string;\n className?: string;\n description?: string | React.ComponentType | any;\n prefix?: JSX.Element | React.ComponentType | any;\n suffix?: JSX.Element | React.ComponentType | any;\n shadow?: boolean;\n}\n\nexport function FormControl({\n children,\n name,\n required,\n prefix,\n suffix,\n description,\n label,\n className\n}: React.PropsWithChildren<FormControlProps>) {\n return (\n <div data-testid={name && `form-group-${name}`} id={`form-group-${name || \"\"}`} className={classnames(\"form-group\", className)}>\n {label && (\n <label htmlFor={name} data-testid='form-control-label' className={`col-form-label ${required ? \" field-required\" : \"\"}`}>\n {label}\n </label>\n )}\n <div className={\"input-group\"}>\n {prefix && (\n <div className='input-group-prepend'>\n <span className='input-group-text' data-testid='form-control-prefix'>\n {prefix}\n </span>\n </div>\n )}\n {children}\n {suffix && (\n <div className='input-group-append'>\n <span className='input-group-text' data-testid='form-control-suffix'>\n {suffix}\n </span>\n </div>\n )}\n </div>\n {description && (\n <div data-testid='form-control-description' className='form-text text-muted'>\n {description}\n </div>\n )}\n </div>\n );\n}\n\nFormControl.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n children: PropTypes.any,\n required: PropTypes.bool,\n description: PropTypes.any\n};\n","import Choices from \"@formio/choices.js\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { ReactElement, useEffect, useRef } from \"react\";\n\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface SelectProps<T = any> extends FormControlProps {\n value?: any;\n size?: string;\n onChange?: (name: string, value: any) => void;\n placeholder?: string;\n choices: { label: string; value: T }[];\n layout?: \"html5\" | \"choicesjs\";\n multiple?: boolean;\n\n [key: string]: any;\n}\n\nexport function Select<T = any>({\n name,\n label,\n size,\n onChange,\n required,\n value,\n choices,\n description,\n placeholder,\n prefix,\n suffix,\n multiple,\n layout,\n ...props\n}: SelectProps<T>): ReactElement {\n const ref = useRef<any>();\n\n useEffect(() => {\n let instance: any;\n\n if (layout === \"choicesjs\") {\n instance = new Choices(ref.current, {\n removeItemButton: true,\n placeholderValue: placeholder\n });\n }\n\n return () => {\n instance && instance.destroy();\n };\n }, []);\n\n choices =\n layout === \"choicesjs\" || multiple || !placeholder\n ? choices\n : ([\n {\n label: placeholder,\n value: \"\"\n },\n ...choices\n ] as any[]);\n\n return (\n <FormControl name={name} label={label} required={required} description={description} prefix={prefix} suffix={suffix} shadow={false}>\n {/* eslint-disable-next-line jsx-a11y/no-onchange */}\n <select\n ref={ref}\n {...props}\n data-testid={`select_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n name={name}\n id={name}\n multiple={multiple}\n value={value || (\"\" as any)}\n placeholder={placeholder}\n onChange={(event) => {\n onChange && onChange(name, getEventValue(event));\n }}\n >\n {choices.map(({ label, value }) => {\n return (\n <option key={String(value)} label={label} value={value as any}>\n {label}\n </option>\n );\n })}\n </select>\n </FormControl>\n );\n}\n\nSelect.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n choices: PropTypes.array.isRequired\n};\n","export const LEFT_PAGE = \"LEFT\";\nexport const RIGHT_PAGE = \"RIGHT\";\n\nfunction range(from: number, to: number, step = 1): any[] {\n let i = from;\n const range = [];\n\n while (i <= to) {\n range.push(i);\n i += step;\n }\n\n return range;\n}\n\nexport function getPageNumbers({ currentPage, pageNeighbours = 1, totalPages }: any) {\n const totalNumbers = pageNeighbours * 2 + 3;\n const totalBlocks = totalNumbers + 2;\n\n if (totalPages > totalBlocks) {\n const calculatedStartPage = Math.max(2, currentPage - pageNeighbours);\n const calculatedEndPage = Math.min(totalPages - 1, currentPage + pageNeighbours);\n const startPage = calculatedStartPage === 3 ? 2 : calculatedStartPage;\n const endPage = calculatedEndPage === totalPages - 2 ? totalPages - 1 : calculatedEndPage;\n\n let pages = range(startPage, endPage);\n\n const hasLeftSpill = startPage > 2;\n const hasRightSpill = totalPages - endPage > 1;\n const spillOffset = totalNumbers - (pages.length + 1);\n let extraPages;\n\n if (hasLeftSpill && !hasRightSpill) {\n extraPages = range(startPage - spillOffset, startPage - 1);\n pages = [LEFT_PAGE, ...extraPages, ...pages];\n } else if (!hasLeftSpill && hasRightSpill) {\n extraPages = range(endPage + 1, endPage + spillOffset);\n pages = [...pages, ...extraPages, RIGHT_PAGE];\n } else {\n pages = [LEFT_PAGE, ...pages, RIGHT_PAGE];\n }\n\n return [1, ...pages, totalPages];\n }\n\n return range(1, totalPages);\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { Select } from \"../select/select.component\";\nimport { getPageNumbers, LEFT_PAGE, RIGHT_PAGE } from \"../table/utils/getPageNumbers\";\n\nfunction PaginationButton(\n props: PropsWithChildren<\n {\n component?: any;\n disabled?: boolean;\n className?: string;\n active?: boolean;\n } & Record<string, any>\n >\n) {\n const { component: Component = \"button\", children, disabled, active, ...otherProps } = props;\n\n return (\n <Component\n {...otherProps}\n data-testid='pagination-button'\n disabled={disabled}\n className={classnames(\"page-link\", disabled ? \"disabled\" : \"\", active ? \"\" : \"\", props.className)}\n >\n {children}\n </Component>\n );\n}\n\nexport interface PaginationProps {\n className?: string;\n pageSizes?: number[];\n gotoPage: any;\n canPreviousPage: boolean;\n previousPage: any;\n nextPage: any;\n canNextPage: boolean;\n pageCount: number;\n pageIndex: number;\n pageOptions?: any;\n pageSize: number;\n setPageSize: any;\n i18n?: (f: string) => string;\n}\n\nexport function Pagination(props: PaginationProps) {\n const {\n className,\n pageSizes = [10, 25, 50, 100],\n gotoPage,\n canPreviousPage,\n previousPage,\n nextPage,\n canNextPage,\n pageCount,\n pageIndex = 1,\n pageOptions,\n pageSize,\n setPageSize,\n i18n = (f: string) => f\n } = props;\n\n const pageNumbers = getPageNumbers({\n currentPage: pageIndex,\n // pageNeighbours,\n totalPages: pageCount\n });\n const choices: any[] = pageSizes.map((value) => ({ value, label: value }));\n\n return (\n <nav aria-label='Page navigation' className={classnames(\"pagination-group -mb-3\", className)}>\n <ul className='pagination mb-3 mr-3'>\n <li className={classnames(\"page-item\", !canPreviousPage && \"disabled\")}>\n <PaginationButton tabIndex={-1} disabled={!canPreviousPage} onClick={() => previousPage()}>\n {i18n(\"Previous\")}\n </PaginationButton>\n </li>\n\n {pageNumbers.map((page) => {\n if ([LEFT_PAGE, RIGHT_PAGE].includes(page)) {\n return (\n <li className='page-item' key={page}>\n <PaginationButton aria-hidden='true'>...</PaginationButton>\n </li>\n );\n }\n\n const active = page - 1 === pageIndex;\n return (\n <li className={classnames(\"page-item\", active && \"active\")} key={page}>\n <PaginationButton tabIndex={pageIndex} active={active} onClick={() => gotoPage(page - 1)}>\n {page}\n </PaginationButton>\n </li>\n );\n })}\n\n <li className={classnames(\"page-item\", !canNextPage && \"disabled\")}>\n <PaginationButton tabIndex={pageNumbers.length} disabled={!canNextPage} onClick={() => nextPage()}>\n {i18n(\"Next\")}\n </PaginationButton>\n </li>\n </ul>\n\n <li className='mb-3 mr-3 flex items-center'>\n <Select\n name={\"page\"}\n value={pageSize}\n choices={choices}\n onChange={(name: string, value: number) => {\n setPageSize(+value);\n }}\n />\n <span className={\"ml-3\"}>{i18n(\"items per page\")}</span>\n </li>\n {pageOptions && (\n <li className={\"mb-3 flex items-center\"}>\n <span>{i18n(\"Page\")} </span>\n <strong>\n {pageIndex + 1} of {pageOptions.length}\n </strong>\n </li>\n )}\n </nav>\n );\n}\n","import React from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\n\nexport function DefaultArrowSort({ column }: any) {\n const { isSorted, isSortedDesc } = column;\n return (\n <span className={\"table-arrow-sort\"}>\n {isSorted ? <i className={iconClass(undefined, isSortedDesc ? \"sort-up\" : \"sort-down\")} /> : \"\"}\n </span>\n );\n}\n","import React from \"react\";\nimport { HeaderGroup } from \"react-table\";\n\nexport interface DefaultCellHeaderProps<Data extends object = any> extends Record<string, unknown> {\n column: HeaderGroup<Data>;\n}\n\nexport function DefaultCellHeader<Data extends Record<string, unknown> = {}>({ column }: DefaultCellHeaderProps<Data>) {\n return (\n <div className={\"table-cell-header\"}>\n <div className='table-cell-header__label' {...column.getSortByToggleProps()}>\n <span>{column.render(\"Header\")}</span>\n\n {column.render(\"ArrowSort\")}\n </div>\n {column.canFilter ? <div className='table-cell-header__filter'>{column.render(\"Filter\")}</div> : null}\n </div>\n );\n}\n","export function callLast(fn: Function, time: number) {\n let last: any = null;\n\n return (...args: any[]) => {\n if (last) {\n clearTimeout(last);\n last = null;\n }\n\n last = setTimeout(() => fn(...args), time);\n };\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useMemo, useState } from \"react\";\n\nimport { callLast } from \"../../utils/callLast\";\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTextProps<T = any> extends FormControlProps {\n type?: string;\n value?: T;\n /**\n * The input size\n */\n size?: string;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputText<T = any>({\n name,\n value,\n label,\n onChange,\n required,\n size,\n type,\n prefix,\n suffix,\n description,\n className,\n placeholder,\n ...props\n}: InputTextProps<T>) {\n const [localValue, setValue] = useState(value);\n\n const change = useMemo(() => onChange && callLast(onChange, 300), [onChange]);\n\n useEffect(() => {\n setValue(value);\n }, [value]);\n\n return (\n <FormControl\n name={name}\n label={label}\n required={required}\n description={description}\n prefix={prefix}\n suffix={suffix}\n className={className}\n >\n <input\n type={type || \"text\"}\n {...props}\n data-testid={`input_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n id={name}\n required={required}\n value={(localValue || \"\") as any}\n placeholder={placeholder}\n onChange={(event) => {\n const value = getEventValue(event);\n setValue(value);\n\n return change && change(name, value);\n }}\n />\n </FormControl>\n );\n}\n\nInputText.propTypes = {\n label: PropTypes.string,\n type: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n size: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n prefix: PropTypes.any,\n suffix: PropTypes.any\n};\n","import React, { useCallback, useState } from \"react\";\nimport { FilterProps } from \"react-table\";\n\nimport { InputText } from \"../../input-text/inputText.component\";\n\nexport function DefaultColumnFilter<D extends Record<string, unknown> = {}>(\n props: FilterProps<D> & { filterId: string; setFilterId: any }\n) {\n const {\n filterId,\n setFilterId,\n column: { id, filterValue, setFilter }\n } = props;\n\n const [value, setValue] = useState(filterValue || \"\");\n\n const onChange = useCallback(\n (name, value) => {\n setValue(value);\n setFilterId(id);\n setFilter(value || undefined);\n },\n [id, setValue, setFilterId, setFilter]\n );\n\n return (\n <InputText\n size={\"sm\"}\n id={id}\n name={id}\n key={id}\n autoFocus={id === filterId}\n value={value}\n onChange={onChange}\n placeholder={\"Search records...\"}\n />\n );\n}\n","export const stopPropagationWrapper = (fn: Function) => (event: any) => {\n event.stopPropagation();\n fn();\n};\n","import classnames from \"classnames\";\nimport React from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport interface OperationButtonProps {\n className?: string;\n buttonType?: string;\n buttonSize?: string;\n buttonOutline?: boolean;\n data: any[];\n onClick: (action: string) => void;\n action: string;\n icon?: string;\n title?: string;\n i18n?: (i18n: string) => string;\n}\n\nexport function DefaultOperationButton(props: OperationButtonProps) {\n const {\n className = \"btn\",\n buttonSize = \"xs\",\n buttonType = \"primary\",\n buttonOutline,\n onClick,\n action,\n icon = \"\",\n title = \"\",\n i18n = (f: string) => f\n } = props;\n\n return (\n <button\n className={classnames(className, [\"btn\", buttonOutline && \"outline\", buttonType].filter(Boolean).join(\"-\"), `btn-${buttonSize}`)}\n onClick={stopPropagationWrapper(() => onClick(action))}\n >\n {icon ? (\n <>\n <i className={iconClass(undefined, icon)} /> {title && \" \"}\n </>\n ) : null}\n {title && <span className={icon && title ? \"ml-1\" : \"\"}>{i18n(title)}</span>}\n </button>\n );\n}\n","import React from \"react\";\n\nimport { DefaultOperationButton } from \"./defaultOperationButton.component\";\n\nexport function DefaultCellOperations({ operations, row, onClick, ctx, i18n }: any) {\n const data = row.original;\n\n return (\n <div className='btn-group'>\n {operations\n .filter(({ permissionsResolver }: any) => !permissionsResolver || permissionsResolver(data, ctx))\n .map(({ OperationButton = DefaultOperationButton, ...operation }: any) => {\n return (\n <OperationButton\n key={operation.action}\n {...operation}\n onClick={(action: string) => onClick(data, action)}\n data={data}\n i18n={i18n}\n ctx={ctx}\n />\n );\n })}\n </div>\n );\n}\n","import React from \"react\";\nimport { Hooks } from \"react-table\";\n\nimport { Operation } from \"../../../interfaces\";\nimport { DefaultCellOperations } from \"../components/defaultCellOperations.component\";\n\nexport type UseOperationsHookProps = {\n CellOperations?: React.ComponentType;\n operations: Operation[];\n onClick?: (data: any, event: string) => void;\n i18n?: (f: string) => string;\n ctx?: any;\n};\n\nexport function useOperations<D extends object = {}>({\n operations,\n CellOperations = DefaultCellOperations,\n onClick,\n i18n = (f: string) => f,\n ctx\n}: UseOperationsHookProps) {\n return (hooks: Hooks<D>): void => {\n hooks.visibleColumns.push((columns) => {\n if (!operations.length) {\n return columns;\n }\n\n return [\n ...columns,\n {\n id: \"operations\",\n groupByBoundary: true,\n Header: () => <div className={\"text-center\"}>{i18n(\"Operations\")}</div>,\n Cell: (props: any) => <CellOperations {...props} operations={operations} onClick={onClick} ctx={ctx} i18n={i18n} />\n }\n ];\n });\n };\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { PropsWithChildren } from \"react\";\nimport { CellProps, FilterProps, Renderer, TableOptions, useFilters, useGroupBy, usePagination, useSortBy, useTable } from \"react-table\";\n\nimport { OnClickOperation, Operation, QueryOptions } from \"../../interfaces\";\nimport { Pagination as DefaultPagination } from \"../pagination/pagination.component\";\nimport { DefaultArrowSort } from \"./components/defaultArrowSort.component\";\nimport { DefaultCellHeader, DefaultCellHeaderProps } from \"./components/defaultCellHeader.component\";\nimport { DefaultColumnFilter } from \"./filters/defaultColumnFilter.component\";\nimport { useOperations } from \"./utils/useOperations.hook\";\n\nexport interface TableProps<Data extends object = any> extends TableOptions<Data>, Partial<QueryOptions> {\n className?: string;\n /**\n * Call the listener when a filter / pagination / sort change.\n */\n onChange?: (query: QueryOptions) => void;\n /**\n * Call the listener when a line is clicked.\n */\n onClick?: OnClickOperation<Data>;\n /**\n * Pagination steps list\n */\n pageSizes?: number[];\n /**\n *\n */\n isLoading?: boolean;\n /**\n * Custom EmptyData displayed when there is no data\n */\n EmptyData?: React.ComponentType;\n /**\n * Custom ArrowSort\n */\n ArrowSort?: React.ComponentType;\n /**\n * Custom default ColumnFilter\n */\n ColumnFilter?: Renderer<FilterProps<Data>>;\n /**\n * Custom cell\n */\n Cell?: React.ComponentType<CellProps<Data>>;\n /**\n *\n */\n CellHeader?: React.ComponentType<DefaultCellHeaderProps<Data>>;\n /**\n *\n */\n CellOperations?: React.ComponentType;\n /**\n * Custom Loader\n */\n Loader?: React.ComponentType;\n /**\n * Custom Loader\n */\n Pagination?: React.ComponentType;\n /**\n * Disable filters\n */\n disableFilters?: boolean;\n /**\n * Disable pagination\n */\n disablePagination?: boolean;\n manualPagination?: boolean;\n manualSortBy?: boolean;\n manualFilters?: boolean;\n /**\n * Configuration operation for each line.\n */\n operations?: Operation[];\n\n i18n?: (f: string) => string;\n}\n\nfunction getOperationCallback(operations: Operation[], onClick: OnClickOperation) {\n return (data: any, action: string) => {\n const operation = operations.find((operation) => operation.action === action || operation.alias === action);\n if (operation) {\n onClick(data, operation);\n }\n };\n}\n\nfunction DefaultLoader() {\n return <div className={\"text-center p-2 pb-4 font-bold\"}>Loading in progress</div>;\n}\n\nfunction DefaultEmptyData() {\n return <div className='text-center p-2 pb-4 font-bold'>No data found</div>;\n}\n\nconst hooks = [useFilters, useGroupBy, useSortBy, usePagination];\n\nexport function Table<Data extends object = any>(props: PropsWithChildren<TableProps<Data>>) {\n const {\n children,\n className = \"\",\n columns,\n data,\n onChange = noop,\n onClick = noop,\n operations = [],\n pageSizes = [10, 25, 50, 100],\n filters: controlledFilters,\n filterId: controlledFilterId,\n pageSize: controlledPageSize,\n pageIndex: controlledPageIndex,\n sortBy: controlledSortBy,\n isLoading,\n disableFilters,\n disablePagination,\n ArrowSort = DefaultArrowSort,\n ColumnFilter = DefaultColumnFilter,\n EmptyData = DefaultEmptyData,\n Loader = DefaultLoader,\n Pagination = DefaultPagination,\n CellHeader = DefaultCellHeader as any,\n CellOperations,\n i18n = (f: string) => f,\n ...ctx\n } = props;\n\n const _onClick = getOperationCallback(operations, onClick);\n\n const defaultColumn = React.useMemo(\n () => ({\n // Let's set up our default Filter UI\n Filter: ColumnFilter,\n ArrowSort\n }),\n [ColumnFilter, ArrowSort]\n ) as any;\n\n const [filterId, setFilterId] = React.useState(controlledFilterId);\n\n const tableInstance = useTable<Data>(\n {\n ...props,\n columns,\n data,\n ctx,\n defaultColumn,\n initialState: {\n ...(props.initialState || {}),\n filters: controlledFilters || [],\n pageIndex: controlledPageIndex || 0,\n pageSize: controlledPageSize || 10,\n sortBy: controlledSortBy || []\n } as any,\n manualPagination: props.manualPagination === undefined ? true : props.manualPagination,\n manualSortBy: props.manualSortBy === undefined ? true : props.manualPagination,\n manualFilters: props.manualFilters === undefined ? true : props.manualFilters,\n disableFilters,\n filterId,\n setFilterId\n } as any,\n ...hooks,\n useOperations({ operations, CellOperations, onClick: _onClick, ctx, i18n })\n );\n\n const {\n setPageSize,\n state: { pageIndex, pageSize, sortBy, filters }\n } = tableInstance;\n\n React.useEffect(() => {\n onChange({\n pageIndex,\n pageSize,\n sortBy,\n filters,\n filterId\n });\n }, [onChange, pageIndex, pageSize, sortBy, filters, filterId]);\n\n // Render the UI for your table\n return (\n <div className={classnames(\"table-group table-responsive\", className)}>\n <table\n className={\"table table-striped table-hover\"}\n {...tableInstance.getTableProps()}\n /* style={{ marginBottom: disablePagination ? \"-1px\" : \"0px\" }} */\n >\n <thead>\n {tableInstance.headerGroups.map((headerGroup, i) => (\n <tr {...headerGroup.getHeaderGroupProps()} key={`tableInstance.headerGroups${i}`}>\n {headerGroup.headers.map((column) => (\n <th\n /* className='text-left py-2 align-top' */\n {...column.getHeaderProps()}\n key={`tableInstance.headers.column.${column.id}`}\n >\n <CellHeader column={column} />\n </th>\n ))}\n </tr>\n ))}\n </thead>\n {!isLoading ? (\n <tbody {...tableInstance.getTableBodyProps()}>\n {tableInstance.page.map((row) => {\n tableInstance.prepareRow(row);\n return (\n <tr onClick={() => _onClick(row.original, \"row\")} {...row.getRowProps()} key={`tableInstance.page.${row.id}`}>\n {row.cells.map((cell, i) => {\n const { hidden, colspan } = cell.column as any;\n if (hidden) {\n return null;\n }\n return (\n <td colSpan={colspan} {...cell.getCellProps()} key={`tableInstance.page.cells.${cell.value || \"value\"}.${i}`}>\n {cell.render(\"Cell\")}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n ) : null}\n </table>\n {isLoading ? <Loader /> : null}\n {!data.length ? <EmptyData /> : null}\n {!isLoading && data.length && !disablePagination ? (\n <div className={\"overflow-hidden\"}>\n <Pagination\n {...tableInstance}\n className={\"text-sm\"}\n pageIndex={pageIndex}\n pageSize={pageSize}\n pageSizes={pageSizes}\n setPageSize={setPageSize}\n i18n={i18n}\n />\n </div>\n ) : null}\n {children}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { useState } from \"react\";\n\nimport { ActionSchema } from \"../../interfaces\";\nimport { iconClass } from \"../../utils/iconClass\";\nimport { Select } from \"../select/select.component\";\nimport { Table, TableProps } from \"../table/table.component\";\n\nexport type ActionsTableProps = Omit<TableProps<ActionSchema>, \"columns\"> & {\n onAddAction?: (actionName: string) => void;\n availableActions?: { label: string; value: string }[];\n};\n\nexport function ActionsTable({\n disableFilters = true,\n disablePagination = true,\n availableActions = [],\n onAddAction = noop,\n ...props\n}: ActionsTableProps) {\n const { i18n = (f: string) => f } = props;\n const [currentAction, setAction] = useState(\"\");\n\n const columns = [\n {\n Header: i18n(\"Actions\"),\n accessor: \"title\",\n id: \"title\"\n }\n ];\n\n return (\n <Table {...props} disableFilters={disableFilters} disablePagination={disablePagination} columns={columns}>\n <div className={\"pagination-group\"}>\n <Select\n name={\"actions\"}\n value={currentAction}\n choices={[{ label: i18n(\"Select an action\"), value: \"\" }].concat(availableActions)}\n onChange={(name: string, action: string) => setAction(action)}\n />\n <div className={\"pl-3\"}>\n <button\n data-testid={\"submit\"}\n disabled={currentAction === \"\"}\n className={\"btn btn-success\"}\n onClick={() => currentAction && onAddAction(currentAction)}\n type={\"submit\"}\n >\n <i className={classnames(iconClass(undefined, \"plus\"), \"mr-1\")} /> {i18n(\"Add action\")}\n </button>\n </div>\n </div>\n </Table>\n );\n}\n","import React from \"react\";\n\nfunction formatError(error: any): any {\n if (typeof error === \"string\") {\n return error;\n }\n\n if (Array.isArray(error)) {\n return error.map(formatError);\n }\n\n if (Object.prototype.hasOwnProperty.call(error, \"errors\")) {\n return Object.keys(error.errors).map((key, index) => {\n const item = error.errors[key];\n return (\n <div key={index}>\n <strong>\n {item.name} ({item.path})\n </strong>{\" \"}\n - {item.message}\n </div>\n );\n });\n }\n\n // If this is a standard error.\n if (Object.prototype.hasOwnProperty.call(error, \"message\")) {\n return error.message;\n }\n\n // If this is a joy validation error.\n if (Object.prototype.hasOwnProperty.call(error, \"name\") && error.name === \"ValidationError\") {\n return error.details.map((item: any, index: number) => {\n return <div key={index}>{item.message}</div>;\n });\n }\n\n // If a conflict error occurs on a form, the form is returned.\n if (Object.prototype.hasOwnProperty.call(error, \"_id\") && Object.prototype.hasOwnProperty.call(error, \"display\")) {\n return \"Another user has saved this form already. Please reload and re-apply your changes.\";\n }\n\n return \"An error occurred. See console logs for details.\";\n}\n\nexport interface AlertProps {\n error?: any | any[];\n type?: string;\n}\n\nexport function Alert({ error, type = \"danger\" }: AlertProps) {\n if (!error || (Array.isArray(error) && !error.length)) {\n return null;\n }\n\n return (\n <div className={`alert alert-${type}`} role='alert'>\n {formatError(error)}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nexport interface CardProps {\n children: React.ReactNode;\n label: string;\n className?: string;\n}\n\nexport function Card({ children, label, className }: PropsWithChildren<CardProps>) {\n return (\n <div className={classnames(\"card\", className)}>\n <div className={\"card-header \"}>\n <h4 className={\"card-title\"}>{label}</h4>\n </div>\n <div className={\"card-body\"} role={\"article\"}>\n {children}\n </div>\n </div>\n );\n}\n","import { ExtendedComponentSchema, Form } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport { useEffect, useRef } from \"react\";\n\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\n\nexport interface ChangedSubmission<T = any> extends Submission<T> {\n changed: {\n component: ExtendedComponentSchema;\n instance: any;\n value: any;\n } & Record<string, any>;\n isValid: boolean;\n}\n\nexport interface FormPageChangeProps<Data = any> {\n page: number;\n submission: Submission<Data>;\n}\n\nexport interface UseFormHookProps<Data = any> extends Record<string, any> {\n src?: string;\n /**\n * url to fetch form\n */\n url?: string;\n /**\n * Raw form object\n */\n form?: Partial<FormSchema>;\n /**\n * Configuration option\n */\n options?: FormOptions;\n /**\n * Data submission\n */\n submission?: Submission<Data>;\n\n /// events\n onPrevPage?: (obj: FormPageChangeProps<Data>) => void;\n onNextPage?: (obj: FormPageChangeProps<Data>) => void;\n onCancel?: Function;\n onChange?: (submission: ChangedSubmission) => void;\n onCustomEvent?: (obj: { type: string; event: string; component: ExtendedComponentSchema; data: any }) => void;\n onComponentChange?: (component: ExtendedComponentSchema) => void;\n onSubmit?: (submission: Submission<Data>) => void;\n onAsyncSubmit?: (submission: Submission<Data>) => Promise<any>;\n onSubmitDone?: (submission: Submission<Data>) => void;\n onFormLoad?: Function;\n onError?: (errors: any) => void;\n onRender?: () => void;\n onAttach?: Function;\n onBuild?: Function;\n onFocus?: Function;\n onBlur?: Function;\n onInitialized?: Function;\n onFormReady?: (formio: any) => void;\n}\n\nfunction useEvent(event: string, callback: any, events: Map<string, any>) {\n useEffect(() => {\n if (callback) {\n events.set(event, callback);\n }\n }, [callback, event, events]);\n}\n\nfunction useEvents(funcs: any) {\n const events = useRef<Map<string, any>>(new Map());\n\n const hasEvent = (event: string) => {\n return funcs.hasOwnProperty(event) && typeof funcs[event] === \"function\";\n };\n\n const emit = (event: string, ...args: any[]) => {\n if (hasEvent(event)) {\n const fn = events.current.has(event) ? events.current.get(event) : funcs[event];\n return fn(...args);\n }\n };\n\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onPrevPage\", funcs[\"onPrevPage\"], events.current);\n useEvent(\"onNextPage\", funcs[\"onNextPage\"], events.current);\n useEvent(\"onCancel\", funcs[\"onCancel\"], events.current);\n useEvent(\"onChange\", funcs[\"onChange\"], events.current);\n useEvent(\"onCustomEvent\", funcs[\"onCustomEvent\"], events.current);\n useEvent(\"onComponentChange\", funcs[\"onComponentChange\"], events.current);\n useEvent(\"onSubmit\", funcs[\"onSubmit\"], events.current);\n useEvent(\"onAsyncSubmit\", funcs[\"onAsyncSubmit\"], events.current);\n useEvent(\"onSubmitDone\", funcs[\"onSubmitDone\"], events.current);\n useEvent(\"onFormLoad\", funcs[\"onFormLoad\"], events.current);\n useEvent(\"onError\", funcs[\"onError\"], events.current);\n useEvent(\"onRender\", funcs[\"onRender\"], events.current);\n useEvent(\"onAttach\", funcs[\"onAttach\"], events.current);\n useEvent(\"onBuild\", funcs[\"onBuild\"], events.current);\n useEvent(\"onFocus\", funcs[\"onFocus\"], events.current);\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onInitialized\", funcs[\"onInitialized\"], events.current);\n\n return { events, emit, hasEvent };\n}\n\nexport function useForm<Data = any>(props: UseFormHookProps<Data>) {\n const { src, form, options = {}, submission, url, ...funcs } = props;\n const element = useRef<any>();\n const isLoaded = useRef<boolean>();\n const instance = useRef<Form>();\n const { emit, hasEvent } = useEvents(funcs);\n\n async function customValidation(submission: Submission, callback: (err: Error | null) => void) {\n if (hasEvent(\"onAsyncSubmit\")) {\n try {\n await emit(\"onAsyncSubmit\", submission, instance.current);\n } catch (err) {\n callback(err?.errors || err);\n }\n } else {\n callback(null);\n }\n }\n\n const createWebForm = (srcOrForm: any, options: any) => {\n options = Object.assign({}, options);\n srcOrForm = typeof srcOrForm === \"string\" ? srcOrForm : cloneDeep(srcOrForm);\n\n if (!instance.current) {\n isLoaded.current = false;\n options.hooks = {\n ...(options.hooks || {}),\n customValidation: options?.hooks?.customValidation || customValidation\n };\n\n instance.current = new Form(element.current, srcOrForm, options);\n\n instance.current.onAny((event: string, ...args: any[]): void => {\n if (!instance.current) {\n return;\n }\n\n if (event.startsWith(\"formio.\")) {\n const eventName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;\n\n if (eventName === \"onChange\" && !args[0].changed) {\n return;\n }\n\n emit(eventName, ...args, instance.current);\n }\n });\n\n instance.current.ready.then((formio: any) => {\n submission && (formio.submission = cloneDeep(submission));\n\n if (props.onFormReady) {\n props.onFormReady(formio);\n }\n\n isLoaded.current = true;\n });\n }\n\n return instance.current;\n };\n\n useEffect(() => {\n if (instance.current) {\n instance.current.ready.then((formio: any) => {\n if (isEqual(formio.submission.data, submission?.data)) {\n return;\n }\n\n submission && (formio.submission = cloneDeep(submission));\n });\n }\n }, [submission]);\n\n useEffect(() => {\n if (form && instance.current) {\n instance.current.ready.then((formio: any) => {\n formio.form = form;\n if (url) {\n formio.url = url;\n }\n });\n }\n }, [form, url]);\n\n useEffect(() => {\n if (src) {\n if (instance.current) {\n isLoaded.current = false;\n (instance.current as any).destroy(true);\n }\n\n createWebForm(src, options);\n }\n }, [src]);\n\n useEffect(() => {\n if (form) {\n createWebForm(form, options);\n }\n\n return () => {\n isLoaded.current = false;\n instance.current && (instance.current as any).destroy(true);\n };\n }, []);\n\n return {\n element\n };\n}\n","import { Components } from \"formiojs\";\nimport AllComponents from \"formiojs/components\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { useForm, UseFormHookProps } from \"./useForm.hook\";\n\nComponents.setComponents(AllComponents);\n\nexport interface FormProps<Data = any> extends UseFormHookProps<Data> {\n name?: string;\n /**\n *\n */\n className?: string;\n}\n\nexport function Form<Data = any>(props: Partial<FormProps<Data>>) {\n const { element } = useForm(props);\n\n return <div data-testid={`formioContainer${props.name || \"\"}`} ref={element} className={props.className} />;\n}\n\nForm.propTypes = {\n name: PropTypes.string,\n className: PropTypes.string,\n /**\n *\n */\n src: PropTypes.string,\n /**\n * url to fetch form\n */\n url: PropTypes.string,\n /**\n * Raw form object\n */\n form: PropTypes.object,\n /**\n * Data submission\n */\n submission: PropTypes.object,\n /**\n * Configuration option\n */\n options: PropTypes.shape({\n readOnly: PropTypes.bool,\n noAlerts: PropTypes.bool,\n i18n: PropTypes.any,\n template: PropTypes.string,\n saveDraft: PropTypes.bool,\n hooks: PropTypes.any\n }),\n onPrevPage: PropTypes.func,\n onNextPage: PropTypes.func,\n onCancel: PropTypes.func,\n onChange: PropTypes.func,\n onCustomEvent: PropTypes.func,\n onComponentChange: PropTypes.func,\n onSubmit: PropTypes.func,\n onAsyncSubmit: PropTypes.func,\n onSubmitDone: PropTypes.func,\n onFormLoad: PropTypes.func,\n onError: PropTypes.func,\n onRender: PropTypes.func,\n onAttach: PropTypes.func,\n onBuild: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onInitialized: PropTypes.func,\n onFormReady: PropTypes.func,\n formioform: PropTypes.any\n};\n","import { ExtendedComponentSchema } from \"formiojs\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\n\nexport function getRoleComponent({ label, key, description, choices, data }: any): ExtendedComponentSchema {\n return {\n label,\n key,\n description,\n type: \"select\",\n labelPosition: \"top\",\n widget: \"choicesjs\",\n placeholder: \"Select roles...\",\n tooltip: \"\",\n multiple: true,\n dataSrc: \"values\",\n defaultValue: \"\",\n data: {\n values: choices\n },\n template: \"<span>{{ item.label }}</span>\",\n searchEnabled: true,\n selectThreshold: 0,\n validate: {\n required: false,\n custom: \"\",\n customPrivate: false\n },\n values: data\n };\n}\n\nfunction toDescription(description: string, hr = true): string {\n return '<span class=\"text-sm\">' + description + \"</span> \" + (hr ? '<hr class=\"mt-6 mb-5 border-gray-200 mx-20\"/>' : \"\");\n}\n\nexport function getSubmissionPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"create_own\",\n label: '<h4 class=\"text-gray-800\">Create Own Submissions</h4>',\n description: toDescription(\n \"The Create Own Submissions permission will allow a user with one of the Roles to create a Submission. Upon creating the Submission, the user will be defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"create_all\",\n label: '<h4 class=\"text-gray-800\">Create All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Create All Submissions permission will allow a user with one of the Roles to create a new Submission and assign ownership of that Submission to another user.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Own Submissions</h4>',\n description: toDescription(\n \"The Read Own Submissions permission will allow a user with one of the Roles to read a Submission. A user can only read a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: '<h4 class=\"text-gray-800\">Read All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read All Submissions permission will allow a user with one of the Roles to read all Submissions regardless of who owns them.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Own Submissions</h4>',\n description: toDescription(\n \"The Update Own Submissions permission will allow a user with one of the Roles to update a Submission. A user can only update a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update All Submissions permission will allow a user with one of the Roles to update a Submission, regardless of who owns the Submission. Additionally with this permission, a user can change the owner of a Submission.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Own Submissions</h4>',\n description: toDescription(\n \"The Delete Own Submissions permission will allow a user with one of the Roles, to delete a Submission. A user can only delete a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete All Submissions permission will allow a user with one of the Roles to delete a Submission, regardless of who owns the Submission.',\n false\n ),\n choices\n })\n ]\n };\n}\n\nexport function getAccessPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Read Own permission will allow a user, with one of the given Roles, to read a form. A user can only read a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: \"<h4>Read Form Definition</h4>\",\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read permission will allow a user, with one of the given Roles, to read the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Update Own permission will allow a user, with one of the given Roles, to update a form. A user can only update a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update permission will allow a user, with one of the given Roles, to read and edit the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Delete Own permission will allow a user, with one of the given Roles, to delete a form. A user can only delete a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete permission will allow a user, with one of the given Roles, to delete the form.',\n false\n ),\n choices\n })\n ]\n };\n}\n","import { ExtendedComponentSchema } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { RoleSchema } from \"../../interfaces/RoleSchema\";\nimport { getAccessPermissionForm, getSubmissionPermissionForm } from \"./formAccess.schema\";\n\nexport interface Choice {\n label: string;\n value: string;\n}\n\nexport interface Access {\n roles: string[];\n type: string;\n}\n\nexport type AccessRoles = Record<string, string[]>;\n\nexport type FormAccessSchema = {\n access: FormSchema;\n submissionAccess: FormSchema;\n};\n\nexport type SubmissionAccess = {\n access: Submission<AccessRoles>;\n submissionAccess: Submission<AccessRoles>;\n};\n\nfunction rolesToChoices(roles: RoleSchema[]): Choice[] {\n return Object.values(roles).map((role) => {\n return {\n label: role.title || \"\",\n value: role._id || \"\"\n };\n });\n}\n\nfunction accessToHash(keys: (string | undefined)[] | undefined, access: Access[] = []): AccessRoles {\n const hash = Object.values(access).reduce((o: any, role: any) => {\n o[role.type] = role.roles;\n return o;\n }, {});\n\n return ((keys || []).filter(Boolean) as any[]).reduce((data, key: string) => {\n return {\n ...data,\n [key]: hash[key] || []\n };\n }, {});\n}\n\nfunction hashToAccess(data: AccessRoles) {\n const accessRoles: any[] = [];\n\n Object.entries(data).forEach(([accessType, roles]) => {\n if (accessType === \"submit\") {\n return;\n }\n accessRoles.push({\n type: accessType,\n roles\n });\n });\n\n return accessRoles;\n}\n\nexport function getFormAccess(roles: RoleSchema[]): FormAccessSchema {\n const choices = rolesToChoices(roles);\n const access = getAccessPermissionForm({ choices });\n const submissionAccess = getSubmissionPermissionForm({ choices });\n\n return {\n access,\n submissionAccess\n };\n}\n\nexport function dataAccessToSubmissions(form: Partial<FormSchema>, formAccess: FormAccessSchema): SubmissionAccess {\n const getKeys = (components: ExtendedComponentSchema[]) => components.map(({ key }) => key);\n\n return {\n access: {\n data: accessToHash(getKeys(formAccess.access.components), form.access)\n },\n submissionAccess: {\n data: accessToHash(getKeys(formAccess.submissionAccess.components), form.submissionAccess)\n }\n };\n}\n\nexport function submissionsToDataAccess(form: Partial<FormSchema>, submissions: SubmissionAccess): Partial<FormSchema> {\n return {\n ...cloneDeep(form),\n access: hashToAccess(submissions.access.data),\n submissionAccess: hashToAccess(submissions.submissionAccess.data)\n };\n}\n\nexport function shouldUpdate(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess) {\n return !isEqual(submission.data, (submissions as any)[type].data);\n}\n\nexport function updateSubmissions(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess, cb: Function = noop) {\n if (shouldUpdate(type, submission, submissions)) {\n submissions = {\n ...submissions,\n [type]: { data: submission.data }\n };\n cb(submissions);\n }\n\n return submissions;\n}\n","import PropTypes from \"prop-types\";\nimport React, { PropsWithChildren, ReactElement, useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\nimport { Card } from \"../card/card.component\";\nimport { Form } from \"../form/form.component\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\nimport {\n AccessRoles,\n dataAccessToSubmissions,\n FormAccessSchema,\n getFormAccess,\n shouldUpdate,\n SubmissionAccess,\n submissionsToDataAccess,\n updateSubmissions\n} from \"./formAccess.utils\";\n\nexport interface FormAccessProps {\n form: Partial<FormSchema>;\n roles: any;\n onSubmit?: Function;\n options?: FormOptions;\n}\n\nfunction useFormAccess({ form: formDefinition, roles, onSubmit, options }: FormAccessProps) {\n // eslint-disable-next-line no-undef\n const form = useMemo(() => getFormAccess(roles), [roles]);\n\n const [submissions, setSubmissions] = useState(() => dataAccessToSubmissions(formDefinition, form));\n\n const onChange = useCallback(\n (type: string, submission: Submission<AccessRoles>) => {\n updateSubmissions(type, submission, submissions, setSubmissions);\n },\n [submissions]\n );\n\n useEffect(() => {\n const input = dataAccessToSubmissions(formDefinition, form);\n if (formDefinition?._id) {\n if (shouldUpdate(\"access\", submissions.access, input) || shouldUpdate(\"submissionAccess\", submissions.submissionAccess, input)) {\n setSubmissions(input);\n }\n }\n }, [formDefinition?._id]);\n\n return {\n options,\n form,\n type: formDefinition.type,\n submissions,\n onChange,\n onSubmit: () => {\n onSubmit && onSubmit(submissionsToDataAccess(formDefinition, submissions));\n }\n };\n}\n\ninterface NamedFormAccessProps {\n name: \"access\" | \"submissionAccess\";\n form: FormAccessSchema;\n submissions: SubmissionAccess;\n options: any;\n onSubmit: any;\n\n onChange(name: \"access\" | \"submissionAccess\", submission: Submission<AccessRoles>): void;\n}\n\nfunction NamedFormAccess({ name, form, submissions, options, onChange, onSubmit, children }: PropsWithChildren<NamedFormAccessProps>) {\n const [isValid, setIsValid] = useState(true);\n\n return (\n <>\n <Form\n name={name}\n form={form[name]}\n submission={submissions[name]}\n onChange={({ data, isValid }: ChangedSubmission<AccessRoles>) => {\n isValid && onChange(name, { data });\n setIsValid(isValid);\n }}\n options={options}\n />\n\n <button disabled={!isValid} className={\"mt-5 btn btn-primary\"} onClick={onSubmit}>\n Save access\n </button>\n\n {children}\n\n <div className={\"alert alert-warning mt-5\"}>\n Elevated permissions allow users to access and modify other user's entities. Assign with caution.\n </div>\n </>\n );\n}\n\nexport function FormAccess(props: PropsWithChildren<FormAccessProps>): ReactElement {\n const { type, form, submissions, options, onChange, onSubmit } = useFormAccess(props);\n\n return (\n <div>\n {props.children}\n <div className={\"flex mb-5\"}>\n <Card label={\"Manage submission access\"} className={\"flex-1\"}>\n <NamedFormAccess\n name={\"submissionAccess\"}\n form={form}\n submissions={submissions}\n onChange={onChange}\n onSubmit={onSubmit}\n options={options}\n >\n {props.children}\n </NamedFormAccess>\n </Card>\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Submission Data Permissions\"}>\n <p>Submission Data Permissions allow you to control who can create, view, and modify form submission data.</p>\n\n <ul className={\"mt-5 pl-7 list-disc\"}>\n <li className={\"pb-2\"}>\n <strong>Own Permissions</strong> - These permissions apply if the user is the original creator of the submission data and is\n listed as the owner of the submission in submission.owner. This allows users to create and edit their own submission data\n without seeing other user's data.\n </li>\n <li>\n <strong>All Permissions</strong> - These permissions apply to all submission data regardless of who owns it.\n </li>\n </ul>\n </Card>\n </div>\n </div>\n <div className={\"flex mb-5\"}>\n <Card label={`Manage ${type} definition access`} className={\"flex-1\"}>\n <NamedFormAccess name={\"access\"} form={form} submissions={submissions} onChange={onChange} onSubmit={onSubmit} options={options}>\n {props.children}\n </NamedFormAccess>\n </Card>\n\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Form Definition Access\"}>\n <p>These permissions allow you to give access to a single form's JSON definition so they can render the form.</p>\n\n <p>Typically you will want to allow all of your roles to be able to Read the form definition.</p>\n\n <p>\n Each form also has an owner at <strong>form.owner</strong> which is the user who created the form. In some applications users\n are allowed to create their own forms. In those cases it is helpful to have Owner based permissions as well.\n </p>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n\nFormAccess.propTypes = {\n type: PropTypes.string.isRequired,\n form: PropTypes.object,\n roles: PropTypes.any,\n children: PropTypes.any,\n options: PropTypes.any,\n onSubmit: PropTypes.func\n};\n","import FormioUtils from \"formiojs/utils\";\nimport React, { PropsWithChildren, ReactElement } from \"react\";\n\nimport { ActionDefaultsSchema, ActionSchema, FormOptions, Submission } from \"../../interfaces\";\nimport { Form } from \"../form/form.component\";\n\nfunction mapData(options: any, defaults: ActionDefaultsSchema): any {\n return {\n ...defaults,\n ...options\n };\n}\n\nfunction mapSettingsForm({ action, ...settingsForm }: any): any {\n FormioUtils.eachComponent(settingsForm.components, (component: any) => {\n const resourceExclude = \"\";\n\n if (component.type === \"resourcefields\") {\n component.type = \"select\";\n component.label = component.title;\n component.dataSrc = \"url\";\n component.data = {\n url: `${component.basePath}?type=resource${resourceExclude}`\n };\n component.valueProperty = \"_id\";\n component.template = \"<span>{{ item.title }}</span>\";\n component.persistent = true;\n }\n });\n\n return settingsForm;\n}\n\nexport interface FormActionProps {\n actionInfo: Partial<ActionSchema>;\n submission?: Partial<Submission>;\n onSubmit?: (submission: Submission<ActionSchema>) => void;\n options: FormOptions;\n}\n\nexport function FormAction({ actionInfo, children, onSubmit, options, ...props }: PropsWithChildren<FormActionProps>): ReactElement {\n const { form, submission } = (() => {\n const submission = mapData(props.submission || {}, actionInfo.defaults!);\n const form = mapSettingsForm(actionInfo.settingsForm);\n\n return { form, submission: { data: submission } };\n })();\n\n return (\n <div>\n {children}\n\n <Form form={form} submission={submission} onSubmit={onSubmit} options={options} />\n\n {children}\n </div>\n );\n}\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { ComponentSchema } from \"formiojs\";\nimport AllComponents from \"formiojs/components\";\nimport Components from \"formiojs/components/Components\";\nimport FormioFormBuilder from \"formiojs/FormBuilder\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport noop from \"lodash/noop\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { callLast } from \"../../utils/callLast\";\n\nComponents.setComponents(AllComponents);\n\nconst EVENTS = [\n \"addComponent\",\n \"updateComponent\",\n \"removeComponent\",\n \"saveComponent\",\n \"cancelComponent\",\n \"moveComponent\",\n \"editComponent\",\n \"editJson\",\n \"copyComponent\",\n \"pasteComponent\"\n];\n\nconst EVENTS_CHANGE = [\"addComponent\", \"saveComponent\", \"updateComponent\", \"removeComponent\"];\n\nasync function createBuilder(el: Element, { components = [], display, options, onChange, events = {} }: any): Promise<void> {\n const form = {\n display,\n components: [...components]\n };\n\n try {\n const builder = await new FormioFormBuilder(el, form, { ...options }).ready;\n\n const handleEvent = (event: string) => {\n return (...args: any[]) => {\n events[event] && events[event](...args);\n\n if (EVENTS_CHANGE.includes(event)) {\n onChange(builder.form.components);\n }\n };\n };\n\n EVENTS.forEach((event) => builder.on(event, callLast(handleEvent(event), 200)));\n\n return builder;\n } catch (er) {\n console.error(er);\n }\n}\n\nexport interface FormBuilderProps {\n components: ComponentSchema[];\n display?: string;\n options?: any;\n builder?: any;\n onChange?: (components: ComponentSchema[]) => void;\n onAddComponent?: Function;\n onUpdateComponent?: Function;\n onRemoveComponent?: Function;\n onSaveComponent?: Function;\n onCancelComponent?: Function;\n onMoveComponent?: Function;\n onEditComponent?: Function;\n onEditJson?: Function;\n onCopyComponent?: Function;\n onPasteComponent?: Function;\n}\n\nexport class FormBuilder extends React.Component<FormBuilderProps, any> {\n static defaultProps = {\n options: {},\n onChange: noop,\n onReady: noop,\n onDestroy: noop\n };\n\n static propTypes = {\n components: PropTypes.array,\n display: PropTypes.string,\n options: PropTypes.object,\n onChange: PropTypes.func,\n onAddComponent: PropTypes.func,\n onUpdateComponent: PropTypes.func,\n onRemoveComponent: PropTypes.func,\n onSaveComponent: PropTypes.func,\n onCancelComponent: PropTypes.func,\n onMoveComponent: PropTypes.func,\n onEditComponent: PropTypes.func,\n onEditJson: PropTypes.func,\n onCopyComponent: PropTypes.func,\n onPasteComponent: PropTypes.func\n };\n\n private elRef: any;\n private builderRef: any;\n\n constructor(props: FormBuilderProps) {\n super(props);\n\n this.state = {\n display: props.display,\n components: cloneDeep(props.components)\n };\n this.elRef = null;\n this.builderRef = null;\n }\n\n async componentDidMount(): Promise<void> {\n await this.create(this.props);\n }\n\n async create(props: FormBuilderProps) {\n const {\n options,\n display,\n components,\n onAddComponent,\n onUpdateComponent,\n onRemoveComponent,\n onSaveComponent,\n onCancelComponent,\n onMoveComponent,\n onEditComponent,\n onEditJson,\n onCopyComponent,\n onPasteComponent\n } = props;\n\n this.builderRef = await createBuilder(this.elRef.firstChild, {\n display,\n options: { ...options },\n components: cloneDeep(components),\n onChange: this.whenComponentsChange.bind(this),\n events: {\n onAddComponent,\n onUpdateComponent,\n onRemoveComponent,\n onSaveComponent,\n onCancelComponent,\n onMoveComponent,\n onEditComponent,\n onEditJson,\n onCopyComponent,\n onPasteComponent\n }\n });\n }\n\n componentWillUnmount(): void {\n this.builderRef?.destroy();\n }\n\n // eslint-disable-next-line react/no-deprecated\n async componentWillReceiveProps(nextProps: FormBuilderProps) {\n if (this.builderRef) {\n if (nextProps.display !== this.state.display) {\n await this.create({\n ...this.props,\n display: nextProps.display\n });\n } else if (nextProps.components !== this.state.components) {\n this.builderRef.form = {\n display: this.state.display,\n components: nextProps.components\n };\n }\n }\n }\n\n whenComponentsChange(components: ComponentSchema[]) {\n this.setState({ components }, () => {\n this.props?.onChange && this.props.onChange(components);\n });\n }\n\n render() {\n return (\n <div\n ref={(ref) => {\n this.elRef = ref;\n }}\n onClick={(e) => e.stopPropagation()}\n >\n <div />\n </div>\n );\n }\n}\n","import { useEffect, useRef } from \"react\";\nimport Tooltip, { Options } from \"tooltip.js\";\n\nexport function useTooltip(options: Options) {\n const ref = useRef<any>();\n\n useEffect(() => {\n ref.current && new Tooltip(ref.current as any, options);\n }, [ref, options]);\n\n return ref;\n}\n","import PropTypes from \"prop-types\";\nimport React, { ReactElement } from \"react\";\n\nimport { useTooltip } from \"../../hooks/useTooltip\";\nimport { FormOptions } from \"../../interfaces\";\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport interface FormEditCTAsProps extends Record<string, unknown> {\n saveText?: string;\n options?: FormOptions;\n hasUndo?: boolean;\n hasRedo?: boolean;\n disabled?: boolean;\n onCopy?: Function;\n onSubmit?: Function;\n onReset?: Function;\n onUndo?: Function;\n onRedo?: Function;\n}\n\nexport function FormEditCTAs({\n saveText = \"Save\",\n disabled,\n options = {},\n onCopy,\n hasUndo,\n hasRedo,\n onUndo,\n onRedo,\n onReset,\n onSubmit\n}: FormEditCTAsProps): ReactElement {\n const { i18n: t = (t: string): string => t } = options;\n\n const copyTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Copy\")\n });\n\n const undoTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Undo last change\")\n });\n\n const redoTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Redo last change\")\n });\n\n const resetTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Reset all changes\")\n });\n\n return (\n <div className={\"form-edit__actions\"}>\n <div>\n <button\n className={`btn btn-primary btn-save flex ${disabled ? \"disabled\" : \"\"}`}\n disabled={disabled}\n onClick={() => !disabled && onSubmit && onSubmit()}\n >\n <i className={`mr-1 ${iconClass(options.iconset, \"save\")}`} />\n {saveText}\n </button>\n\n <div>\n <button className={`btn btn-light btn-undo ${hasUndo ? \"\" : \"disabled\"}`} onClick={() => onUndo && onUndo()} ref={undoTooltipRef}>\n <i className={iconClass(options.iconset, \"undo\")} />\n </button>\n\n <button className={`btn btn-light btn-redo ${hasRedo ? \"\" : \"disabled\"}`} onClick={() => onRedo && onRedo()} ref={redoTooltipRef}>\n <i className={iconClass(options.iconset, \"redo\")} />\n </button>\n </div>\n\n <div>\n {onCopy && (\n <button className='btn btn-light' onClick={() => onCopy()} ref={copyTooltipRef!}>\n <i className={iconClass(options.iconset, \"copy\")} />\n </button>\n )}\n\n <button className={`btn btn-light btn-reset`} onClick={() => onReset && onReset()} ref={resetTooltipRef!}>\n <i className={iconClass(options.iconset, \"reset\")} />\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nFormEditCTAs.propTypes = {\n saveText: PropTypes.string,\n options: PropTypes.object,\n hasUndo: PropTypes.bool,\n hasRedo: PropTypes.bool,\n disabled: PropTypes.bool,\n onCopy: PropTypes.func,\n onSubmit: PropTypes.func,\n onReset: PropTypes.func\n};\n","import Choices from \"@formio/choices.js\";\nimport uniq from \"lodash/uniq\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTagsProps<T = any> extends Omit<FormControlProps, \"description\" | \"prefix\" | \"suffix\"> {\n value?: T;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputTags({ name, value = [], label, onChange, required, description, prefix, suffix, ...props }: InputTagsProps) {\n const ref: any = useRef();\n\n useEffect(() => {\n const instance = new Choices(ref.current, {\n delimiter: \",\",\n editItems: true,\n removeItemButton: true\n });\n\n instance.setValue([].concat(value, []));\n\n instance.passedElement.element.addEventListener(\"addItem\", (event: any) => {\n onChange && onChange(name, uniq(value.concat(event.detail.value)));\n });\n\n instance.passedElement.element.addEventListener(\"removeItem\", (event: any) => {\n onChange &&\n onChange(\n name,\n value.filter((v: string) => v !== event.detail.value)\n );\n });\n\n return () => {\n instance.destroy();\n };\n }, []);\n\n return (\n <FormControl name={name} label={label} required={required} description={description} prefix={prefix} suffix={suffix}>\n <input ref={ref} type='text' {...props} id={name} required={required} />\n </FormControl>\n );\n}\n\nInputTags.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.array,\n required: PropTypes.bool,\n onChange: PropTypes.func\n};\n","import PropTypes from \"prop-types\";\nimport React, { ReactElement } from \"react\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { InputTags } from \"../input-tags/inputTags.component\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Select } from \"../select/select.component\";\n\nexport const defaultDisplayChoices = [\n { label: \"Form\", value: \"form\" },\n { label: \"Wizard\", value: \"wizard\" },\n { label: \"Pdf\", value: \"pdf\" }\n];\n\nexport interface FormParametersProps {\n onChange?: (name: string, value: any) => void;\n form: Partial<FormSchema>;\n typeChoices?: { label: string; value: any }[];\n displayChoices?: { label: string; value: any }[];\n enableTags?: boolean;\n className?: string;\n baseUrl?: string;\n readonly?: Record<string, boolean>;\n}\n\nexport function FormParameters({\n onChange,\n form,\n enableTags = true,\n typeChoices = [],\n displayChoices = defaultDisplayChoices,\n className = \"\",\n readonly = {},\n baseUrl = window.location.origin\n}: FormParametersProps): ReactElement {\n const hasTypeChoices = typeChoices && typeChoices.length > 1;\n\n return (\n <div className={`form-edit__settings ${className}`}>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Title\"}\n placeholder='Enter the form title'\n name={\"title\"}\n required={true}\n value={form.title}\n disabled={!!readonly[\"title\"]}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Name\"}\n placeholder='Enter the form machine name'\n name={\"name\"}\n required={true}\n disabled={!!readonly[\"name\"]}\n value={form.name}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Path\"}\n placeholder='example'\n name={\"path\"}\n className={\"mb-0\"}\n description={\n <span className={\"text-xxs flex items-center\"}>\n <i className={\"bx bx-link ml-1 mr-1\"} />\n {`${baseUrl}/${form.path}`}\n </span>\n }\n required={true}\n value={form.path}\n disabled={!!readonly[\"path\"]}\n style={{ textTransform: \"lowercase\", width: \"120px\" }}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <Select\n label={\"Display as\"}\n name={\"display\"}\n disabled={!!readonly[\"display\"]}\n value={form.display}\n choices={displayChoices}\n onChange={onChange}\n />\n </div>\n {hasTypeChoices && (\n <div className={\"w-1/3\"}>\n <Select label={\"Type\"} name={\"type\"} value={form.type} choices={typeChoices} onChange={onChange} />\n </div>\n )}\n {enableTags && (\n <div className={\"w-1/3\"}>\n <InputTags label={\"Tags\"} name={\"tags\"} value={form.tags} onChange={onChange} />\n </div>\n )}\n </div>\n );\n}\n\nFormParameters.propTypes = {\n onChange: PropTypes.func,\n form: PropTypes.object,\n enableTags: PropTypes.bool,\n typeChoices: PropTypes.array,\n displayChoices: PropTypes.array,\n className: PropTypes.string\n};\n","import camelCase from \"lodash/camelCase\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\n\nimport { FormSchema } from \"../../interfaces\";\n\nexport const hasChanged = (form: Partial<FormSchema>, value: Partial<FormSchema>): boolean => !isEqual(form, value);\n\nexport interface FormEditState {\n past: Partial<FormSchema>[];\n future: Partial<FormSchema>[];\n current: Partial<FormSchema>;\n original: Partial<FormSchema>;\n}\n\nexport function createInitialState(props: any): FormEditState {\n return {\n past: [],\n future: [],\n current: cloneDeep(props.form),\n original: cloneDeep(props.form)\n };\n}\n\nexport const reducer = (state: FormEditState, { type, value }: any): FormEditState => {\n const { past, current, future } = state;\n\n const update = (newValue: any): any => {\n if (newValue.title !== state.current.title && !state.current._id) {\n newValue.name = camelCase(value.title);\n newValue.path = camelCase(value.title).toLowerCase();\n }\n\n return {\n ...state,\n past: [...past, cloneDeep(current)],\n current: newValue\n };\n };\n\n switch (type) {\n case \"undo\":\n if (past.length) {\n const previous = past[past.length - 1];\n const newPast = past.slice(0, past.length - 1);\n\n return {\n ...state,\n past: newPast,\n current: cloneDeep(previous),\n future: [cloneDeep(current), ...future]\n };\n }\n break;\n\n case \"redo\":\n if (future.length) {\n const next = future[0];\n const newFuture = future.slice(1);\n\n return {\n ...state,\n past: [...past, cloneDeep(current)],\n current: cloneDeep(next),\n future: newFuture\n };\n }\n break;\n\n case \"reset\":\n return update(cloneDeep(state.original));\n\n case \"formChange\":\n // eslint-disable-next-line no-case-declarations\n const newValue = { ...state.current, ...value };\n\n if (hasChanged(state.current, newValue)) {\n return update(newValue);\n }\n break;\n\n case \"replaceForm\":\n return {\n ...state,\n past: [],\n future: [],\n current: cloneDeep(value),\n original: cloneDeep(value)\n };\n\n default:\n break;\n }\n\n return state;\n};\n","import cloneDeep from \"lodash/cloneDeep\";\nimport { useEffect, useReducer } from \"react\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { createInitialState, hasChanged, reducer } from \"./formEdit.reducer\";\n\nexport interface UseFormEditHookProps extends Record<string, unknown> {\n form?: Partial<FormSchema>;\n typeChoices?: { label: string; value: any }[];\n displayChoices?: { label: string; value: any }[];\n enableTags?: boolean;\n onSubmit?: (form: Partial<FormSchema>) => void;\n onCopy?: (form: Partial<FormSchema>) => void;\n}\n\nexport function useFormEdit(props: UseFormEditHookProps) {\n const [{ current, future, past }, dispatchFormAction] = useReducer(reducer, createInitialState(props));\n\n const onSubmit = () => {\n if (props.onSubmit && typeof props.onSubmit === \"function\") {\n props.onSubmit(current);\n }\n };\n const onCopy = () => {\n if (props.onSubmit && typeof props.onCopy === \"function\") {\n props.onCopy(current);\n }\n };\n\n useEffect(() => {\n if (props.form && (current._id !== props.form._id || current.modified !== props.form.modified)) {\n dispatchFormAction({ type: \"replaceForm\", value: props.form });\n }\n }, [props.form]);\n\n const formChange = (newForm: Partial<FormSchema>) => {\n if (hasChanged(current, { ...current, ...newForm })) {\n dispatchFormAction({ type: \"formChange\", value: newForm });\n }\n };\n\n const redo = () => dispatchFormAction({ type: \"redo\" });\n const undo = () => dispatchFormAction({ type: \"undo\" });\n const reset = () => dispatchFormAction({ type: \"reset\" });\n\n const setChange = (path: string, value: any) => {\n formChange({ ...current, [path]: value });\n };\n\n return {\n form: cloneDeep(current),\n redo,\n undo,\n reset,\n hasChanged: !!past.length,\n isValid: current.title && current.name && current.path,\n hasUndo: !!past.length,\n hasRedo: !!future.length,\n onSubmit,\n onCopy,\n formChange,\n setChange\n };\n}\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { FormOptions } from \"../../interfaces/FormOptions\";\nimport { FormBuilder } from \"../form-builder/formBuilder.component\";\nimport { FormEditCTAs } from \"./formCtas.component\";\nimport { FormParameters } from \"./formParameters.component\";\nimport { useFormEdit, UseFormEditHookProps } from \"./useFormEdit.hook\";\n\nexport interface FormEditProps extends UseFormEditHookProps {\n builder?: any;\n options?: FormOptions;\n}\n\nexport function FormEdit(props: FormEditProps) {\n const { form, isValid, setChange, hasRedo, hasChanged, hasUndo, redo, undo, reset, onSubmit, onCopy } = useFormEdit(props);\n const { options = {}, builder } = props;\n\n return (\n <div>\n <div className='form-edit'>\n <FormParameters {...props} className={\"\"} key={`form-settings-${form._id}`} form={form} onChange={setChange} />\n <FormEditCTAs\n {...props}\n className={\"\"}\n key={`form-edit-ctas-${form._id}`}\n options={options}\n hasRedo={hasRedo}\n hasUndo={hasUndo}\n disabled={!(isValid && hasChanged)}\n onRedo={redo}\n onUndo={undo}\n onReset={reset}\n onCopy={onCopy}\n onSubmit={onSubmit}\n />\n </div>\n\n <FormBuilder\n key={`form-builder-${form._id}`}\n components={form.components!}\n display={form.display}\n options={options}\n builder={builder}\n onChange={(components) => {\n setChange(\"components\", components);\n }}\n />\n </div>\n );\n}\n\nFormEdit.propTypes = {\n form: PropTypes.object.isRequired,\n options: PropTypes.object,\n typeChoices: PropTypes.array,\n displayChoices: PropTypes.array,\n enableTags: PropTypes.bool,\n onSubmit: PropTypes.func\n};\n","import { FormSchema } from \"../../interfaces\";\n\nexport function getFormSettingsSchema(): FormSchema {\n return {\n type: \"form\",\n tags: [],\n components: [\n {\n input: true,\n key: \"action\",\n placeholder: \"Enter the custom submission URL\",\n label: \"Custom Action Url\",\n labelPosition: \"top\",\n widget: { type: \"input\" },\n type: \"url\",\n mask: false,\n inputType: \"url\",\n inputFormat: \"plain\",\n spellcheck: true,\n id: \"efyrzea\",\n attributes: {\n \"data-testid\": \"action\"\n }\n },\n {\n input: true,\n key: \"tags\",\n placeholder: \"Add tags\",\n label: \"Form tags\",\n widget: { type: \"input\" },\n type: \"tags\",\n delimeter: \",\",\n storeas: \"array\",\n maxTags: 0,\n id: \"erxcyw\"\n },\n {\n input: true,\n key: \"properties\",\n label: \"Custom Properties\",\n labelPosition: \"top\",\n type: \"datamap\",\n addAnother: \"Add Another\",\n disableAddingRemovingRows: false,\n keyBeforeValue: true,\n valueComponent: {\n type: \"textfield\",\n key: \"value\",\n label: \"Value\",\n input: true,\n hideLabel: true\n },\n id: \"ezne35\"\n }\n ],\n display: \"form\"\n };\n}\n","import cloneDeep from \"lodash/cloneDeep\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\n\nexport type FormSettingsSchema = {\n action: string;\n tags: string[];\n properties: Record<string, any>;\n};\n\nexport function formSettingsToSubmission(form: Partial<FormSchema>): Submission<FormSettingsSchema> {\n return {\n data: {\n action: form.action!,\n tags: form.tags!,\n properties: form.properties!\n }\n };\n}\n\nexport function submissionToFormSettings(form: Partial<FormSchema>, submission: Submission<FormSettingsSchema>): Partial<FormSchema> {\n return {\n ...cloneDeep(form),\n tags: submission.data.tags,\n action: submission.data.action,\n properties: submission.data.properties\n };\n}\n","import isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\nimport React, { useEffect, useState } from \"react\";\n\nimport { FormOptions, FormSchema } from \"../../interfaces\";\nimport { Form } from \"../form/form.component\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\nimport { getFormSettingsSchema } from \"./formSettings.schema\";\nimport { FormSettingsSchema, formSettingsToSubmission, submissionToFormSettings } from \"./formSettings.utils\";\n\nexport interface FormSettingsProps {\n form: Partial<FormSchema>;\n onSubmit?: Function;\n options?: FormOptions;\n}\n\nfunction useFormSettings({ form: formDefinition, onSubmit = noop, options }: FormSettingsProps) {\n const form = getFormSettingsSchema();\n const [isValid, setIsValid] = useState(true);\n const [submission, setSubmission] = useState(() => formSettingsToSubmission(formDefinition));\n\n const onChange = ({ data, isValid }: ChangedSubmission<FormSettingsSchema>) => {\n if (isValid) {\n setSubmission({ data });\n }\n setIsValid(isValid);\n };\n\n useEffect(() => {\n const input = formSettingsToSubmission(formDefinition);\n if (formDefinition?._id && !isEqual(submission.data, input.data)) {\n setSubmission(input);\n }\n }, [formDefinition?._id]);\n\n return {\n options,\n form,\n type: formDefinition.type,\n submission,\n onChange,\n isValid,\n setIsValid,\n onSubmit: () => {\n onSubmit(submissionToFormSettings(formDefinition, submission));\n }\n };\n}\n\nexport function FormSettings(props: FormSettingsProps) {\n const { form, submission, options = {}, onChange, onSubmit, isValid } = useFormSettings(props);\n\n const i18n = options.i18n || ((f: string) => f);\n\n return (\n <div>\n <Form form={form} submission={submission} onChange={onChange} options={options} />\n\n <button data-testid='submit' disabled={!isValid} className={\"mt-5 btn btn-primary\"} onClick={onSubmit} type={\"submit\"}>\n {i18n(\"Save settings\")}\n </button>\n </div>\n );\n}\n","import React from \"react\";\nimport { FilterProps } from \"react-table\";\n\nimport { Select } from \"../../select/select.component\";\n\nexport function SelectColumnFilter<D extends Record<string, unknown> = {}>({ column }: FilterProps<D>) {\n const { id, preFilteredRows, filterValue, setFilter } = column;\n const { choices: customChoices } = column as any;\n\n const choices =\n customChoices ||\n [...new Set(preFilteredRows.map((row) => row.values[id]))].filter((value) => value).map((value) => ({ label: value, value }));\n\n return (\n <Select\n key={`filter-${column.id}`}\n name={`filter-${column.id}`}\n size={\"sm\"}\n value={filterValue}\n choices={[{ value: \"\", label: \"All\" }].concat(choices)}\n onChange={(name, value) => {\n setFilter(value || undefined);\n }}\n />\n );\n}\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function 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.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function 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\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function 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\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function 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\n function 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\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function 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\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (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\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function 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.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function 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\n function 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\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function 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\n function 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\n var deprecations = {};\n\n function 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\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function 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\n function 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\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (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\n var 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\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function 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\n var 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 }\n function 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\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function 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\n function 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\n function 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\n var 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\n function 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\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var 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\n function 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\n function 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\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function 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\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function 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\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function 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\n function 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\n function 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\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function 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\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function 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\n function 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\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function 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\n function 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\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var 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 function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (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\n function 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\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['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\n var 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\n function 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\n function 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\n function 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\n function 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\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function 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\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function 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\n function 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\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\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\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var 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\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function 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\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['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\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function 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\n function 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\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function 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\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('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 });\n addParseToken('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 });\n addParseToken('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 });\n addParseToken('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\n function 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\n var 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\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var 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\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function 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\n function 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\n function 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\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function 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.\n function 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\n function 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\n function 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\n function 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\n function listLocales() {\n return keys(locales);\n }\n\n function 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)\n var 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n hooks.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.\n function 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\n function 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]\n function 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\n function 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\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var 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.\n function 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?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function 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\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function 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\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function 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\n function 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\n function 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\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['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']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function 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.\n function 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\n function 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.\n hooks.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.\n function 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\n function 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\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function 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\n function 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\n function 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\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function 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\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var 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\n function 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\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function 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\n function 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\n function 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\n function 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\n function 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\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function clone() {\n return new Moment(this);\n }\n\n function 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\n function 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\n function 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\n function 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\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function 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\n function 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\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function 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 */\n function 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\n function 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\n function 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\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function 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\n function 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.\n function 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\n var 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\n function localeData() {\n return this._locale;\n }\n\n var 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):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function 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\n function 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\n function 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\n function 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\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function 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\n function 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\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function 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\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\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\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function 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\n function 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\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function 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\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('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\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function 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\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function 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)\n function 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\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('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\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function 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\n function 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)\n function 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)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function 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\n function 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\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var 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\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var 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\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var 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\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function 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\n function 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\n function 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\n function 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\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function 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\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.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\n return hooks;\n\n})));\n","import classnames from \"classnames\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { CellProps } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport function FormsCell(props: CellProps<FormSchema> & { icon: string; i18n: (f: string) => string }) {\n const {\n icon = \"server\",\n row: { original: form }\n } = props;\n\n return (\n <div className={\"p-1\"}>\n <h4 className={\"text-primary text-lg flex items-center\"}>\n <i className={classnames(iconClass(undefined, icon), \"mr-1\")} />\n {form.title}\n </h4>\n\n <ul className='reset-list text-gray-500'>\n <li className={\"text-sm\"}>Name: {form.name || form.machineName}</li>\n <li className='mt-5'>\n <span className='badge bg-light mr-1'>\n <i className={classnames(iconClass(undefined, \"history\"), \"mr-1\")} />\n <span>Updated {moment(form.modified).fromNow()}</span>\n </span>\n\n {(form.tags || []).map((tag, index) => (\n <button\n key={index}\n className='badge badge-hover bg-secondary mr-1'\n onClick={stopPropagationWrapper(() => {\n props.setFilter(\"tags\", tag);\n props.gotoPage(0);\n })}\n >\n <i className={classnames(iconClass(undefined, \"tags\"), \"mr-1\")} />\n {tag}\n </button>\n ))}\n </li>\n </ul>\n </div>\n );\n}\n","import React from \"react\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { DefaultColumnFilter } from \"../table/filters/defaultColumnFilter.component\";\nimport { SelectColumnFilter } from \"../table/filters/selectColumnFilter.component\";\nimport { Table, TableProps } from \"../table/table.component\";\nimport { FormsCell as DefaultFormCell } from \"./components/formCell.component\";\n\nexport type FormsTableProps = Omit<TableProps<FormSchema>, \"columns\"> & {\n icon?: string;\n tags?: { label: string; value: string }[];\n};\n\nexport function FormsTable({ Cell, ...props }: FormsTableProps) {\n const { i18n = (f: string) => f, tags } = props;\n const FormCell = Cell || (DefaultFormCell as any);\n const columns = [\n {\n Header: i18n(\"Title\"),\n accessor: \"title\",\n id: \"title\",\n Cell: (props: any) => <FormCell {...props} icon={props.icon} i18n={i18n} />,\n Filter: DefaultColumnFilter,\n colspan: 2\n },\n {\n Header: i18n(\"Tags\"),\n accessor: \"tags\",\n id: \"tags\",\n hidden: true,\n Filter: (props: any) =>\n tags && tags.length ? (\n <SelectColumnFilter {...props} column={{ ...props.columns, choices: tags }} />\n ) : (\n <DefaultColumnFilter {...props} />\n )\n }\n ];\n\n return <Table {...props} columns={columns} />;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport interface LoaderProps {\n isActive?: boolean;\n color?: string;\n icon?: string;\n className?: string;\n}\n\nexport function Loader({ isActive, color = \"blue\", icon = \"radio-circle\", className = \"\" }: PropsWithChildren<LoaderProps>) {\n if (isActive) {\n return (\n <div\n className={classnames(\n \"opacity-85 z-20 flex items-center justify-center p-5 absolute top-0 right-0 left-0 bottom-0 bg-white\",\n className\n )}\n >\n <span data-testid={`icon_${icon}`} color={color} className={`text-11xl ${iconClass(undefined, icon, true)}`} />\n </div>\n );\n }\n return null;\n}\n\nLoader.propTypes = {\n isActive: PropTypes.bool,\n icon: PropTypes.string,\n color: PropTypes.string,\n className: PropTypes.string\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport noop from \"lodash\";\nimport React, { PropsWithChildren, useEffect, useRef, useState } from \"react\";\n\nexport function useModal() {\n const [show, setShowModal] = useState(false);\n\n return {\n show,\n setShowModal,\n openModal() {\n setShowModal(true);\n },\n closeModal() {\n setShowModal(false);\n }\n };\n}\n\nexport interface ModalProps extends Record<string, any> {\n show?: boolean;\n closeModal?: () => void;\n onClose?: () => void;\n footer?: any;\n title?: string;\n}\n\nexport function Modal({\n show,\n children,\n closeModal = noop as any,\n onClose = noop as any,\n title,\n footer: ModalFooter,\n style,\n className = \"\",\n ...props\n}: PropsWithChildren<ModalProps>) {\n const titleRef: any = useRef<HTMLDivElement>();\n const footerRef: any = useRef<HTMLDivElement>();\n const [maxHeight, setMaxHeight] = useState<string>();\n\n const onClickClose = () => {\n closeModal();\n onClose();\n };\n\n useEffect(() => {\n if (titleRef.current || footerRef.current) {\n const height = (titleRef?.current?.offsetHeight || 0) + (footerRef?.current?.offsetHeight || 0);\n\n setMaxHeight(`calc(85vh - ${height}px)`);\n } else {\n setMaxHeight(\"auto\");\n }\n }, [show]);\n\n if (!show) {\n return null;\n }\n\n return (\n <div role={\"dialog\"} className={`formio-dialog formio-dialog-theme-default ${className}`}>\n <div className='formio-dialog-overlay' onClick={onClickClose} />\n <div style={style} className={\"formio-dialog-content\"}>\n <div className={\"formio-dialog-wrapper\"}>\n {title ? (\n <div className={\"formio-dialog-title\"} ref={titleRef} data-testid={\"modalTitle\"}>\n {title}\n </div>\n ) : null}\n\n <div className='formio-dialog-body' style={{ maxHeight }} data-testid={\"modalBody\"}>\n {show && children}\n </div>\n\n {ModalFooter ? (\n <div className={\"formio-dialog-footer\"} ref={footerRef} data-testid={\"modalFooter\"}>\n <ModalFooter {...props} closeModal={closeModal} onClose={onClickClose} />\n </div>\n ) : null}\n </div>\n <button\n className='formio-dialog-close float-right btn btn-secondary btn-sm'\n aria-label='close'\n data-testid={\"closeModal\"}\n onClick={onClickClose}\n />\n </div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { PropsWithChildren, useState } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Modal, ModalProps } from \"./modal.component\";\n\nfunction RemoveModalFooter({ value, valueToCompare, onSubmit, onClose, i18n = (f: string) => f }: ModalProps) {\n return (\n <div className={\"flex items-center justify-center bg-white p-2\"}>\n <button data-testid='customCloseModal' className={\"btn btn-outline-dark mx-2\"} onClick={onClose}>\n {i18n(\"Cancel\")}\n </button>\n <button\n disabled={valueToCompare !== value}\n data-testid='customSubmitModal'\n className={\"btn btn-danger mx-2\"}\n onClick={(e) => {\n if (valueToCompare === value) {\n onSubmit(e);\n }\n }}\n >\n <i className={classnames(iconClass(undefined, \"trash\"), \"mr-2\")} />\n {i18n(\"Remove\")}\n </button>\n </div>\n );\n}\n\nexport interface RemoveModalProps extends ModalProps {\n valueToCompare: string;\n itemType?: string;\n i18n?: (f: string) => string;\n maxWidth?: string;\n}\n\nexport function RemoveModal({ maxWidth = \"300px\", children, ...props }: PropsWithChildren<RemoveModalProps>) {\n const { i18n = noop } = props;\n const [value, setValue] = useState();\n\n return (\n <Modal\n {...props}\n className={classnames(props.className, \"formio-dialog-theme-remove\")}\n style={{ maxWidth }}\n title={`Drop ${props.itemType?.toLowerCase()}`}\n value={value}\n footer={RemoveModalFooter}\n >\n <div className={\"px-4 pt-3 pb-5\"}>\n <div className={\"pb-1\"}>\n {children}\n {i18n(\"To drop\")} <strong>{props.valueToCompare}</strong>, \n {i18n(\"type the\")} \n <strong>"{props.itemType?.toLowerCase()}"</strong> \n {i18n(\"name\")} <strong>"{props.valueToCompare}"</strong>.\n </div>\n <InputText name='remove' value={value} onChange={(name, value) => setValue(value)} />\n </div>\n </Modal>\n );\n}\n","import { Components, ComponentSchema } from \"formiojs\";\nimport ReactDOM from \"react-dom\";\n\nimport { Submission } from \"../../interfaces/Submission\";\n\nexport class ReactComponent<Data = any> extends Components.components.field {\n public reactInstance: any;\n public shouldSetValue?: boolean;\n private dataForSetting?: Data;\n\n /**\n * This is the first phase of component building where the component is instantiated.\n *\n * @param component - The component definition created from the settings form.\n * @param options - Any options passed into the renderer.\n * @param data - The submission data where this component's data exists.\n */\n // eslint-disable-next-line no-useless-constructor,import/no-anonymous-default-export\n constructor(component: ComponentSchema, options: any, data: Submission<Data>) {\n super(component, options, data);\n }\n\n get $reactNode() {\n return (this.refs as any)[`react-${this.id}`];\n }\n\n /**\n * This method is called any time the component needs to be rebuilt. It is most frequently used to listen to other\n * components using the this.on() function.\n */\n init() {\n return super.init();\n }\n\n /**\n * This method is called before the component is going to be destroyed, which is when the component instance is\n * destroyed. This is different from detach which is when the component instance still exists but the dom instance is\n * removed.\n */\n destroy() {\n return super.destroy();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n\n /**\n * The third phase of component building where the component has been attached to the DOM as 'element' and is ready\n * to have its javascript events attached.\n *\n * @param element\n * @returns {Promise<void>} - Return a promise that resolves when the attach is complete.\n */\n async attach(element: any) {\n super.attach(element);\n\n // The loadRefs function will find all dom elements that have the \"ref\" setting that match the object property.\n // It can load a single element or multiple elements with the same ref.\n this.loadRefs(element, {\n [`react-${this.id}`]: \"single\"\n });\n\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.reactInstance = this.attachReact(this.refs[`react-${this.id}`]);\n\n if (this.shouldSetValue) {\n this.setValue(this.dataForSetting);\n this.updateValue(this.dataForSetting);\n }\n }\n }\n\n /**\n * The fourth phase of component building where the component is being removed from the page. This could be a redraw\n * or it is being removed from the form.\n */\n detach() {\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.detachReact(this.refs[`react-${this.id}`]);\n }\n super.detach();\n }\n\n /**\n * Override this function to render a react component.\n */\n renderReact(): any {\n return null;\n }\n\n /**\n * Override this function to insert your custom component.\n *\n * @param element\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n attachReact(element?: any) {\n // eslint-disable-next-line react/no-render-return-value\n return ReactDOM.render(this.renderReact(), element);\n }\n\n /**\n * Override this function.\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n detachReact(element?: any) {\n if (element) {\n ReactDOM.unmountComponentAtNode(element);\n }\n }\n\n /**\n * Something external has set a value and our component needs to be updated to reflect that. For example, loading a submission.\n *\n * @param value\n * @param flags\n */\n setValue(value: any, flags?: any) {\n if (this.reactInstance) {\n this.reactInstance.setState({\n value: value\n });\n this.shouldSetValue = false;\n } else {\n this.shouldSetValue = true;\n this.dataForSetting = value;\n }\n\n return false;\n }\n\n /**\n * The user has changed the value in the component and the value needs to be updated on the main submission object and other components notified of a change event.\n *\n * @param value\n * @param flags\n */\n updateValue = (value?: Data, flags?: Record<string, any>) => {\n flags = flags || {};\n\n const newValue = value === undefined || value === null ? this.getValue() : value;\n\n const changed = newValue !== undefined ? this.hasChanged(newValue, this.dataValue) : false;\n\n this.dataValue = Array.isArray(newValue) ? [...newValue] : newValue;\n\n this.updateOnChange(flags, changed);\n return changed;\n };\n\n /**\n * Get the current value of the component. Should return the value set in the react component.\n *\n * @returns {*}\n */\n getValue(): Data {\n if (this.reactInstance) {\n return this.reactInstance.state.value;\n }\n return this.defaultValue;\n }\n\n /**\n * Override normal validation check to insert custom validation in react component.\n *\n * @param data\n * @param dirty\n * @param rowData\n * @returns {boolean}\n */\n checkValidity(data: Data, dirty: boolean, rowData: any) {\n const valid = super.checkValidity(data, dirty, rowData);\n\n if (!valid) {\n return false;\n }\n\n return this.validate(data, dirty, rowData);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate(data: Data, dirty: boolean, rowData: any) {\n return true;\n }\n}\n","import React from \"react\";\n\nexport function DefaultCell({ value, render = (f: any) => f }: any): JSX.Element {\n if (value === undefined) {\n return <span></span>;\n }\n\n const rendered = render(value);\n\n if (value !== rendered) {\n return <div dangerouslySetInnerHTML={{ __html: rendered }} />;\n }\n\n return <span>{String(value)}</span>;\n}\n","import { Components, ExtendedComponentSchema } from \"formiojs\";\nimport FormioUtils from \"formiojs/utils\";\nimport React from \"react\";\nimport { Column } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { DefaultCell } from \"../components/defaultCell.component\";\nimport { SelectColumnFilter } from \"../filters/selectColumnFilter.component\";\n\nexport function mapFormToColumns(form: FormSchema): Column[] {\n const columns: Column[] = [];\n\n FormioUtils.eachComponent(form.components, (component: ExtendedComponentSchema) => {\n if (component.tableView && component.key) {\n const cmp: any = Components.create(component, {}, null, true);\n\n const column: Column = {\n Header: component.label || component.title || component.key,\n accessor: `data.${component.key}`,\n Cell: (props: any) => <DefaultCell {...props} render={(value: any) => cmp.asString(value)} />\n };\n\n if (component.type === \"select\" && component.dataSrc === \"values\") {\n column.Filter = SelectColumnFilter;\n (column as any).choices = component.data.values;\n }\n\n columns.push(column);\n }\n });\n\n return columns;\n}\n","import React from \"react\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { Table, TableProps } from \"../table/table.component\";\nimport { mapFormToColumns } from \"../table/utils/mapFormToColumns\";\n\nexport type SubmissionsTableProps = Omit<TableProps<Submission>, \"columns\"> & {\n form?: FormSchema;\n};\n\nexport function SubmissionsTable({ form, ...props }: SubmissionsTableProps) {\n const columns: any[] | undefined = form && mapFormToColumns(form);\n\n return <Table {...props} columns={columns!} />;\n}\n","import React from \"react\";\nimport { FilterProps } from \"react-table\";\n\nexport function SliderColumnFilter<D extends Record<string, unknown> = {}>({\n column: { filterValue, setFilter, preFilteredRows, id }\n}: FilterProps<D>) {\n const [min, max] = React.useMemo(() => {\n let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n preFilteredRows.forEach((row) => {\n min = Math.min(row?.values[id], min);\n max = Math.max(row?.values[id], max);\n });\n return [min, max];\n }, [id, preFilteredRows]);\n\n return (\n <>\n <input\n type='range'\n min={min}\n max={max}\n value={filterValue || min}\n onChange={(e) => {\n setFilter(parseInt(e.target.value, 10));\n }}\n />\n <button onClick={() => setFilter(undefined)}>Off</button>\n </>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport function ButtonTab({ icon, back, onClick, isActive, reverse, children, className, after }: PropsWithChildren<any>) {\n return (\n <div\n title={\"button-wrapper\"}\n className={classnames(\"tw-tabs__button-wrapper\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\", className)}\n >\n <button\n title={\"button-tab\"}\n className={classnames(\"tw-tabs__button\", reverse ? \"-reverse\" : \"\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\")}\n onClick={onClick}\n >\n {icon && <i className={classnames(iconClass(undefined, icon), \"tw-tabs__button-icon\")} />}\n <span className={\"tw-tabs__button-label\"}>{children}</span>\n {after}\n </button>\n <div className={classnames(\"tw-tabs__button-border\", isActive ? \"-active\" : \"\")} />\n </div>\n );\n}\n\nexport interface TabsItemProps extends Record<string, any> {\n label?: string;\n icon?: string;\n}\n\nexport interface TabsProps extends Record<string, any> {\n headerChildren?: any;\n AddButton?: any;\n current?: TabsItemProps;\n items?: TabsItemProps[];\n style?: any;\n className?: string;\n reverse?: boolean;\n Button?: any;\n onClick?: (item: TabsItemProps) => void;\n i18n?: (f: string) => string;\n}\n\nexport function Tabs({\n style,\n current,\n items = [],\n children,\n HeaderChildren,\n AddButton,\n Button = ButtonTab,\n className,\n onClick,\n i18n = (f) => f,\n ...additionalProps\n}: PropsWithChildren<TabsProps>) {\n return (\n <div data-testid={\"tabs-comp\"} className={`tw-tabs ${className}`} style={style}>\n <div>\n <nav className='tw-tabs__header'>\n <div className='tw-tabs__header-wrapper'>\n <div className='tw-tabs__header-border' />\n {items\n .filter((item) => item.label || item.icon)\n .map((item, index) => {\n return (\n <Button\n key={index}\n back={item.back}\n isActive={current?.action === item.action}\n exact={item.exact}\n onClick={() => {\n onClick && onClick(item);\n }}\n {...additionalProps}\n {...item}\n >\n {i18n(item.label || \"\")}\n </Button>\n );\n })}\n {AddButton && <AddButton {...additionalProps} current={current} />}\n </div>\n </nav>\n {HeaderChildren && <HeaderChildren {...additionalProps} current={current} />}\n </div>\n <div title={\"tab-body\"} className={\"tw-tabs__body\"}>\n {children}\n </div>\n </div>\n );\n}\n","export function mapPagination({ skip, limit, serverCount, length }: any = {}): any {\n skip = skip || 0;\n limit = limit || 10;\n serverCount = serverCount || length;\n\n return {\n pageIndex: Math.floor(skip / limit),\n pageSize: limit,\n pageCount: Math.ceil(serverCount / limit)\n };\n}\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","key","call","join","module","exports","default","window","iconClass","iconset","name","spinning","Templates","current","defaultIconset","getEventValue","event","target","multiple","selectedOptions","from","option","value","type","checked","FormControl","children","required","prefix","suffix","description","label","className","classnames","propTypes","PropTypes","string","isRequired","any","bool","Select","size","onChange","choices","placeholder","layout","props","ref","useRef","useEffect","instance","Choices","removeItemButton","placeholderValue","destroy","map","String","func","array","LEFT_PAGE","RIGHT_PAGE","range","to","step","getPageNumbers","currentPage","pageNeighbours","totalPages","totalNumbers","totalBlocks","calculatedStartPage","Math","max","calculatedEndPage","min","startPage","endPage","pages","hasLeftSpill","hasRightSpill","spillOffset","extraPages","PaginationButton","component","Component","disabled","active","otherProps","Pagination","pageSizes","gotoPage","canPreviousPage","previousPage","nextPage","canNextPage","pageCount","pageIndex","pageOptions","pageSize","setPageSize","i18n","f","pageNumbers","page","includes","DefaultArrowSort","column","isSorted","isSortedDesc","undefined","DefaultCellHeader","getSortByToggleProps","render","canFilter","callLast","fn","time","last","args","clearTimeout","setTimeout","InputText","localValue","setValue","useState","change","useMemo","DefaultColumnFilter","filterId","setFilterId","id","filterValue","setFilter","useCallback","stopPropagationWrapper","stopPropagation","DefaultOperationButton","buttonSize","buttonType","buttonOutline","onClick","action","icon","title","filter","Boolean","DefaultCellOperations","operations","row","ctx","data","original","permissionsResolver","OperationButton","operation","useOperations","CellOperations","hooks","visibleColumns","columns","groupByBoundary","Header","Cell","getOperationCallback","find","alias","DefaultLoader","DefaultEmptyData","useFilters","useGroupBy","useSortBy","usePagination","Table","noop","filters","controlledFilters","controlledFilterId","controlledPageSize","controlledPageIndex","sortBy","controlledSortBy","isLoading","disableFilters","disablePagination","ArrowSort","ColumnFilter","EmptyData","Loader","DefaultPagination","CellHeader","_onClick","defaultColumn","React","Filter","tableInstance","useTable","initialState","manualPagination","manualSortBy","manualFilters","state","getTableProps","headerGroups","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getTableBodyProps","prepareRow","getRowProps","cells","cell","hidden","colspan","getCellProps","ActionsTable","availableActions","onAddAction","currentAction","setAction","accessor","concat","formatError","error","Object","prototype","keys","errors","index","item","path","message","details","Alert","Card","useEvent","callback","events","set","useEvents","funcs","Map","hasEvent","emit","has","get","useForm","src","form","options","submission","url","element","isLoaded","customValidation","err","createWebForm","srcOrForm","assign","cloneDeep","Form","onAny","startsWith","eventName","charAt","toUpperCase","slice","changed","ready","then","formio","onFormReady","isEqual","Components","setComponents","AllComponents","object","shape","readOnly","noAlerts","template","saveDraft","onPrevPage","onNextPage","onCancel","onCustomEvent","onComponentChange","onSubmit","onAsyncSubmit","onSubmitDone","onFormLoad","onError","onRender","onAttach","onBuild","onFocus","onBlur","onInitialized","formioform","getRoleComponent","labelPosition","widget","tooltip","dataSrc","defaultValue","values","searchEnabled","selectThreshold","validate","custom","customPrivate","toDescription","hr","getSubmissionPermissionForm","components","getAccessPermissionForm","rolesToChoices","roles","role","_id","accessToHash","access","hash","reduce","o","hashToAccess","accessRoles","entries","forEach","accessType","getFormAccess","submissionAccess","dataAccessToSubmissions","formAccess","getKeys","submissionsToDataAccess","submissions","shouldUpdate","updateSubmissions","cb","useFormAccess","formDefinition","setSubmissions","input","NamedFormAccess","isValid","setIsValid","FormAccess","mapData","defaults","mapSettingsForm","settingsForm","FormioUtils","eachComponent","resourceExclude","basePath","valueProperty","persistent","FormAction","actionInfo","EVENTS","EVENTS_CHANGE","createBuilder","el","display","builder","FormioFormBuilder","handleEvent","on","er","console","FormBuilder","constructor","elRef","builderRef","componentDidMount","create","onAddComponent","onUpdateComponent","onRemoveComponent","onSaveComponent","onCancelComponent","onMoveComponent","onEditComponent","onEditJson","onCopyComponent","onPasteComponent","firstChild","whenComponentsChange","bind","componentWillUnmount","componentWillReceiveProps","nextProps","setState","e","defaultProps","onReady","onDestroy","useTooltip","Tooltip","FormEditCTAs","saveText","onCopy","hasUndo","hasRedo","onUndo","onRedo","onReset","t","copyTooltipRef","trigger","placement","undoTooltipRef","redoTooltipRef","resetTooltipRef","InputTags","delimiter","editItems","passedElement","addEventListener","uniq","detail","v","defaultDisplayChoices","FormParameters","enableTags","typeChoices","displayChoices","readonly","baseUrl","location","origin","hasTypeChoices","textTransform","width","tags","hasChanged","createInitialState","past","future","reducer","update","newValue","camelCase","toLowerCase","previous","newPast","next","newFuture","useFormEdit","dispatchFormAction","useReducer","modified","formChange","newForm","redo","undo","reset","setChange","FormEdit","getFormSettingsSchema","mask","inputType","inputFormat","spellcheck","attributes","delimeter","storeas","maxTags","addAnother","disableAddingRemovingRows","keyBeforeValue","valueComponent","hideLabel","formSettingsToSubmission","properties","submissionToFormSettings","useFormSettings","setSubmission","FormSettings","SelectColumnFilter","preFilteredRows","customChoices","Set","global","factory","this","hookCallback","setHookCallback","toString","isObject","hasOwnProp","a","b","isObjectEmpty","obj","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","arr","res","arrLen","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","some","fun","len","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","momentProperties","updateInProgress","copyConfig","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","Error","stack","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","abs","zerosToFill","sign","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","localeData","removeFormattingTokens","match","replace","makeFormatFunction","formatMoment","invalidDate","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","s","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","n","x","indexOf","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","parseTwoDigitYear","parseInt","daysInYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","hours","kFormat","minutes","seconds","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","_abbr","require","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","exec","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","_useUTC","c","currentDateArray","nowValue","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","invalid","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","property","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","defaultFormat","defaultFormatUtc","toISOString","keepOffset","toDate","inspect","zone","datetime","inputString","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","eraYearOrdinalParse","localeEras","eras","_eras","since","until","Infinity","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","abbrPieces","namePieces","narrowPieces","isoWeekYear","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseZone","isDST","zoneAbbr","zoneName","dates","isDSTShifted","createUnix","createInZone","preParsePostFormat","proto$1","firstDayOfYear","firstDayOfWeek","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","FormsCell","machineName","moment","tag","FormsTable","FormCell","DefaultFormCell","isActive","color","useModal","show","setShowModal","openModal","closeModal","Modal","onClose","footer","ModalFooter","style","titleRef","footerRef","maxHeight","setMaxHeight","onClickClose","height","offsetHeight","RemoveModalFooter","valueToCompare","RemoveModal","maxWidth","itemType","ReactComponent","reactInstance","shouldSetValue","dataForSetting","updateValue","getValue","dataValue","updateOnChange","$reactNode","refs","init","attach","loadRefs","attachReact","detach","detachReact","renderReact","ReactDOM","unmountComponentAtNode","checkValidity","dirty","rowData","valid","DefaultCell","rendered","__html","mapFormToColumns","tableView","cmp","asString","SubmissionsTable","SliderColumnFilter","ButtonTab","back","reverse","after","Tabs","items","HeaderChildren","AddButton","Button","additionalProps","exact","mapPagination","skip","serverCount"],"mappings":"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"}
|