@tsed/react-formio 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +46 -46
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +191 -191
- package/dist/index.modern.js.map +1 -1
- package/package.json +3 -3
- package/src/components/table/components/defaultCells.component.tsx +1 -0
- package/src/components/table/components/dragNDropContainer.tsx +1 -1
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../../../node_modules/classnames/index.js","../src/utils/iconClass.ts","../src/utils/getEventValue.ts","../src/components/form-control/formControl.component.tsx","../src/components/select/select.component.tsx","../src/components/table/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 { 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\")} </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 { 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, 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 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>, \n {i18n(\"type the\")} \n <strong>"{props.itemType?.toLowerCase()}"</strong> \n {i18n(\"name\")} <strong>"{props.valueToCompare}"</strong>.\n </div>\n <InputText name='remove' value={value} onChange={(name, value) => setValue(value)} />\n </div>\n </Modal>\n );\n}\n","import { Components, ComponentSchema } from \"formiojs\";\nimport ReactDOM from \"react-dom\";\n\nimport { Submission } from \"../../interfaces/Submission\";\n\nexport class ReactComponent<Data = any> extends Components.components.field {\n public reactInstance: any;\n public shouldSetValue?: boolean;\n private dataForSetting?: Data;\n\n /**\n * This is the first phase of component building where the component is instantiated.\n *\n * @param component - The component definition created from the settings form.\n * @param options - Any options passed into the renderer.\n * @param data - The submission data where this component's data exists.\n */\n // eslint-disable-next-line no-useless-constructor,import/no-anonymous-default-export\n constructor(component: ComponentSchema, options: any, data: Submission<Data>) {\n super(component, options, data);\n }\n\n get $reactNode() {\n return (this.refs as any)[`react-${this.id}`];\n }\n\n /**\n * This method is called any time the component needs to be rebuilt. It is most frequently used to listen to other\n * components using the this.on() function.\n */\n init() {\n return super.init();\n }\n\n /**\n * This method is called before the component is going to be destroyed, which is when the component instance is\n * destroyed. This is different from detach which is when the component instance still exists but the dom instance is\n * removed.\n */\n destroy() {\n return super.destroy();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n\n /**\n * The third phase of component building where the component has been attached to the DOM as 'element' and is ready\n * to have its javascript events attached.\n *\n * @param element\n * @returns {Promise<void>} - Return a promise that resolves when the attach is complete.\n */\n async attach(element: any) {\n super.attach(element);\n\n // The loadRefs function will find all dom elements that have the \"ref\" setting that match the object property.\n // It can load a single element or multiple elements with the same ref.\n this.loadRefs(element, {\n [`react-${this.id}`]: \"single\"\n });\n\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.reactInstance = this.attachReact(this.refs[`react-${this.id}`]);\n\n if (this.shouldSetValue) {\n this.setValue(this.dataForSetting);\n this.updateValue(this.dataForSetting);\n }\n }\n }\n\n /**\n * The fourth phase of component building where the component is being removed from the page. This could be a redraw\n * or it is being removed from the form.\n */\n detach() {\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.detachReact(this.refs[`react-${this.id}`]);\n }\n super.detach();\n }\n\n /**\n * Override this function to render a react component.\n */\n renderReact(): any {\n return null;\n }\n\n /**\n * Override this function to insert your custom component.\n *\n * @param element\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n attachReact(element?: any) {\n // eslint-disable-next-line react/no-render-return-value\n return ReactDOM.render(this.renderReact(), element);\n }\n\n /**\n * Override this function.\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n detachReact(element?: any) {\n if (element) {\n ReactDOM.unmountComponentAtNode(element);\n }\n }\n\n /**\n * Something external has set a value and our component needs to be updated to reflect that. For example, loading a submission.\n *\n * @param value\n * @param flags\n */\n setValue(value: any, flags?: any) {\n if (this.reactInstance) {\n this.reactInstance.setState({\n value: value\n });\n this.shouldSetValue = false;\n } else {\n this.shouldSetValue = true;\n this.dataForSetting = value;\n }\n\n return false;\n }\n\n /**\n * The user has changed the value in the component and the value needs to be updated on the main submission object and other components notified of a change event.\n *\n * @param value\n * @param flags\n */\n updateValue = (value?: Data, flags?: Record<string, any>) => {\n flags = flags || {};\n\n const newValue = value === undefined || value === null ? this.getValue() : value;\n\n const changed = newValue !== undefined ? this.hasChanged(newValue, this.dataValue) : false;\n\n this.dataValue = Array.isArray(newValue) ? [...newValue] : newValue;\n\n this.updateOnChange(flags, changed);\n return changed;\n };\n\n /**\n * Get the current value of the component. Should return the value set in the react component.\n *\n * @returns {*}\n */\n getValue(): Data {\n if (this.reactInstance) {\n return this.reactInstance.state.value;\n }\n return this.defaultValue;\n }\n\n /**\n * Override normal validation check to insert custom validation in react component.\n *\n * @param data\n * @param dirty\n * @param rowData\n * @returns {boolean}\n */\n checkValidity(data: Data, dirty: boolean, rowData: any) {\n const valid = super.checkValidity(data, dirty, rowData);\n\n if (!valid) {\n return false;\n }\n\n return this.validate(data, dirty, rowData);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate(data: Data, dirty: boolean, rowData: any) {\n return true;\n }\n}\n","import React from \"react\";\n\nexport function DefaultCell({ value, render = (f: any) => f }: any): JSX.Element {\n if (value === undefined) {\n return <span></span>;\n }\n\n const rendered = render(value);\n\n if (value !== rendered) {\n return <div dangerouslySetInnerHTML={{ __html: rendered }} />;\n }\n\n return <span>{String(value)}</span>;\n}\n","import { Components, ExtendedComponentSchema } from \"formiojs\";\nimport FormioUtils from \"formiojs/utils\";\nimport React from \"react\";\nimport { Column } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { DefaultCell } from \"../components/defaultCell.component\";\nimport { SelectColumnFilter } from \"../filters/selectColumnFilter.component\";\n\nexport function mapFormToColumns(form: FormSchema): Column[] {\n const columns: Column[] = [];\n\n FormioUtils.eachComponent(form.components, (component: ExtendedComponentSchema) => {\n if (component.tableView && component.key) {\n const cmp: any = Components.create(component, {}, null, true);\n\n const column: Column = {\n Header: component.label || component.title || component.key,\n accessor: `data.${component.key}`,\n Cell: (props: any) => <DefaultCell {...props} render={(value: any) => cmp.asString(value)} />\n };\n\n if (component.type === \"select\" && component.dataSrc === \"values\") {\n column.Filter = SelectColumnFilter;\n (column as any).choices = component.data.values;\n }\n\n columns.push(column);\n }\n });\n\n return columns;\n}\n","import React from \"react\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { 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","React","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","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":["../../../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\")} </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, 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 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>, \n {i18n(\"type the\")} \n <strong>"{props.itemType?.toLowerCase()}"</strong> \n {i18n(\"name\")} <strong>"{props.valueToCompare}"</strong>.\n </div>\n <InputText name='remove' value={value} onChange={(name, value) => setValue(value)} />\n </div>\n </Modal>\n );\n}\n","import { Components, ComponentSchema } from \"formiojs\";\nimport ReactDOM from \"react-dom\";\n\nimport { Submission } from \"../../interfaces/Submission\";\n\nexport class ReactComponent<Data = any> extends Components.components.field {\n public reactInstance: any;\n public shouldSetValue?: boolean;\n private dataForSetting?: Data;\n\n /**\n * This is the first phase of component building where the component is instantiated.\n *\n * @param component - The component definition created from the settings form.\n * @param options - Any options passed into the renderer.\n * @param data - The submission data where this component's data exists.\n */\n // eslint-disable-next-line no-useless-constructor,import/no-anonymous-default-export\n constructor(component: ComponentSchema, options: any, data: Submission<Data>) {\n super(component, options, data);\n }\n\n get $reactNode() {\n return (this.refs as any)[`react-${this.id}`];\n }\n\n /**\n * This method is called any time the component needs to be rebuilt. It is most frequently used to listen to other\n * components using the this.on() function.\n */\n init() {\n return super.init();\n }\n\n /**\n * This method is called before the component is going to be destroyed, which is when the component instance is\n * destroyed. This is different from detach which is when the component instance still exists but the dom instance is\n * removed.\n */\n destroy() {\n return super.destroy();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n\n /**\n * The third phase of component building where the component has been attached to the DOM as 'element' and is ready\n * to have its javascript events attached.\n *\n * @param element\n * @returns {Promise<void>} - Return a promise that resolves when the attach is complete.\n */\n async attach(element: any) {\n super.attach(element);\n\n // The loadRefs function will find all dom elements that have the \"ref\" setting that match the object property.\n // It can load a single element or multiple elements with the same ref.\n this.loadRefs(element, {\n [`react-${this.id}`]: \"single\"\n });\n\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.reactInstance = this.attachReact(this.refs[`react-${this.id}`]);\n\n if (this.shouldSetValue) {\n this.setValue(this.dataForSetting);\n this.updateValue(this.dataForSetting);\n }\n }\n }\n\n /**\n * The fourth phase of component building where the component is being removed from the page. This could be a redraw\n * or it is being removed from the form.\n */\n detach() {\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.detachReact(this.refs[`react-${this.id}`]);\n }\n super.detach();\n }\n\n /**\n * Override this function to render a react component.\n */\n renderReact(): any {\n return null;\n }\n\n /**\n * Override this function to insert your custom component.\n *\n * @param element\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n attachReact(element?: any) {\n // eslint-disable-next-line react/no-render-return-value\n return ReactDOM.render(this.renderReact(), element);\n }\n\n /**\n * Override this function.\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n detachReact(element?: any) {\n if (element) {\n ReactDOM.unmountComponentAtNode(element);\n }\n }\n\n /**\n * Something external has set a value and our component needs to be updated to reflect that. For example, loading a submission.\n *\n * @param value\n * @param flags\n */\n setValue(value: any, flags?: any) {\n if (this.reactInstance) {\n this.reactInstance.setState({\n value: value\n });\n this.shouldSetValue = false;\n } else {\n this.shouldSetValue = true;\n this.dataForSetting = value;\n }\n\n return false;\n }\n\n /**\n * The user has changed the value in the component and the value needs to be updated on the main submission object and other components notified of a change event.\n *\n * @param value\n * @param flags\n */\n updateValue = (value?: Data, flags?: Record<string, any>) => {\n flags = flags || {};\n\n const newValue = value === undefined || value === null ? this.getValue() : value;\n\n const changed = newValue !== undefined ? this.hasChanged(newValue, this.dataValue) : false;\n\n this.dataValue = Array.isArray(newValue) ? [...newValue] : newValue;\n\n this.updateOnChange(flags, changed);\n return changed;\n };\n\n /**\n * Get the current value of the component. Should return the value set in the react component.\n *\n * @returns {*}\n */\n getValue(): Data {\n if (this.reactInstance) {\n return this.reactInstance.state.value;\n }\n return this.defaultValue;\n }\n\n /**\n * Override normal validation check to insert custom validation in react component.\n *\n * @param data\n * @param dirty\n * @param rowData\n * @returns {boolean}\n */\n checkValidity(data: Data, dirty: boolean, rowData: any) {\n const valid = super.checkValidity(data, dirty, rowData);\n\n if (!valid) {\n return false;\n }\n\n return this.validate(data, dirty, rowData);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate(data: Data, dirty: boolean, rowData: any) {\n return true;\n }\n}\n","import React from \"react\";\n\nexport function DefaultCell({ value, render = (f: any) => f }: any): JSX.Element {\n if (value === undefined) {\n return <span></span>;\n }\n\n const rendered = render(value);\n\n if (value !== rendered) {\n return <div dangerouslySetInnerHTML={{ __html: rendered }} />;\n }\n\n return <span>{String(value)}</span>;\n}\n","import { Components, ExtendedComponentSchema } from \"formiojs\";\nimport FormioUtils from \"formiojs/utils\";\nimport React from \"react\";\nimport { Column } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { DefaultCell } from \"../components/defaultCell.component\";\nimport { SelectColumnFilter } from \"../filters/selectColumnFilter.component\";\n\nexport function mapFormToColumns(form: FormSchema): Column[] {\n const columns: Column[] = [];\n\n FormioUtils.eachComponent(form.components, (component: ExtendedComponentSchema) => {\n if (component.tableView && component.key) {\n const cmp: any = Components.create(component, {}, null, true);\n\n const column: Column = {\n Header: component.label || component.title || component.key,\n accessor: `data.${component.key}`,\n Cell: (props: any) => <DefaultCell {...props} render={(value: any) => cmp.asString(value)} />\n };\n\n if (component.type === \"select\" && component.dataSrc === \"values\") {\n column.Filter = SelectColumnFilter;\n (column as any).choices = component.data.values;\n }\n\n columns.push(column);\n }\n });\n\n return columns;\n}\n","import React from \"react\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { 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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"}
|