@tsed/react-formio 1.13.1 → 1.13.2
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/actions-table/actionsTable.component.d.ts +0 -1
- package/dist/components/actions-table/actionsTable.stories.d.ts +0 -1
- package/dist/components/alert/alert.component.d.ts +1 -2
- package/dist/components/alert/alert.stories.d.ts +0 -1
- package/dist/components/card/card.stories.d.ts +0 -1
- package/dist/components/form/form.component.d.ts +1 -2
- package/dist/components/form/form.component.spec.d.ts +1 -0
- package/dist/components/form/form.stories.d.ts +3745 -172
- package/dist/components/form/useForm.hook.d.ts +1 -2
- package/dist/components/form-access/formAccess.stories.d.ts +1 -2
- package/dist/components/form-action/formAction.stories.d.ts +0 -1
- package/dist/components/form-builder/formBuilder.stories.d.ts +518 -153
- package/dist/components/form-edit/formEdit.component.d.ts +0 -1
- package/dist/components/form-edit/formEdit.stories.d.ts +18 -19
- package/dist/components/form-settings/formSettings.component.d.ts +0 -1
- package/dist/components/form-settings/formSettings.stories.d.ts +1 -2
- package/dist/components/forms-table/components/formCell.component.d.ts +0 -1
- package/dist/components/forms-table/formsTable.component.d.ts +0 -1
- package/dist/components/forms-table/formsTable.stories.d.ts +0 -1
- package/dist/components/input-tags/inputTags.component.d.ts +0 -1
- package/dist/components/input-tags/inputTags.stories.d.ts +2 -3
- package/dist/components/input-text/inputText.component.d.ts +0 -1
- package/dist/components/input-text/inputText.stories.d.ts +0 -1
- package/dist/components/loader/loader.component.d.ts +1 -1
- package/dist/components/loader/loader.stories.d.ts +0 -1
- package/dist/components/modal/modal.component.d.ts +1 -1
- package/dist/components/modal/modal.stories.d.ts +0 -1
- package/dist/components/pagination/pagination.component.d.ts +0 -1
- package/dist/components/pagination/pagination.stories.d.ts +0 -1
- package/dist/components/react-component/reactComponent.component.d.ts +3 -3
- package/dist/components/select/select.stories.d.ts +2 -3
- package/dist/components/submissions-table/submissionsTable.component.d.ts +0 -1
- package/dist/components/submissions-table/submissionsTable.stories.d.ts +13 -14
- package/dist/components/table/components/defaultArrowSort.component.d.ts +0 -1
- package/dist/components/table/components/defaultCell.component.d.ts +0 -1
- package/dist/components/table/components/defaultCellHeader.component.d.ts +0 -1
- package/dist/components/table/components/defaultCellOperations.component.d.ts +0 -1
- package/dist/components/table/components/defaultOperationButton.component.d.ts +0 -1
- package/dist/components/table/filters/defaultColumnFilter.component.d.ts +0 -1
- package/dist/components/table/filters/selectColumnFilter.component.d.ts +0 -1
- package/dist/components/table/filters/sliderColumnFilter.component.d.ts +0 -1
- package/dist/components/table/table.stories.d.ts +4 -5
- package/dist/components/tabs/tabs.component.stories.d.ts +0 -1
- package/dist/hooks/useTooltip.d.ts +1 -1
- package/dist/index.js +297 -276
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +294 -272
- package/dist/index.modern.js.map +1 -1
- package/dist/stores/auth/auth.selectors.d.ts +1 -1
- package/jest.config.js +1 -1
- package/package.json +5 -5
- package/src/components/__fixtures__/form.fixture.json +23 -0
- package/src/components/form/form.component.spec.tsx +56 -0
- package/src/components/form/form.component.tsx +2 -2
- package/src/components/form/form.stories.tsx +141 -34
- package/src/components/form/useForm.hook.ts +39 -38
- package/src/components/form-access/formAccess.component.tsx +1 -1
- package/src/components/form-access/formAccess.utils.ts +13 -13
- package/src/components/form-action/formAction.component.tsx +1 -1
- package/src/components/form-builder/formBuilder.component.tsx +1 -1
- package/src/components/form-edit/formCtas.component.tsx +32 -30
- package/src/components/form-edit/formEdit.component.tsx +1 -1
- package/src/components/form-settings/formSettings.utils.ts +3 -3
- package/src/components/input-tags/inputTags.component.tsx +3 -3
- package/src/components/input-text/inputText.component.tsx +2 -2
- package/src/components/modal/modal.component.tsx +2 -2
- package/src/components/react-component/reactComponent.component.tsx +9 -6
- package/src/components/select/select.component.tsx +2 -2
- package/src/components/submissions-table/submissionsTable.component.tsx +6 -6
- package/src/components/table/table.component.tsx +58 -44
- package/src/components/table/utils/mapFormToColumns.tsx +1 -1
- package/src/components/tabs/tabs.component.tsx +1 -1
- package/src/hooks/useTooltip.ts +1 -1
- package/src/stores/action-info/action-info.selectors.ts +1 -1
- package/src/stores/auth/auth.utils.tsx +2 -2
- package/src/stores/auth/getAccess.action.ts +2 -2
- package/src/stores/auth/logout.action.spec.ts +1 -0
- package/src/stores/form/form.selectors.ts +1 -1
- package/src/stores/root/root.selectors.ts +2 -2
- package/tsconfig.json +10 -27
- package/tsconfig.node.json +8 -0
- package/craco.config.js +0 -11
- package/tsconfig.test.json +0 -6
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/utils/url.ts","../src/stores/action-info/action-info.constant.ts","../src/stores/action-info/action-info.actions.ts","../src/stores/action-info/action-info.reducers.ts","../src/stores/root/root.selectors.ts","../src/stores/action-info/action-info.selectors.ts","../src/stores/action/action.constant.ts","../src/stores/action/action.actions.ts","../src/stores/action/action.reducers.ts","../src/stores/action/action.selectors.ts","../src/stores/actions/actions.constant.ts","../src/stores/actions/actions.actions.ts","../src/stores/actions/actions.reducers.ts","../src/stores/actions/actions.selectors.ts","../src/stores/auth/auth.constant.ts","../src/stores/auth/auth.utils.tsx","../src/stores/auth/auth.actions.ts","../src/stores/auth/auth.reducers.ts","../src/stores/auth/auth.selectors.ts","../src/stores/auth/getProjectAccess.action.ts","../src/stores/auth/getAccess.action.ts","../src/stores/auth/logout.action.ts","../src/stores/auth/setUser.action.ts","../src/stores/auth/initAuth.action.ts","../src/stores/form/form.selectors.ts","../src/stores/form/form.actions.ts","../src/stores/form/form.reducers.ts","../src/utils/clean.ts","../src/utils/mapRequestParams.ts","../src/stores/forms/forms.selectors.ts","../src/stores/forms/forms.actions.ts","../src/stores/forms/forms.reducers.ts","../src/stores/submission/submission.actions.ts","../src/stores/submission/submission.reducers.ts","../src/stores/submission/submission.selectors.ts","../src/stores/submissions/submissions.selectors.ts","../src/stores/submissions/submissions.actions.ts","../src/stores/submissions/submissions.reducers.ts","../src/stores/index.ts","../../../node_modules/classnames/index.js","../src/utils/iconClass.ts","../src/utils/getEventValue.ts","../src/components/form-control/formControl.component.tsx","../src/components/select/select.component.tsx","../src/components/table/utils/getPageNumbers.ts","../src/components/pagination/pagination.component.tsx","../src/components/table/components/defaultArrowSort.component.tsx","../src/components/table/components/defaultCellHeader.component.tsx","../src/utils/callLast.ts","../src/components/input-text/inputText.component.tsx","../src/components/table/filters/defaultColumnFilter.component.tsx","../src/utils/stopPropagationWrapper.ts","../src/components/table/components/defaultOperationButton.component.tsx","../src/components/table/components/defaultCellOperations.component.tsx","../src/components/table/utils/useOperations.hook.tsx","../src/components/table/table.component.tsx","../src/components/actions-table/actionsTable.component.tsx","../src/components/alert/alert.component.tsx","../src/components/card/card.component.tsx","../src/components/form/useForm.hook.ts","../src/components/form/form.component.tsx","../src/components/form-access/formAccess.schema.ts","../src/components/form-access/formAccess.utils.ts","../src/components/form-access/formAccess.component.tsx","../src/components/form-action/formAction.component.tsx","../src/components/form-builder/formBuilder.component.tsx","../src/hooks/useTooltip.ts","../src/components/form-edit/formCtas.component.tsx","../src/components/input-tags/inputTags.component.tsx","../src/components/form-edit/formParameters.component.tsx","../src/components/form-edit/formEdit.reducer.ts","../src/components/form-edit/useFormEdit.hook.ts","../src/components/form-edit/formEdit.component.tsx","../src/components/form-settings/formSettings.schema.ts","../src/components/form-settings/formSettings.utils.ts","../src/components/form-settings/formSettings.component.tsx","../src/components/table/filters/selectColumnFilter.component.tsx","../../../node_modules/moment/moment.js","../src/components/forms-table/components/formCell.component.tsx","../src/components/forms-table/formsTable.component.tsx","../src/components/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/components/loader/loader.component.tsx"],"sourcesContent":["import { Formio, Utils } from \"formiojs\";\n\nexport function getFormUrl(formId: string): string {\n const url = [Formio.getProjectUrl()];\n\n if (Utils.isMongoId(formId)) {\n url.push(\"form\");\n } else if (formId.includes(\"__\")) {\n formId = formId.replace(/__/gi, \"/\");\n }\n\n url.push(formId);\n\n return url.join(\"/\");\n}\n\nexport function getActionUrl(formId: string, actionId?: string): string {\n return [getFormUrl(formId), \"action\", actionId].filter(Boolean).join(\"/\");\n}\n\nexport function getSubmissionUrl(formId: string, submissionId?: string): string {\n return [getFormUrl(formId), \"submission\", submissionId].filter(Boolean).join(\"/\");\n}\n","export const ACTION_INFO = \"actionInfo\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport noop from \"lodash/noop\";\nimport { Formio } from \"formiojs\";\nimport { getFormUrl } from \"../../utils/url\";\nimport { ACTION_INFO } from \"./action-info.constant\";\n\nexport const resetActionInfo = createAction();\nexport const requestActionInfo = createAction();\nexport const receiveActionInfo = createAction();\nexport const failActionInfo = createAction();\n\nexport const getActionInfo =\n (formId: string, actionType: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(requestActionInfo(ACTION_INFO));\n\n const url = getFormUrl(formId);\n const formio = new Formio(url);\n\n try {\n const actionInfo = await formio.actionInfo(actionType);\n\n actionInfo.settingsForm.action = Formio.getProjectUrl() + actionInfo.settingsForm.action;\n\n dispatch(receiveActionInfo(ACTION_INFO, { actionInfo }));\n done(null, actionInfo);\n } catch (error) {\n dispatch(failActionInfo(ACTION_INFO, { error }));\n done(error);\n }\n };\n","import { InitialStateCreator, createReducer } from \"@tsed/redux-utils\";\nimport { ActionSchema } from \"../../interfaces\";\nimport { failActionInfo, receiveActionInfo, requestActionInfo, resetActionInfo } from \"./action-info.actions\";\nimport { ACTION_INFO } from \"./action-info.constant\";\n\nexport interface ActionInfoState {\n error: null | Error;\n data?: Partial<ActionSchema>;\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator<ActionInfoState> = () => ({\n error: null,\n data: {},\n isActive: false\n});\n\nexport const actionInfoReducer = createReducer<ActionInfoState>(\n {\n [resetActionInfo.toString()]: (_, _2, reset) => {\n return reset();\n },\n [requestActionInfo.toString()]: (state) => ({\n ...state,\n error: null,\n data: {},\n isActive: true\n }),\n [receiveActionInfo.toString()]: (state, { actionInfo }) => ({\n ...state,\n error: null,\n data: actionInfo,\n isActive: false\n }),\n [failActionInfo.toString()]: (state, { error }) => ({\n ...state,\n data: {},\n error,\n isActive: false\n })\n },\n createInitialState\n)(ACTION_INFO);\n","import get from \"lodash/get\";\n\nexport function selectRoot<State = Record<string, any>>(name: string): (state: Record<string, any>) => State;\nexport function selectRoot<State = Record<string, any>>(name: string, state: Record<string, any>): State;\nexport function selectRoot<State = Record<string, any>>(name: string, state?: Record<string, any>): any {\n if (state) {\n return state[name];\n }\n\n return (state: Record<string, any>) => selectRoot(name, state);\n}\n\nexport const selectError = (name: string, state: Record<string, any>): null | Error => get(selectRoot(name, state), \"error\");\n\nexport const selectIsActive = (name: string, state: Record<string, any>): boolean => get(selectRoot(name, state), \"isActive\");\n\nexport function oneOfIsActive(...names: string[]) {\n return (state: any) => {\n return !!names.find((name) => {\n return get(state, `${name}.isActive`, get(state, `${name}.current.isActive`));\n });\n };\n}\n","import { ActionSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { ACTION_INFO } from \"./action-info.constant\";\nimport { ActionInfoState } from \"./action-info.reducers\";\n\nexport const selectActionInfo = (state: Record<string, any>): Partial<ActionSchema> => selectRoot<ActionInfoState>(ACTION_INFO, state).data;\n","export const ACTION = \"action\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport get from \"lodash/get\";\nimport noop from \"lodash/noop\";\nimport { getActionUrl } from \"../../utils/url\";\nimport { getActionInfo } from \"../action-info\";\nimport { ACTION } from \"./action.constant\";\n\nexport const clearActionError = createAction();\nexport const resetAction = createAction();\nexport const requestAction = createAction();\nexport const receiveAction = createAction();\nexport const failAction = createAction();\nexport const sendAction = createAction();\n\nfunction getFormio(formId: string, id: string) {\n const url = getActionUrl(formId, id);\n return new Formio(url);\n}\n\nexport const getAction =\n (formId: string, actionId: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n dispatch(requestAction(ACTION));\n\n const formio = getFormio(formId, actionId);\n\n try {\n const action = await formio.loadAction();\n\n dispatch(getActionInfo(formId, action.name));\n dispatch(receiveAction(ACTION, { action }));\n done(null, action);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n\nexport const saveAction =\n (formId: string, action: any, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n dispatch(sendAction(ACTION, { action }));\n\n const formio = getFormio(formId, get(action, \"data._id\", \"\"));\n\n try {\n const result = await formio.saveAction(action);\n dispatch(receiveAction(ACTION, { action: result }));\n done(null, result);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n\nexport const deleteAction = (formId: string, actionId: string, done = noop) => {\n return async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n\n // const state = getState();\n // const path = formId.replace(\"__\", \"/\");\n // const form = selectForm(\"form\", state);\n // const resource = selectForm(\"resource\", state);\n //\n // formId = (path === form.path ? form._id : resource._id) || formId;\n\n const formio = getFormio(formId, actionId);\n\n try {\n await formio.deleteAction();\n dispatch(resetAction(ACTION));\n done(null);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n};\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\nimport { ActionSchema } from \"../../interfaces\";\n\nimport { clearActionError, failAction, receiveAction, requestAction, resetAction, sendAction } from \"./action.actions\";\nimport { ACTION } from \"./action.constant\";\n\nexport interface ActionState {\n error: null | Error;\n data: ActionSchema;\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator = (): ActionState => ({\n error: null,\n data: {} as any,\n isActive: false\n});\n\nexport const actionReducer = createReducer<ActionState>({}, createInitialState)\n .on(resetAction, (_: any, _2: any, reset: any) => reset())\n .on(clearActionError, (state) => ({\n ...state,\n error: null\n }))\n .on(requestAction, (state) => ({\n ...state,\n error: null,\n data: {},\n isActive: true\n }))\n .on(sendAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: true\n }))\n .on(receiveAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: false\n }))\n .on(receiveAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: false\n }))\n .on(failAction, (state, { error }) => ({\n ...state,\n data: {},\n error,\n isActive: false\n }))(ACTION);\n","import { ActionSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { ACTION } from \"./action.constant\";\nimport { ActionState } from \"./action.reducers\";\n\nexport const selectAction = (state: Record<string, any>): ActionSchema => selectRoot<ActionState>(ACTION, state).data;\n","export const ACTIONS = \"actions\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { getFormUrl } from \"../../utils/url\";\nimport { ACTIONS } from \"./actions.constant\";\n\nexport const resetActions = createAction();\nexport const requestActions = createAction();\nexport const receiveActions = createAction<{\n actions: any[];\n availableActions: any[];\n}>();\nexport const failActions = createAction<{ error: Error }>();\n\nexport const getActions =\n (id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(resetActions(ACTIONS));\n dispatch(requestActions(ACTIONS));\n\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n const [actions, availableActions] = await Promise.all([formio.loadActions({ params: {} }), formio.availableActions()]);\n\n dispatch(receiveActions(ACTIONS, { actions, availableActions }));\n done(null, actions, availableActions);\n } catch (error) {\n dispatch(failActions(ACTIONS, { error }));\n done(error);\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\nimport { ActionInfoSchema, ActionSchema } from \"../../interfaces\";\nimport { failActions, receiveActions, requestActions, resetActions } from \"./actions.actions\";\nimport { ACTIONS } from \"./actions.constant\";\n\nexport interface ActionsState {\n error: null | Error;\n data: ActionSchema[];\n availableActions: ActionInfoSchema[];\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator<ActionsState> = () => ({\n error: null,\n data: [],\n availableActions: [],\n isActive: false\n});\n\nexport const actionsReducer = createReducer<ActionsState>(\n {\n [resetActions.toString()]: (_, _2, reset) => {\n return reset();\n },\n [requestActions.toString()]: (state) => ({\n ...state,\n error: null,\n data: [],\n availableActions: [],\n isActive: true\n }),\n [receiveActions.toString()]: (state, { actions, availableActions }) => ({\n ...state,\n error: null,\n data: actions,\n availableActions,\n isActive: false\n }),\n [failActions.toString()]: (state, { error }) => ({\n ...state,\n error,\n data: [],\n isActive: false\n })\n },\n createInitialState\n)(ACTIONS);\n","import { selectRoot } from \"../root\";\nimport { ACTIONS } from \"./actions.constant\";\nimport { ActionsState } from \"./actions.reducers\";\n\nexport const selectActions = (state: Record<string, any>) => selectRoot<ActionsState>(ACTIONS, state).data;\n\nexport const selectAvailableActions = (state: Record<string, any>) => selectRoot<ActionsState>(ACTIONS, state).availableActions;\n","export const AUTH = \"auth\";\n","import get from \"lodash/get\";\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { AuthState } from \"./auth.reducers\";\n\nexport function hasRole(auth: AuthState, role: string): boolean {\n return auth.is[role];\n}\n\nexport function hasRoles(auth: AuthState, roles: string[]): boolean {\n roles = [].concat(roles);\n\n return !!roles.find((role) => hasRole(auth, role));\n}\n\nexport function isAuthorized(auth: AuthState, roles: string[] = []): boolean {\n if (auth && auth.authenticated) {\n if (roles.length) {\n return !!hasRoles(auth, roles);\n }\n return true;\n }\n\n return false;\n}\n\nexport function checkRoleFormAccess(auth: AuthState, form?: Partial<FormSchema>, roles?: string[]) {\n if (roles && roles.length) {\n if (isAuthorized(auth, roles)) {\n return true;\n }\n\n return !!(roles.includes(\"owner\") && get(form, \"owner\") === get(auth, \"user._id\"));\n }\n\n return true;\n}\n","import { createAction } from \"@tsed/redux-utils\";\nimport { FormSchema, RoleSchema, Submission } from \"../../interfaces\";\n\nexport const requestUser = createAction();\nexport const receiveUser = createAction<{ user: Submission }>();\nexport const failUser = createAction<{ error: Error }>();\nexport const logoutUser = createAction();\nexport const submissionAccessUser = createAction<{ submissionAccess: any }>();\nexport const formAccessUser = createAction<{ formAccess: any }>();\nexport const projectAccessUser = createAction<{ projectAccess: any }>();\nexport const userRoles = createAction<{ roles: Record<string, RoleSchema> }>();\nexport const userForms = createAction<{ forms: Record<string, FormSchema> }>();\n","import { createReducer } from \"@tsed/redux-utils\";\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { RoleSchema } from \"../../interfaces/RoleSchema\";\nimport {\n failUser,\n formAccessUser,\n logoutUser,\n projectAccessUser,\n receiveUser,\n requestUser,\n submissionAccessUser,\n userForms,\n userRoles\n} from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport interface AuthState<User = any> {\n init: boolean;\n isActive: boolean;\n user: null | Submission<User>;\n authenticated: boolean;\n projectAccess: Record<string, string[]>;\n formAccess: Record<string, string[]>;\n submissionAccess: Record<string, string[]>;\n roles: Record<string, RoleSchema>;\n forms: Record<string, FormSchema>;\n is: Record<string, boolean>;\n error: null | Error;\n}\n\nfunction createInitialState(): AuthState {\n return {\n init: false,\n isActive: false,\n user: null,\n authenticated: false,\n submissionAccess: {},\n formAccess: {},\n projectAccess: {},\n roles: {},\n forms: {},\n is: {},\n error: null\n };\n}\n\nfunction mapProjectRolesToUserRoles(projectRoles: Record<string, any>, userRoles: any[]) {\n return Object.entries(projectRoles).reduce(\n (result, [name, role]) => ({\n ...result,\n [name]: userRoles.includes(role._id)\n }),\n {}\n );\n}\n\nfunction getUserRoles(projectRoles: Record<string, RoleSchema>) {\n return Object.keys(projectRoles).reduce(\n (result, name) => ({\n ...result,\n [name]: name === \"anonymous\"\n }),\n {}\n );\n}\n\nexport const authReducer = createReducer<AuthState>(\n {\n [requestUser.toString()](state) {\n return {\n ...state,\n init: true,\n submissionAccess: false,\n isActive: true\n };\n },\n [receiveUser.toString()](state, { user }) {\n return {\n ...state,\n isActive: false,\n user,\n authenticated: true,\n is: mapProjectRolesToUserRoles(state.roles, user.roles),\n error: null\n };\n },\n [failUser.toString()](state, { error }: any) {\n return {\n ...state,\n isActive: false,\n is: getUserRoles(state.roles),\n error\n };\n },\n [logoutUser.toString()](state) {\n return {\n ...state,\n user: null,\n isActive: false,\n authenticated: false,\n is: getUserRoles(state.roles),\n error: null\n };\n },\n [submissionAccessUser.toString()](state, { submissionAccess }: any) {\n return {\n ...state,\n submissionAccess\n };\n },\n [formAccessUser.toString()](state, { formAccess }: any) {\n return {\n ...state,\n formAccess\n };\n },\n [userForms.toString()](state, { forms }: any) {\n return {\n ...state,\n forms\n };\n },\n [projectAccessUser.toString()](state, { projectAccess }: any) {\n return {\n ...state,\n projectAccess\n };\n },\n [userRoles.toString()](state, { roles }: any) {\n return {\n ...state,\n roles\n };\n },\n default(state: any) {\n if (!window.localStorage.getItem(\"formioUser\")) {\n return {\n ...state,\n user: null,\n isActive: false,\n authenticated: false,\n is: getUserRoles(state.roles),\n error: null\n };\n }\n return state;\n }\n },\n createInitialState\n)(AUTH);\n","import get from \"lodash/get\";\nimport { RoleSchema, Submission } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { AUTH } from \"./auth.constant\";\nimport { AuthState } from \"./auth.reducers\";\n\nexport const selectAuth = (state: any) => selectRoot<AuthState>(AUTH, state);\n\nexport const selectUser = <User = any>(state: any): null | Submission<User> => get(selectAuth(state), \"user\");\n\nexport const selectRoles = (state: any): Record<string, RoleSchema> => get(selectAuth(state), \"roles\");\n\nexport const selectIsAuthenticated = (state: any): boolean => get(selectAuth(state), \"authenticated\");\n","import { Formio } from \"formiojs\";\nimport { projectAccessUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nfunction transformProjectAccess(projectAccess: any[]) {\n return projectAccess.reduce(\n (result: any, access: any) => ({\n ...result,\n [access.type]: access.roles\n }),\n {}\n );\n}\n\nexport async function getProjectAccess(dispatch: any) {\n const projectUrl = Formio.getProjectUrl();\n\n try {\n const project = await Formio.makeStaticRequest(projectUrl);\n const projectAccess = transformProjectAccess(project.access);\n\n dispatch(projectAccessUser(AUTH, projectAccess));\n } catch (er) {}\n}\n","import { Formio } from \"formiojs\";\nimport { RoleSchema } from \"../../interfaces\";\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { formAccessUser, submissionAccessUser, userForms, userRoles } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nfunction transformSubmissionAccess(forms: Record<string, FormSchema>) {\n return Object.values(forms).reduce(\n (result, form) => ({\n ...result,\n [form.name]: form.submissionAccess.reduce(\n (formSubmissionAccess: any, access: any) => ({\n ...formSubmissionAccess,\n [access.type]: access.roles\n }),\n {}\n )\n }),\n {}\n );\n}\n\nfunction transformFormAccess(forms: Record<string, FormSchema>) {\n return Object.values(forms).reduce(\n (result, form) => ({\n ...result,\n [form.name]: form.access.reduce(\n (formAccess: any, access: any) => ({\n ...formAccess,\n [access.type]: access.roles\n }),\n {}\n )\n }),\n {}\n );\n}\n\nexport async function getAccess(dispatch: any) {\n const projectUrl = Formio.getProjectUrl();\n\n try {\n const result: {\n roles: Record<string, RoleSchema>;\n forms: Record<string, FormSchema>;\n } = await Formio.makeStaticRequest(`${projectUrl}/access`);\n\n const submissionAccess = transformSubmissionAccess(result.forms);\n const formAccess = transformFormAccess(result.forms);\n\n dispatch(submissionAccessUser(AUTH, { submissionAccess }));\n dispatch(formAccessUser(AUTH, { formAccess }));\n dispatch(userRoles(AUTH, { roles: result.roles }));\n dispatch(userForms(AUTH, { forms: result.forms }));\n } catch (err) {}\n}\n","import { Formio } from \"formiojs\";\nimport { logoutUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport const logout = () => async (dispatch: any) => {\n await Formio.logout();\n dispatch(logoutUser(AUTH));\n};\n","import { Formio } from \"formiojs\";\nimport { receiveUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport const setUser = (user: any) => (dispatch: any) => {\n Formio.setUser(user);\n dispatch(receiveUser(AUTH, { user }));\n};\n","import { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { failUser, requestUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\nimport { getAccess } from \"./getAccess.action\";\nimport { getProjectAccess } from \"./getProjectAccess.action\";\nimport { logout } from \"./logout.action\";\nimport { setUser } from \"./setUser.action\";\n\nexport const initAuth =\n (done = noop) =>\n async (dispatch: any) => {\n dispatch(requestUser(AUTH));\n\n try {\n const [user] = await Promise.all([Formio.currentUser(), getAccess(dispatch), getProjectAccess(dispatch)]);\n\n if (user) {\n dispatch(setUser(user));\n } else {\n dispatch(logout());\n }\n } catch (error) {\n dispatch(failUser(AUTH, { error }));\n }\n\n done();\n };\n","import { FormSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { FormState } from \"./form.reducers\";\n\nexport const selectForm = (name: string, state: any): Partial<FormSchema> => selectRoot<FormState>(name, state).data;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { FormSchema } from \"../../interfaces\";\nimport { getFormUrl } from \"../../utils/url\";\nimport { getActions } from \"../actions\";\nimport { selectForm } from \"./form.selectors\";\n\nexport const clearFormError = createAction();\nexport const requestForm = createAction();\nexport const receiveForm = createAction();\nexport const failForm = createAction();\nexport const resetForm = createAction();\nexport const sendForm = createAction();\n\nfunction shouldGet(form: Partial<FormSchema>, id: string) {\n return form && form.components && Array.isArray(form.components) && form.components.length && form._id === id;\n}\n\nexport const getForm =\n (name: string, id = \"\", done = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(clearFormError(name));\n // Check to see if the form is already loaded.\n const form = selectForm(name, getState());\n\n if (shouldGet(form, id)) {\n return;\n }\n\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n dispatch(requestForm(name, { id, url }));\n\n try {\n const form = await formio.loadForm();\n\n dispatch(receiveForm(name, { form, url }));\n dispatch(getActions(form._id));\n done(null, form);\n } catch (error) {\n dispatch(failForm(name, { error }));\n done({ error });\n }\n };\n\nexport const saveForm =\n (name: string, form: Partial<FormSchema>, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearFormError(name));\n dispatch(sendForm(name, { form }));\n\n const id = form._id || \"\";\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n const result = await formio.saveForm(form);\n dispatch(receiveForm(name, { form: result, url: getFormUrl(result._id) }));\n done(null, result);\n } catch (error) {\n dispatch(failForm(name, { error }));\n done(error);\n }\n };\n\nexport const deleteForm =\n (name: string, id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearFormError(name));\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n await formio.deleteForm();\n dispatch(resetForm(name));\n done();\n } catch (error) {\n dispatch(failForm(name, { error }));\n done({ error });\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\nimport { FormSchema } from \"../../interfaces\";\nimport { clearFormError, failForm, receiveForm, requestForm, resetForm, sendForm } from \"./form.actions\";\n\nexport interface FormState {\n error: null | Error;\n data?: Partial<FormSchema>;\n isActive: boolean;\n lastUpdated: number;\n url: string;\n}\n\nconst createInitialState: InitialStateCreator<FormState> = () => ({\n id: \"\",\n isActive: false,\n lastUpdated: 0,\n data: {},\n url: \"\",\n error: null\n});\n\nexport const formReducer = createReducer<FormState>(\n {\n [resetForm.toString()]: (_, _2, reset) => reset(),\n [clearFormError.toString()]: (state) => ({\n ...state,\n error: null\n }),\n [requestForm.toString()]: (state, { id, url }) => ({\n ...state,\n isActive: true,\n id,\n url,\n data: {},\n error: null\n }),\n [receiveForm.toString()]: (state, { form, url }) => ({\n ...state,\n isActive: false,\n id: form._id,\n data: form,\n url: url || state.url,\n error: null\n }),\n [failForm.toString()]: (state, payload) => ({\n ...state,\n error: payload.error,\n isActive: false\n }),\n [sendForm.toString()]: (state, { form, url }) => ({\n ...state,\n data: form,\n url,\n isActive: true\n })\n },\n createInitialState\n);\n","export function clean(obj: any = {}) {\n return Object.entries(obj).reduce((obj, [key, entry]) => {\n if (entry !== undefined) {\n return {\n ...obj,\n [key]: entry\n };\n }\n\n return obj;\n }, {});\n}\n","import { QueryOptions } from \"../interfaces/QueryOptions\";\nimport { clean } from \"./clean\";\n\nexport interface RequestParamsOptions extends QueryOptions {\n select: string | string[];\n query: {\n [key: string]: string;\n };\n [key: string]: any;\n}\n\nexport function mapRequestParams({ query, pageSize = 10, pageIndex = 0, select, filters, sortBy }: Partial<RequestParamsOptions>) {\n const requestParams: any = {\n ...clean(query),\n limit: pageSize,\n skip: pageIndex * pageSize\n };\n\n if (select && select.length) {\n requestParams.select = Array.isArray(select) ? select.join(\",\") : select;\n }\n\n if (filters && filters.length) {\n filters.forEach((filter) => {\n if (filter.value) {\n requestParams[`${filter.id}__regex`] = new RegExp(filter.value, \"gi\").toString();\n }\n });\n }\n\n if (sortBy && sortBy.length) {\n requestParams.sort = (sortBy[0].desc ? \"-\" : \"\") + sortBy[0].id;\n }\n\n return requestParams;\n}\n","import { selectRoot } from \"../root\";\nimport { FormsState } from \"./forms.reducers\";\n\nexport const selectForms = (name: string, state: any) => selectRoot<FormsState>(name, state).data;\n\nexport const selectFormsParameters = (name: string, state: any) => selectRoot<FormsState>(name, state).parameters;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { FormSchema } from \"../../interfaces\";\nimport type { RequestParamsOptions } from \"../../utils/mapRequestParams\";\nimport { mapRequestParams } from \"../../utils/mapRequestParams\";\nimport { selectFormsParameters } from \"./forms.selectors\";\n\nexport const resetForms = createAction();\nexport const requestForms = createAction<{\n parameters: Partial<RequestParamsOptions>;\n}>();\nexport const receiveForms = createAction<{ forms: FormSchema[] }>();\nexport const failForms = createAction();\n\nexport type GetFormsCB = (err: any, forms?: FormSchema[]) => void;\n\nexport const getForms =\n (name: string, parameters: Partial<RequestParamsOptions>, done: GetFormsCB = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(requestForms(name, { parameters }));\n\n const formio = new Formio(`${Formio.getProjectUrl()}/form`);\n const requestParams = mapRequestParams(selectFormsParameters(name, getState()));\n\n try {\n const result: FormSchema[] = await formio.loadForms({\n params: requestParams\n });\n dispatch(receiveForms(name, { forms: result }));\n done(null, result);\n } catch (error) {\n dispatch(failForms(name, { error }));\n done(error);\n }\n };\n\nexport const refreshForms = (name: string, done = noop) => {\n return async (dispatch: any, getState: any) => {\n const parameters = selectFormsParameters(name, getState());\n return getForms(name, parameters, done)(dispatch, getState);\n };\n};\n","import { createReducer } from \"@tsed/redux-utils\";\nimport { FormSchema } from \"../../interfaces\";\nimport { failForms, receiveForms, requestForms, resetForms } from \"./forms.actions\";\n\nexport interface FormsState {\n error: null | Error;\n isActive: boolean;\n parameters: {\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n query: any;\n select: any;\n sortBy: any[];\n filters: any[];\n };\n data: FormSchema[];\n}\n\nconst createInitialState = ({ pageIndex = 0, pageSize = 10, query = {}, select = \"\", sortBy = [] }: any = {}): FormsState => {\n return {\n error: null,\n isActive: false,\n parameters: {\n pageSize,\n pageIndex,\n pageCount: 0,\n query,\n select,\n sortBy,\n filters: []\n },\n data: []\n };\n};\n\nexport const formsReducer = createReducer<FormsState>({}, createInitialState)\n .on(resetForms, (_: any, _2: any, reset: any) => {\n return reset();\n })\n .on(requestForms, (state: FormsState, { parameters }: any) => {\n return {\n ...state,\n parameters: {\n ...state.parameters,\n ...parameters\n },\n error: null,\n data: [],\n isActive: true\n };\n })\n .on(receiveForms, (state: FormsState, { forms }: any) => {\n const total = forms.serverCount;\n const pageCount = Math.ceil(total / (state.parameters.pageSize || 10));\n\n delete forms.serverCount;\n\n return {\n ...state,\n data: forms,\n isActive: false,\n parameters: {\n ...state.parameters,\n pageCount,\n totalLength: total\n }\n };\n })\n .on(failForms, (state: any, { error }: any) => {\n return {\n ...state,\n error,\n isActive: false\n };\n });\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { Submission } from \"../../interfaces\";\nimport { getSubmissionUrl } from \"../../utils/url\";\n\nexport const clearSubmissionError = createAction();\nexport const requestSubmission = createAction();\nexport const sendSubmission = createAction();\nexport const receiveSubmission = createAction();\nexport const failSubmission = createAction();\nexport const resetSubmission = createAction();\n\nexport const getSubmission =\n (name: string, formId: string, id: string, done = noop) =>\n async (dispatch: any, getState: any) => {\n // Check to see if the submission is already loaded.\n if (getState().id === id) {\n return;\n }\n\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n dispatch(clearSubmissionError(name));\n dispatch(requestSubmission(name, { id, formId, url }));\n\n try {\n const result = await formio.loadSubmission();\n\n dispatch(receiveSubmission(name, { submission: result, url }));\n done(null, result);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n\nexport const saveSubmission =\n (name: string, formId: string, data: Submission, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearSubmissionError(name));\n dispatch(sendSubmission(name, { submission: data, formId }));\n\n const id = data._id;\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n try {\n const result = await formio.saveSubmission(data);\n dispatch(\n receiveSubmission(name, {\n submission: result,\n url: getSubmissionUrl(formId, result._id)\n })\n );\n done(null, result);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n\nexport const deleteSubmission =\n (name: string, formId: string, id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearSubmissionError(name));\n\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n try {\n await formio.deleteSubmission();\n dispatch(resetSubmission(name));\n done(null);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\nimport { Submission } from \"../../interfaces\";\nimport {\n clearSubmissionError,\n failSubmission,\n receiveSubmission,\n requestSubmission,\n resetSubmission,\n sendSubmission\n} from \"./submission.actions\";\n\nexport interface SubmissionState {\n formId: string;\n id: string;\n isActive: boolean;\n lastUpdated: number;\n data: Partial<Submission>;\n url: string;\n error: null | Error;\n}\n\nconst createInitialState: InitialStateCreator = () => ({\n formId: \"\",\n id: \"\",\n isActive: false,\n lastUpdated: 0,\n data: {},\n url: \"\",\n error: null\n});\n\nexport const submissionReducer = createReducer<SubmissionState>(\n {\n [resetSubmission.toString()]: (_: any, _2: any, reset: any) => reset(),\n [clearSubmissionError.toString()]: (state: any) => ({\n ...state,\n error: null\n }),\n [requestSubmission.toString()]: (state: any, { formId, id, url }: any) => ({\n ...state,\n formId,\n id,\n url,\n data: {},\n isActive: true\n }),\n [sendSubmission.toString()]: (state: any, { formId, submission, id, url }: any) => ({\n ...state,\n formId,\n id,\n url: url || state.url,\n data: submission,\n isActive: true\n }),\n [receiveSubmission.toString()]: (state: any, { submission, url }: any) => ({\n ...state,\n data: submission,\n url: url || state.url,\n isActive: false,\n error: null\n }),\n [failSubmission.toString()]: (state: any, { error }: any) => ({\n ...state,\n isActive: false,\n error\n })\n },\n createInitialState\n);\n","import { Submission } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { SubmissionState } from \"./submission.reducers\";\n\nexport const selectSubmission = (name: string, state: any): Partial<Submission> => selectRoot<SubmissionState>(name, state).data;\n","import { selectRoot } from \"../root\";\nimport { SubmissionsState } from \"./submissions.reducers\";\n\nexport const selectSubmissions = (name: string, state: any) => selectRoot<SubmissionsState>(name, state).data;\n\nexport const selectSubmissionsParameters = (name: string, state: any) => selectRoot<SubmissionsState>(name, state).parameters;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { mapRequestParams } from \"../../utils/mapRequestParams\";\nimport { getSubmissionUrl } from \"../../utils/url\";\nimport { selectSubmissionsParameters } from \"./submissions.selectors\";\n\nexport const resetSubmissions = createAction();\nexport const requestSubmissions = createAction();\nexport const receiveSubmissions = createAction();\nexport const failSubmissions = createAction();\n\nexport const getSubmissions =\n (name: string, formId: string, parameters: any = {}, done = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(requestSubmissions(name, { formId, parameters }));\n\n const url = getSubmissionUrl(formId);\n const formio = new Formio(url);\n const requestParams = mapRequestParams(selectSubmissionsParameters(name, getState()));\n\n try {\n const submissions = await formio.loadSubmissions({ params: requestParams });\n dispatch(receiveSubmissions(name, { submissions }));\n done(null, submissions);\n } catch (error) {\n dispatch(failSubmissions(name, { error }));\n done(error);\n }\n };\n\nexport const refreshSubmissions = (name: string, formId: string, done = noop) => {\n return async (dispatch: any, getState: any) => {\n const parameters = selectSubmissionsParameters(name, getState());\n return getSubmissions(name, formId, parameters, done)(dispatch, getState);\n };\n};\n","import { createReducer } from \"@tsed/redux-utils\";\nimport { Submission } from \"../../interfaces/Submission\";\nimport { failSubmissions, receiveSubmissions, requestSubmissions, resetSubmissions } from \"./submissions.actions\";\n\nexport interface SubmissionsState {\n error: null | Error;\n formId: string;\n isActive: boolean;\n parameters: {\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n query: any;\n select: any;\n sortBy: any[];\n };\n data: Submission[];\n}\n\nexport function createInitialState({ pageIndex = 0, pageSize = 10, query = {}, select = \"\", sortBy = [] }: any = {}): SubmissionsState {\n return {\n error: null,\n formId: \"\",\n isActive: false,\n parameters: {\n pageSize,\n pageIndex,\n pageCount: 0,\n query,\n select,\n sortBy\n },\n data: []\n };\n}\n\nexport const submissionsReducer = createReducer<SubmissionsState>({}, createInitialState)\n .on(resetSubmissions, (_: any, _2: any, reset: any) => {\n return reset();\n })\n .on(requestSubmissions, (state: any, { parameters, formId }: any) => {\n return {\n ...state,\n formId,\n parameters: {\n ...state.parameters,\n ...parameters\n },\n error: null,\n data: [],\n isActive: true\n };\n })\n .on(receiveSubmissions, (state: SubmissionsState, { submissions }: any) => {\n const total = submissions.serverCount;\n const pageCount = Math.ceil(total / (state.parameters.pageSize || 10));\n\n delete submissions.serverCount;\n\n return {\n ...state,\n data: submissions,\n isActive: false,\n parameters: {\n ...state.parameters,\n pageCount,\n totalLength: total\n }\n };\n })\n .on(failSubmissions, (state: any, { error }: any) => {\n return {\n ...state,\n error,\n isActive: false\n };\n });\n","import { combine } from \"@tsed/redux-utils\";\nimport { actionReducer } from \"./action\";\nimport { actionInfoReducer } from \"./action-info\";\nimport { actionsReducer } from \"./actions\";\nimport { authReducer } from \"./auth\";\nimport { formReducer } from \"./form\";\nimport { formsReducer } from \"./forms\";\nimport { submissionReducer } from \"./submission\";\nimport { submissionsReducer } from \"./submissions\";\n\nexport * from \"./auth\";\nexport * from \"./action\";\nexport * from \"./action-info\";\nexport * from \"./actions\";\nexport * from \"./form\";\nexport * from \"./forms\";\nexport * from \"./submission\";\nexport * from \"./submissions\";\nexport * from \"./root\";\n\nexport const defaultFormioReducer = combine(\n authReducer,\n actionsReducer,\n actionReducer,\n actionInfoReducer,\n formReducer(\"form\"),\n formsReducer(\"forms\", { query: { type: \"form\" } }),\n formReducer(\"resource\"),\n formsReducer(\"resources\", { query: { type: \"resource\" } }),\n submissionReducer(\"submission\"),\n submissionsReducer(\"submissions\")\n);\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Templates } from \"formiojs\";\n\nexport function iconClass(iconset: string | undefined, name: string, spinning?: boolean): string {\n return Templates.current.iconClass(iconset || Templates.current.defaultIconset, name, spinning);\n}\n","export function getEventValue(event: any) {\n const { target } = event;\n\n if (event.target.multiple && event.target.selectedOptions) {\n return Array.from(event.target.selectedOptions, (option: any) => option.value);\n }\n\n return target.type === \"checkbox\" ? target.checked : target.value;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nexport interface FormControlProps {\n name: string;\n required?: boolean;\n label?: string;\n className?: string;\n description?: string | React.ComponentType | any;\n prefix?: React.ComponentType | any;\n suffix?: 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 id={`form-group-${name || \"\"}`} className={classnames(\"form-group\", className)}>\n {label && (\n <label htmlFor={name} 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'>{prefix}</span>\n </div>\n )}\n {children}\n {suffix && (\n <div className='input-group-append'>\n <span className='input-group-text'>{suffix}</span>\n </div>\n )}\n </div>\n {description && <div className='form-text text-muted'>{description}</div>}\n </div>\n );\n}\n\nFormControl.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n children: PropTypes.any,\n required: PropTypes.bool,\n description: PropTypes.any\n};\n","import Choices from \"choices.js\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { ReactElement, useEffect, useRef } from \"react\";\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface SelectProps<T = any> extends FormControlProps {\n value?: any;\n size?: string;\n onChange?: (name: string, value: any) => void;\n placeholder?: string;\n choices: { label: string; value: T }[];\n layout?: \"html5\" | \"choicesjs\";\n multiple?: boolean;\n\n [key: string]: any;\n}\n\nexport function Select<T = any>({\n name,\n label,\n size,\n onChange,\n required,\n value,\n choices,\n description,\n placeholder,\n prefix,\n suffix,\n multiple,\n layout,\n ...props\n}: SelectProps<T>): ReactElement {\n const ref = useRef();\n\n useEffect(() => {\n let instance: any;\n\n if (layout === \"choicesjs\") {\n instance = new Choices(ref.current, {\n removeItemButton: true,\n placeholderValue: placeholder\n });\n }\n\n return () => {\n instance && instance.destroy();\n };\n }, []);\n\n choices =\n layout === \"choicesjs\" || multiple || !placeholder\n ? choices\n : ([\n {\n label: placeholder,\n value: \"\"\n },\n ...choices\n ] as any[]);\n\n return (\n <FormControl name={name} label={label} required={required} description={description} prefix={prefix} suffix={suffix} shadow={false}>\n {/* eslint-disable-next-line jsx-a11y/no-onchange */}\n <select\n ref={ref}\n {...props}\n data-testid={`select_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n name={name}\n id={name}\n multiple={multiple}\n value={value || (\"\" as any)}\n placeholder={placeholder}\n onChange={(event) => {\n onChange(name, getEventValue(event));\n }}\n >\n {choices.map(({ label, value }) => {\n return (\n <option key={String(value)} label={label} value={value as any}>\n {label}\n </option>\n );\n })}\n </select>\n </FormControl>\n );\n}\n\nSelect.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n choices: PropTypes.array.isRequired\n};\n","export const LEFT_PAGE = \"LEFT\";\nexport const RIGHT_PAGE = \"RIGHT\";\n\nfunction range(from: number, to: number, step = 1): any[] {\n let i = from;\n const range = [];\n\n while (i <= to) {\n range.push(i);\n i += step;\n }\n\n return range;\n}\n\nexport function getPageNumbers({ currentPage, pageNeighbours = 1, totalPages }: any) {\n const totalNumbers = pageNeighbours * 2 + 3;\n const totalBlocks = totalNumbers + 2;\n\n if (totalPages > totalBlocks) {\n const calculatedStartPage = Math.max(2, currentPage - pageNeighbours);\n const calculatedEndPage = Math.min(totalPages - 1, currentPage + pageNeighbours);\n const startPage = calculatedStartPage === 3 ? 2 : calculatedStartPage;\n const endPage = calculatedEndPage === totalPages - 2 ? totalPages - 1 : calculatedEndPage;\n\n let pages = range(startPage, endPage);\n\n const hasLeftSpill = startPage > 2;\n const hasRightSpill = totalPages - endPage > 1;\n const spillOffset = totalNumbers - (pages.length + 1);\n let extraPages;\n\n if (hasLeftSpill && !hasRightSpill) {\n extraPages = range(startPage - spillOffset, startPage - 1);\n pages = [LEFT_PAGE, ...extraPages, ...pages];\n } else if (!hasLeftSpill && hasRightSpill) {\n extraPages = range(endPage + 1, endPage + spillOffset);\n pages = [...pages, ...extraPages, RIGHT_PAGE];\n } else {\n pages = [LEFT_PAGE, ...pages, RIGHT_PAGE];\n }\n\n return [1, ...pages, totalPages];\n }\n\n return range(1, totalPages);\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\nimport { Select } from \"../select/select.component\";\nimport { getPageNumbers, LEFT_PAGE, RIGHT_PAGE } from \"../table/utils/getPageNumbers\";\n\nfunction PaginationButton(\n props: PropsWithChildren<\n {\n component?: any;\n disabled?: boolean;\n className?: string;\n active?: boolean;\n } & Record<string, any>\n >\n) {\n const { component: Component = \"button\", children, disabled, active, ...otherProps } = props;\n\n return (\n <Component\n {...otherProps}\n data-testid='pagination-button'\n disabled={disabled}\n className={classnames(\"page-link\", disabled ? \"disabled\" : \"\", active ? \"\" : \"\", props.className)}\n >\n {children}\n </Component>\n );\n}\n\nexport interface PaginationProps {\n className?: string;\n pageSizes?: number[];\n gotoPage: any;\n canPreviousPage: boolean;\n previousPage: any;\n nextPage: any;\n canNextPage: boolean;\n pageCount: number;\n pageIndex: number;\n pageOptions?: any;\n pageSize: number;\n setPageSize: any;\n i18n?: (f: string) => string;\n}\n\nexport function Pagination(props: PaginationProps) {\n const {\n className,\n pageSizes = [10, 25, 50, 100],\n gotoPage,\n canPreviousPage,\n previousPage,\n nextPage,\n canNextPage,\n pageCount,\n pageIndex = 1,\n pageOptions,\n pageSize,\n setPageSize,\n i18n = (f: string) => f\n } = props;\n\n const pageNumbers = getPageNumbers({\n currentPage: pageIndex,\n // pageNeighbours,\n totalPages: pageCount\n });\n const choices: any[] = pageSizes.map((value) => ({ value, label: value }));\n\n return (\n <nav aria-label='Page navigation' className={classnames(\"pagination-group -mb-3\", className)}>\n <ul className='pagination mb-3 mr-3'>\n <li className={classnames(\"page-item\", !canPreviousPage && \"disabled\")}>\n <PaginationButton tabIndex={-1} disabled={!canPreviousPage} onClick={() => previousPage()}>\n {i18n(\"Previous\")}\n </PaginationButton>\n </li>\n\n {pageNumbers.map((page) => {\n if ([LEFT_PAGE, RIGHT_PAGE].includes(page)) {\n return (\n <li className='page-item' key={page}>\n <PaginationButton aria-hidden='true'>...</PaginationButton>\n </li>\n );\n }\n\n const active = page - 1 === pageIndex;\n return (\n <li className={classnames(\"page-item\", active && \"active\")} key={page}>\n <PaginationButton tabIndex={pageIndex} active={active} onClick={() => gotoPage(page - 1)}>\n {page}\n </PaginationButton>\n </li>\n );\n })}\n\n <li className={classnames(\"page-item\", !canNextPage && \"disabled\")}>\n <PaginationButton tabIndex={pageNumbers.length} disabled={!canNextPage} onClick={() => nextPage()}>\n {i18n(\"Next\")}\n </PaginationButton>\n </li>\n </ul>\n\n <li className='mb-3 mr-3 flex items-center'>\n <Select\n name={\"page\"}\n value={pageSize}\n choices={choices}\n onChange={(name: string, value: number) => {\n setPageSize(+value);\n }}\n />\n <span className={\"ml-3\"}>{i18n(\"items per page\")}</span>\n </li>\n {pageOptions && (\n <li className={\"mb-3 flex items-center\"}>\n <span>{i18n(\"Page\")} </span>\n <strong>\n {pageIndex + 1} of {pageOptions.length}\n </strong>\n </li>\n )}\n </nav>\n );\n}\n","import React from \"react\";\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) {\n return (\n <div className={\"table-cell-header\"}>\n <div className='table-cell-header__label' {...column.getSortByToggleProps()}>\n <span>{column.render(\"Header\")}</span>\n\n {column.render(\"ArrowSort\")}\n </div>\n {column.canFilter ? <div className='table-cell-header__filter'>{column.render(\"Filter\")}</div> : null}\n </div>\n );\n}\n","export function callLast(fn: Function, time: number) {\n let last: any = null;\n\n return (...args: any[]) => {\n if (last) {\n clearTimeout(last);\n last = null;\n }\n\n last = setTimeout(() => fn(...args), time);\n };\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useMemo, useState } from \"react\";\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(() => 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(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\";\nimport { InputText } from \"../../input-text/inputText.component\";\n\nexport function DefaultColumnFilter<D extends Record<string, unknown> = {}>(\n props: FilterProps<D> & { filterId: string; setFilterId: any }\n) {\n const {\n filterId,\n setFilterId,\n column: { id, filterValue, setFilter }\n } = props;\n\n const [value, setValue] = useState(filterValue || \"\");\n\n const onChange = useCallback(\n (name, value) => {\n setValue(value);\n setFilterId(id);\n setFilter(value || undefined);\n },\n [id, setValue, setFilterId, setFilter]\n );\n\n return (\n <InputText\n size={\"sm\"}\n id={id}\n name={id}\n key={id}\n autoFocus={id === filterId}\n value={value}\n onChange={onChange}\n placeholder={\"Search records...\"}\n />\n );\n}\n","export const stopPropagationWrapper = (fn: Function) => (event: any) => {\n event.stopPropagation();\n fn();\n};\n","import classnames from \"classnames\";\nimport React from \"react\";\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport interface OperationButtonProps {\n className?: string;\n buttonType?: string;\n buttonSize?: string;\n buttonOutline?: boolean;\n data: any[];\n onClick: (action: string) => void;\n action: string;\n icon?: string;\n title?: string;\n i18n?: (i18n: string) => string;\n}\n\nexport function DefaultOperationButton(props: OperationButtonProps) {\n const {\n className = \"btn\",\n buttonSize = \"xs\",\n buttonType = \"primary\",\n buttonOutline,\n onClick,\n action,\n icon = \"\",\n title = \"\",\n i18n = (f: string) => f\n } = props;\n\n return (\n <button\n className={classnames(className, [\"btn\", buttonOutline && \"outline\", buttonType].filter(Boolean).join(\"-\"), `btn-${buttonSize}`)}\n onClick={stopPropagationWrapper(() => onClick(action))}\n >\n {icon ? (\n <>\n <i className={iconClass(undefined, icon)} /> {title && \" \"}\n </>\n ) : null}\n {title && <span className={icon && title ? \"ml-1\" : \"\"}>{i18n(title)}</span>}\n </button>\n );\n}\n","import React from \"react\";\nimport { DefaultOperationButton } from \"./defaultOperationButton.component\";\n\nexport function DefaultCellOperations({ operations, row, onClick, ctx, i18n }: any) {\n const data = row.original;\n\n return (\n <div className='btn-group'>\n {operations\n .filter(({ permissionsResolver }: any) => !permissionsResolver || permissionsResolver(data, ctx))\n .map(({ OperationButton = DefaultOperationButton, ...operation }: any) => {\n return (\n <OperationButton\n key={operation.action}\n {...operation}\n onClick={(action: string) => onClick(data, action)}\n data={data}\n i18n={i18n}\n ctx={ctx}\n />\n );\n })}\n </div>\n );\n}\n","import React from \"react\";\nimport { Hooks } from \"react-table\";\nimport { Operation } from \"../../../interfaces\";\nimport { DefaultCellOperations } from \"../components/defaultCellOperations.component\";\n\nexport type UseOperationsHookProps = {\n CellOperations?: React.ComponentType;\n operations: Operation[];\n onClick?: (data: any, event: string) => void;\n i18n?: (f: string) => string;\n ctx?: any;\n};\n\nexport function useOperations<D extends object = {}>({\n operations,\n CellOperations = DefaultCellOperations,\n onClick,\n i18n = (f: string) => f,\n ctx\n}: UseOperationsHookProps) {\n return (hooks: Hooks<D>): void => {\n hooks.visibleColumns.push((columns) => {\n if (!operations.length) {\n return columns;\n }\n\n return [\n ...columns,\n {\n id: \"operations\",\n groupByBoundary: true,\n Header: () => <div className={\"text-center\"}>{i18n(\"Operations\")}</div>,\n Cell: (props: any) => <CellOperations {...props} operations={operations} onClick={onClick} ctx={ctx} i18n={i18n} />\n }\n ];\n });\n };\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { PropsWithChildren } from \"react\";\nimport { CellProps, FilterProps, Renderer, TableOptions, useFilters, useGroupBy, usePagination, useSortBy, useTable } from \"react-table\";\nimport { OnClickOperation, Operation, QueryOptions } from \"../../interfaces\";\nimport { Pagination as DefaultPagination } from \"../pagination/pagination.component\";\nimport { DefaultArrowSort } from \"./components/defaultArrowSort.component\";\nimport { DefaultCellHeader, DefaultCellHeaderProps } from \"./components/defaultCellHeader.component\";\nimport { DefaultColumnFilter } from \"./filters/defaultColumnFilter.component\";\nimport { useOperations } from \"./utils/useOperations.hook\";\n\nexport interface TableProps<Data extends object = any> extends TableOptions<Data>, Partial<QueryOptions> {\n className?: string;\n /**\n * Call the listener when a filter / pagination / sort change.\n */\n onChange?: (query: QueryOptions) => void;\n /**\n * Call the listener when a line is clicked.\n */\n onClick?: OnClickOperation<Data>;\n /**\n * Pagination steps list\n */\n pageSizes?: number[];\n /**\n *\n */\n isLoading?: boolean;\n /**\n * Custom EmptyData displayed when there is no data\n */\n EmptyData?: React.ComponentType;\n /**\n * Custom ArrowSort\n */\n ArrowSort?: React.ComponentType;\n /**\n * Custom default ColumnFilter\n */\n ColumnFilter?: Renderer<FilterProps<Data>>;\n /**\n * Custom cell\n */\n Cell?: React.ComponentType<CellProps<Data>>;\n /**\n *\n */\n CellHeader?: React.ComponentType<DefaultCellHeaderProps<Data>>;\n /**\n *\n */\n CellOperations?: React.ComponentType;\n /**\n * Custom Loader\n */\n Loader?: React.ComponentType;\n /**\n * Custom Loader\n */\n Pagination?: React.ComponentType;\n /**\n * Disable filters\n */\n disableFilters?: boolean;\n /**\n * Disable pagination\n */\n disablePagination?: boolean;\n manualPagination?: boolean;\n manualSortBy?: boolean;\n manualFilters?: boolean;\n /**\n * Configuration operation for each line.\n */\n operations?: Operation[];\n\n i18n?: (f: string) => string;\n}\n\nfunction getOperationCallback(operations: Operation[], onClick: OnClickOperation) {\n return (data: any, action: string) => {\n const operation = operations.find((operation) => operation.action === action || operation.alias === action);\n if (operation) {\n onClick(data, operation);\n }\n };\n}\n\nfunction DefaultLoader() {\n return <div className={\"text-center p-2 pb-4 font-bold\"}>Loading in progress</div>;\n}\n\nfunction DefaultEmptyData() {\n return <div className='text-center p-2 pb-4 font-bold'>No data found</div>;\n}\n\nconst hooks = [useFilters, useGroupBy, useSortBy, usePagination];\n\nexport function Table<Data extends object = any>(props: PropsWithChildren<TableProps<Data>>) {\n const {\n children,\n className = \"\",\n columns,\n data,\n onChange = noop,\n onClick = noop,\n operations = [],\n pageSizes = [10, 25, 50, 100],\n filters: controlledFilters,\n filterId: controlledFilterId,\n pageSize: controlledPageSize,\n pageIndex: controlledPageIndex,\n sortBy: controlledSortBy,\n isLoading,\n disableFilters,\n disablePagination,\n ArrowSort = DefaultArrowSort,\n ColumnFilter = DefaultColumnFilter,\n EmptyData = DefaultEmptyData,\n Loader = DefaultLoader,\n Pagination = DefaultPagination,\n CellHeader = DefaultCellHeader as any,\n CellOperations,\n i18n = (f: string) => f,\n ...ctx\n } = props;\n\n const _onClick = getOperationCallback(operations, onClick);\n\n const defaultColumn = React.useMemo(\n () => ({\n // Let's set up our default Filter UI\n Filter: ColumnFilter,\n ArrowSort\n }),\n [ColumnFilter, ArrowSort]\n ) as any;\n\n const [filterId, setFilterId] = React.useState(controlledFilterId);\n\n const tableInstance = useTable<Data>(\n {\n ...props,\n columns,\n data,\n ctx,\n defaultColumn,\n initialState: {\n ...(props.initialState || {}),\n filters: controlledFilters || [],\n pageIndex: controlledPageIndex || 0,\n pageSize: controlledPageSize || 10,\n sortBy: controlledSortBy || []\n } as any,\n manualPagination: props.manualPagination === undefined ? true : props.manualPagination,\n manualSortBy: props.manualSortBy === undefined ? true : props.manualPagination,\n manualFilters: props.manualFilters === undefined ? true : props.manualFilters,\n disableFilters,\n filterId,\n setFilterId\n } as any,\n ...hooks,\n useOperations({ operations, CellOperations, onClick: _onClick, ctx, i18n })\n );\n\n const {\n setPageSize,\n state: { pageIndex, pageSize, sortBy, filters }\n } = tableInstance;\n\n React.useEffect(() => {\n onChange({\n pageIndex,\n pageSize,\n sortBy,\n filters,\n filterId\n });\n }, [onChange, pageIndex, pageSize, sortBy, filters, filterId]);\n\n // Render the UI for your table\n return (\n <div className={classnames(\"table-group table-responsive\", className)}>\n <table\n className={\"table table-striped table-hover\"}\n {...tableInstance.getTableProps()}\n /* style={{ marginBottom: disablePagination ? \"-1px\" : \"0px\" }} */\n >\n <thead>\n {tableInstance.headerGroups.map((headerGroup, i) => (\n <tr key={`tableInstance.headerGroups${i}`} {...headerGroup.getHeaderGroupProps()}>\n {headerGroup.headers.map((column) => (\n <th\n key={`tableInstance.headers.column.${column.id}`}\n /* className='text-left py-2 align-top' */\n {...column.getHeaderProps()}\n >\n <CellHeader column={column} />\n </th>\n ))}\n </tr>\n ))}\n </thead>\n {!isLoading ? (\n <tbody {...tableInstance.getTableBodyProps()}>\n {tableInstance.page.map((row) => {\n tableInstance.prepareRow(row);\n return (\n <tr key={`tableInstance.page.${row.id}`} onClick={() => _onClick(row.original, \"row\")} {...row.getRowProps()}>\n {row.cells.map((cell, i) => {\n const { hidden, colspan } = cell.column as any;\n if (hidden) {\n return null;\n }\n return (\n <td key={`tableInstance.page.cells.${cell.value || \"value\"}.${i}`} colSpan={colspan} {...cell.getCellProps()}>\n {cell.render(\"Cell\")}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n ) : null}\n </table>\n {isLoading ? <Loader /> : null}\n {!data.length ? <EmptyData /> : null}\n {!isLoading && data.length && !disablePagination ? (\n <div className={\"overflow-hidden\"}>\n <Pagination\n {...tableInstance}\n className={\"text-sm\"}\n pageIndex={pageIndex}\n pageSize={pageSize}\n pageSizes={pageSizes}\n setPageSize={setPageSize}\n i18n={i18n}\n />\n </div>\n ) : null}\n {children}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { useState } from \"react\";\nimport { ActionSchema } from \"../../interfaces\";\nimport { iconClass } from \"../../utils/iconClass\";\nimport { Select } from \"../select/select.component\";\nimport { Table, TableProps } from \"../table/table.component\";\n\nexport type ActionsTableProps = Omit<TableProps<ActionSchema>, \"columns\"> & {\n onAddAction?: (actionName: string) => void;\n availableActions?: { label: string; value: string }[];\n};\n\nexport function ActionsTable({\n disableFilters = true,\n disablePagination = true,\n availableActions = [],\n onAddAction = noop,\n ...props\n}: ActionsTableProps) {\n const { i18n = (f: string) => f } = props;\n const [currentAction, setAction] = useState(\"\");\n\n const columns = React.useMemo(() => {\n return [\n {\n Header: i18n(\"Actions\"),\n accessor: \"title\",\n id: \"title\"\n }\n ];\n }, []);\n\n return (\n <Table {...props} disableFilters={disableFilters} disablePagination={disablePagination} columns={columns}>\n <div className={\"pagination-group\"}>\n <Select\n name={\"actions\"}\n value={currentAction}\n choices={[{ label: i18n(\"Select an action\"), value: \"\" }].concat(availableActions)}\n onChange={(name: string, action: string) => setAction(action)}\n />\n <div className={\"pl-3\"}>\n <button\n data-testid={\"submit\"}\n disabled={currentAction === \"\"}\n className={\"btn btn-success\"}\n onClick={() => currentAction && onAddAction(currentAction)}\n type={\"submit\"}\n >\n <i className={classnames(iconClass(undefined, \"plus\"), \"mr-1\")} /> {i18n(\"Add action\")}\n </button>\n </div>\n </div>\n </Table>\n );\n}\n","import React from \"react\";\n\nfunction formatError(error: any): any {\n if (typeof error === \"string\") {\n return error;\n }\n\n if (Array.isArray(error)) {\n return error.map(formatError);\n }\n\n if (Object.prototype.hasOwnProperty.call(error, \"errors\")) {\n return Object.keys(error.errors).map((key, index) => {\n const item = error.errors[key];\n return (\n <div key={index}>\n <strong>\n {item.name} ({item.path})\n </strong>{\" \"}\n - {item.message}\n </div>\n );\n });\n }\n\n // If this is a standard error.\n if (Object.prototype.hasOwnProperty.call(error, \"message\")) {\n return error.message;\n }\n\n // If this is a joy validation error.\n if (Object.prototype.hasOwnProperty.call(error, \"name\") && error.name === \"ValidationError\") {\n return error.details.map((item: any, index: number) => {\n return <div key={index}>{item.message}</div>;\n });\n }\n\n // If a conflict error occurs on a form, the form is returned.\n if (Object.prototype.hasOwnProperty.call(error, \"_id\") && Object.prototype.hasOwnProperty.call(error, \"display\")) {\n return \"Another user has saved this form already. Please reload and re-apply your changes.\";\n }\n\n return \"An error occurred. See console logs for details.\";\n}\n\nexport interface AlertProps {\n error?: any | any[];\n type?: string;\n}\n\nexport function Alert({ error, type = \"danger\" }: AlertProps) {\n if (!error || (Array.isArray(error) && !error.length)) {\n return null;\n }\n\n return (\n <div className={`alert alert-${type}`} role='alert'>\n {formatError(error)}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nexport interface CardProps {\n children: React.ReactNode;\n label: string;\n className?: string;\n}\n\nexport function Card({ children, label, className }: PropsWithChildren<CardProps>) {\n return (\n <div className={classnames(\"card\", className)}>\n <div className={\"card-header \"}>\n <h4 className={\"card-title\"}>{label}</h4>\n </div>\n <div className={\"card-body\"} role={\"article\"}>\n {children}\n </div>\n </div>\n );\n}\n","import { ExtendedComponentSchema, Form } from \"formiojs\";\nimport { get } from \"lodash\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport { useEffect, useRef } from \"react\";\nimport { callLast } from \"../../utils/callLast\";\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\n\nexport interface ChangedSubmission<T = any> extends Submission<T> {\n changed: 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 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<void>;\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: Form) => void;\n formioform?: any;\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 events = useRef<Map<string, any>>(new Map());\n\n async function customValidation(submission: Submission, callback: (err: Error | null) => void) {\n if (events.current.has(\"onAsyncSubmit\")) {\n try {\n await events.current.get(\"onAsyncSubmit\")(submission);\n } catch (err) {\n callback(err?.errors || err);\n }\n } else {\n callback(null);\n }\n }\n\n const createWebForm = (srcOrForm: any, options: any) => {\n options = Object.assign({}, options);\n srcOrForm = typeof srcOrForm === \"string\" ? srcOrForm : cloneDeep(srcOrForm);\n\n if (!instance.current) {\n isLoaded.current = false;\n options.hooks = {\n ...(options.hooks || {}),\n customValidation: options?.hooks?.customValidation || customValidation\n };\n\n instance.current = new Form(element.current, srcOrForm, options);\n\n instance.current.onAny((event: string, ...args: any[]): void => {\n if (!instance.current) {\n return;\n }\n\n if (event.startsWith(\"formio.\")) {\n const funcName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;\n\n if (funcName === \"onChange\") {\n if (isEqual(get(submission, \"data\"), args[0].data)) {\n return;\n }\n }\n\n if (\n // eslint-disable-next-line no-prototype-builtins\n props.hasOwnProperty(funcName) &&\n typeof funcs[funcName] === \"function\"\n ) {\n if (!events.current.has(funcName)) {\n const fn = callLast(funcs[funcName], 100);\n events.current.set(funcName, fn);\n }\n\n instance.current.instance.setAlert(\"success\", \"\");\n events.current.get(funcName)(...args, instance.current);\n }\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 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 useEffect(() => {\n props.onSubmit && events.current.set(\"onSubmit\", props.onSubmit);\n }, [props.onSubmit, events]);\n\n useEffect(() => {\n props.onAsyncSubmit && events.current.set(\"onAsyncSubmit\", props.onAsyncSubmit);\n }, [props.onAsyncSubmit, events]);\n\n useEffect(() => {\n props.onSubmitDone && events.current.set(\"onSubmitDone\", props.onSubmitDone);\n }, [props.onSubmitDone, events]);\n\n return {\n element\n };\n}\n","import AllComponents from \"formiojs/components\";\nimport { Components } from \"formiojs\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\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(props: Partial<FormProps>) {\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\";\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\";\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[], 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.reduce((data, key) => {\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[type].data);\n}\n\nexport function updateSubmissions(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess, cb: Function = noop) {\n if (shouldUpdate(type, submission, submissions)) {\n submissions = {\n ...submissions,\n [type]: { data: submission.data }\n };\n cb(submissions);\n }\n\n return submissions;\n}\n","import PropTypes from \"prop-types\";\nimport React, { PropsWithChildren, ReactElement, useCallback, useEffect, useMemo, useState } from \"react\";\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\nimport { Card } from \"../card/card.component\";\nimport { Form } from \"../form/form.component\";\nimport {\n AccessRoles,\n dataAccessToSubmissions,\n FormAccessSchema,\n getFormAccess,\n shouldUpdate,\n SubmissionAccess,\n submissionsToDataAccess,\n updateSubmissions\n} from \"./formAccess.utils\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\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(submissionsToDataAccess(formDefinition, submissions));\n }\n };\n}\n\ninterface NamedFormAccessProps {\n name: \"access\" | \"submissionAccess\";\n form: FormAccessSchema;\n submissions: SubmissionAccess;\n options: any;\n onSubmit: any;\n\n onChange(name: \"access\" | \"submissionAccess\", submission: Submission<AccessRoles>): void;\n}\n\nfunction NamedFormAccess({ name, form, submissions, options, onChange, onSubmit, children }: PropsWithChildren<NamedFormAccessProps>) {\n const [isValid, setIsValid] = useState(true);\n\n return (\n <>\n <Form\n name={name}\n form={form[name]}\n submission={submissions[name]}\n onChange={({ data, isValid }: ChangedSubmission<AccessRoles>) => {\n isValid && onChange(name, { data });\n setIsValid(isValid);\n }}\n options={options}\n />\n\n <button disabled={!isValid} className={\"mt-5 btn btn-primary\"} onClick={onSubmit}>\n Save access\n </button>\n\n {children}\n\n <div className={\"alert alert-warning mt-5\"}>\n Elevated permissions allow users to access and modify other user's entities. Assign with caution.\n </div>\n </>\n );\n}\n\nexport function FormAccess(props: PropsWithChildren<FormAccessProps>): ReactElement {\n const { type, form, submissions, options, onChange, onSubmit } = useFormAccess(props);\n\n return (\n <div>\n {props.children}\n <div className={\"flex mb-5\"}>\n <Card label={\"Manage submission access\"} className={\"flex-1\"}>\n <NamedFormAccess\n name={\"submissionAccess\"}\n form={form}\n submissions={submissions}\n onChange={onChange}\n onSubmit={onSubmit}\n options={options}\n >\n {props.children}\n </NamedFormAccess>\n </Card>\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Submission Data Permissions\"}>\n <p>Submission Data Permissions allow you to control who can create, view, and modify form submission data.</p>\n\n <ul className={\"mt-5 pl-7 list-disc\"}>\n <li className={\"pb-2\"}>\n <strong>Own Permissions</strong> - These permissions apply if the user is the original creator of the submission data and is\n listed as the owner of the submission in submission.owner. This allows users to create and edit their own submission data\n without seeing other user's data.\n </li>\n <li>\n <strong>All Permissions</strong> - These permissions apply to all submission data regardless of who owns it.\n </li>\n </ul>\n </Card>\n </div>\n </div>\n <div className={\"flex mb-5\"}>\n <Card label={`Manage ${type} definition access`} className={\"flex-1\"}>\n <NamedFormAccess name={\"access\"} form={form} submissions={submissions} onChange={onChange} onSubmit={onSubmit} options={options}>\n {props.children}\n </NamedFormAccess>\n </Card>\n\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Form Definition Access\"}>\n <p>These permissions allow you to give access to a single form's JSON definition so they can render the form.</p>\n\n <p>Typically you will want to allow all of your roles to be able to Read the form definition.</p>\n\n <p>\n Each form also has an owner at <strong>form.owner</strong> which is the user who created the form. In some applications users\n are allowed to create their own forms. In those cases it is helpful to have Owner based permissions as well.\n </p>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n\nFormAccess.propTypes = {\n type: PropTypes.string.isRequired,\n form: PropTypes.object,\n roles: PropTypes.any,\n children: PropTypes.any,\n options: PropTypes.any,\n onSubmit: PropTypes.func\n};\n","import FormioUtils from \"formiojs/utils\";\nimport React, { PropsWithChildren, ReactElement, useMemo } from \"react\";\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 } = useMemo(() => {\n const submission = mapData(props.submission || {}, actionInfo.defaults);\n const form = mapSettingsForm(actionInfo.settingsForm);\n\n return { form, submission: { data: submission } };\n }, [props.submission, actionInfo.settingsForm]);\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\";\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(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();\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\";\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 = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Copy\")\n });\n\n const undoTooltipRef = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Undo last change\")\n });\n\n const redoTooltipRef = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Redo last change\")\n });\n\n const resetTooltipRef = 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()}\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()} ref={undoTooltipRef}>\n <i className={iconClass(options.iconset, \"undo\")} />\n </button>\n\n <button className={`btn btn-light btn-redo ${hasRedo ? \"\" : \"disabled\"}`} onClick={() => 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()} ref={resetTooltipRef}>\n <i className={iconClass(options.iconset, \"reset\")} />\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nFormEditCTAs.propTypes = {\n saveText: PropTypes.string,\n options: PropTypes.object,\n hasUndo: PropTypes.bool,\n hasRedo: PropTypes.bool,\n disabled: PropTypes.bool,\n onCopy: PropTypes.func,\n onSubmit: PropTypes.func,\n onReset: PropTypes.func\n};\n","import Choices from \"choices.js\";\nimport uniq from \"lodash/uniq\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTagsProps<T = any> extends Omit<FormControlProps, \"description\" | \"prefix\" | \"suffix\"> {\n value?: T;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputTags({ name, value = [], label, onChange, required, description, prefix, suffix, ...props }: InputTagsProps) {\n const ref = 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(name, uniq(value.concat(event.detail.value)));\n });\n\n instance.passedElement.element.addEventListener(\"removeItem\", (event: any) => {\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\";\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}\n\nexport function FormParameters({\n onChange,\n form,\n enableTags = true,\n typeChoices = [],\n displayChoices = defaultDisplayChoices,\n className = \"\"\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 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 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 {window.location.origin + \"/\" + form.path}\n </span>\n }\n required={true}\n value={form.path}\n style={{ textTransform: \"lowercase\", width: \"120px\" }}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <Select label={\"Display as\"} name={\"display\"} value={form.display} choices={displayChoices} onChange={onChange} />\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\";\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 { useEffect, useReducer } from \"react\";\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: 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\";\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\";\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 React, { useCallback, useEffect, useState } from \"react\";\nimport { FormOptions, FormSchema } from \"../../interfaces\";\nimport { getFormSettingsSchema } from \"./formSettings.schema\";\nimport { Form } from \"../form/form.component\";\nimport { FormSettingsSchema, formSettingsToSubmission, submissionToFormSettings } from \"./formSettings.utils\";\nimport isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\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 = useCallback(\n ({ data, isValid }: ChangedSubmission<FormSettingsSchema>) => {\n if (isValid) {\n setSubmission({ data });\n }\n setIsValid(isValid);\n },\n [submission]\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\";\nimport { Select } from \"../../select/select.component\";\n\nexport function SelectColumnFilter<D extends Record<string, unknown> = {}>({ column }: FilterProps<D>) {\n const { id, preFilteredRows, filterValue, setFilter } = column;\n const { choices: customChoices } = column as any;\n\n const choices =\n customChoices ||\n [...new Set(preFilteredRows.map((row) => row.values[id]))].filter((value) => value).map((value) => ({ label: value, value }));\n\n return (\n <Select\n key={`filter-${column.id}`}\n name={`filter-${column.id}`}\n size={\"sm\"}\n value={filterValue}\n choices={[{ value: \"\", label: \"All\" }].concat(choices)}\n onChange={(name, value) => {\n setFilter(value || undefined);\n }}\n />\n );\n}\n","//! moment.js\n//! version : 2.29.3\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.3';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","import classnames from \"classnames\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { CellProps } from \"react-table\";\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\";\nimport { FormSchema } from \"../../interfaces\";\nimport { DefaultColumnFilter } from \"../table/filters/defaultColumnFilter.component\";\nimport { SelectColumnFilter } from \"../table/filters/selectColumnFilter.component\";\nimport { Table, TableProps } from \"../table/table.component\";\nimport { FormsCell as DefaultFormCell } from \"./components/formCell.component\";\n\nexport type FormsTableProps = Omit<TableProps<FormSchema>, \"columns\"> & {\n icon?: string;\n tags?: { label: string; value: string }[];\n};\n\nexport function FormsTable({ Cell, ...props }: FormsTableProps) {\n const { i18n = (f: string) => f, tags } = props;\n const FormCell = Cell || (DefaultFormCell as any);\n const columns = React.useMemo(\n () => [\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 [Cell]\n );\n\n return <Table {...props} columns={columns} />;\n}\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { PropsWithChildren, useEffect, useRef, useState } from \"react\";\nimport noop from \"lodash\";\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 = useRef<HTMLDivElement>();\n const footerRef = useRef<HTMLDivElement>();\n const [maxHeight, setMaxHeight] = useState<string>();\n\n const onClickClose = () => {\n closeModal();\n onClose();\n };\n\n useEffect(() => {\n if (titleRef.current || footerRef.current) {\n const height = (titleRef?.current?.offsetHeight || 0) + (footerRef?.current?.offsetHeight || 0);\n\n setMaxHeight(`calc(85vh - ${height}px)`);\n } else {\n setMaxHeight(\"auto\");\n }\n }, [show]);\n\n if (!show) {\n return null;\n }\n\n return (\n <div role={\"dialog\"} className={`formio-dialog formio-dialog-theme-default ${className}`}>\n <div className='formio-dialog-overlay' onClick={onClickClose} />\n <div style={style} className={\"formio-dialog-content\"}>\n <div className={\"formio-dialog-wrapper\"}>\n {title ? (\n <div className={\"formio-dialog-title\"} ref={titleRef} data-testid={\"modalTitle\"}>\n {title}\n </div>\n ) : null}\n\n <div className='formio-dialog-body' style={{ maxHeight }} data-testid={\"modalBody\"}>\n {show && children}\n </div>\n\n {ModalFooter ? (\n <div className={\"formio-dialog-footer\"} ref={footerRef} data-testid={\"modalFooter\"}>\n <ModalFooter {...props} closeModal={closeModal} onClose={onClickClose} />\n </div>\n ) : null}\n </div>\n <button\n className='formio-dialog-close float-right btn btn-secondary btn-sm'\n aria-label='close'\n data-testid={\"closeModal\"}\n onClick={onClickClose}\n />\n </div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { PropsWithChildren, useState } from \"react\";\nimport { iconClass } from \"../../utils/iconClass\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Modal, ModalProps } from \"./modal.component\";\n\nfunction RemoveModalFooter({ value, valueToCompare, onSubmit, onClose, i18n = (f: string) => f }: ModalProps) {\n return (\n <div className={\"flex items-center justify-center bg-white p-2\"}>\n <button data-testid='customCloseModal' className={\"btn btn-outline-dark mx-2\"} onClick={onClose}>\n {i18n(\"Cancel\")}\n </button>\n <button\n disabled={valueToCompare !== value}\n data-testid='customSubmitModal'\n className={\"btn btn-danger mx-2\"}\n onClick={(e) => {\n if (valueToCompare === value) {\n onSubmit(e);\n }\n }}\n >\n <i className={classnames(iconClass(undefined, \"trash\"), \"mr-2\")} />\n {i18n(\"Remove\")}\n </button>\n </div>\n );\n}\n\nexport interface RemoveModalProps extends ModalProps {\n valueToCompare: string;\n itemType?: string;\n i18n?: (f: string) => string;\n maxWidth?: string;\n}\n\nexport function RemoveModal({ maxWidth = \"300px\", children, ...props }: PropsWithChildren<RemoveModalProps>) {\n const { i18n = noop } = props;\n const [value, setValue] = useState();\n\n return (\n <Modal\n {...props}\n className={classnames(props.className, \"formio-dialog-theme-remove\")}\n style={{ maxWidth }}\n title={`Drop ${props.itemType?.toLowerCase()}`}\n value={value}\n footer={RemoveModalFooter}\n >\n <div className={\"px-4 pt-3 pb-5\"}>\n <div className={\"pb-1\"}>\n {children}\n {i18n(\"To drop\")} <strong>{props.valueToCompare}</strong>, \n {i18n(\"type the\")} \n <strong>"{props.itemType?.toLowerCase()}"</strong> \n {i18n(\"name\")} <strong>"{props.valueToCompare}"</strong>.\n </div>\n <InputText name='remove' value={value} onChange={(name, value) => setValue(value)} />\n </div>\n </Modal>\n );\n}\n","import { Components, ComponentSchema } from \"formiojs\";\nimport ReactDOM from \"react-dom\";\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\n constructor(component: ComponentSchema, options: any, data: Submission<Data>) {\n super(component, options, data);\n }\n\n get $reactNode() {\n return this.refs[`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 if (this.refs[`react-${this.id}`]) {\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 if (this.refs[`react-${this.id}`]) {\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setValue(value: any, flags?: any): boolean {\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 undefined;\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 <></>;\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 React from \"react\";\nimport { Components, ExtendedComponentSchema } from \"formiojs\";\nimport FormioUtils from \"formiojs/utils\";\nimport { Column } from \"react-table\";\nimport { FormSchema } from \"../../../interfaces\";\nimport { DefaultCell } from \"../components/defaultCell.component\";\nimport { SelectColumnFilter } from \"../filters/selectColumnFilter.component\";\n\nexport function mapFormToColumns(form: FormSchema): Column[] {\n const columns: Column[] = [];\n\n FormioUtils.eachComponent(form.components, (component: ExtendedComponentSchema) => {\n if (component.tableView && component.key) {\n const cmp: any = Components.create(component, null, null, true);\n\n const column: Column = {\n Header: component.label || component.title || component.key,\n accessor: `data.${component.key}`,\n Cell: (props: any) => <DefaultCell {...props} render={(value: any) => cmp.asString(value)} />\n };\n\n if (component.type === \"select\" && component.dataSrc === \"values\") {\n column.Filter = SelectColumnFilter;\n (column as any).choices = component.data.values;\n }\n\n columns.push(column);\n }\n });\n\n return columns;\n}\n","import React from \"react\";\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { Table, TableProps } from \"../table/table.component\";\nimport { mapFormToColumns } from \"../table/utils/mapFormToColumns\";\n\nexport type SubmissionsTableProps = Omit<TableProps<Submission>, \"columns\"> & {\n form?: FormSchema;\n};\n\nexport function SubmissionsTable({ form, ...props }: SubmissionsTableProps) {\n const columns: any[] = React.useMemo(() => form && mapFormToColumns(form), [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\";\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport function ButtonTab({ icon, back, onClick, isActive, reverse, children, className, after }: PropsWithChildren<any>) {\n return (\n <div title={'button-wrapper'} className={classnames(\"tw-tabs__button-wrapper\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\", className)}>\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\"}>{children}</div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { PropsWithChildren } from \"react\";\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"],"names":["getFormUrl","formId","url","Formio","getProjectUrl","Utils","isMongoId","push","includes","replace","join","getActionUrl","actionId","filter","Boolean","getSubmissionUrl","submissionId","ACTION_INFO","resetActionInfo","createAction","requestActionInfo","receiveActionInfo","failActionInfo","getActionInfo","actionType","done","noop","dispatch","formio","actionInfo","settingsForm","action","error","createInitialState","data","isActive","actionInfoReducer","createReducer","toString","_","_2","reset","state","selectRoot","name","selectError","get","selectIsActive","oneOfIsActive","names","find","selectActionInfo","ACTION","clearActionError","resetAction","requestAction","receiveAction","failAction","sendAction","getFormio","id","getAction","loadAction","saveAction","result","deleteAction","actionReducer","on","selectAction","ACTIONS","resetActions","requestActions","receiveActions","failActions","getActions","actions","availableActions","Promise","all","loadActions","params","actionsReducer","selectActions","selectAvailableActions","AUTH","hasRole","auth","role","is","hasRoles","roles","concat","isAuthorized","authenticated","length","checkRoleFormAccess","form","requestUser","receiveUser","failUser","logoutUser","submissionAccessUser","formAccessUser","projectAccessUser","userRoles","userForms","init","user","submissionAccess","formAccess","projectAccess","forms","mapProjectRolesToUserRoles","projectRoles","Object","entries","reduce","_id","getUserRoles","keys","authReducer","default","window","localStorage","getItem","selectAuth","selectUser","selectRoles","selectIsAuthenticated","transformProjectAccess","access","type","getProjectAccess","projectUrl","project","makeStaticRequest","er","transformSubmissionAccess","values","formSubmissionAccess","transformFormAccess","getAccess","err","logout","setUser","initAuth","currentUser","selectForm","clearFormError","requestForm","receiveForm","failForm","resetForm","sendForm","shouldGet","components","Array","isArray","getForm","getState","loadForm","saveForm","deleteForm","lastUpdated","formReducer","payload","clean","obj","key","entry","undefined","mapRequestParams","query","pageSize","pageIndex","select","filters","sortBy","requestParams","limit","skip","forEach","value","RegExp","sort","desc","selectForms","selectFormsParameters","parameters","resetForms","requestForms","receiveForms","failForms","getForms","loadForms","refreshForms","pageCount","formsReducer","total","serverCount","Math","ceil","totalLength","clearSubmissionError","requestSubmission","sendSubmission","receiveSubmission","failSubmission","resetSubmission","getSubmission","loadSubmission","submission","saveSubmission","deleteSubmission","submissionReducer","selectSubmission","selectSubmissions","selectSubmissionsParameters","resetSubmissions","requestSubmissions","receiveSubmissions","failSubmissions","getSubmissions","submissions","loadSubmissions","refreshSubmissions","submissionsReducer","defaultFormioReducer","combine","hasOwn","hasOwnProperty","classNames","classes","i","arguments","arg","argType","inner","apply","call","module","exports","iconClass","iconset","spinning","Templates","current","defaultIconset","getEventValue","event","target","multiple","selectedOptions","from","option","checked","FormControl","children","required","prefix","suffix","description","label","className","React","classnames","htmlFor","propTypes","PropTypes","string","isRequired","any","bool","Select","size","onChange","choices","placeholder","layout","props","ref","useRef","useEffect","instance","Choices","removeItemButton","placeholderValue","destroy","shadow","map","String","func","array","LEFT_PAGE","RIGHT_PAGE","range","to","step","getPageNumbers","currentPage","pageNeighbours","totalPages","totalNumbers","totalBlocks","calculatedStartPage","max","calculatedEndPage","min","startPage","endPage","pages","hasLeftSpill","hasRightSpill","spillOffset","extraPages","PaginationButton","component","Component","disabled","active","otherProps","Pagination","pageSizes","gotoPage","canPreviousPage","previousPage","nextPage","canNextPage","pageOptions","setPageSize","i18n","f","pageNumbers","tabIndex","onClick","page","DefaultArrowSort","column","isSorted","isSortedDesc","DefaultCellHeader","getSortByToggleProps","render","canFilter","callLast","fn","time","last","args","clearTimeout","setTimeout","InputText","localValue","setValue","useState","change","useMemo","DefaultColumnFilter","filterId","setFilterId","filterValue","setFilter","useCallback","autoFocus","stopPropagationWrapper","stopPropagation","DefaultOperationButton","buttonSize","buttonType","buttonOutline","icon","title","DefaultCellOperations","operations","row","ctx","original","permissionsResolver","OperationButton","operation","useOperations","CellOperations","hooks","visibleColumns","columns","groupByBoundary","Header","Cell","getOperationCallback","alias","DefaultLoader","DefaultEmptyData","useFilters","useGroupBy","useSortBy","usePagination","Table","controlledFilters","controlledFilterId","controlledPageSize","controlledPageIndex","controlledSortBy","isLoading","disableFilters","disablePagination","ArrowSort","ColumnFilter","EmptyData","Loader","DefaultPagination","CellHeader","_onClick","defaultColumn","Filter","tableInstance","useTable","initialState","manualPagination","manualSortBy","manualFilters","getTableProps","headerGroups","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getTableBodyProps","prepareRow","getRowProps","cells","cell","hidden","colspan","colSpan","getCellProps","ActionsTable","onAddAction","currentAction","setAction","accessor","formatError","prototype","errors","index","item","path","message","details","Alert","Card","useForm","src","options","funcs","element","isLoaded","events","Map","customValidation","callback","has","createWebForm","srcOrForm","assign","cloneDeep","Form","onAny","startsWith","funcName","charAt","toUpperCase","slice","isEqual","set","setAlert","ready","then","onFormReady","onSubmit","onAsyncSubmit","onSubmitDone","Components","setComponents","AllComponents","object","shape","readOnly","noAlerts","template","saveDraft","onPrevPage","onNextPage","onCancel","onCustomEvent","onComponentChange","onFormLoad","onError","onRender","onAttach","onBuild","onFocus","onBlur","onInitialized","formioform","getRoleComponent","labelPosition","widget","tooltip","dataSrc","defaultValue","searchEnabled","selectThreshold","validate","custom","customPrivate","toDescription","hr","getSubmissionPermissionForm","getAccessPermissionForm","rolesToChoices","accessToHash","hash","o","hashToAccess","accessRoles","accessType","getFormAccess","dataAccessToSubmissions","getKeys","submissionsToDataAccess","shouldUpdate","updateSubmissions","cb","useFormAccess","formDefinition","setSubmissions","input","NamedFormAccess","isValid","setIsValid","FormAccess","mapData","defaults","mapSettingsForm","FormioUtils","eachComponent","resourceExclude","basePath","valueProperty","persistent","FormAction","EVENTS","EVENTS_CHANGE","createBuilder","el","display","builder","FormioFormBuilder","handleEvent","console","FormBuilder","constructor","elRef","builderRef","componentDidMount","create","onAddComponent","onUpdateComponent","onRemoveComponent","onSaveComponent","onCancelComponent","onMoveComponent","onEditComponent","onEditJson","onCopyComponent","onPasteComponent","firstChild","whenComponentsChange","bind","componentWillUnmount","componentWillReceiveProps","nextProps","setState","e","onReady","onDestroy","useTooltip","Tooltip","FormEditCTAs","saveText","onCopy","hasUndo","hasRedo","onUndo","onRedo","onReset","t","copyTooltipRef","trigger","placement","undoTooltipRef","redoTooltipRef","resetTooltipRef","InputTags","delimiter","editItems","passedElement","addEventListener","uniq","detail","v","defaultDisplayChoices","FormParameters","enableTags","typeChoices","displayChoices","hasTypeChoices","location","origin","style","textTransform","width","tags","hasChanged","past","future","reducer","update","newValue","camelCase","toLowerCase","previous","newPast","next","newFuture","useFormEdit","dispatchFormAction","useReducer","modified","formChange","newForm","redo","undo","setChange","FormEdit","getFormSettingsSchema","mask","inputType","inputFormat","spellcheck","attributes","delimeter","storeas","maxTags","addAnother","disableAddingRemovingRows","keyBeforeValue","valueComponent","hideLabel","formSettingsToSubmission","properties","submissionToFormSettings","useFormSettings","setSubmission","FormSettings","SelectColumnFilter","preFilteredRows","customChoices","Set","global","factory","this","hookCallback","setHookCallback","isObject","hasOwnProp","a","b","isObjectEmpty","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","arr","res","arrLen","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","some","fun","len","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","momentProperties","updateInProgress","copyConfig","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","Error","stack","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","_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","makeFormatFunction","formatMoment","invalidDate","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","s","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","isLeapYear","year","absFloor","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","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","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","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","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","useModal","show","setShowModal","openModal","closeModal","Modal","onClose","footer","ModalFooter","titleRef","footerRef","maxHeight","setMaxHeight","onClickClose","height","offsetHeight","RemoveModalFooter","valueToCompare","RemoveModal","maxWidth","itemType","ReactComponent","getValue","changed","dataValue","updateOnChange","$reactNode","refs","attach","loadRefs","reactInstance","attachReact","shouldSetValue","dataForSetting","updateValue","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","color"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/utils/url.ts","../src/stores/action-info/action-info.constant.ts","../src/stores/action-info/action-info.actions.ts","../src/stores/action-info/action-info.reducers.ts","../src/stores/root/root.selectors.ts","../src/stores/action-info/action-info.selectors.ts","../src/stores/action/action.constant.ts","../src/stores/action/action.actions.ts","../src/stores/action/action.reducers.ts","../src/stores/action/action.selectors.ts","../src/stores/actions/actions.constant.ts","../src/stores/actions/actions.actions.ts","../src/stores/actions/actions.reducers.ts","../src/stores/actions/actions.selectors.ts","../src/stores/auth/auth.constant.ts","../src/stores/auth/auth.utils.tsx","../src/stores/auth/auth.actions.ts","../src/stores/auth/auth.reducers.ts","../src/stores/auth/auth.selectors.ts","../src/stores/auth/getProjectAccess.action.ts","../src/stores/auth/getAccess.action.ts","../src/stores/auth/logout.action.ts","../src/stores/auth/setUser.action.ts","../src/stores/auth/initAuth.action.ts","../src/stores/form/form.selectors.ts","../src/stores/form/form.actions.ts","../src/stores/form/form.reducers.ts","../src/utils/clean.ts","../src/utils/mapRequestParams.ts","../src/stores/forms/forms.selectors.ts","../src/stores/forms/forms.actions.ts","../src/stores/forms/forms.reducers.ts","../src/stores/submission/submission.actions.ts","../src/stores/submission/submission.reducers.ts","../src/stores/submission/submission.selectors.ts","../src/stores/submissions/submissions.selectors.ts","../src/stores/submissions/submissions.actions.ts","../src/stores/submissions/submissions.reducers.ts","../src/stores/index.ts","../../../node_modules/classnames/index.js","../src/utils/iconClass.ts","../src/utils/getEventValue.ts","../src/components/form-control/formControl.component.tsx","../src/components/select/select.component.tsx","../src/components/table/utils/getPageNumbers.ts","../src/components/pagination/pagination.component.tsx","../src/components/table/components/defaultArrowSort.component.tsx","../src/components/table/components/defaultCellHeader.component.tsx","../src/utils/callLast.ts","../src/components/input-text/inputText.component.tsx","../src/components/table/filters/defaultColumnFilter.component.tsx","../src/utils/stopPropagationWrapper.ts","../src/components/table/components/defaultOperationButton.component.tsx","../src/components/table/components/defaultCellOperations.component.tsx","../src/components/table/utils/useOperations.hook.tsx","../src/components/table/table.component.tsx","../src/components/actions-table/actionsTable.component.tsx","../src/components/alert/alert.component.tsx","../src/components/card/card.component.tsx","../src/components/form/useForm.hook.ts","../src/components/form/form.component.tsx","../src/components/form-access/formAccess.schema.ts","../src/components/form-access/formAccess.utils.ts","../src/components/form-access/formAccess.component.tsx","../src/components/form-action/formAction.component.tsx","../src/components/form-builder/formBuilder.component.tsx","../src/hooks/useTooltip.ts","../src/components/form-edit/formCtas.component.tsx","../src/components/input-tags/inputTags.component.tsx","../src/components/form-edit/formParameters.component.tsx","../src/components/form-edit/formEdit.reducer.ts","../src/components/form-edit/useFormEdit.hook.ts","../src/components/form-edit/formEdit.component.tsx","../src/components/form-settings/formSettings.schema.ts","../src/components/form-settings/formSettings.utils.ts","../src/components/form-settings/formSettings.component.tsx","../src/components/table/filters/selectColumnFilter.component.tsx","../../../node_modules/moment/moment.js","../src/components/forms-table/components/formCell.component.tsx","../src/components/forms-table/formsTable.component.tsx","../src/components/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/components/loader/loader.component.tsx"],"sourcesContent":["import { Formio, Utils } from \"formiojs\";\n\nexport function getFormUrl(formId: string): string {\n const url = [Formio.getProjectUrl()];\n\n if (Utils.isMongoId(formId)) {\n url.push(\"form\");\n } else if (formId.includes(\"__\")) {\n formId = formId.replace(/__/gi, \"/\");\n }\n\n url.push(formId);\n\n return url.join(\"/\");\n}\n\nexport function getActionUrl(formId: string, actionId?: string): string {\n return [getFormUrl(formId), \"action\", actionId].filter(Boolean).join(\"/\");\n}\n\nexport function getSubmissionUrl(formId: string, submissionId?: string): string {\n return [getFormUrl(formId), \"submission\", submissionId].filter(Boolean).join(\"/\");\n}\n","export const ACTION_INFO = \"actionInfo\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport noop from \"lodash/noop\";\nimport { Formio } from \"formiojs\";\nimport { getFormUrl } from \"../../utils/url\";\nimport { ACTION_INFO } from \"./action-info.constant\";\n\nexport const resetActionInfo = createAction();\nexport const requestActionInfo = createAction();\nexport const receiveActionInfo = createAction();\nexport const failActionInfo = createAction();\n\nexport const getActionInfo =\n (formId: string, actionType: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(requestActionInfo(ACTION_INFO));\n\n const url = getFormUrl(formId);\n const formio = new Formio(url);\n\n try {\n const actionInfo = await formio.actionInfo(actionType);\n\n actionInfo.settingsForm.action = Formio.getProjectUrl() + actionInfo.settingsForm.action;\n\n dispatch(receiveActionInfo(ACTION_INFO, { actionInfo }));\n done(null, actionInfo);\n } catch (error) {\n dispatch(failActionInfo(ACTION_INFO, { error }));\n done(error);\n }\n };\n","import { InitialStateCreator, createReducer } from \"@tsed/redux-utils\";\nimport { ActionSchema } from \"../../interfaces\";\nimport { failActionInfo, receiveActionInfo, requestActionInfo, resetActionInfo } from \"./action-info.actions\";\nimport { ACTION_INFO } from \"./action-info.constant\";\n\nexport interface ActionInfoState {\n error: null | Error;\n data?: Partial<ActionSchema>;\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator<ActionInfoState> = () => ({\n error: null,\n data: {},\n isActive: false\n});\n\nexport const actionInfoReducer = createReducer<ActionInfoState>(\n {\n [resetActionInfo.toString()]: (_, _2, reset) => {\n return reset();\n },\n [requestActionInfo.toString()]: (state) => ({\n ...state,\n error: null,\n data: {},\n isActive: true\n }),\n [receiveActionInfo.toString()]: (state, { actionInfo }) => ({\n ...state,\n error: null,\n data: actionInfo,\n isActive: false\n }),\n [failActionInfo.toString()]: (state, { error }) => ({\n ...state,\n data: {},\n error,\n isActive: false\n })\n },\n createInitialState\n)(ACTION_INFO);\n","import get from \"lodash/get\";\n\nexport function selectRoot<State = Record<string, any>>(name: string): (state: Record<string, any>) => State;\nexport function selectRoot<State = Record<string, any>>(name: string, state: Record<string, any>): State;\nexport function selectRoot<State = Record<string, any>>(name: string, state?: Record<string, any>): any {\n if (state) {\n return state[name];\n }\n\n return (state: Record<string, any>) => selectRoot(name, state);\n}\n\nexport const selectError = (name: string, state: Record<string, any>): null | Error => get(selectRoot(name, state)!, \"error\");\n\nexport const selectIsActive = (name: string, state: Record<string, any>): boolean => get(selectRoot(name, state)!, \"isActive\");\n\nexport function oneOfIsActive(...names: string[]) {\n return (state: any) => {\n return !!names.find((name) => {\n return get(state, `${name}.isActive`, get(state, `${name}.current.isActive`));\n });\n };\n}\n","import { ActionSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { ACTION_INFO } from \"./action-info.constant\";\nimport { ActionInfoState } from \"./action-info.reducers\";\n\nexport const selectActionInfo = (state: Record<string, any>): Partial<ActionSchema> => selectRoot<ActionInfoState>(ACTION_INFO, state).data!;\n","export const ACTION = \"action\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport get from \"lodash/get\";\nimport noop from \"lodash/noop\";\nimport { getActionUrl } from \"../../utils/url\";\nimport { getActionInfo } from \"../action-info\";\nimport { ACTION } from \"./action.constant\";\n\nexport const clearActionError = createAction();\nexport const resetAction = createAction();\nexport const requestAction = createAction();\nexport const receiveAction = createAction();\nexport const failAction = createAction();\nexport const sendAction = createAction();\n\nfunction getFormio(formId: string, id: string) {\n const url = getActionUrl(formId, id);\n return new Formio(url);\n}\n\nexport const getAction =\n (formId: string, actionId: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n dispatch(requestAction(ACTION));\n\n const formio = getFormio(formId, actionId);\n\n try {\n const action = await formio.loadAction();\n\n dispatch(getActionInfo(formId, action.name));\n dispatch(receiveAction(ACTION, { action }));\n done(null, action);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n\nexport const saveAction =\n (formId: string, action: any, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n dispatch(sendAction(ACTION, { action }));\n\n const formio = getFormio(formId, get(action, \"data._id\", \"\"));\n\n try {\n const result = await formio.saveAction(action);\n dispatch(receiveAction(ACTION, { action: result }));\n done(null, result);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n\nexport const deleteAction = (formId: string, actionId: string, done = noop) => {\n return async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n\n // const state = getState();\n // const path = formId.replace(\"__\", \"/\");\n // const form = selectForm(\"form\", state);\n // const resource = selectForm(\"resource\", state);\n //\n // formId = (path === form.path ? form._id : resource._id) || formId;\n\n const formio = getFormio(formId, actionId);\n\n try {\n await formio.deleteAction();\n dispatch(resetAction(ACTION));\n done(null);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n};\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\nimport { ActionSchema } from \"../../interfaces\";\n\nimport { clearActionError, failAction, receiveAction, requestAction, resetAction, sendAction } from \"./action.actions\";\nimport { ACTION } from \"./action.constant\";\n\nexport interface ActionState {\n error: null | Error;\n data: ActionSchema;\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator = (): ActionState => ({\n error: null,\n data: {} as any,\n isActive: false\n});\n\nexport const actionReducer = createReducer<ActionState>({}, createInitialState)\n .on(resetAction, (_: any, _2: any, reset: any) => reset())\n .on(clearActionError, (state) => ({\n ...state,\n error: null\n }))\n .on(requestAction, (state) => ({\n ...state,\n error: null,\n data: {},\n isActive: true\n }))\n .on(sendAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: true\n }))\n .on(receiveAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: false\n }))\n .on(receiveAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: false\n }))\n .on(failAction, (state, { error }) => ({\n ...state,\n data: {},\n error,\n isActive: false\n }))(ACTION);\n","import { ActionSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { ACTION } from \"./action.constant\";\nimport { ActionState } from \"./action.reducers\";\n\nexport const selectAction = (state: Record<string, any>): ActionSchema => selectRoot<ActionState>(ACTION, state).data;\n","export const ACTIONS = \"actions\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { getFormUrl } from \"../../utils/url\";\nimport { ACTIONS } from \"./actions.constant\";\n\nexport const resetActions = createAction();\nexport const requestActions = createAction();\nexport const receiveActions = createAction<{\n actions: any[];\n availableActions: any[];\n}>();\nexport const failActions = createAction<{ error: Error }>();\n\nexport const getActions =\n (id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(resetActions(ACTIONS));\n dispatch(requestActions(ACTIONS));\n\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n const [actions, availableActions] = await Promise.all([formio.loadActions({ params: {} }), formio.availableActions()]);\n\n dispatch(receiveActions(ACTIONS, { actions, availableActions }));\n done(null, actions, availableActions);\n } catch (error) {\n dispatch(failActions(ACTIONS, { error }));\n done(error);\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\nimport { ActionInfoSchema, ActionSchema } from \"../../interfaces\";\nimport { failActions, receiveActions, requestActions, resetActions } from \"./actions.actions\";\nimport { ACTIONS } from \"./actions.constant\";\n\nexport interface ActionsState {\n error: null | Error;\n data: ActionSchema[];\n availableActions: ActionInfoSchema[];\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator<ActionsState> = () => ({\n error: null,\n data: [],\n availableActions: [],\n isActive: false\n});\n\nexport const actionsReducer = createReducer<ActionsState>(\n {\n [resetActions.toString()]: (_, _2, reset) => {\n return reset();\n },\n [requestActions.toString()]: (state) => ({\n ...state,\n error: null,\n data: [],\n availableActions: [],\n isActive: true\n }),\n [receiveActions.toString()]: (state, { actions, availableActions }) => ({\n ...state,\n error: null,\n data: actions,\n availableActions,\n isActive: false\n }),\n [failActions.toString()]: (state, { error }) => ({\n ...state,\n error,\n data: [],\n isActive: false\n })\n },\n createInitialState\n)(ACTIONS);\n","import { selectRoot } from \"../root\";\nimport { ACTIONS } from \"./actions.constant\";\nimport { ActionsState } from \"./actions.reducers\";\n\nexport const selectActions = (state: Record<string, any>) => selectRoot<ActionsState>(ACTIONS, state).data;\n\nexport const selectAvailableActions = (state: Record<string, any>) => selectRoot<ActionsState>(ACTIONS, state).availableActions;\n","export const AUTH = \"auth\";\n","import get from \"lodash/get\";\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { AuthState } from \"./auth.reducers\";\n\nexport function hasRole(auth: AuthState, role: string): boolean {\n return auth.is[role];\n}\n\nexport function hasRoles(auth: AuthState, roles: string[]): boolean {\n roles = ([] as string[]).concat(roles);\n\n return !!roles.find((role) => hasRole(auth, role));\n}\n\nexport function isAuthorized(auth: AuthState, roles: string[] = []): boolean {\n if (auth && auth.authenticated) {\n if (roles.length) {\n return !!hasRoles(auth, roles);\n }\n return true;\n }\n\n return false;\n}\n\nexport function checkRoleFormAccess(auth: AuthState, form?: Partial<FormSchema>, roles?: string[]) {\n if (roles && roles.length) {\n if (isAuthorized(auth, roles)) {\n return true;\n }\n\n return (roles.includes(\"owner\") && get(form, \"owner\") === get(auth, \"user._id\"));\n }\n\n return true;\n}\n","import { createAction } from \"@tsed/redux-utils\";\nimport { FormSchema, RoleSchema, Submission } from \"../../interfaces\";\n\nexport const requestUser = createAction();\nexport const receiveUser = createAction<{ user: Submission }>();\nexport const failUser = createAction<{ error: Error }>();\nexport const logoutUser = createAction();\nexport const submissionAccessUser = createAction<{ submissionAccess: any }>();\nexport const formAccessUser = createAction<{ formAccess: any }>();\nexport const projectAccessUser = createAction<{ projectAccess: any }>();\nexport const userRoles = createAction<{ roles: Record<string, RoleSchema> }>();\nexport const userForms = createAction<{ forms: Record<string, FormSchema> }>();\n","import { createReducer } from \"@tsed/redux-utils\";\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { RoleSchema } from \"../../interfaces/RoleSchema\";\nimport {\n failUser,\n formAccessUser,\n logoutUser,\n projectAccessUser,\n receiveUser,\n requestUser,\n submissionAccessUser,\n userForms,\n userRoles\n} from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport interface AuthState<User = any> {\n init: boolean;\n isActive: boolean;\n user: null | Submission<User>;\n authenticated: boolean;\n projectAccess: Record<string, string[]>;\n formAccess: Record<string, string[]>;\n submissionAccess: Record<string, string[]>;\n roles: Record<string, RoleSchema>;\n forms: Record<string, FormSchema>;\n is: Record<string, boolean>;\n error: null | Error;\n}\n\nfunction createInitialState(): AuthState {\n return {\n init: false,\n isActive: false,\n user: null,\n authenticated: false,\n submissionAccess: {},\n formAccess: {},\n projectAccess: {},\n roles: {},\n forms: {},\n is: {},\n error: null\n };\n}\n\nfunction mapProjectRolesToUserRoles(projectRoles: Record<string, any>, userRoles: any[]) {\n return Object.entries(projectRoles).reduce(\n (result, [name, role]) => ({\n ...result,\n [name]: userRoles.includes(role._id)\n }),\n {}\n );\n}\n\nfunction getUserRoles(projectRoles: Record<string, RoleSchema>) {\n return Object.keys(projectRoles).reduce(\n (result, name) => ({\n ...result,\n [name]: name === \"anonymous\"\n }),\n {}\n );\n}\n\nexport const authReducer = createReducer<AuthState>(\n {\n [requestUser.toString()](state) {\n return {\n ...state,\n init: true,\n submissionAccess: false,\n isActive: true\n };\n },\n [receiveUser.toString()](state, { user }) {\n return {\n ...state,\n isActive: false,\n user,\n authenticated: true,\n is: mapProjectRolesToUserRoles(state.roles, user.roles),\n error: null\n };\n },\n [failUser.toString()](state, { error }: any) {\n return {\n ...state,\n isActive: false,\n is: getUserRoles(state.roles),\n error\n };\n },\n [logoutUser.toString()](state) {\n return {\n ...state,\n user: null,\n isActive: false,\n authenticated: false,\n is: getUserRoles(state.roles),\n error: null\n };\n },\n [submissionAccessUser.toString()](state, { submissionAccess }: any) {\n return {\n ...state,\n submissionAccess\n };\n },\n [formAccessUser.toString()](state, { formAccess }: any) {\n return {\n ...state,\n formAccess\n };\n },\n [userForms.toString()](state, { forms }: any) {\n return {\n ...state,\n forms\n };\n },\n [projectAccessUser.toString()](state, { projectAccess }: any) {\n return {\n ...state,\n projectAccess\n };\n },\n [userRoles.toString()](state, { roles }: any) {\n return {\n ...state,\n roles\n };\n },\n default(state: any) {\n if (!window.localStorage.getItem(\"formioUser\")) {\n return {\n ...state,\n user: null,\n isActive: false,\n authenticated: false,\n is: getUserRoles(state.roles),\n error: null\n };\n }\n return state;\n }\n },\n createInitialState\n)(AUTH);\n","import get from \"lodash/get\";\nimport { RoleSchema, Submission } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { AUTH } from \"./auth.constant\";\nimport { AuthState } from \"./auth.reducers\";\n\nexport const selectAuth = (state: any) => selectRoot<AuthState>(AUTH, state);\n\nexport const selectUser = <User = any>(state: any): null | Submission<User> => get(selectAuth(state), \"user\");\n\nexport const selectRoles = (state: any): Record<string, RoleSchema> => get(selectAuth(state), \"roles\");\n\nexport const selectIsAuthenticated = (state: any): boolean => get(selectAuth(state), \"authenticated\");\n","import { Formio } from \"formiojs\";\nimport { projectAccessUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nfunction transformProjectAccess(projectAccess: any[]) {\n return projectAccess.reduce(\n (result: any, access: any) => ({\n ...result,\n [access.type]: access.roles\n }),\n {}\n );\n}\n\nexport async function getProjectAccess(dispatch: any) {\n const projectUrl = Formio.getProjectUrl();\n\n try {\n const project = await Formio.makeStaticRequest(projectUrl);\n const projectAccess = transformProjectAccess(project.access);\n\n dispatch(projectAccessUser(AUTH, projectAccess));\n } catch (er) {}\n}\n","import { Formio } from \"formiojs\";\nimport { RoleSchema } from \"../../interfaces\";\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { formAccessUser, submissionAccessUser, userForms, userRoles } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nfunction transformSubmissionAccess(forms: Record<string, FormSchema>) {\n return Object.values(forms).reduce(\n (result, form) => ({\n ...result,\n [form.name as string]: form.submissionAccess.reduce(\n (formSubmissionAccess: any, access: any) => ({\n ...formSubmissionAccess,\n [access.type]: access.roles\n }),\n {}\n )\n }),\n {}\n );\n}\n\nfunction transformFormAccess(forms: Record<string, FormSchema>) {\n return Object.values(forms).reduce(\n (result, form) => ({\n ...result,\n [form.name as string]: form.access.reduce(\n (formAccess: any, access: any) => ({\n ...formAccess,\n [access.type]: access.roles\n }),\n {}\n )\n }),\n {}\n );\n}\n\nexport async function getAccess(dispatch: any) {\n const projectUrl = Formio.getProjectUrl();\n\n try {\n const result: {\n roles: Record<string, RoleSchema>;\n forms: Record<string, FormSchema>;\n } = await Formio.makeStaticRequest(`${projectUrl}/access`);\n\n const submissionAccess = transformSubmissionAccess(result.forms);\n const formAccess = transformFormAccess(result.forms);\n\n dispatch(submissionAccessUser(AUTH, { submissionAccess }));\n dispatch(formAccessUser(AUTH, { formAccess }));\n dispatch(userRoles(AUTH, { roles: result.roles }));\n dispatch(userForms(AUTH, { forms: result.forms }));\n } catch (err) {}\n}\n","import { Formio } from \"formiojs\";\nimport { logoutUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport const logout = () => async (dispatch: any) => {\n await Formio.logout();\n dispatch(logoutUser(AUTH));\n};\n","import { Formio } from \"formiojs\";\nimport { receiveUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport const setUser = (user: any) => (dispatch: any) => {\n Formio.setUser(user);\n dispatch(receiveUser(AUTH, { user }));\n};\n","import { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { failUser, requestUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\nimport { getAccess } from \"./getAccess.action\";\nimport { getProjectAccess } from \"./getProjectAccess.action\";\nimport { logout } from \"./logout.action\";\nimport { setUser } from \"./setUser.action\";\n\nexport const initAuth =\n (done = noop) =>\n async (dispatch: any) => {\n dispatch(requestUser(AUTH));\n\n try {\n const [user] = await Promise.all([Formio.currentUser(), getAccess(dispatch), getProjectAccess(dispatch)]);\n\n if (user) {\n dispatch(setUser(user));\n } else {\n dispatch(logout());\n }\n } catch (error) {\n dispatch(failUser(AUTH, { error }));\n }\n\n done();\n };\n","import { FormSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { FormState } from \"./form.reducers\";\n\nexport const selectForm = (name: string, state: any): Partial<FormSchema> => selectRoot<FormState>(name, state).data!;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { FormSchema } from \"../../interfaces\";\nimport { getFormUrl } from \"../../utils/url\";\nimport { getActions } from \"../actions\";\nimport { selectForm } from \"./form.selectors\";\n\nexport const clearFormError = createAction();\nexport const requestForm = createAction();\nexport const receiveForm = createAction();\nexport const failForm = createAction();\nexport const resetForm = createAction();\nexport const sendForm = createAction();\n\nfunction shouldGet(form: Partial<FormSchema>, id: string) {\n return form && form.components && Array.isArray(form.components) && form.components.length && form._id === id;\n}\n\nexport const getForm =\n (name: string, id = \"\", done = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(clearFormError(name));\n // Check to see if the form is already loaded.\n const form = selectForm(name, getState());\n\n if (shouldGet(form, id)) {\n return;\n }\n\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n dispatch(requestForm(name, { id, url }));\n\n try {\n const form = await formio.loadForm();\n\n dispatch(receiveForm(name, { form, url }));\n dispatch(getActions(form._id));\n done(null, form);\n } catch (error) {\n dispatch(failForm(name, { error }));\n done({ error });\n }\n };\n\nexport const saveForm =\n (name: string, form: Partial<FormSchema>, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearFormError(name));\n dispatch(sendForm(name, { form }));\n\n const id = form._id || \"\";\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n const result = await formio.saveForm(form);\n dispatch(receiveForm(name, { form: result, url: getFormUrl(result._id) }));\n done(null, result);\n } catch (error) {\n dispatch(failForm(name, { error }));\n done(error);\n }\n };\n\nexport const deleteForm =\n (name: string, id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearFormError(name));\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n await formio.deleteForm();\n dispatch(resetForm(name));\n done();\n } catch (error) {\n dispatch(failForm(name, { error }));\n done({ error });\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\nimport { FormSchema } from \"../../interfaces\";\nimport { clearFormError, failForm, receiveForm, requestForm, resetForm, sendForm } from \"./form.actions\";\n\nexport interface FormState {\n error: null | Error;\n data?: Partial<FormSchema>;\n isActive: boolean;\n lastUpdated: number;\n url: string;\n}\n\nconst createInitialState: InitialStateCreator<FormState> = () => ({\n id: \"\",\n isActive: false,\n lastUpdated: 0,\n data: {},\n url: \"\",\n error: null\n});\n\nexport const formReducer = createReducer<FormState>(\n {\n [resetForm.toString()]: (_, _2, reset) => reset(),\n [clearFormError.toString()]: (state) => ({\n ...state,\n error: null\n }),\n [requestForm.toString()]: (state, { id, url }) => ({\n ...state,\n isActive: true,\n id,\n url,\n data: {},\n error: null\n }),\n [receiveForm.toString()]: (state, { form, url }) => ({\n ...state,\n isActive: false,\n id: form._id,\n data: form,\n url: url || state.url,\n error: null\n }),\n [failForm.toString()]: (state, payload) => ({\n ...state,\n error: payload.error,\n isActive: false\n }),\n [sendForm.toString()]: (state, { form, url }) => ({\n ...state,\n data: form,\n url,\n isActive: true\n })\n },\n createInitialState\n);\n","export function clean(obj: any = {}) {\n return Object.entries(obj).reduce((obj, [key, entry]) => {\n if (entry !== undefined) {\n return {\n ...obj,\n [key]: entry\n };\n }\n\n return obj;\n }, {});\n}\n","import { QueryOptions } from \"../interfaces/QueryOptions\";\nimport { clean } from \"./clean\";\n\nexport interface RequestParamsOptions extends QueryOptions {\n select: string | string[];\n query: {\n [key: string]: string;\n };\n [key: string]: any;\n}\n\nexport function mapRequestParams({ query, pageSize = 10, pageIndex = 0, select, filters, sortBy }: Partial<RequestParamsOptions>) {\n const requestParams: any = {\n ...clean(query),\n limit: pageSize,\n skip: pageIndex * pageSize\n };\n\n if (select && select.length) {\n requestParams.select = Array.isArray(select) ? select.join(\",\") : select;\n }\n\n if (filters && filters.length) {\n filters.forEach((filter) => {\n if (filter.value) {\n requestParams[`${filter.id}__regex`] = new RegExp(filter.value, \"gi\").toString();\n }\n });\n }\n\n if (sortBy && sortBy.length) {\n requestParams.sort = (sortBy[0].desc ? \"-\" : \"\") + sortBy[0].id;\n }\n\n return requestParams;\n}\n","import { selectRoot } from \"../root\";\nimport { FormsState } from \"./forms.reducers\";\n\nexport const selectForms = (name: string, state: any) => selectRoot<FormsState>(name, state).data;\n\nexport const selectFormsParameters = (name: string, state: any) => selectRoot<FormsState>(name, state).parameters;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { FormSchema } from \"../../interfaces\";\nimport type { RequestParamsOptions } from \"../../utils/mapRequestParams\";\nimport { mapRequestParams } from \"../../utils/mapRequestParams\";\nimport { selectFormsParameters } from \"./forms.selectors\";\n\nexport const resetForms = createAction();\nexport const requestForms = createAction<{\n parameters: Partial<RequestParamsOptions>;\n}>();\nexport const receiveForms = createAction<{ forms: FormSchema[] }>();\nexport const failForms = createAction();\n\nexport type GetFormsCB = (err: any, forms?: FormSchema[]) => void;\n\nexport const getForms =\n (name: string, parameters: Partial<RequestParamsOptions>, done: GetFormsCB = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(requestForms(name, { parameters }));\n\n const formio = new Formio(`${Formio.getProjectUrl()}/form`);\n const requestParams = mapRequestParams(selectFormsParameters(name, getState()));\n\n try {\n const result: FormSchema[] = await formio.loadForms({\n params: requestParams\n });\n dispatch(receiveForms(name, { forms: result }));\n done(null, result);\n } catch (error) {\n dispatch(failForms(name, { error }));\n done(error);\n }\n };\n\nexport const refreshForms = (name: string, done = noop) => {\n return async (dispatch: any, getState: any) => {\n const parameters = selectFormsParameters(name, getState());\n return getForms(name, parameters, done)(dispatch, getState);\n };\n};\n","import { createReducer } from \"@tsed/redux-utils\";\nimport { FormSchema } from \"../../interfaces\";\nimport { failForms, receiveForms, requestForms, resetForms } from \"./forms.actions\";\n\nexport interface FormsState {\n error: null | Error;\n isActive: boolean;\n parameters: {\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n query: any;\n select: any;\n sortBy: any[];\n filters: any[];\n };\n data: FormSchema[];\n}\n\nconst createInitialState = ({ pageIndex = 0, pageSize = 10, query = {}, select = \"\", sortBy = [] }: any = {}): FormsState => {\n return {\n error: null,\n isActive: false,\n parameters: {\n pageSize,\n pageIndex,\n pageCount: 0,\n query,\n select,\n sortBy,\n filters: []\n },\n data: []\n };\n};\n\nexport const formsReducer = createReducer<FormsState>({}, createInitialState)\n .on(resetForms, (_: any, _2: any, reset: any) => {\n return reset();\n })\n .on(requestForms, (state: FormsState, { parameters }: any) => {\n return {\n ...state,\n parameters: {\n ...state.parameters,\n ...parameters\n },\n error: null,\n data: [],\n isActive: true\n };\n })\n .on(receiveForms, (state: FormsState, { forms }: any) => {\n const total = forms.serverCount;\n const pageCount = Math.ceil(total / (state.parameters.pageSize || 10));\n\n delete forms.serverCount;\n\n return {\n ...state,\n data: forms,\n isActive: false,\n parameters: {\n ...state.parameters,\n pageCount,\n totalLength: total\n }\n };\n })\n .on(failForms, (state: any, { error }: any) => {\n return {\n ...state,\n error,\n isActive: false\n };\n });\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { Submission } from \"../../interfaces\";\nimport { getSubmissionUrl } from \"../../utils/url\";\n\nexport const clearSubmissionError = createAction();\nexport const requestSubmission = createAction();\nexport const sendSubmission = createAction();\nexport const receiveSubmission = createAction();\nexport const failSubmission = createAction();\nexport const resetSubmission = createAction();\n\nexport const getSubmission =\n (name: string, formId: string, id: string, done = noop) =>\n async (dispatch: any, getState: any) => {\n // Check to see if the submission is already loaded.\n if (getState().id === id) {\n return;\n }\n\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n dispatch(clearSubmissionError(name));\n dispatch(requestSubmission(name, { id, formId, url }));\n\n try {\n const result = await formio.loadSubmission();\n\n dispatch(receiveSubmission(name, { submission: result, url }));\n done(null, result);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n\nexport const saveSubmission =\n (name: string, formId: string, data: Submission, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearSubmissionError(name));\n dispatch(sendSubmission(name, { submission: data, formId }));\n\n const id = data._id;\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n try {\n const result = await formio.saveSubmission(data);\n dispatch(\n receiveSubmission(name, {\n submission: result,\n url: getSubmissionUrl(formId, result._id)\n })\n );\n done(null, result);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n\nexport const deleteSubmission =\n (name: string, formId: string, id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearSubmissionError(name));\n\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n try {\n await formio.deleteSubmission();\n dispatch(resetSubmission(name));\n done(null);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\nimport { Submission } from \"../../interfaces\";\nimport {\n clearSubmissionError,\n failSubmission,\n receiveSubmission,\n requestSubmission,\n resetSubmission,\n sendSubmission\n} from \"./submission.actions\";\n\nexport interface SubmissionState {\n formId: string;\n id: string;\n isActive: boolean;\n lastUpdated: number;\n data: Partial<Submission>;\n url: string;\n error: null | Error;\n}\n\nconst createInitialState: InitialStateCreator = () => ({\n formId: \"\",\n id: \"\",\n isActive: false,\n lastUpdated: 0,\n data: {},\n url: \"\",\n error: null\n});\n\nexport const submissionReducer = createReducer<SubmissionState>(\n {\n [resetSubmission.toString()]: (_: any, _2: any, reset: any) => reset(),\n [clearSubmissionError.toString()]: (state: any) => ({\n ...state,\n error: null\n }),\n [requestSubmission.toString()]: (state: any, { formId, id, url }: any) => ({\n ...state,\n formId,\n id,\n url,\n data: {},\n isActive: true\n }),\n [sendSubmission.toString()]: (state: any, { formId, submission, id, url }: any) => ({\n ...state,\n formId,\n id,\n url: url || state.url,\n data: submission,\n isActive: true\n }),\n [receiveSubmission.toString()]: (state: any, { submission, url }: any) => ({\n ...state,\n data: submission,\n url: url || state.url,\n isActive: false,\n error: null\n }),\n [failSubmission.toString()]: (state: any, { error }: any) => ({\n ...state,\n isActive: false,\n error\n })\n },\n createInitialState\n);\n","import { Submission } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { SubmissionState } from \"./submission.reducers\";\n\nexport const selectSubmission = (name: string, state: any): Partial<Submission> => selectRoot<SubmissionState>(name, state).data;\n","import { selectRoot } from \"../root\";\nimport { SubmissionsState } from \"./submissions.reducers\";\n\nexport const selectSubmissions = (name: string, state: any) => selectRoot<SubmissionsState>(name, state).data;\n\nexport const selectSubmissionsParameters = (name: string, state: any) => selectRoot<SubmissionsState>(name, state).parameters;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\nimport { mapRequestParams } from \"../../utils/mapRequestParams\";\nimport { getSubmissionUrl } from \"../../utils/url\";\nimport { selectSubmissionsParameters } from \"./submissions.selectors\";\n\nexport const resetSubmissions = createAction();\nexport const requestSubmissions = createAction();\nexport const receiveSubmissions = createAction();\nexport const failSubmissions = createAction();\n\nexport const getSubmissions =\n (name: string, formId: string, parameters: any = {}, done = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(requestSubmissions(name, { formId, parameters }));\n\n const url = getSubmissionUrl(formId);\n const formio = new Formio(url);\n const requestParams = mapRequestParams(selectSubmissionsParameters(name, getState()));\n\n try {\n const submissions = await formio.loadSubmissions({ params: requestParams });\n dispatch(receiveSubmissions(name, { submissions }));\n done(null, submissions);\n } catch (error) {\n dispatch(failSubmissions(name, { error }));\n done(error);\n }\n };\n\nexport const refreshSubmissions = (name: string, formId: string, done = noop) => {\n return async (dispatch: any, getState: any) => {\n const parameters = selectSubmissionsParameters(name, getState());\n return getSubmissions(name, formId, parameters, done)(dispatch, getState);\n };\n};\n","import { createReducer } from \"@tsed/redux-utils\";\nimport { Submission } from \"../../interfaces/Submission\";\nimport { failSubmissions, receiveSubmissions, requestSubmissions, resetSubmissions } from \"./submissions.actions\";\n\nexport interface SubmissionsState {\n error: null | Error;\n formId: string;\n isActive: boolean;\n parameters: {\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n query: any;\n select: any;\n sortBy: any[];\n };\n data: Submission[];\n}\n\nexport function createInitialState({ pageIndex = 0, pageSize = 10, query = {}, select = \"\", sortBy = [] }: any = {}): SubmissionsState {\n return {\n error: null,\n formId: \"\",\n isActive: false,\n parameters: {\n pageSize,\n pageIndex,\n pageCount: 0,\n query,\n select,\n sortBy\n },\n data: []\n };\n}\n\nexport const submissionsReducer = createReducer<SubmissionsState>({}, createInitialState)\n .on(resetSubmissions, (_: any, _2: any, reset: any) => {\n return reset();\n })\n .on(requestSubmissions, (state: any, { parameters, formId }: any) => {\n return {\n ...state,\n formId,\n parameters: {\n ...state.parameters,\n ...parameters\n },\n error: null,\n data: [],\n isActive: true\n };\n })\n .on(receiveSubmissions, (state: SubmissionsState, { submissions }: any) => {\n const total = submissions.serverCount;\n const pageCount = Math.ceil(total / (state.parameters.pageSize || 10));\n\n delete submissions.serverCount;\n\n return {\n ...state,\n data: submissions,\n isActive: false,\n parameters: {\n ...state.parameters,\n pageCount,\n totalLength: total\n }\n };\n })\n .on(failSubmissions, (state: any, { error }: any) => {\n return {\n ...state,\n error,\n isActive: false\n };\n });\n","import { combine } from \"@tsed/redux-utils\";\nimport { actionReducer } from \"./action\";\nimport { actionInfoReducer } from \"./action-info\";\nimport { actionsReducer } from \"./actions\";\nimport { authReducer } from \"./auth\";\nimport { formReducer } from \"./form\";\nimport { formsReducer } from \"./forms\";\nimport { submissionReducer } from \"./submission\";\nimport { submissionsReducer } from \"./submissions\";\n\nexport * from \"./auth\";\nexport * from \"./action\";\nexport * from \"./action-info\";\nexport * from \"./actions\";\nexport * from \"./form\";\nexport * from \"./forms\";\nexport * from \"./submission\";\nexport * from \"./submissions\";\nexport * from \"./root\";\n\nexport const defaultFormioReducer = combine(\n authReducer,\n actionsReducer,\n actionReducer,\n actionInfoReducer,\n formReducer(\"form\"),\n formsReducer(\"forms\", { query: { type: \"form\" } }),\n formReducer(\"resource\"),\n formsReducer(\"resources\", { query: { type: \"resource\" } }),\n submissionReducer(\"submission\"),\n submissionsReducer(\"submissions\")\n);\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Templates } from \"formiojs\";\n\nexport function iconClass(iconset: string | undefined, name: string, spinning?: boolean): string {\n return Templates.current.iconClass(iconset || Templates.current.defaultIconset, name, spinning);\n}\n","export function getEventValue(event: any) {\n const { target } = event;\n\n if (event.target.multiple && event.target.selectedOptions) {\n return Array.from(event.target.selectedOptions, (option: any) => option.value);\n }\n\n return target.type === \"checkbox\" ? target.checked : target.value;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nexport interface FormControlProps {\n name: string;\n required?: boolean;\n label?: string;\n className?: string;\n description?: string | React.ComponentType | any;\n prefix?: React.ComponentType | any;\n suffix?: 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 id={`form-group-${name || \"\"}`} className={classnames(\"form-group\", className)}>\n {label && (\n <label htmlFor={name} 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'>{prefix}</span>\n </div>\n )}\n {children}\n {suffix && (\n <div className='input-group-append'>\n <span className='input-group-text'>{suffix}</span>\n </div>\n )}\n </div>\n {description && <div className='form-text text-muted'>{description}</div>}\n </div>\n );\n}\n\nFormControl.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n children: PropTypes.any,\n required: PropTypes.bool,\n description: PropTypes.any\n};\n","import Choices from \"choices.js\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { ReactElement, useEffect, useRef } from \"react\";\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface SelectProps<T = any> extends FormControlProps {\n value?: any;\n size?: string;\n onChange?: (name: string, value: any) => void;\n placeholder?: string;\n choices: { label: string; value: T }[];\n layout?: \"html5\" | \"choicesjs\";\n multiple?: boolean;\n\n [key: string]: any;\n}\n\nexport function Select<T = any>({\n name,\n label,\n size,\n onChange,\n required,\n value,\n choices,\n description,\n placeholder,\n prefix,\n suffix,\n multiple,\n layout,\n ...props\n}: SelectProps<T>): ReactElement {\n const ref = useRef<any>();\n\n useEffect(() => {\n let instance: any;\n\n if (layout === \"choicesjs\") {\n instance = new Choices(ref.current, {\n removeItemButton: true,\n placeholderValue: placeholder\n });\n }\n\n return () => {\n instance && instance.destroy();\n };\n }, []);\n\n choices =\n layout === \"choicesjs\" || multiple || !placeholder\n ? choices\n : ([\n {\n label: placeholder,\n value: \"\"\n },\n ...choices\n ] as any[]);\n\n return (\n <FormControl name={name} label={label} required={required} description={description} prefix={prefix} suffix={suffix} shadow={false}>\n {/* eslint-disable-next-line jsx-a11y/no-onchange */}\n <select\n ref={ref}\n {...props}\n data-testid={`select_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n name={name}\n id={name}\n multiple={multiple}\n value={value || (\"\" as any)}\n placeholder={placeholder}\n onChange={(event) => {\n onChange && onChange(name, getEventValue(event));\n }}\n >\n {choices.map(({ label, value }) => {\n return (\n <option key={String(value)} label={label} value={value as any}>\n {label}\n </option>\n );\n })}\n </select>\n </FormControl>\n );\n}\n\nSelect.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n choices: PropTypes.array.isRequired\n};\n","export const LEFT_PAGE = \"LEFT\";\nexport const RIGHT_PAGE = \"RIGHT\";\n\nfunction range(from: number, to: number, step = 1): any[] {\n let i = from;\n const range = [];\n\n while (i <= to) {\n range.push(i);\n i += step;\n }\n\n return range;\n}\n\nexport function getPageNumbers({ currentPage, pageNeighbours = 1, totalPages }: any) {\n const totalNumbers = pageNeighbours * 2 + 3;\n const totalBlocks = totalNumbers + 2;\n\n if (totalPages > totalBlocks) {\n const calculatedStartPage = Math.max(2, currentPage - pageNeighbours);\n const calculatedEndPage = Math.min(totalPages - 1, currentPage + pageNeighbours);\n const startPage = calculatedStartPage === 3 ? 2 : calculatedStartPage;\n const endPage = calculatedEndPage === totalPages - 2 ? totalPages - 1 : calculatedEndPage;\n\n let pages = range(startPage, endPage);\n\n const hasLeftSpill = startPage > 2;\n const hasRightSpill = totalPages - endPage > 1;\n const spillOffset = totalNumbers - (pages.length + 1);\n let extraPages;\n\n if (hasLeftSpill && !hasRightSpill) {\n extraPages = range(startPage - spillOffset, startPage - 1);\n pages = [LEFT_PAGE, ...extraPages, ...pages];\n } else if (!hasLeftSpill && hasRightSpill) {\n extraPages = range(endPage + 1, endPage + spillOffset);\n pages = [...pages, ...extraPages, RIGHT_PAGE];\n } else {\n pages = [LEFT_PAGE, ...pages, RIGHT_PAGE];\n }\n\n return [1, ...pages, totalPages];\n }\n\n return range(1, totalPages);\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\nimport { Select } from \"../select/select.component\";\nimport { getPageNumbers, LEFT_PAGE, RIGHT_PAGE } from \"../table/utils/getPageNumbers\";\n\nfunction PaginationButton(\n props: PropsWithChildren<\n {\n component?: any;\n disabled?: boolean;\n className?: string;\n active?: boolean;\n } & Record<string, any>\n >\n) {\n const { component: Component = \"button\", children, disabled, active, ...otherProps } = props;\n\n return (\n <Component\n {...otherProps}\n data-testid='pagination-button'\n disabled={disabled}\n className={classnames(\"page-link\", disabled ? \"disabled\" : \"\", active ? \"\" : \"\", props.className)}\n >\n {children}\n </Component>\n );\n}\n\nexport interface PaginationProps {\n className?: string;\n pageSizes?: number[];\n gotoPage: any;\n canPreviousPage: boolean;\n previousPage: any;\n nextPage: any;\n canNextPage: boolean;\n pageCount: number;\n pageIndex: number;\n pageOptions?: any;\n pageSize: number;\n setPageSize: any;\n i18n?: (f: string) => string;\n}\n\nexport function Pagination(props: PaginationProps) {\n const {\n className,\n pageSizes = [10, 25, 50, 100],\n gotoPage,\n canPreviousPage,\n previousPage,\n nextPage,\n canNextPage,\n pageCount,\n pageIndex = 1,\n pageOptions,\n pageSize,\n setPageSize,\n i18n = (f: string) => f\n } = props;\n\n const pageNumbers = getPageNumbers({\n currentPage: pageIndex,\n // pageNeighbours,\n totalPages: pageCount\n });\n const choices: any[] = pageSizes.map((value) => ({ value, label: value }));\n\n return (\n <nav aria-label='Page navigation' className={classnames(\"pagination-group -mb-3\", className)}>\n <ul className='pagination mb-3 mr-3'>\n <li className={classnames(\"page-item\", !canPreviousPage && \"disabled\")}>\n <PaginationButton tabIndex={-1} disabled={!canPreviousPage} onClick={() => previousPage()}>\n {i18n(\"Previous\")}\n </PaginationButton>\n </li>\n\n {pageNumbers.map((page) => {\n if ([LEFT_PAGE, RIGHT_PAGE].includes(page)) {\n return (\n <li className='page-item' key={page}>\n <PaginationButton aria-hidden='true'>...</PaginationButton>\n </li>\n );\n }\n\n const active = page - 1 === pageIndex;\n return (\n <li className={classnames(\"page-item\", active && \"active\")} key={page}>\n <PaginationButton tabIndex={pageIndex} active={active} onClick={() => gotoPage(page - 1)}>\n {page}\n </PaginationButton>\n </li>\n );\n })}\n\n <li className={classnames(\"page-item\", !canNextPage && \"disabled\")}>\n <PaginationButton tabIndex={pageNumbers.length} disabled={!canNextPage} onClick={() => nextPage()}>\n {i18n(\"Next\")}\n </PaginationButton>\n </li>\n </ul>\n\n <li className='mb-3 mr-3 flex items-center'>\n <Select\n name={\"page\"}\n value={pageSize}\n choices={choices}\n onChange={(name: string, value: number) => {\n setPageSize(+value);\n }}\n />\n <span className={\"ml-3\"}>{i18n(\"items per page\")}</span>\n </li>\n {pageOptions && (\n <li className={\"mb-3 flex items-center\"}>\n <span>{i18n(\"Page\")} </span>\n <strong>\n {pageIndex + 1} of {pageOptions.length}\n </strong>\n </li>\n )}\n </nav>\n );\n}\n","import React from \"react\";\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) {\n return (\n <div className={\"table-cell-header\"}>\n <div className='table-cell-header__label' {...column.getSortByToggleProps()}>\n <span>{column.render(\"Header\")}</span>\n\n {column.render(\"ArrowSort\")}\n </div>\n {column.canFilter ? <div className='table-cell-header__filter'>{column.render(\"Filter\")}</div> : null}\n </div>\n );\n}\n","export function callLast(fn: Function, time: number) {\n let last: any = null;\n\n return (...args: any[]) => {\n if (last) {\n clearTimeout(last);\n last = null;\n }\n\n last = setTimeout(() => fn(...args), time);\n };\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useMemo, useState } from \"react\";\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\";\nimport { InputText } from \"../../input-text/inputText.component\";\n\nexport function DefaultColumnFilter<D extends Record<string, unknown> = {}>(\n props: FilterProps<D> & { filterId: string; setFilterId: any }\n) {\n const {\n filterId,\n setFilterId,\n column: { id, filterValue, setFilter }\n } = props;\n\n const [value, setValue] = useState(filterValue || \"\");\n\n const onChange = useCallback(\n (name, value) => {\n setValue(value);\n setFilterId(id);\n setFilter(value || undefined);\n },\n [id, setValue, setFilterId, setFilter]\n );\n\n return (\n <InputText\n size={\"sm\"}\n id={id}\n name={id}\n key={id}\n autoFocus={id === filterId}\n value={value}\n onChange={onChange}\n placeholder={\"Search records...\"}\n />\n );\n}\n","export const stopPropagationWrapper = (fn: Function) => (event: any) => {\n event.stopPropagation();\n fn();\n};\n","import classnames from \"classnames\";\nimport React from \"react\";\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport interface OperationButtonProps {\n className?: string;\n buttonType?: string;\n buttonSize?: string;\n buttonOutline?: boolean;\n data: any[];\n onClick: (action: string) => void;\n action: string;\n icon?: string;\n title?: string;\n i18n?: (i18n: string) => string;\n}\n\nexport function DefaultOperationButton(props: OperationButtonProps) {\n const {\n className = \"btn\",\n buttonSize = \"xs\",\n buttonType = \"primary\",\n buttonOutline,\n onClick,\n action,\n icon = \"\",\n title = \"\",\n i18n = (f: string) => f\n } = props;\n\n return (\n <button\n className={classnames(className, [\"btn\", buttonOutline && \"outline\", buttonType].filter(Boolean).join(\"-\"), `btn-${buttonSize}`)}\n onClick={stopPropagationWrapper(() => onClick(action))}\n >\n {icon ? (\n <>\n <i className={iconClass(undefined, icon)} /> {title && \" \"}\n </>\n ) : null}\n {title && <span className={icon && title ? \"ml-1\" : \"\"}>{i18n(title)}</span>}\n </button>\n );\n}\n","import React from \"react\";\nimport { DefaultOperationButton } from \"./defaultOperationButton.component\";\n\nexport function DefaultCellOperations({ operations, row, onClick, ctx, i18n }: any) {\n const data = row.original;\n\n return (\n <div className='btn-group'>\n {operations\n .filter(({ permissionsResolver }: any) => !permissionsResolver || permissionsResolver(data, ctx))\n .map(({ OperationButton = DefaultOperationButton, ...operation }: any) => {\n return (\n <OperationButton\n key={operation.action}\n {...operation}\n onClick={(action: string) => onClick(data, action)}\n data={data}\n i18n={i18n}\n ctx={ctx}\n />\n );\n })}\n </div>\n );\n}\n","import React from \"react\";\nimport { Hooks } from \"react-table\";\nimport { Operation } from \"../../../interfaces\";\nimport { DefaultCellOperations } from \"../components/defaultCellOperations.component\";\n\nexport type UseOperationsHookProps = {\n CellOperations?: React.ComponentType;\n operations: Operation[];\n onClick?: (data: any, event: string) => void;\n i18n?: (f: string) => string;\n ctx?: any;\n};\n\nexport function useOperations<D extends object = {}>({\n operations,\n CellOperations = DefaultCellOperations,\n onClick,\n i18n = (f: string) => f,\n ctx\n}: UseOperationsHookProps) {\n return (hooks: Hooks<D>): void => {\n hooks.visibleColumns.push((columns) => {\n if (!operations.length) {\n return columns;\n }\n\n return [\n ...columns,\n {\n id: \"operations\",\n groupByBoundary: true,\n Header: () => <div className={\"text-center\"}>{i18n(\"Operations\")}</div>,\n Cell: (props: any) => <CellOperations {...props} operations={operations} onClick={onClick} ctx={ctx} i18n={i18n} />\n }\n ];\n });\n };\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, {PropsWithChildren} from \"react\";\nimport {\n CellProps,\n FilterProps,\n Renderer,\n TableOptions,\n useFilters,\n useGroupBy,\n usePagination,\n useSortBy,\n useTable\n} from \"react-table\";\nimport {OnClickOperation, Operation, QueryOptions} from \"../../interfaces\";\nimport {Pagination as DefaultPagination} from \"../pagination/pagination.component\";\nimport {DefaultArrowSort} from \"./components/defaultArrowSort.component\";\nimport {DefaultCellHeader, DefaultCellHeaderProps} from \"./components/defaultCellHeader.component\";\nimport {DefaultColumnFilter} from \"./filters/defaultColumnFilter.component\";\nimport {useOperations} from \"./utils/useOperations.hook\";\n\nexport interface TableProps<Data extends object = any> extends TableOptions<Data>, Partial<QueryOptions> {\n className?: string;\n /**\n * Call the listener when a filter / pagination / sort change.\n */\n onChange?: (query: QueryOptions) => void;\n /**\n * Call the listener when a line is clicked.\n */\n onClick?: OnClickOperation<Data>;\n /**\n * Pagination steps list\n */\n pageSizes?: number[];\n /**\n *\n */\n isLoading?: boolean;\n /**\n * Custom EmptyData displayed when there is no data\n */\n EmptyData?: React.ComponentType;\n /**\n * Custom ArrowSort\n */\n ArrowSort?: React.ComponentType;\n /**\n * Custom default ColumnFilter\n */\n ColumnFilter?: Renderer<FilterProps<Data>>;\n /**\n * Custom cell\n */\n Cell?: React.ComponentType<CellProps<Data>>;\n /**\n *\n */\n CellHeader?: React.ComponentType<DefaultCellHeaderProps<Data>>;\n /**\n *\n */\n CellOperations?: React.ComponentType;\n /**\n * Custom Loader\n */\n Loader?: React.ComponentType;\n /**\n * Custom Loader\n */\n Pagination?: React.ComponentType;\n /**\n * Disable filters\n */\n disableFilters?: boolean;\n /**\n * Disable pagination\n */\n disablePagination?: boolean;\n manualPagination?: boolean;\n manualSortBy?: boolean;\n manualFilters?: boolean;\n /**\n * Configuration operation for each line.\n */\n operations?: Operation[];\n\n i18n?: (f: string) => string;\n}\n\nfunction getOperationCallback(operations: Operation[], onClick: OnClickOperation) {\n return (data: any, action: string) => {\n const operation = operations.find((operation) => operation.action === action || operation.alias === action);\n if (operation) {\n onClick(data, operation);\n }\n };\n}\n\nfunction DefaultLoader() {\n return <div className={\"text-center p-2 pb-4 font-bold\"}>Loading in progress</div>;\n}\n\nfunction DefaultEmptyData() {\n return <div className=\"text-center p-2 pb-4 font-bold\">No data found</div>;\n}\n\nconst hooks = [useFilters, useGroupBy, useSortBy, usePagination];\n\nexport function Table<Data extends object = any>(props: PropsWithChildren<TableProps<Data>>) {\n const {\n children,\n className = \"\",\n columns,\n data,\n onChange = noop,\n onClick = noop,\n operations = [],\n pageSizes = [10, 25, 50, 100],\n filters: controlledFilters,\n filterId: controlledFilterId,\n pageSize: controlledPageSize,\n pageIndex: controlledPageIndex,\n sortBy: controlledSortBy,\n isLoading,\n disableFilters,\n disablePagination,\n ArrowSort = DefaultArrowSort,\n ColumnFilter = DefaultColumnFilter,\n EmptyData = DefaultEmptyData,\n Loader = DefaultLoader,\n Pagination = DefaultPagination,\n CellHeader = DefaultCellHeader as any,\n CellOperations,\n i18n = (f: string) => f,\n ...ctx\n } = props;\n\n const _onClick = getOperationCallback(operations, onClick);\n\n const defaultColumn = React.useMemo(\n () => ({\n // Let's set up our default Filter UI\n Filter: ColumnFilter,\n ArrowSort\n }),\n [ColumnFilter, ArrowSort]\n ) as any;\n\n const [filterId, setFilterId] = React.useState(controlledFilterId);\n\n const tableInstance = useTable<Data>(\n {\n ...props,\n columns,\n data,\n ctx,\n defaultColumn,\n initialState: {\n ...(props.initialState || {}),\n filters: controlledFilters || [],\n pageIndex: controlledPageIndex || 0,\n pageSize: controlledPageSize || 10,\n sortBy: controlledSortBy || []\n } as any,\n manualPagination: props.manualPagination === undefined ? true : props.manualPagination,\n manualSortBy: props.manualSortBy === undefined ? true : props.manualPagination,\n manualFilters: props.manualFilters === undefined ? true : props.manualFilters,\n disableFilters,\n filterId,\n setFilterId\n } as any,\n ...hooks,\n useOperations({operations, CellOperations, onClick: _onClick, ctx, i18n})\n );\n\n const {\n setPageSize,\n state: {pageIndex, pageSize, sortBy, filters}\n } = tableInstance;\n\n React.useEffect(() => {\n onChange({\n pageIndex,\n pageSize,\n sortBy,\n filters,\n filterId\n });\n }, [onChange, pageIndex, pageSize, sortBy, filters, filterId]);\n\n // Render the UI for your table\n return (\n <div className={classnames(\"table-group table-responsive\", className)}>\n <table\n className={\"table table-striped table-hover\"}\n {...tableInstance.getTableProps()}\n /* style={{ marginBottom: disablePagination ? \"-1px\" : \"0px\" }} */\n >\n <thead>\n {tableInstance.headerGroups.map((headerGroup, i) => (\n <tr {...headerGroup.getHeaderGroupProps()} key={`tableInstance.headerGroups${i}`}>\n {headerGroup.headers.map((column) => (\n <th\n /* className='text-left py-2 align-top' */\n {...column.getHeaderProps()}\n key={`tableInstance.headers.column.${column.id}`}\n >\n <CellHeader column={column}/>\n </th>\n ))}\n </tr>\n ))}\n </thead>\n {!isLoading ? (\n <tbody {...tableInstance.getTableBodyProps()}>\n {tableInstance.page.map((row) => {\n tableInstance.prepareRow(row);\n return (\n <tr onClick={() => _onClick(row.original, \"row\")} {...row.getRowProps()}\n key={`tableInstance.page.${row.id}`}>\n {row.cells.map((cell, i) => {\n const {hidden, colspan} = cell.column as any;\n if (hidden) {\n return null;\n }\n return (\n <td\n colSpan={colspan}\n {...cell.getCellProps()}\n key={`tableInstance.page.cells.${cell.value || \"value\"}.${i}`}>\n {cell.render(\"Cell\")}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n ) : null}\n </table>\n {isLoading ? <Loader/> : null}\n {!data.length ? <EmptyData/> : null}\n {!isLoading && data.length && !disablePagination ? (\n <div className={\"overflow-hidden\"}>\n <Pagination\n {...tableInstance}\n className={\"text-sm\"}\n pageIndex={pageIndex}\n pageSize={pageSize}\n pageSizes={pageSizes}\n setPageSize={setPageSize}\n i18n={i18n}\n />\n </div>\n ) : null}\n {children}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { useState } from \"react\";\nimport { ActionSchema } from \"../../interfaces\";\nimport { iconClass } from \"../../utils/iconClass\";\nimport { Select } from \"../select/select.component\";\nimport { Table, TableProps } from \"../table/table.component\";\n\nexport type ActionsTableProps = Omit<TableProps<ActionSchema>, \"columns\"> & {\n onAddAction?: (actionName: string) => void;\n availableActions?: { label: string; value: string }[];\n};\n\nexport function ActionsTable({\n disableFilters = true,\n disablePagination = true,\n availableActions = [],\n onAddAction = noop,\n ...props\n}: ActionsTableProps) {\n const { i18n = (f: string) => f } = props;\n const [currentAction, setAction] = useState(\"\");\n\n const columns = React.useMemo(() => {\n return [\n {\n Header: i18n(\"Actions\"),\n accessor: \"title\",\n id: \"title\"\n }\n ];\n }, []);\n\n return (\n <Table {...props} disableFilters={disableFilters} disablePagination={disablePagination} columns={columns}>\n <div className={\"pagination-group\"}>\n <Select\n name={\"actions\"}\n value={currentAction}\n choices={[{ label: i18n(\"Select an action\"), value: \"\" }].concat(availableActions)}\n onChange={(name: string, action: string) => setAction(action)}\n />\n <div className={\"pl-3\"}>\n <button\n data-testid={\"submit\"}\n disabled={currentAction === \"\"}\n className={\"btn btn-success\"}\n onClick={() => currentAction && onAddAction(currentAction)}\n type={\"submit\"}\n >\n <i className={classnames(iconClass(undefined, \"plus\"), \"mr-1\")} /> {i18n(\"Add action\")}\n </button>\n </div>\n </div>\n </Table>\n );\n}\n","import React from \"react\";\n\nfunction formatError(error: any): any {\n if (typeof error === \"string\") {\n return error;\n }\n\n if (Array.isArray(error)) {\n return error.map(formatError);\n }\n\n if (Object.prototype.hasOwnProperty.call(error, \"errors\")) {\n return Object.keys(error.errors).map((key, index) => {\n const item = error.errors[key];\n return (\n <div key={index}>\n <strong>\n {item.name} ({item.path})\n </strong>{\" \"}\n - {item.message}\n </div>\n );\n });\n }\n\n // If this is a standard error.\n if (Object.prototype.hasOwnProperty.call(error, \"message\")) {\n return error.message;\n }\n\n // If this is a joy validation error.\n if (Object.prototype.hasOwnProperty.call(error, \"name\") && error.name === \"ValidationError\") {\n return error.details.map((item: any, index: number) => {\n return <div key={index}>{item.message}</div>;\n });\n }\n\n // If a conflict error occurs on a form, the form is returned.\n if (Object.prototype.hasOwnProperty.call(error, \"_id\") && Object.prototype.hasOwnProperty.call(error, \"display\")) {\n return \"Another user has saved this form already. Please reload and re-apply your changes.\";\n }\n\n return \"An error occurred. See console logs for details.\";\n}\n\nexport interface AlertProps {\n error?: any | any[];\n type?: string;\n}\n\nexport function Alert({ error, type = \"danger\" }: AlertProps) {\n if (!error || (Array.isArray(error) && !error.length)) {\n return null;\n }\n\n return (\n <div className={`alert alert-${type}`} role='alert'>\n {formatError(error)}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nexport interface CardProps {\n children: React.ReactNode;\n label: string;\n className?: string;\n}\n\nexport function Card({ children, label, className }: PropsWithChildren<CardProps>) {\n return (\n <div className={classnames(\"card\", className)}>\n <div className={\"card-header \"}>\n <h4 className={\"card-title\"}>{label}</h4>\n </div>\n <div className={\"card-body\"} role={\"article\"}>\n {children}\n </div>\n </div>\n );\n}\n","import {ExtendedComponentSchema, Form} from \"formiojs\";\nimport {get} from \"lodash\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport {useEffect, useRef} from \"react\";\nimport {callLast} from \"../../utils/callLast\";\nimport {FormOptions, FormSchema, Submission} from \"../../interfaces\";\n\nexport interface ChangedSubmission<T = any> extends Submission<T> {\n changed: 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: Form) => void;\n}\n\nfunction useDebounce(event: string, callback: any, events: Map<string, any>) {\n useEffect(() => {\n callback && events.set(event, callLast(callback, 100));\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 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 useDebounce(\"onChange\", funcs.onChange, events.current);\n\n return {events, emit, hasEvent};\n}\n\nexport function useForm<Data = any>(props: UseFormHookProps<Data>) {\n const {src, form, options = {}, submission, url, ...funcs} = props;\n const element = useRef<any>();\n const isLoaded = useRef<boolean>();\n const instance = useRef<Form>();\n const {emit, hasEvent} = useEvents(funcs);\n\n async function customValidation(submission: Submission, callback: (err: Error | null) => void) {\n if (hasEvent(\"onAsyncSubmit\")) {\n try {\n await emit(\"onAsyncSubmit\", submission, instance.current);\n } catch (err) {\n callback(err?.errors || err);\n }\n } else {\n callback(null);\n }\n }\n\n const createWebForm = (srcOrForm: any, options: any) => {\n options = Object.assign({}, options);\n srcOrForm = typeof srcOrForm === \"string\" ? srcOrForm : cloneDeep(srcOrForm);\n\n if (!instance.current) {\n isLoaded.current = false;\n options.hooks = {\n ...(options.hooks || {}),\n customValidation: options?.hooks?.customValidation || customValidation\n };\n\n instance.current = new Form(element.current, srcOrForm, options);\n\n instance.current.onAny((event: string, ...args: any[]): void => {\n if (!instance.current) {\n return;\n }\n\n if (event.startsWith(\"formio.\")) {\n const eventName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;\n\n if (eventName === \"onChange\") {\n if (isEqual(get(submission, \"data\"), args[0].data)) {\n return;\n }\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 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 AllComponents from \"formiojs/components\";\nimport { Components } from \"formiojs\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\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\";\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\";\nimport {FormSchema, Submission} from \"../../interfaces\";\nimport {RoleSchema} from \"../../interfaces/RoleSchema\";\nimport {getAccessPermissionForm, getSubmissionPermissionForm} from \"./formAccess.schema\";\n\nexport interface Choice {\n label: string;\n value: string;\n}\n\nexport interface Access {\n roles: string[];\n type: string;\n}\n\nexport type AccessRoles = Record<string, string[]>;\n\nexport type FormAccessSchema = {\n access: FormSchema;\n submissionAccess: FormSchema;\n};\n\nexport type SubmissionAccess = {\n access: Submission<AccessRoles>;\n submissionAccess: Submission<AccessRoles>;\n};\n\nfunction rolesToChoices(roles: RoleSchema[]): Choice[] {\n return Object.values(roles).map((role) => {\n return {\n label: role.title || \"\",\n value: role._id || \"\"\n };\n });\n}\n\nfunction accessToHash(keys: (string | undefined)[] | undefined, access: Access[] = []): AccessRoles {\n const hash = Object.values(access).reduce((o: any, role: any) => {\n o[role.type] = role.roles;\n return o;\n }, {});\n\n return ((keys || []).filter(Boolean) as any[]).reduce((data, key: string) => {\n return {\n ...data,\n [key]: hash[key] || []\n };\n }, {});\n}\n\nfunction hashToAccess(data: AccessRoles) {\n const accessRoles: any[] = [];\n\n Object.entries(data).forEach(([accessType, roles]) => {\n if (accessType === \"submit\") {\n return;\n }\n accessRoles.push({\n type: accessType,\n roles\n });\n });\n\n return accessRoles;\n}\n\nexport function getFormAccess(roles: RoleSchema[]): FormAccessSchema {\n const choices = rolesToChoices(roles);\n const access = getAccessPermissionForm({choices});\n const submissionAccess = getSubmissionPermissionForm({choices});\n\n return {\n access,\n submissionAccess\n };\n}\n\nexport function dataAccessToSubmissions(form: Partial<FormSchema>, formAccess: FormAccessSchema): SubmissionAccess {\n const getKeys = (components: ExtendedComponentSchema[]) => components.map(({key}) => key);\n\n return {\n access: {\n data: accessToHash(getKeys(formAccess.access.components), form.access)\n },\n submissionAccess: {\n data: accessToHash(getKeys(formAccess.submissionAccess.components), form.submissionAccess)\n }\n };\n}\n\nexport function submissionsToDataAccess(form: Partial<FormSchema>, submissions: SubmissionAccess): Partial<FormSchema> {\n return {\n ...cloneDeep(form),\n access: hashToAccess(submissions.access.data),\n submissionAccess: hashToAccess(submissions.submissionAccess.data)\n };\n}\n\nexport function shouldUpdate(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess) {\n return !isEqual(submission.data, (submissions as any)[type].data);\n}\n\nexport function updateSubmissions(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess, cb: Function = noop) {\n if (shouldUpdate(type, submission, submissions)) {\n submissions = {\n ...submissions,\n [type]: {data: submission.data}\n };\n cb(submissions);\n }\n\n return submissions;\n}\n","import PropTypes from \"prop-types\";\nimport React, { PropsWithChildren, ReactElement, useCallback, useEffect, useMemo, useState } from \"react\";\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\nimport { Card } from \"../card/card.component\";\nimport { Form } from \"../form/form.component\";\nimport {\n AccessRoles,\n dataAccessToSubmissions,\n FormAccessSchema,\n getFormAccess,\n shouldUpdate,\n SubmissionAccess,\n submissionsToDataAccess,\n updateSubmissions\n} from \"./formAccess.utils\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\n\nexport interface FormAccessProps {\n form: Partial<FormSchema>;\n roles: any;\n onSubmit?: Function;\n options?: FormOptions;\n}\n\nfunction useFormAccess({ form: formDefinition, roles, onSubmit, options }: FormAccessProps) {\n // eslint-disable-next-line no-undef\n const form = useMemo(() => getFormAccess(roles), [roles]);\n\n const [submissions, setSubmissions] = useState(() => dataAccessToSubmissions(formDefinition, form));\n\n const onChange = useCallback(\n (type: string, submission: Submission<AccessRoles>) => {\n updateSubmissions(type, submission, submissions, setSubmissions);\n },\n [submissions]\n );\n\n useEffect(() => {\n const input = dataAccessToSubmissions(formDefinition, form);\n if (formDefinition?._id) {\n if (shouldUpdate(\"access\", submissions.access, input) || shouldUpdate(\"submissionAccess\", submissions.submissionAccess, input)) {\n setSubmissions(input);\n }\n }\n }, [formDefinition?._id]);\n\n return {\n options,\n form,\n type: formDefinition.type,\n submissions,\n onChange,\n onSubmit: () => {\n onSubmit && onSubmit(submissionsToDataAccess(formDefinition, submissions));\n }\n };\n}\n\ninterface NamedFormAccessProps {\n name: \"access\" | \"submissionAccess\";\n form: FormAccessSchema;\n submissions: SubmissionAccess;\n options: any;\n onSubmit: any;\n\n onChange(name: \"access\" | \"submissionAccess\", submission: Submission<AccessRoles>): void;\n}\n\nfunction NamedFormAccess({ name, form, submissions, options, onChange, onSubmit, children }: PropsWithChildren<NamedFormAccessProps>) {\n const [isValid, setIsValid] = useState(true);\n\n return (\n <>\n <Form\n name={name}\n form={form[name]}\n submission={submissions[name]}\n onChange={({ data, isValid }: ChangedSubmission<AccessRoles>) => {\n isValid && onChange(name, { data });\n setIsValid(isValid);\n }}\n options={options}\n />\n\n <button disabled={!isValid} className={\"mt-5 btn btn-primary\"} onClick={onSubmit}>\n Save access\n </button>\n\n {children}\n\n <div className={\"alert alert-warning mt-5\"}>\n Elevated permissions allow users to access and modify other user's entities. Assign with caution.\n </div>\n </>\n );\n}\n\nexport function FormAccess(props: PropsWithChildren<FormAccessProps>): ReactElement {\n const { type, form, submissions, options, onChange, onSubmit } = useFormAccess(props);\n\n return (\n <div>\n {props.children}\n <div className={\"flex mb-5\"}>\n <Card label={\"Manage submission access\"} className={\"flex-1\"}>\n <NamedFormAccess\n name={\"submissionAccess\"}\n form={form}\n submissions={submissions}\n onChange={onChange}\n onSubmit={onSubmit}\n options={options}\n >\n {props.children}\n </NamedFormAccess>\n </Card>\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Submission Data Permissions\"}>\n <p>Submission Data Permissions allow you to control who can create, view, and modify form submission data.</p>\n\n <ul className={\"mt-5 pl-7 list-disc\"}>\n <li className={\"pb-2\"}>\n <strong>Own Permissions</strong> - These permissions apply if the user is the original creator of the submission data and is\n listed as the owner of the submission in submission.owner. This allows users to create and edit their own submission data\n without seeing other user's data.\n </li>\n <li>\n <strong>All Permissions</strong> - These permissions apply to all submission data regardless of who owns it.\n </li>\n </ul>\n </Card>\n </div>\n </div>\n <div className={\"flex mb-5\"}>\n <Card label={`Manage ${type} definition access`} className={\"flex-1\"}>\n <NamedFormAccess name={\"access\"} form={form} submissions={submissions} onChange={onChange} onSubmit={onSubmit} options={options}>\n {props.children}\n </NamedFormAccess>\n </Card>\n\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Form Definition Access\"}>\n <p>These permissions allow you to give access to a single form's JSON definition so they can render the form.</p>\n\n <p>Typically you will want to allow all of your roles to be able to Read the form definition.</p>\n\n <p>\n Each form also has an owner at <strong>form.owner</strong> which is the user who created the form. In some applications users\n are allowed to create their own forms. In those cases it is helpful to have Owner based permissions as well.\n </p>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n\nFormAccess.propTypes = {\n type: PropTypes.string.isRequired,\n form: PropTypes.object,\n roles: PropTypes.any,\n children: PropTypes.any,\n options: PropTypes.any,\n onSubmit: PropTypes.func\n};\n","import FormioUtils from \"formiojs/utils\";\nimport React, { PropsWithChildren, ReactElement, useMemo } from \"react\";\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 } = useMemo(() => {\n const submission = mapData(props.submission || {}, actionInfo.defaults!);\n const form = mapSettingsForm(actionInfo.settingsForm);\n\n return { form, submission: { data: submission } };\n }, [props.submission, actionInfo.settingsForm]);\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\";\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\";\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()}\n 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()}\n ref={redoTooltipRef}>\n <i className={iconClass(options.iconset, \"redo\")}/>\n </button>\n </div>\n\n <div>\n {onCopy && (\n <button className=\"btn btn-light\" onClick={() => onCopy()} ref={copyTooltipRef!}>\n <i className={iconClass(options.iconset, \"copy\")}/>\n </button>\n )}\n\n <button className={`btn btn-light btn-reset`} onClick={() => onReset && onReset()} ref={resetTooltipRef!}>\n <i className={iconClass(options.iconset, \"reset\")}/>\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nFormEditCTAs.propTypes = {\n saveText: PropTypes.string,\n options: PropTypes.object,\n hasUndo: PropTypes.bool,\n hasRedo: PropTypes.bool,\n disabled: PropTypes.bool,\n onCopy: PropTypes.func,\n onSubmit: PropTypes.func,\n onReset: PropTypes.func\n};\n","import Choices from \"choices.js\";\nimport uniq from \"lodash/uniq\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTagsProps<T = any> extends Omit<FormControlProps, \"description\" | \"prefix\" | \"suffix\"> {\n value?: T;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputTags({ name, value = [], label, onChange, required, description, prefix, suffix, ...props }: InputTagsProps) {\n const ref: any = useRef();\n\n useEffect(() => {\n const instance = new Choices(ref.current, {\n delimiter: \",\",\n editItems: true,\n removeItemButton: true\n });\n\n instance.setValue([].concat(value, []));\n\n instance.passedElement.element.addEventListener(\"addItem\", (event: any) => {\n onChange && onChange(name, uniq(value.concat(event.detail.value)));\n });\n\n instance.passedElement.element.addEventListener(\"removeItem\", (event: any) => {\n onChange && 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\";\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}\n\nexport function FormParameters({\n onChange,\n form,\n enableTags = true,\n typeChoices = [],\n displayChoices = defaultDisplayChoices,\n className = \"\"\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 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 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 {window.location.origin + \"/\" + form.path}\n </span>\n }\n required={true}\n value={form.path}\n style={{ textTransform: \"lowercase\", width: \"120px\" }}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <Select label={\"Display as\"} name={\"display\"} value={form.display} choices={displayChoices} onChange={onChange} />\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\";\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 { useEffect, useReducer } from \"react\";\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: 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\";\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\";\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 React, { useCallback, useEffect, useState } from \"react\";\nimport { FormOptions, FormSchema } from \"../../interfaces\";\nimport { getFormSettingsSchema } from \"./formSettings.schema\";\nimport { Form } from \"../form/form.component\";\nimport { FormSettingsSchema, formSettingsToSubmission, submissionToFormSettings } from \"./formSettings.utils\";\nimport isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\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 = useCallback(\n ({ data, isValid }: ChangedSubmission<FormSettingsSchema>) => {\n if (isValid) {\n setSubmission({ data });\n }\n setIsValid(isValid);\n },\n [submission]\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\";\nimport { Select } from \"../../select/select.component\";\n\nexport function SelectColumnFilter<D extends Record<string, unknown> = {}>({ column }: FilterProps<D>) {\n const { id, preFilteredRows, filterValue, setFilter } = column;\n const { choices: customChoices } = column as any;\n\n const choices =\n customChoices ||\n [...new Set(preFilteredRows.map((row) => row.values[id]))].filter((value) => value).map((value) => ({ label: value, value }));\n\n return (\n <Select\n key={`filter-${column.id}`}\n name={`filter-${column.id}`}\n size={\"sm\"}\n value={filterValue}\n choices={[{ value: \"\", label: \"All\" }].concat(choices)}\n onChange={(name, value) => {\n setFilter(value || undefined);\n }}\n />\n );\n}\n","//! moment.js\n//! version : 2.29.3\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.3';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","import classnames from \"classnames\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { CellProps } from \"react-table\";\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\";\nimport { FormSchema } from \"../../interfaces\";\nimport { DefaultColumnFilter } from \"../table/filters/defaultColumnFilter.component\";\nimport { SelectColumnFilter } from \"../table/filters/selectColumnFilter.component\";\nimport { Table, TableProps } from \"../table/table.component\";\nimport { FormsCell as DefaultFormCell } from \"./components/formCell.component\";\n\nexport type FormsTableProps = Omit<TableProps<FormSchema>, \"columns\"> & {\n icon?: string;\n tags?: { label: string; value: string }[];\n};\n\nexport function FormsTable({ Cell, ...props }: FormsTableProps) {\n const { i18n = (f: string) => f, tags } = props;\n const FormCell = Cell || (DefaultFormCell as any);\n const columns = React.useMemo(\n () => [\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 [Cell]\n );\n\n return <Table {...props} columns={columns} />;\n}\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { PropsWithChildren, useEffect, useRef, useState } from \"react\";\nimport noop from \"lodash\";\n\nexport function useModal() {\n const [show, setShowModal] = useState(false);\n\n return {\n show,\n setShowModal,\n openModal() {\n setShowModal(true);\n },\n closeModal() {\n setShowModal(false);\n }\n };\n}\n\nexport interface ModalProps extends Record<string, any> {\n show?: boolean;\n closeModal?: () => void;\n onClose?: () => void;\n footer?: any;\n title?: string;\n}\n\nexport function Modal({\n show,\n children,\n closeModal = noop as any,\n onClose = noop as any,\n title,\n footer: ModalFooter,\n style,\n className = \"\",\n ...props\n}: PropsWithChildren<ModalProps>) {\n const titleRef: any = useRef<HTMLDivElement>();\n const footerRef: any = useRef<HTMLDivElement>();\n const [maxHeight, setMaxHeight] = useState<string>();\n\n const onClickClose = () => {\n closeModal();\n onClose();\n };\n\n useEffect(() => {\n if (titleRef.current || footerRef.current) {\n const height = (titleRef?.current?.offsetHeight || 0) + (footerRef?.current?.offsetHeight || 0);\n\n setMaxHeight(`calc(85vh - ${height}px)`);\n } else {\n setMaxHeight(\"auto\");\n }\n }, [show]);\n\n if (!show) {\n return null;\n }\n\n return (\n <div role={\"dialog\"} className={`formio-dialog formio-dialog-theme-default ${className}`}>\n <div className='formio-dialog-overlay' onClick={onClickClose} />\n <div style={style} className={\"formio-dialog-content\"}>\n <div className={\"formio-dialog-wrapper\"}>\n {title ? (\n <div className={\"formio-dialog-title\"} ref={titleRef} data-testid={\"modalTitle\"}>\n {title}\n </div>\n ) : null}\n\n <div className='formio-dialog-body' style={{ maxHeight }} data-testid={\"modalBody\"}>\n {show && children}\n </div>\n\n {ModalFooter ? (\n <div className={\"formio-dialog-footer\"} ref={footerRef} data-testid={\"modalFooter\"}>\n <ModalFooter {...props} closeModal={closeModal} onClose={onClickClose} />\n </div>\n ) : null}\n </div>\n <button\n className='formio-dialog-close float-right btn btn-secondary btn-sm'\n aria-label='close'\n data-testid={\"closeModal\"}\n onClick={onClickClose}\n />\n </div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { PropsWithChildren, useState } from \"react\";\nimport { iconClass } from \"../../utils/iconClass\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Modal, ModalProps } from \"./modal.component\";\n\nfunction RemoveModalFooter({ value, valueToCompare, onSubmit, onClose, i18n = (f: string) => f }: ModalProps) {\n return (\n <div className={\"flex items-center justify-center bg-white p-2\"}>\n <button data-testid='customCloseModal' className={\"btn btn-outline-dark mx-2\"} onClick={onClose}>\n {i18n(\"Cancel\")}\n </button>\n <button\n disabled={valueToCompare !== value}\n data-testid='customSubmitModal'\n className={\"btn btn-danger mx-2\"}\n onClick={(e) => {\n if (valueToCompare === value) {\n onSubmit(e);\n }\n }}\n >\n <i className={classnames(iconClass(undefined, \"trash\"), \"mr-2\")} />\n {i18n(\"Remove\")}\n </button>\n </div>\n );\n}\n\nexport interface RemoveModalProps extends ModalProps {\n valueToCompare: string;\n itemType?: string;\n i18n?: (f: string) => string;\n maxWidth?: string;\n}\n\nexport function RemoveModal({ maxWidth = \"300px\", children, ...props }: PropsWithChildren<RemoveModalProps>) {\n const { i18n = noop } = props;\n const [value, setValue] = useState();\n\n return (\n <Modal\n {...props}\n className={classnames(props.className, \"formio-dialog-theme-remove\")}\n style={{ maxWidth }}\n title={`Drop ${props.itemType?.toLowerCase()}`}\n value={value}\n footer={RemoveModalFooter}\n >\n <div className={\"px-4 pt-3 pb-5\"}>\n <div className={\"pb-1\"}>\n {children}\n {i18n(\"To drop\")} <strong>{props.valueToCompare}</strong>, \n {i18n(\"type the\")} \n <strong>"{props.itemType?.toLowerCase()}"</strong> \n {i18n(\"name\")} <strong>"{props.valueToCompare}"</strong>.\n </div>\n <InputText name='remove' value={value} onChange={(name, value) => setValue(value)} />\n </div>\n </Modal>\n );\n}\n","import { Components, ComponentSchema } from \"formiojs\";\nimport ReactDOM from \"react-dom\";\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\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 <></>;\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 React from \"react\";\nimport { Components, ExtendedComponentSchema } from \"formiojs\";\nimport FormioUtils from \"formiojs/utils\";\nimport { Column } from \"react-table\";\nimport { FormSchema } from \"../../../interfaces\";\nimport { DefaultCell } from \"../components/defaultCell.component\";\nimport { SelectColumnFilter } from \"../filters/selectColumnFilter.component\";\n\nexport function mapFormToColumns(form: FormSchema): Column[] {\n const columns: Column[] = [];\n\n FormioUtils.eachComponent(form.components, (component: ExtendedComponentSchema) => {\n if (component.tableView && component.key) {\n const cmp: any = Components.create(component, {}, null, true);\n\n const column: Column = {\n Header: component.label || component.title || component.key,\n accessor: `data.${component.key}`,\n Cell: (props: any) => <DefaultCell {...props} render={(value: any) => cmp.asString(value)} />\n };\n\n if (component.type === \"select\" && component.dataSrc === \"values\") {\n column.Filter = SelectColumnFilter;\n (column as any).choices = component.data.values;\n }\n\n columns.push(column);\n }\n });\n\n return columns;\n}\n","import React from \"react\";\nimport {FormSchema, Submission} from \"../../interfaces\";\nimport {Table, TableProps} from \"../table/table.component\";\nimport {mapFormToColumns} from \"../table/utils/mapFormToColumns\";\n\nexport type SubmissionsTableProps = Omit<TableProps<Submission>, \"columns\"> & {\n form?: FormSchema;\n};\n\nexport function SubmissionsTable({form, ...props}: SubmissionsTableProps) {\n const columns: any[] | undefined = form && mapFormToColumns(form);\n\n return <Table {...props} columns={columns!}/>;\n}\n","import React from \"react\";\nimport { FilterProps } from \"react-table\";\n\nexport function SliderColumnFilter<D extends Record<string, unknown> = {}>({\n column: { filterValue, setFilter, preFilteredRows, id }\n}: FilterProps<D>) {\n const [min, max] = React.useMemo(() => {\n let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n preFilteredRows.forEach((row) => {\n min = Math.min(row.values[id], min);\n max = Math.max(row.values[id], max);\n });\n return [min, max];\n }, [id, preFilteredRows]);\n\n return (\n <>\n <input\n type='range'\n min={min}\n max={max}\n value={filterValue || min}\n onChange={(e) => {\n setFilter(parseInt(e.target.value, 10));\n }}\n />\n <button onClick={() => setFilter(undefined)}>Off</button>\n </>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport function ButtonTab({ icon, back, onClick, isActive, reverse, children, className, after }: PropsWithChildren<any>) {\n return (\n <div title={'button-wrapper'} className={classnames(\"tw-tabs__button-wrapper\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\", className)}>\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\"}>{children}</div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { PropsWithChildren } from \"react\";\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"],"names":["getFormUrl","formId","url","Formio","getProjectUrl","Utils","isMongoId","push","includes","replace","join","getActionUrl","actionId","filter","Boolean","getSubmissionUrl","submissionId","ACTION_INFO","resetActionInfo","createAction","requestActionInfo","receiveActionInfo","failActionInfo","getActionInfo","actionType","done","noop","dispatch","formio","actionInfo","settingsForm","action","error","createInitialState","data","isActive","actionInfoReducer","createReducer","toString","_","_2","reset","state","selectRoot","name","selectError","get","selectIsActive","oneOfIsActive","names","find","selectActionInfo","ACTION","clearActionError","resetAction","requestAction","receiveAction","failAction","sendAction","getFormio","id","getAction","loadAction","saveAction","result","deleteAction","actionReducer","on","selectAction","ACTIONS","resetActions","requestActions","receiveActions","failActions","getActions","actions","availableActions","Promise","all","loadActions","params","actionsReducer","selectActions","selectAvailableActions","AUTH","hasRole","auth","role","is","hasRoles","roles","concat","isAuthorized","authenticated","length","checkRoleFormAccess","form","requestUser","receiveUser","failUser","logoutUser","submissionAccessUser","formAccessUser","projectAccessUser","userRoles","userForms","init","user","submissionAccess","formAccess","projectAccess","forms","mapProjectRolesToUserRoles","projectRoles","Object","entries","reduce","_id","getUserRoles","keys","authReducer","default","window","localStorage","getItem","selectAuth","selectUser","selectRoles","selectIsAuthenticated","transformProjectAccess","access","type","getProjectAccess","projectUrl","project","makeStaticRequest","er","transformSubmissionAccess","values","formSubmissionAccess","transformFormAccess","getAccess","err","logout","setUser","initAuth","currentUser","selectForm","clearFormError","requestForm","receiveForm","failForm","resetForm","sendForm","shouldGet","components","Array","isArray","getForm","getState","loadForm","saveForm","deleteForm","lastUpdated","formReducer","payload","clean","obj","key","entry","undefined","mapRequestParams","query","pageSize","pageIndex","select","filters","sortBy","requestParams","limit","skip","forEach","value","RegExp","sort","desc","selectForms","selectFormsParameters","parameters","resetForms","requestForms","receiveForms","failForms","getForms","loadForms","refreshForms","pageCount","formsReducer","total","serverCount","Math","ceil","totalLength","clearSubmissionError","requestSubmission","sendSubmission","receiveSubmission","failSubmission","resetSubmission","getSubmission","loadSubmission","submission","saveSubmission","deleteSubmission","submissionReducer","selectSubmission","selectSubmissions","selectSubmissionsParameters","resetSubmissions","requestSubmissions","receiveSubmissions","failSubmissions","getSubmissions","submissions","loadSubmissions","refreshSubmissions","submissionsReducer","defaultFormioReducer","combine","hasOwn","hasOwnProperty","classNames","classes","i","arguments","arg","argType","inner","apply","call","module","exports","iconClass","iconset","spinning","Templates","current","defaultIconset","getEventValue","event","target","multiple","selectedOptions","from","option","checked","FormControl","children","required","prefix","suffix","description","label","className","classnames","propTypes","PropTypes","string","isRequired","any","bool","Select","size","onChange","choices","placeholder","layout","props","ref","useRef","useEffect","instance","Choices","removeItemButton","placeholderValue","destroy","map","String","func","array","LEFT_PAGE","RIGHT_PAGE","range","to","step","getPageNumbers","currentPage","pageNeighbours","totalPages","totalNumbers","totalBlocks","calculatedStartPage","max","calculatedEndPage","min","startPage","endPage","pages","hasLeftSpill","hasRightSpill","spillOffset","extraPages","PaginationButton","component","Component","disabled","active","otherProps","Pagination","pageSizes","gotoPage","canPreviousPage","previousPage","nextPage","canNextPage","pageOptions","setPageSize","i18n","f","pageNumbers","page","DefaultArrowSort","column","isSorted","isSortedDesc","DefaultCellHeader","getSortByToggleProps","render","canFilter","callLast","fn","time","last","args","clearTimeout","setTimeout","InputText","localValue","setValue","useState","change","useMemo","DefaultColumnFilter","filterId","setFilterId","filterValue","setFilter","useCallback","stopPropagationWrapper","stopPropagation","DefaultOperationButton","buttonSize","buttonType","buttonOutline","onClick","icon","title","DefaultCellOperations","operations","row","ctx","original","permissionsResolver","OperationButton","operation","useOperations","CellOperations","hooks","visibleColumns","columns","groupByBoundary","Header","Cell","getOperationCallback","alias","DefaultLoader","DefaultEmptyData","useFilters","useGroupBy","useSortBy","usePagination","Table","controlledFilters","controlledFilterId","controlledPageSize","controlledPageIndex","controlledSortBy","isLoading","disableFilters","disablePagination","ArrowSort","ColumnFilter","EmptyData","Loader","DefaultPagination","CellHeader","_onClick","defaultColumn","React","Filter","tableInstance","useTable","initialState","manualPagination","manualSortBy","manualFilters","getTableProps","headerGroups","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getTableBodyProps","prepareRow","getRowProps","cells","cell","hidden","colspan","getCellProps","ActionsTable","onAddAction","currentAction","setAction","accessor","formatError","prototype","errors","index","item","path","message","details","Alert","Card","useDebounce","callback","events","set","useEvents","funcs","Map","hasEvent","emit","has","useForm","src","options","element","isLoaded","customValidation","createWebForm","srcOrForm","assign","cloneDeep","Form","onAny","startsWith","eventName","charAt","toUpperCase","slice","isEqual","ready","then","onFormReady","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","searchEnabled","selectThreshold","validate","custom","customPrivate","toDescription","hr","getSubmissionPermissionForm","getAccessPermissionForm","rolesToChoices","accessToHash","hash","o","hashToAccess","accessRoles","accessType","getFormAccess","dataAccessToSubmissions","getKeys","submissionsToDataAccess","shouldUpdate","updateSubmissions","cb","useFormAccess","formDefinition","setSubmissions","input","NamedFormAccess","isValid","setIsValid","FormAccess","mapData","defaults","mapSettingsForm","FormioUtils","eachComponent","resourceExclude","basePath","valueProperty","persistent","FormAction","EVENTS","EVENTS_CHANGE","createBuilder","el","display","builder","FormioFormBuilder","handleEvent","console","FormBuilder","constructor","elRef","builderRef","componentDidMount","create","onAddComponent","onUpdateComponent","onRemoveComponent","onSaveComponent","onCancelComponent","onMoveComponent","onEditComponent","onEditJson","onCopyComponent","onPasteComponent","firstChild","whenComponentsChange","bind","componentWillUnmount","componentWillReceiveProps","nextProps","setState","e","defaultProps","onReady","onDestroy","useTooltip","Tooltip","FormEditCTAs","saveText","onCopy","hasUndo","hasRedo","onUndo","onRedo","onReset","t","copyTooltipRef","trigger","placement","undoTooltipRef","redoTooltipRef","resetTooltipRef","InputTags","delimiter","editItems","passedElement","addEventListener","uniq","detail","v","defaultDisplayChoices","FormParameters","enableTags","typeChoices","displayChoices","hasTypeChoices","location","origin","textTransform","width","tags","hasChanged","past","future","reducer","update","newValue","camelCase","toLowerCase","previous","newPast","next","newFuture","useFormEdit","dispatchFormAction","useReducer","modified","formChange","newForm","redo","undo","setChange","FormEdit","getFormSettingsSchema","mask","inputType","inputFormat","spellcheck","attributes","delimeter","storeas","maxTags","addAnother","disableAddingRemovingRows","keyBeforeValue","valueComponent","hideLabel","formSettingsToSubmission","properties","submissionToFormSettings","useFormSettings","setSubmission","FormSettings","SelectColumnFilter","preFilteredRows","customChoices","Set","global","factory","this","hookCallback","setHookCallback","isObject","hasOwnProp","a","b","isObjectEmpty","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","arr","res","arrLen","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","some","fun","len","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","momentProperties","updateInProgress","copyConfig","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","Error","stack","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","_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","makeFormatFunction","formatMoment","invalidDate","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","s","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","isLeapYear","year","absFloor","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","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","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","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","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","useModal","show","setShowModal","openModal","closeModal","Modal","onClose","footer","ModalFooter","style","titleRef","footerRef","maxHeight","setMaxHeight","onClickClose","height","offsetHeight","RemoveModalFooter","valueToCompare","RemoveModal","maxWidth","itemType","ReactComponent","reactInstance","shouldSetValue","dataForSetting","updateValue","getValue","changed","dataValue","updateOnChange","$reactNode","refs","attach","loadRefs","attachReact","detach","detachReact","renderReact","ReactDOM","unmountComponentAtNode","checkValidity","dirty","rowData","valid","DefaultCell","rendered","__html","mapFormToColumns","tableView","cmp","asString","SubmissionsTable","SliderColumnFilter","ButtonTab","back","reverse","after","Tabs","items","HeaderChildren","AddButton","Button","additionalProps","exact","color"],"mappings":"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"}
|