@tsed/react-formio 1.10.14 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.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(\n formId: string,\n submissionId?: string\n): string {\n return [getFormUrl(formId), \"submission\", submissionId]\n .filter(Boolean)\n .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,\n actionType: string,\n 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 =\n 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 {\n failActionInfo,\n receiveActionInfo,\n requestActionInfo,\n resetActionInfo\n} 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>>(\n name: string\n): (state: Record<string, any>) => State;\nexport function selectRoot<State = Record<string, any>>(\n name: string,\n state: Record<string, any>\n): State;\nexport function selectRoot<State = Record<string, any>>(\n name: string,\n state?: Record<string, any>\n): any {\n if (state) {\n return state[name];\n }\n\n return (state: Record<string, any>) => selectRoot(name, state);\n}\n\nexport const selectError = (\n name: string,\n state: Record<string, any>\n): null | Error => get(selectRoot(name, state), \"error\");\n\nexport const selectIsActive = (\n name: string,\n state: Record<string, any>\n): boolean => get(selectRoot(name, state), \"isActive\");\n\nexport function oneOfIsActive(...names: string[]) {\n return (state: any) => {\n return !!names.find((name) => {\n return get(\n state,\n `${name}.isActive`,\n get(state, `${name}.current.isActive`)\n );\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 = (\n state: Record<string, any>\n): Partial<ActionSchema> =>\n 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,\n actionId: string,\n 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 = (formId: string, action: any, done = noop) => async (\n dispatch: any\n) => {\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 {\n clearActionError,\n failAction,\n receiveAction,\n requestAction,\n resetAction,\n sendAction\n} 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 =>\n 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 = (id: string, done = noop) => async (\n dispatch: any\n) => {\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([\n formio.loadActions({ params: {} }),\n formio.availableActions()\n ]);\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 {\n failActions,\n receiveActions,\n requestActions,\n resetActions\n} 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>) =>\n selectRoot<ActionsState>(ACTIONS, state).data;\n\nexport const selectAvailableActions = (state: Record<string, any>) =>\n 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(\n auth: AuthState,\n form?: Partial<FormSchema>,\n roles?: string[]\n) {\n if (roles && roles.length) {\n if (isAuthorized(auth, roles)) {\n return true;\n }\n\n return !!(\n roles.includes(\"owner\") && get(form, \"owner\") === get(auth, \"user._id\")\n );\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(\n projectRoles: Record<string, any>,\n userRoles: any[]\n) {\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> =>\n get(selectAuth(state), \"user\");\n\nexport const selectRoles = (state: any): Record<string, RoleSchema> =>\n get(selectAuth(state), \"roles\");\n\nexport const selectIsAuthenticated = (state: any): boolean =>\n 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 {\n formAccessUser,\n submissionAccessUser,\n userForms,\n userRoles\n} 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 = (done = noop) => async (dispatch: any) => {\n dispatch(requestUser(AUTH));\n\n try {\n const [user] = await Promise.all([\n Formio.currentUser(),\n getAccess(dispatch),\n getProjectAccess(dispatch)\n ]);\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> =>\n 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 (\n form &&\n form.components &&\n Array.isArray(form.components) &&\n form.components.length &&\n form._id === id\n );\n}\n\nexport const getForm = (name: string, id = \"\", done = noop) => async (\n dispatch: any,\n getState: any\n) => {\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,\n form: Partial<FormSchema>,\n 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 = (name: string, id: string, done = noop) => async (\n dispatch: any\n) => {\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 {\n clearFormError,\n failForm,\n receiveForm,\n requestForm,\n resetForm,\n sendForm\n} 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({\n query,\n pageSize = 10,\n pageIndex = 0,\n select,\n filters,\n sortBy\n}: 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(\n filter.value,\n \"gi\"\n ).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) =>\n selectRoot<FormsState>(name, state).data;\n\nexport const selectFormsParameters = (name: string, state: any) =>\n 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,\n parameters: Partial<RequestParamsOptions>,\n 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(\n selectFormsParameters(name, getState())\n );\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 {\n failForms,\n receiveForms,\n requestForms,\n resetForms\n} 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 = ({\n pageIndex = 0,\n pageSize = 10,\n query = {},\n select = \"\",\n sortBy = []\n}: 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,\n formId: string,\n id: string,\n 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,\n formId: string,\n data: Submission,\n 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,\n formId: string,\n id: string,\n 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()]: (\n state: any,\n { formId, submission, id, url }: any\n ) => ({\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 = (\n name: string,\n state: any\n): 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) =>\n selectRoot<SubmissionsState>(name, state).data;\n\nexport const selectSubmissionsParameters = (name: string, state: any) =>\n 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,\n formId: string,\n parameters: any = {},\n 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(\n selectSubmissionsParameters(name, getState())\n );\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 = (\n name: string,\n formId: string,\n done = noop\n) => {\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 {\n failSubmissions,\n receiveSubmissions,\n requestSubmissions,\n resetSubmissions\n} 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({\n pageIndex = 0,\n pageSize = 10,\n query = {},\n select = \"\",\n sortBy = []\n}: 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>(\n {},\n createInitialState\n)\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(\n iconset: string | undefined,\n name: string,\n spinning?: boolean\n): string {\n return Templates.current.iconClass(\n iconset || Templates.current.defaultIconset,\n name,\n spinning\n );\n}\n","export function getEventValue(event: any) {\n const { target } = event;\n\n if (event.target.multiple && event.target.selectedOptions) {\n return Array.from(\n event.target.selectedOptions,\n (option: any) => option.value\n );\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\n id={`form-group-${name || \"\"}`}\n className={classnames(\"form-group\", className)}\n >\n {label && (\n <label\n htmlFor={name}\n className={`col-form-label ${required ? \" field-required\" : \"\"}`}\n >\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 {\n FormControl,\n FormControlProps\n} 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 : ([{ label: placeholder, value: \"\" }, ...choices] as any[]);\n\n return (\n <FormControl\n name={name}\n label={label}\n required={required}\n description={description}\n prefix={prefix}\n suffix={suffix}\n shadow={false}\n >\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({\n currentPage,\n pageNeighbours = 1,\n totalPages\n}: 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(\n totalPages - 1,\n currentPage + pageNeighbours\n );\n const startPage = calculatedStartPage === 3 ? 2 : calculatedStartPage;\n const endPage =\n 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 {\n getPageNumbers,\n LEFT_PAGE,\n RIGHT_PAGE\n} 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 {\n component: Component = \"button\",\n children,\n disabled,\n active,\n ...otherProps\n } = props;\n\n return (\n <Component\n {...otherProps}\n disabled={disabled}\n className={classnames(\n \"page-link\",\n disabled ? \"disabled\" : \"\",\n active ? \"\" : \"\",\n props.className\n )}\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,\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\n aria-label='Page navigation'\n className={classnames(\"pagination-group -mb-3\", className)}\n >\n <ul className='pagination mb-3 mr-3'>\n <li className={classnames(\"page-item\", !canPreviousPage && \"disabled\")}>\n <PaginationButton\n tabIndex={-1}\n disabled={!canPreviousPage}\n onClick={() => previousPage()}\n >\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\n className={classnames(\"page-item\", active && \"active\")}\n key={page}\n >\n <PaginationButton\n tabIndex={pageIndex}\n active={active}\n onClick={() => gotoPage(page - 1)}\n >\n {page}\n </PaginationButton>\n </li>\n );\n })}\n\n <li className={classnames(\"page-item\", !canNextPage && \"disabled\")}>\n <PaginationButton\n tabIndex={pageNumbers.length}\n disabled={!canNextPage}\n onClick={() => nextPage()}\n >\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 ? (\n <i\n className={iconClass(\n undefined,\n isSortedDesc ? \"sort-up\" : \"sort-down\"\n )}\n />\n ) : (\n \"\"\n )}\n </span>\n );\n}\n","import React from \"react\";\nimport { HeaderGroup } from \"react-table\";\n\nexport interface DefaultCellHeaderProps<Data extends object = any>\n extends Record<string, unknown> {\n column: HeaderGroup<Data>;\n}\n\nexport function DefaultCellHeader<Data extends Record<string, unknown> = {}>({\n column\n}: DefaultCellHeaderProps) {\n return (\n <div className={\"table-cell-header\"}>\n <div\n className='table-cell-header__label'\n {...column.getSortByToggleProps()}\n >\n <span>{column.render(\"Header\")}</span>\n\n {column.render(\"ArrowSort\")}\n </div>\n {column.canFilter ? (\n <div className='table-cell-header__filter'>\n {column.render(\"Filter\")}\n </div>\n ) : 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 {\n FormControl,\n FormControlProps\n} 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 ...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 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(\n className,\n [\"btn\", buttonOutline && \"outline\", buttonType]\n .filter(Boolean)\n .join(\"-\"),\n `btn-${buttonSize}`\n )}\n onClick={stopPropagationWrapper(() => onClick(action))}\n >\n {icon ? (\n <>\n <i className={iconClass(undefined, icon)} /> {title && \" \"}\n </>\n ) : null}\n {title && (\n <span className={icon && title ? \"ml-1\" : \"\"}>{i18n(title)}</span>\n )}\n </button>\n );\n}\n","import React from \"react\";\nimport { DefaultOperationButton } from \"./defaultOperationButton.component\";\n\nexport function DefaultCellOperations({\n operations,\n row,\n onClick,\n ctx,\n i18n\n}: any) {\n const data = row.original;\n\n return (\n <div className='btn-group'>\n {operations\n .filter(\n ({ permissionsResolver }: any) =>\n !permissionsResolver || permissionsResolver(data, ctx)\n )\n .map(\n ({ 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 )}\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: () => (\n <div className={\"text-center\"}>{i18n(\"Operations\")}</div>\n ),\n Cell: (props: any) => (\n <CellOperations\n {...props}\n operations={operations}\n onClick={onClick}\n ctx={ctx}\n i18n={i18n}\n />\n )\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 {\n DefaultCellHeader,\n DefaultCellHeaderProps\n} from \"./components/defaultCellHeader.component\";\nimport { DefaultColumnFilter } from \"./filters/defaultColumnFilter.component\";\nimport { useOperations } from \"./utils/useOperations.hook\";\n\nexport interface TableProps<Data extends object = any>\n extends TableOptions<Data>,\n 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(\n operations: Operation[],\n onClick: OnClickOperation\n) {\n return (data: any, action: string) => {\n const operation = operations.find(\n (operation) => operation.action === action || operation.alias === action\n );\n if (operation) {\n onClick(data, operation);\n }\n };\n}\n\nfunction DefaultLoader() {\n return (\n <div className={\"text-center p-2 pb-4 font-bold\"}>Loading in progress</div>\n );\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>(\n props: PropsWithChildren<TableProps<Data>>\n) {\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:\n props.manualPagination === undefined ? true : props.manualPagination,\n manualSortBy:\n props.manualSortBy === undefined ? true : props.manualPagination,\n manualFilters:\n 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\n key={`tableInstance.headerGroups${i}`}\n {...headerGroup.getHeaderGroupProps()}\n >\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\n key={`tableInstance.page.${row.id}`}\n onClick={() => _onClick(row.original, \"row\")}\n {...row.getRowProps()}\n >\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 key={`tableInstance.page.cells.${\n cell.value || \"value\"\n }.${i}`}\n colSpan={colspan}\n {...cell.getCellProps()}\n >\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\n {...props}\n disableFilters={disableFilters}\n disablePagination={disablePagination}\n columns={columns}\n >\n <div className={\"pagination-group\"}>\n <Select\n name={\"actions\"}\n value={currentAction}\n choices={[{ label: i18n(\"Select an action\"), value: \"\" }].concat(\n availableActions\n )}\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\")} />{\" \"}\n {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 (\n Object.prototype.hasOwnProperty.call(error, \"name\") &&\n error.name === \"ValidationError\"\n ) {\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 (\n Object.prototype.hasOwnProperty.call(error, \"_id\") &&\n Object.prototype.hasOwnProperty.call(error, \"display\")\n ) {\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 label: string;\n className?: string;\n}\n\nexport function Card({\n children,\n label,\n className\n}: 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: {\n type: string;\n event: string;\n component: ExtendedComponentSchema;\n data: any;\n }) => void;\n onComponentChange?: (component: ExtendedComponentSchema) => void;\n onSubmit?: (submission: Submission<Data>) => 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 const createWebForm = (srcOrForm: any, options: any) => {\n options = Object.assign({}, options);\n srcOrForm =\n typeof srcOrForm === \"string\" ? srcOrForm : cloneDeep(srcOrForm);\n\n if (!instance.current) {\n isLoaded.current = false;\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(\n 8\n )}`;\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 events.current.get(funcName)(...args);\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.onSubmitDone &&\n 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 (\n <div\n data-testid={\"formioContainer\" + (props.name || \"\")}\n ref={element}\n className={props.className}\n />\n );\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 }),\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 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({\n label,\n key,\n description,\n choices,\n data\n}: 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 (\n '<span class=\"text-sm\">' +\n description +\n \"</span> \" +\n (hr ? '<hr class=\"mt-6 mb-5 border-gray-200 mx-20\"/>' : \"\")\n );\n}\n\nexport function getSubmissionPermissionForm({ choices }: any): FormSchema {\n return {\n description:\n \"<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:\n \"<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:\n '<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:\n '<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:\n '<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 {\n getAccessPermissionForm,\n getSubmissionPermissionForm\n} 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(\n form: Partial<FormSchema>,\n formAccess: FormAccessSchema\n): SubmissionAccess {\n const getKeys = (components: ExtendedComponentSchema[]) =>\n components.map(({ key }) => key);\n\n return {\n access: {\n data: accessToHash(getKeys(formAccess.access.components), form.access)\n },\n submissionAccess: {\n data: accessToHash(\n getKeys(formAccess.submissionAccess.components),\n form.submissionAccess\n )\n }\n };\n}\n\nexport function submissionsToDataAccess(\n form: Partial<FormSchema>,\n submissions: SubmissionAccess\n): 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(\n type: string,\n submission: Submission<AccessRoles>,\n submissions: SubmissionAccess\n) {\n return !isEqual(submission.data, submissions[type].data);\n}\n\nexport function updateSubmissions(\n type: string,\n submission: Submission<AccessRoles>,\n submissions: SubmissionAccess,\n cb: Function = noop\n) {\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, {\n PropsWithChildren,\n ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useState\n} 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({\n form: formDefinition,\n roles,\n onSubmit,\n options\n}: FormAccessProps) {\n // eslint-disable-next-line no-undef\n const form = useMemo(() => getFormAccess(roles), [roles]);\n\n const [submissions, setSubmissions] = useState(() =>\n dataAccessToSubmissions(formDefinition, form)\n );\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 (\n shouldUpdate(\"access\", submissions.access, input) ||\n shouldUpdate(\"submissionAccess\", submissions.submissionAccess, input)\n ) {\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(\n name: \"access\" | \"submissionAccess\",\n submission: Submission<AccessRoles>\n ): void;\n}\n\nfunction NamedFormAccess({\n name,\n form,\n submissions,\n options,\n onChange,\n onSubmit,\n children\n}: 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\n disabled={!isValid}\n className={\"mt-5 btn btn-primary\"}\n onClick={onSubmit}\n >\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\n entities. Assign with caution.\n </div>\n </>\n );\n}\n\nexport function FormAccess(\n props: PropsWithChildren<FormAccessProps>\n): ReactElement {\n const {\n type,\n form,\n submissions,\n options,\n onChange,\n onSubmit\n } = 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>\n Submission Data Permissions allow you to control who can create,\n view, and modify form submission data.\n </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\n the user is the original creator of the submission data and is\n listed as the owner of the submission in submission.owner. This\n 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\n 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\n name={\"access\"}\n form={form}\n submissions={submissions}\n onChange={onChange}\n onSubmit={onSubmit}\n options={options}\n >\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>\n These permissions allow you to give access to a single form's JSON\n definition so they can render the form.\n </p>\n\n <p>\n Typically you will want to allow all of your roles to be able to\n Read the form definition.\n </p>\n\n <p>\n Each form also has an owner at <strong>form.owner</strong> which\n is the user who created the form. In some applications users are\n allowed to create their own forms. In those cases it is helpful to\n 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 {\n ActionDefaultsSchema,\n ActionSchema,\n FormOptions,\n Submission\n} 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({\n actionInfo,\n children,\n onSubmit,\n options,\n ...props\n}: 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\n form={form}\n submission={submission}\n onSubmit={onSubmit}\n options={options}\n />\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 = [\n \"addComponent\",\n \"saveComponent\",\n \"updateComponent\",\n \"removeComponent\"\n];\n\nasync function createBuilder(\n el: Element,\n { components = [], display, options, onChange, events = {} }: any\n): 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) =>\n builder.on(event, callLast(handleEvent(event), 200))\n );\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 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 ${\n disabled ? \"disabled\" : \"\"\n }`}\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\n className={`btn btn-light btn-undo ${hasUndo ? \"\" : \"disabled\"}`}\n onClick={() => onUndo()}\n ref={undoTooltipRef}\n >\n <i className={iconClass(options.iconset, \"undo\")} />\n </button>\n\n <button\n className={`btn btn-light btn-redo ${hasRedo ? \"\" : \"disabled\"}`}\n onClick={() => onRedo()}\n ref={redoTooltipRef}\n >\n <i className={iconClass(options.iconset, \"redo\")} />\n </button>\n </div>\n\n <div>\n {onCopy && (\n <button\n className='btn btn-light'\n onClick={() => onCopy()}\n ref={copyTooltipRef}\n >\n <i className={iconClass(options.iconset, \"copy\")} />\n </button>\n )}\n\n <button\n className={`btn btn-light btn-reset`}\n onClick={() => onReset()}\n ref={resetTooltipRef}\n >\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 {\n FormControl,\n FormControlProps\n} from \"../form-control/formControl.component\";\n\nexport interface InputTagsProps<T = any>\n 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({\n name,\n value = [],\n label,\n onChange,\n required,\n description,\n prefix,\n suffix,\n ...props\n}: 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(\n \"removeItem\",\n (event: any) => {\n onChange(\n name,\n value.filter((v: string) => v !== event.detail.value)\n );\n }\n );\n\n return () => {\n instance.destroy();\n };\n }, []);\n\n return (\n <FormControl\n name={name}\n label={label}\n required={required}\n description={description}\n prefix={prefix}\n suffix={suffix}\n >\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\n label={\"Display as\"}\n name={\"display\"}\n value={form.display}\n choices={displayChoices}\n onChange={onChange}\n />\n </div>\n {hasTypeChoices && (\n <div className={\"w-1/3\"}>\n <Select\n label={\"Type\"}\n name={\"type\"}\n value={form.type}\n choices={typeChoices}\n onChange={onChange}\n />\n </div>\n )}\n {enableTags && (\n <div className={\"w-1/3\"}>\n <InputTags\n label={\"Tags\"}\n name={\"tags\"}\n value={form.tags}\n onChange={onChange}\n />\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 = (\n form: Partial<FormSchema>,\n value: Partial<FormSchema>\n): 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 = (\n state: FormEditState,\n { type, value }: any\n): 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(\n reducer,\n createInitialState(props)\n );\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 (\n props.form &&\n (current._id !== props.form._id ||\n current.modified !== props.form.modified)\n ) {\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 {\n form,\n isValid,\n setChange,\n hasRedo,\n hasChanged,\n hasUndo,\n redo,\n undo,\n reset,\n onSubmit,\n onCopy\n } = useFormEdit(props);\n const { options = {}, builder } = props;\n\n return (\n <div>\n <div className='form-edit'>\n <FormParameters\n {...props}\n className={\"\"}\n key={`form-settings-${form._id}`}\n form={form}\n onChange={setChange}\n />\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(\n form: Partial<FormSchema>\n): 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(\n form: Partial<FormSchema>,\n submission: Submission<FormSettingsSchema>\n): 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 {\n FormSettingsSchema,\n formSettingsToSubmission,\n submissionToFormSettings\n} 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({\n form: formDefinition,\n onSubmit = noop,\n options\n}: FormSettingsProps) {\n const form = getFormSettingsSchema();\n const [isValid, setIsValid] = useState(true);\n const [submission, setSubmission] = useState(() =>\n formSettingsToSubmission(formDefinition)\n );\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 {\n form,\n submission,\n options = {},\n onChange,\n onSubmit,\n isValid\n } = useFormSettings(props);\n\n const i18n = options.i18n || ((f: string) => f);\n\n return (\n <div>\n <Form\n form={form}\n submission={submission}\n onChange={onChange}\n options={options}\n />\n\n <button\n data-testid='submit'\n disabled={!isValid}\n className={\"mt-5 btn btn-primary\"}\n onClick={onSubmit}\n type={\"submit\"}\n >\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> = {}>({\n column\n}: FilterProps<D>) {\n const { filterValue, setFilter } = column;\n const { choices = [] } = column as any;\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.1\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 for (i = 0; i < arr.length; ++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, prop, val;\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 (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; 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 for (i = 0; i < arguments.length; 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 = /(\\[[^\\[]*\\])|(\\\\)?([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 for (i = 0; i < prioritized.length; 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 = /[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(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\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 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 for (i = 0; i < token.length; 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 = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\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(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\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 = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\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 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 ) {\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 = /^\\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 = /^\\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 = /^(?:(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\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; 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 = isoTimes.length; 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\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; 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\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; 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 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 < ordering.length; ++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 = /^(-|\\+)?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\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 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', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\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 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(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\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.1';\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(\n props: CellProps<FormSchema> & { icon: string; i18n: (f: string) => string }\n) {\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\n className={classnames(iconClass(undefined, \"history\"), \"mr-1\")}\n />\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) => (\n <FormCell {...props} icon={props.icon} i18n={i18n} />\n ),\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\n {...props}\n column={{ ...props.columns, choices: tags }}\n />\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 =\n (titleRef?.current?.offsetHeight || 0) +\n (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\n role={\"dialog\"}\n className={`formio-dialog formio-dialog-theme-default ${className}`}\n >\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\n className={\"formio-dialog-title\"}\n ref={titleRef}\n data-testid={\"modalTitle\"}\n >\n {title}\n </div>\n ) : null}\n\n <div\n className='formio-dialog-body'\n style={{ maxHeight }}\n data-testid={\"modalBody\"}\n >\n {show && children}\n </div>\n\n {ModalFooter ? (\n <div\n className={\"formio-dialog-footer\"}\n ref={footerRef}\n data-testid={\"modalFooter\"}\n >\n <ModalFooter\n {...props}\n closeModal={closeModal}\n onClose={onClickClose}\n />\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({\n value,\n valueToCompare,\n onSubmit,\n onClose,\n i18n = (f: string) => f\n}: ModalProps) {\n return (\n <div className={\"flex items-center justify-center bg-white p-2\"}>\n <button\n data-testid='customCloseModal'\n className={\"btn btn-outline-dark mx-2\"}\n onClick={onClose}\n >\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({\n maxWidth = \"300px\",\n children,\n ...props\n}: 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\n name='remove'\n value={value}\n onChange={(name, value) => setValue(value)}\n />\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(\n component: ComponentSchema,\n options: any,\n data: Submission<Data>\n ) {\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 =\n value === undefined || value === null ? this.getValue() : value;\n\n const changed =\n newValue !== undefined\n ? this.hasChanged(newValue, this.dataValue)\n : 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({\n value,\n render = (f: any) => f\n}: 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(\n form.components,\n (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) => (\n <DefaultCell\n {...props}\n render={(value: any) => cmp.asString(value)}\n />\n )\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\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), [\n form\n ]);\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({\n icon,\n back,\n onClick,\n isActive,\n reverse,\n children,\n className,\n after\n}: PropsWithChildren<any>) {\n return (\n <div\n className={classnames(\n \"tw-tabs__button-wrapper\",\n isActive ? \"-active\" : \"\",\n back ? \"-back\" : \"\",\n className\n )}\n >\n <button\n className={classnames(\n \"tw-tabs__button\",\n reverse ? \"-reverse\" : \"\",\n isActive ? \"-active\" : \"\",\n back ? \"-back\" : \"\"\n )}\n onClick={onClick}\n >\n {icon && (\n <i\n className={classnames(\n iconClass(undefined, icon),\n \"tw-tabs__button-icon\"\n )}\n />\n )}\n <span className={\"tw-tabs__button-label\"}>{children}</span>\n {after}\n </button>\n <div\n className={classnames(\n \"tw-tabs__button-border\",\n isActive ? \"-active\" : \"\"\n )}\n />\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 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 && (\n <HeaderChildren {...additionalProps} current={current} />\n )}\n </div>\n <div className={\"tw-tabs__body\"}>{children}</div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React 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({\n isActive,\n color = \"blue\",\n icon = \"radio-circle\",\n className = \"\"\n}: 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\n data-testid={`icon_${icon}`}\n color={color}\n className={`text-11xl ${iconClass(undefined, icon, true)}`}\n />\n </div>\n );\n }\n return null;\n}\n\nLoader.propTypes = {\n isActive: PropTypes.bool,\n icon: PropTypes.bool,\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","src","options","funcs","element","isLoaded","events","Map","createWebForm","srcOrForm","assign","cloneDeep","Form","onAny","args","startsWith","funcName","charAt","toUpperCase","slice","isEqual","has","set","ready","then","onFormReady","onSubmit","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","global","factory","this","hookCallback","setHookCallback","callback","isObject","hasOwnProp","a","b","isObjectEmpty","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","arr","res","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","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","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","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","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","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","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","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","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","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","preFilteredRows","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(\n formId: string,\n submissionId?: string\n): string {\n return [getFormUrl(formId), \"submission\", submissionId]\n .filter(Boolean)\n .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,\n actionType: string,\n 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 =\n 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 {\n failActionInfo,\n receiveActionInfo,\n requestActionInfo,\n resetActionInfo\n} 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>>(\n name: string\n): (state: Record<string, any>) => State;\nexport function selectRoot<State = Record<string, any>>(\n name: string,\n state: Record<string, any>\n): State;\nexport function selectRoot<State = Record<string, any>>(\n name: string,\n state?: Record<string, any>\n): any {\n if (state) {\n return state[name];\n }\n\n return (state: Record<string, any>) => selectRoot(name, state);\n}\n\nexport const selectError = (\n name: string,\n state: Record<string, any>\n): null | Error => get(selectRoot(name, state), \"error\");\n\nexport const selectIsActive = (\n name: string,\n state: Record<string, any>\n): boolean => get(selectRoot(name, state), \"isActive\");\n\nexport function oneOfIsActive(...names: string[]) {\n return (state: any) => {\n return !!names.find((name) => {\n return get(\n state,\n `${name}.isActive`,\n get(state, `${name}.current.isActive`)\n );\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 = (\n state: Record<string, any>\n): Partial<ActionSchema> =>\n 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,\n actionId: string,\n 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 = (formId: string, action: any, done = noop) => async (\n dispatch: any\n) => {\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 {\n clearActionError,\n failAction,\n receiveAction,\n requestAction,\n resetAction,\n sendAction\n} 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 =>\n 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 = (id: string, done = noop) => async (\n dispatch: any\n) => {\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([\n formio.loadActions({ params: {} }),\n formio.availableActions()\n ]);\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 {\n failActions,\n receiveActions,\n requestActions,\n resetActions\n} 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>) =>\n selectRoot<ActionsState>(ACTIONS, state).data;\n\nexport const selectAvailableActions = (state: Record<string, any>) =>\n 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(\n auth: AuthState,\n form?: Partial<FormSchema>,\n roles?: string[]\n) {\n if (roles && roles.length) {\n if (isAuthorized(auth, roles)) {\n return true;\n }\n\n return !!(\n roles.includes(\"owner\") && get(form, \"owner\") === get(auth, \"user._id\")\n );\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(\n projectRoles: Record<string, any>,\n userRoles: any[]\n) {\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> =>\n get(selectAuth(state), \"user\");\n\nexport const selectRoles = (state: any): Record<string, RoleSchema> =>\n get(selectAuth(state), \"roles\");\n\nexport const selectIsAuthenticated = (state: any): boolean =>\n 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 {\n formAccessUser,\n submissionAccessUser,\n userForms,\n userRoles\n} 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 = (done = noop) => async (dispatch: any) => {\n dispatch(requestUser(AUTH));\n\n try {\n const [user] = await Promise.all([\n Formio.currentUser(),\n getAccess(dispatch),\n getProjectAccess(dispatch)\n ]);\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> =>\n 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 (\n form &&\n form.components &&\n Array.isArray(form.components) &&\n form.components.length &&\n form._id === id\n );\n}\n\nexport const getForm = (name: string, id = \"\", done = noop) => async (\n dispatch: any,\n getState: any\n) => {\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,\n form: Partial<FormSchema>,\n 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 = (name: string, id: string, done = noop) => async (\n dispatch: any\n) => {\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 {\n clearFormError,\n failForm,\n receiveForm,\n requestForm,\n resetForm,\n sendForm\n} 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({\n query,\n pageSize = 10,\n pageIndex = 0,\n select,\n filters,\n sortBy\n}: 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(\n filter.value,\n \"gi\"\n ).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) =>\n selectRoot<FormsState>(name, state).data;\n\nexport const selectFormsParameters = (name: string, state: any) =>\n 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,\n parameters: Partial<RequestParamsOptions>,\n 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(\n selectFormsParameters(name, getState())\n );\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 {\n failForms,\n receiveForms,\n requestForms,\n resetForms\n} 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 = ({\n pageIndex = 0,\n pageSize = 10,\n query = {},\n select = \"\",\n sortBy = []\n}: 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,\n formId: string,\n id: string,\n 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,\n formId: string,\n data: Submission,\n 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,\n formId: string,\n id: string,\n 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()]: (\n state: any,\n { formId, submission, id, url }: any\n ) => ({\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 = (\n name: string,\n state: any\n): 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) =>\n selectRoot<SubmissionsState>(name, state).data;\n\nexport const selectSubmissionsParameters = (name: string, state: any) =>\n 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,\n formId: string,\n parameters: any = {},\n 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(\n selectSubmissionsParameters(name, getState())\n );\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 = (\n name: string,\n formId: string,\n done = noop\n) => {\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 {\n failSubmissions,\n receiveSubmissions,\n requestSubmissions,\n resetSubmissions\n} 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({\n pageIndex = 0,\n pageSize = 10,\n query = {},\n select = \"\",\n sortBy = []\n}: 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>(\n {},\n createInitialState\n)\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(\n iconset: string | undefined,\n name: string,\n spinning?: boolean\n): string {\n return Templates.current.iconClass(\n iconset || Templates.current.defaultIconset,\n name,\n spinning\n );\n}\n","export function getEventValue(event: any) {\n const { target } = event;\n\n if (event.target.multiple && event.target.selectedOptions) {\n return Array.from(\n event.target.selectedOptions,\n (option: any) => option.value\n );\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\n id={`form-group-${name || \"\"}`}\n className={classnames(\"form-group\", className)}\n >\n {label && (\n <label\n htmlFor={name}\n className={`col-form-label ${required ? \" field-required\" : \"\"}`}\n >\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 {\n FormControl,\n FormControlProps\n} 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 : ([{ label: placeholder, value: \"\" }, ...choices] as any[]);\n\n return (\n <FormControl\n name={name}\n label={label}\n required={required}\n description={description}\n prefix={prefix}\n suffix={suffix}\n shadow={false}\n >\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({\n currentPage,\n pageNeighbours = 1,\n totalPages\n}: 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(\n totalPages - 1,\n currentPage + pageNeighbours\n );\n const startPage = calculatedStartPage === 3 ? 2 : calculatedStartPage;\n const endPage =\n 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 {\n getPageNumbers,\n LEFT_PAGE,\n RIGHT_PAGE\n} 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 {\n component: Component = \"button\",\n children,\n disabled,\n active,\n ...otherProps\n } = props;\n\n return (\n <Component\n {...otherProps}\n disabled={disabled}\n className={classnames(\n \"page-link\",\n disabled ? \"disabled\" : \"\",\n active ? \"\" : \"\",\n props.className\n )}\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,\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\n aria-label='Page navigation'\n className={classnames(\"pagination-group -mb-3\", className)}\n >\n <ul className='pagination mb-3 mr-3'>\n <li className={classnames(\"page-item\", !canPreviousPage && \"disabled\")}>\n <PaginationButton\n tabIndex={-1}\n disabled={!canPreviousPage}\n onClick={() => previousPage()}\n >\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\n className={classnames(\"page-item\", active && \"active\")}\n key={page}\n >\n <PaginationButton\n tabIndex={pageIndex}\n active={active}\n onClick={() => gotoPage(page - 1)}\n >\n {page}\n </PaginationButton>\n </li>\n );\n })}\n\n <li className={classnames(\"page-item\", !canNextPage && \"disabled\")}>\n <PaginationButton\n tabIndex={pageNumbers.length}\n disabled={!canNextPage}\n onClick={() => nextPage()}\n >\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 ? (\n <i\n className={iconClass(\n undefined,\n isSortedDesc ? \"sort-up\" : \"sort-down\"\n )}\n />\n ) : (\n \"\"\n )}\n </span>\n );\n}\n","import React from \"react\";\nimport { HeaderGroup } from \"react-table\";\n\nexport interface DefaultCellHeaderProps<Data extends object = any>\n extends Record<string, unknown> {\n column: HeaderGroup<Data>;\n}\n\nexport function DefaultCellHeader<Data extends Record<string, unknown> = {}>({\n column\n}: DefaultCellHeaderProps) {\n return (\n <div className={\"table-cell-header\"}>\n <div\n className='table-cell-header__label'\n {...column.getSortByToggleProps()}\n >\n <span>{column.render(\"Header\")}</span>\n\n {column.render(\"ArrowSort\")}\n </div>\n {column.canFilter ? (\n <div className='table-cell-header__filter'>\n {column.render(\"Filter\")}\n </div>\n ) : 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 {\n FormControl,\n FormControlProps\n} 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 ...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 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(\n className,\n [\"btn\", buttonOutline && \"outline\", buttonType]\n .filter(Boolean)\n .join(\"-\"),\n `btn-${buttonSize}`\n )}\n onClick={stopPropagationWrapper(() => onClick(action))}\n >\n {icon ? (\n <>\n <i className={iconClass(undefined, icon)} /> {title && \" \"}\n </>\n ) : null}\n {title && (\n <span className={icon && title ? \"ml-1\" : \"\"}>{i18n(title)}</span>\n )}\n </button>\n );\n}\n","import React from \"react\";\nimport { DefaultOperationButton } from \"./defaultOperationButton.component\";\n\nexport function DefaultCellOperations({\n operations,\n row,\n onClick,\n ctx,\n i18n\n}: any) {\n const data = row.original;\n\n return (\n <div className='btn-group'>\n {operations\n .filter(\n ({ permissionsResolver }: any) =>\n !permissionsResolver || permissionsResolver(data, ctx)\n )\n .map(\n ({ 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 )}\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: () => (\n <div className={\"text-center\"}>{i18n(\"Operations\")}</div>\n ),\n Cell: (props: any) => (\n <CellOperations\n {...props}\n operations={operations}\n onClick={onClick}\n ctx={ctx}\n i18n={i18n}\n />\n )\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 {\n DefaultCellHeader,\n DefaultCellHeaderProps\n} from \"./components/defaultCellHeader.component\";\nimport { DefaultColumnFilter } from \"./filters/defaultColumnFilter.component\";\nimport { useOperations } from \"./utils/useOperations.hook\";\n\nexport interface TableProps<Data extends object = any>\n extends TableOptions<Data>,\n 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(\n operations: Operation[],\n onClick: OnClickOperation\n) {\n return (data: any, action: string) => {\n const operation = operations.find(\n (operation) => operation.action === action || operation.alias === action\n );\n if (operation) {\n onClick(data, operation);\n }\n };\n}\n\nfunction DefaultLoader() {\n return (\n <div className={\"text-center p-2 pb-4 font-bold\"}>Loading in progress</div>\n );\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>(\n props: PropsWithChildren<TableProps<Data>>\n) {\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:\n props.manualPagination === undefined ? true : props.manualPagination,\n manualSortBy:\n props.manualSortBy === undefined ? true : props.manualPagination,\n manualFilters:\n 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\n key={`tableInstance.headerGroups${i}`}\n {...headerGroup.getHeaderGroupProps()}\n >\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\n key={`tableInstance.page.${row.id}`}\n onClick={() => _onClick(row.original, \"row\")}\n {...row.getRowProps()}\n >\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 key={`tableInstance.page.cells.${\n cell.value || \"value\"\n }.${i}`}\n colSpan={colspan}\n {...cell.getCellProps()}\n >\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\n {...props}\n disableFilters={disableFilters}\n disablePagination={disablePagination}\n columns={columns}\n >\n <div className={\"pagination-group\"}>\n <Select\n name={\"actions\"}\n value={currentAction}\n choices={[{ label: i18n(\"Select an action\"), value: \"\" }].concat(\n availableActions\n )}\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\")} />{\" \"}\n {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 (\n Object.prototype.hasOwnProperty.call(error, \"name\") &&\n error.name === \"ValidationError\"\n ) {\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 (\n Object.prototype.hasOwnProperty.call(error, \"_id\") &&\n Object.prototype.hasOwnProperty.call(error, \"display\")\n ) {\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 label: string;\n className?: string;\n}\n\nexport function Card({\n children,\n label,\n className\n}: 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: {\n type: string;\n event: string;\n component: ExtendedComponentSchema;\n data: any;\n }) => void;\n onComponentChange?: (component: ExtendedComponentSchema) => void;\n onSubmit?: (submission: Submission<Data>) => 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 const createWebForm = (srcOrForm: any, options: any) => {\n options = Object.assign({}, options);\n srcOrForm =\n typeof srcOrForm === \"string\" ? srcOrForm : cloneDeep(srcOrForm);\n\n if (!instance.current) {\n isLoaded.current = false;\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(\n 8\n )}`;\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 events.current.get(funcName)(...args);\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.onSubmitDone &&\n 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 (\n <div\n data-testid={\"formioContainer\" + (props.name || \"\")}\n ref={element}\n className={props.className}\n />\n );\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 }),\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 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({\n label,\n key,\n description,\n choices,\n data\n}: 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 (\n '<span class=\"text-sm\">' +\n description +\n \"</span> \" +\n (hr ? '<hr class=\"mt-6 mb-5 border-gray-200 mx-20\"/>' : \"\")\n );\n}\n\nexport function getSubmissionPermissionForm({ choices }: any): FormSchema {\n return {\n description:\n \"<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:\n \"<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:\n '<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:\n '<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:\n '<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 {\n getAccessPermissionForm,\n getSubmissionPermissionForm\n} 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(\n form: Partial<FormSchema>,\n formAccess: FormAccessSchema\n): SubmissionAccess {\n const getKeys = (components: ExtendedComponentSchema[]) =>\n components.map(({ key }) => key);\n\n return {\n access: {\n data: accessToHash(getKeys(formAccess.access.components), form.access)\n },\n submissionAccess: {\n data: accessToHash(\n getKeys(formAccess.submissionAccess.components),\n form.submissionAccess\n )\n }\n };\n}\n\nexport function submissionsToDataAccess(\n form: Partial<FormSchema>,\n submissions: SubmissionAccess\n): 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(\n type: string,\n submission: Submission<AccessRoles>,\n submissions: SubmissionAccess\n) {\n return !isEqual(submission.data, submissions[type].data);\n}\n\nexport function updateSubmissions(\n type: string,\n submission: Submission<AccessRoles>,\n submissions: SubmissionAccess,\n cb: Function = noop\n) {\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, {\n PropsWithChildren,\n ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useState\n} 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({\n form: formDefinition,\n roles,\n onSubmit,\n options\n}: FormAccessProps) {\n // eslint-disable-next-line no-undef\n const form = useMemo(() => getFormAccess(roles), [roles]);\n\n const [submissions, setSubmissions] = useState(() =>\n dataAccessToSubmissions(formDefinition, form)\n );\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 (\n shouldUpdate(\"access\", submissions.access, input) ||\n shouldUpdate(\"submissionAccess\", submissions.submissionAccess, input)\n ) {\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(\n name: \"access\" | \"submissionAccess\",\n submission: Submission<AccessRoles>\n ): void;\n}\n\nfunction NamedFormAccess({\n name,\n form,\n submissions,\n options,\n onChange,\n onSubmit,\n children\n}: 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\n disabled={!isValid}\n className={\"mt-5 btn btn-primary\"}\n onClick={onSubmit}\n >\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\n entities. Assign with caution.\n </div>\n </>\n );\n}\n\nexport function FormAccess(\n props: PropsWithChildren<FormAccessProps>\n): ReactElement {\n const {\n type,\n form,\n submissions,\n options,\n onChange,\n onSubmit\n } = 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>\n Submission Data Permissions allow you to control who can create,\n view, and modify form submission data.\n </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\n the user is the original creator of the submission data and is\n listed as the owner of the submission in submission.owner. This\n 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\n 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\n name={\"access\"}\n form={form}\n submissions={submissions}\n onChange={onChange}\n onSubmit={onSubmit}\n options={options}\n >\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>\n These permissions allow you to give access to a single form's JSON\n definition so they can render the form.\n </p>\n\n <p>\n Typically you will want to allow all of your roles to be able to\n Read the form definition.\n </p>\n\n <p>\n Each form also has an owner at <strong>form.owner</strong> which\n is the user who created the form. In some applications users are\n allowed to create their own forms. In those cases it is helpful to\n 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 {\n ActionDefaultsSchema,\n ActionSchema,\n FormOptions,\n Submission\n} 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({\n actionInfo,\n children,\n onSubmit,\n options,\n ...props\n}: 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\n form={form}\n submission={submission}\n onSubmit={onSubmit}\n options={options}\n />\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 = [\n \"addComponent\",\n \"saveComponent\",\n \"updateComponent\",\n \"removeComponent\"\n];\n\nasync function createBuilder(\n el: Element,\n { components = [], display, options, onChange, events = {} }: any\n): 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) =>\n builder.on(event, callLast(handleEvent(event), 200))\n );\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 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 ${\n disabled ? \"disabled\" : \"\"\n }`}\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\n className={`btn btn-light btn-undo ${hasUndo ? \"\" : \"disabled\"}`}\n onClick={() => onUndo()}\n ref={undoTooltipRef}\n >\n <i className={iconClass(options.iconset, \"undo\")} />\n </button>\n\n <button\n className={`btn btn-light btn-redo ${hasRedo ? \"\" : \"disabled\"}`}\n onClick={() => onRedo()}\n ref={redoTooltipRef}\n >\n <i className={iconClass(options.iconset, \"redo\")} />\n </button>\n </div>\n\n <div>\n {onCopy && (\n <button\n className='btn btn-light'\n onClick={() => onCopy()}\n ref={copyTooltipRef}\n >\n <i className={iconClass(options.iconset, \"copy\")} />\n </button>\n )}\n\n <button\n className={`btn btn-light btn-reset`}\n onClick={() => onReset()}\n ref={resetTooltipRef}\n >\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 {\n FormControl,\n FormControlProps\n} from \"../form-control/formControl.component\";\n\nexport interface InputTagsProps<T = any>\n 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({\n name,\n value = [],\n label,\n onChange,\n required,\n description,\n prefix,\n suffix,\n ...props\n}: 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(\n \"removeItem\",\n (event: any) => {\n onChange(\n name,\n value.filter((v: string) => v !== event.detail.value)\n );\n }\n );\n\n return () => {\n instance.destroy();\n };\n }, []);\n\n return (\n <FormControl\n name={name}\n label={label}\n required={required}\n description={description}\n prefix={prefix}\n suffix={suffix}\n >\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\n label={\"Display as\"}\n name={\"display\"}\n value={form.display}\n choices={displayChoices}\n onChange={onChange}\n />\n </div>\n {hasTypeChoices && (\n <div className={\"w-1/3\"}>\n <Select\n label={\"Type\"}\n name={\"type\"}\n value={form.type}\n choices={typeChoices}\n onChange={onChange}\n />\n </div>\n )}\n {enableTags && (\n <div className={\"w-1/3\"}>\n <InputTags\n label={\"Tags\"}\n name={\"tags\"}\n value={form.tags}\n onChange={onChange}\n />\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 = (\n form: Partial<FormSchema>,\n value: Partial<FormSchema>\n): 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 = (\n state: FormEditState,\n { type, value }: any\n): 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(\n reducer,\n createInitialState(props)\n );\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 (\n props.form &&\n (current._id !== props.form._id ||\n current.modified !== props.form.modified)\n ) {\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 {\n form,\n isValid,\n setChange,\n hasRedo,\n hasChanged,\n hasUndo,\n redo,\n undo,\n reset,\n onSubmit,\n onCopy\n } = useFormEdit(props);\n const { options = {}, builder } = props;\n\n return (\n <div>\n <div className='form-edit'>\n <FormParameters\n {...props}\n className={\"\"}\n key={`form-settings-${form._id}`}\n form={form}\n onChange={setChange}\n />\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(\n form: Partial<FormSchema>\n): 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(\n form: Partial<FormSchema>,\n submission: Submission<FormSettingsSchema>\n): 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 {\n FormSettingsSchema,\n formSettingsToSubmission,\n submissionToFormSettings\n} 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({\n form: formDefinition,\n onSubmit = noop,\n options\n}: FormSettingsProps) {\n const form = getFormSettingsSchema();\n const [isValid, setIsValid] = useState(true);\n const [submission, setSubmission] = useState(() =>\n formSettingsToSubmission(formDefinition)\n );\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 {\n form,\n submission,\n options = {},\n onChange,\n onSubmit,\n isValid\n } = useFormSettings(props);\n\n const i18n = options.i18n || ((f: string) => f);\n\n return (\n <div>\n <Form\n form={form}\n submission={submission}\n onChange={onChange}\n options={options}\n />\n\n <button\n data-testid='submit'\n disabled={!isValid}\n className={\"mt-5 btn btn-primary\"}\n onClick={onSubmit}\n type={\"submit\"}\n >\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> = {}>({\n column\n}: 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]))]\n .filter((value) => value)\n .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.1\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 for (i = 0; i < arr.length; ++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, prop, val;\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 (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; 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 for (i = 0; i < arguments.length; 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 = /(\\[[^\\[]*\\])|(\\\\)?([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 for (i = 0; i < prioritized.length; 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 = /[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(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\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 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 for (i = 0; i < token.length; 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 = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\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(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\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 = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\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 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 ) {\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 = /^\\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 = /^\\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 = /^(?:(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\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; 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 = isoTimes.length; 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\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; 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\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; 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 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 < ordering.length; ++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 = /^(-|\\+)?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\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 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', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\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 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(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\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.1';\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(\n props: CellProps<FormSchema> & { icon: string; i18n: (f: string) => string }\n) {\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\n className={classnames(iconClass(undefined, \"history\"), \"mr-1\")}\n />\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) => (\n <FormCell {...props} icon={props.icon} i18n={i18n} />\n ),\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\n {...props}\n column={{ ...props.columns, choices: tags }}\n />\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 =\n (titleRef?.current?.offsetHeight || 0) +\n (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\n role={\"dialog\"}\n className={`formio-dialog formio-dialog-theme-default ${className}`}\n >\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\n className={\"formio-dialog-title\"}\n ref={titleRef}\n data-testid={\"modalTitle\"}\n >\n {title}\n </div>\n ) : null}\n\n <div\n className='formio-dialog-body'\n style={{ maxHeight }}\n data-testid={\"modalBody\"}\n >\n {show && children}\n </div>\n\n {ModalFooter ? (\n <div\n className={\"formio-dialog-footer\"}\n ref={footerRef}\n data-testid={\"modalFooter\"}\n >\n <ModalFooter\n {...props}\n closeModal={closeModal}\n onClose={onClickClose}\n />\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({\n value,\n valueToCompare,\n onSubmit,\n onClose,\n i18n = (f: string) => f\n}: ModalProps) {\n return (\n <div className={\"flex items-center justify-center bg-white p-2\"}>\n <button\n data-testid='customCloseModal'\n className={\"btn btn-outline-dark mx-2\"}\n onClick={onClose}\n >\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({\n maxWidth = \"300px\",\n children,\n ...props\n}: 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\n name='remove'\n value={value}\n onChange={(name, value) => setValue(value)}\n />\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(\n component: ComponentSchema,\n options: any,\n data: Submission<Data>\n ) {\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 =\n value === undefined || value === null ? this.getValue() : value;\n\n const changed =\n newValue !== undefined\n ? this.hasChanged(newValue, this.dataValue)\n : 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({\n value,\n render = (f: any) => f\n}: 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(\n form.components,\n (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) => (\n <DefaultCell\n {...props}\n render={(value: any) => cmp.asString(value)}\n />\n )\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\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), [\n form\n ]);\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({\n icon,\n back,\n onClick,\n isActive,\n reverse,\n children,\n className,\n after\n}: PropsWithChildren<any>) {\n return (\n <div\n className={classnames(\n \"tw-tabs__button-wrapper\",\n isActive ? \"-active\" : \"\",\n back ? \"-back\" : \"\",\n className\n )}\n >\n <button\n className={classnames(\n \"tw-tabs__button\",\n reverse ? \"-reverse\" : \"\",\n isActive ? \"-active\" : \"\",\n back ? \"-back\" : \"\"\n )}\n onClick={onClick}\n >\n {icon && (\n <i\n className={classnames(\n iconClass(undefined, icon),\n \"tw-tabs__button-icon\"\n )}\n />\n )}\n <span className={\"tw-tabs__button-label\"}>{children}</span>\n {after}\n </button>\n <div\n className={classnames(\n \"tw-tabs__button-border\",\n isActive ? \"-active\" : \"\"\n )}\n />\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 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 && (\n <HeaderChildren {...additionalProps} current={current} />\n )}\n </div>\n <div className={\"tw-tabs__body\"}>{children}</div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React 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({\n isActive,\n color = \"blue\",\n icon = \"radio-circle\",\n className = \"\"\n}: 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\n data-testid={`icon_${icon}`}\n color={color}\n className={`text-11xl ${iconClass(undefined, icon, true)}`}\n />\n </div>\n );\n }\n return null;\n}\n\nLoader.propTypes = {\n isActive: PropTypes.bool,\n icon: PropTypes.bool,\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","src","options","funcs","element","isLoaded","events","Map","createWebForm","srcOrForm","assign","cloneDeep","Form","onAny","args","startsWith","funcName","charAt","toUpperCase","slice","isEqual","has","set","ready","then","onFormReady","onSubmit","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","callback","isObject","hasOwnProp","a","b","isObjectEmpty","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","arr","res","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","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","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","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","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","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","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","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","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","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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"}