@tsed/react-formio 2.3.2 → 2.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/react-component/reactComponent.component.d.ts +1 -1
- package/dist/index.js +9 -7
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +9 -7
- package/dist/index.modern.js.map +1 -1
- package/package.json +6 -5
- package/src/components/actions-table/actionsTable.component.spec.tsx +2 -2
- package/src/components/form/form.stories.tsx +1 -2
- package/src/components/form-access/formAccess.component.tsx +0 -1
- package/src/components/form-action/formAction.component.tsx +1 -0
- package/src/components/form-control/formControl.component.tsx +1 -1
- package/src/components/form-edit/formEdit.reducer.ts +0 -1
- package/src/components/form-settings/formSettings.component.spec.tsx +4 -4
- package/src/components/pagination/pagination.component.spec.tsx +0 -2
- package/src/components/react-component/reactComponent.component.tsx +5 -5
- package/src/components/select/select.component.tsx +1 -1
- package/src/components/table/components/defaultOperationButton.component.tsx +2 -0
- package/src/components/table/components/defaultRow.component.tsx +1 -0
- package/src/components/table/filters/defaultColumnFilter.component.tsx +1 -0
- package/src/react-table.d.ts +2 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils/iconClass.ts","../src/utils/getEventValue.ts","../src/components/form-control/formControl.component.tsx","../src/components/select/select.component.tsx","../src/components/table/components/dragNDropContainer.tsx","../src/components/table/utils/getPageNumbers.ts","../src/components/pagination/pagination.component.tsx","../src/components/table/components/defaultArrowSort.component.tsx","../src/components/table/components/defaultCellHeader.component.tsx","../src/components/table/hooks/useDragnDropRow.hook.ts","../src/components/table/components/defaultCells.component.tsx","../src/components/table/components/defaultRow.component.tsx","../src/utils/callLast.ts","../src/components/input-text/inputText.component.tsx","../src/components/table/filters/defaultColumnFilter.component.tsx","../src/components/table/utils/swapElements.ts","../src/utils/stopPropagationWrapper.ts","../src/components/table/components/defaultOperationButton.component.tsx","../src/components/table/components/defaultCellOperations.component.tsx","../src/components/table/hooks/useOperations.hook.tsx","../src/components/table/hooks/useCustomTable.hook.tsx","../src/components/table/table.component.tsx","../src/components/actions-table/actionsTable.component.tsx","../src/components/alert/alert.component.tsx","../src/components/card/card.component.tsx","../src/components/form/useForm.hook.ts","../src/components/form/form.component.tsx","../src/components/form-access/formAccess.schema.ts","../src/components/form-access/formAccess.utils.ts","../src/components/form-access/formAccess.component.tsx","../src/components/form-action/formAction.component.tsx","../src/components/form-builder/formBuilder.component.tsx","../src/hooks/useTooltip.ts","../src/components/form-edit/formCtas.component.tsx","../src/components/input-tags/inputTags.component.tsx","../src/components/form-edit/formParameters.component.tsx","../src/components/form-edit/formEdit.reducer.ts","../src/components/form-edit/useFormEdit.hook.ts","../src/components/form-edit/formEdit.component.tsx","../src/components/form-settings/formSettings.schema.ts","../src/components/form-settings/formSettings.utils.ts","../src/components/form-settings/formSettings.component.tsx","../src/components/table/filters/selectColumnFilter.component.tsx","../../../node_modules/moment/moment.js","../src/components/forms-table/components/formCell.component.tsx","../src/components/forms-table/formsTable.component.tsx","../src/components/loader/loader.component.tsx","../src/components/modal/modal.component.tsx","../src/components/modal/removeModal.component.tsx","../src/components/react-component/reactComponent.component.tsx","../src/components/table/components/defaultCell.component.tsx","../src/components/table/utils/mapFormToColumns.tsx","../src/components/submissions-table/submissionsTable.component.tsx","../src/components/table/filters/sliderColumnFilter.component.tsx","../src/components/tabs/tabs.component.tsx","../src/utils/mapPagination.ts"],"sourcesContent":["import { Templates } from \"formiojs\";\n\nexport function iconClass(iconset: string | undefined, name: string, spinning?: boolean): string {\n return Templates.current.iconClass(iconset || Templates.current.defaultIconset, name, spinning);\n}\n","export function getEventValue(event: any) {\n const { target } = event;\n\n if (event.target.multiple && event.target.selectedOptions) {\n return Array.from(event.target.selectedOptions, (option: any) => option.value);\n }\n\n return target.type === \"checkbox\" ? target.checked : target.value;\n}\n","import classnames from \"classnames\";\nimport React, { HTMLAttributes } from \"react\";\n\nexport interface FormControlProps<Data = any> {\n name: string;\n value?: Data;\n required?: boolean;\n label?: string;\n className?: string;\n onChange?: (name: string, value: any) => void;\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","import Choices from \"@formio/choices.js\";\nimport classnames from \"classnames\";\nimport React, { HTMLAttributes, ReactElement, useEffect, useRef } from \"react\";\n\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface SelectProps<Data = any> extends FormControlProps, Omit<HTMLAttributes<HTMLSelectElement>, \"onChange\" | \"prefix\"> {\n size?: string;\n placeholder?: string;\n choices: { label: string; value: Data }[];\n layout?: \"html5\" | \"choicesjs\";\n disabled?: boolean;\n multiple?: boolean;\n}\n\nexport function Select<Data = 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<Data>): ReactElement {\n const ref = useRef<HTMLSelectElement>(null);\n\n useEffect(() => {\n let instance: any;\n\n if (layout === \"choicesjs\") {\n instance = new Choices(ref.current as unknown as HTMLInputElement, {\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 data-testid={`select_${name}`}\n {...props}\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","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?: number[];\n pageSize: number;\n setPageSize: any;\n totalLength?: number;\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 totalLength,\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 mr-3 flex items-center\"}>\n <span>{i18n(\"Page\")} </span>\n <strong>\n {pageIndex + 1} of {pageOptions.length}\n </strong>\n </li>\n )}\n {totalLength !== undefined && (\n <li className={\"mb-3 flex items-center\"} data-testid='pagination-total-items'>\n {i18n(\"Total\")}: <strong className='mx-1'>{new Intl.NumberFormat(undefined).format(totalLength)}</strong> {i18n(\"items\")}\n </li>\n )}\n </nav>\n );\n}\n","import React from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\n\nexport function DefaultArrowSort({ column }: any) {\n const { isSorted, isSortedDesc } = column;\n return (\n <span className={\"table-arrow-sort\"}>\n {isSorted ? <i className={iconClass(undefined, isSortedDesc ? \"sort-up\" : \"sort-down\")} /> : \"\"}\n </span>\n );\n}\n","import React from \"react\";\nimport { HeaderGroup } from \"react-table\";\n\nexport interface DefaultCellHeaderProps<Data extends object = any> extends Record<string, unknown> {\n column: HeaderGroup<Data>;\n}\n\nexport function DefaultCellHeader<Data extends Record<string, unknown> = {}>({ column }: DefaultCellHeaderProps<Data>) {\n return (\n <div className={\"table-cell-header\"}>\n <div className='table-cell-header__label' {...column.getSortByToggleProps()}>\n <span>{column.render(\"Header\") as any}</span>\n\n {column.render(\"ArrowSort\") as any}\n </div>\n {column.canFilter ? <div className='table-cell-header__filter'>{column.render(\"Filter\") as any}</div> : null}\n </div>\n );\n}\n","import { useRef } from \"react\";\nimport { useDrag, useDrop } from \"react-dnd\";\n\nimport { DefaultRowProps } from \"../components/defaultRow.component\";\n\nconst DND_ITEM_TYPE = \"row\";\n\nexport function useDndRow<Data extends object = {}>({ onDrag, onDrop, index, ...props }: DefaultRowProps<Data>) {\n const dropRef = useRef<HTMLTableRowElement>(null);\n const dragRef = useRef<HTMLTableDataCellElement>(null);\n\n const [, drop] = useDrop<Data>({\n accept: DND_ITEM_TYPE,\n drop(item) {\n onDrop(item);\n },\n hover(item: any, monitor) {\n if (!dropRef.current) {\n return;\n }\n const dragIndex = item.index;\n const hoverIndex = index;\n // Don't replace items with themselves\n if (dragIndex === hoverIndex) {\n return;\n }\n // Determine rectangle on screen\n const hoverBoundingRect = dropRef.current!.getBoundingClientRect();\n // Get vertical middle\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n // Determine mouse position\n const clientOffset = monitor.getClientOffset();\n if (!clientOffset) {\n return;\n }\n // Get pixels to the top\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n // Only perform the move when the mouse has crossed half of the items height\n // When dragging downwards, only move when the cursor is below 50%\n // When dragging upwards, only move when the cursor is above 50%\n // Dragging downwards\n if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n // Dragging upwards\n if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n\n // Time to actually perform the action\n onDrag(dragIndex, hoverIndex);\n // Note: we're mutating the monitor item here!\n // Generally it's better to avoid mutations,\n // but it's good here for the sake of performance\n // to avoid expensive index searches.\n item.index = hoverIndex;\n }\n });\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n type: DND_ITEM_TYPE,\n item: { index },\n collect: (monitor) => ({\n isDragging: monitor.isDragging()\n })\n }));\n\n const opacity = isDragging ? 0 : 1;\n\n preview(drop(dropRef));\n drag(dragRef);\n\n return {\n ...props,\n opacity,\n isDragging,\n dropRef,\n dragRef\n };\n}\n","import React from \"react\";\nimport { Row } from \"react-table\";\n\nimport type { ExtendedCell } from \"../hooks/useCustomTable.hook\";\n\nexport function DefaultCells<Data extends object = {}>({ row }: { row: Row<Data> }) {\n return (\n <>\n {row.cells.map((cell: ExtendedCell<Data>, i) => {\n const { hidden, colspan } = cell.column;\n\n if (hidden) {\n return null;\n }\n\n return (\n <td\n colSpan={colspan}\n {...cell.getCellProps({\n className: cell.column.className,\n style: cell.column.style\n })}\n key={`tableInstance.page.cells.${cell.value || \"value\"}.${i}`}\n >\n {cell.render(\"Cell\") as any}\n </td>\n );\n })}\n </>\n );\n}\n","import classnames from \"classnames\";\nimport React, { DetailedHTMLProps, HTMLAttributes } from \"react\";\nimport { Row } from \"react-table\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { useDndRow } from \"../hooks/useDragnDropRow.hook\";\nimport { DefaultCells } from \"./defaultCells.component\";\n\nexport interface DefaultRowProps<Data extends object = {}>\n extends Omit<DetailedHTMLProps<HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, \"onClick\" | \"onDrag\" | \"onDrop\"> {\n onClick: (data: any, action: string) => void;\n row: Row<Data>;\n index: number;\n onDrop: (item: Data) => void;\n onDrag: (index: number, hoverIndex: number) => void;\n enableDragNDrop?: boolean;\n}\n\nexport function DefaultDndRow<Data extends object = {}>(props: DefaultRowProps<Data>) {\n const { isDragging, dragRef, dropRef, opacity } = useDndRow(props);\n\n return (\n <tr ref={dropRef} style={{ opacity }}>\n <td ref={dragRef} role='cell' style={{ cursor: isDragging ? \"grabbing\" : \"grab\" }} className='align-middle'>\n <div className='flex items-center justify-center'>\n <i className={classnames(iconClass(undefined, \"dots-vertical-rounded\"))} />\n </div>\n </td>\n <DefaultCells<Data> {...props} />\n </tr>\n );\n}\n\nexport function DefaultRow<Data extends object = {}>({ onClick, row, enableDragNDrop, onDrop, onDrag, ...props }: DefaultRowProps<Data>) {\n const opts = {\n ...props,\n onClick: () => onClick(row.original, \"row\"),\n ...row.getRowProps()\n };\n\n if (enableDragNDrop) {\n return <DefaultDndRow<Data> {...opts} row={row} onDrag={onDrag} onDrop={onDrop} />;\n }\n\n return (\n <tr {...opts}>\n <DefaultCells<Data> row={row} />\n </tr>\n );\n}\n","export function callLast(fn: Function, time: number) {\n let last: any = null;\n\n return (...args: any[]) => {\n if (last) {\n clearTimeout(last);\n last = null;\n }\n\n last = setTimeout(() => fn(...args), time);\n };\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useMemo, useState } from \"react\";\n\nimport { callLast } from \"../../utils/callLast\";\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTextProps<T = any> extends FormControlProps {\n type?: string;\n value?: T;\n /**\n * The input size\n */\n size?: string;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputText<T = any>({\n name,\n value,\n label,\n onChange,\n required,\n size,\n type,\n prefix,\n suffix,\n description,\n className,\n placeholder,\n ...props\n}: InputTextProps<T>) {\n const [localValue, setValue] = useState(value);\n\n const change = useMemo(() => onChange && callLast(onChange, 300), [onChange]);\n\n useEffect(() => {\n setValue(value);\n }, [value]);\n\n return (\n <FormControl\n name={name}\n label={label}\n required={required}\n description={description}\n prefix={prefix}\n suffix={suffix}\n className={className}\n >\n <input\n type={type || \"text\"}\n {...props}\n data-testid={`input_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n id={name}\n required={required}\n value={(localValue || \"\") as any}\n placeholder={placeholder}\n onChange={(event) => {\n const value = getEventValue(event);\n setValue(value);\n\n return change && change(name, value);\n }}\n />\n </FormControl>\n );\n}\n\nInputText.propTypes = {\n label: PropTypes.string,\n type: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n size: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n prefix: PropTypes.any,\n suffix: PropTypes.any\n};\n","import React, { useCallback, useState } from \"react\";\nimport { FilterProps } from \"react-table\";\n\nimport { InputText } from \"../../input-text/inputText.component\";\n\nexport function DefaultColumnFilter<D extends Record<string, unknown> = {}>(\n props: FilterProps<D> & { filterId: string; setFilterId: any }\n) {\n const {\n filterId,\n setFilterId,\n column: { id, filterValue, setFilter }\n } = props;\n\n const [value, setValue] = useState(filterValue || \"\");\n\n const onChange = useCallback(\n (name: string, value: any) => {\n setValue(value);\n setFilterId(id);\n setFilter(value || undefined);\n },\n [id, setValue, setFilterId, setFilter]\n );\n\n return (\n <InputText\n size={\"sm\"}\n id={id}\n name={id}\n key={id}\n autoFocus={id === filterId}\n value={value}\n onChange={onChange}\n placeholder={\"Search records...\"}\n />\n );\n}\n","export const swapElements = <T = any>(myArray: T[], index1: number, index2: number): T[] => {\n myArray = [...myArray];\n\n [myArray[index1], myArray[index2]] = [myArray[index2], myArray[index1]];\n\n return myArray;\n};\n","export const stopPropagationWrapper = (fn: Function) => (event: any) => {\n event.stopPropagation();\n fn();\n};\n","import classnames from \"classnames\";\nimport { HTMLAttributes } from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport interface OperationButtonProps extends Omit<HTMLAttributes<HTMLButtonElement>, \"onClick\"> {\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 ctx?: any;\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 data,\n ctx,\n ...otherProps\n } = props;\n\n return (\n <button\n {...otherProps}\n aria-label={\"Operation button: \" + (title || action)}\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, OperationButtonProps } from \"./defaultOperationButton.component\";\n\nexport interface DefaultCellOperationsProps {\n operations: (OperationButtonProps & {\n OperationButton: typeof DefaultOperationButton;\n permissionsResolver?(data: unknown, ctx: any): boolean;\n })[];\n row: any;\n\n onClick: (data: any, action: string) => void;\n ctx: any;\n i18n: (i18n: string) => string;\n}\n\nexport function DefaultCellOperations({ operations, row, onClick, ctx, i18n }: DefaultCellOperationsProps) {\n const data = row.original;\n\n return (\n <div className='btn-group'>\n {operations\n .filter(({ permissionsResolver }) => !permissionsResolver || permissionsResolver(data, ctx))\n .map(({ OperationButton = DefaultOperationButton, ...operation }, index: number) => {\n return (\n <OperationButton\n key={operation.action}\n {...operation}\n data-testid={`operation-${index}-${operation.action}`}\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, { type ComponentType, type FunctionComponent } from \"react\";\nimport { Hooks } from \"react-table\";\n\nimport { Operation } from \"../../../interfaces\";\nimport { DefaultCellOperations } from \"../components/defaultCellOperations.component\";\n\nexport type UseOperationsHookProps = {\n CellOperations?: FunctionComponent | 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 as FunctionComponent,\n onClick,\n i18n = (f: string) => f,\n ctx\n}: UseOperationsHookProps) {\n return (hooks: Hooks<D>): void => {\n hooks.visibleColumns.push((columns) => {\n if (!operations.length) {\n return columns;\n }\n\n return [\n ...columns,\n {\n id: \"operations\",\n groupByBoundary: true,\n Header: () => <div className={\"text-center\"}>{i18n(\"Operations\")}</div>,\n Cell: (props: any) => <CellOperations {...props} operations={operations} onClick={onClick} ctx={ctx} i18n={i18n} />\n }\n ];\n });\n };\n}\n","import noop from \"lodash/noop\";\nimport React, { PropsWithChildren, useEffect, useState } from \"react\";\nimport {\n Cell,\n CellProps,\n Column,\n FilterProps,\n Renderer,\n TableOptions,\n useFilters,\n useGroupBy,\n usePagination,\n useSortBy,\n useTable\n} from \"react-table\";\n\nimport { OnClickOperation, Operation, QueryOptions } from \"../../../interfaces\";\nimport { Pagination as DefaultPagination } from \"../../pagination/pagination.component\";\nimport { DefaultArrowSort } from \"../components/defaultArrowSort.component\";\nimport { DefaultCellHeader, DefaultCellHeaderProps } from \"../components/defaultCellHeader.component\";\nimport { DefaultRow, DefaultRowProps } from \"../components/defaultRow.component\";\nimport { DefaultColumnFilter } from \"../filters/defaultColumnFilter.component\";\nimport { swapElements } from \"../utils/swapElements\";\nimport { useOperations } from \"./useOperations.hook\";\n\nexport interface ExtraColumnProps {\n colspan?: number;\n hidden?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport type ExtendedColumn<Data extends object = any> = Column<Data> & ExtraColumnProps;\n\nexport type ExtendedCell<Data extends object = any> = Cell<Data, any> & {\n column: ExtraColumnProps;\n};\n\nexport interface TableProps<Data extends object = any> extends TableOptions<Data>, Partial<QueryOptions> {\n /**\n * extended columns interface\n */\n columns: ReadonlyArray<ExtendedColumn<Data>>;\n\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 * Total length of the data\n */\n totalLength?: 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 totalLength,\n sortBy: controlledSortBy,\n isLoading,\n disableFilters,\n disablePagination,\n ArrowSort = DefaultArrowSort,\n ColumnFilter = DefaultColumnFilter,\n EmptyData = DefaultEmptyData,\n Loader = DefaultLoader,\n Pagination = DefaultPagination,\n Row = DefaultRow,\n CellHeader = DefaultCellHeader as any,\n CellOperations,\n i18n = (f: string) => f,\n ...ctx\n } = props;\n\n const _onClick = getOperationCallback(operations, onClick);\n\n const defaultColumn = React.useMemo(\n () => ({\n // Let's set up our default Filter UI\n Filter: ColumnFilter,\n ArrowSort\n }),\n [ColumnFilter, ArrowSort]\n ) as any;\n\n const [filterId, setFilterId] = React.useState(controlledFilterId);\n\n // DND\n const [records, setRecords] = useState<readonly Data[]>(data);\n\n useEffect(() => {\n setRecords(data);\n }, [data]);\n\n const _onDrag = (dragIndex: number, hoverIndex: number) => {\n const newRecords = swapElements([...records], dragIndex, hoverIndex);\n\n setRecords(newRecords);\n\n onDrag(newRecords);\n };\n\n const tableInstance = useTable<Data>(\n {\n ...props,\n columns,\n data,\n ctx,\n defaultColumn,\n // getRowId,\n initialState: {\n ...(props.initialState || {}),\n filters: controlledFilters || [],\n pageIndex: controlledPageIndex || 0,\n pageSize: controlledPageSize || 10,\n sortBy: controlledSortBy || []\n } as any,\n manualPagination: props.manualPagination === undefined ? true : props.manualPagination,\n manualSortBy: props.manualSortBy === undefined ? true : props.manualPagination,\n manualFilters: props.manualFilters === undefined ? true : props.manualFilters,\n disableFilters,\n filterId,\n setFilterId\n } as any,\n ...hooks,\n useOperations({ operations, CellOperations, onClick: _onClick, ctx, i18n })\n );\n\n const {\n setPageSize,\n state: { pageIndex, pageSize, sortBy, filters }\n } = tableInstance;\n\n React.useEffect(() => {\n onChange({\n pageIndex,\n pageSize,\n sortBy,\n filters,\n filterId\n });\n }, [onChange, pageIndex, pageSize, sortBy, filters, filterId]);\n\n return {\n className,\n tableInstance,\n CellHeader,\n isLoading,\n Loader,\n EmptyData,\n Row,\n data,\n disablePagination,\n Pagination,\n pageIndex,\n pageSize,\n pageSizes,\n totalLength,\n setPageSize,\n i18n,\n children,\n onClick: _onClick as any,\n onDrag: _onDrag,\n onDrop: onDrop,\n enableDragNDrop: props.enableDragNDrop\n };\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { DrapNDropContainer } from \"./components/dragNDropContainer\";\nimport { TableProps, useCustomTable } from \"./hooks/useCustomTable.hook\";\n\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 totalLength,\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 totalLength={totalLength}\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 data-testid={\"action-table-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={\"action-table-add\"}\n disabled={currentAction === \"\"}\n className={\"btn btn-success\"}\n onClick={() => currentAction && onAddAction(currentAction)}\n type={\"submit\"}\n >\n <i className={classnames(iconClass(undefined, \"plus\"), \"mr-1\")} /> {i18n(\"Add action\")}\n </button>\n </div>\n </div>\n </Table>\n );\n}\n","import React from \"react\";\n\nfunction formatError(error: any): any {\n if (typeof error === \"string\") {\n return error;\n }\n\n if (Array.isArray(error)) {\n return error.map(formatError);\n }\n\n if (Object.prototype.hasOwnProperty.call(error, \"errors\")) {\n return Object.keys(error.errors).map((key, index) => {\n const item = error.errors[key];\n return (\n <div key={index}>\n <strong>\n {item.name} ({item.path})\n </strong>{\" \"}\n - {item.message}\n </div>\n );\n });\n }\n\n // If this is a standard error.\n if (Object.prototype.hasOwnProperty.call(error, \"message\")) {\n return error.message;\n }\n\n // If this is a joy validation error.\n if (Object.prototype.hasOwnProperty.call(error, \"name\") && error.name === \"ValidationError\") {\n return error.details.map((item: any, index: number) => {\n return <div key={index}>{item.message}</div>;\n });\n }\n\n // If a conflict error occurs on a form, the form is returned.\n if (Object.prototype.hasOwnProperty.call(error, \"_id\") && Object.prototype.hasOwnProperty.call(error, \"display\")) {\n return \"Another user has saved this form already. Please reload and re-apply your changes.\";\n }\n\n return \"An error occurred. See console logs for details.\";\n}\n\nexport interface AlertProps {\n error?: any | any[];\n type?: string;\n}\n\nexport function Alert({ error, type = \"danger\" }: AlertProps) {\n if (!error || (Array.isArray(error) && !error.length)) {\n return null;\n }\n\n return (\n <div className={`alert alert-${type}`} role='alert'>\n {formatError(error)}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nexport interface CardProps {\n children: React.ReactNode;\n label: string;\n className?: string;\n}\n\nexport function Card({ children, label, className }: PropsWithChildren<CardProps>) {\n return (\n <div className={classnames(\"card\", className)}>\n <div className={\"card-header \"}>\n <h4 className={\"card-title\"}>{label}</h4>\n </div>\n <div className={\"card-body\"} role={\"article\"}>\n {children}\n </div>\n </div>\n );\n}\n","import { ExtendedComponentSchema, Form } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport { useEffect, useRef } from \"react\";\n\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\n\nexport interface ChangedSubmission<T = any> extends Submission<T> {\n changed: {\n component: ExtendedComponentSchema;\n instance: any;\n value: any;\n } & Record<string, any>;\n isValid: boolean;\n}\n\nexport interface FormPageChangeProps<Data = any> {\n page: number;\n submission: Submission<Data>;\n}\n\nexport interface UseFormHookProps<Data = any> extends Record<string, any> {\n src?: string;\n /**\n * url to fetch form\n */\n url?: string;\n /**\n * Raw form object\n */\n form?: Partial<FormSchema>;\n /**\n * Configuration option\n */\n options?: FormOptions;\n /**\n * Data submission\n */\n submission?: Submission<Data>;\n\n /// events\n onPrevPage?: (obj: FormPageChangeProps<Data>) => void;\n onNextPage?: (obj: FormPageChangeProps<Data>) => void;\n onCancel?: Function;\n onChange?: (submission: ChangedSubmission) => void;\n onCustomEvent?: (obj: { type: string; event: string; component: ExtendedComponentSchema; data: any }) => void;\n onComponentChange?: (component: ExtendedComponentSchema) => void;\n onSubmit?: (submission: Submission<Data>) => void;\n onAsyncSubmit?: (submission: Submission<Data>) => Promise<any>;\n onSubmitDone?: (submission: Submission<Data>) => void;\n onFormLoad?: Function;\n onError?: (errors: any) => void;\n onRender?: () => void;\n onAttach?: Function;\n onBuild?: Function;\n onFocus?: Function;\n onBlur?: Function;\n onInitialized?: Function;\n onFormReady?: (formio: any) => void;\n}\n\nfunction useEvent(event: string, callback: any, events: Map<string, any>) {\n useEffect(() => {\n if (callback) {\n events.set(event, callback);\n }\n }, [callback, event, events]);\n}\n\nfunction useEvents(funcs: any) {\n const events = useRef<Map<string, any>>(new Map());\n\n const hasEvent = (event: string) => {\n return funcs.hasOwnProperty(event) && typeof funcs[event] === \"function\";\n };\n\n const emit = (event: string, ...args: any[]) => {\n if (hasEvent(event)) {\n const fn = events.current.has(event) ? events.current.get(event) : funcs[event];\n return fn(...args);\n }\n };\n\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onPrevPage\", funcs[\"onPrevPage\"], events.current);\n useEvent(\"onNextPage\", funcs[\"onNextPage\"], events.current);\n useEvent(\"onCancel\", funcs[\"onCancel\"], events.current);\n useEvent(\"onChange\", funcs[\"onChange\"], events.current);\n useEvent(\"onCustomEvent\", funcs[\"onCustomEvent\"], events.current);\n useEvent(\"onComponentChange\", funcs[\"onComponentChange\"], events.current);\n useEvent(\"onSubmit\", funcs[\"onSubmit\"], events.current);\n useEvent(\"onAsyncSubmit\", funcs[\"onAsyncSubmit\"], events.current);\n useEvent(\"onSubmitDone\", funcs[\"onSubmitDone\"], events.current);\n useEvent(\"onFormLoad\", funcs[\"onFormLoad\"], events.current);\n useEvent(\"onError\", funcs[\"onError\"], events.current);\n useEvent(\"onRender\", funcs[\"onRender\"], events.current);\n useEvent(\"onAttach\", funcs[\"onAttach\"], events.current);\n useEvent(\"onBuild\", funcs[\"onBuild\"], events.current);\n useEvent(\"onFocus\", funcs[\"onFocus\"], events.current);\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onInitialized\", funcs[\"onInitialized\"], events.current);\n\n return { events, emit, hasEvent };\n}\n\nexport function useForm<Data = any>(props: UseFormHookProps<Data>) {\n const { src, form, options = {}, submission, url, ...funcs } = props;\n const element = useRef<any>();\n const isLoaded = useRef<boolean>();\n const instance = useRef<Form>();\n const { emit, hasEvent } = useEvents(funcs);\n\n async function customValidation(submission: Submission, callback: (err: Error | null) => void) {\n if (hasEvent(\"onAsyncSubmit\")) {\n try {\n await emit(\"onAsyncSubmit\", submission, instance.current);\n } catch (err: any) {\n callback(err?.errors || err);\n }\n } else {\n callback(null);\n }\n }\n\n const createWebForm = (srcOrForm: any, options: any) => {\n options = Object.assign({}, options);\n srcOrForm = typeof srcOrForm === \"string\" ? srcOrForm : cloneDeep(srcOrForm);\n\n if (!instance.current) {\n isLoaded.current = false;\n options.hooks = {\n ...(options.hooks || {}),\n customValidation: options?.hooks?.customValidation || customValidation\n };\n\n instance.current = new Form(element.current, srcOrForm, options);\n\n instance.current.onAny((event: string, ...args: any[]): void => {\n if (!instance.current) {\n return;\n }\n\n if (event.startsWith(\"formio.\")) {\n const eventName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;\n\n if (eventName === \"onChange\" && !args[0].changed) {\n return;\n }\n\n emit(eventName, ...args, instance.current);\n }\n });\n\n instance.current.ready.then((formio: any) => {\n submission && (formio.submission = cloneDeep(submission));\n\n if (props.onFormReady) {\n props.onFormReady(formio);\n }\n\n isLoaded.current = true;\n });\n }\n\n return instance.current;\n };\n\n useEffect(() => {\n if (instance.current) {\n instance.current.ready.then((formio: any) => {\n if (isEqual(formio.submission.data, submission?.data)) {\n return;\n }\n\n submission && (formio.submission = cloneDeep(submission));\n });\n }\n }, [submission]);\n\n useEffect(() => {\n if (form && instance.current) {\n instance.current.ready.then((formio: any) => {\n formio.form = form;\n if (url) {\n formio.url = url;\n }\n });\n }\n }, [form, url]);\n\n useEffect(() => {\n if (src) {\n if (instance.current) {\n isLoaded.current = false;\n (instance.current as any).destroy(true);\n }\n\n createWebForm(src, options);\n }\n }, [src]);\n\n useEffect(() => {\n if (form) {\n createWebForm(form, options);\n }\n\n return () => {\n isLoaded.current = false;\n instance.current && (instance.current as any).destroy(true);\n };\n }, []);\n\n return {\n element\n };\n}\n","import { Components } from \"formiojs\";\nimport AllComponents from \"formiojs/components\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { useForm, UseFormHookProps } from \"./useForm.hook\";\n\nComponents.setComponents(AllComponents);\n\nexport interface FormProps<Data = any> extends UseFormHookProps<Data> {\n name?: string;\n /**\n *\n */\n className?: string;\n}\n\nexport function Form<Data = any>(props: Partial<FormProps<Data>>) {\n const { element } = useForm(props);\n\n return <div data-testid={`formioContainer${props.name || \"\"}`} ref={element} className={props.className} />;\n}\n\nForm.propTypes = {\n name: PropTypes.string,\n className: PropTypes.string,\n /**\n *\n */\n src: PropTypes.string,\n /**\n * url to fetch form\n */\n url: PropTypes.string,\n /**\n * Raw form object\n */\n form: PropTypes.object,\n /**\n * Data submission\n */\n submission: PropTypes.object,\n /**\n * Configuration option\n */\n options: PropTypes.shape({\n readOnly: PropTypes.bool,\n noAlerts: PropTypes.bool,\n i18n: PropTypes.any,\n template: PropTypes.string,\n saveDraft: PropTypes.bool,\n hooks: PropTypes.any\n }),\n onPrevPage: PropTypes.func,\n onNextPage: PropTypes.func,\n onCancel: PropTypes.func,\n onChange: PropTypes.func,\n onCustomEvent: PropTypes.func,\n onComponentChange: PropTypes.func,\n onSubmit: PropTypes.func,\n onAsyncSubmit: PropTypes.func,\n onSubmitDone: PropTypes.func,\n onFormLoad: PropTypes.func,\n onError: PropTypes.func,\n onRender: PropTypes.func,\n onAttach: PropTypes.func,\n onBuild: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onInitialized: PropTypes.func,\n onFormReady: PropTypes.func,\n formioform: PropTypes.any\n};\n","import { ExtendedComponentSchema } from \"formiojs\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\n\nexport function getRoleComponent({ label, key, description, choices, data }: any): ExtendedComponentSchema {\n return {\n label,\n key,\n description,\n type: \"select\",\n labelPosition: \"top\",\n widget: \"choicesjs\",\n placeholder: \"Select roles...\",\n tooltip: \"\",\n multiple: true,\n dataSrc: \"values\",\n defaultValue: \"\",\n data: {\n values: choices\n },\n template: \"<span>{{ item.label }}</span>\",\n searchEnabled: true,\n selectThreshold: 0,\n validate: {\n required: false,\n custom: \"\",\n customPrivate: false\n },\n values: data\n };\n}\n\nfunction toDescription(description: string, hr = true): string {\n return '<span class=\"text-sm\">' + description + \"</span> \" + (hr ? '<hr class=\"mt-6 mb-5 border-gray-200 mx-20\"/>' : \"\");\n}\n\nexport function getSubmissionPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"create_own\",\n label: '<h4 class=\"text-gray-800\">Create Own Submissions</h4>',\n description: toDescription(\n \"The Create Own Submissions permission will allow a user with one of the Roles to create a Submission. Upon creating the Submission, the user will be defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"create_all\",\n label: '<h4 class=\"text-gray-800\">Create All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Create All Submissions permission will allow a user with one of the Roles to create a new Submission and assign ownership of that Submission to another user.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Own Submissions</h4>',\n description: toDescription(\n \"The Read Own Submissions permission will allow a user with one of the Roles to read a Submission. A user can only read a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: '<h4 class=\"text-gray-800\">Read All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read All Submissions permission will allow a user with one of the Roles to read all Submissions regardless of who owns them.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Own Submissions</h4>',\n description: toDescription(\n \"The Update Own Submissions permission will allow a user with one of the Roles to update a Submission. A user can only update a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update All Submissions permission will allow a user with one of the Roles to update a Submission, regardless of who owns the Submission. Additionally with this permission, a user can change the owner of a Submission.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Own Submissions</h4>',\n description: toDescription(\n \"The Delete Own Submissions permission will allow a user with one of the Roles, to delete a Submission. A user can only delete a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete All Submissions permission will allow a user with one of the Roles to delete a Submission, regardless of who owns the Submission.',\n false\n ),\n choices\n })\n ]\n };\n}\n\nexport function getAccessPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Read Own permission will allow a user, with one of the given Roles, to read a form. A user can only read a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: \"<h4>Read Form Definition</h4>\",\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read permission will allow a user, with one of the given Roles, to read the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Update Own permission will allow a user, with one of the given Roles, to update a form. A user can only update a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update permission will allow a user, with one of the given Roles, to read and edit the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Delete Own permission will allow a user, with one of the given Roles, to delete a form. A user can only delete a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete permission will allow a user, with one of the given Roles, to delete the form.',\n false\n ),\n choices\n })\n ]\n };\n}\n","import { ExtendedComponentSchema } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { RoleSchema } from \"../../interfaces/RoleSchema\";\nimport { getAccessPermissionForm, getSubmissionPermissionForm } from \"./formAccess.schema\";\n\nexport interface Choice {\n label: string;\n value: string;\n}\n\nexport interface Access {\n roles: string[];\n type: string;\n}\n\nexport type AccessRoles = Record<string, string[]>;\n\nexport type FormAccessSchema = {\n access: FormSchema;\n submissionAccess: FormSchema;\n};\n\nexport type SubmissionAccess = {\n access: Submission<AccessRoles>;\n submissionAccess: Submission<AccessRoles>;\n};\n\nfunction rolesToChoices(roles: RoleSchema[]): Choice[] {\n return Object.values(roles).map((role) => {\n return {\n label: role.title || \"\",\n value: role._id || \"\"\n };\n });\n}\n\nfunction accessToHash(keys: (string | undefined)[] | undefined, access: Access[] = []): AccessRoles {\n const hash = Object.values(access).reduce((o: any, role: any) => {\n o[role.type] = role.roles;\n return o;\n }, {});\n\n return ((keys || []).filter(Boolean) as any[]).reduce((data, key: string) => {\n return {\n ...data,\n [key]: hash[key] || []\n };\n }, {});\n}\n\nfunction hashToAccess(data: AccessRoles) {\n const accessRoles: any[] = [];\n\n Object.entries(data).forEach(([accessType, roles]) => {\n if (accessType === \"submit\") {\n return;\n }\n accessRoles.push({\n type: accessType,\n roles\n });\n });\n\n return accessRoles;\n}\n\nexport function getFormAccess(roles: RoleSchema[]): FormAccessSchema {\n const choices = rolesToChoices(roles);\n const access = getAccessPermissionForm({ choices });\n const submissionAccess = getSubmissionPermissionForm({ choices });\n\n return {\n access,\n submissionAccess\n };\n}\n\nexport function dataAccessToSubmissions(form: Partial<FormSchema>, formAccess: FormAccessSchema): SubmissionAccess {\n const getKeys = (components: ExtendedComponentSchema[]) => components.map(({ key }) => key);\n\n return {\n access: {\n data: accessToHash(getKeys(formAccess.access.components), form.access)\n },\n submissionAccess: {\n data: accessToHash(getKeys(formAccess.submissionAccess.components), form.submissionAccess)\n }\n };\n}\n\nexport function submissionsToDataAccess(form: Partial<FormSchema>, submissions: SubmissionAccess): Partial<FormSchema> {\n return {\n ...cloneDeep(form),\n access: hashToAccess(submissions.access.data),\n submissionAccess: hashToAccess(submissions.submissionAccess.data)\n };\n}\n\nexport function shouldUpdate(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess) {\n return !isEqual(submission.data, (submissions as any)[type].data);\n}\n\nexport function updateSubmissions(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess, cb: Function = noop) {\n if (shouldUpdate(type, submission, submissions)) {\n submissions = {\n ...submissions,\n [type]: { data: submission.data }\n };\n cb(submissions);\n }\n\n return submissions;\n}\n","import React, { PropsWithChildren, 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>) {\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","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 useSelectColumnFilter<D extends Record<string, unknown> = {}>(props: FilterProps<D>) {\n const { column } = props;\n const { id, preFilteredRows } = column;\n const { choices: customChoices } = column as any;\n const { filterValue, setFilter } = column;\n\n const choices = (() => {\n if (customChoices) {\n if (typeof customChoices === \"function\") {\n return customChoices(props);\n }\n return customChoices;\n }\n\n return [...new Set(preFilteredRows.map((row) => row.values[id]))]\n .filter((value) => value)\n .map((value) => ({\n label: value,\n value\n }));\n })();\n\n const onChange = (_: string, value: any) => {\n setFilter(value || undefined);\n };\n\n return {\n value: filterValue,\n onChange,\n choices: [{ value: \"\", label: \"All\" }].concat(choices)\n };\n}\n\nexport function SelectColumnFilter<D extends Record<string, unknown> = {}>(props: FilterProps<D>) {\n const { value, choices, onChange } = useSelectColumnFilter(props);\n\n return (\n <Select\n key={`filter-${props.column.id}`}\n name={`filter-${props.column.id}`}\n size={\"sm\"}\n value={value}\n choices={choices}\n onChange={onChange}\n />\n );\n}\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","import classnames from \"classnames\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { CellProps } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport function FormsCell(props: CellProps<FormSchema> & { icon: string; i18n: (f: string) => string }) {\n const {\n icon = \"server\",\n row: { original: form }\n } = props;\n\n return (\n <div className={\"p-1\"}>\n <h4 className={\"text-primary text-lg flex items-center\"}>\n <i className={classnames(iconClass(undefined, icon), \"mr-1\")} />\n {form.title}\n </h4>\n\n <ul className='reset-list text-gray-500'>\n <li className={\"text-sm\"}>Name: {form.name || form.machineName}</li>\n <li className='mt-5'>\n <span className='badge bg-light mr-1'>\n <i className={classnames(iconClass(undefined, \"history\"), \"mr-1\")} />\n <span>Updated {moment(form.modified).fromNow()}</span>\n </span>\n\n {(form.tags || []).map((tag, index) => (\n <button\n key={index}\n className='badge badge-hover bg-secondary mr-1'\n onClick={stopPropagationWrapper(() => {\n props.setFilter(\"tags\", tag);\n props.gotoPage(0);\n })}\n >\n <i className={classnames(iconClass(undefined, \"tags\"), \"mr-1\")} />\n {tag}\n </button>\n ))}\n </li>\n </ul>\n </div>\n );\n}\n","import React from \"react\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { DefaultColumnFilter } from \"../table/filters/defaultColumnFilter.component\";\nimport { SelectColumnFilter } from \"../table/filters/selectColumnFilter.component\";\nimport { TableProps } from \"../table/hooks/useCustomTable.hook\";\nimport { Table } from \"../table/table.component\";\nimport { FormsCell as DefaultFormCell } from \"./components/formCell.component\";\n\nexport type FormsTableProps = Omit<TableProps<FormSchema>, \"columns\"> & {\n icon?: string;\n tags?: { label: string; value: string }[];\n};\n\nexport function FormsTable({ Cell, ...props }: FormsTableProps) {\n const { i18n = (f: string) => f, tags } = props;\n const FormCell = Cell || (DefaultFormCell as any);\n const columns = [\n {\n Header: i18n(\"Title\"),\n accessor: \"title\",\n id: \"title\",\n Cell: (props: any) => <FormCell {...props} icon={props.icon} i18n={i18n} />,\n Filter: DefaultColumnFilter,\n colspan: 2\n },\n {\n Header: i18n(\"Tags\"),\n accessor: \"tags\",\n id: \"tags\",\n hidden: true,\n Filter: (props: any) =>\n tags && tags.length ? (\n <SelectColumnFilter {...props} column={{ ...props.columns, choices: tags }} />\n ) : (\n <DefaultColumnFilter {...props} />\n )\n }\n ];\n\n return <Table {...(props as any)} columns={columns} />;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport interface LoaderProps {\n isActive?: boolean;\n color?: string;\n icon?: string;\n className?: string;\n}\n\nexport function Loader({ isActive, color = \"blue\", icon = \"radio-circle\", className = \"\" }: PropsWithChildren<LoaderProps>) {\n if (isActive) {\n return (\n <div\n className={classnames(\n \"opacity-85 z-20 flex items-center justify-center p-5 absolute top-0 right-0 left-0 bottom-0 bg-white\",\n className\n )}\n >\n <span data-testid={`icon_${icon}`} color={color} className={`text-11xl ${iconClass(undefined, icon, true)}`} />\n </div>\n );\n }\n return null;\n}\n\nLoader.propTypes = {\n isActive: PropTypes.bool,\n icon: PropTypes.string,\n color: PropTypes.string,\n className: PropTypes.string\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport noop from \"lodash\";\nimport React, { PropsWithChildren, useEffect, useRef, useState } from \"react\";\n\nexport function useModal() {\n const [show, setShowModal] = useState(false);\n\n return {\n show,\n setShowModal,\n openModal() {\n setShowModal(true);\n },\n closeModal() {\n setShowModal(false);\n }\n };\n}\n\nexport interface ModalProps extends Record<string, any> {\n show?: boolean;\n closeModal?: () => void;\n onClose?: () => void;\n footer?: any;\n title?: string;\n}\n\nexport function Modal({\n show,\n children,\n closeModal = noop as any,\n onClose = noop as any,\n title,\n footer: ModalFooter,\n style,\n className = \"\",\n ...props\n}: PropsWithChildren<ModalProps>) {\n const titleRef: any = useRef<HTMLDivElement>();\n const footerRef: any = useRef<HTMLDivElement>();\n const [maxHeight, setMaxHeight] = useState<string>();\n\n const onClickClose = () => {\n closeModal();\n onClose();\n };\n\n useEffect(() => {\n if (titleRef.current || footerRef.current) {\n const height = (titleRef?.current?.offsetHeight || 0) + (footerRef?.current?.offsetHeight || 0);\n\n setMaxHeight(`calc(85vh - ${height}px)`);\n } else {\n setMaxHeight(\"auto\");\n }\n }, [show]);\n\n if (!show) {\n return null;\n }\n\n return (\n <div role={\"dialog\"} className={`formio-dialog formio-dialog-theme-default ${className}`}>\n <div className='formio-dialog-overlay' onClick={onClickClose} />\n <div style={style} className={\"formio-dialog-content\"}>\n <div className={\"formio-dialog-wrapper\"}>\n {title ? (\n <div className={\"formio-dialog-title\"} ref={titleRef} data-testid={\"modalTitle\"}>\n {title}\n </div>\n ) : null}\n\n <div className='formio-dialog-body' style={{ maxHeight }} data-testid={\"modalBody\"}>\n {show && children}\n </div>\n\n {ModalFooter ? (\n <div className={\"formio-dialog-footer\"} ref={footerRef} data-testid={\"modalFooter\"}>\n <ModalFooter {...props} closeModal={closeModal} onClose={onClickClose} />\n </div>\n ) : null}\n </div>\n <button\n className='formio-dialog-close float-right btn btn-secondary btn-sm'\n aria-label='close'\n data-testid={\"closeModal\"}\n onClick={onClickClose}\n />\n </div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren, useState } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Modal, ModalProps } from \"./modal.component\";\n\nfunction RemoveModalFooter({ value, valueToCompare, onSubmit, onClose, i18n = (f: string) => f }: ModalProps) {\n return (\n <div className={\"flex items-center justify-center bg-white p-2\"}>\n <button data-testid='customCloseModal' className={\"btn btn-outline-dark mx-2\"} onClick={onClose}>\n {i18n(\"Cancel\")}\n </button>\n <button\n disabled={valueToCompare !== value}\n data-testid='customSubmitModal'\n className={\"btn btn-danger mx-2\"}\n onClick={(e) => {\n if (valueToCompare === value) {\n onSubmit(e);\n }\n }}\n >\n <i className={classnames(iconClass(undefined, \"trash\"), \"mr-2\")} />\n {i18n(\"Remove\")}\n </button>\n </div>\n );\n}\n\nexport interface RemoveModalProps extends ModalProps {\n valueToCompare: string;\n itemType?: string;\n i18n?: (f: string) => string;\n maxWidth?: string;\n}\n\nexport function RemoveModal({ maxWidth = \"300px\", children, ...props }: PropsWithChildren<RemoveModalProps>) {\n const { i18n = (f) => f } = props;\n const [value, setValue] = useState();\n\n return (\n <Modal\n {...props}\n className={classnames(props.className, \"formio-dialog-theme-remove\")}\n style={{ maxWidth }}\n title={`Drop ${props.itemType?.toLowerCase()}`}\n value={value}\n footer={RemoveModalFooter}\n >\n <div className='px-4 pt-3 pb-5'>\n <div className='pb-1'>\n {children}\n {i18n(\"To drop\")} <strong>{props.valueToCompare}</strong>, \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\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { DefaultCell } from \"../components/defaultCell.component\";\nimport { SelectColumnFilter } from \"../filters/selectColumnFilter.component\";\nimport { ExtendedColumn } from \"../hooks/useCustomTable.hook\";\n\nexport function mapFormToColumns(form: FormSchema): ExtendedColumn[] {\n const columns: ExtendedColumn[] = [];\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: ExtendedColumn = {\n Header: component.label || component.title || component.key,\n accessor: `data.${component.key}`,\n className: \"text-center\",\n Cell: (props: any) => <DefaultCell {...props} render={(value: any) => cmp.asString(value)} />\n };\n\n if (component.type === \"select\" && component.dataSrc === \"values\") {\n column.Filter = SelectColumnFilter;\n (column as any).choices = component.data.values;\n }\n\n columns.push(column);\n }\n });\n\n return columns;\n}\n","import React from \"react\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { TableProps } from \"../table/hooks/useCustomTable.hook\";\nimport { Table } from \"../table/table.component\";\nimport { mapFormToColumns } from \"../table/utils/mapFormToColumns\";\n\nexport type SubmissionsTableProps = Omit<TableProps<Submission>, \"columns\"> & {\n form?: FormSchema;\n};\n\nexport function SubmissionsTable({ form, ...props }: SubmissionsTableProps) {\n const columns: any[] | undefined = form && mapFormToColumns(form);\n\n return <Table {...props} columns={columns!} />;\n}\n","import React from \"react\";\nimport { FilterProps } from \"react-table\";\n\nexport function SliderColumnFilter<D extends Record<string, unknown> = {}>({\n column: { filterValue, setFilter, preFilteredRows, id }\n}: FilterProps<D>) {\n const [min, max] = React.useMemo(() => {\n let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n preFilteredRows.forEach((row) => {\n min = Math.min(row?.values[id], min);\n max = Math.max(row?.values[id], max);\n });\n return [min, max];\n }, [id, preFilteredRows]);\n\n return (\n <>\n <input\n type='range'\n min={min}\n max={max}\n value={filterValue || min}\n onChange={(e) => {\n setFilter(parseInt(e.target.value, 10));\n }}\n />\n <button onClick={() => setFilter(undefined)}>Off</button>\n </>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport function ButtonTab({ icon, back, onClick, isActive, reverse, children, className, after }: PropsWithChildren<any>) {\n return (\n <div\n title={\"button-wrapper\"}\n className={classnames(\"tw-tabs__button-wrapper\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\", className)}\n >\n <button\n title={\"button-tab\"}\n className={classnames(\"tw-tabs__button\", reverse ? \"-reverse\" : \"\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\")}\n onClick={onClick}\n >\n {icon && <i className={classnames(iconClass(undefined, icon), \"tw-tabs__button-icon\")} />}\n <span className={\"tw-tabs__button-label\"}>{children}</span>\n {after}\n </button>\n <div className={classnames(\"tw-tabs__button-border\", isActive ? \"-active\" : \"\")} />\n </div>\n );\n}\n\nexport interface TabsItemProps extends Record<string, any> {\n label?: string;\n icon?: string;\n}\n\nexport interface TabsProps extends Record<string, any> {\n headerChildren?: any;\n AddButton?: any;\n current?: TabsItemProps;\n items?: TabsItemProps[];\n style?: any;\n className?: string;\n reverse?: boolean;\n Button?: any;\n onClick?: (item: TabsItemProps) => void;\n i18n?: (f: string) => string;\n}\n\nexport function Tabs({\n style,\n current,\n items = [],\n children,\n HeaderChildren,\n AddButton,\n Button = ButtonTab,\n className,\n onClick,\n i18n = (f) => f,\n ...additionalProps\n}: PropsWithChildren<TabsProps>) {\n return (\n <div data-testid={\"tabs-comp\"} className={`tw-tabs ${className}`} style={style}>\n <div>\n <nav className='tw-tabs__header'>\n <div className='tw-tabs__header-wrapper'>\n <div className='tw-tabs__header-border' />\n {items\n .filter((item) => item.label || item.icon)\n .map((item, index) => {\n return (\n <Button\n key={index}\n back={item.back}\n isActive={current?.action === item.action}\n exact={item.exact}\n onClick={() => {\n onClick && onClick(item);\n }}\n {...additionalProps}\n {...item}\n >\n {i18n(item.label || \"\")}\n </Button>\n );\n })}\n {AddButton && <AddButton {...additionalProps} current={current} />}\n </div>\n </nav>\n {HeaderChildren && <HeaderChildren {...additionalProps} current={current} />}\n </div>\n <div title={\"tab-body\"} className={\"tw-tabs__body\"}>\n {children}\n </div>\n </div>\n );\n}\n","export function mapPagination({ skip, limit, serverCount, length }: any = {}): any {\n skip = skip || 0;\n limit = limit || 10;\n serverCount = serverCount || length;\n\n return {\n pageIndex: Math.floor(skip / limit),\n pageSize: limit,\n pageCount: Math.ceil(serverCount / limit)\n };\n}\n"],"names":["iconClass","iconset","name","spinning","Templates","current","defaultIconset","getEventValue","event","target","multiple","selectedOptions","Array","from","option","value","type","checked","FormControl","_ref","children","required","prefix","suffix","description","label","className","React","createElement","id","classnames","htmlFor","Select","size","onChange","choices","placeholder","layout","props","_objectWithoutPropertiesLoose","_excluded","ref","useRef","useEffect","instance","Choices","removeItemButton","placeholderValue","destroy","shadow","_extends","map","_ref2","key","String","DrapNDropContainer","enableDragNDrop","DndProvider","backend","HTML5Backend","Fragment","LEFT_PAGE","RIGHT_PAGE","range","to","step","i","push","getPageNumbers","currentPage","pageNeighbours","totalPages","totalNumbers","totalBlocks","calculatedStartPage","Math","max","calculatedEndPage","min","startPage","endPage","pages","hasLeftSpill","hasRightSpill","spillOffset","length","extraPages","PaginationButton","component","Component","disabled","active","otherProps","Pagination","pageSizes","gotoPage","canPreviousPage","previousPage","nextPage","canNextPage","pageCount","pageIndex","pageOptions","pageSize","setPageSize","totalLength","i18n","f","pageNumbers","tabIndex","onClick","page","includes","undefined","Intl","NumberFormat","format","DefaultArrowSort","column","isSorted","isSortedDesc","DefaultCellHeader","getSortByToggleProps","render","canFilter","DND_ITEM_TYPE","useDndRow","onDrag","onDrop","index","dropRef","dragRef","drop","useDrop","accept","item","hover","monitor","dragIndex","hoverIndex","hoverBoundingRect","getBoundingClientRect","hoverMiddleY","bottom","top","clientOffset","getClientOffset","hoverClientY","y","isDragging","drag","preview","useDrag","collect","opacity","DefaultCells","row","cells","cell","hidden","colspan","colSpan","getCellProps","style","DefaultDndRow","role","cursor","DefaultRow","opts","original","getRowProps","callLast","fn","time","last","clearTimeout","setTimeout","slice","call","arguments","InputText","localValue","setValue","useState","change","useMemo","propTypes","PropTypes","string","isRequired","any","bool","func","DefaultColumnFilter","filterId","setFilterId","filterValue","setFilter","useCallback","autoFocus","swapElements","myArray","index1","index2","stopPropagationWrapper","stopPropagation","DefaultOperationButton","buttonSize","buttonType","buttonOutline","action","icon","title","filter","Boolean","join","DefaultCellOperations","operations","ctx","data","permissionsResolver","_ref3","OperationButton","operation","useOperations","CellOperations","hooks","visibleColumns","columns","groupByBoundary","Header","Cell","getOperationCallback","find","alias","DefaultLoader","DefaultEmptyData","useFilters","useGroupBy","useSortBy","usePagination","useCustomTable","noop","filters","controlledFilters","controlledFilterId","controlledPageSize","controlledPageIndex","sortBy","controlledSortBy","isLoading","disableFilters","disablePagination","ArrowSort","ColumnFilter","EmptyData","Loader","DefaultPagination","Row","CellHeader","_onClick","defaultColumn","Filter","records","setRecords","_onDrag","newRecords","tableInstance","useTable","initialState","manualPagination","manualSortBy","manualFilters","state","Table","getTableProps","headerGroups","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getTableBodyProps","prepareRow","ActionsTable","availableActions","onAddAction","currentAction","setAction","accessor","concat","formatError","error","isArray","Object","prototype","hasOwnProperty","keys","errors","path","message","details","Alert","Card","useEvent","callback","events","set","useEvents","funcs","Map","hasEvent","emit","has","get","useForm","customValidation","submission","_temp2","_temp","_catch","Promise","resolve","then","err","e","reject","src","form","options","url","element","isLoaded","createWebForm","srcOrForm","assign","cloneDeep","_options","_options$hooks","Form","onAny","args","startsWith","eventName","charAt","toUpperCase","changed","ready","formio","onFormReady","isEqual","Components","setComponents","AllComponents","object","shape","readOnly","noAlerts","template","saveDraft","onPrevPage","onNextPage","onCancel","onCustomEvent","onComponentChange","onSubmit","onAsyncSubmit","onSubmitDone","onFormLoad","onError","onRender","onAttach","onBuild","onFocus","onBlur","onInitialized","formioform","getRoleComponent","labelPosition","widget","tooltip","dataSrc","defaultValue","values","searchEnabled","selectThreshold","validate","custom","customPrivate","toDescription","hr","getSubmissionPermissionForm","components","getAccessPermissionForm","rolesToChoices","roles","_id","accessToHash","access","hash","reduce","o","hashToAccess","accessRoles","entries","forEach","accessType","getFormAccess","submissionAccess","dataAccessToSubmissions","formAccess","getKeys","submissionsToDataAccess","submissions","shouldUpdate","updateSubmissions","cb","useFormAccess","formDefinition","setSubmissions","input","NamedFormAccess","isValid","setIsValid","FormAccess","mapData","defaults","mapSettingsForm","settingsForm","FormioUtils","eachComponent","resourceExclude","basePath","valueProperty","persistent","FormAction","actionInfo","_excluded2","createBuilder","el","display","FormioFormBuilder","builder","handleEvent","EVENTS_CHANGE","EVENTS","on","er","console","FormBuilder","constructor","elRef","builderRef","componentDidMount","_this","create","_this2","onAddComponent","onUpdateComponent","onRemoveComponent","onSaveComponent","onCancelComponent","onMoveComponent","onEditComponent","onEditJson","onCopyComponent","onPasteComponent","firstChild","whenComponentsChange","bind","_createBuilder","componentWillUnmount","_this$builderRef","componentWillReceiveProps","nextProps","_this3","setState","_this$props","defaultProps","onReady","onDestroy","array","useTooltip","Tooltip","FormEditCTAs","saveText","onCopy","hasUndo","hasRedo","onUndo","onRedo","onReset","t","copyTooltipRef","trigger","placement","undoTooltipRef","redoTooltipRef","resetTooltipRef","InputTags","delimiter","editItems","passedElement","addEventListener","uniq","detail","v","defaultDisplayChoices","FormParameters","enableTags","typeChoices","displayChoices","readonly","baseUrl","window","location","origin","hasTypeChoices","textTransform","width","tags","hasChanged","createInitialState","past","future","reducer","update","newValue","camelCase","toLowerCase","previous","newPast","next","newFuture","useFormEdit","dispatchFormAction","useReducer","modified","formChange","newForm","redo","undo","reset","setChange","FormEdit","getFormSettingsSchema","mask","inputType","inputFormat","spellcheck","attributes","delimeter","storeas","maxTags","addAnother","disableAddingRemovingRows","keyBeforeValue","valueComponent","hideLabel","formSettingsToSubmission","properties","submissionToFormSettings","useFormSettings","setSubmission","FormSettings","useSelectColumnFilter","preFilteredRows","customChoices","Set","_","SelectColumnFilter","global","factory","module","exports","this","hookCallback","apply","setHookCallback","toString","isObject","hasOwnProp","a","b","isObjectEmpty","obj","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","arr","res","arrLen","extend","valueOf","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","some","fun","len","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","momentProperties","updateInProgress","copyConfig","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","argLen","Error","stack","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","abs","zerosToFill","sign","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","localeData","removeFormattingTokens","match","replace","makeFormatFunction","formatMoment","invalidDate","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","s","ss","mm","h","hh","d","dd","w","ww","M","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","n","x","indexOf","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","parseTwoDigitYear","parseInt","daysInYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","hours","kFormat","minutes","seconds","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","_abbr","require","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","exec","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","_useUTC","c","currentDateArray","nowValue","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","invalid","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","property","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","defaultFormat","defaultFormatUtc","toISOString","keepOffset","toDate","inspect","zone","datetime","inputString","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","eraYearOrdinalParse","localeEras","eras","_eras","since","until","Infinity","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","abbrPieces","namePieces","narrowPieces","isoWeekYear","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseZone","isDST","zoneAbbr","zoneName","dates","isDSTShifted","createUnix","createInZone","preParsePostFormat","proto$1","firstDayOfYear","firstDayOfWeek","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","FormsCell","machineName","moment","tag","FormsTable","FormCell","DefaultFormCell","isActive","color","useModal","show","setShowModal","openModal","closeModal","Modal","onClose","footer","ModalFooter","titleRef","footerRef","maxHeight","setMaxHeight","onClickClose","_titleRef$current","_footerRef$current","height","offsetHeight","RemoveModalFooter","valueToCompare","RemoveModal","_props$itemType","_props$itemType2","maxWidth","itemType","ReactComponent","reactInstance","shouldSetValue","dataForSetting","updateValue","getValue","dataValue","updateOnChange","$reactNode","refs","init","attach","_super$attach","loadRefs","attachReact","detach","detachReact","renderReact","ReactDOM","unmountComponentAtNode","checkValidity","dirty","rowData","valid","DefaultCell","rendered","dangerouslySetInnerHTML","__html","mapFormToColumns","tableView","cmp","asString","SubmissionsTable","SliderColumnFilter","ButtonTab","back","reverse","after","Tabs","items","HeaderChildren","AddButton","Button","additionalProps","exact","mapPagination","skip","serverCount"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/utils/iconClass.ts","../src/utils/getEventValue.ts","../src/components/form-control/formControl.component.tsx","../src/components/select/select.component.tsx","../src/components/table/components/dragNDropContainer.tsx","../src/components/table/utils/getPageNumbers.ts","../src/components/pagination/pagination.component.tsx","../src/components/table/components/defaultArrowSort.component.tsx","../src/components/table/components/defaultCellHeader.component.tsx","../src/components/table/hooks/useDragnDropRow.hook.ts","../src/components/table/components/defaultCells.component.tsx","../src/components/table/components/defaultRow.component.tsx","../src/utils/callLast.ts","../src/components/input-text/inputText.component.tsx","../src/components/table/filters/defaultColumnFilter.component.tsx","../src/components/table/utils/swapElements.ts","../src/utils/stopPropagationWrapper.ts","../src/components/table/components/defaultOperationButton.component.tsx","../src/components/table/components/defaultCellOperations.component.tsx","../src/components/table/hooks/useOperations.hook.tsx","../src/components/table/hooks/useCustomTable.hook.tsx","../src/components/table/table.component.tsx","../src/components/actions-table/actionsTable.component.tsx","../src/components/alert/alert.component.tsx","../src/components/card/card.component.tsx","../src/components/form/useForm.hook.ts","../src/components/form/form.component.tsx","../src/components/form-access/formAccess.schema.ts","../src/components/form-access/formAccess.utils.ts","../src/components/form-access/formAccess.component.tsx","../src/components/form-action/formAction.component.tsx","../src/components/form-builder/formBuilder.component.tsx","../src/hooks/useTooltip.ts","../src/components/form-edit/formCtas.component.tsx","../src/components/input-tags/inputTags.component.tsx","../src/components/form-edit/formParameters.component.tsx","../src/components/form-edit/formEdit.reducer.ts","../src/components/form-edit/useFormEdit.hook.ts","../src/components/form-edit/formEdit.component.tsx","../src/components/form-settings/formSettings.schema.ts","../src/components/form-settings/formSettings.utils.ts","../src/components/form-settings/formSettings.component.tsx","../src/components/table/filters/selectColumnFilter.component.tsx","../../../node_modules/moment/moment.js","../src/components/forms-table/components/formCell.component.tsx","../src/components/forms-table/formsTable.component.tsx","../src/components/loader/loader.component.tsx","../src/components/modal/modal.component.tsx","../src/components/modal/removeModal.component.tsx","../src/components/react-component/reactComponent.component.tsx","../src/components/table/components/defaultCell.component.tsx","../src/components/table/utils/mapFormToColumns.tsx","../src/components/submissions-table/submissionsTable.component.tsx","../src/components/table/filters/sliderColumnFilter.component.tsx","../src/components/tabs/tabs.component.tsx","../src/utils/mapPagination.ts"],"sourcesContent":["import { Templates } from \"formiojs\";\n\nexport function iconClass(iconset: string | undefined, name: string, spinning?: boolean): string {\n return Templates.current.iconClass(iconset || Templates.current.defaultIconset, name, spinning);\n}\n","export function getEventValue(event: any) {\n const { target } = event;\n\n if (event.target.multiple && event.target.selectedOptions) {\n return Array.from(event.target.selectedOptions, (option: any) => option.value);\n }\n\n return target.type === \"checkbox\" ? target.checked : target.value;\n}\n","import classnames from \"classnames\";\nimport React from \"react\";\n\nexport interface FormControlProps<Data = any> {\n name: string;\n value?: Data;\n required?: boolean;\n label?: string;\n className?: string;\n onChange?: (name: string, value: any) => void;\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","import Choices from \"@formio/choices.js\";\nimport classnames from \"classnames\";\nimport React, { HTMLAttributes, ReactElement, useEffect, useRef } from \"react\";\n\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface SelectProps<Data = any> extends FormControlProps, Omit<HTMLAttributes<HTMLSelectElement>, \"onChange\" | \"prefix\"> {\n size?: string;\n placeholder?: string;\n choices: { label: string; value: Data }[];\n layout?: \"html5\" | \"choicesjs\";\n disabled?: boolean;\n multiple?: boolean;\n}\n\nexport function Select<Data = 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<Data>): ReactElement {\n const ref = useRef<HTMLSelectElement>(null);\n\n useEffect(() => {\n let instance: any;\n\n if (layout === \"choicesjs\") {\n instance = new Choices(ref.current as unknown as HTMLInputElement, {\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 {}\n <select\n ref={ref}\n data-testid={`select_${name}`}\n {...props}\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","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?: number[];\n pageSize: number;\n setPageSize: any;\n totalLength?: number;\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 totalLength,\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 mr-3 flex items-center\"}>\n <span>{i18n(\"Page\")} </span>\n <strong>\n {pageIndex + 1} of {pageOptions.length}\n </strong>\n </li>\n )}\n {totalLength !== undefined && (\n <li className={\"mb-3 flex items-center\"} data-testid='pagination-total-items'>\n {i18n(\"Total\")}: <strong className='mx-1'>{new Intl.NumberFormat(undefined).format(totalLength)}</strong> {i18n(\"items\")}\n </li>\n )}\n </nav>\n );\n}\n","import React from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\n\nexport function DefaultArrowSort({ column }: any) {\n const { isSorted, isSortedDesc } = column;\n return (\n <span className={\"table-arrow-sort\"}>\n {isSorted ? <i className={iconClass(undefined, isSortedDesc ? \"sort-up\" : \"sort-down\")} /> : \"\"}\n </span>\n );\n}\n","import React from \"react\";\nimport { HeaderGroup } from \"react-table\";\n\nexport interface DefaultCellHeaderProps<Data extends object = any> extends Record<string, unknown> {\n column: HeaderGroup<Data>;\n}\n\nexport function DefaultCellHeader<Data extends Record<string, unknown> = {}>({ column }: DefaultCellHeaderProps<Data>) {\n return (\n <div className={\"table-cell-header\"}>\n <div className='table-cell-header__label' {...column.getSortByToggleProps()}>\n <span>{column.render(\"Header\") as any}</span>\n\n {column.render(\"ArrowSort\") as any}\n </div>\n {column.canFilter ? <div className='table-cell-header__filter'>{column.render(\"Filter\") as any}</div> : null}\n </div>\n );\n}\n","import { useRef } from \"react\";\nimport { useDrag, useDrop } from \"react-dnd\";\n\nimport { DefaultRowProps } from \"../components/defaultRow.component\";\n\nconst DND_ITEM_TYPE = \"row\";\n\nexport function useDndRow<Data extends object = {}>({ onDrag, onDrop, index, ...props }: DefaultRowProps<Data>) {\n const dropRef = useRef<HTMLTableRowElement>(null);\n const dragRef = useRef<HTMLTableDataCellElement>(null);\n\n const [, drop] = useDrop<Data>({\n accept: DND_ITEM_TYPE,\n drop(item) {\n onDrop(item);\n },\n hover(item: any, monitor) {\n if (!dropRef.current) {\n return;\n }\n const dragIndex = item.index;\n const hoverIndex = index;\n // Don't replace items with themselves\n if (dragIndex === hoverIndex) {\n return;\n }\n // Determine rectangle on screen\n const hoverBoundingRect = dropRef.current!.getBoundingClientRect();\n // Get vertical middle\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n // Determine mouse position\n const clientOffset = monitor.getClientOffset();\n if (!clientOffset) {\n return;\n }\n // Get pixels to the top\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n // Only perform the move when the mouse has crossed half of the items height\n // When dragging downwards, only move when the cursor is below 50%\n // When dragging upwards, only move when the cursor is above 50%\n // Dragging downwards\n if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n // Dragging upwards\n if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n\n // Time to actually perform the action\n onDrag(dragIndex, hoverIndex);\n // Note: we're mutating the monitor item here!\n // Generally it's better to avoid mutations,\n // but it's good here for the sake of performance\n // to avoid expensive index searches.\n item.index = hoverIndex;\n }\n });\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n type: DND_ITEM_TYPE,\n item: { index },\n collect: (monitor) => ({\n isDragging: monitor.isDragging()\n })\n }));\n\n const opacity = isDragging ? 0 : 1;\n\n preview(drop(dropRef));\n drag(dragRef);\n\n return {\n ...props,\n opacity,\n isDragging,\n dropRef,\n dragRef\n };\n}\n","import React from \"react\";\nimport { Row } from \"react-table\";\n\nimport type { ExtendedCell } from \"../hooks/useCustomTable.hook\";\n\nexport function DefaultCells<Data extends object = {}>({ row }: { row: Row<Data> }) {\n return (\n <>\n {row.cells.map((cell: ExtendedCell<Data>, i) => {\n const { hidden, colspan } = cell.column;\n\n if (hidden) {\n return null;\n }\n\n return (\n <td\n colSpan={colspan}\n {...cell.getCellProps({\n className: cell.column.className,\n style: cell.column.style\n })}\n key={`tableInstance.page.cells.${cell.value || \"value\"}.${i}`}\n >\n {cell.render(\"Cell\") as any}\n </td>\n );\n })}\n </>\n );\n}\n","import classnames from \"classnames\";\nimport React, { DetailedHTMLProps, HTMLAttributes } from \"react\";\nimport { Row } from \"react-table\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { useDndRow } from \"../hooks/useDragnDropRow.hook\";\nimport { DefaultCells } from \"./defaultCells.component\";\n\nexport interface DefaultRowProps<Data extends object = {}>\n extends Omit<DetailedHTMLProps<HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, \"onClick\" | \"onDrag\" | \"onDrop\"> {\n onClick: (data: any, action: string) => void;\n row: Row<Data>;\n index: number;\n onDrop: (item: Data) => void;\n onDrag: (index: number, hoverIndex: number) => void;\n enableDragNDrop?: boolean;\n}\n\nexport function DefaultDndRow<Data extends object = {}>(props: DefaultRowProps<Data>) {\n const { isDragging, dragRef, dropRef, opacity } = useDndRow(props);\n\n return (\n <tr ref={dropRef} style={{ opacity }}>\n {/* eslint-disable-next-line jsx-a11y/no-interactive-element-to-noninteractive-role */}\n <td ref={dragRef} role='cell' style={{ cursor: isDragging ? \"grabbing\" : \"grab\" }} className='align-middle'>\n <div className='flex items-center justify-center'>\n <i className={classnames(iconClass(undefined, \"dots-vertical-rounded\"))} />\n </div>\n </td>\n <DefaultCells<Data> {...props} />\n </tr>\n );\n}\n\nexport function DefaultRow<Data extends object = {}>({ onClick, row, enableDragNDrop, onDrop, onDrag, ...props }: DefaultRowProps<Data>) {\n const opts = {\n ...props,\n onClick: () => onClick(row.original, \"row\"),\n ...row.getRowProps()\n };\n\n if (enableDragNDrop) {\n return <DefaultDndRow<Data> {...opts} row={row} onDrag={onDrag} onDrop={onDrop} />;\n }\n\n return (\n <tr {...opts}>\n <DefaultCells<Data> row={row} />\n </tr>\n );\n}\n","export function callLast(fn: Function, time: number) {\n let last: any = null;\n\n return (...args: any[]) => {\n if (last) {\n clearTimeout(last);\n last = null;\n }\n\n last = setTimeout(() => fn(...args), time);\n };\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useMemo, useState } from \"react\";\n\nimport { callLast } from \"../../utils/callLast\";\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTextProps<T = any> extends FormControlProps {\n type?: string;\n value?: T;\n /**\n * The input size\n */\n size?: string;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputText<T = any>({\n name,\n value,\n label,\n onChange,\n required,\n size,\n type,\n prefix,\n suffix,\n description,\n className,\n placeholder,\n ...props\n}: InputTextProps<T>) {\n const [localValue, setValue] = useState(value);\n\n const change = useMemo(() => onChange && callLast(onChange, 300), [onChange]);\n\n useEffect(() => {\n setValue(value);\n }, [value]);\n\n return (\n <FormControl\n name={name}\n label={label}\n required={required}\n description={description}\n prefix={prefix}\n suffix={suffix}\n className={className}\n >\n <input\n type={type || \"text\"}\n {...props}\n data-testid={`input_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n id={name}\n required={required}\n value={(localValue || \"\") as any}\n placeholder={placeholder}\n onChange={(event) => {\n const value = getEventValue(event);\n setValue(value);\n\n return change && change(name, value);\n }}\n />\n </FormControl>\n );\n}\n\nInputText.propTypes = {\n label: PropTypes.string,\n type: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n size: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n prefix: PropTypes.any,\n suffix: PropTypes.any\n};\n","import React, { useCallback, useState } from \"react\";\nimport { FilterProps } from \"react-table\";\n\nimport { InputText } from \"../../input-text/inputText.component\";\n\nexport function DefaultColumnFilter<D extends Record<string, unknown> = {}>(\n props: FilterProps<D> & { filterId: string; setFilterId: any }\n) {\n const {\n filterId,\n setFilterId,\n column: { id, filterValue, setFilter }\n } = props;\n\n const [value, setValue] = useState(filterValue || \"\");\n\n const onChange = useCallback(\n (name: string, value: any) => {\n setValue(value);\n setFilterId(id);\n setFilter(value || undefined);\n },\n [id, setValue, setFilterId, setFilter]\n );\n\n /* eslint-disable jsx-a11y/no-autofocus */\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 { HTMLAttributes } from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport interface OperationButtonProps extends Omit<HTMLAttributes<HTMLButtonElement>, \"onClick\"> {\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 ctx?: any;\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n data,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ctx,\n ...otherProps\n } = props;\n\n return (\n <button\n {...otherProps}\n aria-label={\"Operation button: \" + (title || action)}\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, OperationButtonProps } from \"./defaultOperationButton.component\";\n\nexport interface DefaultCellOperationsProps {\n operations: (OperationButtonProps & {\n OperationButton: typeof DefaultOperationButton;\n permissionsResolver?(data: unknown, ctx: any): boolean;\n })[];\n row: any;\n\n onClick: (data: any, action: string) => void;\n ctx: any;\n i18n: (i18n: string) => string;\n}\n\nexport function DefaultCellOperations({ operations, row, onClick, ctx, i18n }: DefaultCellOperationsProps) {\n const data = row.original;\n\n return (\n <div className='btn-group'>\n {operations\n .filter(({ permissionsResolver }) => !permissionsResolver || permissionsResolver(data, ctx))\n .map(({ OperationButton = DefaultOperationButton, ...operation }, index: number) => {\n return (\n <OperationButton\n key={operation.action}\n {...operation}\n data-testid={`operation-${index}-${operation.action}`}\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, { type ComponentType, type FunctionComponent } from \"react\";\nimport { Hooks } from \"react-table\";\n\nimport { Operation } from \"../../../interfaces\";\nimport { DefaultCellOperations } from \"../components/defaultCellOperations.component\";\n\nexport type UseOperationsHookProps = {\n CellOperations?: FunctionComponent | 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 as FunctionComponent,\n onClick,\n i18n = (f: string) => f,\n ctx\n}: UseOperationsHookProps) {\n return (hooks: Hooks<D>): void => {\n hooks.visibleColumns.push((columns) => {\n if (!operations.length) {\n return columns;\n }\n\n return [\n ...columns,\n {\n id: \"operations\",\n groupByBoundary: true,\n Header: () => <div className={\"text-center\"}>{i18n(\"Operations\")}</div>,\n Cell: (props: any) => <CellOperations {...props} operations={operations} onClick={onClick} ctx={ctx} i18n={i18n} />\n }\n ];\n });\n };\n}\n","import noop from \"lodash/noop\";\nimport React, { PropsWithChildren, useEffect, useState } from \"react\";\nimport {\n Cell,\n CellProps,\n Column,\n FilterProps,\n Renderer,\n TableOptions,\n useFilters,\n useGroupBy,\n usePagination,\n useSortBy,\n useTable\n} from \"react-table\";\n\nimport { OnClickOperation, Operation, QueryOptions } from \"../../../interfaces\";\nimport { Pagination as DefaultPagination } from \"../../pagination/pagination.component\";\nimport { DefaultArrowSort } from \"../components/defaultArrowSort.component\";\nimport { DefaultCellHeader, DefaultCellHeaderProps } from \"../components/defaultCellHeader.component\";\nimport { DefaultRow, DefaultRowProps } from \"../components/defaultRow.component\";\nimport { DefaultColumnFilter } from \"../filters/defaultColumnFilter.component\";\nimport { swapElements } from \"../utils/swapElements\";\nimport { useOperations } from \"./useOperations.hook\";\n\nexport interface ExtraColumnProps {\n colspan?: number;\n hidden?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport type ExtendedColumn<Data extends object = any> = Column<Data> & ExtraColumnProps;\n\nexport type ExtendedCell<Data extends object = any> = Cell<Data, any> & {\n column: ExtraColumnProps;\n};\n\nexport interface TableProps<Data extends object = any> extends TableOptions<Data>, Partial<QueryOptions> {\n /**\n * extended columns interface\n */\n columns: ReadonlyArray<ExtendedColumn<Data>>;\n\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 * Total length of the data\n */\n totalLength?: 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 totalLength,\n sortBy: controlledSortBy,\n isLoading,\n disableFilters,\n disablePagination,\n ArrowSort = DefaultArrowSort,\n ColumnFilter = DefaultColumnFilter,\n EmptyData = DefaultEmptyData,\n Loader = DefaultLoader,\n Pagination = DefaultPagination,\n Row = DefaultRow,\n CellHeader = DefaultCellHeader as any,\n CellOperations,\n i18n = (f: string) => f,\n ...ctx\n } = props;\n\n const _onClick = getOperationCallback(operations, onClick);\n\n const defaultColumn = React.useMemo(\n () => ({\n // Let's set up our default Filter UI\n Filter: ColumnFilter,\n ArrowSort\n }),\n [ColumnFilter, ArrowSort]\n ) as any;\n\n const [filterId, setFilterId] = React.useState(controlledFilterId);\n\n // DND\n const [records, setRecords] = useState<readonly Data[]>(data);\n\n useEffect(() => {\n setRecords(data);\n }, [data]);\n\n const _onDrag = (dragIndex: number, hoverIndex: number) => {\n const newRecords = swapElements([...records], dragIndex, hoverIndex);\n\n setRecords(newRecords);\n\n onDrag(newRecords);\n };\n\n const tableInstance = useTable<Data>(\n {\n ...props,\n columns,\n data,\n ctx,\n defaultColumn,\n // getRowId,\n initialState: {\n ...(props.initialState || {}),\n filters: controlledFilters || [],\n pageIndex: controlledPageIndex || 0,\n pageSize: controlledPageSize || 10,\n sortBy: controlledSortBy || []\n } as any,\n manualPagination: props.manualPagination === undefined ? true : props.manualPagination,\n manualSortBy: props.manualSortBy === undefined ? true : props.manualPagination,\n manualFilters: props.manualFilters === undefined ? true : props.manualFilters,\n disableFilters,\n filterId,\n setFilterId\n } as any,\n ...hooks,\n useOperations({ operations, CellOperations, onClick: _onClick, ctx, i18n })\n );\n\n const {\n setPageSize,\n state: { pageIndex, pageSize, sortBy, filters }\n } = tableInstance;\n\n React.useEffect(() => {\n onChange({\n pageIndex,\n pageSize,\n sortBy,\n filters,\n filterId\n });\n }, [onChange, pageIndex, pageSize, sortBy, filters, filterId]);\n\n return {\n className,\n tableInstance,\n CellHeader,\n isLoading,\n Loader,\n EmptyData,\n Row,\n data,\n disablePagination,\n Pagination,\n pageIndex,\n pageSize,\n pageSizes,\n totalLength,\n setPageSize,\n i18n,\n children,\n onClick: _onClick as any,\n onDrag: _onDrag,\n onDrop: onDrop,\n enableDragNDrop: props.enableDragNDrop\n };\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { DrapNDropContainer } from \"./components/dragNDropContainer\";\nimport { TableProps, useCustomTable } from \"./hooks/useCustomTable.hook\";\n\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 totalLength,\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 totalLength={totalLength}\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 data-testid={\"action-table-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={\"action-table-add\"}\n disabled={currentAction === \"\"}\n className={\"btn btn-success\"}\n onClick={() => currentAction && onAddAction(currentAction)}\n type={\"submit\"}\n >\n <i className={classnames(iconClass(undefined, \"plus\"), \"mr-1\")} /> {i18n(\"Add action\")}\n </button>\n </div>\n </div>\n </Table>\n );\n}\n","import React from \"react\";\n\nfunction formatError(error: any): any {\n if (typeof error === \"string\") {\n return error;\n }\n\n if (Array.isArray(error)) {\n return error.map(formatError);\n }\n\n if (Object.prototype.hasOwnProperty.call(error, \"errors\")) {\n return Object.keys(error.errors).map((key, index) => {\n const item = error.errors[key];\n return (\n <div key={index}>\n <strong>\n {item.name} ({item.path})\n </strong>{\" \"}\n - {item.message}\n </div>\n );\n });\n }\n\n // If this is a standard error.\n if (Object.prototype.hasOwnProperty.call(error, \"message\")) {\n return error.message;\n }\n\n // If this is a joy validation error.\n if (Object.prototype.hasOwnProperty.call(error, \"name\") && error.name === \"ValidationError\") {\n return error.details.map((item: any, index: number) => {\n return <div key={index}>{item.message}</div>;\n });\n }\n\n // If a conflict error occurs on a form, the form is returned.\n if (Object.prototype.hasOwnProperty.call(error, \"_id\") && Object.prototype.hasOwnProperty.call(error, \"display\")) {\n return \"Another user has saved this form already. Please reload and re-apply your changes.\";\n }\n\n return \"An error occurred. See console logs for details.\";\n}\n\nexport interface AlertProps {\n error?: any | any[];\n type?: string;\n}\n\nexport function Alert({ error, type = \"danger\" }: AlertProps) {\n if (!error || (Array.isArray(error) && !error.length)) {\n return null;\n }\n\n return (\n <div className={`alert alert-${type}`} role='alert'>\n {formatError(error)}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nexport interface CardProps {\n children: React.ReactNode;\n label: string;\n className?: string;\n}\n\nexport function Card({ children, label, className }: PropsWithChildren<CardProps>) {\n return (\n <div className={classnames(\"card\", className)}>\n <div className={\"card-header \"}>\n <h4 className={\"card-title\"}>{label}</h4>\n </div>\n <div className={\"card-body\"} role={\"article\"}>\n {children}\n </div>\n </div>\n );\n}\n","import { ExtendedComponentSchema, Form } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport { useEffect, useRef } from \"react\";\n\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\n\nexport interface ChangedSubmission<T = any> extends Submission<T> {\n changed: {\n component: ExtendedComponentSchema;\n instance: any;\n value: any;\n } & Record<string, any>;\n isValid: boolean;\n}\n\nexport interface FormPageChangeProps<Data = any> {\n page: number;\n submission: Submission<Data>;\n}\n\nexport interface UseFormHookProps<Data = any> extends Record<string, any> {\n src?: string;\n /**\n * url to fetch form\n */\n url?: string;\n /**\n * Raw form object\n */\n form?: Partial<FormSchema>;\n /**\n * Configuration option\n */\n options?: FormOptions;\n /**\n * Data submission\n */\n submission?: Submission<Data>;\n\n /// events\n onPrevPage?: (obj: FormPageChangeProps<Data>) => void;\n onNextPage?: (obj: FormPageChangeProps<Data>) => void;\n onCancel?: Function;\n onChange?: (submission: ChangedSubmission) => void;\n onCustomEvent?: (obj: { type: string; event: string; component: ExtendedComponentSchema; data: any }) => void;\n onComponentChange?: (component: ExtendedComponentSchema) => void;\n onSubmit?: (submission: Submission<Data>) => void;\n onAsyncSubmit?: (submission: Submission<Data>) => Promise<any>;\n onSubmitDone?: (submission: Submission<Data>) => void;\n onFormLoad?: Function;\n onError?: (errors: any) => void;\n onRender?: () => void;\n onAttach?: Function;\n onBuild?: Function;\n onFocus?: Function;\n onBlur?: Function;\n onInitialized?: Function;\n onFormReady?: (formio: any) => void;\n}\n\nfunction useEvent(event: string, callback: any, events: Map<string, any>) {\n useEffect(() => {\n if (callback) {\n events.set(event, callback);\n }\n }, [callback, event, events]);\n}\n\nfunction useEvents(funcs: any) {\n const events = useRef<Map<string, any>>(new Map());\n\n const hasEvent = (event: string) => {\n return funcs.hasOwnProperty(event) && typeof funcs[event] === \"function\";\n };\n\n const emit = (event: string, ...args: any[]) => {\n if (hasEvent(event)) {\n const fn = events.current.has(event) ? events.current.get(event) : funcs[event];\n return fn(...args);\n }\n };\n\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onPrevPage\", funcs[\"onPrevPage\"], events.current);\n useEvent(\"onNextPage\", funcs[\"onNextPage\"], events.current);\n useEvent(\"onCancel\", funcs[\"onCancel\"], events.current);\n useEvent(\"onChange\", funcs[\"onChange\"], events.current);\n useEvent(\"onCustomEvent\", funcs[\"onCustomEvent\"], events.current);\n useEvent(\"onComponentChange\", funcs[\"onComponentChange\"], events.current);\n useEvent(\"onSubmit\", funcs[\"onSubmit\"], events.current);\n useEvent(\"onAsyncSubmit\", funcs[\"onAsyncSubmit\"], events.current);\n useEvent(\"onSubmitDone\", funcs[\"onSubmitDone\"], events.current);\n useEvent(\"onFormLoad\", funcs[\"onFormLoad\"], events.current);\n useEvent(\"onError\", funcs[\"onError\"], events.current);\n useEvent(\"onRender\", funcs[\"onRender\"], events.current);\n useEvent(\"onAttach\", funcs[\"onAttach\"], events.current);\n useEvent(\"onBuild\", funcs[\"onBuild\"], events.current);\n useEvent(\"onFocus\", funcs[\"onFocus\"], events.current);\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onInitialized\", funcs[\"onInitialized\"], events.current);\n\n return { events, emit, hasEvent };\n}\n\nexport function useForm<Data = any>(props: UseFormHookProps<Data>) {\n const { src, form, options = {}, submission, url, ...funcs } = props;\n const element = useRef<any>();\n const isLoaded = useRef<boolean>();\n const instance = useRef<Form>();\n const { emit, hasEvent } = useEvents(funcs);\n\n async function customValidation(submission: Submission, callback: (err: Error | null) => void) {\n if (hasEvent(\"onAsyncSubmit\")) {\n try {\n await emit(\"onAsyncSubmit\", submission, instance.current);\n } catch (err: any) {\n callback(err?.errors || err);\n }\n } else {\n callback(null);\n }\n }\n\n const createWebForm = (srcOrForm: any, options: any) => {\n options = Object.assign({}, options);\n srcOrForm = typeof srcOrForm === \"string\" ? srcOrForm : cloneDeep(srcOrForm);\n\n if (!instance.current) {\n isLoaded.current = false;\n options.hooks = {\n ...(options.hooks || {}),\n customValidation: options?.hooks?.customValidation || customValidation\n };\n\n instance.current = new Form(element.current, srcOrForm, options);\n\n instance.current.onAny((event: string, ...args: any[]): void => {\n if (!instance.current) {\n return;\n }\n\n if (event.startsWith(\"formio.\")) {\n const eventName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;\n\n if (eventName === \"onChange\" && !args[0].changed) {\n return;\n }\n\n emit(eventName, ...args, instance.current);\n }\n });\n\n instance.current.ready.then((formio: any) => {\n submission && (formio.submission = cloneDeep(submission));\n\n if (props.onFormReady) {\n props.onFormReady(formio);\n }\n\n isLoaded.current = true;\n });\n }\n\n return instance.current;\n };\n\n useEffect(() => {\n if (instance.current) {\n instance.current.ready.then((formio: any) => {\n if (isEqual(formio.submission.data, submission?.data)) {\n return;\n }\n\n submission && (formio.submission = cloneDeep(submission));\n });\n }\n }, [submission]);\n\n useEffect(() => {\n if (form && instance.current) {\n instance.current.ready.then((formio: any) => {\n formio.form = form;\n if (url) {\n formio.url = url;\n }\n });\n }\n }, [form, url]);\n\n useEffect(() => {\n if (src) {\n if (instance.current) {\n isLoaded.current = false;\n (instance.current as any).destroy(true);\n }\n\n createWebForm(src, options);\n }\n }, [src]);\n\n useEffect(() => {\n if (form) {\n createWebForm(form, options);\n }\n\n return () => {\n isLoaded.current = false;\n instance.current && (instance.current as any).destroy(true);\n };\n }, []);\n\n return {\n element\n };\n}\n","import { Components } from \"formiojs\";\nimport AllComponents from \"formiojs/components\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { useForm, UseFormHookProps } from \"./useForm.hook\";\n\nComponents.setComponents(AllComponents);\n\nexport interface FormProps<Data = any> extends UseFormHookProps<Data> {\n name?: string;\n /**\n *\n */\n className?: string;\n}\n\nexport function Form<Data = any>(props: Partial<FormProps<Data>>) {\n const { element } = useForm(props);\n\n return <div data-testid={`formioContainer${props.name || \"\"}`} ref={element} className={props.className} />;\n}\n\nForm.propTypes = {\n name: PropTypes.string,\n className: PropTypes.string,\n /**\n *\n */\n src: PropTypes.string,\n /**\n * url to fetch form\n */\n url: PropTypes.string,\n /**\n * Raw form object\n */\n form: PropTypes.object,\n /**\n * Data submission\n */\n submission: PropTypes.object,\n /**\n * Configuration option\n */\n options: PropTypes.shape({\n readOnly: PropTypes.bool,\n noAlerts: PropTypes.bool,\n i18n: PropTypes.any,\n template: PropTypes.string,\n saveDraft: PropTypes.bool,\n hooks: PropTypes.any\n }),\n onPrevPage: PropTypes.func,\n onNextPage: PropTypes.func,\n onCancel: PropTypes.func,\n onChange: PropTypes.func,\n onCustomEvent: PropTypes.func,\n onComponentChange: PropTypes.func,\n onSubmit: PropTypes.func,\n onAsyncSubmit: PropTypes.func,\n onSubmitDone: PropTypes.func,\n onFormLoad: PropTypes.func,\n onError: PropTypes.func,\n onRender: PropTypes.func,\n onAttach: PropTypes.func,\n onBuild: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onInitialized: PropTypes.func,\n onFormReady: PropTypes.func,\n formioform: PropTypes.any\n};\n","import { ExtendedComponentSchema } from \"formiojs\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\n\nexport function getRoleComponent({ label, key, description, choices, data }: any): ExtendedComponentSchema {\n return {\n label,\n key,\n description,\n type: \"select\",\n labelPosition: \"top\",\n widget: \"choicesjs\",\n placeholder: \"Select roles...\",\n tooltip: \"\",\n multiple: true,\n dataSrc: \"values\",\n defaultValue: \"\",\n data: {\n values: choices\n },\n template: \"<span>{{ item.label }}</span>\",\n searchEnabled: true,\n selectThreshold: 0,\n validate: {\n required: false,\n custom: \"\",\n customPrivate: false\n },\n values: data\n };\n}\n\nfunction toDescription(description: string, hr = true): string {\n return '<span class=\"text-sm\">' + description + \"</span> \" + (hr ? '<hr class=\"mt-6 mb-5 border-gray-200 mx-20\"/>' : \"\");\n}\n\nexport function getSubmissionPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"create_own\",\n label: '<h4 class=\"text-gray-800\">Create Own Submissions</h4>',\n description: toDescription(\n \"The Create Own Submissions permission will allow a user with one of the Roles to create a Submission. Upon creating the Submission, the user will be defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"create_all\",\n label: '<h4 class=\"text-gray-800\">Create All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Create All Submissions permission will allow a user with one of the Roles to create a new Submission and assign ownership of that Submission to another user.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Own Submissions</h4>',\n description: toDescription(\n \"The Read Own Submissions permission will allow a user with one of the Roles to read a Submission. A user can only read a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: '<h4 class=\"text-gray-800\">Read All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read All Submissions permission will allow a user with one of the Roles to read all Submissions regardless of who owns them.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Own Submissions</h4>',\n description: toDescription(\n \"The Update Own Submissions permission will allow a user with one of the Roles to update a Submission. A user can only update a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update All Submissions permission will allow a user with one of the Roles to update a Submission, regardless of who owns the Submission. Additionally with this permission, a user can change the owner of a Submission.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Own Submissions</h4>',\n description: toDescription(\n \"The Delete Own Submissions permission will allow a user with one of the Roles, to delete a Submission. A user can only delete a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete All Submissions permission will allow a user with one of the Roles to delete a Submission, regardless of who owns the Submission.',\n false\n ),\n choices\n })\n ]\n };\n}\n\nexport function getAccessPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Read Own permission will allow a user, with one of the given Roles, to read a form. A user can only read a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: \"<h4>Read Form Definition</h4>\",\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read permission will allow a user, with one of the given Roles, to read the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Update Own permission will allow a user, with one of the given Roles, to update a form. A user can only update a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update permission will allow a user, with one of the given Roles, to read and edit the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Delete Own permission will allow a user, with one of the given Roles, to delete a form. A user can only delete a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete permission will allow a user, with one of the given Roles, to delete the form.',\n false\n ),\n choices\n })\n ]\n };\n}\n","import { ExtendedComponentSchema } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { RoleSchema } from \"../../interfaces/RoleSchema\";\nimport { getAccessPermissionForm, getSubmissionPermissionForm } from \"./formAccess.schema\";\n\nexport interface Choice {\n label: string;\n value: string;\n}\n\nexport interface Access {\n roles: string[];\n type: string;\n}\n\nexport type AccessRoles = Record<string, string[]>;\n\nexport type FormAccessSchema = {\n access: FormSchema;\n submissionAccess: FormSchema;\n};\n\nexport type SubmissionAccess = {\n access: Submission<AccessRoles>;\n submissionAccess: Submission<AccessRoles>;\n};\n\nfunction rolesToChoices(roles: RoleSchema[]): Choice[] {\n return Object.values(roles).map((role) => {\n return {\n label: role.title || \"\",\n value: role._id || \"\"\n };\n });\n}\n\nfunction accessToHash(keys: (string | undefined)[] | undefined, access: Access[] = []): AccessRoles {\n const hash = Object.values(access).reduce((o: any, role: any) => {\n o[role.type] = role.roles;\n return o;\n }, {});\n\n return ((keys || []).filter(Boolean) as any[]).reduce((data, key: string) => {\n return {\n ...data,\n [key]: hash[key] || []\n };\n }, {});\n}\n\nfunction hashToAccess(data: AccessRoles) {\n const accessRoles: any[] = [];\n\n Object.entries(data).forEach(([accessType, roles]) => {\n if (accessType === \"submit\") {\n return;\n }\n accessRoles.push({\n type: accessType,\n roles\n });\n });\n\n return accessRoles;\n}\n\nexport function getFormAccess(roles: RoleSchema[]): FormAccessSchema {\n const choices = rolesToChoices(roles);\n const access = getAccessPermissionForm({ choices });\n const submissionAccess = getSubmissionPermissionForm({ choices });\n\n return {\n access,\n submissionAccess\n };\n}\n\nexport function dataAccessToSubmissions(form: Partial<FormSchema>, formAccess: FormAccessSchema): SubmissionAccess {\n const getKeys = (components: ExtendedComponentSchema[]) => components.map(({ key }) => key);\n\n return {\n access: {\n data: accessToHash(getKeys(formAccess.access.components), form.access)\n },\n submissionAccess: {\n data: accessToHash(getKeys(formAccess.submissionAccess.components), form.submissionAccess)\n }\n };\n}\n\nexport function submissionsToDataAccess(form: Partial<FormSchema>, submissions: SubmissionAccess): Partial<FormSchema> {\n return {\n ...cloneDeep(form),\n access: hashToAccess(submissions.access.data),\n submissionAccess: hashToAccess(submissions.submissionAccess.data)\n };\n}\n\nexport function shouldUpdate(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess) {\n return !isEqual(submission.data, (submissions as any)[type].data);\n}\n\nexport function updateSubmissions(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess, cb: Function = noop) {\n if (shouldUpdate(type, submission, submissions)) {\n submissions = {\n ...submissions,\n [type]: { data: submission.data }\n };\n cb(submissions);\n }\n\n return submissions;\n}\n","import React, { PropsWithChildren, 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 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>) {\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","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\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\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 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 useSelectColumnFilter<D extends Record<string, unknown> = {}>(props: FilterProps<D>) {\n const { column } = props;\n const { id, preFilteredRows } = column;\n const { choices: customChoices } = column as any;\n const { filterValue, setFilter } = column;\n\n const choices = (() => {\n if (customChoices) {\n if (typeof customChoices === \"function\") {\n return customChoices(props);\n }\n return customChoices;\n }\n\n return [...new Set(preFilteredRows.map((row) => row.values[id]))]\n .filter((value) => value)\n .map((value) => ({\n label: value,\n value\n }));\n })();\n\n const onChange = (_: string, value: any) => {\n setFilter(value || undefined);\n };\n\n return {\n value: filterValue,\n onChange,\n choices: [{ value: \"\", label: \"All\" }].concat(choices)\n };\n}\n\nexport function SelectColumnFilter<D extends Record<string, unknown> = {}>(props: FilterProps<D>) {\n const { value, choices, onChange } = useSelectColumnFilter(props);\n\n return (\n <Select\n key={`filter-${props.column.id}`}\n name={`filter-${props.column.id}`}\n size={\"sm\"}\n value={value}\n choices={choices}\n onChange={onChange}\n />\n );\n}\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","import classnames from \"classnames\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { CellProps } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport function FormsCell(props: CellProps<FormSchema> & { icon: string; i18n: (f: string) => string }) {\n const {\n icon = \"server\",\n row: { original: form }\n } = props;\n\n return (\n <div className={\"p-1\"}>\n <h4 className={\"text-primary text-lg flex items-center\"}>\n <i className={classnames(iconClass(undefined, icon), \"mr-1\")} />\n {form.title}\n </h4>\n\n <ul className='reset-list text-gray-500'>\n <li className={\"text-sm\"}>Name: {form.name || form.machineName}</li>\n <li className='mt-5'>\n <span className='badge bg-light mr-1'>\n <i className={classnames(iconClass(undefined, \"history\"), \"mr-1\")} />\n <span>Updated {moment(form.modified).fromNow()}</span>\n </span>\n\n {(form.tags || []).map((tag, index) => (\n <button\n key={index}\n className='badge badge-hover bg-secondary mr-1'\n onClick={stopPropagationWrapper(() => {\n props.setFilter(\"tags\", tag);\n props.gotoPage(0);\n })}\n >\n <i className={classnames(iconClass(undefined, \"tags\"), \"mr-1\")} />\n {tag}\n </button>\n ))}\n </li>\n </ul>\n </div>\n );\n}\n","import React from \"react\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { DefaultColumnFilter } from \"../table/filters/defaultColumnFilter.component\";\nimport { SelectColumnFilter } from \"../table/filters/selectColumnFilter.component\";\nimport { TableProps } from \"../table/hooks/useCustomTable.hook\";\nimport { Table } from \"../table/table.component\";\nimport { FormsCell as DefaultFormCell } from \"./components/formCell.component\";\n\nexport type FormsTableProps = Omit<TableProps<FormSchema>, \"columns\"> & {\n icon?: string;\n tags?: { label: string; value: string }[];\n};\n\nexport function FormsTable({ Cell, ...props }: FormsTableProps) {\n const { i18n = (f: string) => f, tags } = props;\n const FormCell = Cell || (DefaultFormCell as any);\n const columns = [\n {\n Header: i18n(\"Title\"),\n accessor: \"title\",\n id: \"title\",\n Cell: (props: any) => <FormCell {...props} icon={props.icon} i18n={i18n} />,\n Filter: DefaultColumnFilter,\n colspan: 2\n },\n {\n Header: i18n(\"Tags\"),\n accessor: \"tags\",\n id: \"tags\",\n hidden: true,\n Filter: (props: any) =>\n tags && tags.length ? (\n <SelectColumnFilter {...props} column={{ ...props.columns, choices: tags }} />\n ) : (\n <DefaultColumnFilter {...props} />\n )\n }\n ];\n\n return <Table {...(props as any)} columns={columns} />;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport interface LoaderProps {\n isActive?: boolean;\n color?: string;\n icon?: string;\n className?: string;\n}\n\nexport function Loader({ isActive, color = \"blue\", icon = \"radio-circle\", className = \"\" }: PropsWithChildren<LoaderProps>) {\n if (isActive) {\n return (\n <div\n className={classnames(\n \"opacity-85 z-20 flex items-center justify-center p-5 absolute top-0 right-0 left-0 bottom-0 bg-white\",\n className\n )}\n >\n <span data-testid={`icon_${icon}`} color={color} className={`text-11xl ${iconClass(undefined, icon, true)}`} />\n </div>\n );\n }\n return null;\n}\n\nLoader.propTypes = {\n isActive: PropTypes.bool,\n icon: PropTypes.string,\n color: PropTypes.string,\n className: PropTypes.string\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport noop from \"lodash\";\nimport React, { PropsWithChildren, useEffect, useRef, useState } from \"react\";\n\nexport function useModal() {\n const [show, setShowModal] = useState(false);\n\n return {\n show,\n setShowModal,\n openModal() {\n setShowModal(true);\n },\n closeModal() {\n setShowModal(false);\n }\n };\n}\n\nexport interface ModalProps extends Record<string, any> {\n show?: boolean;\n closeModal?: () => void;\n onClose?: () => void;\n footer?: any;\n title?: string;\n}\n\nexport function Modal({\n show,\n children,\n closeModal = noop as any,\n onClose = noop as any,\n title,\n footer: ModalFooter,\n style,\n className = \"\",\n ...props\n}: PropsWithChildren<ModalProps>) {\n const titleRef: any = useRef<HTMLDivElement>();\n const footerRef: any = useRef<HTMLDivElement>();\n const [maxHeight, setMaxHeight] = useState<string>();\n\n const onClickClose = () => {\n closeModal();\n onClose();\n };\n\n useEffect(() => {\n if (titleRef.current || footerRef.current) {\n const height = (titleRef?.current?.offsetHeight || 0) + (footerRef?.current?.offsetHeight || 0);\n\n setMaxHeight(`calc(85vh - ${height}px)`);\n } else {\n setMaxHeight(\"auto\");\n }\n }, [show]);\n\n if (!show) {\n return null;\n }\n\n return (\n <div role={\"dialog\"} className={`formio-dialog formio-dialog-theme-default ${className}`}>\n <div className='formio-dialog-overlay' onClick={onClickClose} />\n <div style={style} className={\"formio-dialog-content\"}>\n <div className={\"formio-dialog-wrapper\"}>\n {title ? (\n <div className={\"formio-dialog-title\"} ref={titleRef} data-testid={\"modalTitle\"}>\n {title}\n </div>\n ) : null}\n\n <div className='formio-dialog-body' style={{ maxHeight }} data-testid={\"modalBody\"}>\n {show && children}\n </div>\n\n {ModalFooter ? (\n <div className={\"formio-dialog-footer\"} ref={footerRef} data-testid={\"modalFooter\"}>\n <ModalFooter {...props} closeModal={closeModal} onClose={onClickClose} />\n </div>\n ) : null}\n </div>\n <button\n className='formio-dialog-close float-right btn btn-secondary btn-sm'\n aria-label='close'\n data-testid={\"closeModal\"}\n onClick={onClickClose}\n />\n </div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren, useState } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Modal, ModalProps } from \"./modal.component\";\n\nfunction RemoveModalFooter({ value, valueToCompare, onSubmit, onClose, i18n = (f: string) => f }: ModalProps) {\n return (\n <div className={\"flex items-center justify-center bg-white p-2\"}>\n <button data-testid='customCloseModal' className={\"btn btn-outline-dark mx-2\"} onClick={onClose}>\n {i18n(\"Cancel\")}\n </button>\n <button\n disabled={valueToCompare !== value}\n data-testid='customSubmitModal'\n className={\"btn btn-danger mx-2\"}\n onClick={(e) => {\n if (valueToCompare === value) {\n onSubmit(e);\n }\n }}\n >\n <i className={classnames(iconClass(undefined, \"trash\"), \"mr-2\")} />\n {i18n(\"Remove\")}\n </button>\n </div>\n );\n}\n\nexport interface RemoveModalProps extends ModalProps {\n valueToCompare: string;\n itemType?: string;\n i18n?: (f: string) => string;\n maxWidth?: string;\n}\n\nexport function RemoveModal({ maxWidth = \"300px\", children, ...props }: PropsWithChildren<RemoveModalProps>) {\n const { i18n = (f) => f } = props;\n const [value, setValue] = useState();\n\n return (\n <Modal\n {...props}\n className={classnames(props.className, \"formio-dialog-theme-remove\")}\n style={{ maxWidth }}\n title={`Drop ${props.itemType?.toLowerCase()}`}\n value={value}\n footer={RemoveModalFooter}\n >\n <div className='px-4 pt-3 pb-5'>\n <div className='pb-1'>\n {children}\n {i18n(\"To drop\")} <strong>{props.valueToCompare}</strong>, \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 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\n attachReact(element?: any) {\n // eslint-disable-next-line react/no-render-return-value,react/no-deprecated\n return ReactDOM.render(this.renderReact(), element);\n }\n\n /**\n * Override this function.\n */\n\n detachReact(element?: any) {\n if (element) {\n // eslint-disable-next-line react/no-deprecated\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) {\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\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { DefaultCell } from \"../components/defaultCell.component\";\nimport { SelectColumnFilter } from \"../filters/selectColumnFilter.component\";\nimport { ExtendedColumn } from \"../hooks/useCustomTable.hook\";\n\nexport function mapFormToColumns(form: FormSchema): ExtendedColumn[] {\n const columns: ExtendedColumn[] = [];\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: ExtendedColumn = {\n Header: component.label || component.title || component.key,\n accessor: `data.${component.key}`,\n className: \"text-center\",\n Cell: (props: any) => <DefaultCell {...props} render={(value: any) => cmp.asString(value)} />\n };\n\n if (component.type === \"select\" && component.dataSrc === \"values\") {\n column.Filter = SelectColumnFilter;\n (column as any).choices = component.data.values;\n }\n\n columns.push(column);\n }\n });\n\n return columns;\n}\n","import React from \"react\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { TableProps } from \"../table/hooks/useCustomTable.hook\";\nimport { Table } from \"../table/table.component\";\nimport { mapFormToColumns } from \"../table/utils/mapFormToColumns\";\n\nexport type SubmissionsTableProps = Omit<TableProps<Submission>, \"columns\"> & {\n form?: FormSchema;\n};\n\nexport function SubmissionsTable({ form, ...props }: SubmissionsTableProps) {\n const columns: any[] | undefined = form && mapFormToColumns(form);\n\n return <Table {...props} columns={columns!} />;\n}\n","import React from \"react\";\nimport { FilterProps } from \"react-table\";\n\nexport function SliderColumnFilter<D extends Record<string, unknown> = {}>({\n column: { filterValue, setFilter, preFilteredRows, id }\n}: FilterProps<D>) {\n const [min, max] = React.useMemo(() => {\n let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n preFilteredRows.forEach((row) => {\n min = Math.min(row?.values[id], min);\n max = Math.max(row?.values[id], max);\n });\n return [min, max];\n }, [id, preFilteredRows]);\n\n return (\n <>\n <input\n type='range'\n min={min}\n max={max}\n value={filterValue || min}\n onChange={(e) => {\n setFilter(parseInt(e.target.value, 10));\n }}\n />\n <button onClick={() => setFilter(undefined)}>Off</button>\n </>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport function ButtonTab({ icon, back, onClick, isActive, reverse, children, className, after }: PropsWithChildren<any>) {\n return (\n <div\n title={\"button-wrapper\"}\n className={classnames(\"tw-tabs__button-wrapper\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\", className)}\n >\n <button\n title={\"button-tab\"}\n className={classnames(\"tw-tabs__button\", reverse ? \"-reverse\" : \"\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\")}\n onClick={onClick}\n >\n {icon && <i className={classnames(iconClass(undefined, icon), \"tw-tabs__button-icon\")} />}\n <span className={\"tw-tabs__button-label\"}>{children}</span>\n {after}\n </button>\n <div className={classnames(\"tw-tabs__button-border\", isActive ? \"-active\" : \"\")} />\n </div>\n );\n}\n\nexport interface TabsItemProps extends Record<string, any> {\n label?: string;\n icon?: string;\n}\n\nexport interface TabsProps extends Record<string, any> {\n headerChildren?: any;\n AddButton?: any;\n current?: TabsItemProps;\n items?: TabsItemProps[];\n style?: any;\n className?: string;\n reverse?: boolean;\n Button?: any;\n onClick?: (item: TabsItemProps) => void;\n i18n?: (f: string) => string;\n}\n\nexport function Tabs({\n style,\n current,\n items = [],\n children,\n HeaderChildren,\n AddButton,\n Button = ButtonTab,\n className,\n onClick,\n i18n = (f) => f,\n ...additionalProps\n}: PropsWithChildren<TabsProps>) {\n return (\n <div data-testid={\"tabs-comp\"} className={`tw-tabs ${className}`} style={style}>\n <div>\n <nav className='tw-tabs__header'>\n <div className='tw-tabs__header-wrapper'>\n <div className='tw-tabs__header-border' />\n {items\n .filter((item) => item.label || item.icon)\n .map((item, index) => {\n return (\n <Button\n key={index}\n back={item.back}\n isActive={current?.action === item.action}\n exact={item.exact}\n onClick={() => {\n onClick && onClick(item);\n }}\n {...additionalProps}\n {...item}\n >\n {i18n(item.label || \"\")}\n </Button>\n );\n })}\n {AddButton && <AddButton {...additionalProps} current={current} />}\n </div>\n </nav>\n {HeaderChildren && <HeaderChildren {...additionalProps} current={current} />}\n </div>\n <div title={\"tab-body\"} className={\"tw-tabs__body\"}>\n {children}\n </div>\n </div>\n );\n}\n","export function mapPagination({ skip, limit, serverCount, length }: any = {}): any {\n skip = skip || 0;\n limit = limit || 10;\n serverCount = serverCount || length;\n\n return {\n pageIndex: Math.floor(skip / limit),\n pageSize: limit,\n pageCount: Math.ceil(serverCount / limit)\n };\n}\n"],"names":["iconClass","iconset","name","spinning","Templates","current","defaultIconset","getEventValue","event","target","multiple","selectedOptions","Array","from","option","value","type","checked","FormControl","_ref","children","required","prefix","suffix","description","label","className","React","createElement","id","classnames","htmlFor","Select","size","onChange","choices","placeholder","layout","props","_objectWithoutPropertiesLoose","_excluded","ref","useRef","useEffect","instance","Choices","removeItemButton","placeholderValue","destroy","shadow","_extends","map","_ref2","key","String","DrapNDropContainer","enableDragNDrop","DndProvider","backend","HTML5Backend","Fragment","LEFT_PAGE","RIGHT_PAGE","range","to","step","i","push","getPageNumbers","currentPage","pageNeighbours","totalPages","totalNumbers","totalBlocks","calculatedStartPage","Math","max","calculatedEndPage","min","startPage","endPage","pages","hasLeftSpill","hasRightSpill","spillOffset","length","extraPages","PaginationButton","component","Component","disabled","active","otherProps","Pagination","pageSizes","gotoPage","canPreviousPage","previousPage","nextPage","canNextPage","pageCount","pageIndex","pageOptions","pageSize","setPageSize","totalLength","i18n","f","pageNumbers","tabIndex","onClick","page","includes","undefined","Intl","NumberFormat","format","DefaultArrowSort","column","isSorted","isSortedDesc","DefaultCellHeader","getSortByToggleProps","render","canFilter","DND_ITEM_TYPE","useDndRow","onDrag","onDrop","index","dropRef","dragRef","drop","useDrop","accept","item","hover","monitor","dragIndex","hoverIndex","hoverBoundingRect","getBoundingClientRect","hoverMiddleY","bottom","top","clientOffset","getClientOffset","hoverClientY","y","isDragging","drag","preview","useDrag","collect","opacity","DefaultCells","row","cells","cell","hidden","colspan","colSpan","getCellProps","style","DefaultDndRow","role","cursor","DefaultRow","opts","original","getRowProps","callLast","fn","time","last","clearTimeout","setTimeout","slice","call","arguments","InputText","localValue","setValue","useState","change","useMemo","propTypes","PropTypes","string","isRequired","any","bool","func","DefaultColumnFilter","filterId","setFilterId","filterValue","setFilter","useCallback","autoFocus","swapElements","myArray","index1","index2","stopPropagationWrapper","stopPropagation","DefaultOperationButton","buttonSize","buttonType","buttonOutline","action","icon","title","filter","Boolean","join","DefaultCellOperations","operations","ctx","data","permissionsResolver","_ref3","OperationButton","operation","useOperations","CellOperations","hooks","visibleColumns","columns","groupByBoundary","Header","Cell","getOperationCallback","find","alias","DefaultLoader","DefaultEmptyData","useFilters","useGroupBy","useSortBy","usePagination","useCustomTable","noop","filters","controlledFilters","controlledFilterId","controlledPageSize","controlledPageIndex","sortBy","controlledSortBy","isLoading","disableFilters","disablePagination","ArrowSort","ColumnFilter","EmptyData","Loader","DefaultPagination","Row","CellHeader","_onClick","defaultColumn","Filter","records","setRecords","_onDrag","newRecords","tableInstance","useTable","initialState","manualPagination","manualSortBy","manualFilters","state","Table","getTableProps","headerGroups","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getTableBodyProps","prepareRow","ActionsTable","availableActions","onAddAction","currentAction","setAction","accessor","concat","formatError","error","isArray","Object","prototype","hasOwnProperty","keys","errors","path","message","details","Alert","Card","useEvent","callback","events","set","useEvents","funcs","Map","hasEvent","emit","has","get","useForm","customValidation","submission","_temp2","_temp","_catch","Promise","resolve","then","err","e","reject","src","form","options","url","element","isLoaded","createWebForm","srcOrForm","assign","cloneDeep","_options","_options$hooks","Form","onAny","args","startsWith","eventName","charAt","toUpperCase","changed","ready","formio","onFormReady","isEqual","Components","setComponents","AllComponents","object","shape","readOnly","noAlerts","template","saveDraft","onPrevPage","onNextPage","onCancel","onCustomEvent","onComponentChange","onSubmit","onAsyncSubmit","onSubmitDone","onFormLoad","onError","onRender","onAttach","onBuild","onFocus","onBlur","onInitialized","formioform","getRoleComponent","labelPosition","widget","tooltip","dataSrc","defaultValue","values","searchEnabled","selectThreshold","validate","custom","customPrivate","toDescription","hr","getSubmissionPermissionForm","components","getAccessPermissionForm","rolesToChoices","roles","_id","accessToHash","access","hash","reduce","o","hashToAccess","accessRoles","entries","forEach","accessType","getFormAccess","submissionAccess","dataAccessToSubmissions","formAccess","getKeys","submissionsToDataAccess","submissions","shouldUpdate","updateSubmissions","cb","useFormAccess","formDefinition","setSubmissions","input","NamedFormAccess","isValid","setIsValid","FormAccess","mapData","defaults","mapSettingsForm","settingsForm","FormioUtils","eachComponent","resourceExclude","basePath","valueProperty","persistent","FormAction","actionInfo","_excluded2","createBuilder","el","display","FormioFormBuilder","builder","handleEvent","EVENTS_CHANGE","EVENTS","on","er","console","FormBuilder","constructor","elRef","builderRef","componentDidMount","_this","create","_this2","onAddComponent","onUpdateComponent","onRemoveComponent","onSaveComponent","onCancelComponent","onMoveComponent","onEditComponent","onEditJson","onCopyComponent","onPasteComponent","firstChild","whenComponentsChange","bind","_createBuilder","componentWillUnmount","_this$builderRef","componentWillReceiveProps","nextProps","_this3","setState","_this$props","defaultProps","onReady","onDestroy","array","useTooltip","Tooltip","FormEditCTAs","saveText","onCopy","hasUndo","hasRedo","onUndo","onRedo","onReset","t","copyTooltipRef","trigger","placement","undoTooltipRef","redoTooltipRef","resetTooltipRef","InputTags","delimiter","editItems","passedElement","addEventListener","uniq","detail","v","defaultDisplayChoices","FormParameters","enableTags","typeChoices","displayChoices","readonly","baseUrl","window","location","origin","hasTypeChoices","textTransform","width","tags","hasChanged","createInitialState","past","future","reducer","update","newValue","camelCase","toLowerCase","previous","newPast","next","newFuture","useFormEdit","dispatchFormAction","useReducer","modified","formChange","newForm","redo","undo","reset","setChange","FormEdit","getFormSettingsSchema","mask","inputType","inputFormat","spellcheck","attributes","delimeter","storeas","maxTags","addAnother","disableAddingRemovingRows","keyBeforeValue","valueComponent","hideLabel","formSettingsToSubmission","properties","submissionToFormSettings","useFormSettings","setSubmission","FormSettings","useSelectColumnFilter","preFilteredRows","customChoices","Set","_","SelectColumnFilter","global","factory","module","exports","this","hookCallback","apply","setHookCallback","toString","isObject","hasOwnProp","a","b","isObjectEmpty","obj","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","arr","res","arrLen","extend","valueOf","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","some","fun","len","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","momentProperties","updateInProgress","copyConfig","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","argLen","Error","stack","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","abs","zerosToFill","sign","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","localeData","removeFormattingTokens","match","replace","makeFormatFunction","formatMoment","invalidDate","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","s","ss","mm","h","hh","d","dd","w","ww","M","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","n","x","indexOf","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","parseTwoDigitYear","parseInt","daysInYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","hours","kFormat","minutes","seconds","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","_abbr","require","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","exec","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","_useUTC","c","currentDateArray","nowValue","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","invalid","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","property","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","defaultFormat","defaultFormatUtc","toISOString","keepOffset","toDate","inspect","zone","datetime","inputString","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","eraYearOrdinalParse","localeEras","eras","_eras","since","until","Infinity","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","abbrPieces","namePieces","narrowPieces","isoWeekYear","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseZone","isDST","zoneAbbr","zoneName","dates","isDSTShifted","createUnix","createInZone","preParsePostFormat","proto$1","firstDayOfYear","firstDayOfWeek","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","FormsCell","machineName","moment","tag","FormsTable","FormCell","DefaultFormCell","isActive","color","useModal","show","setShowModal","openModal","closeModal","Modal","onClose","footer","ModalFooter","titleRef","footerRef","maxHeight","setMaxHeight","onClickClose","_titleRef$current","_footerRef$current","height","offsetHeight","RemoveModalFooter","valueToCompare","RemoveModal","_props$itemType","_props$itemType2","maxWidth","itemType","ReactComponent","reactInstance","shouldSetValue","dataForSetting","updateValue","getValue","dataValue","updateOnChange","$reactNode","refs","init","attach","_super$attach","loadRefs","attachReact","detach","detachReact","renderReact","ReactDOM","unmountComponentAtNode","checkValidity","dirty","rowData","valid","DefaultCell","rendered","dangerouslySetInnerHTML","__html","mapFormToColumns","tableView","cmp","asString","SubmissionsTable","SliderColumnFilter","ButtonTab","back","reverse","after","Tabs","items","HeaderChildren","AddButton","Button","additionalProps","exact","mapPagination","skip","serverCount"],"mappings":"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"}
|