@tsed/react-formio 2.1.2 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/coverage.json +4 -4
  2. package/dist/components/actions-table/actionsTable.component.d.ts +3 -2
  3. package/dist/components/actions-table/actionsTable.stories.d.ts +2 -1
  4. package/dist/components/alert/alert.component.d.ts +2 -1
  5. package/dist/components/alert/alert.stories.d.ts +2 -1
  6. package/dist/components/card/card.component.d.ts +1 -1
  7. package/dist/components/card/card.stories.d.ts +2 -1
  8. package/dist/components/form/form.component.d.ts +2 -1
  9. package/dist/components/form/form.stories.d.ts +5 -4
  10. package/dist/components/form-access/formAccess.stories.d.ts +2 -1
  11. package/dist/components/form-access/formAccess.utils.d.ts +3 -3
  12. package/dist/components/form-action/formAction.stories.d.ts +2 -1
  13. package/dist/components/form-builder/formBuilder.component.d.ts +1 -1
  14. package/dist/components/form-builder/formBuilder.stories.d.ts +7 -6
  15. package/dist/components/form-control/formControl.component.d.ts +1 -1
  16. package/dist/components/form-control/formControl.stories.d.ts +11 -10
  17. package/dist/components/form-edit/formEdit.component.d.ts +2 -1
  18. package/dist/components/form-edit/formEdit.stories.d.ts +17 -16
  19. package/dist/components/form-settings/formSettings.component.d.ts +2 -1
  20. package/dist/components/form-settings/formSettings.stories.d.ts +2 -1
  21. package/dist/components/form-settings/formSettings.utils.d.ts +1 -1
  22. package/dist/components/forms-table/components/formCell.component.d.ts +2 -1
  23. package/dist/components/forms-table/formsTable.component.d.ts +3 -2
  24. package/dist/components/forms-table/formsTable.stories.d.ts +3 -2
  25. package/dist/components/input-tags/inputTags.component.d.ts +2 -1
  26. package/dist/components/input-tags/inputTags.stories.d.ts +4 -3
  27. package/dist/components/input-text/inputText.component.d.ts +2 -1
  28. package/dist/components/input-text/inputText.stories.d.ts +6 -5
  29. package/dist/components/loader/loader.component.d.ts +2 -2
  30. package/dist/components/loader/loader.stories.d.ts +2 -1
  31. package/dist/components/modal/modal.component.d.ts +1 -1
  32. package/dist/components/modal/modal.stories.d.ts +5 -4
  33. package/dist/components/modal/removeModal.component.d.ts +2 -2
  34. package/dist/components/pagination/pagination.component.d.ts +2 -1
  35. package/dist/components/pagination/pagination.stories.d.ts +2 -1
  36. package/dist/components/react-component/reactComponent.component.d.ts +1 -1
  37. package/dist/components/select/select.stories.d.ts +9 -8
  38. package/dist/components/submissions-table/submissionsTable.component.d.ts +3 -2
  39. package/dist/components/submissions-table/submissionsTable.stories.d.ts +2 -1
  40. package/dist/components/table/components/defaultArrowSort.component.d.ts +2 -1
  41. package/dist/components/table/components/defaultCellHeader.component.d.ts +2 -1
  42. package/dist/components/table/components/defaultCellOperations.component.d.ts +2 -1
  43. package/dist/components/table/components/defaultCells.component.d.ts +2 -1
  44. package/dist/components/table/components/defaultOperationButton.component.d.ts +2 -1
  45. package/dist/components/table/components/defaultRow.component.d.ts +3 -3
  46. package/dist/components/table/components/dragNDropContainer.d.ts +2 -2
  47. package/dist/components/table/filters/defaultColumnFilter.component.d.ts +2 -1
  48. package/dist/components/table/filters/selectColumnFilter.component.d.ts +2 -1
  49. package/dist/components/table/filters/sliderColumnFilter.component.d.ts +2 -1
  50. package/dist/components/table/hooks/useCustomTable.hook.d.ts +7 -85
  51. package/dist/components/table/hooks/useDragnDropRow.hook.d.ts +25 -18
  52. package/dist/components/table/hooks/useOperations.hook.d.ts +1 -1
  53. package/dist/components/table/table.component.d.ts +2 -2
  54. package/dist/components/table/table.stories.d.ts +3 -2
  55. package/dist/components/tabs/tabs.component.d.ts +3 -3
  56. package/dist/components/tabs/tabs.component.stories.d.ts +3 -2
  57. package/dist/index.js +439 -493
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.modern.js +57 -100
  60. package/dist/index.modern.js.map +1 -1
  61. package/dist/interfaces/FormSchema.d.ts +1 -1
  62. package/dist/interfaces/Operation.d.ts +2 -2
  63. package/dist/interfaces/QueryOptions.d.ts +1 -1
  64. package/package.json +4 -3
  65. package/readme.md +17 -195
  66. package/src/components/form/form.stories.tsx +128 -122
  67. package/src/components/form/useForm.hook.ts +1 -1
  68. package/src/components/form-builder/formBuilder.stories.tsx +3540 -3537
  69. package/src/components/form-edit/formEdit.stories.tsx +320 -317
  70. package/src/components/forms-table/formsTable.component.tsx +1 -1
  71. package/src/components/modal/removeModal.component.tsx +3 -4
  72. package/src/components/table/components/defaultCellHeader.component.tsx +3 -3
  73. package/src/components/table/components/defaultCells.component.tsx +1 -1
  74. package/src/components/table/filters/defaultColumnFilter.component.tsx +1 -1
  75. package/src/components/table/hooks/useCustomTable.hook.tsx +16 -5
  76. package/tsconfig.json +2 -1
@@ -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/components/dragNDropContainer.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/components/table/hooks/useDragnDropRow.hook.ts","../src/components/table/components/defaultCells.component.tsx","../src/components/table/components/defaultRow.component.tsx","../src/utils/callLast.ts","../src/components/input-text/inputText.component.tsx","../src/components/table/filters/defaultColumnFilter.component.tsx","../src/components/table/utils/swapElements.ts","../src/utils/stopPropagationWrapper.ts","../src/components/table/components/defaultOperationButton.component.tsx","../src/components/table/components/defaultCellOperations.component.tsx","../src/components/table/hooks/useOperations.hook.tsx","../src/components/table/hooks/useCustomTable.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","import React, { PropsWithChildren } from \"react\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\n\nexport function DrapNDropContainer({ enableDragNDrop, children }: PropsWithChildren<{ enableDragNDrop?: boolean }>) {\n return enableDragNDrop ? <DndProvider backend={HTML5Backend}>{children}</DndProvider> : <>{children}</>;\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\")}&nbsp;</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","import { useRef } from \"react\";\nimport { useDrag, useDrop } from \"react-dnd\";\n\nimport { DefaultRowProps } from \"../components/defaultRow.component\";\n\nconst DND_ITEM_TYPE = \"row\";\n\nexport function useDndRow<Data extends object = {}>({ onDrag, onDrop, index, ...props }: DefaultRowProps<Data>) {\n const dropRef = useRef<HTMLTableRowElement>(null);\n const dragRef = useRef<HTMLTableDataCellElement>(null);\n\n const [, drop] = useDrop<Data>({\n accept: DND_ITEM_TYPE,\n drop(item) {\n onDrop(item);\n },\n hover(item: any, monitor) {\n if (!dropRef.current) {\n return;\n }\n const dragIndex = item.index;\n const hoverIndex = index;\n // Don't replace items with themselves\n if (dragIndex === hoverIndex) {\n return;\n }\n // Determine rectangle on screen\n const hoverBoundingRect = dropRef.current!.getBoundingClientRect();\n // Get vertical middle\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n // Determine mouse position\n const clientOffset = monitor.getClientOffset();\n if (!clientOffset) {\n return;\n }\n // Get pixels to the top\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n // Only perform the move when the mouse has crossed half of the items height\n // When dragging downwards, only move when the cursor is below 50%\n // When dragging upwards, only move when the cursor is above 50%\n // Dragging downwards\n if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n // Dragging upwards\n if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n\n // Time to actually perform the action\n onDrag(dragIndex, hoverIndex);\n // Note: we're mutating the monitor item here!\n // Generally it's better to avoid mutations,\n // but it's good here for the sake of performance\n // to avoid expensive index searches.\n item.index = hoverIndex;\n }\n });\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n type: DND_ITEM_TYPE,\n item: { index },\n collect: (monitor) => ({\n isDragging: monitor.isDragging()\n })\n }));\n\n const opacity = isDragging ? 0 : 1;\n\n preview(drop(dropRef));\n drag(dragRef);\n\n return {\n ...props,\n opacity,\n isDragging,\n dropRef,\n dragRef\n };\n}\n","import React from \"react\";\nimport { Row } from \"react-table\";\n\nexport function DefaultCells<Data extends object = {}>({ row }: { row: Row<Data> }) {\n return (\n <>\n {row.cells.map((cell, i) => {\n const { hidden, colspan } = cell.column as any;\n\n if (hidden) {\n return null;\n }\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 </>\n );\n}\n","import classnames from \"classnames\";\nimport React, { DetailedHTMLProps, HTMLAttributes } from \"react\";\nimport { Row } from \"react-table\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { useDndRow } from \"../hooks/useDragnDropRow.hook\";\nimport { DefaultCells } from \"./defaultCells.component\";\n\nexport interface DefaultRowProps<Data extends object = {}>\n extends Omit<DetailedHTMLProps<HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, \"onClick\" | \"onDrag\" | \"onDrop\"> {\n onClick: (data: any, action: string) => void;\n row: Row<Data>;\n index: number;\n onDrop: (item: Data) => void;\n onDrag: (index: number, hoverIndex: number) => void;\n enableDragNDrop?: boolean;\n}\n\nexport function DefaultDndRow<Data extends object = {}>(props: DefaultRowProps<Data>) {\n const { isDragging, dragRef, dropRef, opacity } = useDndRow(props);\n\n return (\n <tr ref={dropRef} style={{ opacity }}>\n <td ref={dragRef} role='cell' style={{ cursor: isDragging ? \"grabbing\" : \"grab\" }} className='align-middle'>\n <div className='flex items-center justify-center'>\n <i className={classnames(iconClass(undefined, \"dots-vertical-rounded\"))} />\n </div>\n </td>\n <DefaultCells<Data> {...props} />\n </tr>\n );\n}\n\nexport function DefaultRow<Data extends object = {}>({ onClick, row, enableDragNDrop, onDrop, onDrag, ...props }: DefaultRowProps<Data>) {\n const opts = {\n ...props,\n onClick: () => onClick(row.original, \"row\"),\n ...row.getRowProps()\n };\n\n if (enableDragNDrop) {\n return <DefaultDndRow<Data> {...opts} row={row} onDrag={onDrag} onDrop={onDrop} />;\n }\n\n return (\n <tr {...opts}>\n <DefaultCells<Data> row={row} />\n </tr>\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 swapElements = <T = any>(myArray: T[], index1: number, index2: number): T[] => {\n myArray = [...myArray];\n\n [myArray[index1], myArray[index2]] = [myArray[index2], myArray[index1]];\n\n return myArray;\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 noop from \"lodash/noop\";\nimport React, { PropsWithChildren, useEffect, useState } 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 { DefaultRow, DefaultRowProps } from \"../components/defaultRow.component\";\nimport { DefaultColumnFilter } from \"../filters/defaultColumnFilter.component\";\nimport { swapElements } from \"../utils/swapElements\";\nimport { useOperations } from \"./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 * Custom Row\n */\n Row?: React.ComponentType<DefaultRowProps<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 /**\n * Enable drag and drop rows\n */\n enableDragNDrop?: boolean;\n onDrag?: (data: Data[]) => void;\n onDrop?: (item: Data) => void;\n}\n\nexport function 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 useCustomTable<Data extends object = {}>(props: PropsWithChildren<TableProps<Data>>) {\n const {\n children,\n className = \"\",\n columns,\n data,\n onChange = noop,\n onClick = noop,\n onDrag = noop,\n onDrop = 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 Row = DefaultRow,\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 // DND\n const [records, setRecords] = useState<Data[]>(data);\n\n useEffect(() => {\n setRecords(data);\n }, [data]);\n\n const _onDrag = (dragIndex: number, hoverIndex: number) => {\n const newRecords = swapElements([...records], dragIndex, hoverIndex);\n\n setRecords(newRecords);\n\n onDrag(newRecords);\n };\n\n const tableInstance = useTable<Data>(\n {\n ...props,\n columns,\n data,\n ctx,\n defaultColumn,\n // getRowId,\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 return {\n ...props,\n className,\n tableInstance,\n CellHeader,\n isLoading,\n onClick: _onClick,\n Loader,\n EmptyData,\n Row,\n data,\n disablePagination,\n Pagination,\n pageIndex,\n pageSize,\n pageSizes,\n setPageSize,\n i18n,\n children,\n onDrag: _onDrag,\n onDrop: onDrop\n };\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { DrapNDropContainer } from \"./components/dragNDropContainer\";\nimport { TableProps, useCustomTable } from \"./hooks/useCustomTable.hook\";\nexport function Table<Data extends object = any>(props: PropsWithChildren<TableProps<Data>>) {\n const {\n className,\n tableInstance,\n CellHeader,\n isLoading,\n onClick,\n Loader,\n EmptyData,\n Row,\n data,\n disablePagination,\n Pagination,\n pageIndex,\n pageSize,\n pageSizes,\n setPageSize,\n i18n,\n enableDragNDrop,\n children,\n onDrag,\n onDrop\n } = useCustomTable(props);\n\n // Render the UI for your table\n return (\n <DrapNDropContainer enableDragNDrop={enableDragNDrop}>\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 {enableDragNDrop ? (\n <th role='columnheader' className='text-center'>\n <div className='table-cell-header'></div>\n </th>\n ) : null}\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, index) => {\n tableInstance.prepareRow(row);\n return (\n <Row<Data>\n index={index}\n enableDragNDrop={enableDragNDrop}\n onClick={onClick}\n row={row}\n key={`tableInstance.page.${row.id}`}\n onDrag={onDrag}\n onDrop={onDrop}\n />\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 </DrapNDropContainer>\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 { TableProps } from \"../table/hooks/useCustomTable.hook\";\nimport { Table } 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 type { 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 { TableProps } from \"../table/hooks/useCustomTable.hook\";\nimport { Table } 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>,&nbsp;\n {i18n(\"type the\")}&nbsp;\n <strong>&quot;{props.itemType?.toLowerCase()}&quot;</strong>&nbsp;\n {i18n(\"name\")} <strong>&quot;{props.valueToCompare}&quot;</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 { TableProps } from \"../table/hooks/useCustomTable.hook\";\nimport { Table } 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","DrapNDropContainer","enableDragNDrop","HTML5Backend","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","DND_ITEM_TYPE","useDndRow","onDrag","onDrop","index","dropRef","dragRef","drop","useDrop","accept","item","hover","monitor","dragIndex","hoverIndex","hoverBoundingRect","getBoundingClientRect","hoverMiddleY","bottom","top","clientOffset","getClientOffset","hoverClientY","y","isDragging","drag","preview","useDrag","collect","opacity","DefaultCells","row","cells","cell","hidden","colspan","getCellProps","DefaultDndRow","cursor","DefaultRow","onClick","opts","original","getRowProps","callLast","fn","time","last","args","clearTimeout","setTimeout","InputText","localValue","setValue","useState","change","useMemo","DefaultColumnFilter","filterId","setFilterId","id","filterValue","setFilter","useCallback","swapElements","myArray","index1","index2","stopPropagationWrapper","stopPropagation","DefaultOperationButton","buttonSize","buttonType","buttonOutline","action","icon","title","filter","Boolean","DefaultCellOperations","operations","ctx","data","permissionsResolver","OperationButton","operation","useOperations","CellOperations","hooks","visibleColumns","columns","groupByBoundary","Header","Cell","getOperationCallback","find","alias","DefaultLoader","DefaultEmptyData","useFilters","useGroupBy","useSortBy","usePagination","useCustomTable","noop","filters","controlledFilters","controlledFilterId","controlledPageSize","controlledPageIndex","sortBy","controlledSortBy","isLoading","disableFilters","disablePagination","ArrowSort","ColumnFilter","EmptyData","Loader","DefaultPagination","Row","CellHeader","_onClick","defaultColumn","React","Filter","records","setRecords","_onDrag","newRecords","tableInstance","useTable","initialState","manualPagination","manualSortBy","manualFilters","state","Table","getTableProps","headerGroups","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getTableBodyProps","prepareRow","ActionsTable","availableActions","onAddAction","currentAction","setAction","accessor","concat","formatError","error","Object","prototype","keys","errors","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","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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"}
1
+ {"version":3,"file":"index.modern.js","sources":["../src/utils/iconClass.ts","../src/utils/getEventValue.ts","../src/components/form-control/formControl.component.tsx","../src/components/select/select.component.tsx","../src/components/table/components/dragNDropContainer.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/components/table/hooks/useDragnDropRow.hook.ts","../src/components/table/components/defaultCells.component.tsx","../src/components/table/components/defaultRow.component.tsx","../src/utils/callLast.ts","../src/components/input-text/inputText.component.tsx","../src/components/table/filters/defaultColumnFilter.component.tsx","../src/components/table/utils/swapElements.ts","../src/utils/stopPropagationWrapper.ts","../src/components/table/components/defaultOperationButton.component.tsx","../src/components/table/components/defaultCellOperations.component.tsx","../src/components/table/hooks/useOperations.hook.tsx","../src/components/table/hooks/useCustomTable.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":["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","import React, { PropsWithChildren } from \"react\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\n\nexport function DrapNDropContainer({ enableDragNDrop, children }: PropsWithChildren<{ enableDragNDrop?: boolean }>) {\n return enableDragNDrop ? <DndProvider backend={HTML5Backend}>{children}</DndProvider> : <>{children}</>;\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\")}&nbsp;</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\") as any}</span>\n\n {column.render(\"ArrowSort\") as any}\n </div>\n {column.canFilter ? <div className='table-cell-header__filter'>{column.render(\"Filter\") as any}</div> : null}\n </div>\n );\n}\n","import { useRef } from \"react\";\nimport { useDrag, useDrop } from \"react-dnd\";\n\nimport { DefaultRowProps } from \"../components/defaultRow.component\";\n\nconst DND_ITEM_TYPE = \"row\";\n\nexport function useDndRow<Data extends object = {}>({ onDrag, onDrop, index, ...props }: DefaultRowProps<Data>) {\n const dropRef = useRef<HTMLTableRowElement>(null);\n const dragRef = useRef<HTMLTableDataCellElement>(null);\n\n const [, drop] = useDrop<Data>({\n accept: DND_ITEM_TYPE,\n drop(item) {\n onDrop(item);\n },\n hover(item: any, monitor) {\n if (!dropRef.current) {\n return;\n }\n const dragIndex = item.index;\n const hoverIndex = index;\n // Don't replace items with themselves\n if (dragIndex === hoverIndex) {\n return;\n }\n // Determine rectangle on screen\n const hoverBoundingRect = dropRef.current!.getBoundingClientRect();\n // Get vertical middle\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n // Determine mouse position\n const clientOffset = monitor.getClientOffset();\n if (!clientOffset) {\n return;\n }\n // Get pixels to the top\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n // Only perform the move when the mouse has crossed half of the items height\n // When dragging downwards, only move when the cursor is below 50%\n // When dragging upwards, only move when the cursor is above 50%\n // Dragging downwards\n if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n // Dragging upwards\n if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n\n // Time to actually perform the action\n onDrag(dragIndex, hoverIndex);\n // Note: we're mutating the monitor item here!\n // Generally it's better to avoid mutations,\n // but it's good here for the sake of performance\n // to avoid expensive index searches.\n item.index = hoverIndex;\n }\n });\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n type: DND_ITEM_TYPE,\n item: { index },\n collect: (monitor) => ({\n isDragging: monitor.isDragging()\n })\n }));\n\n const opacity = isDragging ? 0 : 1;\n\n preview(drop(dropRef));\n drag(dragRef);\n\n return {\n ...props,\n opacity,\n isDragging,\n dropRef,\n dragRef\n };\n}\n","import React from \"react\";\nimport { Row } from \"react-table\";\n\nexport function DefaultCells<Data extends object = {}>({ row }: { row: Row<Data> }) {\n return (\n <>\n {row.cells.map((cell, i) => {\n const { hidden, colspan } = cell.column as any;\n\n if (hidden) {\n return null;\n }\n\n return (\n <td colSpan={colspan} {...cell.getCellProps()} key={`tableInstance.page.cells.${cell.value || \"value\"}.${i}`}>\n {cell.render(\"Cell\") as any}\n </td>\n );\n })}\n </>\n );\n}\n","import classnames from \"classnames\";\nimport React, { DetailedHTMLProps, HTMLAttributes } from \"react\";\nimport { Row } from \"react-table\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { useDndRow } from \"../hooks/useDragnDropRow.hook\";\nimport { DefaultCells } from \"./defaultCells.component\";\n\nexport interface DefaultRowProps<Data extends object = {}>\n extends Omit<DetailedHTMLProps<HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, \"onClick\" | \"onDrag\" | \"onDrop\"> {\n onClick: (data: any, action: string) => void;\n row: Row<Data>;\n index: number;\n onDrop: (item: Data) => void;\n onDrag: (index: number, hoverIndex: number) => void;\n enableDragNDrop?: boolean;\n}\n\nexport function DefaultDndRow<Data extends object = {}>(props: DefaultRowProps<Data>) {\n const { isDragging, dragRef, dropRef, opacity } = useDndRow(props);\n\n return (\n <tr ref={dropRef} style={{ opacity }}>\n <td ref={dragRef} role='cell' style={{ cursor: isDragging ? \"grabbing\" : \"grab\" }} className='align-middle'>\n <div className='flex items-center justify-center'>\n <i className={classnames(iconClass(undefined, \"dots-vertical-rounded\"))} />\n </div>\n </td>\n <DefaultCells<Data> {...props} />\n </tr>\n );\n}\n\nexport function DefaultRow<Data extends object = {}>({ onClick, row, enableDragNDrop, onDrop, onDrag, ...props }: DefaultRowProps<Data>) {\n const opts = {\n ...props,\n onClick: () => onClick(row.original, \"row\"),\n ...row.getRowProps()\n };\n\n if (enableDragNDrop) {\n return <DefaultDndRow<Data> {...opts} row={row} onDrag={onDrag} onDrop={onDrop} />;\n }\n\n return (\n <tr {...opts}>\n <DefaultCells<Data> row={row} />\n </tr>\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: string, value: any) => {\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 swapElements = <T = any>(myArray: T[], index1: number, index2: number): T[] => {\n myArray = [...myArray];\n\n [myArray[index1], myArray[index2]] = [myArray[index2], myArray[index1]];\n\n return myArray;\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 noop from \"lodash/noop\";\nimport React, { PropsWithChildren, useEffect, useState } from \"react\";\nimport {\n CellProps,\n FilterProps,\n Renderer,\n TableInstance,\n TableOptions,\n useFilters,\n useGroupBy,\n usePagination,\n useSortBy,\n useTable\n} 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 { DefaultRow, DefaultRowProps } from \"../components/defaultRow.component\";\nimport { DefaultColumnFilter } from \"../filters/defaultColumnFilter.component\";\nimport { swapElements } from \"../utils/swapElements\";\nimport { useOperations } from \"./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 * Custom Row\n */\n Row?: React.ComponentType<DefaultRowProps<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 /**\n * Enable drag and drop rows\n */\n enableDragNDrop?: boolean;\n onDrag?: (data: Data[]) => void;\n onDrop?: (item: Data) => void;\n}\n\nexport function 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 useCustomTable<Data extends object = {}>(props: PropsWithChildren<TableProps<Data>>) {\n const {\n children,\n className = \"\",\n columns,\n data,\n onChange = noop,\n onClick = noop,\n onDrag = noop,\n onDrop = 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 Row = DefaultRow,\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 // DND\n const [records, setRecords] = useState<readonly Data[]>(data);\n\n useEffect(() => {\n setRecords(data);\n }, [data]);\n\n const _onDrag = (dragIndex: number, hoverIndex: number) => {\n const newRecords = swapElements([...records], dragIndex, hoverIndex);\n\n setRecords(newRecords);\n\n onDrag(newRecords);\n };\n\n const tableInstance = useTable<Data>(\n {\n ...props,\n columns,\n data,\n ctx,\n defaultColumn,\n // getRowId,\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 return {\n className,\n tableInstance,\n CellHeader,\n isLoading,\n Loader,\n EmptyData,\n Row,\n data,\n disablePagination,\n Pagination,\n pageIndex,\n pageSize,\n pageSizes,\n setPageSize,\n i18n,\n children,\n onClick: _onClick as any,\n onDrag: _onDrag,\n onDrop: onDrop,\n enableDragNDrop: props.enableDragNDrop\n };\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { DrapNDropContainer } from \"./components/dragNDropContainer\";\nimport { TableProps, useCustomTable } from \"./hooks/useCustomTable.hook\";\nexport function Table<Data extends object = any>(props: PropsWithChildren<TableProps<Data>>) {\n const {\n className,\n tableInstance,\n CellHeader,\n isLoading,\n onClick,\n Loader,\n EmptyData,\n Row,\n data,\n disablePagination,\n Pagination,\n pageIndex,\n pageSize,\n pageSizes,\n setPageSize,\n i18n,\n enableDragNDrop,\n children,\n onDrag,\n onDrop\n } = useCustomTable(props);\n\n // Render the UI for your table\n return (\n <DrapNDropContainer enableDragNDrop={enableDragNDrop}>\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 {enableDragNDrop ? (\n <th role='columnheader' className='text-center'>\n <div className='table-cell-header'></div>\n </th>\n ) : null}\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, index) => {\n tableInstance.prepareRow(row);\n return (\n <Row<Data>\n index={index}\n enableDragNDrop={enableDragNDrop}\n onClick={onClick}\n row={row}\n key={`tableInstance.page.${row.id}`}\n onDrag={onDrag}\n onDrop={onDrop}\n />\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 </DrapNDropContainer>\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 { TableProps } from \"../table/hooks/useCustomTable.hook\";\nimport { Table } 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: any) {\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 type { 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 { TableProps } from \"../table/hooks/useCustomTable.hook\";\nimport { Table } 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 as any)} 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 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 = (f) => f } = 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>,&nbsp;\n {i18n(\"type the\")}&nbsp;\n <strong>&quot;{props.itemType?.toLowerCase()}&quot;</strong>&nbsp;\n {i18n(\"name\")} <strong>&quot;{props.valueToCompare}&quot;</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 { TableProps } from \"../table/hooks/useCustomTable.hook\";\nimport { Table } 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":["iconClass","iconset","name","spinning","Templates","current","defaultIconset","getEventValue","event","target","multiple","selectedOptions","Array","from","option","value","type","checked","FormControl","children","required","prefix","suffix","description","label","className","React","createElement","id","classnames","htmlFor","propTypes","PropTypes","string","isRequired","any","bool","Select","_ref","size","onChange","choices","placeholder","layout","props","_objectWithoutPropertiesLoose","_excluded","ref","useRef","useEffect","instance","Choices","removeItemButton","placeholderValue","destroy","shadow","_extends","map","key","String","func","array","DrapNDropContainer","enableDragNDrop","DndProvider","backend","HTML5Backend","Fragment","LEFT_PAGE","RIGHT_PAGE","range","to","step","i","push","getPageNumbers","currentPage","pageNeighbours","totalPages","totalNumbers","totalBlocks","calculatedStartPage","Math","max","calculatedEndPage","min","startPage","endPage","pages","hasLeftSpill","hasRightSpill","spillOffset","length","extraPages","PaginationButton","component","Component","disabled","active","otherProps","Pagination","pageSizes","gotoPage","canPreviousPage","previousPage","nextPage","canNextPage","pageCount","pageIndex","pageOptions","pageSize","setPageSize","i18n","f","pageNumbers","tabIndex","onClick","page","includes","DefaultArrowSort","column","isSorted","isSortedDesc","undefined","DefaultCellHeader","getSortByToggleProps","render","canFilter","DND_ITEM_TYPE","useDndRow","onDrag","onDrop","index","dropRef","dragRef","drop","useDrop","accept","item","hover","monitor","dragIndex","hoverIndex","hoverBoundingRect","getBoundingClientRect","hoverMiddleY","bottom","top","clientOffset","getClientOffset","hoverClientY","y","isDragging","drag","preview","useDrag","collect","opacity","DefaultCells","row","cells","cell","hidden","colspan","colSpan","getCellProps","DefaultDndRow","style","role","cursor","DefaultRow","opts","original","getRowProps","callLast","fn","time","last","args","clearTimeout","setTimeout","InputText","localValue","setValue","useState","change","useMemo","DefaultColumnFilter","filterId","setFilterId","filterValue","setFilter","useCallback","autoFocus","swapElements","myArray","index1","index2","stopPropagationWrapper","stopPropagation","DefaultOperationButton","buttonSize","buttonType","buttonOutline","action","icon","title","filter","Boolean","join","DefaultCellOperations","operations","ctx","data","permissionsResolver","OperationButton","operation","useOperations","CellOperations","hooks","visibleColumns","columns","groupByBoundary","Header","Cell","getOperationCallback","find","alias","DefaultLoader","DefaultEmptyData","useFilters","useGroupBy","useSortBy","usePagination","useCustomTable","noop","filters","controlledFilters","controlledFilterId","controlledPageSize","controlledPageIndex","sortBy","controlledSortBy","isLoading","disableFilters","disablePagination","ArrowSort","ColumnFilter","EmptyData","Loader","DefaultPagination","Row","CellHeader","_onClick","defaultColumn","Filter","records","setRecords","_onDrag","newRecords","tableInstance","useTable","initialState","manualPagination","manualSortBy","manualFilters","state","Table","getTableProps","headerGroups","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getTableBodyProps","prepareRow","ActionsTable","availableActions","onAddAction","currentAction","setAction","accessor","concat","formatError","error","isArray","Object","prototype","hasOwnProperty","call","keys","errors","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","_options","_options$hooks","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","_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","_ref2","actionInfo","_excluded2","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","_this$builderRef","componentWillReceiveProps","nextProps","setState","_this$props","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","window","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","module","exports","this","hookCallback","apply","arguments","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","arg","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","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","titleRef","footerRef","maxHeight","setMaxHeight","onClickClose","_titleRef$current","_footerRef$current","height","offsetHeight","RemoveModalFooter","valueToCompare","RemoveModal","_props$itemType","_props$itemType2","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","dangerouslySetInnerHTML","__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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"}