@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.
Files changed (83) hide show
  1. package/dist/components/actions-table/actionsTable.component.d.ts +0 -1
  2. package/dist/components/actions-table/actionsTable.stories.d.ts +0 -1
  3. package/dist/components/alert/alert.component.d.ts +1 -2
  4. package/dist/components/alert/alert.stories.d.ts +0 -1
  5. package/dist/components/card/card.stories.d.ts +0 -1
  6. package/dist/components/form/form.component.d.ts +1 -2
  7. package/dist/components/form/form.component.spec.d.ts +1 -0
  8. package/dist/components/form/form.stories.d.ts +3745 -172
  9. package/dist/components/form/useForm.hook.d.ts +1 -2
  10. package/dist/components/form-access/formAccess.stories.d.ts +1 -2
  11. package/dist/components/form-action/formAction.stories.d.ts +0 -1
  12. package/dist/components/form-builder/formBuilder.stories.d.ts +518 -153
  13. package/dist/components/form-edit/formEdit.component.d.ts +0 -1
  14. package/dist/components/form-edit/formEdit.stories.d.ts +18 -19
  15. package/dist/components/form-settings/formSettings.component.d.ts +0 -1
  16. package/dist/components/form-settings/formSettings.stories.d.ts +1 -2
  17. package/dist/components/forms-table/components/formCell.component.d.ts +0 -1
  18. package/dist/components/forms-table/formsTable.component.d.ts +0 -1
  19. package/dist/components/forms-table/formsTable.stories.d.ts +0 -1
  20. package/dist/components/input-tags/inputTags.component.d.ts +0 -1
  21. package/dist/components/input-tags/inputTags.stories.d.ts +2 -3
  22. package/dist/components/input-text/inputText.component.d.ts +0 -1
  23. package/dist/components/input-text/inputText.stories.d.ts +0 -1
  24. package/dist/components/loader/loader.component.d.ts +1 -1
  25. package/dist/components/loader/loader.stories.d.ts +0 -1
  26. package/dist/components/modal/modal.component.d.ts +1 -1
  27. package/dist/components/modal/modal.stories.d.ts +0 -1
  28. package/dist/components/pagination/pagination.component.d.ts +0 -1
  29. package/dist/components/pagination/pagination.stories.d.ts +0 -1
  30. package/dist/components/react-component/reactComponent.component.d.ts +3 -3
  31. package/dist/components/select/select.stories.d.ts +2 -3
  32. package/dist/components/submissions-table/submissionsTable.component.d.ts +0 -1
  33. package/dist/components/submissions-table/submissionsTable.stories.d.ts +13 -14
  34. package/dist/components/table/components/defaultArrowSort.component.d.ts +0 -1
  35. package/dist/components/table/components/defaultCell.component.d.ts +0 -1
  36. package/dist/components/table/components/defaultCellHeader.component.d.ts +0 -1
  37. package/dist/components/table/components/defaultCellOperations.component.d.ts +0 -1
  38. package/dist/components/table/components/defaultOperationButton.component.d.ts +0 -1
  39. package/dist/components/table/filters/defaultColumnFilter.component.d.ts +0 -1
  40. package/dist/components/table/filters/selectColumnFilter.component.d.ts +0 -1
  41. package/dist/components/table/filters/sliderColumnFilter.component.d.ts +0 -1
  42. package/dist/components/table/table.stories.d.ts +4 -5
  43. package/dist/components/tabs/tabs.component.stories.d.ts +0 -1
  44. package/dist/hooks/useTooltip.d.ts +1 -1
  45. package/dist/index.js +297 -276
  46. package/dist/index.js.map +1 -1
  47. package/dist/index.modern.js +294 -272
  48. package/dist/index.modern.js.map +1 -1
  49. package/dist/stores/auth/auth.selectors.d.ts +1 -1
  50. package/jest.config.js +1 -1
  51. package/package.json +5 -5
  52. package/src/components/__fixtures__/form.fixture.json +23 -0
  53. package/src/components/form/form.component.spec.tsx +56 -0
  54. package/src/components/form/form.component.tsx +2 -2
  55. package/src/components/form/form.stories.tsx +141 -34
  56. package/src/components/form/useForm.hook.ts +39 -38
  57. package/src/components/form-access/formAccess.component.tsx +1 -1
  58. package/src/components/form-access/formAccess.utils.ts +13 -13
  59. package/src/components/form-action/formAction.component.tsx +1 -1
  60. package/src/components/form-builder/formBuilder.component.tsx +1 -1
  61. package/src/components/form-edit/formCtas.component.tsx +32 -30
  62. package/src/components/form-edit/formEdit.component.tsx +1 -1
  63. package/src/components/form-settings/formSettings.utils.ts +3 -3
  64. package/src/components/input-tags/inputTags.component.tsx +3 -3
  65. package/src/components/input-text/inputText.component.tsx +2 -2
  66. package/src/components/modal/modal.component.tsx +2 -2
  67. package/src/components/react-component/reactComponent.component.tsx +9 -6
  68. package/src/components/select/select.component.tsx +2 -2
  69. package/src/components/submissions-table/submissionsTable.component.tsx +6 -6
  70. package/src/components/table/table.component.tsx +58 -44
  71. package/src/components/table/utils/mapFormToColumns.tsx +1 -1
  72. package/src/components/tabs/tabs.component.tsx +1 -1
  73. package/src/hooks/useTooltip.ts +1 -1
  74. package/src/stores/action-info/action-info.selectors.ts +1 -1
  75. package/src/stores/auth/auth.utils.tsx +2 -2
  76. package/src/stores/auth/getAccess.action.ts +2 -2
  77. package/src/stores/auth/logout.action.spec.ts +1 -0
  78. package/src/stores/form/form.selectors.ts +1 -1
  79. package/src/stores/root/root.selectors.ts +2 -2
  80. package/tsconfig.json +10 -27
  81. package/tsconfig.node.json +8 -0
  82. package/craco.config.js +0 -11
  83. package/tsconfig.test.json +0 -6
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.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\")}&nbsp;</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>,&nbsp;\n {i18n(\"type the\")}&nbsp;\n <strong>&quot;{props.itemType?.toLowerCase()}&quot;</strong>&nbsp;\n {i18n(\"name\")} <strong>&quot;{props.valueToCompare}&quot;</strong>.\n </div>\n <InputText name='remove' value={value} onChange={(name, value) => setValue(value)} />\n </div>\n </Modal>\n );\n}\n","import { Components, ComponentSchema } from \"formiojs\";\nimport ReactDOM from \"react-dom\";\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","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","Promise","all","loadActions","params","availableActions","actions","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","window","localStorage","getItem","selectAuth","selectUser","selectRoles","selectIsAuthenticated","transformProjectAccess","access","type","getProjectAccess","projectUrl","makeStaticRequest","project","transformSubmissionAccess","values","formSubmissionAccess","transformFormAccess","getAccess","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","loadSubmissions","submissions","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","clearTimeout","setTimeout","InputText","useState","localValue","setValue","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","customValidation","callback","events","has","err","src","options","funcs","element","isLoaded","Map","createWebForm","srcOrForm","assign","cloneDeep","Form","onAny","args","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","createBuilder","el","display","FormioFormBuilder","builder","handleEvent","EVENTS_CHANGE","EVENTS","er","console","FormBuilder","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","useReducer","dispatchFormAction","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","names","j","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","_abbr","require","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","exec","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","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","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","ModalFooter","footer","titleRef","footerRef","maxHeight","setMaxHeight","onClickClose","height","offsetHeight","RemoveModalFooter","valueToCompare","RemoveModal","maxWidth","itemType","ReactComponent","getValue","changed","dataValue","updateOnChange","attach","loadRefs","refs","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.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\")}&nbsp;</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>,&nbsp;\n {i18n(\"type the\")}&nbsp;\n <strong>&quot;{props.itemType?.toLowerCase()}&quot;</strong>&nbsp;\n {i18n(\"name\")} <strong>&quot;{props.valueToCompare}&quot;</strong>.\n </div>\n <InputText name='remove' value={value} onChange={(name, value) => setValue(value)} />\n </div>\n </Modal>\n );\n}\n","import { Components, ComponentSchema } from \"formiojs\";\nimport ReactDOM from \"react-dom\";\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","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","Promise","all","loadActions","params","availableActions","actions","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","window","localStorage","getItem","selectAuth","selectUser","selectRoles","selectIsAuthenticated","transformProjectAccess","access","type","getProjectAccess","projectUrl","makeStaticRequest","project","transformSubmissionAccess","values","formSubmissionAccess","transformFormAccess","getAccess","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","loadSubmissions","submissions","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","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","clearTimeout","setTimeout","InputText","useState","localValue","setValue","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","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","customValidation","err","src","options","element","isLoaded","createWebForm","srcOrForm","assign","cloneDeep","Form","onAny","args","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","createBuilder","el","display","FormioFormBuilder","builder","handleEvent","EVENTS_CHANGE","EVENTS","er","console","FormBuilder","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","useReducer","dispatchFormAction","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","names","j","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","_abbr","require","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","exec","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","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","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","ModalFooter","footer","style","titleRef","footerRef","maxHeight","setMaxHeight","onClickClose","height","offsetHeight","RemoveModalFooter","valueToCompare","RemoveModal","maxWidth","itemType","ReactComponent","reactInstance","shouldSetValue","dataForSetting","updateValue","getValue","changed","dataValue","updateOnChange","attach","loadRefs","refs","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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"}