From 3d3bc18c37c7906d7c6a78d79f3c2600c77e7ec5 Mon Sep 17 00:00:00 2001 From: Iwan Firmawan Date: Thu, 11 May 2023 11:56:58 +0700 Subject: [PATCH 1/6] [#44] Add new questionType: image --- src/lib/store.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/store.js b/src/lib/store.js index 9acb25e..0ad03f2 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -26,6 +26,7 @@ const questionType = { tree: 'tree', table: 'table', // autofield: 'autofield', + image: 'image' }; const defaultForm = () => { From 7e33695baab9ce9ab5f936b0738668e14058f349 Mon Sep 17 00:00:00 2001 From: Iwan Firmawan Date: Thu, 11 May 2023 12:20:00 +0700 Subject: [PATCH 2/6] [#44] Add new questionType: image --- src/lib/store.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/store.js b/src/lib/store.js index 0ad03f2..2c56aee 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -26,7 +26,7 @@ const questionType = { tree: 'tree', table: 'table', // autofield: 'autofield', - image: 'image' + image: 'image', }; const defaultForm = () => { From 4f694d9d49cb0d3b0d03e767b20bfccd5d65e86d Mon Sep 17 00:00:00 2001 From: Iwan Firmawan Date: Thu, 11 May 2023 19:21:13 +0700 Subject: [PATCH 3/6] [#44] Add new trans for settings image question --- src/lib/i18n.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/i18n.js b/src/lib/i18n.js index ed95ef2..d094233 100644 --- a/src/lib/i18n.js +++ b/src/lib/i18n.js @@ -88,6 +88,8 @@ const UIStaticText = { inputSelectHintEndpointLabel: 'Hint Endpoint', inputSelectHintPathLabel: 'Hint Path', inputQuestionHintButtonTextLabel: 'Hint Button Text', + questionMoreImageTypeSettingText: 'More Image Question Setting', + inputQuestionImageLimitValidationText: 'Limit / Max file size', }, }; From d6caf0136c64bb8530f7f0d28c0bb2d9db28847b Mon Sep 17 00:00:00 2001 From: Iwan Firmawan Date: Thu, 11 May 2023 19:21:37 +0700 Subject: [PATCH 4/6] [#44] Create new setting question type: image --- src/components/question-type/SettingImage.jsx | 62 +++++++++++++++++++ src/components/question-type/index.js | 1 + 2 files changed, 63 insertions(+) create mode 100644 src/components/question-type/SettingImage.jsx diff --git a/src/components/question-type/SettingImage.jsx b/src/components/question-type/SettingImage.jsx new file mode 100644 index 0000000..5c98fcd --- /dev/null +++ b/src/components/question-type/SettingImage.jsx @@ -0,0 +1,62 @@ +import React from 'react'; +import { Form, InputNumber, Row, Col } from 'antd'; +import styles from '../../styles.module.css'; +import { UIStore, questionGroupFn } from '../../lib/store'; + +const SettingImage = ({ id, questionGroupId, limit }) => { + const namePreffix = `question-${id}`; + const UIText = UIStore.useState((s) => s.UIText); + + const updateState = (name, value) => { + questionGroupFn.store.update((s) => { + s.questionGroups = s.questionGroups.map((qg) => { + if (qg.id === questionGroupId) { + const questions = qg.questions.map((q) => { + if (q.id === id) { + return { + ...q, + [name]: value, + }; + } + return q; + }); + return { + ...qg, + questions: questions, + }; + } + return qg; + }); + }); + }; + + const handleOnLimit = (value) => { + updateState('limit', value); + }; + return ( +
+

+ {UIText.questionMoreImageTypeSettingText} +

+ + + + + + + +
+ ); +}; + +export default SettingImage; diff --git a/src/components/question-type/index.js b/src/components/question-type/index.js index 19844ff..311b455 100644 --- a/src/components/question-type/index.js +++ b/src/components/question-type/index.js @@ -5,3 +5,4 @@ export { default as SettingTree } from './SettingTree'; export { default as SettingCascade } from './SettingCascade'; export { default as SettingDate } from './SettingDate'; export { default as SettingTable } from './SettingTable'; +export { default as SettingImage } from './SettingImage'; From d4414a9057e860224a69460e1b1cb90507cb3df5 Mon Sep 17 00:00:00 2001 From: Iwan Firmawan Date: Thu, 11 May 2023 19:21:52 +0700 Subject: [PATCH 5/6] [#44] Add setting image in QuestionSetting --- src/components/QuestionSetting.jsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/QuestionSetting.jsx b/src/components/QuestionSetting.jsx index b3595e2..b35a273 100644 --- a/src/components/QuestionSetting.jsx +++ b/src/components/QuestionSetting.jsx @@ -10,6 +10,7 @@ import { SettingCascade, SettingDate, SettingTable, + SettingImage, } from './question-type'; import QuestionHint from './QuestionHint'; import { map, groupBy, orderBy, isEmpty } from 'lodash'; @@ -307,6 +308,7 @@ const QuestionSetting = ({ question, dependant }) => { {qType === questionType.cascade && } {qType === questionType.date && } {qType === questionType.table && } + {qType === questionType.image && } ); }; From fc2d6630ab2c8c1fb38cc316ef2a47fea336bba3 Mon Sep 17 00:00:00 2001 From: Iwan Firmawan Date: Thu, 11 May 2023 19:22:15 +0700 Subject: [PATCH 6/6] [#44] Update dist according to new settings: image question --- dist/index.js | 62 +- dist/index.js.map | 2 +- dist/index.modern.js | 3995 +++++++++++++++++--------------------- dist/index.modern.js.map | 2 +- 4 files changed, 1793 insertions(+), 2268 deletions(-) diff --git a/dist/index.js b/dist/index.js index bad4152..752c536 100644 --- a/dist/index.js +++ b/dist/index.js @@ -148,7 +148,9 @@ var UIStaticText = { inputQuestionStaticValueLabel: 'Static Value', inputSelectHintEndpointLabel: 'Hint Endpoint', inputSelectHintPathLabel: 'Hint Path', - inputQuestionHintButtonTextLabel: 'Hint Button Text' + inputQuestionHintButtonTextLabel: 'Hint Button Text', + questionMoreImageTypeSettingText: 'More Image Question Setting', + inputQuestionImageLimitValidationText: 'Limit / Max file size' } }; @@ -272,7 +274,8 @@ var questionType = { option: 'option', multiple_option: 'multiple_option', tree: 'tree', - table: 'table' + table: 'table', + image: 'image' }; var defaultForm = function defaultForm() { @@ -9992,6 +9995,59 @@ var SettingTable = function SettingTable(_ref3) { })); }; +var SettingImage = function SettingImage(_ref) { + var id = _ref.id, + questionGroupId = _ref.questionGroupId, + limit = _ref.limit; + var namePreffix = "question-" + id; + var UIText = UIStore.useState(function (s) { + return s.UIText; + }); + + var updateState = function updateState(name, value) { + questionGroupFn.store.update(function (s) { + s.questionGroups = s.questionGroups.map(function (qg) { + if (qg.id === questionGroupId) { + var questions = qg.questions.map(function (q) { + if (q.id === id) { + var _extends2; + + return _extends({}, q, (_extends2 = {}, _extends2[name] = value, _extends2)); + } + + return q; + }); + return _extends({}, qg, { + questions: questions + }); + } + + return qg; + }); + }); + }; + + var handleOnLimit = function handleOnLimit(value) { + updateState('limit', value); + }; + + return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("p", { + className: styles['more-question-setting-text'] + }, UIText.questionMoreImageTypeSettingText), /*#__PURE__*/React__default.createElement(antd.Row, { + align: "middle", + gutter: [24, 24] + }, /*#__PURE__*/React__default.createElement(antd.Col, { + span: 8 + }, /*#__PURE__*/React__default.createElement(antd.Form.Item, { + label: UIText.inputQuestionImageLimitValidationText, + name: namePreffix + "-limit_file_size" + }, /*#__PURE__*/React__default.createElement(antd.InputNumber, { + onChange: handleOnLimit, + value: limit, + addonAfter: "MB" + }))))); +}; + var QuestionHint = function QuestionHint(_ref) { var _hostParams$settingHi; @@ -10423,7 +10479,7 @@ var QuestionSetting = function QuestionSetting(_ref) { cursor: 'pointer', marginLeft: '-4px' } - })))))), showHintSetting && /*#__PURE__*/React__default.createElement(QuestionHint, question), qType === questionType.input && /*#__PURE__*/React__default.createElement(SettingInput, question), qType === questionType.number && /*#__PURE__*/React__default.createElement(SettingNumber, question), [questionType.option, questionType.multiple_option].includes(qType) && /*#__PURE__*/React__default.createElement(SettingOption, question), qType === questionType.tree && /*#__PURE__*/React__default.createElement(SettingTree, question), qType === questionType.cascade && /*#__PURE__*/React__default.createElement(SettingCascade, question), qType === questionType.date && /*#__PURE__*/React__default.createElement(SettingDate, question), qType === questionType.table && /*#__PURE__*/React__default.createElement(SettingTable, question)); + })))))), showHintSetting && /*#__PURE__*/React__default.createElement(QuestionHint, question), qType === questionType.input && /*#__PURE__*/React__default.createElement(SettingInput, question), qType === questionType.number && /*#__PURE__*/React__default.createElement(SettingNumber, question), [questionType.option, questionType.multiple_option].includes(qType) && /*#__PURE__*/React__default.createElement(SettingOption, question), qType === questionType.tree && /*#__PURE__*/React__default.createElement(SettingTree, question), qType === questionType.cascade && /*#__PURE__*/React__default.createElement(SettingCascade, question), qType === questionType.date && /*#__PURE__*/React__default.createElement(SettingDate, question), qType === questionType.table && /*#__PURE__*/React__default.createElement(SettingTable, question), qType === questionType.image && /*#__PURE__*/React__default.createElement(SettingImage, question)); }; var dependencyTypes = [{ diff --git a/dist/index.js.map b/dist/index.js.map index 45a342b..9d7237a 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/components/FormWrapper.jsx","../src/lib/i18n.js","../src/lib/debug.js","../src/lib/store.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../src/support/ButtonAddMove.jsx","../src/support/ButtonWithIcon.jsx","../src/support/CardTitle.jsx","../src/support/TranslationFormItem.jsx","../src/support/AlertPopup.jsx","../src/lib/data.js","../src/components/translations/FormDefinitionTranslation.jsx","../src/components/translations/QuestionDefinitionTranslation.jsx","../src/components/translations/QuestionGroupDefinitionTranslation.jsx","../src/components/FormTranslations.jsx","../src/components/FormPreview.jsx","../src/components/FormDefinition.jsx","../src/components/QuestionGroupSetting.jsx","../src/components/question-type/SettingInput.jsx","../src/components/question-type/SettingNumber.jsx","../src/components/question-type/SettingOption.jsx","../src/components/question-type/SettingTree.jsx","../src/components/question-type/SettingCascade.jsx","../node_modules/moment/moment.js","../src/components/question-type/SettingDate.jsx","../src/components/question-type/SettingTable.jsx","../src/components/QuestionHint.jsx","../src/components/QuestionSetting.jsx","../src/components/QuestionSkipLogic.jsx","../src/components/QuestionCustomParams.jsx","../src/components/QuestionDefinition.jsx","../src/components/QuestionGroupDefinition.jsx","../src/index.js"],"sourcesContent":["import React from 'react';\nimport { Form } from 'antd';\n\nconst FormWrapper = ({ children }) => {\n const [form] = Form.useForm();\n\n const handleOnValuesChange = () => {\n // console.log(changedValues, allValues);\n };\n\n const handleOnFinish = () => {\n // console.log(values);\n };\n\n const handleOnFinishFailed = () => {\n // console.log(values, errorFields, outOfDate);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default FormWrapper;\n","const UIStaticText = {\n en: {\n inputFormNameLabel: 'Form Name',\n inputFormDescriptionLabel: 'Form Description',\n inputFormTranslationLabel: 'Add New Translation',\n inputFormExistingTranslationsLabel: 'Existing Translations',\n inputFormDefaultLanguageLabel: 'Default Language',\n formTabPane: 'Edit Form',\n formTranslationPane: 'Translations',\n previewTabPane: 'Preview',\n questionCount: 'Questions',\n questionGroupCount: 'Question Groups',\n mandatoryQuestionCount: 'Mandatory Questions',\n version: 'Version',\n inputQuestionGroupNameLabel: 'Question Group Name',\n inputQuestionGroupDescriptionLabel: 'Question Group Description',\n inputRepeatThisGroupCheckbox: 'Repeat this group',\n inputRepeatTextLabel: 'Repeat Text',\n buttonShowQuestionsText: 'Show Questions',\n buttonHideQuestionsText: 'Hide Questions',\n buttonEditGroupText: 'Edit Group',\n buttonCancelEditGroupText: 'Cancel Edit Group',\n buttonDeleteText: 'Delete',\n buttonCancelText: 'Cancel',\n buttonAddNewQuestionGroupText: 'Insert group here',\n buttonCopyQuestionGroupText: 'Copy group here',\n buttonMoveQuestionGroupText: 'Move group here',\n buttonAddNewQuestionText: 'Add new question',\n buttonCopyQuestionText: 'Copy question here',\n buttonMoveQuestionText: 'Move question here',\n inputQuestionNameLabel: 'Question Name',\n inputQuestionTypeLabel: 'Question Type',\n inputQuestionVariableNameLabel: 'Variable Name',\n inputQuestionTooltipLabel: 'Question Tooltip',\n inputQuestionRequiredCheckbox: 'Required',\n inputQuestionMetaCheckbox: 'Data point name',\n inputQuestionMetaCheckboxHint:\n 'A string value that represents the name of the data point',\n buttonSaveText: 'Save',\n questionSettingTabPane: 'Setting',\n questionSkipLogicTabPane: 'Skip Logic',\n questionCustomParamsTabPane: 'Custom Params',\n questionExtraTabPane: 'Extra',\n inputQuestionDependentToLabel: 'Dependent to Question',\n inputQuestionDependentLogicLabel: 'Logic',\n inputQuestionDependentAnswerLabel: 'Value',\n questionMoreInputTypeSettingText: 'More Input Question Setting',\n inputQuestionRequireDoubleEntryCheckbox: 'Require double entry of answer',\n inputQuestionHiddenStringCheckbox: 'Hidden String/Password',\n questionMoreInputNumberSettingText: 'More Number Question Setting',\n inputQuestionAllowDecimalCheckbox: 'Allow Decimal',\n inputQuestionMinimumValueLabel: 'Minimum Value',\n inputQuestionMaximumValueLabel: 'Maximum Value',\n inputQuestionMinimumValidationText: 'Min value must be less than',\n inputQuestionMaximumValidationText: 'Max value must be greater than',\n inputQuestionEqualValueLabel: 'Equal Value',\n questionMoreOptionTypeSettingText: 'More Option Question Setting',\n questionMoreOptionTranslationText: 'Option Translations',\n inputQuestionAllowOtherCheckbox: 'Allow Other',\n inputQuestionAllowOtherTextLabel: 'Allow Other Text',\n inputQuestionOptionNameLabel: 'Option',\n questionMoreTreeSettingText: 'More Nested List Question Setting',\n inputSelectTreeDropdownValueLabel: 'Select Nested List Value',\n deleteQuestionGroupError: 'Unable to delete question group',\n deleteQuestionError: 'Unable to delete question',\n infoNoDependentQuestionText: 'No dependent questions',\n questionMoreCascadeSettingText: 'More Cascade Question Setting',\n inputQuestionEndpointLabel: 'Cascade Endpoint',\n inputQuestionEndpointValidationText: 'Invalid URL',\n inputQuestionInitialValueLabel: 'Initial Value',\n inputQuestionListCheckbox: 'Use Specific Object Name',\n inputQuestionListLabel: 'Object Name',\n questionMoreInputDateSettingText: 'More Date Question Setting',\n inputQuestionAfterDateValueLabel: 'After Date',\n inputQuestionBeforeDateValueLabel: 'Before Date',\n alertDeleteQuestionTitle: 'Delete Question',\n alertDeleteQuestion: 'Do you want to delete this question?',\n alertDeleteQuestionGroupTitle: 'Delete Question Group',\n alertDeleteQuestionGroup:\n 'Do you want to delete this question group and all the questions?',\n questionMoreTableTypeSettingText: 'More Table Question Setting',\n inputColumnNameLabel: 'Column Name',\n inputColumnTypeLabel: 'Column Type',\n inputColumnOptionsLabel: 'Column Options',\n questionTableTypeDefineOptionsText: 'Define Options',\n questionHintSettingText: 'Hint Setting',\n inputQuestionStaticValueLabel: 'Static Value',\n inputSelectHintEndpointLabel: 'Hint Endpoint',\n inputSelectHintPathLabel: 'Hint Path',\n inputQuestionHintButtonTextLabel: 'Hint Button Text',\n },\n};\n\nexport default UIStaticText;\n","import * as words from './fake.json';\n\nconst titleCase = (str) => {\n return str.replace(\n /\\w\\S*/g,\n (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()\n );\n};\n\nconst getWords = () => {\n return words.default[Math.floor(Math.random() * words.default.length)];\n};\n\nexport const dummyName = (len = 2) => {\n return Array.from('x'.repeat(len)).reduce(\n (curr) => curr + ' ' + getWords(),\n titleCase(getWords())\n );\n};\n","import { Store } from 'pullstate';\nimport UIStaticText from './i18n';\nimport { dummyName } from './debug';\nimport * as locale from 'locale-codes';\nimport uniqBy from 'lodash/uniqBy';\n\nconst localeDropdownValue = uniqBy(\n locale.all\n .filter((x) => x.location)\n .map((x) => ({ label: x.name, value: x['iso639-1'] }))\n .filter((x) => x.value),\n 'value'\n);\n\nconst generateId = () => new Date().getTime();\n\nconst questionType = {\n input: 'input',\n number: 'number',\n cascade: 'cascade',\n geo: 'geo',\n text: 'text',\n date: 'date',\n option: 'option',\n multiple_option: 'multiple_option',\n tree: 'tree',\n table: 'table',\n // autofield: 'autofield',\n};\n\nconst defaultForm = () => {\n return {\n id: generateId(),\n name: 'New Form',\n version: 1,\n description: 'New Form Description',\n };\n};\n\nconst defaultQuestion = ({\n questionGroup,\n name,\n prevOrder = 0,\n type = questionType.input,\n required = false,\n params = {},\n}) => {\n const q = {\n id: generateId() + 2,\n order: prevOrder + 1,\n questionGroupId: questionGroup.id,\n name: name || dummyName(5),\n type: type,\n required: required,\n meta: false,\n tooltip: null,\n };\n if (type === questionType.option || type === questionType.multiple_option) {\n return {\n ...q,\n options: [],\n allowOther: false,\n };\n }\n if (type === questionType.cascade) {\n return {\n ...q,\n api: {\n endpoint: null,\n initial: 0,\n list: false,\n },\n };\n }\n return { ...q, ...params };\n};\n\nconst defaultQuestionGroup = ({\n name = dummyName(),\n prevOrder = 0,\n defaultQuestionParam = {},\n}) => {\n const qg = {\n id: generateId() + 1,\n name: name,\n order: prevOrder + 1,\n description: null,\n repeatable: false,\n };\n return {\n ...qg,\n questions: [\n defaultQuestion({ questionGroup: qg, ...defaultQuestionParam }),\n ],\n };\n};\n\nconst UIStore = new Store({\n current: {\n tab: 'edit-form',\n formId: null,\n questionGroupId: null,\n questionId: null,\n },\n activeEditFormSetting: true,\n activeQuestionGroups: [],\n activeEditQuestionGroups: [],\n activeMoveQuestionGroup: null,\n isCopyingQuestionGroup: false,\n activeEditQuestions: [],\n activeMoveQuestion: null,\n isCopyingQuestion: false,\n UIText: UIStaticText.en,\n localeDropdownValue: localeDropdownValue,\n existingTranslation: null,\n activeTranslationQuestionGroups: [],\n activeEditTranslationQuestionGroups: [],\n activeEditTranslationQuestions: [],\n hostParams: {},\n});\n\nconst FormStore = new Store({\n ...defaultForm(),\n});\n\nconst QuestionGroupStore = new Store({\n questionGroups: [defaultQuestionGroup({})],\n});\n\nconst formFn = {\n add: defaultForm,\n store: FormStore,\n};\n\nconst questionGroupFn = {\n add: defaultQuestionGroup,\n store: QuestionGroupStore,\n};\n\nconst questionFn = {\n add: defaultQuestion,\n update: ({ id, type, questionGroup, params }) =>\n defaultQuestion({\n id: id,\n type: type,\n questionGroup: questionGroup,\n ...params,\n }),\n};\n\nexport {\n UIStore,\n questionType,\n formFn,\n questionGroupFn,\n questionFn,\n generateId,\n};\n","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\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)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\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","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n } // Use native if support\n\n\n if (root.contains) {\n return root.contains(n);\n } // `document.contains` not support with IE11\n\n\n var node = n;\n\n while (node) {\n if (node === root) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}","import canUseDom from './canUseDom';\nimport contains from './contains';\nvar APPEND_ORDER = 'data-rc-order';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\n\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n\n return MARK_KEY;\n}\n\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n\n var head = document.querySelector('head');\n return head || document.body;\n}\n\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n\n return prepend ? 'prepend' : 'append';\n}\n/**\n * Find style which inject by rc-util\n */\n\n\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\n\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!canUseDom()) {\n return null;\n }\n\n var csp = option.csp,\n prepend = option.prepend;\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, getOrder(prepend));\n\n if (csp === null || csp === void 0 ? void 0 : csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (prepend === 'queue') {\n var existStyle = findStyles(container).filter(function (node) {\n return ['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER));\n });\n\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n } // Use `insertBefore` as `prepend`\n\n\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n\n return styleNode;\n}\n\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\n\nexport function removeCSS(key) {\n var _existNode$parentNode;\n\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n existNode === null || existNode === void 0 ? void 0 : (_existNode$parentNode = existNode.parentNode) === null || _existNode$parentNode === void 0 ? void 0 : _existNode$parentNode.removeChild(existNode);\n}\n/**\n * qiankun will inject `appendChild` to insert into other\n */\n\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container); // Find real container when not cached or cached container removed\n\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n parentNode.removeChild(placeholderStyle);\n }\n}\n\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option); // Sync real parent\n\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n\n if (existNode) {\n var _option$csp, _option$csp2;\n\n if (((_option$csp = option.csp) === null || _option$csp === void 0 ? void 0 : _option$csp.nonce) && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n\n return existNode;\n }\n\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n\n var _useContext = useContext(IconContext),\n csp = _useContext.csp;\n\n useEffect(function () {\n updateCSS(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\n\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n// should move it to antd main repo?\n\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre;\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexport default CaretRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CaretRightOutlined = function CaretRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretRightOutlinedSvg\n }));\n};\n\nCaretRightOutlined.displayName = 'CaretRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretRightOutlined);","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\n\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import React from 'react';\nimport { Button, Row, Col } from 'antd';\nimport { UIStore } from '../lib/store';\nimport { PlusOutlined, CaretRightOutlined } from '@ant-design/icons';\n\nconst ButtonAddMove = ({\n text,\n className,\n movingItem = null,\n handleCancelMove = () => {},\n disabled = false,\n handleOnAdd = () => {},\n handleOnMove = () => {},\n}) => {\n const { buttonCancelText } = UIStore.useState((s) => s.UIText);\n\n return (\n \n \n : }\n >\n {text}\n \n \n {movingItem && (\n \n \n {buttonCancelText}\n \n \n )}\n \n );\n};\n\nexport default ButtonAddMove;\n","import React from 'react';\nimport { Button } from 'antd';\nimport styles from '../styles.module.css';\nimport { TbEdit, TbEditOff } from 'react-icons/tb';\nimport {\n RiSettings5Fill,\n RiSettings5Line,\n RiDeleteBin2Line,\n RiSave3Fill,\n} from 'react-icons/ri';\nimport { BiMove, BiCopy } from 'react-icons/bi';\nimport { MdOutlineAddCircleOutline } from 'react-icons/md';\nimport { AiOutlineEye, AiOutlineEyeInvisible } from 'react-icons/ai';\n\nconst ButtonWithIcon = ({\n type = 'delete-button',\n isExpand = false,\n onClick = () => {},\n onCancel = () => {},\n disabled = false,\n}) => {\n let buttonProps = {};\n switch (type) {\n case 'show-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'copy-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'move-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'edit-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'add-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'save-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'expand-all-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n default:\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n }\n return (\n \n );\n};\n\nexport default ButtonWithIcon;\n","import React from 'react';\nimport { Space, Tag } from 'antd';\nimport ButtonWithIcon from './ButtonWithIcon';\n\nconst CardTitle = ({ id, title, buttons, dependency = [] }) => {\n return (\n \n {!!dependency.length && (\n \n {dependency.length} Dependenc{dependency.length > 1 ? 'ies' : 'y'}\n \n )}\n {buttons?.map((cfg) => (\n cfg.onClick()}\n onCancel={() => cfg.onCancel()}\n disabled={cfg?.disabled}\n />\n ))}\n {title &&
{title}
}\n
\n );\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport styles from '../styles.module.css';\nimport { Form, Row, Col, Space, Typography } from 'antd';\n\nconst { Text } = Typography;\n\nconst TranslationFormItem = ({\n labelText = '',\n name = '',\n currentValue = '',\n children = '',\n initialValue = '',\n}) => {\n return (\n \n \n \n {labelText}\n {currentValue}\n \n \n \n {labelText}}\n className={styles['translation-form-item']}\n initialValue={initialValue}\n >\n {children}\n \n \n \n );\n};\n\nexport default TranslationFormItem;\n","import React from 'react';\nimport { Modal } from 'antd';\n\nconst AlertPopup = ({\n onConfirm,\n onCancel,\n visible,\n children,\n title = 'Alert',\n okButtonProps = {},\n okText = 'OK',\n}) => {\n return (\n \n {children}\n \n );\n};\n\nexport default AlertPopup;\n","import { questionType, generateId } from './store';\nimport { findIndex, isEmpty, mapKeys, orderBy } from 'lodash';\n\nconst clearQuestionObj = (\n keysToRemove = [],\n obj = false,\n checkEmpty = false\n) => {\n let clearedQuestion = {};\n if (obj) {\n Object.keys(obj).forEach((key) => {\n // filter obj by key to remove\n if (!keysToRemove.includes(key)) {\n if (!checkEmpty) {\n clearedQuestion = {\n ...clearedQuestion,\n [key]: obj[key],\n };\n return key;\n }\n // clear or remove empty obj value\n if (checkEmpty && !isEmpty(obj?.[key])) {\n clearedQuestion = {\n ...clearedQuestion,\n [key]: obj[key],\n };\n return key;\n }\n }\n });\n }\n return clearedQuestion;\n};\n\nconst clearTranslations = (obj, translations) => {\n let newObj = {\n ...obj,\n };\n const clearedTranslations = translations\n .map((tl) => {\n const clearedObj = clearQuestionObj([], tl, true);\n // remove translation if only has language property\n if (Object.keys(clearedObj).length === 1 && clearedObj?.language) {\n return false;\n }\n return clearedObj;\n })\n .filter((x) => x);\n if (clearedTranslations.length) {\n newObj = {\n ...newObj,\n translations: clearedTranslations,\n };\n } else {\n delete newObj?.translations;\n // remove translation\n }\n return newObj;\n};\n\nconst toEditor = (webFormData) => {\n webFormData = mapKeys(webFormData, (_, k) =>\n k === 'question_group' ? 'questionGroups' : k\n );\n const questionGroups = webFormData.questionGroups.map((qg, qgi) => {\n const gid = qg?.id || generateId() + qgi;\n qg = mapKeys(qg, (_, k) => (k === 'question' ? 'questions' : k));\n const questions = qg.questions.map((q, qi) => {\n const isNotOption = ![\n questionType.option,\n questionType.multiple_option,\n ].includes(q.type);\n if (isNotOption && q.type !== questionType.tree) {\n q = clearQuestionObj(['option'], q);\n }\n if (\n [questionType.option, questionType.multiple_option].includes(q.type)\n ) {\n q = mapKeys(q, (_, k) => (k === 'option' ? 'options' : k));\n }\n if (q?.options) {\n const options = q.options.map((o, oi) => ({\n id: o?.id || qi + 1 + (oi + 1),\n ...o,\n order: o?.order || oi + 1,\n }));\n q = {\n ...q,\n options: orderBy(options, 'order'),\n };\n }\n if (q?.dependency) {\n const dependency = q.dependency.map((d) => {\n if (d?.max) {\n d = { ...d, max: d.max + 1 };\n }\n if (d?.min) {\n d = { ...d, min: d.min - 1 };\n }\n return d;\n });\n q = { ...q, dependency: dependency };\n }\n return { ...q, order: q?.order || qi + 1, questionGroupId: gid };\n });\n qg = {\n ...qg,\n id: gid,\n order: qg?.order || qgi + 1,\n questions: orderBy(questions, 'order'),\n };\n return qg;\n });\n webFormData = {\n ...webFormData,\n questionGroups: orderBy(questionGroups, 'order'),\n };\n return webFormData;\n};\n\nconst toWebform = (formData, questionGroups) => {\n let webformData = {\n id: formData?.id || generateId(),\n name: formData.name,\n description: formData.description,\n };\n if (formData?.languages && formData?.languages?.length) {\n webformData = {\n ...webformData,\n languages: ['en', ...formData.languages],\n defaultLanguage: formData?.defaultLanguage || 'en',\n };\n }\n if (formData?.translations) {\n webformData = clearTranslations(webformData, formData.translations);\n }\n // Question Group & Question Definition\n const output = questionGroups.map((qg) => {\n const questions = qg.questions.map((q) => {\n const isNotOption = ![\n questionType.option,\n questionType.multiple_option,\n ].includes(q.type);\n if (q.type !== questionType.input) {\n q = clearQuestionObj(['requiredDoubleEntry', 'hiddenString'], q);\n }\n if (q.type !== questionType.number && q.type !== questionType.date) {\n q = clearQuestionObj(['rule'], q);\n }\n if (\n [questionType.option, questionType.multiple_option].includes(q.type)\n ) {\n const options = q.options.map((op) => {\n if (op?.translations) {\n return clearTranslations(op, op.translations);\n }\n return op;\n });\n q = { ...q, option: options };\n }\n if (isNotOption) {\n q = clearQuestionObj(['allowOther'], q);\n }\n if (q.type !== questionType.cascade) {\n q = clearQuestionObj(['api'], q);\n }\n if (q.type !== questionType.tree && isNotOption) {\n q = clearQuestionObj(['option'], q);\n }\n if (q.type !== questionType.table) {\n q = clearQuestionObj(['columns'], q);\n }\n if (!q?.tooltip) {\n q = clearQuestionObj(['tooltip'], q);\n }\n if (q?.dependency) {\n const dependency = q.dependency.map((d) => {\n if (d?.max) {\n d = { ...d, max: d.max - 1 };\n }\n if (d?.min) {\n d = { ...d, min: d.min + 1 };\n }\n return d;\n });\n q = { ...q, dependency: dependency };\n }\n if (q?.translations) {\n q = clearTranslations(q, q.translations);\n }\n if (\n q?.hint &&\n !q?.hint?.static &&\n (!q?.hint?.endpoint || !q?.hint?.path?.length)\n ) {\n q = clearQuestionObj(['hint'], q);\n }\n q = clearQuestionObj(['options'], q);\n return q;\n });\n let result = {\n id: qg.id,\n name: qg.name,\n order: qg.order,\n repeatable: qg.repeatable,\n question: questions,\n };\n if (qg?.repeatText) {\n result = {\n ...result,\n repeatText: qg.repeatText,\n };\n }\n if (qg?.description) {\n result = {\n ...result,\n description: qg.description,\n };\n }\n if (qg?.translations) {\n result = clearTranslations(result, qg.translations);\n }\n return result;\n });\n return { ...webformData, question_group: output };\n};\n\nconst generateTranslations = (\n key,\n value,\n savedTranslations,\n existingTranslation\n) => {\n const newTranslations = [\n {\n language: existingTranslation,\n [key]: value,\n },\n ];\n let currentTranslations = null;\n if (savedTranslations && savedTranslations?.length) {\n currentTranslations = savedTranslations.map((tl) => {\n if (tl.language === existingTranslation) {\n return {\n ...tl,\n [key]: value,\n };\n }\n return tl;\n });\n const isExistingExist = findIndex(\n savedTranslations,\n (tr) => tr.language === existingTranslation\n );\n if (isExistingExist === -1) {\n currentTranslations = [...currentTranslations, ...newTranslations];\n }\n }\n return {\n newTranslations: newTranslations,\n currentTranslations: currentTranslations,\n };\n};\n\nconst data = {\n clear: clearQuestionObj,\n toWebform: toWebform,\n toEditor: toEditor,\n generateTranslations: generateTranslations,\n};\n\nexport default data;\n","import React, { useMemo } from 'react';\nimport { Input } from 'antd';\nimport { UIStore, formFn } from '../../lib/store';\nimport { TranslationFormItem } from '../../support';\nimport data from '../../lib/data';\n\nconst FormDefinitionTranslation = () => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}`;\n\n const existingTranslationValues = useMemo(() => {\n return formStore?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n }, [formStore, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n formStore?.translations,\n existingTranslation\n );\n formFn.store.update((u) => {\n u.translations = !currentTranslations\n ? newTranslations\n : currentTranslations;\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeDescription = (e) => {\n updateTranslation('description', e?.target?.value);\n };\n\n return (\n
\n {formStore?.name && (\n \n \n \n )}\n {formStore?.description && (\n \n \n \n )}\n
\n );\n};\n\nexport default FormDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport styles from '../../styles.module.css';\nimport { Card, Input } from 'antd';\nimport { CardTitle, TranslationFormItem } from '../../support';\nimport { UIStore, questionGroupFn, questionType } from '../../lib/store';\nimport data from '../../lib/data';\nimport orderBy from 'lodash/orderBy';\n\nconst QuestionSettingTranslation = ({\n id,\n questionGroupId,\n name,\n type,\n tooltip = {},\n allowOther,\n allowOtherText,\n options = [],\n translations = [],\n}) => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}-question-${id}`;\n\n const existingTranslationValues = useMemo(() => {\n return translations?.find((tl) => tl.language === existingTranslation);\n }, [translations, existingTranslation]);\n\n const existingTooltipTranslationValues = useMemo(() => {\n return tooltip?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n }, [tooltip, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeTooltip = (e) => {\n const key = 'text';\n const value = e?.target?.value;\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n tooltip?.translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id && q?.tooltip?.text) {\n return {\n ...q,\n tooltip: {\n ...q.tooltip,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeAllowOtherText = (e) => {\n updateTranslation('allowOtherText', e?.target?.value);\n };\n\n const handleChangeOptionName = (e, optionTranslations, optionId) => {\n const key = 'name';\n const value = e?.target?.value;\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n optionTranslations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (\n q.id === id &&\n [questionType.option, questionType.multiple_option].includes(\n q.type\n )\n ) {\n const options = q.options.map((opt) => {\n if (opt.id === optionId) {\n return {\n ...opt,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return opt;\n });\n return {\n ...q,\n options: options,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n {name && (\n \n \n \n )}\n {tooltip?.text && (\n \n \n \n )}\n {/* Option Translation */}\n {[questionType.option, questionType.multiple_option].includes(type) && (\n
\n

\n {UIText.questionMoreOptionTranslationText}\n

\n {allowOther && allowOtherText && (\n \n \n \n )}\n {orderBy(options, 'order')\n .filter((d) => d?.name)\n .map((d, di) => {\n const existingOptionTranslationValues = d?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n return (\n \n \n handleChangeOptionName(e, d?.translations, d.id)\n }\n />\n \n );\n })}\n
\n )}\n
\n );\n};\n\nconst QuestionDefinitionTranslation = ({ index, question }) => {\n const { id, name, order, questionGroupOrder } = question;\n const { activeEditTranslationQuestions } = UIStore.useState((s) => s);\n\n const isEditTranslationQuestion = useMemo(() => {\n return activeEditTranslationQuestions.includes(id);\n }, [activeEditTranslationQuestions, id]);\n\n const handleEditTranslationQuestion = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = [\n ...activeEditTranslationQuestions,\n id,\n ];\n });\n };\n\n const handleCancelEditTranslationQuestion = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = activeEditTranslationQuestions.filter(\n (qId) => qId !== id\n );\n });\n };\n\n const cardTitleButton = [\n {\n type: 'show-button',\n isExpand: isEditTranslationQuestion,\n onClick: handleEditTranslationQuestion,\n onCancel: handleCancelEditTranslationQuestion,\n },\n ];\n\n return (\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n }}\n bodyStyle={{\n padding: isEditTranslationQuestion ? 24 : 0,\n borderTop: isEditTranslationQuestion ? '1px solid #f3f3f3' : 'none',\n }}\n >\n {isEditTranslationQuestion && (\n \n )}\n \n );\n};\n\nexport default QuestionDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport { Card, Input } from 'antd';\nimport { UIStore, questionGroupFn } from '../../lib/store';\nimport { CardTitle, TranslationFormItem } from '../../support';\nimport QuestionDefinitionTranslation from './QuestionDefinitionTranslation';\nimport data from '../../lib/data';\nimport { uniq, difference, intersection } from 'lodash';\n\nconst QuestionGroupSettingTranslation = ({\n id,\n name,\n description,\n repeatable,\n repeatText,\n translations = [],\n}) => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}-question_group-${id}`;\n\n const existingTranslationValues = useMemo(() => {\n return translations?.find((tl) => tl.language === existingTranslation);\n }, [translations, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === id) {\n return {\n ...qg,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeDescription = (e) => {\n updateTranslation('description', e?.target?.value);\n };\n\n const handleChangeRepeatText = (e) => {\n updateTranslation('repeatText', e?.target?.value);\n };\n\n return (\n
\n {name && (\n \n \n \n )}\n {description && (\n \n \n \n )}\n {repeatable && repeatText && (\n \n \n \n )}\n
\n );\n};\n\nconst QuestionGroupDefinitionTranslation = ({ index, questionGroup }) => {\n const { id, name, order, questions } = questionGroup;\n const {\n activeTranslationQuestionGroups,\n activeEditTranslationQuestionGroups,\n activeEditTranslationQuestions,\n } = UIStore.useState((s) => s);\n const questionIds = questions.map((q) => q.id);\n\n const showTranslationQuestion = useMemo(() => {\n return activeTranslationQuestionGroups.includes(id);\n }, [activeTranslationQuestionGroups, id]);\n\n const isEditTranslationQuestionGroup = useMemo(() => {\n return activeEditTranslationQuestionGroups.includes(id);\n }, [activeEditTranslationQuestionGroups, id]);\n\n const handleHideTranslationQuestions = () => {\n UIStore.update((s) => {\n s.activeTranslationQuestionGroups =\n activeTranslationQuestionGroups.filter((qgId) => qgId !== id);\n });\n };\n\n const handleCancelEditTranslationGroup = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestionGroups =\n activeEditTranslationQuestionGroups.filter((qgId) => qgId !== id);\n });\n handleHideTranslationQuestions();\n };\n\n const handleEditTranslationGroup = () => {\n UIStore.update((s) => {\n if (!activeEditTranslationQuestionGroups.includes(id)) {\n s.activeEditTranslationQuestionGroups = [\n ...activeEditTranslationQuestionGroups,\n id,\n ];\n } else {\n s.activeEditTranslationQuestionGroups =\n activeEditTranslationQuestionGroups.filter((a) => a !== id);\n }\n });\n };\n\n const handleExpandAll = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestionGroups = uniq([\n ...activeEditTranslationQuestionGroups,\n id,\n ]);\n s.activeEditTranslationQuestions = uniq([\n ...s.activeEditTranslationQuestions,\n ...questionIds,\n ]);\n });\n };\n\n const handleCancelExpandAll = () => {\n handleCancelEditTranslationGroup();\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = difference(\n s.activeEditTranslationQuestions,\n questionIds\n );\n });\n };\n\n const cardTitleButton = [\n {\n type: 'show-button',\n isExpand: isEditTranslationQuestionGroup,\n onClick: handleEditTranslationGroup,\n onCancel: handleCancelEditTranslationGroup,\n },\n ];\n\n const cardExtraButton = [\n {\n type: 'expand-all-button',\n isExpand: intersection(activeEditTranslationQuestions, questionIds)\n .length,\n onClick: handleExpandAll,\n onCancel: handleCancelExpandAll,\n },\n ];\n\n return (\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n }}\n bodyStyle={{\n padding:\n isEditTranslationQuestionGroup || showTranslationQuestion ? 24 : 0,\n borderTop:\n isEditTranslationQuestionGroup || showTranslationQuestion\n ? '1px solid #f3f3f3'\n : 'none',\n }}\n extra={}\n >\n {isEditTranslationQuestionGroup && (\n \n )}\n {isEditTranslationQuestionGroup &&\n questions.map((q, qi) => (\n \n ))}\n \n );\n};\n\nexport default QuestionGroupDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport styles from '../styles.module.css';\nimport { Row, Col, Divider, Tag, Select, Form, Space } from 'antd';\nimport { UIStore, formFn, questionGroupFn } from '../lib/store';\nimport {\n FormDefinitionTranslation,\n QuestionGroupDefinitionTranslation,\n} from './translations';\n\nconst staticDefaultLang = 'en';\n\nconst ExistingTranslation = () => {\n const { localeDropdownValue, existingTranslation } = UIStore.useState(\n (s) => s\n );\n const formStore = formFn.store.useState((s) => s);\n const languages = formStore?.languages || [];\n\n const handleCloseTag = (lang) => {\n UIStore.update((u) => {\n u.existingTranslation =\n existingTranslation === lang ? null : existingTranslation;\n });\n // remove deleted translation from translations list\n formFn.store.update((u) => {\n u.languages = languages.filter((ln) => ln !== lang);\n u.translations = formStore?.translations?.filter(\n (tl) => tl.language !== lang\n );\n });\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n const questions = qg.questions.map((q) => {\n let newObj = q;\n if (q?.options && q?.options?.length) {\n const options = q.options.map((op) => ({\n ...op,\n translations: op?.translations?.filter(\n (tl) => tl.language !== lang\n ),\n }));\n newObj = {\n ...newObj,\n options: options,\n };\n }\n return {\n ...newObj,\n translations: q?.translations?.filter((tl) => tl.language !== lang),\n };\n });\n return {\n ...qg,\n questions: questions,\n translations: qg?.translations?.filter((tl) => tl.language !== lang),\n };\n });\n });\n };\n\n return languages.map((lang) => {\n const findLang = localeDropdownValue.find((lc) => lc.value === lang);\n return (\n \n UIStore.update((u) => {\n u.existingTranslation = existingTranslation !== lang ? lang : null;\n })\n }\n >\n handleCloseTag(lang)}\n >\n {findLang.label}\n \n \n );\n });\n};\n\nconst FormTranslations = () => {\n const [formTranslation] = Form.useForm();\n const { UIText, localeDropdownValue } = UIStore.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s?.questionGroups\n );\n\n const languages = useMemo(() => {\n return formStore?.languages || [];\n }, [formStore?.languages]);\n\n const defaultLangDropdownValue = useMemo(() => {\n return localeDropdownValue.filter((ld) =>\n [staticDefaultLang, ...languages].includes(ld.value)\n );\n }, [localeDropdownValue, languages]);\n\n return (\n \n \n \n

{UIText.inputFormDefaultLanguageLabel}

\n \n formFn.store.update((u) => {\n u.defaultLanguage = e;\n })\n }\n value={formStore?.defaultLanguage || staticDefaultLang}\n disabled={defaultLangDropdownValue.length === 1}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n />\n \n \n

{UIText.inputFormTranslationLabel}

\n \n formFn.store.update((u) => {\n u.languages = [...languages, e];\n })\n }\n value={[]}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n >\n {localeDropdownValue.map((ld, ldi) => (\n \n {ld.label}\n \n ))}\n \n \n \n

{UIText.inputFormExistingTranslationsLabel}

\n \n \n \n \n \n \n \n \n {questionGroups.map((qg, qgi) => {\n return (\n \n );\n })}\n \n \n );\n};\n\nexport default FormTranslations;\n","import React from 'react';\nimport 'akvo-react-form/dist/index.css';\nimport { Webform } from 'akvo-react-form';\nimport { formFn, questionGroupFn } from '../lib/store';\nimport data from '../lib/data';\n\nconst FormPreview = () => {\n const { questionGroups } = questionGroupFn.store.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n\n return ;\n};\n\nexport default FormPreview;\n","import React, { useEffect } from 'react';\nimport { Form, Input } from 'antd';\nimport { UIStore, formFn } from '../lib/store';\n\nconst FormDefinition = ({ name, description }) => {\n const form = Form.useFormInstance();\n const UIText = UIStore.useState((s) => s.UIText);\n const { inputFormNameLabel, inputFormDescriptionLabel } = UIText;\n\n useEffect(() => {\n form.setFieldsValue({ 'form-name': name });\n form.setFieldsValue({ 'form-description': description });\n }, [form, name, description]);\n\n return (\n \n \n \n formFn.store.update((u) => {\n u.name = e?.target?.value;\n })\n }\n />\n \n \n \n formFn.store.update((u) => {\n u.description = e?.target?.value;\n })\n }\n />\n \n \n );\n};\n\nexport default FormDefinition;\n","import React from 'react';\nimport { Form, Input, Checkbox, Row, Col } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionGroupFn } from '../lib/store';\n\nconst QuestionGroupSetting = ({\n id,\n name,\n description,\n repeatable,\n repeatText,\n}) => {\n const namePreffix = `question_group-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n\n const handleChangeName = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, name: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n const handleChangeDescription = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, description: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n const handleChangeRepeatable = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, repeatable: e?.target?.checked };\n }\n return x;\n });\n });\n };\n\n const handleChangeRepeatText = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, repeatText: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n {' '}\n {UIText.inputRepeatThisGroupCheckbox}\n \n \n \n {repeatable && (\n \n \n \n \n \n )}\n \n
\n );\n};\n\nexport default QuestionGroupSetting;\n","import React from 'react';\nimport { Form, Checkbox, Space } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingInput = ({\n id,\n questionGroupId,\n requiredDoubleEntry,\n hiddenString,\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n\n const updateState = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeDoubleEntry = (e) => {\n updateState('requiredDoubleEntry', e?.target?.checked);\n };\n\n const handleChangeHiddenString = (e) => {\n updateState('hiddenString', e?.target?.checked);\n };\n\n return (\n
\n

\n {UIText.questionMoreInputTypeSettingText}\n

\n \n \n \n {' '}\n {UIText.inputQuestionRequireDoubleEntryCheckbox}\n \n \n \n \n {' '}\n {UIText.inputQuestionHiddenStringCheckbox}\n \n \n \n
\n );\n};\n\nexport default SettingInput;\n","import React from 'react';\nimport { Form, Checkbox, Space, InputNumber, Row, Col } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingNumber = ({\n id,\n questionGroupId,\n rule = {\n allowDecimal: false,\n min: null,\n max: null,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const allowDecimal = rule?.allowDecimal;\n const min = rule?.min;\n const max = rule?.max;\n\n const moreNumberSettings = [\n {\n label: UIText.inputQuestionMinimumValueLabel,\n value: min,\n key: 'min',\n rules: {\n max: max - 1,\n message: `${UIText.inputQuestionMinimumValidationText} ${max}`,\n },\n },\n {\n label: UIText.inputQuestionMaximumValueLabel,\n value: max,\n key: 'max',\n rules: {\n min: min + 1,\n message: `${UIText.inputQuestionMaximumValidationText} ${min}`,\n },\n },\n ];\n\n const updateState = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n rule: {\n ...q?.rule,\n [name]: value,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeAllowDecimal = (e) => {\n updateState('allowDecimal', e?.target?.checked);\n };\n\n const handleChangeMinMax = (key, e) => {\n updateState(key, e);\n };\n\n return (\n
\n

\n {UIText.questionMoreInputNumberSettingText}\n

\n \n \n \n {' '}\n {UIText.inputQuestionAllowDecimalCheckbox}\n \n \n \n \n {moreNumberSettings.map((x) => (\n \n \n handleChangeMinMax(x.key, e)}\n />\n \n \n ))}\n \n
\n );\n};\n\nexport default SettingNumber;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Checkbox, Space, Row, Col, Input, Button } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn, generateId } from '../../lib/store';\nimport {\n MdOutlineRemoveCircleOutline,\n MdOutlineAddCircleOutline,\n MdOutlineArrowCircleDown,\n MdOutlineArrowCircleUp,\n} from 'react-icons/md';\nimport { orderBy, takeRight } from 'lodash';\n\nconst defaultOptions = ({ init = false, order = 0 }) => {\n const option = {\n code: null,\n name: 'New Option',\n order: 1,\n };\n if (init) {\n return [\n {\n ...option,\n id: generateId(),\n name: 'New Option 1',\n order: 1,\n },\n {\n ...option,\n id: generateId() + 1,\n name: 'New Option 2',\n order: 2,\n },\n ];\n }\n return {\n ...option,\n id: generateId(),\n order: order,\n };\n};\n\nconst SettingOption = ({\n id,\n questionGroupId,\n allowOther,\n allowOtherText,\n options: initialOptions,\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const [options, setOptions] = useState(\n initialOptions?.length\n ? initialOptions.map((x, xi) => ({\n ...x,\n code: x?.code || null,\n id: x?.id || generateId() + xi,\n order: x?.order || xi + 1,\n }))\n : defaultOptions({ init: true })\n );\n\n const updateState = useCallback(\n (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n useEffect(() => {\n updateState('options', options);\n }, [options, id, questionGroupId, updateState]);\n\n const handleOnChangeAllowOther = (e) => {\n updateState('allowOther', e?.target?.checked);\n };\n\n const handleOnChangeAllowOtherText = (e) => {\n updateState('allowOtherText', e?.target?.value);\n };\n\n const handleOnChangeCode = (e, current) => {\n const { id: currentId } = current;\n setOptions(\n options.map((opt) => {\n if (opt.id === currentId) {\n return {\n ...opt,\n code: e?.target?.value,\n };\n }\n return opt;\n })\n );\n };\n\n const handleOnChangeOption = (e, current) => {\n const { id: currentId } = current;\n setOptions(\n options.map((opt) => {\n if (opt.id === currentId) {\n return {\n ...opt,\n name: e?.target?.value,\n };\n }\n return opt;\n })\n );\n };\n\n const handleOnAddOption = (current) => {\n const { order: currentOrder } = current;\n const lastOrder = takeRight(orderBy(options, 'order'))[0].order;\n // reorder prev option\n const reorderOptions = options.map((opt) => {\n if (opt.order > currentOrder) {\n opt['order'] = opt['order'] + 1;\n }\n if (\n opt.order < currentOrder &&\n opt.order !== 1 &&\n currentOrder !== lastOrder\n ) {\n opt['order'] = opt['order'] - 1;\n }\n return opt;\n });\n const addOptions = [\n ...reorderOptions,\n defaultOptions({ order: currentOrder + 1 }),\n ];\n setOptions(orderBy(addOptions, 'order'));\n };\n\n const handleOnMoveOption = (current, targetOrder) => {\n const { order: currentOrder } = current;\n\n const prevOptions = options.filter(\n (opt) => opt.order !== currentOrder && opt.order !== targetOrder\n );\n const currentOption = options\n .filter((opt) => opt.order === currentOrder)\n .map((opt) => ({\n ...opt,\n order: targetOrder,\n }));\n const targetOption = options\n .filter((opt) => opt.order === targetOrder)\n .map((opt) => ({\n ...opt,\n order: currentOrder,\n }));\n setOptions(\n orderBy([...prevOptions, ...currentOption, ...targetOption], 'order')\n );\n };\n\n const handleOnDeleteOption = (currentId) => {\n // delete and reorder\n setOptions(\n orderBy(options, 'order')\n .filter((opt) => opt.id !== currentId)\n .map((opt, opti) => ({ ...opt, order: opti + 1 }))\n );\n };\n\n return (\n
\n

\n {UIText.questionMoreOptionTypeSettingText}\n

\n \n \n \n \n {' '}\n {UIText.inputQuestionAllowOtherCheckbox}\n \n \n \n {allowOther && (\n \n \n \n \n \n )}\n \n {orderBy(options, 'order').map((d, di) => (\n \n \n \n handleOnChangeCode(e, d)}\n allowClear\n />\n \n \n \n \n handleOnChangeOption(e, d)}\n allowClear\n />\n \n \n \n \n }\n onClick={() => handleOnAddOption(d)}\n />\n }\n onClick={() => handleOnMoveOption(d, d.order - 1)}\n disabled={di === 0}\n />\n }\n onClick={() => handleOnMoveOption(d, d.order + 1)}\n disabled={di === options.length - 1}\n />\n }\n onClick={() => handleOnDeleteOption(d.id)}\n disabled={options.length === 1}\n />\n \n \n \n ))}\n
\n );\n};\n\nexport default SettingOption;\n","import React from 'react';\nimport { Form, Select } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingTree = ({ id, questionGroupId, option }) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingTreeDropdownValue = hostParams?.settingTreeDropdownValue;\n\n const handleChangeTreeDropdown = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n option: e,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreTreeSettingText}\n

\n \n triggerNode.parentElement}\n onChange={handleChangeTreeDropdown}\n />\n \n
\n );\n};\n\nexport default SettingTree;\n","import React, { useMemo } from 'react';\nimport { Form, Checkbox, Row, Col, Input, InputNumber, Select } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingCascade = ({\n id,\n questionGroupId,\n api = {\n endpoint: null,\n initial: 0,\n list: false,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingCascadeURL = hostParams?.settingCascadeURL;\n const form = Form.useFormInstance();\n\n const cascadeURLDropdownValue = useMemo(() => {\n return settingCascadeURL.map((x) => ({ label: x.name, value: x.id }));\n }, [settingCascadeURL]);\n\n const updateGlobalState = (values = {}) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n api: {\n ...q?.api,\n ...values,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeEndpoint = (e) => {\n const findURL = settingCascadeURL.find((x) => x.id === e);\n if (findURL) {\n form.setFieldsValue({\n [`${namePreffix}-api_initial`]: findURL.initial,\n [`${namePreffix}-api_list`]: findURL.list,\n });\n updateGlobalState({\n endpoint: findURL.endpoint,\n initial: findURL.initial || 0,\n list: findURL.list || false,\n });\n }\n };\n\n const handleChangeInitial = (e) => {\n updateGlobalState({ initial: e });\n };\n\n const handleChangeList = (value) => {\n updateGlobalState({\n list: value,\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreCascadeSettingText}\n

\n \n \n \n triggerNode.parentElement}\n onChange={handleChangeEndpoint}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n handleChangeList(e?.target?.checked)}\n checked={api?.list ? true : false}\n >\n {' '}\n {UIText.inputQuestionListCheckbox}\n \n \n \n {api?.list && (\n \n \n handleChangeList(e?.target?.value)}\n allowClear\n />\n \n \n )}\n \n
\n );\n};\n\nexport default SettingCascade;\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","import React from 'react';\nimport { Form, DatePicker, Row, Col } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\nimport moment from 'moment';\nimport isEmpty from 'lodash/isEmpty';\n\nconst SettingDate = ({\n id,\n questionGroupId,\n rule = { minDate: null, maxDate: null },\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const minDate = rule?.minDate;\n const maxDate = rule?.maxDate;\n\n const moreDateSettings = [\n {\n label: UIText.inputQuestionAfterDateValueLabel,\n value: minDate,\n key: 'minDate',\n disabledDate: (current) =>\n current && maxDate && current >= moment(maxDate),\n },\n {\n label: UIText.inputQuestionBeforeDateValueLabel,\n value: maxDate,\n key: 'maxDate',\n disabledDate: (current) =>\n current && minDate && current <= moment(minDate),\n },\n ];\n\n const handleChangeAfterBefore = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n if (value) {\n return {\n ...q,\n rule: {\n ...q?.rule,\n [name]: moment(value).format('YYYY-MM-DD'),\n },\n };\n }\n if (!value && q?.rule?.[name]) {\n delete q.rule[name];\n if (isEmpty(q.rule)) {\n delete q.rule;\n }\n }\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreInputDateSettingText}\n

\n \n {moreDateSettings.map((x) => (\n \n \n handleChangeAfterBefore(x.key, e)}\n />\n \n \n ))}\n \n
\n );\n};\n\nexport default SettingDate;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Input, Select, Row, Col, Card, Button, Space } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn, generateId } from '../../lib/store';\nimport {\n MdOutlineRemoveCircleOutline,\n MdOutlineAddCircleOutline,\n MdOutlineArrowCircleDown,\n MdOutlineArrowCircleUp,\n} from 'react-icons/md';\nimport { takeRight, orderBy } from 'lodash';\n\nconst generateColumnName = (text) =>\n text.trim().toLowerCase().split(' ').join('_');\n\nconst columnType = {\n input: 'input',\n number: 'number',\n option: 'option',\n text: 'text',\n};\n\nconst defaultColumns = ({ init = false }) => {\n const column = {\n name: null,\n label: null,\n type: null,\n };\n if (init) {\n return [{ ...column, id: generateId() }];\n }\n return { ...column, id: generateId() };\n};\n\nconst defaultColumnOptions = ({ init = false, order = 0 }) => {\n const option = {\n name: 'New Option',\n order: 1,\n };\n if (init) {\n return [{ ...option, id: generateId() }];\n }\n return { ...option, id: generateId(), order: order };\n};\n\nconst SettingTable = ({ id, questionGroupId, columns: initialColumns }) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const [columns, setColumns] = useState(\n initialColumns?.length\n ? initialColumns.map((cl, cli) => {\n if (cl?.options && cl?.options?.length) {\n const options = cl.options.map((op, opi) => ({\n ...op,\n id: op?.id || generateId() + initialColumns.length + opi + 1,\n }));\n return {\n ...cl,\n id: cl?.id || generateId() + cli,\n options: options,\n };\n }\n return {\n ...cl,\n id: cl?.id || generateId() + cli,\n };\n })\n : defaultColumns({ init: true })\n );\n\n const columnTypeOptions = Object.keys(columnType).map((key) => ({\n label: columnType[key],\n value: key,\n }));\n\n useEffect(() => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return { ...q, columns: columns };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n }, [id, questionGroupId, columns]);\n\n const updateColumns = useCallback(\n (columnId, obj) => {\n const updatedColumn = columns.map((cl) => {\n if (cl.id === columnId) {\n return {\n ...cl,\n ...obj,\n };\n }\n return cl;\n });\n setColumns(updatedColumn);\n },\n [columns]\n );\n\n const handleChangeColumnName = (columnId, value) => {\n updateColumns(columnId, { name: generateColumnName(value), label: value });\n };\n\n const handleChangeColumnType = (columnId, value) => {\n let obj = { type: value };\n if (value === columnType.option) {\n obj = { ...obj, options: defaultColumnOptions({ init: true }) };\n }\n updateColumns(columnId, obj);\n };\n\n const handleAddColumn = () => {\n const addColumns = [...columns, defaultColumns({ init: false })];\n setColumns(addColumns);\n };\n\n const handleDeleteColumn = (currentColumn) => {\n const updatedColumn = columns.filter((cl) => cl.id !== currentColumn.id);\n setColumns(updatedColumn);\n };\n\n const handleOnAddOption = (currentColumn, currentOption) => {\n const { id: columnId, options } = currentColumn;\n const { order: currentOrder } = currentOption;\n const lastOrder = takeRight(orderBy(options, 'order'))[0].order;\n // reorder prev option\n const reorderOptions = options.map((opt) => {\n let order = opt.order;\n if (opt.order > currentOrder) {\n order = order + 1;\n }\n if (\n opt.order < currentOrder &&\n opt.order !== 1 &&\n currentOrder !== lastOrder\n ) {\n order = order - 1;\n }\n return { ...opt, order: order };\n });\n const addOptions = [\n ...reorderOptions,\n defaultColumnOptions({ order: currentOrder + 1 }),\n ];\n updateColumns(columnId, { options: addOptions });\n };\n\n const handleOnMoveOption = (currentColumn, currentOption, targetOrder) => {\n const { id: columnId, options } = currentColumn;\n const { order: currentOrder } = currentOption;\n // handle move\n const prevOptions = options.filter(\n (opt) => opt.order !== currentOrder && opt.order !== targetOrder\n );\n const currentOptions = options\n .filter((opt) => opt.order === currentOrder)\n .map((opt) => ({\n ...opt,\n order: targetOrder,\n }));\n const targetOptions = options\n .filter((opt) => opt.order === targetOrder)\n .map((opt) => ({\n ...opt,\n order: currentOrder,\n }));\n updateColumns(columnId, {\n options: orderBy(\n [...prevOptions, ...currentOptions, ...targetOptions],\n 'order'\n ),\n });\n };\n\n const handleOnDeleteOption = (currentColumn, currentOptionId) => {\n const { id: columnId, options } = currentColumn;\n // delete and reorder\n updateColumns(columnId, {\n options: orderBy(options, 'order')\n .filter((opt) => opt.id !== currentOptionId)\n .map((opt, opti) => ({ ...opt, order: opti + 1 })),\n });\n };\n\n const handleOnChangeOption = (currentColumn, currentOption, value) => {\n const { id: columnId, options } = currentColumn;\n const { id: currentOptId } = currentOption;\n const updatedOptions = options.map((op) => {\n if (op.id === currentOptId) {\n return {\n ...op,\n name: value,\n };\n }\n return op;\n });\n updateColumns(columnId, { options: updatedOptions });\n };\n\n return (\n
\n

{UIText.questionMoreTableTypeSettingText}

\n {columns.map((cl, cli) => {\n return (\n \n {`Column - ${cli + 1}`}\n \n \n }\n onClick={() => handleAddColumn()}\n />\n }\n onClick={() => handleDeleteColumn(cl)}\n disabled={columns.length === 1}\n />\n \n \n \n }\n >\n \n \n \n \n handleChangeColumnName(cl.id, e?.target?.value)\n }\n />\n \n \n \n \n \n triggerNode.parentElement\n }\n onChange={(val) => handleChangeColumnType(cl.id, val)}\n />\n \n \n \n {cl.type === columnType.option && (\n
\n

{UIText.questionTableTypeDefineOptionsText}

\n {cl?.options?.map((op, opi) => {\n return (\n \n \n \n \n handleOnChangeOption(cl, op, e?.target?.value)\n }\n />\n \n \n \n \n }\n onClick={() => handleOnAddOption(cl, op)}\n />\n }\n onClick={() =>\n handleOnMoveOption(cl, op, op.order - 1)\n }\n disabled={opi === 0}\n />\n }\n onClick={() =>\n handleOnMoveOption(cl, op, op.order + 1)\n }\n disabled={opi === cl.options.length - 1}\n />\n }\n onClick={() => handleOnDeleteOption(cl, op.id)}\n disabled={cl.options.length === 1}\n />\n \n \n \n );\n })}\n
\n )}\n \n
\n \n );\n })}\n
\n );\n};\n\nexport default SettingTable;\n","import React, { useMemo } from 'react';\nimport styles from '../styles.module.css';\nimport { Form, Row, Col, Select, Input } from 'antd';\nimport { UIStore, questionGroupFn } from '../lib/store';\nimport { useCallback } from 'react';\n\nconst QuestionHint = ({\n id,\n questionGroupId,\n hint = {\n id: null,\n endpoint: null,\n path: [],\n static: null,\n buttonText: null,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingHintURL = hostParams?.settingHintURL?.settings;\n const form = Form.useFormInstance();\n\n const updateGlobalState = useCallback(\n (values = {}) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n hint: {\n ...q?.hint,\n ...values,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const hintURLDropdownValue = useMemo(() => {\n return settingHintURL && settingHintURL?.length\n ? settingHintURL.map((x) => ({\n label: x.name,\n value: x.id,\n }))\n : [];\n }, [settingHintURL]);\n\n const hintPathDropdownValue = useMemo(() => {\n let endpoint = hint?.endpoint;\n if (hint?.endpoint && endpoint.includes(String(id))) {\n endpoint = endpoint.replace(`/${String(id)}`, '');\n }\n const findURL = settingHintURL.find(\n (x) => x.id === hint?.id || x.endpoint === endpoint\n );\n updateGlobalState({ id: findURL?.id });\n return findURL?.path || [];\n }, [settingHintURL, hint?.id, hint?.endpoint, id, updateGlobalState]);\n\n const handleChangeEndpoint = (e) => {\n const findURL = settingHintURL.find((x) => x.id === e);\n form.setFieldsValue({\n [`${namePreffix}-hint_path`]: [],\n });\n updateGlobalState({\n id: e, // set current URL id\n endpoint: findURL?.endpoint ? `${findURL.endpoint}/${id}` : null,\n path: [],\n });\n };\n\n const handleChangePath = (val) => {\n updateGlobalState({\n path: val,\n });\n };\n\n const handleChangeStaticValue = (e) => {\n updateGlobalState({\n id: null,\n static: e?.target?.value,\n endpoint: null,\n path: [],\n });\n };\n\n const handleChangeButtonText = (e) => {\n updateGlobalState({\n buttonText: e?.target?.value,\n });\n };\n\n return (\n
\n

\n {UIText.questionHintSettingText}\n

\n \n \n \n triggerNode.parentElement}\n onChange={handleChangeEndpoint}\n value={hint?.id}\n disabled={hint?.static}\n />\n \n \n \n \n \n \n \n triggerNode.parentElement}\n onChange={handleChangePath}\n disabled={hint?.static}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default QuestionHint;\n","import React, { useCallback, useMemo } from 'react';\nimport { Form, Input, Select, Checkbox, Alert, Row, Col, Popover } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionType, questionGroupFn } from '../lib/store';\nimport {\n SettingInput,\n SettingTree,\n SettingNumber,\n SettingOption,\n SettingCascade,\n SettingDate,\n SettingTable,\n} from './question-type';\nimport QuestionHint from './QuestionHint';\nimport { map, groupBy, orderBy, isEmpty } from 'lodash';\nimport { AiOutlineQuestionCircle } from 'react-icons/ai';\n\nconst QuestionSetting = ({ question, dependant }) => {\n const {\n id,\n name,\n type,\n variable,\n tooltip,\n required,\n questionGroupId,\n meta,\n disableDelete,\n } = question;\n const namePreffix = `question-${id}`;\n const form = Form.useFormInstance();\n const qType = Form.useWatch(`${namePreffix}-type`, form);\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const limitQuestionType = hostParams?.limitQuestionType;\n const settingHintURL = hostParams?.settingHintURL;\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n\n const disableMetaForGeo = useMemo(() => {\n const metaGeoQuestionDefined = questionGroups\n .flatMap((qg) =>\n qg.questions.filter((q) => q.type === questionType.geo && q?.meta)\n )\n .map((q) => q.id);\n return (\n type === questionType.geo &&\n metaGeoQuestionDefined.length &&\n !metaGeoQuestionDefined.includes(id)\n );\n }, [questionGroups, type, id]);\n\n const showMetaCheckbox = useMemo(() => {\n const currentQuestionGroup = questionGroups.find(\n (qg) => qg.id === questionGroupId\n );\n return (\n ![questionType.tree, questionType.table].includes(type) &&\n !currentQuestionGroup?.repeatable\n );\n }, [type, questionGroups, questionGroupId]);\n\n const questionTypeDropdownValue = useMemo(() => {\n if (limitQuestionType && limitQuestionType?.length) {\n return limitQuestionType;\n }\n return Object.keys(questionType).map((key) => ({\n label: questionType[key]?.split('_').join(' '),\n value: questionType[key],\n }));\n }, [limitQuestionType]);\n\n const showHintSetting = useMemo(() => {\n if (!settingHintURL || !settingHintURL?.settings?.length) {\n return false;\n }\n if (\n settingHintURL?.questionTypes &&\n settingHintURL?.questionTypes?.length\n ) {\n return settingHintURL.questionTypes.includes(type);\n }\n return settingHintURL?.settings?.length;\n }, [settingHintURL, type]);\n\n const updateState = useCallback(\n (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const defaultTypeValue = useMemo(() => {\n if (questionTypeDropdownValue.length) {\n const checkType = questionTypeDropdownValue.find((x) => x.value === type);\n if (checkType) {\n return type;\n }\n if (!isEmpty(defaultQuestionParam) && defaultQuestionParam?.type) {\n updateState('type', defaultQuestionParam.type);\n return defaultQuestionParam.type;\n }\n const checkText = questionTypeDropdownValue.find(\n (x) => x.value === questionType.text\n );\n const defType = checkText\n ? checkText.value\n : questionTypeDropdownValue?.[0]?.value;\n updateState('type', defType);\n return defType;\n }\n return type;\n }, [type, questionTypeDropdownValue, defaultQuestionParam, updateState]);\n\n const handleChangeName = (e) => {\n updateState('name', e?.target?.value);\n };\n\n const handleChangeType = (e) => {\n updateState('type', e);\n };\n\n const handleChangeVariableName = (e) => {\n updateState('variableName', e?.target?.value);\n };\n\n const handleChangeTooltip = (e) => {\n const value = e?.target?.value;\n if (value) {\n updateState('tooltip', { ...tooltip, text: value });\n } else {\n updateState('tooltip', null);\n }\n };\n\n const handleChangeRequired = (e) => {\n updateState('required', e?.target?.checked);\n };\n\n const handleChangeMeta = (e) => {\n updateState('meta', e?.target?.checked);\n };\n\n const dependantGroup = map(\n groupBy(\n dependant.map((x) => ({\n name: `${x.questionGroup.order}.${x.order}. ${x.name}`,\n group: `${x.questionGroup.order}. ${x.questionGroup.name}`,\n })),\n 'group'\n ),\n (i, g) => ({\n items: orderBy(i, 'name'),\n group: g,\n })\n );\n\n return (\n
\n {!!dependant.length && (\n \n
    \n Dependant Questions:\n {dependantGroup.map((d, di) => (\n
  • \n {d.group}\n
      \n {d.items.map((i, ii) => (\n
    • {i.name}
    • \n ))}\n
    \n
  • \n ))}\n
\n
\n }\n type=\"info\"\n style={{ marginBottom: 24 }}\n />\n )}\n \n \n \n \n triggerNode.parentElement}\n onChange={handleChangeType}\n disabled={dependant.length || disableDelete}\n />\n \n \n \n \n \n \n \n \n \n \n \n {' '}\n {UIText.inputQuestionRequiredCheckbox}\n \n \n \n {showMetaCheckbox && (\n \n
\n \n \n {' '}\n {UIText.inputQuestionMetaCheckbox}\n \n {UIText.inputQuestionMetaCheckboxHint}}\n >\n \n \n \n
\n \n )}\n \n {showHintSetting && }\n {qType === questionType.input && }\n {qType === questionType.number && }\n {[questionType.option, questionType.multiple_option].includes(qType) && (\n \n )}\n {qType === questionType.tree && }\n {qType === questionType.cascade && }\n {qType === questionType.date && }\n {qType === questionType.table && }\n \n );\n};\n\nexport default QuestionSetting;\n","import React, { useMemo, useState, useEffect, useCallback } from 'react';\nimport {\n Form,\n Select,\n Row,\n Col,\n InputNumber,\n Input,\n Alert,\n Space,\n DatePicker,\n} from 'antd';\nimport styles from '../styles.module.css';\nimport { ButtonWithIcon } from '../support';\nimport {\n UIStore,\n questionGroupFn,\n generateId,\n questionType,\n} from '../lib/store';\nimport { groupBy, map } from 'lodash';\nimport moment from 'moment';\n\nconst dependencyTypes = [\n {\n type: [questionType.option, questionType.multiple_option],\n logicDropdowns: [\n {\n label: 'contains',\n value: 'options',\n },\n ],\n },\n {\n type: [questionType.number],\n logicDropdowns: [\n {\n label: 'not equal',\n value: 'notEqual',\n },\n {\n label: 'less than',\n value: 'max',\n },\n {\n label: 'greater than',\n value: 'min',\n },\n ],\n },\n {\n type: [questionType.date],\n logicDropdowns: [\n {\n label: 'before',\n value: 'before',\n },\n {\n label: 'after',\n value: 'after',\n },\n ],\n },\n];\n\nconst defaultSkipLogic = () => {\n return [\n {\n id: generateId(),\n dependentTo: null,\n dependentToType: null,\n dependentLogic: null,\n dependentAnswer: null,\n dependencyLogicDropdownValue: [],\n dependencyAnswerDropdownValue: [],\n },\n ];\n};\n\nconst fetchDependencyLogicDropdown = (question) => {\n const value = dependencyTypes.find((dt) =>\n dt.type.includes(question.type)\n )?.logicDropdowns;\n return value || [];\n};\n\nconst fetchDependencyAnswerDropdown = (question) => {\n if (question?.options) {\n return question.options.map((opt) => ({\n label: opt.name,\n value: opt.name,\n }));\n }\n return [];\n};\n\nconst transformDependencyValue = (dependency, questionGroups) => {\n // transform dependency to match default skip logic format\n const questions = questionGroups.flatMap((qg) => qg.questions);\n const logicDropdowns = dependencyTypes\n .flatMap((d) => d.logicDropdowns)\n .map((x) => x.value);\n const value = dependency.map((d) => {\n let dependentLogic = null;\n const dependentAnswer = logicDropdowns\n .map((lg) => {\n if (d?.[lg]) {\n dependentLogic = lg;\n }\n return d?.[lg];\n })\n .filter((x) => x)?.[0];\n const findQ = questions.find((q) => q.id === d.id);\n return {\n id: generateId(),\n dependentTo: d.id,\n dependentToType: findQ.type,\n dependentLogic: dependentLogic,\n dependentAnswer: dependentAnswer,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(findQ),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(findQ),\n };\n });\n return value;\n};\n\nconst SettingSkipLogic = ({\n question,\n questions,\n dependency,\n dependencies,\n setDependencies,\n dependentToQuestions,\n}) => {\n const { id, questionGroupId, dependency: savedDependency } = question;\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const form = Form.useFormInstance();\n\n const updateGlobalStore = useCallback(\n (dependencyValue, isDelete = false) => {\n const transformDependencies = dependencyValue\n .map((dp) => {\n return {\n id: dp.dependentTo,\n [dp.dependentLogic]: dp.dependentAnswer,\n };\n })\n .filter((d) => d.id);\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id && !isDelete) {\n return {\n ...q,\n dependency: transformDependencies,\n };\n }\n if (q.id === id && !isDelete && !transformDependencies.length) {\n q.dependency && delete q.dependency;\n return q;\n }\n if (q.id === id && isDelete && transformDependencies.length) {\n return {\n ...q,\n dependency: transformDependencies,\n };\n }\n if (q.id === id && isDelete && !transformDependencies.length) {\n q.dependency && delete q.dependency;\n return q;\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n useEffect(() => {\n // add dependency to global store if all dependency value defined\n const checkDependencies = dependencies.filter((dp) => {\n if (\n dp.dependentTo &&\n dp.dependentLogic &&\n Array.isArray(dp.dependentAnswer) &&\n dp.dependentAnswer.length\n ) {\n return dp;\n }\n if (\n dp.dependentTo &&\n dp.dependentLogic &&\n !Array.isArray(dp.dependentAnswer) &&\n dp.dependentAnswer\n ) {\n return dp;\n }\n });\n if (checkDependencies.length) {\n updateGlobalStore(checkDependencies);\n }\n }, [dependencies, id, questionGroupId, updateGlobalStore]);\n\n const updateLocalState = useCallback(\n (dependencyId, values = {}) => {\n const updatedDependencies = dependencies\n .map((d) => {\n if (d.id === dependencyId) {\n return {\n ...d,\n ...values,\n };\n }\n return d;\n })\n .filter((d) =>\n dependencyTypes.flatMap((dt) => dt.type).includes(d.dependentToType)\n );\n setDependencies(updatedDependencies);\n },\n [dependencies, setDependencies]\n );\n\n useEffect(() => {\n // delete logic if dependentTo question type changed\n setTimeout(() => {\n const checkChangedType = dependencies\n .map((d) => {\n const findQ = questions.find((q) => q.id === d.dependentTo);\n if (findQ?.id && findQ.type !== d.dependentToType) {\n return findQ;\n }\n return false;\n })\n .filter((x) => x);\n if (dependencies.length && checkChangedType.length) {\n checkChangedType.forEach((q) => {\n const updatedDependency = dependencies.find(\n (d) => d.dependentTo === q.id\n );\n updateLocalState(updatedDependency.id, {\n ...updatedDependency,\n dependentToType: q.type,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(q),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(q),\n });\n form.setFieldsValue({\n [`${namePreffix}-dependent_logic-${updatedDependency.id}`]: null,\n });\n });\n }\n }, 500);\n }, [dependencies, questions, form, namePreffix, updateLocalState]);\n\n const handleChangeDependentTo = (dependencyId, e) => {\n const question = questions.find((q) => q.id === e);\n const values = {\n dependentTo: e,\n dependentToType: question.type,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(question),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(question),\n };\n updateLocalState(dependencyId, values);\n };\n\n const handleChangeDependentLogic = (dependencyId, e) => {\n updateLocalState(dependencyId, { dependentLogic: e });\n };\n\n const handleChangeDependentAnswer = (dependencyId, val) => {\n updateLocalState(dependencyId, { dependentAnswer: val });\n // handle when answer value empty\n if (savedDependency?.length) {\n // delete dependency from global store\n const updatedDependencies = savedDependency.filter(\n (d) => d.id !== dependencyId\n );\n if (Array.isArray(val) && !val.length) {\n updateGlobalStore(updatedDependencies, true);\n return;\n }\n if (!Array.isArray(val) && !val) {\n updateGlobalStore(updatedDependencies, true);\n return;\n }\n }\n };\n\n const handleAddMoreDependency = () => {\n const newDependencies = [...dependencies, ...defaultSkipLogic()];\n setDependencies(newDependencies);\n };\n\n const handleDeleteDependentTo = (dependencyId) => {\n form.setFieldsValue({\n [`${namePreffix}-dependent_logic-${dependencyId}`]: null,\n });\n const updatedDependencies = dependencies.filter(\n (dependency) => dependency.id !== dependencyId\n );\n if (updatedDependencies.length) {\n setDependencies(updatedDependencies);\n } else {\n setDependencies(defaultSkipLogic());\n updateGlobalStore([], true);\n }\n };\n\n const dropdown = map(groupBy(dependentToQuestions, 'group'), (i, l) => ({\n label: l,\n item: i,\n })).map((g, gi) => ({ ...g, key: gi }));\n\n return (\n \n \n \n \n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentTo(dependency.id, e)}\n value={dependency.dependentTo || []}\n optionFilterProp=\"children\"\n >\n {dropdown.map((g) => (\n \n {g.item.map((dq) => (\n d.dependentTo)\n .includes(dq.value)}\n >\n {dq.label}\n \n ))}\n \n ))}\n \n \n \n \n \n handleDeleteDependentTo(dependency.id)}\n />\n \n \n \n \n \n \n \n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentLogic(dependency.id, e)}\n />\n \n \n \n \n {!dependency.dependentTo && }\n {/* Number */}\n {dependency.dependentToType === questionType.number && (\n handleChangeDependentAnswer(dependency.id, e)}\n value={dependency.dependentAnswer || null}\n />\n )}\n {/* Option / Multiple */}\n {[questionType.option, questionType.multiple_option].includes(\n dependency.dependentToType\n ) && (\n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentAnswer(dependency.id, e)}\n mode=\"multiple\"\n showSearch\n allowClear\n showArrow\n value={\n Array.isArray(dependency.dependentAnswer)\n ? dependency.dependentAnswer\n : dependency.dependentAnswer\n ? [dependency.dependentAnswer]\n : []\n }\n />\n )}\n {/* Date */}\n {dependency.dependentToType === questionType.date && (\n \n handleChangeDependentAnswer(\n dependency.id,\n moment(e).format('YYYY-MM-DD')\n )\n }\n />\n )}\n \n \n \n \n );\n};\n\nconst QuestionSkipLogic = ({ question }) => {\n const {\n id,\n questionGroupId,\n dependency,\n order: currentQuestionOrder,\n } = question;\n const UIText = UIStore.useState((s) => s.UIText);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const [dependencies, setDependencies] = useState(\n dependency?.length\n ? transformDependencyValue(dependency, questionGroups)\n : defaultSkipLogic()\n );\n\n const currentQuestionGroupOrder = useMemo(() => {\n return questionGroups.find((qg) => qg.id === questionGroupId)?.order;\n }, [questionGroups, questionGroupId]);\n\n const questions = useMemo(() => {\n return questionGroups\n .filter((qg) => qg.order <= currentQuestionGroupOrder) // filter by group order\n .flatMap((qg) => qg.questions)\n .filter(\n (q) =>\n (q.questionGroupId === questionGroupId &&\n q.order < currentQuestionOrder) ||\n q.questionGroupId !== questionGroupId\n ); // filter by question order\n }, [\n questionGroups,\n currentQuestionGroupOrder,\n currentQuestionOrder,\n questionGroupId,\n ]);\n\n // dependency question dropdown value\n const dependentToQuestions = useMemo(() => {\n return questions\n .filter((q) => dependencyTypes.flatMap((dt) => dt.type).includes(q.type))\n .map((q) => {\n const group = questionGroups.find((g) => g.id === q.questionGroupId);\n return {\n label: `${group.order}.${q.order}. ${q.name}`,\n value: q.id,\n group: `${group.order}. ${group.name}`,\n };\n });\n }, [questions, questionGroups]);\n\n if (!dependencies?.[0]?.dependentTo && !dependentToQuestions?.length) {\n return (\n \n );\n }\n\n return (\n \n {dependencies?.map((dependency, di) => (\n \n ))}\n \n );\n};\n\nexport default QuestionSkipLogic;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Input, Select } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionGroupFn } from '../lib/store';\n\nconst QuestionCustomParams = ({ question }) => {\n const { id, questionGroupId } = question;\n const namePreffix = `question-${id}`;\n const hostParams = UIStore.useState((s) => s.hostParams);\n const customParams = hostParams?.customParams;\n const [initLoad, setInitLoad] = useState(true);\n const [paramValue, setParamValue] = useState({});\n\n useEffect(() => {\n if (initLoad) {\n // initial value load\n const customParamObj = customParams?.params\n ?.map((cp) => {\n let findValue = question?.[cp.name];\n if (Array.isArray(findValue) && cp.type === 'input') {\n findValue = findValue[0];\n }\n if (findValue) {\n return { [cp.name]: findValue };\n }\n return false;\n })\n .filter((x) => x);\n if (customParamObj.length) {\n setParamValue(\n customParamObj.reduce((res, curr) => ({ ...res, ...curr }))\n );\n }\n setInitLoad(false);\n }\n }, [customParams, question, initLoad]);\n\n const updateGlobalStore = useCallback(\n (objKey, value, isDelete = false) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n if (isDelete && q?.[objKey]) {\n delete q[objKey];\n return q;\n }\n return { ...q, [objKey]: value };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const handleChangeParameterValue = (objKey, val) => {\n setParamValue({\n ...paramValue,\n [objKey]: val,\n });\n const isDelete = !val || !val?.length;\n const value = Array.isArray(val) ? val : [val];\n updateGlobalStore(objKey, value, isDelete);\n };\n\n return customParams?.params?.map((cp, cpi) => {\n let multipleProps = {};\n if (cp?.multiple) {\n multipleProps = {\n mode: 'multiple',\n showArrow: true,\n };\n }\n return (\n
\n \n {cp.type === 'option' && (\n handleChangeParameterValue(cp.name, val)}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n value={paramValue?.[cp.name] || []}\n {...multipleProps}\n />\n )}\n {cp.type === 'input' && (\n \n handleChangeParameterValue(cp.name, e?.target?.value)\n }\n value={paramValue?.[cp.name] || null}\n allowClear\n />\n )}\n \n
\n );\n });\n};\n\nexport default QuestionCustomParams;\n","import React, { useMemo, useState } from 'react';\nimport { Card, Tabs } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionFn, questionGroupFn } from '../lib/store';\nimport data from '../lib/data';\nimport QuestionSetting from './QuestionSetting';\nimport QuestionSkipLogic from './QuestionSkipLogic';\nimport QuestionCustomParams from './QuestionCustomParams';\nimport { ButtonAddMove, CardTitle, AlertPopup } from '../support';\nimport { orderBy, maxBy, minBy } from 'lodash';\n\nconst QuestionDefinition = ({ index, question, questionGroup, isLastItem }) => {\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const questions = questionGroup?.questions;\n const { UIText, hostParams, activeEditQuestions } = UIStore.useState(\n (s) => s\n );\n const movingQ = UIStore.useState((s) => s.activeMoveQuestion);\n const isCopying = UIStore.useState((s) => s.isCopyingQuestion);\n const [activeTab, setActiveTab] = useState('setting');\n const [isModalOpen, setIsModalOpen] = useState(false);\n const { id, questionGroupId, order, name, dependency, disableDelete } =\n question;\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const customParams = hostParams?.customParams;\n\n const enableCustomParams =\n customParams && customParams?.label && customParams?.params?.length;\n\n const allQuestions = questionGroups\n .map((qg) => qg.questions)\n .flatMap((x) => x)\n .map((q) => ({\n ...q,\n questionGroup: questionGroups.find((qg) => q.questionGroupId === qg.id),\n }));\n\n const dependant = useMemo(() => {\n const dependant = allQuestions.filter(\n (q) => q?.dependency?.filter((d) => d.id === id).length || false\n );\n\n let disabled = { current: false, last: false };\n\n const movingQDependency = maxBy(\n movingQ?.dependency?.map((q) => allQuestions.find((a) => a.id === q.id)),\n 'questionGroup.order'\n );\n if (movingQDependency?.questionGroup?.order >= questionGroup?.order) {\n disabled = {\n ...disabled,\n current:\n movingQDependency?.questionGroup?.order === questionGroup.order\n ? movingQDependency.order >= order\n : true,\n };\n disabled = {\n ...disabled,\n last:\n movingQDependency?.questionGroup?.order === questionGroup.order\n ? movingQDependency.order >= order + 1\n : true,\n };\n }\n const movingQDependant = minBy(\n allQuestions.filter(\n (q) =>\n q?.dependency?.filter((d) => d.id === movingQ?.id).length || false\n ),\n 'questionGroup.order'\n );\n if (movingQDependant?.questionGroup?.order <= questionGroup?.order) {\n disabled = {\n ...disabled,\n current:\n movingQDependant?.questionGroup?.order === questionGroup.order\n ? movingQDependant.order <= order - 1\n : true,\n };\n disabled = {\n ...disabled,\n last:\n movingQDependant?.questionGroup?.order === questionGroup.order\n ? movingQDependant.order <= order\n : true,\n };\n }\n return {\n disabled: disabled,\n dependant: dependant,\n };\n }, [id, order, questionGroup, allQuestions, movingQ]);\n\n const isEditQuestion = useMemo(() => {\n return activeEditQuestions.includes(id);\n }, [activeEditQuestions, id]);\n\n const handleEdit = () => {\n UIStore.update((s) => {\n s.activeEditQuestions = [...activeEditQuestions, id];\n });\n };\n\n const handleCancelEdit = () => {\n UIStore.update((s) => {\n s.activeEditQuestions = activeEditQuestions.filter((qId) => qId !== id);\n });\n };\n\n const handleCancelMove = () => {\n UIStore.update((s) => {\n s.isCopyingQuestion = false;\n s.activeMoveQuestion = null;\n movingQ === question ? null : question;\n });\n };\n\n const handleMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestion =\n movingQ === question && !s.isCopyingQuestion ? null : question;\n s.isCopyingQuestion = false;\n });\n };\n\n const handleCopy = () => {\n UIStore.update((s) => {\n s.activeMoveQuestion =\n movingQ === question && s.isCopyingQuestion ? null : question;\n s.isCopyingQuestion = !s.isCopyingQuestion;\n });\n };\n\n const handleDelete = () => {\n const newQuestions = questions\n .filter((q) => q.id !== id)\n .map((q) => {\n if (q.order > order) {\n return { ...q, order: q.order - 1 };\n }\n return q;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n return { ...qg, questions: newQuestions };\n }\n return qg;\n });\n });\n setIsModalOpen(false);\n };\n\n const handleOnAdd = (prevOrder) => {\n const prevQ = questions.filter((q) => q.order <= prevOrder);\n const nextQ = questions\n .filter((q) => q.order > prevOrder)\n .map((q) => ({\n ...q,\n order: q.order + 1,\n }));\n const newQ = {\n ...defaultQuestionParam,\n questionGroup: questionGroup,\n prevOrder: prevOrder,\n params: data.clear(['id', 'order', 'questionGroupId'], movingQ),\n };\n const newQuestions = [...prevQ, questionFn.add(newQ), ...nextQ];\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n return { ...qg, questions: orderBy(newQuestions, 'order') };\n }\n return qg;\n });\n });\n UIStore.update((s) => {\n s.activeMoveQuestion = null;\n s.isCopyingQuestion = false;\n });\n };\n\n const handleOnMove = (prevOrder, lastItem = false) => {\n const currentQ = {\n ...movingQ,\n questionGroupId: questionGroupId,\n order:\n questionGroupId !== movingQ.questionGroupId\n ? prevOrder + 1\n : movingQ.order < prevOrder\n ? prevOrder\n : prevOrder + 1,\n };\n const changedQg = questionGroups\n .filter(\n (qg) => qg.id === movingQ.questionGroupId || qg.id === questionGroupId\n )\n .map((qg) => {\n const addedQ = qg.id === questionGroupId ? currentQ : false;\n let newQuestions = qg.questions.filter((q) => q.id !== movingQ.id);\n if (\n questionGroupId !== movingQ.questionGroupId &&\n newQuestions.length < qg.questions.length\n ) {\n newQuestions = newQuestions.map((q, qi) => ({ ...q, order: qi + 1 }));\n }\n if (\n questionGroupId !== movingQ.questionGroupId &&\n qg.id === questionGroupId\n ) {\n newQuestions = newQuestions.map((x) => {\n if (lastItem) {\n return x;\n }\n if (x.order >= prevOrder + 1) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n }\n if (questionGroupId === movingQ.questionGroupId) {\n newQuestions = newQuestions.map((x) => {\n if (lastItem) {\n if (x.order > movingQ.order) {\n return { ...x, order: x.order - 1 };\n }\n return x;\n }\n if (\n prevOrder > movingQ.order &&\n x.order > movingQ.order &&\n x.order <= prevOrder\n ) {\n return { ...x, order: x.order - 1 };\n }\n if (\n prevOrder < movingQ.order &&\n x.order < movingQ.order &&\n x.order >= prevOrder + 1\n ) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n }\n newQuestions = addedQ ? [...newQuestions, addedQ] : newQuestions;\n return {\n ...qg,\n questions: orderBy(newQuestions, 'order'),\n };\n });\n let oldQg = questionGroups.filter(\n (qg) => qg.id !== movingQ.questionGroupId\n );\n oldQg =\n movingQ.questionGroupId !== questionGroupId\n ? oldQg.filter((qg) => qg.id !== questionGroupId)\n : oldQg;\n questionGroupFn.store.update((s) => {\n s.questionGroups = orderBy([...oldQg, ...changedQg], 'order');\n });\n UIStore.update((s) => {\n s.activeMoveQuestion = null;\n });\n };\n\n const rightButtons = [\n {\n type: 'copy-button',\n onClick: handleCopy,\n },\n {\n type: 'delete-button',\n onClick: () => setIsModalOpen(true),\n disabled:\n (!index && isLastItem) || dependant.dependant.length || disableDelete,\n },\n ];\n\n const leftButtons = [\n {\n type: 'move-button',\n onClick: handleMove,\n disabled: !index && isLastItem,\n },\n {\n type: 'show-button',\n isExpand: isEditQuestion,\n onClick: handleEdit,\n onCancel: handleCancelEdit,\n },\n ];\n\n return (\n
\n handleOnAdd(order - 1)}\n handleOnMove={() =>\n isCopying ? handleOnAdd(order - 1) : handleOnMove(order - 1)\n }\n />\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n backgroundColor: movingQ?.id === id ? '#FFF2CA' : '#FFF',\n border: movingQ?.id === id ? '1px dashed #ffc107' : 'none',\n }}\n bodyStyle={{\n borderTop: isEditQuestion ? '1px solid #f3f3f3' : 'none',\n padding: isEditQuestion ? 24 : 0,\n }}\n loading={false}\n extra={\n \n dependency?.find((d) => d.id === q.id)\n )}\n />\n }\n >\n {isEditQuestion && (\n
\n setActiveTab(key)}\n tabBarGutter={24}\n className={styles['tabs-wrapper']}\n >\n {/* Setting */}\n \n {/* Skip Logic */}\n \n {/* Custom Params */}\n {enableCustomParams && (\n \n )}\n {/* \n */}\n \n {activeTab === 'setting' && (\n \n )}\n {activeTab === 'skip-logic' && (\n \n )}\n {enableCustomParams && activeTab === 'custom-params' && (\n \n )}\n
\n )}\n \n {isLastItem && (\n handleOnAdd(order)}\n handleOnMove={() =>\n isCopying ? handleOnAdd(order) : handleOnMove(order, true)\n }\n />\n )}\n setIsModalOpen(false)}\n okButtonProps={{ danger: true }}\n title={UIText.alertDeleteQuestionTitle}\n okText={UIText.buttonDeleteText}\n >\n {UIText.alertDeleteQuestion}\n \n
\n );\n};\n\nexport default QuestionDefinition;\n","import React, { useMemo, useState } from 'react';\nimport { Card } from 'antd';\nimport { UIStore, questionGroupFn } from '../lib/store';\nimport QuestionGroupSetting from './QuestionGroupSetting';\nimport QuestionDefinition from './QuestionDefinition';\nimport { ButtonAddMove, CardTitle, AlertPopup } from '../support';\nimport { orderBy, maxBy, minBy, uniq, difference, intersection } from 'lodash';\n\nconst QuestionGroupDefinition = ({ index, questionGroup, isLastItem }) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const movingQg = UIStore.useState((s) => s.activeMoveQuestionGroup);\n const {\n activeQuestionGroups,\n activeEditQuestionGroups,\n activeEditQuestions,\n hostParams,\n } = UIStore.useState((s) => s);\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n\n const { id, name, questions, order } = questionGroup;\n const questionIds = questions.map((q) => q.id);\n const {\n buttonAddNewQuestionGroupText,\n buttonMoveQuestionGroupText,\n alertDeleteQuestionGroupTitle,\n alertDeleteQuestionGroup,\n buttonDeleteText,\n } = UIStore.useState((s) => s.UIText);\n\n const showQuestion = useMemo(() => {\n return activeQuestionGroups.includes(id);\n }, [activeQuestionGroups, id]);\n\n const isEditQuestionGroup = useMemo(() => {\n return activeEditQuestionGroups.includes(id);\n }, [activeEditQuestionGroups, id]);\n\n const disableDelete = useMemo(() => {\n return questions.filter((q) => q?.disableDelete)?.length;\n }, [questions]);\n\n const handleHideQuestions = () => {\n UIStore.update((s) => {\n s.activeQuestionGroups = activeQuestionGroups.filter(\n (qgId) => qgId !== id\n );\n });\n };\n\n const handleCancelEditGroup = () => {\n UIStore.update((s) => {\n s.activeEditQuestionGroups = activeEditQuestionGroups.filter(\n (qgId) => qgId !== id\n );\n });\n };\n\n const handleShowQuestions = () => {\n UIStore.update((s) => {\n s.activeQuestionGroups = [...activeQuestionGroups, id];\n });\n handleCancelEditGroup();\n };\n\n const handleEditGroup = () => {\n UIStore.update((s) => {\n s.activeEditQuestionGroups = [...activeEditQuestionGroups, id];\n });\n handleHideQuestions();\n };\n\n const handleCancelMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestionGroup = null;\n });\n };\n\n const handleMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestionGroup =\n movingQg === questionGroup ? null : questionGroup;\n });\n };\n\n const handleExpandAll = () => {\n handleShowQuestions();\n UIStore.update((s) => {\n s.activeEditQuestions = uniq([...s.activeEditQuestions, ...questionIds]);\n });\n };\n\n const handleCancelExpandAll = () => {\n handleHideQuestions();\n UIStore.update((s) => {\n s.activeEditQuestions = difference(s.activeEditQuestions, questionIds);\n });\n };\n\n const handleDelete = () => {\n const newQuestionGroups = questionGroups\n .filter((qg) => id !== qg.id)\n .map((qg) => {\n if (qg.order > order) {\n return { ...qg, order: qg.order - 1 };\n }\n return qg;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = newQuestionGroups;\n });\n setIsModalOpen(false);\n };\n\n const handleOnAdd = (prevOrder) => {\n const prevQg = questionGroups.filter((qg) => qg.order <= prevOrder);\n const nextQg = questionGroups\n .filter((qg) => qg.order > prevOrder)\n .map((qg) => ({\n ...qg,\n order: qg.order + 1,\n }));\n const newQuestionGroups = [\n ...prevQg,\n questionGroupFn.add({\n prevOrder: prevOrder,\n defaultQuestionParam: defaultQuestionParam,\n }),\n ...nextQg,\n ];\n questionGroupFn.store.update((s) => {\n s.questionGroups = newQuestionGroups;\n });\n };\n\n const handleOnMove = (prevOrder, lastItem = false) => {\n const currentQg = {\n ...movingQg,\n order: movingQg.order < prevOrder ? prevOrder : prevOrder + 1,\n };\n const orderedQg = questionGroups\n .filter((qg) => qg.order !== movingQg.order)\n .map((x) => {\n if (lastItem) {\n if (x.order > movingQg.order) {\n return { ...x, order: x.order - 1 };\n }\n return x;\n }\n if (\n prevOrder > movingQg.order &&\n x.order > movingQg.order &&\n x.order <= prevOrder\n ) {\n return { ...x, order: x.order - 1 };\n }\n if (\n prevOrder < movingQg.order &&\n x.order < movingQg.order &&\n x.order >= prevOrder + 1\n ) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = orderBy([...orderedQg, currentQg], 'order');\n });\n UIStore.update((s) => {\n s.activeMoveQuestionGroup = null;\n });\n };\n\n const dependant = useMemo(() => {\n const allQ = questionGroups\n .map((qg) => qg.questions)\n .flatMap((x) => x)\n .map((q) => ({\n ...q,\n questionGroup: questionGroups.find((qg) => q.questionGroupId === qg.id),\n }));\n\n const dependencies = allQ.filter(\n (q) =>\n q?.dependency?.filter((d) => questionIds.find((qid) => qid === d.id))\n .length || false\n );\n\n const movingQids = movingQg?.questions?.map((q) => q.id) || [];\n const movingQ = movingQg?.questions?.filter((q) => {\n const selfDependency =\n q?.dependency?.filter((d) => movingQids.includes(d.id))?.length || 0;\n return !selfDependency;\n });\n\n let disabled = { current: false, last: false };\n\n const movingQDependency = maxBy(\n movingQ\n ?.map(\n (q) =>\n q?.dependency?.map((q) => allQ.find((a) => a.id === q.id)) || []\n )\n ?.flatMap((q) => q) || [],\n 'questionGroup.order'\n );\n\n if (movingQDependency?.questionGroup?.order >= order) {\n disabled = {\n current: true,\n last: true,\n };\n }\n\n const movingQDependant = minBy(\n allQ.filter(\n (q) =>\n q?.dependency?.filter((d) => movingQ?.find((qs) => qs.id === d.id))\n .length || false\n ),\n 'questionGroup.order'\n );\n\n const dependantIsLessThanOrder =\n movingQDependant?.questionGroup?.order < (isLastItem ? order + 1 : order);\n\n if (dependantIsLessThanOrder) {\n disabled = {\n current: true,\n last: true,\n };\n }\n\n return {\n disabled: disabled,\n dependant: dependencies,\n };\n }, [questionGroups, questionIds, movingQg, order, isLastItem]);\n\n const rightButtons = [\n {\n type: 'expand-all-button',\n isExpand:\n showQuestion && intersection(activeEditQuestions, questionIds).length,\n onClick: handleExpandAll,\n onCancel: handleCancelExpandAll,\n },\n {\n type: 'delete-button',\n onClick: () => setIsModalOpen(true),\n disabled: (!index && isLastItem) || disableDelete,\n },\n {\n type: 'edit-button',\n isExpand: isEditQuestionGroup,\n onClick: handleEditGroup,\n onCancel: handleCancelEditGroup,\n },\n ];\n\n const leftButtons = [\n {\n type: 'move-button',\n onClick: handleMove,\n onCancel: handleHideQuestions,\n disabled: !index && isLastItem,\n },\n {\n type: 'show-button',\n isExpand: showQuestion,\n onClick: handleShowQuestions,\n onCancel: handleHideQuestions,\n },\n ];\n\n return (\n
\n handleOnAdd(order - 1)}\n handleOnMove={() => handleOnMove(order - 1)}\n />\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n backgroundColor: movingQg?.id === id ? '#FFF2CA' : '#FFF',\n border: movingQg?.id === id ? '1px dashed #ffc107' : 'none',\n }}\n bodyStyle={{\n padding: isEditQuestionGroup || showQuestion ? 24 : 0,\n borderTop:\n isEditQuestionGroup || showQuestion ? '1px solid #f3f3f3' : 'none',\n }}\n extra={}\n >\n {isEditQuestionGroup && }\n {showQuestion &&\n questions.map((q, qi) => (\n \n ))}\n \n {isLastItem && (\n handleOnAdd(order)}\n handleOnMove={() => handleOnMove(order, true)}\n />\n )}\n setIsModalOpen(false)}\n okButtonProps={{ danger: true }}\n title={alertDeleteQuestionGroupTitle}\n okText={buttonDeleteText}\n >\n {alertDeleteQuestionGroup}\n \n
\n );\n};\n\nexport default QuestionGroupDefinition;\n","import React, { useEffect, useState } from 'react';\nimport 'antd/dist/antd.min.css';\nimport styles from './styles.module.css';\nimport { Card, Tabs, Tag, Space } from 'antd';\nimport {\n FormWrapper,\n FormDefinition,\n FormPreview,\n QuestionGroupDefinition,\n FormTranslations,\n} from './components';\nimport { ButtonWithIcon } from './support';\nimport {\n UIStore,\n formFn,\n questionGroupFn,\n generateId,\n questionType,\n} from './lib/store';\nimport data from './lib/data';\nimport { isEmpty } from 'lodash';\nimport { TbEdit } from 'react-icons/tb';\nimport { MdOutlineLanguage } from 'react-icons/md';\nimport { VscPreview } from 'react-icons/vsc';\n\nconst WebformEditor = ({\n onSave = false,\n initialValue = null,\n settingTreeDropdownValue = [{ label: null, value: null }],\n settingCascadeURL = [{ name: null, endpoint: null, initial: 0, list: false }],\n settingHintURL = {\n questionTypes: [],\n settings: [{ name: null, endpoint: null, path: [] }],\n },\n defaultQuestion = { type: null, name: null, required: null },\n limitQuestionType = [],\n customParams = {\n label: null,\n params: [\n {\n name: null,\n label: 'Single Option Param',\n type: 'option',\n multiple: true,\n options: [],\n },\n {\n name: null,\n label: 'Multiple Option Param',\n type: 'option',\n multiple: false,\n options: [],\n },\n {\n name: null,\n label: 'Input Param',\n type: 'input',\n },\n ],\n },\n}) => {\n const [init, setInit] = useState(defaultQuestion);\n const formStore = formFn.store.useState((s) => s);\n const current = UIStore.useState((s) => s.current);\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const activeEditFormSetting = UIStore.useState(\n (s) => s.activeEditFormSetting\n );\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const { tab: currentTab } = current;\n const {\n formTabPane,\n formTranslationPane,\n previewTabPane,\n questionCount,\n questionGroupCount,\n mandatoryQuestionCount,\n version,\n } = UIText;\n\n if (!initialValue) {\n console.error('initialValue required as an empty object {}');\n }\n\n useEffect(() => {\n // store params from host to global store\n const checkDefaultQuestion = defaultQuestion\n ? Object.values(defaultQuestion).filter((x) => x).length\n : false;\n const sanitizeSettingTreeDropdownValue = settingTreeDropdownValue.filter(\n (x) => x?.label && x?.value\n );\n const sanitizeSettingCascadeURL = settingCascadeURL\n .filter((x) => x?.name && x?.endpoint)\n .map((x, xi) => ({ ...x, id: x?.id || xi + 1 }));\n const sanitizeSettingHintURL = !isEmpty(settingHintURL)\n ? {\n ...settingHintURL,\n settings: settingHintURL?.settings\n ?.filter((x) => x?.name && x?.endpoint && x?.path?.length)\n ?.map((x, xi) => ({ ...x, id: x?.id || xi + 1 })),\n }\n : {};\n const sanitizeDefaultQuestion = {\n type: defaultQuestion?.type || questionType.input,\n name: defaultQuestion?.name,\n required: defaultQuestion?.required || false,\n };\n const sanitizeCustomParams = customParams?.params?.filter((x) => x?.name);\n // update UIStore\n UIStore.update((s) => {\n if (sanitizeSettingTreeDropdownValue.length) {\n s.hostParams = {\n ...s.hostParams,\n settingTreeDropdownValue: sanitizeSettingTreeDropdownValue,\n };\n }\n if (sanitizeSettingCascadeURL.length) {\n s.hostParams = {\n ...s.hostParams,\n settingCascadeURL: sanitizeSettingCascadeURL,\n };\n }\n if (\n !isEmpty(sanitizeSettingHintURL) &&\n sanitizeSettingHintURL?.settings?.length\n ) {\n s.hostParams = {\n ...s.hostParams,\n settingHintURL: sanitizeSettingHintURL,\n };\n }\n if (checkDefaultQuestion) {\n s.hostParams = {\n ...s.hostParams,\n defaultQuestionParam: sanitizeDefaultQuestion,\n };\n } else {\n s.hostParams = {\n ...s.hostParams,\n defaultQuestionParam: {},\n };\n }\n if (limitQuestionType.length) {\n s.hostParams = {\n ...s.hostParams,\n limitQuestionType: Object.keys(questionType)\n .map((key) => ({\n label: questionType[key]?.split('_').join(' '),\n value: questionType[key],\n }))\n .filter((x) => limitQuestionType.includes(x.value)),\n };\n }\n if (customParams?.label && sanitizeCustomParams?.length) {\n s.hostParams = {\n ...s.hostParams,\n customParams: {\n ...customParams,\n params: sanitizeCustomParams,\n },\n };\n }\n });\n }, [\n settingTreeDropdownValue,\n settingCascadeURL,\n settingHintURL,\n defaultQuestion,\n limitQuestionType,\n customParams,\n ]);\n\n useEffect(() => {\n if (defaultQuestionParam && init) {\n // replace questionGroup store with defaultQuestion value\n questionGroupFn.store.update((s) => {\n s.questionGroups = [\n questionGroupFn.add({\n defaultQuestionParam: defaultQuestionParam,\n }),\n ];\n });\n setInit(false);\n }\n }, [defaultQuestionParam, init]);\n\n useEffect(() => {\n if (!isEmpty(initialValue)) {\n const initialData = data.toEditor(initialValue);\n formFn.store.update((s) => {\n s.id = initialData?.id || generateId();\n s.version = initialData?.version || 1;\n s.name = initialData?.name || 'Unknown Form';\n s.description = initialData?.description || 'Unknown Description';\n s.languages = initialData?.languages?.filter((x) => x !== 'en') || [];\n s.defaultLanguage = initialData?.defaultLanguage || 'en';\n s.translations = initialData?.translations || [];\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = initialData.questionGroups;\n });\n } else {\n const defaultForm = formFn.add();\n formFn.store.update((s) => {\n s.id = defaultForm.id;\n s.name = defaultForm.name;\n s.version = defaultForm.version;\n s.description = defaultForm.description;\n s.languages = [];\n s.defaultLanguage = 'en';\n s.translations = [];\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = [questionGroupFn.add({})];\n });\n }\n }, [initialValue]);\n\n const handleTabsOnChange = (e) => {\n UIStore.update((s) => {\n s.current = {\n ...current,\n tab: e,\n };\n });\n };\n\n const handleShowFormSetting = (e) => {\n e.preventDefault();\n UIStore.update((s) => {\n s.activeEditFormSetting = activeEditFormSetting ? false : true;\n });\n };\n\n const handleSave = () => {\n if (onSave) {\n onSave(data.toWebform(formStore, questionGroups));\n }\n };\n\n const questions = questionGroups.reduce(\n (curr, qg) => [...curr, ...qg.questions],\n []\n );\n\n const mandatory = questions.filter((q) => q?.required);\n\n const tabProps = [\n {\n icon: TbEdit,\n tab: formTabPane,\n key: 'edit-form',\n },\n {\n icon: MdOutlineLanguage,\n tab: formTranslationPane,\n key: 'translations',\n },\n {\n icon: VscPreview,\n tab: previewTabPane,\n key: 'preview',\n },\n ];\n\n return (\n \n \n \n \n \n {questions.length} {questionCount}\n \n \n {mandatory.length} {mandatoryQuestionCount}\n \n \n {questionGroups.length} {questionGroupCount}\n \n \n {version} {formStore.version || 1}\n \n {currentTab === 'edit-form' && (\n \n )}\n \n \n \n }\n tabBarGutter={24}\n className={`${styles['tabs-wrapper']} ${styles['tabs-wrapper-sticky']}`}\n >\n {tabProps.map((prop) => (\n \n {prop.tab}\n \n }\n key={prop.key}\n />\n ))}\n \n {currentTab === 'edit-form' && (\n \n {activeEditFormSetting && }\n {questionGroups.map((qg, qgi) => {\n return (\n \n );\n })}\n \n )}\n {currentTab === 'translations' && }\n {currentTab === 'preview' && }\n \n \n );\n};\n\nexport default WebformEditor;\n"],"names":["FormWrapper","children","Form","useForm","form","handleOnValuesChange","handleOnFinish","handleOnFinishFailed","React","UIStaticText","en","inputFormNameLabel","inputFormDescriptionLabel","inputFormTranslationLabel","inputFormExistingTranslationsLabel","inputFormDefaultLanguageLabel","formTabPane","formTranslationPane","previewTabPane","questionCount","questionGroupCount","mandatoryQuestionCount","version","inputQuestionGroupNameLabel","inputQuestionGroupDescriptionLabel","inputRepeatThisGroupCheckbox","inputRepeatTextLabel","buttonShowQuestionsText","buttonHideQuestionsText","buttonEditGroupText","buttonCancelEditGroupText","buttonDeleteText","buttonCancelText","buttonAddNewQuestionGroupText","buttonCopyQuestionGroupText","buttonMoveQuestionGroupText","buttonAddNewQuestionText","buttonCopyQuestionText","buttonMoveQuestionText","inputQuestionNameLabel","inputQuestionTypeLabel","inputQuestionVariableNameLabel","inputQuestionTooltipLabel","inputQuestionRequiredCheckbox","inputQuestionMetaCheckbox","inputQuestionMetaCheckboxHint","buttonSaveText","questionSettingTabPane","questionSkipLogicTabPane","questionCustomParamsTabPane","questionExtraTabPane","inputQuestionDependentToLabel","inputQuestionDependentLogicLabel","inputQuestionDependentAnswerLabel","questionMoreInputTypeSettingText","inputQuestionRequireDoubleEntryCheckbox","inputQuestionHiddenStringCheckbox","questionMoreInputNumberSettingText","inputQuestionAllowDecimalCheckbox","inputQuestionMinimumValueLabel","inputQuestionMaximumValueLabel","inputQuestionMinimumValidationText","inputQuestionMaximumValidationText","inputQuestionEqualValueLabel","questionMoreOptionTypeSettingText","questionMoreOptionTranslationText","inputQuestionAllowOtherCheckbox","inputQuestionAllowOtherTextLabel","inputQuestionOptionNameLabel","questionMoreTreeSettingText","inputSelectTreeDropdownValueLabel","deleteQuestionGroupError","deleteQuestionError","infoNoDependentQuestionText","questionMoreCascadeSettingText","inputQuestionEndpointLabel","inputQuestionEndpointValidationText","inputQuestionInitialValueLabel","inputQuestionListCheckbox","inputQuestionListLabel","questionMoreInputDateSettingText","inputQuestionAfterDateValueLabel","inputQuestionBeforeDateValueLabel","alertDeleteQuestionTitle","alertDeleteQuestion","alertDeleteQuestionGroupTitle","alertDeleteQuestionGroup","questionMoreTableTypeSettingText","inputColumnNameLabel","inputColumnTypeLabel","inputColumnOptionsLabel","questionTableTypeDefineOptionsText","questionHintSettingText","inputQuestionStaticValueLabel","inputSelectHintEndpointLabel","inputSelectHintPathLabel","inputQuestionHintButtonTextLabel","titleCase","str","replace","txt","charAt","toUpperCase","substr","toLowerCase","getWords","words","Math","floor","random","length","dummyName","len","Array","from","repeat","reduce","curr","localeDropdownValue","uniqBy","locale","filter","x","location","map","label","name","value","generateId","Date","getTime","questionType","input","number","cascade","geo","text","date","option","multiple_option","tree","table","defaultForm","id","description","defaultQuestion","questionGroup","prevOrder","type","required","params","q","order","questionGroupId","meta","tooltip","options","allowOther","api","endpoint","initial","list","defaultQuestionGroup","defaultQuestionParam","qg","repeatable","questions","UIStore","Store","current","tab","formId","questionId","activeEditFormSetting","activeQuestionGroups","activeEditQuestionGroups","activeMoveQuestionGroup","isCopyingQuestionGroup","activeEditQuestions","activeMoveQuestion","isCopyingQuestion","UIText","existingTranslation","activeTranslationQuestionGroups","activeEditTranslationQuestionGroups","activeEditTranslationQuestions","hostParams","FormStore","QuestionGroupStore","questionGroups","formFn","add","store","questionGroupFn","questionFn","update","createContext","defineProperty","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","objectWithoutPropertiesLoose","warning","warn","generate","_objectSpread","generateColor","useContext","useEffect","ReactIcon","_excluded","React.forwardRef","React.useContext","Context","classNames","React.createElement","CaretRightOutlined","AntdIcon","CaretRightOutlinedSvg","PlusOutlined","PlusOutlinedSvg","ButtonAddMove","className","movingItem","handleCancelMove","disabled","handleOnAdd","handleOnMove","useState","s","Row","Col","Button","ButtonWithIcon","isExpand","onClick","onCancel","buttonProps","icon","TbEditOff","TbEdit","BiCopy","BiMove","RiSettings5Fill","RiSettings5Line","MdOutlineAddCircleOutline","RiSave3Fill","AiOutlineEyeInvisible","AiOutlineEye","RiDeleteBin2Line","styles","CardTitle","title","buttons","dependency","Space","Tag","margin","cfg","Text","Typography","TranslationFormItem","labelText","currentValue","initialValue","marginBottom","width","AlertPopup","onConfirm","visible","okButtonProps","okText","Modal","clearQuestionObj","keysToRemove","obj","checkEmpty","clearedQuestion","Object","keys","forEach","key","includes","isEmpty","clearTranslations","translations","newObj","clearedTranslations","tl","clearedObj","language","toEditor","webFormData","mapKeys","_","k","qgi","gid","qi","isNotOption","o","oi","orderBy","d","max","min","toWebform","formData","webformData","languages","defaultLanguage","output","op","hint","path","result","question","repeatText","question_group","generateTranslations","savedTranslations","newTranslations","currentTranslations","isExistingExist","findIndex","tr","data","clear","FormDefinitionTranslation","formStore","namePreffix","existingTranslationValues","useMemo","find","updateTranslation","u","handleChangeName","e","target","handleChangeDescription","Input","QuestionSettingTranslation","allowOtherText","existingTooltipTranslationValues","handleChangeTooltip","handleChangeAllowOtherText","handleChangeOptionName","optionTranslations","optionId","opt","di","existingOptionTranslationValues","QuestionDefinitionTranslation","index","questionGroupOrder","isEditTranslationQuestion","handleEditTranslationQuestion","handleCancelEditTranslationQuestion","qId","cardTitleButton","Card","textAlign","padding","borderTop","QuestionGroupSettingTranslation","handleChangeRepeatText","QuestionGroupDefinitionTranslation","questionIds","showTranslationQuestion","isEditTranslationQuestionGroup","handleHideTranslationQuestions","qgId","handleCancelEditTranslationGroup","handleEditTranslationGroup","a","handleExpandAll","uniq","handleCancelExpandAll","difference","cardExtraButton","intersection","staticDefaultLang","ExistingTranslation","handleCloseTag","lang","ln","findLang","lc","tags","FormTranslations","formTranslation","defaultLangDropdownValue","ld","Select","triggerNode","parentElement","ldi","Divider","FormPreview","Webform","FormDefinition","useFormInstance","setFieldsValue","QuestionGroupSetting","handleChangeRepeatable","checked","Checkbox","SettingInput","requiredDoubleEntry","hiddenString","updateState","handleChangeDoubleEntry","handleChangeHiddenString","SettingNumber","rule","allowDecimal","moreNumberSettings","rules","message","handleChangeAllowDecimal","handleChangeMinMax","InputNumber","defaultOptions","init","code","SettingOption","initialOptions","xi","setOptions","useCallback","handleOnChangeAllowOther","handleOnChangeAllowOtherText","handleOnChangeCode","currentId","handleOnChangeOption","handleOnAddOption","currentOrder","lastOrder","takeRight","reorderOptions","addOptions","handleOnMoveOption","targetOrder","prevOptions","currentOption","targetOption","handleOnDeleteOption","opti","MdOutlineArrowCircleUp","MdOutlineArrowCircleDown","MdOutlineRemoveCircleOutline","SettingTree","settingTreeDropdownValue","handleChangeTreeDropdown","SettingCascade","settingCascadeURL","cascadeURLDropdownValue","updateGlobalState","values","handleChangeEndpoint","findURL","handleChangeInitial","handleChangeList","this","require","SettingDate","minDate","maxDate","moreDateSettings","disabledDate","moment","handleChangeAfterBefore","format","DatePicker","generateColumnName","trim","split","join","columnType","defaultColumns","column","defaultColumnOptions","SettingTable","initialColumns","columns","cl","cli","opi","setColumns","columnTypeOptions","updateColumns","columnId","updatedColumn","handleChangeColumnName","handleChangeColumnType","handleAddColumn","addColumns","handleDeleteColumn","currentColumn","currentOptions","targetOptions","currentOptionId","currentOptId","updatedOptions","val","QuestionHint","buttonText","settingHintURL","settings","hintURLDropdownValue","hintPathDropdownValue","String","handleChangePath","handleChangeStaticValue","handleChangeButtonText","QuestionSetting","dependant","variable","disableDelete","qType","useWatch","limitQuestionType","disableMetaForGeo","metaGeoQuestionDefined","flatMap","showMetaCheckbox","currentQuestionGroup","questionTypeDropdownValue","showHintSetting","questionTypes","defaultTypeValue","checkType","checkText","defType","handleChangeType","handleChangeVariableName","handleChangeRequired","handleChangeMeta","dependantGroup","groupBy","group","i","g","items","Alert","ii","Popover","AiOutlineQuestionCircle","cursor","marginLeft","dependencyTypes","logicDropdowns","defaultSkipLogic","dependentTo","dependentToType","dependentLogic","dependentAnswer","dependencyLogicDropdownValue","dependencyAnswerDropdownValue","fetchDependencyLogicDropdown","dt","fetchDependencyAnswerDropdown","transformDependencyValue","lg","findQ","SettingSkipLogic","dependencies","setDependencies","dependentToQuestions","savedDependency","updateGlobalStore","dependencyValue","isDelete","transformDependencies","dp","checkDependencies","isArray","updateLocalState","dependencyId","updatedDependencies","setTimeout","checkChangedType","updatedDependency","handleChangeDependentTo","handleChangeDependentLogic","handleChangeDependentAnswer","handleAddMoreDependency","newDependencies","handleDeleteDependentTo","dropdown","l","item","gi","dq","QuestionSkipLogic","currentQuestionOrder","currentQuestionGroupOrder","QuestionCustomParams","customParams","initLoad","setInitLoad","paramValue","setParamValue","customParamObj","cp","findValue","res","objKey","handleChangeParameterValue","cpi","multipleProps","multiple","mode","showArrow","QuestionDefinition","isLastItem","movingQ","isCopying","activeTab","setActiveTab","isModalOpen","setIsModalOpen","enableCustomParams","allQuestions","last","movingQDependency","maxBy","movingQDependant","minBy","isEditQuestion","handleEdit","handleCancelEdit","handleMove","handleCopy","handleDelete","newQuestions","prevQ","nextQ","newQ","lastItem","currentQ","changedQg","addedQ","oldQg","rightButtons","leftButtons","backgroundColor","border","Tabs","danger","QuestionGroupDefinition","movingQg","showQuestion","isEditQuestionGroup","handleHideQuestions","handleCancelEditGroup","handleShowQuestions","handleEditGroup","newQuestionGroups","prevQg","nextQg","currentQg","orderedQg","allQ","qid","movingQids","selfDependency","qs","dependantIsLessThanOrder","WebformEditor","onSave","setInit","currentTab","console","error","checkDefaultQuestion","sanitizeSettingTreeDropdownValue","sanitizeSettingCascadeURL","sanitizeSettingHintURL","sanitizeDefaultQuestion","sanitizeCustomParams","initialData","handleTabsOnChange","handleShowFormSetting","preventDefault","handleSave","mandatory","tabProps","MdOutlineLanguage","VscPreview","container","prop"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/components/FormWrapper.jsx","../src/lib/i18n.js","../src/lib/debug.js","../src/lib/store.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../src/support/ButtonAddMove.jsx","../src/support/ButtonWithIcon.jsx","../src/support/CardTitle.jsx","../src/support/TranslationFormItem.jsx","../src/support/AlertPopup.jsx","../src/lib/data.js","../src/components/translations/FormDefinitionTranslation.jsx","../src/components/translations/QuestionDefinitionTranslation.jsx","../src/components/translations/QuestionGroupDefinitionTranslation.jsx","../src/components/FormTranslations.jsx","../src/components/FormPreview.jsx","../src/components/FormDefinition.jsx","../src/components/QuestionGroupSetting.jsx","../src/components/question-type/SettingInput.jsx","../src/components/question-type/SettingNumber.jsx","../src/components/question-type/SettingOption.jsx","../src/components/question-type/SettingTree.jsx","../src/components/question-type/SettingCascade.jsx","../node_modules/moment/moment.js","../src/components/question-type/SettingDate.jsx","../src/components/question-type/SettingTable.jsx","../src/components/question-type/SettingImage.jsx","../src/components/QuestionHint.jsx","../src/components/QuestionSetting.jsx","../src/components/QuestionSkipLogic.jsx","../src/components/QuestionCustomParams.jsx","../src/components/QuestionDefinition.jsx","../src/components/QuestionGroupDefinition.jsx","../src/index.js"],"sourcesContent":["import React from 'react';\nimport { Form } from 'antd';\n\nconst FormWrapper = ({ children }) => {\n const [form] = Form.useForm();\n\n const handleOnValuesChange = () => {\n // console.log(changedValues, allValues);\n };\n\n const handleOnFinish = () => {\n // console.log(values);\n };\n\n const handleOnFinishFailed = () => {\n // console.log(values, errorFields, outOfDate);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default FormWrapper;\n","const UIStaticText = {\n en: {\n inputFormNameLabel: 'Form Name',\n inputFormDescriptionLabel: 'Form Description',\n inputFormTranslationLabel: 'Add New Translation',\n inputFormExistingTranslationsLabel: 'Existing Translations',\n inputFormDefaultLanguageLabel: 'Default Language',\n formTabPane: 'Edit Form',\n formTranslationPane: 'Translations',\n previewTabPane: 'Preview',\n questionCount: 'Questions',\n questionGroupCount: 'Question Groups',\n mandatoryQuestionCount: 'Mandatory Questions',\n version: 'Version',\n inputQuestionGroupNameLabel: 'Question Group Name',\n inputQuestionGroupDescriptionLabel: 'Question Group Description',\n inputRepeatThisGroupCheckbox: 'Repeat this group',\n inputRepeatTextLabel: 'Repeat Text',\n buttonShowQuestionsText: 'Show Questions',\n buttonHideQuestionsText: 'Hide Questions',\n buttonEditGroupText: 'Edit Group',\n buttonCancelEditGroupText: 'Cancel Edit Group',\n buttonDeleteText: 'Delete',\n buttonCancelText: 'Cancel',\n buttonAddNewQuestionGroupText: 'Insert group here',\n buttonCopyQuestionGroupText: 'Copy group here',\n buttonMoveQuestionGroupText: 'Move group here',\n buttonAddNewQuestionText: 'Add new question',\n buttonCopyQuestionText: 'Copy question here',\n buttonMoveQuestionText: 'Move question here',\n inputQuestionNameLabel: 'Question Name',\n inputQuestionTypeLabel: 'Question Type',\n inputQuestionVariableNameLabel: 'Variable Name',\n inputQuestionTooltipLabel: 'Question Tooltip',\n inputQuestionRequiredCheckbox: 'Required',\n inputQuestionMetaCheckbox: 'Data point name',\n inputQuestionMetaCheckboxHint:\n 'A string value that represents the name of the data point',\n buttonSaveText: 'Save',\n questionSettingTabPane: 'Setting',\n questionSkipLogicTabPane: 'Skip Logic',\n questionCustomParamsTabPane: 'Custom Params',\n questionExtraTabPane: 'Extra',\n inputQuestionDependentToLabel: 'Dependent to Question',\n inputQuestionDependentLogicLabel: 'Logic',\n inputQuestionDependentAnswerLabel: 'Value',\n questionMoreInputTypeSettingText: 'More Input Question Setting',\n inputQuestionRequireDoubleEntryCheckbox: 'Require double entry of answer',\n inputQuestionHiddenStringCheckbox: 'Hidden String/Password',\n questionMoreInputNumberSettingText: 'More Number Question Setting',\n inputQuestionAllowDecimalCheckbox: 'Allow Decimal',\n inputQuestionMinimumValueLabel: 'Minimum Value',\n inputQuestionMaximumValueLabel: 'Maximum Value',\n inputQuestionMinimumValidationText: 'Min value must be less than',\n inputQuestionMaximumValidationText: 'Max value must be greater than',\n inputQuestionEqualValueLabel: 'Equal Value',\n questionMoreOptionTypeSettingText: 'More Option Question Setting',\n questionMoreOptionTranslationText: 'Option Translations',\n inputQuestionAllowOtherCheckbox: 'Allow Other',\n inputQuestionAllowOtherTextLabel: 'Allow Other Text',\n inputQuestionOptionNameLabel: 'Option',\n questionMoreTreeSettingText: 'More Nested List Question Setting',\n inputSelectTreeDropdownValueLabel: 'Select Nested List Value',\n deleteQuestionGroupError: 'Unable to delete question group',\n deleteQuestionError: 'Unable to delete question',\n infoNoDependentQuestionText: 'No dependent questions',\n questionMoreCascadeSettingText: 'More Cascade Question Setting',\n inputQuestionEndpointLabel: 'Cascade Endpoint',\n inputQuestionEndpointValidationText: 'Invalid URL',\n inputQuestionInitialValueLabel: 'Initial Value',\n inputQuestionListCheckbox: 'Use Specific Object Name',\n inputQuestionListLabel: 'Object Name',\n questionMoreInputDateSettingText: 'More Date Question Setting',\n inputQuestionAfterDateValueLabel: 'After Date',\n inputQuestionBeforeDateValueLabel: 'Before Date',\n alertDeleteQuestionTitle: 'Delete Question',\n alertDeleteQuestion: 'Do you want to delete this question?',\n alertDeleteQuestionGroupTitle: 'Delete Question Group',\n alertDeleteQuestionGroup:\n 'Do you want to delete this question group and all the questions?',\n questionMoreTableTypeSettingText: 'More Table Question Setting',\n inputColumnNameLabel: 'Column Name',\n inputColumnTypeLabel: 'Column Type',\n inputColumnOptionsLabel: 'Column Options',\n questionTableTypeDefineOptionsText: 'Define Options',\n questionHintSettingText: 'Hint Setting',\n inputQuestionStaticValueLabel: 'Static Value',\n inputSelectHintEndpointLabel: 'Hint Endpoint',\n inputSelectHintPathLabel: 'Hint Path',\n inputQuestionHintButtonTextLabel: 'Hint Button Text',\n questionMoreImageTypeSettingText: 'More Image Question Setting',\n inputQuestionImageLimitValidationText: 'Limit / Max file size',\n },\n};\n\nexport default UIStaticText;\n","import * as words from './fake.json';\n\nconst titleCase = (str) => {\n return str.replace(\n /\\w\\S*/g,\n (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()\n );\n};\n\nconst getWords = () => {\n return words.default[Math.floor(Math.random() * words.default.length)];\n};\n\nexport const dummyName = (len = 2) => {\n return Array.from('x'.repeat(len)).reduce(\n (curr) => curr + ' ' + getWords(),\n titleCase(getWords())\n );\n};\n","import { Store } from 'pullstate';\nimport UIStaticText from './i18n';\nimport { dummyName } from './debug';\nimport * as locale from 'locale-codes';\nimport uniqBy from 'lodash/uniqBy';\n\nconst localeDropdownValue = uniqBy(\n locale.all\n .filter((x) => x.location)\n .map((x) => ({ label: x.name, value: x['iso639-1'] }))\n .filter((x) => x.value),\n 'value'\n);\n\nconst generateId = () => new Date().getTime();\n\nconst questionType = {\n input: 'input',\n number: 'number',\n cascade: 'cascade',\n geo: 'geo',\n text: 'text',\n date: 'date',\n option: 'option',\n multiple_option: 'multiple_option',\n tree: 'tree',\n table: 'table',\n // autofield: 'autofield',\n image: 'image',\n};\n\nconst defaultForm = () => {\n return {\n id: generateId(),\n name: 'New Form',\n version: 1,\n description: 'New Form Description',\n };\n};\n\nconst defaultQuestion = ({\n questionGroup,\n name,\n prevOrder = 0,\n type = questionType.input,\n required = false,\n params = {},\n}) => {\n const q = {\n id: generateId() + 2,\n order: prevOrder + 1,\n questionGroupId: questionGroup.id,\n name: name || dummyName(5),\n type: type,\n required: required,\n meta: false,\n tooltip: null,\n };\n if (type === questionType.option || type === questionType.multiple_option) {\n return {\n ...q,\n options: [],\n allowOther: false,\n };\n }\n if (type === questionType.cascade) {\n return {\n ...q,\n api: {\n endpoint: null,\n initial: 0,\n list: false,\n },\n };\n }\n return { ...q, ...params };\n};\n\nconst defaultQuestionGroup = ({\n name = dummyName(),\n prevOrder = 0,\n defaultQuestionParam = {},\n}) => {\n const qg = {\n id: generateId() + 1,\n name: name,\n order: prevOrder + 1,\n description: null,\n repeatable: false,\n };\n return {\n ...qg,\n questions: [\n defaultQuestion({ questionGroup: qg, ...defaultQuestionParam }),\n ],\n };\n};\n\nconst UIStore = new Store({\n current: {\n tab: 'edit-form',\n formId: null,\n questionGroupId: null,\n questionId: null,\n },\n activeEditFormSetting: true,\n activeQuestionGroups: [],\n activeEditQuestionGroups: [],\n activeMoveQuestionGroup: null,\n isCopyingQuestionGroup: false,\n activeEditQuestions: [],\n activeMoveQuestion: null,\n isCopyingQuestion: false,\n UIText: UIStaticText.en,\n localeDropdownValue: localeDropdownValue,\n existingTranslation: null,\n activeTranslationQuestionGroups: [],\n activeEditTranslationQuestionGroups: [],\n activeEditTranslationQuestions: [],\n hostParams: {},\n});\n\nconst FormStore = new Store({\n ...defaultForm(),\n});\n\nconst QuestionGroupStore = new Store({\n questionGroups: [defaultQuestionGroup({})],\n});\n\nconst formFn = {\n add: defaultForm,\n store: FormStore,\n};\n\nconst questionGroupFn = {\n add: defaultQuestionGroup,\n store: QuestionGroupStore,\n};\n\nconst questionFn = {\n add: defaultQuestion,\n update: ({ id, type, questionGroup, params }) =>\n defaultQuestion({\n id: id,\n type: type,\n questionGroup: questionGroup,\n ...params,\n }),\n};\n\nexport {\n UIStore,\n questionType,\n formFn,\n questionGroupFn,\n questionFn,\n generateId,\n};\n","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\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)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\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","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n } // Use native if support\n\n\n if (root.contains) {\n return root.contains(n);\n } // `document.contains` not support with IE11\n\n\n var node = n;\n\n while (node) {\n if (node === root) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}","import canUseDom from './canUseDom';\nimport contains from './contains';\nvar APPEND_ORDER = 'data-rc-order';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\n\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n\n return MARK_KEY;\n}\n\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n\n var head = document.querySelector('head');\n return head || document.body;\n}\n\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n\n return prepend ? 'prepend' : 'append';\n}\n/**\n * Find style which inject by rc-util\n */\n\n\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\n\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!canUseDom()) {\n return null;\n }\n\n var csp = option.csp,\n prepend = option.prepend;\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, getOrder(prepend));\n\n if (csp === null || csp === void 0 ? void 0 : csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (prepend === 'queue') {\n var existStyle = findStyles(container).filter(function (node) {\n return ['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER));\n });\n\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n } // Use `insertBefore` as `prepend`\n\n\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n\n return styleNode;\n}\n\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\n\nexport function removeCSS(key) {\n var _existNode$parentNode;\n\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n existNode === null || existNode === void 0 ? void 0 : (_existNode$parentNode = existNode.parentNode) === null || _existNode$parentNode === void 0 ? void 0 : _existNode$parentNode.removeChild(existNode);\n}\n/**\n * qiankun will inject `appendChild` to insert into other\n */\n\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container); // Find real container when not cached or cached container removed\n\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n parentNode.removeChild(placeholderStyle);\n }\n}\n\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option); // Sync real parent\n\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n\n if (existNode) {\n var _option$csp, _option$csp2;\n\n if (((_option$csp = option.csp) === null || _option$csp === void 0 ? void 0 : _option$csp.nonce) && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n\n return existNode;\n }\n\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n\n var _useContext = useContext(IconContext),\n csp = _useContext.csp;\n\n useEffect(function () {\n updateCSS(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\n\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n// should move it to antd main repo?\n\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre;\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexport default CaretRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CaretRightOutlined = function CaretRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretRightOutlinedSvg\n }));\n};\n\nCaretRightOutlined.displayName = 'CaretRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretRightOutlined);","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\n\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import React from 'react';\nimport { Button, Row, Col } from 'antd';\nimport { UIStore } from '../lib/store';\nimport { PlusOutlined, CaretRightOutlined } from '@ant-design/icons';\n\nconst ButtonAddMove = ({\n text,\n className,\n movingItem = null,\n handleCancelMove = () => {},\n disabled = false,\n handleOnAdd = () => {},\n handleOnMove = () => {},\n}) => {\n const { buttonCancelText } = UIStore.useState((s) => s.UIText);\n\n return (\n \n \n : }\n >\n {text}\n \n \n {movingItem && (\n \n \n {buttonCancelText}\n \n \n )}\n \n );\n};\n\nexport default ButtonAddMove;\n","import React from 'react';\nimport { Button } from 'antd';\nimport styles from '../styles.module.css';\nimport { TbEdit, TbEditOff } from 'react-icons/tb';\nimport {\n RiSettings5Fill,\n RiSettings5Line,\n RiDeleteBin2Line,\n RiSave3Fill,\n} from 'react-icons/ri';\nimport { BiMove, BiCopy } from 'react-icons/bi';\nimport { MdOutlineAddCircleOutline } from 'react-icons/md';\nimport { AiOutlineEye, AiOutlineEyeInvisible } from 'react-icons/ai';\n\nconst ButtonWithIcon = ({\n type = 'delete-button',\n isExpand = false,\n onClick = () => {},\n onCancel = () => {},\n disabled = false,\n}) => {\n let buttonProps = {};\n switch (type) {\n case 'show-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'copy-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'move-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'edit-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'add-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'save-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'expand-all-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n default:\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n }\n return (\n \n );\n};\n\nexport default ButtonWithIcon;\n","import React from 'react';\nimport { Space, Tag } from 'antd';\nimport ButtonWithIcon from './ButtonWithIcon';\n\nconst CardTitle = ({ id, title, buttons, dependency = [] }) => {\n return (\n \n {!!dependency.length && (\n \n {dependency.length} Dependenc{dependency.length > 1 ? 'ies' : 'y'}\n \n )}\n {buttons?.map((cfg) => (\n cfg.onClick()}\n onCancel={() => cfg.onCancel()}\n disabled={cfg?.disabled}\n />\n ))}\n {title &&
{title}
}\n
\n );\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport styles from '../styles.module.css';\nimport { Form, Row, Col, Space, Typography } from 'antd';\n\nconst { Text } = Typography;\n\nconst TranslationFormItem = ({\n labelText = '',\n name = '',\n currentValue = '',\n children = '',\n initialValue = '',\n}) => {\n return (\n \n \n \n {labelText}\n {currentValue}\n \n \n \n {labelText}}\n className={styles['translation-form-item']}\n initialValue={initialValue}\n >\n {children}\n \n \n \n );\n};\n\nexport default TranslationFormItem;\n","import React from 'react';\nimport { Modal } from 'antd';\n\nconst AlertPopup = ({\n onConfirm,\n onCancel,\n visible,\n children,\n title = 'Alert',\n okButtonProps = {},\n okText = 'OK',\n}) => {\n return (\n \n {children}\n \n );\n};\n\nexport default AlertPopup;\n","import { questionType, generateId } from './store';\nimport { findIndex, isEmpty, mapKeys, orderBy } from 'lodash';\n\nconst clearQuestionObj = (\n keysToRemove = [],\n obj = false,\n checkEmpty = false\n) => {\n let clearedQuestion = {};\n if (obj) {\n Object.keys(obj).forEach((key) => {\n // filter obj by key to remove\n if (!keysToRemove.includes(key)) {\n if (!checkEmpty) {\n clearedQuestion = {\n ...clearedQuestion,\n [key]: obj[key],\n };\n return key;\n }\n // clear or remove empty obj value\n if (checkEmpty && !isEmpty(obj?.[key])) {\n clearedQuestion = {\n ...clearedQuestion,\n [key]: obj[key],\n };\n return key;\n }\n }\n });\n }\n return clearedQuestion;\n};\n\nconst clearTranslations = (obj, translations) => {\n let newObj = {\n ...obj,\n };\n const clearedTranslations = translations\n .map((tl) => {\n const clearedObj = clearQuestionObj([], tl, true);\n // remove translation if only has language property\n if (Object.keys(clearedObj).length === 1 && clearedObj?.language) {\n return false;\n }\n return clearedObj;\n })\n .filter((x) => x);\n if (clearedTranslations.length) {\n newObj = {\n ...newObj,\n translations: clearedTranslations,\n };\n } else {\n delete newObj?.translations;\n // remove translation\n }\n return newObj;\n};\n\nconst toEditor = (webFormData) => {\n webFormData = mapKeys(webFormData, (_, k) =>\n k === 'question_group' ? 'questionGroups' : k\n );\n const questionGroups = webFormData.questionGroups.map((qg, qgi) => {\n const gid = qg?.id || generateId() + qgi;\n qg = mapKeys(qg, (_, k) => (k === 'question' ? 'questions' : k));\n const questions = qg.questions.map((q, qi) => {\n const isNotOption = ![\n questionType.option,\n questionType.multiple_option,\n ].includes(q.type);\n if (isNotOption && q.type !== questionType.tree) {\n q = clearQuestionObj(['option'], q);\n }\n if (\n [questionType.option, questionType.multiple_option].includes(q.type)\n ) {\n q = mapKeys(q, (_, k) => (k === 'option' ? 'options' : k));\n }\n if (q?.options) {\n const options = q.options.map((o, oi) => ({\n id: o?.id || qi + 1 + (oi + 1),\n ...o,\n order: o?.order || oi + 1,\n }));\n q = {\n ...q,\n options: orderBy(options, 'order'),\n };\n }\n if (q?.dependency) {\n const dependency = q.dependency.map((d) => {\n if (d?.max) {\n d = { ...d, max: d.max + 1 };\n }\n if (d?.min) {\n d = { ...d, min: d.min - 1 };\n }\n return d;\n });\n q = { ...q, dependency: dependency };\n }\n return { ...q, order: q?.order || qi + 1, questionGroupId: gid };\n });\n qg = {\n ...qg,\n id: gid,\n order: qg?.order || qgi + 1,\n questions: orderBy(questions, 'order'),\n };\n return qg;\n });\n webFormData = {\n ...webFormData,\n questionGroups: orderBy(questionGroups, 'order'),\n };\n return webFormData;\n};\n\nconst toWebform = (formData, questionGroups) => {\n let webformData = {\n id: formData?.id || generateId(),\n name: formData.name,\n description: formData.description,\n };\n if (formData?.languages && formData?.languages?.length) {\n webformData = {\n ...webformData,\n languages: ['en', ...formData.languages],\n defaultLanguage: formData?.defaultLanguage || 'en',\n };\n }\n if (formData?.translations) {\n webformData = clearTranslations(webformData, formData.translations);\n }\n // Question Group & Question Definition\n const output = questionGroups.map((qg) => {\n const questions = qg.questions.map((q) => {\n const isNotOption = ![\n questionType.option,\n questionType.multiple_option,\n ].includes(q.type);\n if (q.type !== questionType.input) {\n q = clearQuestionObj(['requiredDoubleEntry', 'hiddenString'], q);\n }\n if (q.type !== questionType.number && q.type !== questionType.date) {\n q = clearQuestionObj(['rule'], q);\n }\n if (\n [questionType.option, questionType.multiple_option].includes(q.type)\n ) {\n const options = q.options.map((op) => {\n if (op?.translations) {\n return clearTranslations(op, op.translations);\n }\n return op;\n });\n q = { ...q, option: options };\n }\n if (isNotOption) {\n q = clearQuestionObj(['allowOther'], q);\n }\n if (q.type !== questionType.cascade) {\n q = clearQuestionObj(['api'], q);\n }\n if (q.type !== questionType.tree && isNotOption) {\n q = clearQuestionObj(['option'], q);\n }\n if (q.type !== questionType.table) {\n q = clearQuestionObj(['columns'], q);\n }\n if (!q?.tooltip) {\n q = clearQuestionObj(['tooltip'], q);\n }\n if (q?.dependency) {\n const dependency = q.dependency.map((d) => {\n if (d?.max) {\n d = { ...d, max: d.max - 1 };\n }\n if (d?.min) {\n d = { ...d, min: d.min + 1 };\n }\n return d;\n });\n q = { ...q, dependency: dependency };\n }\n if (q?.translations) {\n q = clearTranslations(q, q.translations);\n }\n if (\n q?.hint &&\n !q?.hint?.static &&\n (!q?.hint?.endpoint || !q?.hint?.path?.length)\n ) {\n q = clearQuestionObj(['hint'], q);\n }\n q = clearQuestionObj(['options'], q);\n return q;\n });\n let result = {\n id: qg.id,\n name: qg.name,\n order: qg.order,\n repeatable: qg.repeatable,\n question: questions,\n };\n if (qg?.repeatText) {\n result = {\n ...result,\n repeatText: qg.repeatText,\n };\n }\n if (qg?.description) {\n result = {\n ...result,\n description: qg.description,\n };\n }\n if (qg?.translations) {\n result = clearTranslations(result, qg.translations);\n }\n return result;\n });\n return { ...webformData, question_group: output };\n};\n\nconst generateTranslations = (\n key,\n value,\n savedTranslations,\n existingTranslation\n) => {\n const newTranslations = [\n {\n language: existingTranslation,\n [key]: value,\n },\n ];\n let currentTranslations = null;\n if (savedTranslations && savedTranslations?.length) {\n currentTranslations = savedTranslations.map((tl) => {\n if (tl.language === existingTranslation) {\n return {\n ...tl,\n [key]: value,\n };\n }\n return tl;\n });\n const isExistingExist = findIndex(\n savedTranslations,\n (tr) => tr.language === existingTranslation\n );\n if (isExistingExist === -1) {\n currentTranslations = [...currentTranslations, ...newTranslations];\n }\n }\n return {\n newTranslations: newTranslations,\n currentTranslations: currentTranslations,\n };\n};\n\nconst data = {\n clear: clearQuestionObj,\n toWebform: toWebform,\n toEditor: toEditor,\n generateTranslations: generateTranslations,\n};\n\nexport default data;\n","import React, { useMemo } from 'react';\nimport { Input } from 'antd';\nimport { UIStore, formFn } from '../../lib/store';\nimport { TranslationFormItem } from '../../support';\nimport data from '../../lib/data';\n\nconst FormDefinitionTranslation = () => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}`;\n\n const existingTranslationValues = useMemo(() => {\n return formStore?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n }, [formStore, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n formStore?.translations,\n existingTranslation\n );\n formFn.store.update((u) => {\n u.translations = !currentTranslations\n ? newTranslations\n : currentTranslations;\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeDescription = (e) => {\n updateTranslation('description', e?.target?.value);\n };\n\n return (\n
\n {formStore?.name && (\n \n \n \n )}\n {formStore?.description && (\n \n \n \n )}\n
\n );\n};\n\nexport default FormDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport styles from '../../styles.module.css';\nimport { Card, Input } from 'antd';\nimport { CardTitle, TranslationFormItem } from '../../support';\nimport { UIStore, questionGroupFn, questionType } from '../../lib/store';\nimport data from '../../lib/data';\nimport orderBy from 'lodash/orderBy';\n\nconst QuestionSettingTranslation = ({\n id,\n questionGroupId,\n name,\n type,\n tooltip = {},\n allowOther,\n allowOtherText,\n options = [],\n translations = [],\n}) => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}-question-${id}`;\n\n const existingTranslationValues = useMemo(() => {\n return translations?.find((tl) => tl.language === existingTranslation);\n }, [translations, existingTranslation]);\n\n const existingTooltipTranslationValues = useMemo(() => {\n return tooltip?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n }, [tooltip, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeTooltip = (e) => {\n const key = 'text';\n const value = e?.target?.value;\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n tooltip?.translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id && q?.tooltip?.text) {\n return {\n ...q,\n tooltip: {\n ...q.tooltip,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeAllowOtherText = (e) => {\n updateTranslation('allowOtherText', e?.target?.value);\n };\n\n const handleChangeOptionName = (e, optionTranslations, optionId) => {\n const key = 'name';\n const value = e?.target?.value;\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n optionTranslations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (\n q.id === id &&\n [questionType.option, questionType.multiple_option].includes(\n q.type\n )\n ) {\n const options = q.options.map((opt) => {\n if (opt.id === optionId) {\n return {\n ...opt,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return opt;\n });\n return {\n ...q,\n options: options,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n {name && (\n \n \n \n )}\n {tooltip?.text && (\n \n \n \n )}\n {/* Option Translation */}\n {[questionType.option, questionType.multiple_option].includes(type) && (\n
\n

\n {UIText.questionMoreOptionTranslationText}\n

\n {allowOther && allowOtherText && (\n \n \n \n )}\n {orderBy(options, 'order')\n .filter((d) => d?.name)\n .map((d, di) => {\n const existingOptionTranslationValues = d?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n return (\n \n \n handleChangeOptionName(e, d?.translations, d.id)\n }\n />\n \n );\n })}\n
\n )}\n
\n );\n};\n\nconst QuestionDefinitionTranslation = ({ index, question }) => {\n const { id, name, order, questionGroupOrder } = question;\n const { activeEditTranslationQuestions } = UIStore.useState((s) => s);\n\n const isEditTranslationQuestion = useMemo(() => {\n return activeEditTranslationQuestions.includes(id);\n }, [activeEditTranslationQuestions, id]);\n\n const handleEditTranslationQuestion = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = [\n ...activeEditTranslationQuestions,\n id,\n ];\n });\n };\n\n const handleCancelEditTranslationQuestion = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = activeEditTranslationQuestions.filter(\n (qId) => qId !== id\n );\n });\n };\n\n const cardTitleButton = [\n {\n type: 'show-button',\n isExpand: isEditTranslationQuestion,\n onClick: handleEditTranslationQuestion,\n onCancel: handleCancelEditTranslationQuestion,\n },\n ];\n\n return (\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n }}\n bodyStyle={{\n padding: isEditTranslationQuestion ? 24 : 0,\n borderTop: isEditTranslationQuestion ? '1px solid #f3f3f3' : 'none',\n }}\n >\n {isEditTranslationQuestion && (\n \n )}\n \n );\n};\n\nexport default QuestionDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport { Card, Input } from 'antd';\nimport { UIStore, questionGroupFn } from '../../lib/store';\nimport { CardTitle, TranslationFormItem } from '../../support';\nimport QuestionDefinitionTranslation from './QuestionDefinitionTranslation';\nimport data from '../../lib/data';\nimport { uniq, difference, intersection } from 'lodash';\n\nconst QuestionGroupSettingTranslation = ({\n id,\n name,\n description,\n repeatable,\n repeatText,\n translations = [],\n}) => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}-question_group-${id}`;\n\n const existingTranslationValues = useMemo(() => {\n return translations?.find((tl) => tl.language === existingTranslation);\n }, [translations, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === id) {\n return {\n ...qg,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeDescription = (e) => {\n updateTranslation('description', e?.target?.value);\n };\n\n const handleChangeRepeatText = (e) => {\n updateTranslation('repeatText', e?.target?.value);\n };\n\n return (\n
\n {name && (\n \n \n \n )}\n {description && (\n \n \n \n )}\n {repeatable && repeatText && (\n \n \n \n )}\n
\n );\n};\n\nconst QuestionGroupDefinitionTranslation = ({ index, questionGroup }) => {\n const { id, name, order, questions } = questionGroup;\n const {\n activeTranslationQuestionGroups,\n activeEditTranslationQuestionGroups,\n activeEditTranslationQuestions,\n } = UIStore.useState((s) => s);\n const questionIds = questions.map((q) => q.id);\n\n const showTranslationQuestion = useMemo(() => {\n return activeTranslationQuestionGroups.includes(id);\n }, [activeTranslationQuestionGroups, id]);\n\n const isEditTranslationQuestionGroup = useMemo(() => {\n return activeEditTranslationQuestionGroups.includes(id);\n }, [activeEditTranslationQuestionGroups, id]);\n\n const handleHideTranslationQuestions = () => {\n UIStore.update((s) => {\n s.activeTranslationQuestionGroups =\n activeTranslationQuestionGroups.filter((qgId) => qgId !== id);\n });\n };\n\n const handleCancelEditTranslationGroup = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestionGroups =\n activeEditTranslationQuestionGroups.filter((qgId) => qgId !== id);\n });\n handleHideTranslationQuestions();\n };\n\n const handleEditTranslationGroup = () => {\n UIStore.update((s) => {\n if (!activeEditTranslationQuestionGroups.includes(id)) {\n s.activeEditTranslationQuestionGroups = [\n ...activeEditTranslationQuestionGroups,\n id,\n ];\n } else {\n s.activeEditTranslationQuestionGroups =\n activeEditTranslationQuestionGroups.filter((a) => a !== id);\n }\n });\n };\n\n const handleExpandAll = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestionGroups = uniq([\n ...activeEditTranslationQuestionGroups,\n id,\n ]);\n s.activeEditTranslationQuestions = uniq([\n ...s.activeEditTranslationQuestions,\n ...questionIds,\n ]);\n });\n };\n\n const handleCancelExpandAll = () => {\n handleCancelEditTranslationGroup();\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = difference(\n s.activeEditTranslationQuestions,\n questionIds\n );\n });\n };\n\n const cardTitleButton = [\n {\n type: 'show-button',\n isExpand: isEditTranslationQuestionGroup,\n onClick: handleEditTranslationGroup,\n onCancel: handleCancelEditTranslationGroup,\n },\n ];\n\n const cardExtraButton = [\n {\n type: 'expand-all-button',\n isExpand: intersection(activeEditTranslationQuestions, questionIds)\n .length,\n onClick: handleExpandAll,\n onCancel: handleCancelExpandAll,\n },\n ];\n\n return (\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n }}\n bodyStyle={{\n padding:\n isEditTranslationQuestionGroup || showTranslationQuestion ? 24 : 0,\n borderTop:\n isEditTranslationQuestionGroup || showTranslationQuestion\n ? '1px solid #f3f3f3'\n : 'none',\n }}\n extra={}\n >\n {isEditTranslationQuestionGroup && (\n \n )}\n {isEditTranslationQuestionGroup &&\n questions.map((q, qi) => (\n \n ))}\n \n );\n};\n\nexport default QuestionGroupDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport styles from '../styles.module.css';\nimport { Row, Col, Divider, Tag, Select, Form, Space } from 'antd';\nimport { UIStore, formFn, questionGroupFn } from '../lib/store';\nimport {\n FormDefinitionTranslation,\n QuestionGroupDefinitionTranslation,\n} from './translations';\n\nconst staticDefaultLang = 'en';\n\nconst ExistingTranslation = () => {\n const { localeDropdownValue, existingTranslation } = UIStore.useState(\n (s) => s\n );\n const formStore = formFn.store.useState((s) => s);\n const languages = formStore?.languages || [];\n\n const handleCloseTag = (lang) => {\n UIStore.update((u) => {\n u.existingTranslation =\n existingTranslation === lang ? null : existingTranslation;\n });\n // remove deleted translation from translations list\n formFn.store.update((u) => {\n u.languages = languages.filter((ln) => ln !== lang);\n u.translations = formStore?.translations?.filter(\n (tl) => tl.language !== lang\n );\n });\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n const questions = qg.questions.map((q) => {\n let newObj = q;\n if (q?.options && q?.options?.length) {\n const options = q.options.map((op) => ({\n ...op,\n translations: op?.translations?.filter(\n (tl) => tl.language !== lang\n ),\n }));\n newObj = {\n ...newObj,\n options: options,\n };\n }\n return {\n ...newObj,\n translations: q?.translations?.filter((tl) => tl.language !== lang),\n };\n });\n return {\n ...qg,\n questions: questions,\n translations: qg?.translations?.filter((tl) => tl.language !== lang),\n };\n });\n });\n };\n\n return languages.map((lang) => {\n const findLang = localeDropdownValue.find((lc) => lc.value === lang);\n return (\n \n UIStore.update((u) => {\n u.existingTranslation = existingTranslation !== lang ? lang : null;\n })\n }\n >\n handleCloseTag(lang)}\n >\n {findLang.label}\n \n \n );\n });\n};\n\nconst FormTranslations = () => {\n const [formTranslation] = Form.useForm();\n const { UIText, localeDropdownValue } = UIStore.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s?.questionGroups\n );\n\n const languages = useMemo(() => {\n return formStore?.languages || [];\n }, [formStore?.languages]);\n\n const defaultLangDropdownValue = useMemo(() => {\n return localeDropdownValue.filter((ld) =>\n [staticDefaultLang, ...languages].includes(ld.value)\n );\n }, [localeDropdownValue, languages]);\n\n return (\n \n \n \n

{UIText.inputFormDefaultLanguageLabel}

\n \n formFn.store.update((u) => {\n u.defaultLanguage = e;\n })\n }\n value={formStore?.defaultLanguage || staticDefaultLang}\n disabled={defaultLangDropdownValue.length === 1}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n />\n \n \n

{UIText.inputFormTranslationLabel}

\n \n formFn.store.update((u) => {\n u.languages = [...languages, e];\n })\n }\n value={[]}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n >\n {localeDropdownValue.map((ld, ldi) => (\n \n {ld.label}\n \n ))}\n \n \n \n

{UIText.inputFormExistingTranslationsLabel}

\n \n \n \n \n \n \n \n \n {questionGroups.map((qg, qgi) => {\n return (\n \n );\n })}\n \n \n );\n};\n\nexport default FormTranslations;\n","import React from 'react';\nimport 'akvo-react-form/dist/index.css';\nimport { Webform } from 'akvo-react-form';\nimport { formFn, questionGroupFn } from '../lib/store';\nimport data from '../lib/data';\n\nconst FormPreview = () => {\n const { questionGroups } = questionGroupFn.store.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n\n return ;\n};\n\nexport default FormPreview;\n","import React, { useEffect } from 'react';\nimport { Form, Input } from 'antd';\nimport { UIStore, formFn } from '../lib/store';\n\nconst FormDefinition = ({ name, description }) => {\n const form = Form.useFormInstance();\n const UIText = UIStore.useState((s) => s.UIText);\n const { inputFormNameLabel, inputFormDescriptionLabel } = UIText;\n\n useEffect(() => {\n form.setFieldsValue({ 'form-name': name });\n form.setFieldsValue({ 'form-description': description });\n }, [form, name, description]);\n\n return (\n \n \n \n formFn.store.update((u) => {\n u.name = e?.target?.value;\n })\n }\n />\n \n \n \n formFn.store.update((u) => {\n u.description = e?.target?.value;\n })\n }\n />\n \n \n );\n};\n\nexport default FormDefinition;\n","import React from 'react';\nimport { Form, Input, Checkbox, Row, Col } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionGroupFn } from '../lib/store';\n\nconst QuestionGroupSetting = ({\n id,\n name,\n description,\n repeatable,\n repeatText,\n}) => {\n const namePreffix = `question_group-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n\n const handleChangeName = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, name: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n const handleChangeDescription = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, description: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n const handleChangeRepeatable = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, repeatable: e?.target?.checked };\n }\n return x;\n });\n });\n };\n\n const handleChangeRepeatText = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, repeatText: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n {' '}\n {UIText.inputRepeatThisGroupCheckbox}\n \n \n \n {repeatable && (\n \n \n \n \n \n )}\n \n
\n );\n};\n\nexport default QuestionGroupSetting;\n","import React from 'react';\nimport { Form, Checkbox, Space } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingInput = ({\n id,\n questionGroupId,\n requiredDoubleEntry,\n hiddenString,\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n\n const updateState = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeDoubleEntry = (e) => {\n updateState('requiredDoubleEntry', e?.target?.checked);\n };\n\n const handleChangeHiddenString = (e) => {\n updateState('hiddenString', e?.target?.checked);\n };\n\n return (\n
\n

\n {UIText.questionMoreInputTypeSettingText}\n

\n \n \n \n {' '}\n {UIText.inputQuestionRequireDoubleEntryCheckbox}\n \n \n \n \n {' '}\n {UIText.inputQuestionHiddenStringCheckbox}\n \n \n \n
\n );\n};\n\nexport default SettingInput;\n","import React from 'react';\nimport { Form, Checkbox, Space, InputNumber, Row, Col } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingNumber = ({\n id,\n questionGroupId,\n rule = {\n allowDecimal: false,\n min: null,\n max: null,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const allowDecimal = rule?.allowDecimal;\n const min = rule?.min;\n const max = rule?.max;\n\n const moreNumberSettings = [\n {\n label: UIText.inputQuestionMinimumValueLabel,\n value: min,\n key: 'min',\n rules: {\n max: max - 1,\n message: `${UIText.inputQuestionMinimumValidationText} ${max}`,\n },\n },\n {\n label: UIText.inputQuestionMaximumValueLabel,\n value: max,\n key: 'max',\n rules: {\n min: min + 1,\n message: `${UIText.inputQuestionMaximumValidationText} ${min}`,\n },\n },\n ];\n\n const updateState = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n rule: {\n ...q?.rule,\n [name]: value,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeAllowDecimal = (e) => {\n updateState('allowDecimal', e?.target?.checked);\n };\n\n const handleChangeMinMax = (key, e) => {\n updateState(key, e);\n };\n\n return (\n
\n

\n {UIText.questionMoreInputNumberSettingText}\n

\n \n \n \n {' '}\n {UIText.inputQuestionAllowDecimalCheckbox}\n \n \n \n \n {moreNumberSettings.map((x) => (\n \n \n handleChangeMinMax(x.key, e)}\n />\n \n \n ))}\n \n
\n );\n};\n\nexport default SettingNumber;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Checkbox, Space, Row, Col, Input, Button } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn, generateId } from '../../lib/store';\nimport {\n MdOutlineRemoveCircleOutline,\n MdOutlineAddCircleOutline,\n MdOutlineArrowCircleDown,\n MdOutlineArrowCircleUp,\n} from 'react-icons/md';\nimport { orderBy, takeRight } from 'lodash';\n\nconst defaultOptions = ({ init = false, order = 0 }) => {\n const option = {\n code: null,\n name: 'New Option',\n order: 1,\n };\n if (init) {\n return [\n {\n ...option,\n id: generateId(),\n name: 'New Option 1',\n order: 1,\n },\n {\n ...option,\n id: generateId() + 1,\n name: 'New Option 2',\n order: 2,\n },\n ];\n }\n return {\n ...option,\n id: generateId(),\n order: order,\n };\n};\n\nconst SettingOption = ({\n id,\n questionGroupId,\n allowOther,\n allowOtherText,\n options: initialOptions,\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const [options, setOptions] = useState(\n initialOptions?.length\n ? initialOptions.map((x, xi) => ({\n ...x,\n code: x?.code || null,\n id: x?.id || generateId() + xi,\n order: x?.order || xi + 1,\n }))\n : defaultOptions({ init: true })\n );\n\n const updateState = useCallback(\n (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n useEffect(() => {\n updateState('options', options);\n }, [options, id, questionGroupId, updateState]);\n\n const handleOnChangeAllowOther = (e) => {\n updateState('allowOther', e?.target?.checked);\n };\n\n const handleOnChangeAllowOtherText = (e) => {\n updateState('allowOtherText', e?.target?.value);\n };\n\n const handleOnChangeCode = (e, current) => {\n const { id: currentId } = current;\n setOptions(\n options.map((opt) => {\n if (opt.id === currentId) {\n return {\n ...opt,\n code: e?.target?.value,\n };\n }\n return opt;\n })\n );\n };\n\n const handleOnChangeOption = (e, current) => {\n const { id: currentId } = current;\n setOptions(\n options.map((opt) => {\n if (opt.id === currentId) {\n return {\n ...opt,\n name: e?.target?.value,\n };\n }\n return opt;\n })\n );\n };\n\n const handleOnAddOption = (current) => {\n const { order: currentOrder } = current;\n const lastOrder = takeRight(orderBy(options, 'order'))[0].order;\n // reorder prev option\n const reorderOptions = options.map((opt) => {\n if (opt.order > currentOrder) {\n opt['order'] = opt['order'] + 1;\n }\n if (\n opt.order < currentOrder &&\n opt.order !== 1 &&\n currentOrder !== lastOrder\n ) {\n opt['order'] = opt['order'] - 1;\n }\n return opt;\n });\n const addOptions = [\n ...reorderOptions,\n defaultOptions({ order: currentOrder + 1 }),\n ];\n setOptions(orderBy(addOptions, 'order'));\n };\n\n const handleOnMoveOption = (current, targetOrder) => {\n const { order: currentOrder } = current;\n\n const prevOptions = options.filter(\n (opt) => opt.order !== currentOrder && opt.order !== targetOrder\n );\n const currentOption = options\n .filter((opt) => opt.order === currentOrder)\n .map((opt) => ({\n ...opt,\n order: targetOrder,\n }));\n const targetOption = options\n .filter((opt) => opt.order === targetOrder)\n .map((opt) => ({\n ...opt,\n order: currentOrder,\n }));\n setOptions(\n orderBy([...prevOptions, ...currentOption, ...targetOption], 'order')\n );\n };\n\n const handleOnDeleteOption = (currentId) => {\n // delete and reorder\n setOptions(\n orderBy(options, 'order')\n .filter((opt) => opt.id !== currentId)\n .map((opt, opti) => ({ ...opt, order: opti + 1 }))\n );\n };\n\n return (\n
\n

\n {UIText.questionMoreOptionTypeSettingText}\n

\n \n \n \n \n {' '}\n {UIText.inputQuestionAllowOtherCheckbox}\n \n \n \n {allowOther && (\n \n \n \n \n \n )}\n \n {orderBy(options, 'order').map((d, di) => (\n \n \n \n handleOnChangeCode(e, d)}\n allowClear\n />\n \n \n \n \n handleOnChangeOption(e, d)}\n allowClear\n />\n \n \n \n \n }\n onClick={() => handleOnAddOption(d)}\n />\n }\n onClick={() => handleOnMoveOption(d, d.order - 1)}\n disabled={di === 0}\n />\n }\n onClick={() => handleOnMoveOption(d, d.order + 1)}\n disabled={di === options.length - 1}\n />\n }\n onClick={() => handleOnDeleteOption(d.id)}\n disabled={options.length === 1}\n />\n \n \n \n ))}\n
\n );\n};\n\nexport default SettingOption;\n","import React from 'react';\nimport { Form, Select } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingTree = ({ id, questionGroupId, option }) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingTreeDropdownValue = hostParams?.settingTreeDropdownValue;\n\n const handleChangeTreeDropdown = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n option: e,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreTreeSettingText}\n

\n \n triggerNode.parentElement}\n onChange={handleChangeTreeDropdown}\n />\n \n
\n );\n};\n\nexport default SettingTree;\n","import React, { useMemo } from 'react';\nimport { Form, Checkbox, Row, Col, Input, InputNumber, Select } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingCascade = ({\n id,\n questionGroupId,\n api = {\n endpoint: null,\n initial: 0,\n list: false,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingCascadeURL = hostParams?.settingCascadeURL;\n const form = Form.useFormInstance();\n\n const cascadeURLDropdownValue = useMemo(() => {\n return settingCascadeURL.map((x) => ({ label: x.name, value: x.id }));\n }, [settingCascadeURL]);\n\n const updateGlobalState = (values = {}) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n api: {\n ...q?.api,\n ...values,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeEndpoint = (e) => {\n const findURL = settingCascadeURL.find((x) => x.id === e);\n if (findURL) {\n form.setFieldsValue({\n [`${namePreffix}-api_initial`]: findURL.initial,\n [`${namePreffix}-api_list`]: findURL.list,\n });\n updateGlobalState({\n endpoint: findURL.endpoint,\n initial: findURL.initial || 0,\n list: findURL.list || false,\n });\n }\n };\n\n const handleChangeInitial = (e) => {\n updateGlobalState({ initial: e });\n };\n\n const handleChangeList = (value) => {\n updateGlobalState({\n list: value,\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreCascadeSettingText}\n

\n \n \n \n triggerNode.parentElement}\n onChange={handleChangeEndpoint}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n handleChangeList(e?.target?.checked)}\n checked={api?.list ? true : false}\n >\n {' '}\n {UIText.inputQuestionListCheckbox}\n \n \n \n {api?.list && (\n \n \n handleChangeList(e?.target?.value)}\n allowClear\n />\n \n \n )}\n \n
\n );\n};\n\nexport default SettingCascade;\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","import React from 'react';\nimport { Form, DatePicker, Row, Col } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\nimport moment from 'moment';\nimport isEmpty from 'lodash/isEmpty';\n\nconst SettingDate = ({\n id,\n questionGroupId,\n rule = { minDate: null, maxDate: null },\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const minDate = rule?.minDate;\n const maxDate = rule?.maxDate;\n\n const moreDateSettings = [\n {\n label: UIText.inputQuestionAfterDateValueLabel,\n value: minDate,\n key: 'minDate',\n disabledDate: (current) =>\n current && maxDate && current >= moment(maxDate),\n },\n {\n label: UIText.inputQuestionBeforeDateValueLabel,\n value: maxDate,\n key: 'maxDate',\n disabledDate: (current) =>\n current && minDate && current <= moment(minDate),\n },\n ];\n\n const handleChangeAfterBefore = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n if (value) {\n return {\n ...q,\n rule: {\n ...q?.rule,\n [name]: moment(value).format('YYYY-MM-DD'),\n },\n };\n }\n if (!value && q?.rule?.[name]) {\n delete q.rule[name];\n if (isEmpty(q.rule)) {\n delete q.rule;\n }\n }\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreInputDateSettingText}\n

\n \n {moreDateSettings.map((x) => (\n \n \n handleChangeAfterBefore(x.key, e)}\n />\n \n \n ))}\n \n
\n );\n};\n\nexport default SettingDate;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Input, Select, Row, Col, Card, Button, Space } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn, generateId } from '../../lib/store';\nimport {\n MdOutlineRemoveCircleOutline,\n MdOutlineAddCircleOutline,\n MdOutlineArrowCircleDown,\n MdOutlineArrowCircleUp,\n} from 'react-icons/md';\nimport { takeRight, orderBy } from 'lodash';\n\nconst generateColumnName = (text) =>\n text.trim().toLowerCase().split(' ').join('_');\n\nconst columnType = {\n input: 'input',\n number: 'number',\n option: 'option',\n text: 'text',\n};\n\nconst defaultColumns = ({ init = false }) => {\n const column = {\n name: null,\n label: null,\n type: null,\n };\n if (init) {\n return [{ ...column, id: generateId() }];\n }\n return { ...column, id: generateId() };\n};\n\nconst defaultColumnOptions = ({ init = false, order = 0 }) => {\n const option = {\n name: 'New Option',\n order: 1,\n };\n if (init) {\n return [{ ...option, id: generateId() }];\n }\n return { ...option, id: generateId(), order: order };\n};\n\nconst SettingTable = ({ id, questionGroupId, columns: initialColumns }) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const [columns, setColumns] = useState(\n initialColumns?.length\n ? initialColumns.map((cl, cli) => {\n if (cl?.options && cl?.options?.length) {\n const options = cl.options.map((op, opi) => ({\n ...op,\n id: op?.id || generateId() + initialColumns.length + opi + 1,\n }));\n return {\n ...cl,\n id: cl?.id || generateId() + cli,\n options: options,\n };\n }\n return {\n ...cl,\n id: cl?.id || generateId() + cli,\n };\n })\n : defaultColumns({ init: true })\n );\n\n const columnTypeOptions = Object.keys(columnType).map((key) => ({\n label: columnType[key],\n value: key,\n }));\n\n useEffect(() => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return { ...q, columns: columns };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n }, [id, questionGroupId, columns]);\n\n const updateColumns = useCallback(\n (columnId, obj) => {\n const updatedColumn = columns.map((cl) => {\n if (cl.id === columnId) {\n return {\n ...cl,\n ...obj,\n };\n }\n return cl;\n });\n setColumns(updatedColumn);\n },\n [columns]\n );\n\n const handleChangeColumnName = (columnId, value) => {\n updateColumns(columnId, { name: generateColumnName(value), label: value });\n };\n\n const handleChangeColumnType = (columnId, value) => {\n let obj = { type: value };\n if (value === columnType.option) {\n obj = { ...obj, options: defaultColumnOptions({ init: true }) };\n }\n updateColumns(columnId, obj);\n };\n\n const handleAddColumn = () => {\n const addColumns = [...columns, defaultColumns({ init: false })];\n setColumns(addColumns);\n };\n\n const handleDeleteColumn = (currentColumn) => {\n const updatedColumn = columns.filter((cl) => cl.id !== currentColumn.id);\n setColumns(updatedColumn);\n };\n\n const handleOnAddOption = (currentColumn, currentOption) => {\n const { id: columnId, options } = currentColumn;\n const { order: currentOrder } = currentOption;\n const lastOrder = takeRight(orderBy(options, 'order'))[0].order;\n // reorder prev option\n const reorderOptions = options.map((opt) => {\n let order = opt.order;\n if (opt.order > currentOrder) {\n order = order + 1;\n }\n if (\n opt.order < currentOrder &&\n opt.order !== 1 &&\n currentOrder !== lastOrder\n ) {\n order = order - 1;\n }\n return { ...opt, order: order };\n });\n const addOptions = [\n ...reorderOptions,\n defaultColumnOptions({ order: currentOrder + 1 }),\n ];\n updateColumns(columnId, { options: addOptions });\n };\n\n const handleOnMoveOption = (currentColumn, currentOption, targetOrder) => {\n const { id: columnId, options } = currentColumn;\n const { order: currentOrder } = currentOption;\n // handle move\n const prevOptions = options.filter(\n (opt) => opt.order !== currentOrder && opt.order !== targetOrder\n );\n const currentOptions = options\n .filter((opt) => opt.order === currentOrder)\n .map((opt) => ({\n ...opt,\n order: targetOrder,\n }));\n const targetOptions = options\n .filter((opt) => opt.order === targetOrder)\n .map((opt) => ({\n ...opt,\n order: currentOrder,\n }));\n updateColumns(columnId, {\n options: orderBy(\n [...prevOptions, ...currentOptions, ...targetOptions],\n 'order'\n ),\n });\n };\n\n const handleOnDeleteOption = (currentColumn, currentOptionId) => {\n const { id: columnId, options } = currentColumn;\n // delete and reorder\n updateColumns(columnId, {\n options: orderBy(options, 'order')\n .filter((opt) => opt.id !== currentOptionId)\n .map((opt, opti) => ({ ...opt, order: opti + 1 })),\n });\n };\n\n const handleOnChangeOption = (currentColumn, currentOption, value) => {\n const { id: columnId, options } = currentColumn;\n const { id: currentOptId } = currentOption;\n const updatedOptions = options.map((op) => {\n if (op.id === currentOptId) {\n return {\n ...op,\n name: value,\n };\n }\n return op;\n });\n updateColumns(columnId, { options: updatedOptions });\n };\n\n return (\n
\n

{UIText.questionMoreTableTypeSettingText}

\n {columns.map((cl, cli) => {\n return (\n \n {`Column - ${cli + 1}`}\n \n \n }\n onClick={() => handleAddColumn()}\n />\n }\n onClick={() => handleDeleteColumn(cl)}\n disabled={columns.length === 1}\n />\n \n \n \n }\n >\n \n \n \n \n handleChangeColumnName(cl.id, e?.target?.value)\n }\n />\n \n \n \n \n \n triggerNode.parentElement\n }\n onChange={(val) => handleChangeColumnType(cl.id, val)}\n />\n \n \n \n {cl.type === columnType.option && (\n
\n

{UIText.questionTableTypeDefineOptionsText}

\n {cl?.options?.map((op, opi) => {\n return (\n \n \n \n \n handleOnChangeOption(cl, op, e?.target?.value)\n }\n />\n \n \n \n \n }\n onClick={() => handleOnAddOption(cl, op)}\n />\n }\n onClick={() =>\n handleOnMoveOption(cl, op, op.order - 1)\n }\n disabled={opi === 0}\n />\n }\n onClick={() =>\n handleOnMoveOption(cl, op, op.order + 1)\n }\n disabled={opi === cl.options.length - 1}\n />\n }\n onClick={() => handleOnDeleteOption(cl, op.id)}\n disabled={cl.options.length === 1}\n />\n \n \n \n );\n })}\n
\n )}\n \n
\n \n );\n })}\n
\n );\n};\n\nexport default SettingTable;\n","import React from 'react';\nimport { Form, InputNumber, Row, Col } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingImage = ({ id, questionGroupId, limit }) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n\n const updateState = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleOnLimit = (value) => {\n updateState('limit', value);\n };\n return (\n
\n

\n {UIText.questionMoreImageTypeSettingText}\n

\n \n \n \n \n \n \n \n
\n );\n};\n\nexport default SettingImage;\n","import React, { useMemo } from 'react';\nimport styles from '../styles.module.css';\nimport { Form, Row, Col, Select, Input } from 'antd';\nimport { UIStore, questionGroupFn } from '../lib/store';\nimport { useCallback } from 'react';\n\nconst QuestionHint = ({\n id,\n questionGroupId,\n hint = {\n id: null,\n endpoint: null,\n path: [],\n static: null,\n buttonText: null,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingHintURL = hostParams?.settingHintURL?.settings;\n const form = Form.useFormInstance();\n\n const updateGlobalState = useCallback(\n (values = {}) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n hint: {\n ...q?.hint,\n ...values,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const hintURLDropdownValue = useMemo(() => {\n return settingHintURL && settingHintURL?.length\n ? settingHintURL.map((x) => ({\n label: x.name,\n value: x.id,\n }))\n : [];\n }, [settingHintURL]);\n\n const hintPathDropdownValue = useMemo(() => {\n let endpoint = hint?.endpoint;\n if (hint?.endpoint && endpoint.includes(String(id))) {\n endpoint = endpoint.replace(`/${String(id)}`, '');\n }\n const findURL = settingHintURL.find(\n (x) => x.id === hint?.id || x.endpoint === endpoint\n );\n updateGlobalState({ id: findURL?.id });\n return findURL?.path || [];\n }, [settingHintURL, hint?.id, hint?.endpoint, id, updateGlobalState]);\n\n const handleChangeEndpoint = (e) => {\n const findURL = settingHintURL.find((x) => x.id === e);\n form.setFieldsValue({\n [`${namePreffix}-hint_path`]: [],\n });\n updateGlobalState({\n id: e, // set current URL id\n endpoint: findURL?.endpoint ? `${findURL.endpoint}/${id}` : null,\n path: [],\n });\n };\n\n const handleChangePath = (val) => {\n updateGlobalState({\n path: val,\n });\n };\n\n const handleChangeStaticValue = (e) => {\n updateGlobalState({\n id: null,\n static: e?.target?.value,\n endpoint: null,\n path: [],\n });\n };\n\n const handleChangeButtonText = (e) => {\n updateGlobalState({\n buttonText: e?.target?.value,\n });\n };\n\n return (\n
\n

\n {UIText.questionHintSettingText}\n

\n \n \n \n triggerNode.parentElement}\n onChange={handleChangeEndpoint}\n value={hint?.id}\n disabled={hint?.static}\n />\n \n \n \n \n \n \n \n triggerNode.parentElement}\n onChange={handleChangePath}\n disabled={hint?.static}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default QuestionHint;\n","import React, { useCallback, useMemo } from 'react';\nimport { Form, Input, Select, Checkbox, Alert, Row, Col, Popover } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionType, questionGroupFn } from '../lib/store';\nimport {\n SettingInput,\n SettingTree,\n SettingNumber,\n SettingOption,\n SettingCascade,\n SettingDate,\n SettingTable,\n SettingImage,\n} from './question-type';\nimport QuestionHint from './QuestionHint';\nimport { map, groupBy, orderBy, isEmpty } from 'lodash';\nimport { AiOutlineQuestionCircle } from 'react-icons/ai';\n\nconst QuestionSetting = ({ question, dependant }) => {\n const {\n id,\n name,\n type,\n variable,\n tooltip,\n required,\n questionGroupId,\n meta,\n disableDelete,\n } = question;\n const namePreffix = `question-${id}`;\n const form = Form.useFormInstance();\n const qType = Form.useWatch(`${namePreffix}-type`, form);\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const limitQuestionType = hostParams?.limitQuestionType;\n const settingHintURL = hostParams?.settingHintURL;\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n\n const disableMetaForGeo = useMemo(() => {\n const metaGeoQuestionDefined = questionGroups\n .flatMap((qg) =>\n qg.questions.filter((q) => q.type === questionType.geo && q?.meta)\n )\n .map((q) => q.id);\n return (\n type === questionType.geo &&\n metaGeoQuestionDefined.length &&\n !metaGeoQuestionDefined.includes(id)\n );\n }, [questionGroups, type, id]);\n\n const showMetaCheckbox = useMemo(() => {\n const currentQuestionGroup = questionGroups.find(\n (qg) => qg.id === questionGroupId\n );\n return (\n ![questionType.tree, questionType.table].includes(type) &&\n !currentQuestionGroup?.repeatable\n );\n }, [type, questionGroups, questionGroupId]);\n\n const questionTypeDropdownValue = useMemo(() => {\n if (limitQuestionType && limitQuestionType?.length) {\n return limitQuestionType;\n }\n return Object.keys(questionType).map((key) => ({\n label: questionType[key]?.split('_').join(' '),\n value: questionType[key],\n }));\n }, [limitQuestionType]);\n\n const showHintSetting = useMemo(() => {\n if (!settingHintURL || !settingHintURL?.settings?.length) {\n return false;\n }\n if (\n settingHintURL?.questionTypes &&\n settingHintURL?.questionTypes?.length\n ) {\n return settingHintURL.questionTypes.includes(type);\n }\n return settingHintURL?.settings?.length;\n }, [settingHintURL, type]);\n\n const updateState = useCallback(\n (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const defaultTypeValue = useMemo(() => {\n if (questionTypeDropdownValue.length) {\n const checkType = questionTypeDropdownValue.find((x) => x.value === type);\n if (checkType) {\n return type;\n }\n if (!isEmpty(defaultQuestionParam) && defaultQuestionParam?.type) {\n updateState('type', defaultQuestionParam.type);\n return defaultQuestionParam.type;\n }\n const checkText = questionTypeDropdownValue.find(\n (x) => x.value === questionType.text\n );\n const defType = checkText\n ? checkText.value\n : questionTypeDropdownValue?.[0]?.value;\n updateState('type', defType);\n return defType;\n }\n return type;\n }, [type, questionTypeDropdownValue, defaultQuestionParam, updateState]);\n\n const handleChangeName = (e) => {\n updateState('name', e?.target?.value);\n };\n\n const handleChangeType = (e) => {\n updateState('type', e);\n };\n\n const handleChangeVariableName = (e) => {\n updateState('variableName', e?.target?.value);\n };\n\n const handleChangeTooltip = (e) => {\n const value = e?.target?.value;\n if (value) {\n updateState('tooltip', { ...tooltip, text: value });\n } else {\n updateState('tooltip', null);\n }\n };\n\n const handleChangeRequired = (e) => {\n updateState('required', e?.target?.checked);\n };\n\n const handleChangeMeta = (e) => {\n updateState('meta', e?.target?.checked);\n };\n\n const dependantGroup = map(\n groupBy(\n dependant.map((x) => ({\n name: `${x.questionGroup.order}.${x.order}. ${x.name}`,\n group: `${x.questionGroup.order}. ${x.questionGroup.name}`,\n })),\n 'group'\n ),\n (i, g) => ({\n items: orderBy(i, 'name'),\n group: g,\n })\n );\n\n return (\n
\n {!!dependant.length && (\n \n
    \n Dependant Questions:\n {dependantGroup.map((d, di) => (\n
  • \n {d.group}\n
      \n {d.items.map((i, ii) => (\n
    • {i.name}
    • \n ))}\n
    \n
  • \n ))}\n
\n
\n }\n type=\"info\"\n style={{ marginBottom: 24 }}\n />\n )}\n \n \n \n \n triggerNode.parentElement}\n onChange={handleChangeType}\n disabled={dependant.length || disableDelete}\n />\n \n \n \n \n \n \n \n \n \n \n \n {' '}\n {UIText.inputQuestionRequiredCheckbox}\n \n \n \n {showMetaCheckbox && (\n \n
\n \n \n {' '}\n {UIText.inputQuestionMetaCheckbox}\n \n {UIText.inputQuestionMetaCheckboxHint}}\n >\n \n \n \n
\n \n )}\n \n {showHintSetting && }\n {qType === questionType.input && }\n {qType === questionType.number && }\n {[questionType.option, questionType.multiple_option].includes(qType) && (\n \n )}\n {qType === questionType.tree && }\n {qType === questionType.cascade && }\n {qType === questionType.date && }\n {qType === questionType.table && }\n {qType === questionType.image && }\n \n );\n};\n\nexport default QuestionSetting;\n","import React, { useMemo, useState, useEffect, useCallback } from 'react';\nimport {\n Form,\n Select,\n Row,\n Col,\n InputNumber,\n Input,\n Alert,\n Space,\n DatePicker,\n} from 'antd';\nimport styles from '../styles.module.css';\nimport { ButtonWithIcon } from '../support';\nimport {\n UIStore,\n questionGroupFn,\n generateId,\n questionType,\n} from '../lib/store';\nimport { groupBy, map } from 'lodash';\nimport moment from 'moment';\n\nconst dependencyTypes = [\n {\n type: [questionType.option, questionType.multiple_option],\n logicDropdowns: [\n {\n label: 'contains',\n value: 'options',\n },\n ],\n },\n {\n type: [questionType.number],\n logicDropdowns: [\n {\n label: 'not equal',\n value: 'notEqual',\n },\n {\n label: 'less than',\n value: 'max',\n },\n {\n label: 'greater than',\n value: 'min',\n },\n ],\n },\n {\n type: [questionType.date],\n logicDropdowns: [\n {\n label: 'before',\n value: 'before',\n },\n {\n label: 'after',\n value: 'after',\n },\n ],\n },\n];\n\nconst defaultSkipLogic = () => {\n return [\n {\n id: generateId(),\n dependentTo: null,\n dependentToType: null,\n dependentLogic: null,\n dependentAnswer: null,\n dependencyLogicDropdownValue: [],\n dependencyAnswerDropdownValue: [],\n },\n ];\n};\n\nconst fetchDependencyLogicDropdown = (question) => {\n const value = dependencyTypes.find((dt) =>\n dt.type.includes(question.type)\n )?.logicDropdowns;\n return value || [];\n};\n\nconst fetchDependencyAnswerDropdown = (question) => {\n if (question?.options) {\n return question.options.map((opt) => ({\n label: opt.name,\n value: opt.name,\n }));\n }\n return [];\n};\n\nconst transformDependencyValue = (dependency, questionGroups) => {\n // transform dependency to match default skip logic format\n const questions = questionGroups.flatMap((qg) => qg.questions);\n const logicDropdowns = dependencyTypes\n .flatMap((d) => d.logicDropdowns)\n .map((x) => x.value);\n const value = dependency.map((d) => {\n let dependentLogic = null;\n const dependentAnswer = logicDropdowns\n .map((lg) => {\n if (d?.[lg]) {\n dependentLogic = lg;\n }\n return d?.[lg];\n })\n .filter((x) => x)?.[0];\n const findQ = questions.find((q) => q.id === d.id);\n return {\n id: generateId(),\n dependentTo: d.id,\n dependentToType: findQ.type,\n dependentLogic: dependentLogic,\n dependentAnswer: dependentAnswer,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(findQ),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(findQ),\n };\n });\n return value;\n};\n\nconst SettingSkipLogic = ({\n question,\n questions,\n dependency,\n dependencies,\n setDependencies,\n dependentToQuestions,\n}) => {\n const { id, questionGroupId, dependency: savedDependency } = question;\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const form = Form.useFormInstance();\n\n const updateGlobalStore = useCallback(\n (dependencyValue, isDelete = false) => {\n const transformDependencies = dependencyValue\n .map((dp) => {\n return {\n id: dp.dependentTo,\n [dp.dependentLogic]: dp.dependentAnswer,\n };\n })\n .filter((d) => d.id);\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id && !isDelete) {\n return {\n ...q,\n dependency: transformDependencies,\n };\n }\n if (q.id === id && !isDelete && !transformDependencies.length) {\n q.dependency && delete q.dependency;\n return q;\n }\n if (q.id === id && isDelete && transformDependencies.length) {\n return {\n ...q,\n dependency: transformDependencies,\n };\n }\n if (q.id === id && isDelete && !transformDependencies.length) {\n q.dependency && delete q.dependency;\n return q;\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n useEffect(() => {\n // add dependency to global store if all dependency value defined\n const checkDependencies = dependencies.filter((dp) => {\n if (\n dp.dependentTo &&\n dp.dependentLogic &&\n Array.isArray(dp.dependentAnswer) &&\n dp.dependentAnswer.length\n ) {\n return dp;\n }\n if (\n dp.dependentTo &&\n dp.dependentLogic &&\n !Array.isArray(dp.dependentAnswer) &&\n dp.dependentAnswer\n ) {\n return dp;\n }\n });\n if (checkDependencies.length) {\n updateGlobalStore(checkDependencies);\n }\n }, [dependencies, id, questionGroupId, updateGlobalStore]);\n\n const updateLocalState = useCallback(\n (dependencyId, values = {}) => {\n const updatedDependencies = dependencies\n .map((d) => {\n if (d.id === dependencyId) {\n return {\n ...d,\n ...values,\n };\n }\n return d;\n })\n .filter((d) =>\n dependencyTypes.flatMap((dt) => dt.type).includes(d.dependentToType)\n );\n setDependencies(updatedDependencies);\n },\n [dependencies, setDependencies]\n );\n\n useEffect(() => {\n // delete logic if dependentTo question type changed\n setTimeout(() => {\n const checkChangedType = dependencies\n .map((d) => {\n const findQ = questions.find((q) => q.id === d.dependentTo);\n if (findQ?.id && findQ.type !== d.dependentToType) {\n return findQ;\n }\n return false;\n })\n .filter((x) => x);\n if (dependencies.length && checkChangedType.length) {\n checkChangedType.forEach((q) => {\n const updatedDependency = dependencies.find(\n (d) => d.dependentTo === q.id\n );\n updateLocalState(updatedDependency.id, {\n ...updatedDependency,\n dependentToType: q.type,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(q),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(q),\n });\n form.setFieldsValue({\n [`${namePreffix}-dependent_logic-${updatedDependency.id}`]: null,\n });\n });\n }\n }, 500);\n }, [dependencies, questions, form, namePreffix, updateLocalState]);\n\n const handleChangeDependentTo = (dependencyId, e) => {\n const question = questions.find((q) => q.id === e);\n const values = {\n dependentTo: e,\n dependentToType: question.type,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(question),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(question),\n };\n updateLocalState(dependencyId, values);\n };\n\n const handleChangeDependentLogic = (dependencyId, e) => {\n updateLocalState(dependencyId, { dependentLogic: e });\n };\n\n const handleChangeDependentAnswer = (dependencyId, val) => {\n updateLocalState(dependencyId, { dependentAnswer: val });\n // handle when answer value empty\n if (savedDependency?.length) {\n // delete dependency from global store\n const updatedDependencies = savedDependency.filter(\n (d) => d.id !== dependencyId\n );\n if (Array.isArray(val) && !val.length) {\n updateGlobalStore(updatedDependencies, true);\n return;\n }\n if (!Array.isArray(val) && !val) {\n updateGlobalStore(updatedDependencies, true);\n return;\n }\n }\n };\n\n const handleAddMoreDependency = () => {\n const newDependencies = [...dependencies, ...defaultSkipLogic()];\n setDependencies(newDependencies);\n };\n\n const handleDeleteDependentTo = (dependencyId) => {\n form.setFieldsValue({\n [`${namePreffix}-dependent_logic-${dependencyId}`]: null,\n });\n const updatedDependencies = dependencies.filter(\n (dependency) => dependency.id !== dependencyId\n );\n if (updatedDependencies.length) {\n setDependencies(updatedDependencies);\n } else {\n setDependencies(defaultSkipLogic());\n updateGlobalStore([], true);\n }\n };\n\n const dropdown = map(groupBy(dependentToQuestions, 'group'), (i, l) => ({\n label: l,\n item: i,\n })).map((g, gi) => ({ ...g, key: gi }));\n\n return (\n \n \n \n \n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentTo(dependency.id, e)}\n value={dependency.dependentTo || []}\n optionFilterProp=\"children\"\n >\n {dropdown.map((g) => (\n \n {g.item.map((dq) => (\n d.dependentTo)\n .includes(dq.value)}\n >\n {dq.label}\n \n ))}\n \n ))}\n \n \n \n \n \n handleDeleteDependentTo(dependency.id)}\n />\n \n \n \n \n \n \n \n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentLogic(dependency.id, e)}\n />\n \n \n \n \n {!dependency.dependentTo && }\n {/* Number */}\n {dependency.dependentToType === questionType.number && (\n handleChangeDependentAnswer(dependency.id, e)}\n value={dependency.dependentAnswer || null}\n />\n )}\n {/* Option / Multiple */}\n {[questionType.option, questionType.multiple_option].includes(\n dependency.dependentToType\n ) && (\n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentAnswer(dependency.id, e)}\n mode=\"multiple\"\n showSearch\n allowClear\n showArrow\n value={\n Array.isArray(dependency.dependentAnswer)\n ? dependency.dependentAnswer\n : dependency.dependentAnswer\n ? [dependency.dependentAnswer]\n : []\n }\n />\n )}\n {/* Date */}\n {dependency.dependentToType === questionType.date && (\n \n handleChangeDependentAnswer(\n dependency.id,\n moment(e).format('YYYY-MM-DD')\n )\n }\n />\n )}\n \n \n \n \n );\n};\n\nconst QuestionSkipLogic = ({ question }) => {\n const {\n id,\n questionGroupId,\n dependency,\n order: currentQuestionOrder,\n } = question;\n const UIText = UIStore.useState((s) => s.UIText);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const [dependencies, setDependencies] = useState(\n dependency?.length\n ? transformDependencyValue(dependency, questionGroups)\n : defaultSkipLogic()\n );\n\n const currentQuestionGroupOrder = useMemo(() => {\n return questionGroups.find((qg) => qg.id === questionGroupId)?.order;\n }, [questionGroups, questionGroupId]);\n\n const questions = useMemo(() => {\n return questionGroups\n .filter((qg) => qg.order <= currentQuestionGroupOrder) // filter by group order\n .flatMap((qg) => qg.questions)\n .filter(\n (q) =>\n (q.questionGroupId === questionGroupId &&\n q.order < currentQuestionOrder) ||\n q.questionGroupId !== questionGroupId\n ); // filter by question order\n }, [\n questionGroups,\n currentQuestionGroupOrder,\n currentQuestionOrder,\n questionGroupId,\n ]);\n\n // dependency question dropdown value\n const dependentToQuestions = useMemo(() => {\n return questions\n .filter((q) => dependencyTypes.flatMap((dt) => dt.type).includes(q.type))\n .map((q) => {\n const group = questionGroups.find((g) => g.id === q.questionGroupId);\n return {\n label: `${group.order}.${q.order}. ${q.name}`,\n value: q.id,\n group: `${group.order}. ${group.name}`,\n };\n });\n }, [questions, questionGroups]);\n\n if (!dependencies?.[0]?.dependentTo && !dependentToQuestions?.length) {\n return (\n \n );\n }\n\n return (\n \n {dependencies?.map((dependency, di) => (\n \n ))}\n \n );\n};\n\nexport default QuestionSkipLogic;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Input, Select } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionGroupFn } from '../lib/store';\n\nconst QuestionCustomParams = ({ question }) => {\n const { id, questionGroupId } = question;\n const namePreffix = `question-${id}`;\n const hostParams = UIStore.useState((s) => s.hostParams);\n const customParams = hostParams?.customParams;\n const [initLoad, setInitLoad] = useState(true);\n const [paramValue, setParamValue] = useState({});\n\n useEffect(() => {\n if (initLoad) {\n // initial value load\n const customParamObj = customParams?.params\n ?.map((cp) => {\n let findValue = question?.[cp.name];\n if (Array.isArray(findValue) && cp.type === 'input') {\n findValue = findValue[0];\n }\n if (findValue) {\n return { [cp.name]: findValue };\n }\n return false;\n })\n .filter((x) => x);\n if (customParamObj.length) {\n setParamValue(\n customParamObj.reduce((res, curr) => ({ ...res, ...curr }))\n );\n }\n setInitLoad(false);\n }\n }, [customParams, question, initLoad]);\n\n const updateGlobalStore = useCallback(\n (objKey, value, isDelete = false) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n if (isDelete && q?.[objKey]) {\n delete q[objKey];\n return q;\n }\n return { ...q, [objKey]: value };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const handleChangeParameterValue = (objKey, val) => {\n setParamValue({\n ...paramValue,\n [objKey]: val,\n });\n const isDelete = !val || !val?.length;\n const value = Array.isArray(val) ? val : [val];\n updateGlobalStore(objKey, value, isDelete);\n };\n\n return customParams?.params?.map((cp, cpi) => {\n let multipleProps = {};\n if (cp?.multiple) {\n multipleProps = {\n mode: 'multiple',\n showArrow: true,\n };\n }\n return (\n
\n \n {cp.type === 'option' && (\n handleChangeParameterValue(cp.name, val)}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n value={paramValue?.[cp.name] || []}\n {...multipleProps}\n />\n )}\n {cp.type === 'input' && (\n \n handleChangeParameterValue(cp.name, e?.target?.value)\n }\n value={paramValue?.[cp.name] || null}\n allowClear\n />\n )}\n \n
\n );\n });\n};\n\nexport default QuestionCustomParams;\n","import React, { useMemo, useState } from 'react';\nimport { Card, Tabs } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionFn, questionGroupFn } from '../lib/store';\nimport data from '../lib/data';\nimport QuestionSetting from './QuestionSetting';\nimport QuestionSkipLogic from './QuestionSkipLogic';\nimport QuestionCustomParams from './QuestionCustomParams';\nimport { ButtonAddMove, CardTitle, AlertPopup } from '../support';\nimport { orderBy, maxBy, minBy } from 'lodash';\n\nconst QuestionDefinition = ({ index, question, questionGroup, isLastItem }) => {\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const questions = questionGroup?.questions;\n const { UIText, hostParams, activeEditQuestions } = UIStore.useState(\n (s) => s\n );\n const movingQ = UIStore.useState((s) => s.activeMoveQuestion);\n const isCopying = UIStore.useState((s) => s.isCopyingQuestion);\n const [activeTab, setActiveTab] = useState('setting');\n const [isModalOpen, setIsModalOpen] = useState(false);\n const { id, questionGroupId, order, name, dependency, disableDelete } =\n question;\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const customParams = hostParams?.customParams;\n\n const enableCustomParams =\n customParams && customParams?.label && customParams?.params?.length;\n\n const allQuestions = questionGroups\n .map((qg) => qg.questions)\n .flatMap((x) => x)\n .map((q) => ({\n ...q,\n questionGroup: questionGroups.find((qg) => q.questionGroupId === qg.id),\n }));\n\n const dependant = useMemo(() => {\n const dependant = allQuestions.filter(\n (q) => q?.dependency?.filter((d) => d.id === id).length || false\n );\n\n let disabled = { current: false, last: false };\n\n const movingQDependency = maxBy(\n movingQ?.dependency?.map((q) => allQuestions.find((a) => a.id === q.id)),\n 'questionGroup.order'\n );\n if (movingQDependency?.questionGroup?.order >= questionGroup?.order) {\n disabled = {\n ...disabled,\n current:\n movingQDependency?.questionGroup?.order === questionGroup.order\n ? movingQDependency.order >= order\n : true,\n };\n disabled = {\n ...disabled,\n last:\n movingQDependency?.questionGroup?.order === questionGroup.order\n ? movingQDependency.order >= order + 1\n : true,\n };\n }\n const movingQDependant = minBy(\n allQuestions.filter(\n (q) =>\n q?.dependency?.filter((d) => d.id === movingQ?.id).length || false\n ),\n 'questionGroup.order'\n );\n if (movingQDependant?.questionGroup?.order <= questionGroup?.order) {\n disabled = {\n ...disabled,\n current:\n movingQDependant?.questionGroup?.order === questionGroup.order\n ? movingQDependant.order <= order - 1\n : true,\n };\n disabled = {\n ...disabled,\n last:\n movingQDependant?.questionGroup?.order === questionGroup.order\n ? movingQDependant.order <= order\n : true,\n };\n }\n return {\n disabled: disabled,\n dependant: dependant,\n };\n }, [id, order, questionGroup, allQuestions, movingQ]);\n\n const isEditQuestion = useMemo(() => {\n return activeEditQuestions.includes(id);\n }, [activeEditQuestions, id]);\n\n const handleEdit = () => {\n UIStore.update((s) => {\n s.activeEditQuestions = [...activeEditQuestions, id];\n });\n };\n\n const handleCancelEdit = () => {\n UIStore.update((s) => {\n s.activeEditQuestions = activeEditQuestions.filter((qId) => qId !== id);\n });\n };\n\n const handleCancelMove = () => {\n UIStore.update((s) => {\n s.isCopyingQuestion = false;\n s.activeMoveQuestion = null;\n movingQ === question ? null : question;\n });\n };\n\n const handleMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestion =\n movingQ === question && !s.isCopyingQuestion ? null : question;\n s.isCopyingQuestion = false;\n });\n };\n\n const handleCopy = () => {\n UIStore.update((s) => {\n s.activeMoveQuestion =\n movingQ === question && s.isCopyingQuestion ? null : question;\n s.isCopyingQuestion = !s.isCopyingQuestion;\n });\n };\n\n const handleDelete = () => {\n const newQuestions = questions\n .filter((q) => q.id !== id)\n .map((q) => {\n if (q.order > order) {\n return { ...q, order: q.order - 1 };\n }\n return q;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n return { ...qg, questions: newQuestions };\n }\n return qg;\n });\n });\n setIsModalOpen(false);\n };\n\n const handleOnAdd = (prevOrder) => {\n const prevQ = questions.filter((q) => q.order <= prevOrder);\n const nextQ = questions\n .filter((q) => q.order > prevOrder)\n .map((q) => ({\n ...q,\n order: q.order + 1,\n }));\n const newQ = {\n ...defaultQuestionParam,\n questionGroup: questionGroup,\n prevOrder: prevOrder,\n params: data.clear(['id', 'order', 'questionGroupId'], movingQ),\n };\n const newQuestions = [...prevQ, questionFn.add(newQ), ...nextQ];\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n return { ...qg, questions: orderBy(newQuestions, 'order') };\n }\n return qg;\n });\n });\n UIStore.update((s) => {\n s.activeMoveQuestion = null;\n s.isCopyingQuestion = false;\n });\n };\n\n const handleOnMove = (prevOrder, lastItem = false) => {\n const currentQ = {\n ...movingQ,\n questionGroupId: questionGroupId,\n order:\n questionGroupId !== movingQ.questionGroupId\n ? prevOrder + 1\n : movingQ.order < prevOrder\n ? prevOrder\n : prevOrder + 1,\n };\n const changedQg = questionGroups\n .filter(\n (qg) => qg.id === movingQ.questionGroupId || qg.id === questionGroupId\n )\n .map((qg) => {\n const addedQ = qg.id === questionGroupId ? currentQ : false;\n let newQuestions = qg.questions.filter((q) => q.id !== movingQ.id);\n if (\n questionGroupId !== movingQ.questionGroupId &&\n newQuestions.length < qg.questions.length\n ) {\n newQuestions = newQuestions.map((q, qi) => ({ ...q, order: qi + 1 }));\n }\n if (\n questionGroupId !== movingQ.questionGroupId &&\n qg.id === questionGroupId\n ) {\n newQuestions = newQuestions.map((x) => {\n if (lastItem) {\n return x;\n }\n if (x.order >= prevOrder + 1) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n }\n if (questionGroupId === movingQ.questionGroupId) {\n newQuestions = newQuestions.map((x) => {\n if (lastItem) {\n if (x.order > movingQ.order) {\n return { ...x, order: x.order - 1 };\n }\n return x;\n }\n if (\n prevOrder > movingQ.order &&\n x.order > movingQ.order &&\n x.order <= prevOrder\n ) {\n return { ...x, order: x.order - 1 };\n }\n if (\n prevOrder < movingQ.order &&\n x.order < movingQ.order &&\n x.order >= prevOrder + 1\n ) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n }\n newQuestions = addedQ ? [...newQuestions, addedQ] : newQuestions;\n return {\n ...qg,\n questions: orderBy(newQuestions, 'order'),\n };\n });\n let oldQg = questionGroups.filter(\n (qg) => qg.id !== movingQ.questionGroupId\n );\n oldQg =\n movingQ.questionGroupId !== questionGroupId\n ? oldQg.filter((qg) => qg.id !== questionGroupId)\n : oldQg;\n questionGroupFn.store.update((s) => {\n s.questionGroups = orderBy([...oldQg, ...changedQg], 'order');\n });\n UIStore.update((s) => {\n s.activeMoveQuestion = null;\n });\n };\n\n const rightButtons = [\n {\n type: 'copy-button',\n onClick: handleCopy,\n },\n {\n type: 'delete-button',\n onClick: () => setIsModalOpen(true),\n disabled:\n (!index && isLastItem) || dependant.dependant.length || disableDelete,\n },\n ];\n\n const leftButtons = [\n {\n type: 'move-button',\n onClick: handleMove,\n disabled: !index && isLastItem,\n },\n {\n type: 'show-button',\n isExpand: isEditQuestion,\n onClick: handleEdit,\n onCancel: handleCancelEdit,\n },\n ];\n\n return (\n
\n handleOnAdd(order - 1)}\n handleOnMove={() =>\n isCopying ? handleOnAdd(order - 1) : handleOnMove(order - 1)\n }\n />\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n backgroundColor: movingQ?.id === id ? '#FFF2CA' : '#FFF',\n border: movingQ?.id === id ? '1px dashed #ffc107' : 'none',\n }}\n bodyStyle={{\n borderTop: isEditQuestion ? '1px solid #f3f3f3' : 'none',\n padding: isEditQuestion ? 24 : 0,\n }}\n loading={false}\n extra={\n \n dependency?.find((d) => d.id === q.id)\n )}\n />\n }\n >\n {isEditQuestion && (\n
\n setActiveTab(key)}\n tabBarGutter={24}\n className={styles['tabs-wrapper']}\n >\n {/* Setting */}\n \n {/* Skip Logic */}\n \n {/* Custom Params */}\n {enableCustomParams && (\n \n )}\n {/* \n */}\n \n {activeTab === 'setting' && (\n \n )}\n {activeTab === 'skip-logic' && (\n \n )}\n {enableCustomParams && activeTab === 'custom-params' && (\n \n )}\n
\n )}\n \n {isLastItem && (\n handleOnAdd(order)}\n handleOnMove={() =>\n isCopying ? handleOnAdd(order) : handleOnMove(order, true)\n }\n />\n )}\n setIsModalOpen(false)}\n okButtonProps={{ danger: true }}\n title={UIText.alertDeleteQuestionTitle}\n okText={UIText.buttonDeleteText}\n >\n {UIText.alertDeleteQuestion}\n \n
\n );\n};\n\nexport default QuestionDefinition;\n","import React, { useMemo, useState } from 'react';\nimport { Card } from 'antd';\nimport { UIStore, questionGroupFn } from '../lib/store';\nimport QuestionGroupSetting from './QuestionGroupSetting';\nimport QuestionDefinition from './QuestionDefinition';\nimport { ButtonAddMove, CardTitle, AlertPopup } from '../support';\nimport { orderBy, maxBy, minBy, uniq, difference, intersection } from 'lodash';\n\nconst QuestionGroupDefinition = ({ index, questionGroup, isLastItem }) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const movingQg = UIStore.useState((s) => s.activeMoveQuestionGroup);\n const {\n activeQuestionGroups,\n activeEditQuestionGroups,\n activeEditQuestions,\n hostParams,\n } = UIStore.useState((s) => s);\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n\n const { id, name, questions, order } = questionGroup;\n const questionIds = questions.map((q) => q.id);\n const {\n buttonAddNewQuestionGroupText,\n buttonMoveQuestionGroupText,\n alertDeleteQuestionGroupTitle,\n alertDeleteQuestionGroup,\n buttonDeleteText,\n } = UIStore.useState((s) => s.UIText);\n\n const showQuestion = useMemo(() => {\n return activeQuestionGroups.includes(id);\n }, [activeQuestionGroups, id]);\n\n const isEditQuestionGroup = useMemo(() => {\n return activeEditQuestionGroups.includes(id);\n }, [activeEditQuestionGroups, id]);\n\n const disableDelete = useMemo(() => {\n return questions.filter((q) => q?.disableDelete)?.length;\n }, [questions]);\n\n const handleHideQuestions = () => {\n UIStore.update((s) => {\n s.activeQuestionGroups = activeQuestionGroups.filter(\n (qgId) => qgId !== id\n );\n });\n };\n\n const handleCancelEditGroup = () => {\n UIStore.update((s) => {\n s.activeEditQuestionGroups = activeEditQuestionGroups.filter(\n (qgId) => qgId !== id\n );\n });\n };\n\n const handleShowQuestions = () => {\n UIStore.update((s) => {\n s.activeQuestionGroups = [...activeQuestionGroups, id];\n });\n handleCancelEditGroup();\n };\n\n const handleEditGroup = () => {\n UIStore.update((s) => {\n s.activeEditQuestionGroups = [...activeEditQuestionGroups, id];\n });\n handleHideQuestions();\n };\n\n const handleCancelMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestionGroup = null;\n });\n };\n\n const handleMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestionGroup =\n movingQg === questionGroup ? null : questionGroup;\n });\n };\n\n const handleExpandAll = () => {\n handleShowQuestions();\n UIStore.update((s) => {\n s.activeEditQuestions = uniq([...s.activeEditQuestions, ...questionIds]);\n });\n };\n\n const handleCancelExpandAll = () => {\n handleHideQuestions();\n UIStore.update((s) => {\n s.activeEditQuestions = difference(s.activeEditQuestions, questionIds);\n });\n };\n\n const handleDelete = () => {\n const newQuestionGroups = questionGroups\n .filter((qg) => id !== qg.id)\n .map((qg) => {\n if (qg.order > order) {\n return { ...qg, order: qg.order - 1 };\n }\n return qg;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = newQuestionGroups;\n });\n setIsModalOpen(false);\n };\n\n const handleOnAdd = (prevOrder) => {\n const prevQg = questionGroups.filter((qg) => qg.order <= prevOrder);\n const nextQg = questionGroups\n .filter((qg) => qg.order > prevOrder)\n .map((qg) => ({\n ...qg,\n order: qg.order + 1,\n }));\n const newQuestionGroups = [\n ...prevQg,\n questionGroupFn.add({\n prevOrder: prevOrder,\n defaultQuestionParam: defaultQuestionParam,\n }),\n ...nextQg,\n ];\n questionGroupFn.store.update((s) => {\n s.questionGroups = newQuestionGroups;\n });\n };\n\n const handleOnMove = (prevOrder, lastItem = false) => {\n const currentQg = {\n ...movingQg,\n order: movingQg.order < prevOrder ? prevOrder : prevOrder + 1,\n };\n const orderedQg = questionGroups\n .filter((qg) => qg.order !== movingQg.order)\n .map((x) => {\n if (lastItem) {\n if (x.order > movingQg.order) {\n return { ...x, order: x.order - 1 };\n }\n return x;\n }\n if (\n prevOrder > movingQg.order &&\n x.order > movingQg.order &&\n x.order <= prevOrder\n ) {\n return { ...x, order: x.order - 1 };\n }\n if (\n prevOrder < movingQg.order &&\n x.order < movingQg.order &&\n x.order >= prevOrder + 1\n ) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = orderBy([...orderedQg, currentQg], 'order');\n });\n UIStore.update((s) => {\n s.activeMoveQuestionGroup = null;\n });\n };\n\n const dependant = useMemo(() => {\n const allQ = questionGroups\n .map((qg) => qg.questions)\n .flatMap((x) => x)\n .map((q) => ({\n ...q,\n questionGroup: questionGroups.find((qg) => q.questionGroupId === qg.id),\n }));\n\n const dependencies = allQ.filter(\n (q) =>\n q?.dependency?.filter((d) => questionIds.find((qid) => qid === d.id))\n .length || false\n );\n\n const movingQids = movingQg?.questions?.map((q) => q.id) || [];\n const movingQ = movingQg?.questions?.filter((q) => {\n const selfDependency =\n q?.dependency?.filter((d) => movingQids.includes(d.id))?.length || 0;\n return !selfDependency;\n });\n\n let disabled = { current: false, last: false };\n\n const movingQDependency = maxBy(\n movingQ\n ?.map(\n (q) =>\n q?.dependency?.map((q) => allQ.find((a) => a.id === q.id)) || []\n )\n ?.flatMap((q) => q) || [],\n 'questionGroup.order'\n );\n\n if (movingQDependency?.questionGroup?.order >= order) {\n disabled = {\n current: true,\n last: true,\n };\n }\n\n const movingQDependant = minBy(\n allQ.filter(\n (q) =>\n q?.dependency?.filter((d) => movingQ?.find((qs) => qs.id === d.id))\n .length || false\n ),\n 'questionGroup.order'\n );\n\n const dependantIsLessThanOrder =\n movingQDependant?.questionGroup?.order < (isLastItem ? order + 1 : order);\n\n if (dependantIsLessThanOrder) {\n disabled = {\n current: true,\n last: true,\n };\n }\n\n return {\n disabled: disabled,\n dependant: dependencies,\n };\n }, [questionGroups, questionIds, movingQg, order, isLastItem]);\n\n const rightButtons = [\n {\n type: 'expand-all-button',\n isExpand:\n showQuestion && intersection(activeEditQuestions, questionIds).length,\n onClick: handleExpandAll,\n onCancel: handleCancelExpandAll,\n },\n {\n type: 'delete-button',\n onClick: () => setIsModalOpen(true),\n disabled: (!index && isLastItem) || disableDelete,\n },\n {\n type: 'edit-button',\n isExpand: isEditQuestionGroup,\n onClick: handleEditGroup,\n onCancel: handleCancelEditGroup,\n },\n ];\n\n const leftButtons = [\n {\n type: 'move-button',\n onClick: handleMove,\n onCancel: handleHideQuestions,\n disabled: !index && isLastItem,\n },\n {\n type: 'show-button',\n isExpand: showQuestion,\n onClick: handleShowQuestions,\n onCancel: handleHideQuestions,\n },\n ];\n\n return (\n
\n handleOnAdd(order - 1)}\n handleOnMove={() => handleOnMove(order - 1)}\n />\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n backgroundColor: movingQg?.id === id ? '#FFF2CA' : '#FFF',\n border: movingQg?.id === id ? '1px dashed #ffc107' : 'none',\n }}\n bodyStyle={{\n padding: isEditQuestionGroup || showQuestion ? 24 : 0,\n borderTop:\n isEditQuestionGroup || showQuestion ? '1px solid #f3f3f3' : 'none',\n }}\n extra={}\n >\n {isEditQuestionGroup && }\n {showQuestion &&\n questions.map((q, qi) => (\n \n ))}\n \n {isLastItem && (\n handleOnAdd(order)}\n handleOnMove={() => handleOnMove(order, true)}\n />\n )}\n setIsModalOpen(false)}\n okButtonProps={{ danger: true }}\n title={alertDeleteQuestionGroupTitle}\n okText={buttonDeleteText}\n >\n {alertDeleteQuestionGroup}\n \n
\n );\n};\n\nexport default QuestionGroupDefinition;\n","import React, { useEffect, useState } from 'react';\nimport 'antd/dist/antd.min.css';\nimport styles from './styles.module.css';\nimport { Card, Tabs, Tag, Space } from 'antd';\nimport {\n FormWrapper,\n FormDefinition,\n FormPreview,\n QuestionGroupDefinition,\n FormTranslations,\n} from './components';\nimport { ButtonWithIcon } from './support';\nimport {\n UIStore,\n formFn,\n questionGroupFn,\n generateId,\n questionType,\n} from './lib/store';\nimport data from './lib/data';\nimport { isEmpty } from 'lodash';\nimport { TbEdit } from 'react-icons/tb';\nimport { MdOutlineLanguage } from 'react-icons/md';\nimport { VscPreview } from 'react-icons/vsc';\n\nconst WebformEditor = ({\n onSave = false,\n initialValue = null,\n settingTreeDropdownValue = [{ label: null, value: null }],\n settingCascadeURL = [{ name: null, endpoint: null, initial: 0, list: false }],\n settingHintURL = {\n questionTypes: [],\n settings: [{ name: null, endpoint: null, path: [] }],\n },\n defaultQuestion = { type: null, name: null, required: null },\n limitQuestionType = [],\n customParams = {\n label: null,\n params: [\n {\n name: null,\n label: 'Single Option Param',\n type: 'option',\n multiple: true,\n options: [],\n },\n {\n name: null,\n label: 'Multiple Option Param',\n type: 'option',\n multiple: false,\n options: [],\n },\n {\n name: null,\n label: 'Input Param',\n type: 'input',\n },\n ],\n },\n}) => {\n const [init, setInit] = useState(defaultQuestion);\n const formStore = formFn.store.useState((s) => s);\n const current = UIStore.useState((s) => s.current);\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const activeEditFormSetting = UIStore.useState(\n (s) => s.activeEditFormSetting\n );\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const { tab: currentTab } = current;\n const {\n formTabPane,\n formTranslationPane,\n previewTabPane,\n questionCount,\n questionGroupCount,\n mandatoryQuestionCount,\n version,\n } = UIText;\n\n if (!initialValue) {\n console.error('initialValue required as an empty object {}');\n }\n\n useEffect(() => {\n // store params from host to global store\n const checkDefaultQuestion = defaultQuestion\n ? Object.values(defaultQuestion).filter((x) => x).length\n : false;\n const sanitizeSettingTreeDropdownValue = settingTreeDropdownValue.filter(\n (x) => x?.label && x?.value\n );\n const sanitizeSettingCascadeURL = settingCascadeURL\n .filter((x) => x?.name && x?.endpoint)\n .map((x, xi) => ({ ...x, id: x?.id || xi + 1 }));\n const sanitizeSettingHintURL = !isEmpty(settingHintURL)\n ? {\n ...settingHintURL,\n settings: settingHintURL?.settings\n ?.filter((x) => x?.name && x?.endpoint && x?.path?.length)\n ?.map((x, xi) => ({ ...x, id: x?.id || xi + 1 })),\n }\n : {};\n const sanitizeDefaultQuestion = {\n type: defaultQuestion?.type || questionType.input,\n name: defaultQuestion?.name,\n required: defaultQuestion?.required || false,\n };\n const sanitizeCustomParams = customParams?.params?.filter((x) => x?.name);\n // update UIStore\n UIStore.update((s) => {\n if (sanitizeSettingTreeDropdownValue.length) {\n s.hostParams = {\n ...s.hostParams,\n settingTreeDropdownValue: sanitizeSettingTreeDropdownValue,\n };\n }\n if (sanitizeSettingCascadeURL.length) {\n s.hostParams = {\n ...s.hostParams,\n settingCascadeURL: sanitizeSettingCascadeURL,\n };\n }\n if (\n !isEmpty(sanitizeSettingHintURL) &&\n sanitizeSettingHintURL?.settings?.length\n ) {\n s.hostParams = {\n ...s.hostParams,\n settingHintURL: sanitizeSettingHintURL,\n };\n }\n if (checkDefaultQuestion) {\n s.hostParams = {\n ...s.hostParams,\n defaultQuestionParam: sanitizeDefaultQuestion,\n };\n } else {\n s.hostParams = {\n ...s.hostParams,\n defaultQuestionParam: {},\n };\n }\n if (limitQuestionType.length) {\n s.hostParams = {\n ...s.hostParams,\n limitQuestionType: Object.keys(questionType)\n .map((key) => ({\n label: questionType[key]?.split('_').join(' '),\n value: questionType[key],\n }))\n .filter((x) => limitQuestionType.includes(x.value)),\n };\n }\n if (customParams?.label && sanitizeCustomParams?.length) {\n s.hostParams = {\n ...s.hostParams,\n customParams: {\n ...customParams,\n params: sanitizeCustomParams,\n },\n };\n }\n });\n }, [\n settingTreeDropdownValue,\n settingCascadeURL,\n settingHintURL,\n defaultQuestion,\n limitQuestionType,\n customParams,\n ]);\n\n useEffect(() => {\n if (defaultQuestionParam && init) {\n // replace questionGroup store with defaultQuestion value\n questionGroupFn.store.update((s) => {\n s.questionGroups = [\n questionGroupFn.add({\n defaultQuestionParam: defaultQuestionParam,\n }),\n ];\n });\n setInit(false);\n }\n }, [defaultQuestionParam, init]);\n\n useEffect(() => {\n if (!isEmpty(initialValue)) {\n const initialData = data.toEditor(initialValue);\n formFn.store.update((s) => {\n s.id = initialData?.id || generateId();\n s.version = initialData?.version || 1;\n s.name = initialData?.name || 'Unknown Form';\n s.description = initialData?.description || 'Unknown Description';\n s.languages = initialData?.languages?.filter((x) => x !== 'en') || [];\n s.defaultLanguage = initialData?.defaultLanguage || 'en';\n s.translations = initialData?.translations || [];\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = initialData.questionGroups;\n });\n } else {\n const defaultForm = formFn.add();\n formFn.store.update((s) => {\n s.id = defaultForm.id;\n s.name = defaultForm.name;\n s.version = defaultForm.version;\n s.description = defaultForm.description;\n s.languages = [];\n s.defaultLanguage = 'en';\n s.translations = [];\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = [questionGroupFn.add({})];\n });\n }\n }, [initialValue]);\n\n const handleTabsOnChange = (e) => {\n UIStore.update((s) => {\n s.current = {\n ...current,\n tab: e,\n };\n });\n };\n\n const handleShowFormSetting = (e) => {\n e.preventDefault();\n UIStore.update((s) => {\n s.activeEditFormSetting = activeEditFormSetting ? false : true;\n });\n };\n\n const handleSave = () => {\n if (onSave) {\n onSave(data.toWebform(formStore, questionGroups));\n }\n };\n\n const questions = questionGroups.reduce(\n (curr, qg) => [...curr, ...qg.questions],\n []\n );\n\n const mandatory = questions.filter((q) => q?.required);\n\n const tabProps = [\n {\n icon: TbEdit,\n tab: formTabPane,\n key: 'edit-form',\n },\n {\n icon: MdOutlineLanguage,\n tab: formTranslationPane,\n key: 'translations',\n },\n {\n icon: VscPreview,\n tab: previewTabPane,\n key: 'preview',\n },\n ];\n\n return (\n \n \n \n \n \n {questions.length} {questionCount}\n \n \n {mandatory.length} {mandatoryQuestionCount}\n \n \n {questionGroups.length} {questionGroupCount}\n \n \n {version} {formStore.version || 1}\n \n {currentTab === 'edit-form' && (\n \n )}\n \n \n \n }\n tabBarGutter={24}\n className={`${styles['tabs-wrapper']} ${styles['tabs-wrapper-sticky']}`}\n >\n {tabProps.map((prop) => (\n \n {prop.tab}\n \n }\n key={prop.key}\n />\n ))}\n \n {currentTab === 'edit-form' && (\n \n {activeEditFormSetting && }\n {questionGroups.map((qg, qgi) => {\n return (\n \n );\n })}\n \n )}\n {currentTab === 'translations' && }\n {currentTab === 'preview' && }\n \n \n );\n};\n\nexport default WebformEditor;\n"],"names":["FormWrapper","children","Form","useForm","form","handleOnValuesChange","handleOnFinish","handleOnFinishFailed","React","UIStaticText","en","inputFormNameLabel","inputFormDescriptionLabel","inputFormTranslationLabel","inputFormExistingTranslationsLabel","inputFormDefaultLanguageLabel","formTabPane","formTranslationPane","previewTabPane","questionCount","questionGroupCount","mandatoryQuestionCount","version","inputQuestionGroupNameLabel","inputQuestionGroupDescriptionLabel","inputRepeatThisGroupCheckbox","inputRepeatTextLabel","buttonShowQuestionsText","buttonHideQuestionsText","buttonEditGroupText","buttonCancelEditGroupText","buttonDeleteText","buttonCancelText","buttonAddNewQuestionGroupText","buttonCopyQuestionGroupText","buttonMoveQuestionGroupText","buttonAddNewQuestionText","buttonCopyQuestionText","buttonMoveQuestionText","inputQuestionNameLabel","inputQuestionTypeLabel","inputQuestionVariableNameLabel","inputQuestionTooltipLabel","inputQuestionRequiredCheckbox","inputQuestionMetaCheckbox","inputQuestionMetaCheckboxHint","buttonSaveText","questionSettingTabPane","questionSkipLogicTabPane","questionCustomParamsTabPane","questionExtraTabPane","inputQuestionDependentToLabel","inputQuestionDependentLogicLabel","inputQuestionDependentAnswerLabel","questionMoreInputTypeSettingText","inputQuestionRequireDoubleEntryCheckbox","inputQuestionHiddenStringCheckbox","questionMoreInputNumberSettingText","inputQuestionAllowDecimalCheckbox","inputQuestionMinimumValueLabel","inputQuestionMaximumValueLabel","inputQuestionMinimumValidationText","inputQuestionMaximumValidationText","inputQuestionEqualValueLabel","questionMoreOptionTypeSettingText","questionMoreOptionTranslationText","inputQuestionAllowOtherCheckbox","inputQuestionAllowOtherTextLabel","inputQuestionOptionNameLabel","questionMoreTreeSettingText","inputSelectTreeDropdownValueLabel","deleteQuestionGroupError","deleteQuestionError","infoNoDependentQuestionText","questionMoreCascadeSettingText","inputQuestionEndpointLabel","inputQuestionEndpointValidationText","inputQuestionInitialValueLabel","inputQuestionListCheckbox","inputQuestionListLabel","questionMoreInputDateSettingText","inputQuestionAfterDateValueLabel","inputQuestionBeforeDateValueLabel","alertDeleteQuestionTitle","alertDeleteQuestion","alertDeleteQuestionGroupTitle","alertDeleteQuestionGroup","questionMoreTableTypeSettingText","inputColumnNameLabel","inputColumnTypeLabel","inputColumnOptionsLabel","questionTableTypeDefineOptionsText","questionHintSettingText","inputQuestionStaticValueLabel","inputSelectHintEndpointLabel","inputSelectHintPathLabel","inputQuestionHintButtonTextLabel","questionMoreImageTypeSettingText","inputQuestionImageLimitValidationText","titleCase","str","replace","txt","charAt","toUpperCase","substr","toLowerCase","getWords","words","Math","floor","random","length","dummyName","len","Array","from","repeat","reduce","curr","localeDropdownValue","uniqBy","locale","filter","x","location","map","label","name","value","generateId","Date","getTime","questionType","input","number","cascade","geo","text","date","option","multiple_option","tree","table","image","defaultForm","id","description","defaultQuestion","questionGroup","prevOrder","type","required","params","q","order","questionGroupId","meta","tooltip","options","allowOther","api","endpoint","initial","list","defaultQuestionGroup","defaultQuestionParam","qg","repeatable","questions","UIStore","Store","current","tab","formId","questionId","activeEditFormSetting","activeQuestionGroups","activeEditQuestionGroups","activeMoveQuestionGroup","isCopyingQuestionGroup","activeEditQuestions","activeMoveQuestion","isCopyingQuestion","UIText","existingTranslation","activeTranslationQuestionGroups","activeEditTranslationQuestionGroups","activeEditTranslationQuestions","hostParams","FormStore","QuestionGroupStore","questionGroups","formFn","add","store","questionGroupFn","questionFn","update","createContext","defineProperty","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","objectWithoutPropertiesLoose","warning","warn","generate","_objectSpread","generateColor","useContext","useEffect","ReactIcon","_excluded","React.forwardRef","React.useContext","Context","classNames","React.createElement","CaretRightOutlined","AntdIcon","CaretRightOutlinedSvg","PlusOutlined","PlusOutlinedSvg","ButtonAddMove","className","movingItem","handleCancelMove","disabled","handleOnAdd","handleOnMove","useState","s","Row","Col","Button","ButtonWithIcon","isExpand","onClick","onCancel","buttonProps","icon","TbEditOff","TbEdit","BiCopy","BiMove","RiSettings5Fill","RiSettings5Line","MdOutlineAddCircleOutline","RiSave3Fill","AiOutlineEyeInvisible","AiOutlineEye","RiDeleteBin2Line","styles","CardTitle","title","buttons","dependency","Space","Tag","margin","cfg","Text","Typography","TranslationFormItem","labelText","currentValue","initialValue","marginBottom","width","AlertPopup","onConfirm","visible","okButtonProps","okText","Modal","clearQuestionObj","keysToRemove","obj","checkEmpty","clearedQuestion","Object","keys","forEach","key","includes","isEmpty","clearTranslations","translations","newObj","clearedTranslations","tl","clearedObj","language","toEditor","webFormData","mapKeys","_","k","qgi","gid","qi","isNotOption","o","oi","orderBy","d","max","min","toWebform","formData","webformData","languages","defaultLanguage","output","op","hint","path","result","question","repeatText","question_group","generateTranslations","savedTranslations","newTranslations","currentTranslations","isExistingExist","findIndex","tr","data","clear","FormDefinitionTranslation","formStore","namePreffix","existingTranslationValues","useMemo","find","updateTranslation","u","handleChangeName","e","target","handleChangeDescription","Input","QuestionSettingTranslation","allowOtherText","existingTooltipTranslationValues","handleChangeTooltip","handleChangeAllowOtherText","handleChangeOptionName","optionTranslations","optionId","opt","di","existingOptionTranslationValues","QuestionDefinitionTranslation","index","questionGroupOrder","isEditTranslationQuestion","handleEditTranslationQuestion","handleCancelEditTranslationQuestion","qId","cardTitleButton","Card","textAlign","padding","borderTop","QuestionGroupSettingTranslation","handleChangeRepeatText","QuestionGroupDefinitionTranslation","questionIds","showTranslationQuestion","isEditTranslationQuestionGroup","handleHideTranslationQuestions","qgId","handleCancelEditTranslationGroup","handleEditTranslationGroup","a","handleExpandAll","uniq","handleCancelExpandAll","difference","cardExtraButton","intersection","staticDefaultLang","ExistingTranslation","handleCloseTag","lang","ln","findLang","lc","tags","FormTranslations","formTranslation","defaultLangDropdownValue","ld","Select","triggerNode","parentElement","ldi","Divider","FormPreview","Webform","FormDefinition","useFormInstance","setFieldsValue","QuestionGroupSetting","handleChangeRepeatable","checked","Checkbox","SettingInput","requiredDoubleEntry","hiddenString","updateState","handleChangeDoubleEntry","handleChangeHiddenString","SettingNumber","rule","allowDecimal","moreNumberSettings","rules","message","handleChangeAllowDecimal","handleChangeMinMax","InputNumber","defaultOptions","init","code","SettingOption","initialOptions","xi","setOptions","useCallback","handleOnChangeAllowOther","handleOnChangeAllowOtherText","handleOnChangeCode","currentId","handleOnChangeOption","handleOnAddOption","currentOrder","lastOrder","takeRight","reorderOptions","addOptions","handleOnMoveOption","targetOrder","prevOptions","currentOption","targetOption","handleOnDeleteOption","opti","MdOutlineArrowCircleUp","MdOutlineArrowCircleDown","MdOutlineRemoveCircleOutline","SettingTree","settingTreeDropdownValue","handleChangeTreeDropdown","SettingCascade","settingCascadeURL","cascadeURLDropdownValue","updateGlobalState","values","handleChangeEndpoint","findURL","handleChangeInitial","handleChangeList","this","require","SettingDate","minDate","maxDate","moreDateSettings","disabledDate","moment","handleChangeAfterBefore","format","DatePicker","generateColumnName","trim","split","join","columnType","defaultColumns","column","defaultColumnOptions","SettingTable","initialColumns","columns","cl","cli","opi","setColumns","columnTypeOptions","updateColumns","columnId","updatedColumn","handleChangeColumnName","handleChangeColumnType","handleAddColumn","addColumns","handleDeleteColumn","currentColumn","currentOptions","targetOptions","currentOptionId","currentOptId","updatedOptions","val","SettingImage","limit","handleOnLimit","QuestionHint","buttonText","settingHintURL","settings","hintURLDropdownValue","hintPathDropdownValue","String","handleChangePath","handleChangeStaticValue","handleChangeButtonText","QuestionSetting","dependant","variable","disableDelete","qType","useWatch","limitQuestionType","disableMetaForGeo","metaGeoQuestionDefined","flatMap","showMetaCheckbox","currentQuestionGroup","questionTypeDropdownValue","showHintSetting","questionTypes","defaultTypeValue","checkType","checkText","defType","handleChangeType","handleChangeVariableName","handleChangeRequired","handleChangeMeta","dependantGroup","groupBy","group","i","g","items","Alert","ii","Popover","AiOutlineQuestionCircle","cursor","marginLeft","dependencyTypes","logicDropdowns","defaultSkipLogic","dependentTo","dependentToType","dependentLogic","dependentAnswer","dependencyLogicDropdownValue","dependencyAnswerDropdownValue","fetchDependencyLogicDropdown","dt","fetchDependencyAnswerDropdown","transformDependencyValue","lg","findQ","SettingSkipLogic","dependencies","setDependencies","dependentToQuestions","savedDependency","updateGlobalStore","dependencyValue","isDelete","transformDependencies","dp","checkDependencies","isArray","updateLocalState","dependencyId","updatedDependencies","setTimeout","checkChangedType","updatedDependency","handleChangeDependentTo","handleChangeDependentLogic","handleChangeDependentAnswer","handleAddMoreDependency","newDependencies","handleDeleteDependentTo","dropdown","l","item","gi","dq","QuestionSkipLogic","currentQuestionOrder","currentQuestionGroupOrder","QuestionCustomParams","customParams","initLoad","setInitLoad","paramValue","setParamValue","customParamObj","cp","findValue","res","objKey","handleChangeParameterValue","cpi","multipleProps","multiple","mode","showArrow","QuestionDefinition","isLastItem","movingQ","isCopying","activeTab","setActiveTab","isModalOpen","setIsModalOpen","enableCustomParams","allQuestions","last","movingQDependency","maxBy","movingQDependant","minBy","isEditQuestion","handleEdit","handleCancelEdit","handleMove","handleCopy","handleDelete","newQuestions","prevQ","nextQ","newQ","lastItem","currentQ","changedQg","addedQ","oldQg","rightButtons","leftButtons","backgroundColor","border","Tabs","danger","QuestionGroupDefinition","movingQg","showQuestion","isEditQuestionGroup","handleHideQuestions","handleCancelEditGroup","handleShowQuestions","handleEditGroup","newQuestionGroups","prevQg","nextQg","currentQg","orderedQg","allQ","qid","movingQids","selfDependency","qs","dependantIsLessThanOrder","WebformEditor","onSave","setInit","currentTab","console","error","checkDefaultQuestion","sanitizeSettingTreeDropdownValue","sanitizeSettingCascadeURL","sanitizeSettingHintURL","sanitizeDefaultQuestion","sanitizeCustomParams","initialData","handleTabsOnChange","handleShowFormSetting","preventDefault","handleSave","mandatory","tabProps","MdOutlineLanguage","VscPreview","container","prop"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.modern.js b/dist/index.modern.js index ce7d0af..cc320d8 100644 --- a/dist/index.modern.js +++ b/dist/index.modern.js @@ -16,36 +16,18 @@ import { Webform } from 'akvo-react-form'; import isEmpty$1 from 'lodash/isEmpty'; import { VscPreview } from 'react-icons/vsc'; -function _extends() { - _extends = Object.assign ? Object.assign.bind() : function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - return _extends.apply(this, arguments); -} - var styles = {"container":"arfe-container","form-definition":"arfe-form-definition","form-item-no-bottom-margin":"arfe-form-item-no-bottom-margin","input-checkbox-wrapper":"arfe-input-checkbox-wrapper","button-icon":"arfe-button-icon","reorder-wrapper":"arfe-reorder-wrapper","reorder-button":"arfe-reorder-button","select-dropdown":"arfe-select-dropdown","tabs-wrapper":"arfe-tabs-wrapper","tabs-wrapper-sticky":"arfe-tabs-wrapper-sticky","right-tabs":"arfe-right-tabs","tab-pane-name-icon":"arfe-tab-pane-name-icon","question-group-title":"arfe-question-group-title","space-align-right":"arfe-space-align-right","space-align-left":"arfe-space-align-left","space-vertical-align-left":"arfe-space-vertical-align-left","space-vertical-align-right":"arfe-space-vertical-align-right","more-question-setting-text":"arfe-more-question-setting-text","dependant-list-box":"arfe-dependant-list-box","tags":"arfe-tags","tags-active":"arfe-tags-active","translation-form-item":"arfe-translation-form-item","translation-form-item-card":"arfe-translation-form-item-card"}; -var FormWrapper = function FormWrapper(_ref) { - var children = _ref.children; +const FormWrapper = ({ + children +}) => { + const [form] = Form.useForm(); - var _Form$useForm = Form.useForm(), - form = _Form$useForm[0]; + const handleOnValuesChange = () => {}; - var handleOnValuesChange = function handleOnValuesChange() {}; + const handleOnFinish = () => {}; - var handleOnFinish = function handleOnFinish() {}; - - var handleOnFinishFailed = function handleOnFinishFailed() {}; + const handleOnFinishFailed = () => {}; return /*#__PURE__*/React__default.createElement(Form, { form: form, @@ -58,7 +40,7 @@ var FormWrapper = function FormWrapper(_ref) { }, children); }; -var UIStaticText = { +const UIStaticText = { en: { inputFormNameLabel: 'Form Name', inputFormDescriptionLabel: 'Form Description', @@ -145,7 +127,9 @@ var UIStaticText = { inputQuestionStaticValueLabel: 'Static Value', inputSelectHintEndpointLabel: 'Hint Endpoint', inputSelectHintPathLabel: 'Hint Path', - inputQuestionHintButtonTextLabel: 'Hint Button Text' + inputQuestionHintButtonTextLabel: 'Hint Button Text', + questionMoreImageTypeSettingText: 'More Image Question Setting', + inputQuestionImageLimitValidationText: 'Limit / Max file size' } }; @@ -224,42 +208,26 @@ var fake = [ "augue" ]; -var titleCase = function titleCase(str) { - return str.replace(/\w\S*/g, function (txt) { - return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); - }); +const titleCase = str => { + return str.replace(/\w\S*/g, txt => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()); }; -var getWords = function getWords() { +const getWords = () => { return fake[Math.floor(Math.random() * fake.length)]; }; -var dummyName = function dummyName(len) { - if (len === void 0) { - len = 2; - } - - return Array.from('x'.repeat(len)).reduce(function (curr) { - return curr + ' ' + getWords(); - }, titleCase(getWords())); +const dummyName = (len = 2) => { + return Array.from('x'.repeat(len)).reduce(curr => curr + ' ' + getWords(), titleCase(getWords())); }; -var localeDropdownValue = uniqBy(all.filter(function (x) { - return x.location; -}).map(function (x) { - return { - label: x.name, - value: x['iso639-1'] - }; -}).filter(function (x) { - return x.value; -}), 'value'); +const localeDropdownValue = uniqBy(all.filter(x => x.location).map(x => ({ + label: x.name, + value: x['iso639-1'] +})).filter(x => x.value), 'value'); -var generateId = function generateId() { - return new Date().getTime(); -}; +const generateId = () => new Date().getTime(); -var questionType = { +const questionType = { input: 'input', number: 'number', cascade: 'cascade', @@ -269,10 +237,11 @@ var questionType = { option: 'option', multiple_option: 'multiple_option', tree: 'tree', - table: 'table' + table: 'table', + image: 'image' }; -var defaultForm = function defaultForm() { +const defaultForm = () => { return { id: generateId(), name: 'New Form', @@ -281,70 +250,68 @@ var defaultForm = function defaultForm() { }; }; -var defaultQuestion = function defaultQuestion(_ref) { - var questionGroup = _ref.questionGroup, - name = _ref.name, - _ref$prevOrder = _ref.prevOrder, - prevOrder = _ref$prevOrder === void 0 ? 0 : _ref$prevOrder, - _ref$type = _ref.type, - type = _ref$type === void 0 ? questionType.input : _ref$type, - _ref$required = _ref.required, - required = _ref$required === void 0 ? false : _ref$required, - _ref$params = _ref.params, - params = _ref$params === void 0 ? {} : _ref$params; - var q = { +const defaultQuestion = ({ + questionGroup, + name, + prevOrder: _prevOrder = 0, + type: _type = questionType.input, + required: _required = false, + params: _params = {} +}) => { + const q = { id: generateId() + 2, - order: prevOrder + 1, + order: _prevOrder + 1, questionGroupId: questionGroup.id, name: name || dummyName(5), - type: type, - required: required, + type: _type, + required: _required, meta: false, tooltip: null }; - if (type === questionType.option || type === questionType.multiple_option) { - return _extends({}, q, { + if (_type === questionType.option || _type === questionType.multiple_option) { + return { ...q, options: [], allowOther: false - }); + }; } - if (type === questionType.cascade) { - return _extends({}, q, { + if (_type === questionType.cascade) { + return { ...q, api: { endpoint: null, initial: 0, list: false } - }); + }; } - return _extends({}, q, params); + return { ...q, + ..._params + }; }; -var defaultQuestionGroup = function defaultQuestionGroup(_ref2) { - var _ref2$name = _ref2.name, - name = _ref2$name === void 0 ? dummyName() : _ref2$name, - _ref2$prevOrder = _ref2.prevOrder, - prevOrder = _ref2$prevOrder === void 0 ? 0 : _ref2$prevOrder, - _ref2$defaultQuestion = _ref2.defaultQuestionParam, - defaultQuestionParam = _ref2$defaultQuestion === void 0 ? {} : _ref2$defaultQuestion; - var qg = { +const defaultQuestionGroup = ({ + name: _name = dummyName(), + prevOrder: _prevOrder2 = 0, + defaultQuestionParam: _defaultQuestionParam = {} +}) => { + const qg = { id: generateId() + 1, - name: name, - order: prevOrder + 1, + name: _name, + order: _prevOrder2 + 1, description: null, repeatable: false }; - return _extends({}, qg, { - questions: [defaultQuestion(_extends({ - questionGroup: qg - }, defaultQuestionParam))] - }); + return { ...qg, + questions: [defaultQuestion({ + questionGroup: qg, + ..._defaultQuestionParam + })] + }; }; -var UIStore = new Store({ +const UIStore = new Store({ current: { tab: 'edit-form', formId: null, @@ -367,31 +334,32 @@ var UIStore = new Store({ activeEditTranslationQuestions: [], hostParams: {} }); -var FormStore = new Store(_extends({}, defaultForm())); -var QuestionGroupStore = new Store({ +const FormStore = new Store({ ...defaultForm() +}); +const QuestionGroupStore = new Store({ questionGroups: [defaultQuestionGroup({})] }); -var formFn = { +const formFn = { add: defaultForm, store: FormStore }; -var questionGroupFn = { +const questionGroupFn = { add: defaultQuestionGroup, store: QuestionGroupStore }; -var questionFn = { +const questionFn = { add: defaultQuestion, - update: function update(_ref3) { - var id = _ref3.id, - type = _ref3.type, - questionGroup = _ref3.questionGroup, - params = _ref3.params; - return defaultQuestion(_extends({ - id: id, - type: type, - questionGroup: questionGroup - }, params)); - } + update: ({ + id, + type, + questionGroup, + params + }) => defaultQuestion({ + id: id, + type: type, + questionGroup: questionGroup, + ...params + }) }; var IconContext = /*#__PURE__*/createContext({}); @@ -1802,193 +1770,174 @@ var PlusOutlined$1 = function PlusOutlined$1(props, ref) { PlusOutlined$1.displayName = 'PlusOutlined'; var PlusOutlined$2 = /*#__PURE__*/forwardRef(PlusOutlined$1); -var ButtonAddMove = function ButtonAddMove(_ref) { - var text = _ref.text, - className = _ref.className, - _ref$movingItem = _ref.movingItem, - movingItem = _ref$movingItem === void 0 ? null : _ref$movingItem, - _ref$handleCancelMove = _ref.handleCancelMove, - handleCancelMove = _ref$handleCancelMove === void 0 ? function () {} : _ref$handleCancelMove, - _ref$disabled = _ref.disabled, - disabled = _ref$disabled === void 0 ? false : _ref$disabled, - _ref$handleOnAdd = _ref.handleOnAdd, - handleOnAdd = _ref$handleOnAdd === void 0 ? function () {} : _ref$handleOnAdd, - _ref$handleOnMove = _ref.handleOnMove, - handleOnMove = _ref$handleOnMove === void 0 ? function () {} : _ref$handleOnMove; - - var _UIStore$useState = UIStore.useState(function (s) { - return s.UIText; - }), - buttonCancelText = _UIStore$useState.buttonCancelText; - +const ButtonAddMove = ({ + text, + className, + movingItem: _movingItem = null, + handleCancelMove: _handleCancelMove = () => {}, + disabled: _disabled = false, + handleOnAdd: _handleOnAdd = () => {}, + handleOnMove: _handleOnMove = () => {} +}) => { + const { + buttonCancelText + } = UIStore.useState(s => s.UIText); return /*#__PURE__*/React__default.createElement(Row, { align: "middle", justify: "start", - className: "arfe-reorder-wrapper " + className + className: `arfe-reorder-wrapper ${className}` }, /*#__PURE__*/React__default.createElement(Col, { - span: movingItem ? 12 : 24, + span: _movingItem ? 12 : 24, align: "left" }, /*#__PURE__*/React__default.createElement(Button, { type: "dashed", className: "arfe-reorder-button", size: "small", - onClick: movingItem ? handleOnMove : handleOnAdd, - disabled: disabled, - icon: movingItem ? /*#__PURE__*/React__default.createElement(CaretRightOutlined$2, null) : /*#__PURE__*/React__default.createElement(PlusOutlined$2, null) - }, text)), movingItem && /*#__PURE__*/React__default.createElement(Col, { + onClick: _movingItem ? _handleOnMove : _handleOnAdd, + disabled: _disabled, + icon: _movingItem ? /*#__PURE__*/React__default.createElement(CaretRightOutlined$2, null) : /*#__PURE__*/React__default.createElement(PlusOutlined$2, null) + }, text)), _movingItem && /*#__PURE__*/React__default.createElement(Col, { span: 12, align: "right" }, /*#__PURE__*/React__default.createElement(Button, { type: "danger", className: "reorder-button", size: "small", - onClick: handleCancelMove + onClick: _handleCancelMove }, buttonCancelText))); }; -var ButtonWithIcon = function ButtonWithIcon(_ref) { - var _ref$type = _ref.type, - type = _ref$type === void 0 ? 'delete-button' : _ref$type, - _ref$isExpand = _ref.isExpand, - isExpand = _ref$isExpand === void 0 ? false : _ref$isExpand, - _ref$onClick = _ref.onClick, - onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick, - _ref$onCancel = _ref.onCancel, - onCancel = _ref$onCancel === void 0 ? function () {} : _ref$onCancel, - _ref$disabled = _ref.disabled, - disabled = _ref$disabled === void 0 ? false : _ref$disabled; - var buttonProps = {}; - - switch (type) { +const ButtonWithIcon = ({ + type: _type = 'delete-button', + isExpand: _isExpand = false, + onClick: _onClick = () => {}, + onCancel: _onCancel = () => {}, + disabled: _disabled = false +}) => { + let buttonProps = {}; + + switch (_type) { case 'show-button': - if (isExpand) { + if (_isExpand) { buttonProps = { - onClick: onCancel, + onClick: _onCancel, icon: /*#__PURE__*/React__default.createElement(TbEditOff, null) }; break; } buttonProps = { - onClick: onClick, + onClick: _onClick, icon: /*#__PURE__*/React__default.createElement(TbEdit, null) }; break; case 'copy-button': buttonProps = { - onClick: onClick, + onClick: _onClick, icon: /*#__PURE__*/React__default.createElement(BiCopy, null) }; break; case 'move-button': buttonProps = { - onClick: onClick, + onClick: _onClick, icon: /*#__PURE__*/React__default.createElement(BiMove, null) }; break; case 'edit-button': - if (isExpand) { + if (_isExpand) { buttonProps = { - onClick: onCancel, + onClick: _onCancel, icon: /*#__PURE__*/React__default.createElement(RiSettings5Fill, null) }; break; } buttonProps = { - onClick: onClick, + onClick: _onClick, icon: /*#__PURE__*/React__default.createElement(RiSettings5Line, null) }; break; case 'add-button': buttonProps = { - onClick: onClick, + onClick: _onClick, icon: /*#__PURE__*/React__default.createElement(MdOutlineAddCircleOutline, null) }; break; case 'save-button': buttonProps = { - onClick: onClick, + onClick: _onClick, icon: /*#__PURE__*/React__default.createElement(RiSave3Fill, null) }; break; case 'expand-all-button': - if (isExpand) { + if (_isExpand) { buttonProps = { - onClick: onCancel, + onClick: _onCancel, icon: /*#__PURE__*/React__default.createElement(AiOutlineEyeInvisible, null) }; break; } buttonProps = { - onClick: onClick, + onClick: _onClick, icon: /*#__PURE__*/React__default.createElement(AiOutlineEye, null) }; break; default: buttonProps = { - onClick: onClick, + onClick: _onClick, icon: /*#__PURE__*/React__default.createElement(RiDeleteBin2Line, null) }; break; } - return /*#__PURE__*/React__default.createElement(Button, _extends({ + return /*#__PURE__*/React__default.createElement(Button, Object.assign({ type: "link", className: styles['button-icon'], - disabled: disabled + disabled: _disabled }, buttonProps)); }; -var CardTitle = function CardTitle(_ref) { - var id = _ref.id, - title = _ref.title, - buttons = _ref.buttons, - _ref$dependency = _ref.dependency, - dependency = _ref$dependency === void 0 ? [] : _ref$dependency; - return /*#__PURE__*/React__default.createElement(Space, null, !!dependency.length && /*#__PURE__*/React__default.createElement(Tag, { +const CardTitle = ({ + id, + title, + buttons, + dependency: _dependency = [] +}) => { + return /*#__PURE__*/React__default.createElement(Space, null, !!_dependency.length && /*#__PURE__*/React__default.createElement(Tag, { style: { margin: 'auto' } - }, dependency.length, " Dependenc", dependency.length > 1 ? 'ies' : 'y'), buttons === null || buttons === void 0 ? void 0 : buttons.map(function (cfg) { - return /*#__PURE__*/React__default.createElement(ButtonWithIcon, { - key: cfg.type + "-" + id, - type: cfg.type, - isExpand: cfg.isExpand, - onClick: function onClick() { - return cfg.onClick(); - }, - onCancel: function onCancel() { - return cfg.onCancel(); - }, - disabled: cfg === null || cfg === void 0 ? void 0 : cfg.disabled - }); - }), title && /*#__PURE__*/React__default.createElement("div", { + }, _dependency.length, " Dependenc", _dependency.length > 1 ? 'ies' : 'y'), buttons === null || buttons === void 0 ? void 0 : buttons.map(cfg => /*#__PURE__*/React__default.createElement(ButtonWithIcon, { + key: `${cfg.type}-${id}`, + type: cfg.type, + isExpand: cfg.isExpand, + onClick: () => cfg.onClick(), + onCancel: () => cfg.onCancel(), + disabled: cfg === null || cfg === void 0 ? void 0 : cfg.disabled + })), title && /*#__PURE__*/React__default.createElement("div", { className: "arfe-question-group-title" }, title)); }; -var Text = Typography.Text; - -var TranslationFormItem = function TranslationFormItem(_ref) { - var _ref$labelText = _ref.labelText, - labelText = _ref$labelText === void 0 ? '' : _ref$labelText, - _ref$name = _ref.name, - name = _ref$name === void 0 ? '' : _ref$name, - _ref$currentValue = _ref.currentValue, - currentValue = _ref$currentValue === void 0 ? '' : _ref$currentValue, - _ref$children = _ref.children, - children = _ref$children === void 0 ? '' : _ref$children, - _ref$initialValue = _ref.initialValue, - initialValue = _ref$initialValue === void 0 ? '' : _ref$initialValue; +const { + Text +} = Typography; + +const TranslationFormItem = ({ + labelText: _labelText = '', + name: _name = '', + currentValue: _currentValue = '', + children: _children = '', + initialValue: _initialValue = '' +}) => { return /*#__PURE__*/React__default.createElement(Row, { align: "top", justify: "space-between", @@ -2003,69 +1952,53 @@ var TranslationFormItem = function TranslationFormItem(_ref) { style: { width: '100%' } - }, /*#__PURE__*/React__default.createElement("b", null, labelText), /*#__PURE__*/React__default.createElement(Text, null, currentValue))), /*#__PURE__*/React__default.createElement(Col, { + }, /*#__PURE__*/React__default.createElement("b", null, _labelText), /*#__PURE__*/React__default.createElement(Text, null, _currentValue))), /*#__PURE__*/React__default.createElement(Col, { span: 12 }, /*#__PURE__*/React__default.createElement(Form.Item, { - name: name, - label: /*#__PURE__*/React__default.createElement("b", null, labelText), + name: _name, + label: /*#__PURE__*/React__default.createElement("b", null, _labelText), className: styles['translation-form-item'], - initialValue: initialValue - }, children))); + initialValue: _initialValue + }, _children))); }; -var AlertPopup = function AlertPopup(_ref) { - var onConfirm = _ref.onConfirm, - onCancel = _ref.onCancel, - visible = _ref.visible, - children = _ref.children, - _ref$title = _ref.title, - title = _ref$title === void 0 ? 'Alert' : _ref$title, - _ref$okButtonProps = _ref.okButtonProps, - okButtonProps = _ref$okButtonProps === void 0 ? {} : _ref$okButtonProps, - _ref$okText = _ref.okText, - okText = _ref$okText === void 0 ? 'OK' : _ref$okText; +const AlertPopup = ({ + onConfirm, + onCancel, + visible, + children, + title: _title = 'Alert', + okButtonProps: _okButtonProps = {}, + okText: _okText = 'OK' +}) => { return /*#__PURE__*/React__default.createElement(Modal, { - title: title, + title: _title, visible: visible, onOk: onConfirm, onCancel: onCancel, centered: true, - okButtonProps: okButtonProps, - okText: okText + okButtonProps: _okButtonProps, + okText: _okText }, children); }; -var clearQuestionObj = function clearQuestionObj(keysToRemove, obj, checkEmpty) { - if (keysToRemove === void 0) { - keysToRemove = []; - } - - if (obj === void 0) { - obj = false; - } - - if (checkEmpty === void 0) { - checkEmpty = false; - } - - var clearedQuestion = {}; +const clearQuestionObj = (keysToRemove = [], obj = false, checkEmpty = false) => { + let clearedQuestion = {}; if (obj) { - Object.keys(obj).forEach(function (key) { + Object.keys(obj).forEach(key => { if (!keysToRemove.includes(key)) { - var _obj; - if (!checkEmpty) { - var _extends2; - - clearedQuestion = _extends({}, clearedQuestion, (_extends2 = {}, _extends2[key] = obj[key], _extends2)); + clearedQuestion = { ...clearedQuestion, + [key]: obj[key] + }; return key; } - if (checkEmpty && !isEmpty((_obj = obj) === null || _obj === void 0 ? void 0 : _obj[key])) { - var _extends3; - - clearedQuestion = _extends({}, clearedQuestion, (_extends3 = {}, _extends3[key] = obj[key], _extends3)); + if (checkEmpty && !isEmpty(obj === null || obj === void 0 ? void 0 : obj[key])) { + clearedQuestion = { ...clearedQuestion, + [key]: obj[key] + }; return key; } } @@ -2075,25 +2008,23 @@ var clearQuestionObj = function clearQuestionObj(keysToRemove, obj, checkEmpty) return clearedQuestion; }; -var clearTranslations = function clearTranslations(obj, translations) { - var newObj = _extends({}, obj); - - var clearedTranslations = translations.map(function (tl) { - var clearedObj = clearQuestionObj([], tl, true); +const clearTranslations = (obj, translations) => { + let newObj = { ...obj + }; + const clearedTranslations = translations.map(tl => { + const clearedObj = clearQuestionObj([], tl, true); if (Object.keys(clearedObj).length === 1 && clearedObj !== null && clearedObj !== void 0 && clearedObj.language) { return false; } return clearedObj; - }).filter(function (x) { - return x; - }); + }).filter(x => x); if (clearedTranslations.length) { - newObj = _extends({}, newObj, { + newObj = { ...newObj, translations: clearedTranslations - }); + }; } else { var _newObj; @@ -2103,111 +2034,103 @@ var clearTranslations = function clearTranslations(obj, translations) { return newObj; }; -var toEditor = function toEditor(webFormData) { - webFormData = mapKeys(webFormData, function (_, k) { - return k === 'question_group' ? 'questionGroups' : k; - }); - var questionGroups = webFormData.questionGroups.map(function (qg, qgi) { +const toEditor = webFormData => { + webFormData = mapKeys(webFormData, (_, k) => k === 'question_group' ? 'questionGroups' : k); + const questionGroups = webFormData.questionGroups.map((qg, qgi) => { var _qg, _qg2; - var gid = ((_qg = qg) === null || _qg === void 0 ? void 0 : _qg.id) || generateId() + qgi; - qg = mapKeys(qg, function (_, k) { - return k === 'question' ? 'questions' : k; - }); - var questions = qg.questions.map(function (q, qi) { + const gid = ((_qg = qg) === null || _qg === void 0 ? void 0 : _qg.id) || generateId() + qgi; + qg = mapKeys(qg, (_, k) => k === 'question' ? 'questions' : k); + const questions = qg.questions.map((q, qi) => { var _q, _q2, _q3; - var isNotOption = ![questionType.option, questionType.multiple_option].includes(q.type); + const isNotOption = ![questionType.option, questionType.multiple_option].includes(q.type); if (isNotOption && q.type !== questionType.tree) { q = clearQuestionObj(['option'], q); } if ([questionType.option, questionType.multiple_option].includes(q.type)) { - q = mapKeys(q, function (_, k) { - return k === 'option' ? 'options' : k; - }); + q = mapKeys(q, (_, k) => k === 'option' ? 'options' : k); } if ((_q = q) !== null && _q !== void 0 && _q.options) { - var options = q.options.map(function (o, oi) { - return _extends({ - id: (o === null || o === void 0 ? void 0 : o.id) || qi + 1 + (oi + 1) - }, o, { - order: (o === null || o === void 0 ? void 0 : o.order) || oi + 1 - }); - }); - q = _extends({}, q, { + const options = q.options.map((o, oi) => ({ + id: (o === null || o === void 0 ? void 0 : o.id) || qi + 1 + (oi + 1), + ...o, + order: (o === null || o === void 0 ? void 0 : o.order) || oi + 1 + })); + q = { ...q, options: orderBy(options, 'order') - }); + }; } if ((_q2 = q) !== null && _q2 !== void 0 && _q2.dependency) { - var dependency = q.dependency.map(function (d) { + const dependency = q.dependency.map(d => { var _d, _d2; if ((_d = d) !== null && _d !== void 0 && _d.max) { - d = _extends({}, d, { + d = { ...d, max: d.max + 1 - }); + }; } if ((_d2 = d) !== null && _d2 !== void 0 && _d2.min) { - d = _extends({}, d, { + d = { ...d, min: d.min - 1 - }); + }; } return d; }); - q = _extends({}, q, { + q = { ...q, dependency: dependency - }); + }; } - return _extends({}, q, { + return { ...q, order: ((_q3 = q) === null || _q3 === void 0 ? void 0 : _q3.order) || qi + 1, questionGroupId: gid - }); + }; }); - qg = _extends({}, qg, { + qg = { ...qg, id: gid, order: ((_qg2 = qg) === null || _qg2 === void 0 ? void 0 : _qg2.order) || qgi + 1, questions: orderBy(questions, 'order') - }); + }; return qg; }); - webFormData = _extends({}, webFormData, { + webFormData = { ...webFormData, questionGroups: orderBy(questionGroups, 'order') - }); + }; return webFormData; }; -var toWebform = function toWebform(formData, questionGroups) { +const toWebform = (formData, questionGroups) => { var _formData$languages; - var webformData = { + let webformData = { id: (formData === null || formData === void 0 ? void 0 : formData.id) || generateId(), name: formData.name, description: formData.description }; if (formData !== null && formData !== void 0 && formData.languages && formData !== null && formData !== void 0 && (_formData$languages = formData.languages) !== null && _formData$languages !== void 0 && _formData$languages.length) { - webformData = _extends({}, webformData, { - languages: ['en'].concat(formData.languages), + webformData = { ...webformData, + languages: ['en', ...formData.languages], defaultLanguage: (formData === null || formData === void 0 ? void 0 : formData.defaultLanguage) || 'en' - }); + }; } if (formData !== null && formData !== void 0 && formData.translations) { webformData = clearTranslations(webformData, formData.translations); } - var output = questionGroups.map(function (qg) { - var questions = qg.questions.map(function (q) { + const output = questionGroups.map(qg => { + const questions = qg.questions.map(q => { var _q4, _q5, _q6, _q7, _q8, _q8$hint, _q9, _q9$hint, _q10, _q10$hint, _q10$hint$path; - var isNotOption = ![questionType.option, questionType.multiple_option].includes(q.type); + const isNotOption = ![questionType.option, questionType.multiple_option].includes(q.type); if (q.type !== questionType.input) { q = clearQuestionObj(['requiredDoubleEntry', 'hiddenString'], q); @@ -2218,16 +2141,16 @@ var toWebform = function toWebform(formData, questionGroups) { } if ([questionType.option, questionType.multiple_option].includes(q.type)) { - var options = q.options.map(function (op) { + const options = q.options.map(op => { if (op !== null && op !== void 0 && op.translations) { return clearTranslations(op, op.translations); } return op; }); - q = _extends({}, q, { + q = { ...q, option: options - }); + }; } if (isNotOption) { @@ -2251,40 +2174,40 @@ var toWebform = function toWebform(formData, questionGroups) { } if ((_q5 = q) !== null && _q5 !== void 0 && _q5.dependency) { - var dependency = q.dependency.map(function (d) { + const dependency = q.dependency.map(d => { var _d3, _d4; if ((_d3 = d) !== null && _d3 !== void 0 && _d3.max) { - d = _extends({}, d, { + d = { ...d, max: d.max - 1 - }); + }; } if ((_d4 = d) !== null && _d4 !== void 0 && _d4.min) { - d = _extends({}, d, { + d = { ...d, min: d.min + 1 - }); + }; } return d; }); - q = _extends({}, q, { + q = { ...q, dependency: dependency - }); + }; } if ((_q6 = q) !== null && _q6 !== void 0 && _q6.translations) { q = clearTranslations(q, q.translations); } - if ((_q7 = q) !== null && _q7 !== void 0 && _q7.hint && !((_q8 = q) !== null && _q8 !== void 0 && (_q8$hint = _q8.hint) !== null && _q8$hint !== void 0 && _q8$hint["static"]) && (!((_q9 = q) !== null && _q9 !== void 0 && (_q9$hint = _q9.hint) !== null && _q9$hint !== void 0 && _q9$hint.endpoint) || !((_q10 = q) !== null && _q10 !== void 0 && (_q10$hint = _q10.hint) !== null && _q10$hint !== void 0 && (_q10$hint$path = _q10$hint.path) !== null && _q10$hint$path !== void 0 && _q10$hint$path.length))) { + if ((_q7 = q) !== null && _q7 !== void 0 && _q7.hint && !((_q8 = q) !== null && _q8 !== void 0 && (_q8$hint = _q8.hint) !== null && _q8$hint !== void 0 && _q8$hint.static) && (!((_q9 = q) !== null && _q9 !== void 0 && (_q9$hint = _q9.hint) !== null && _q9$hint !== void 0 && _q9$hint.endpoint) || !((_q10 = q) !== null && _q10 !== void 0 && (_q10$hint = _q10.hint) !== null && _q10$hint !== void 0 && (_q10$hint$path = _q10$hint.path) !== null && _q10$hint$path !== void 0 && _q10$hint$path.length))) { q = clearQuestionObj(['hint'], q); } q = clearQuestionObj(['options'], q); return q; }); - var result = { + let result = { id: qg.id, name: qg.name, order: qg.order, @@ -2293,15 +2216,15 @@ var toWebform = function toWebform(formData, questionGroups) { }; if (qg !== null && qg !== void 0 && qg.repeatText) { - result = _extends({}, result, { + result = { ...result, repeatText: qg.repeatText - }); + }; } if (qg !== null && qg !== void 0 && qg.description) { - result = _extends({}, result, { + result = { ...result, description: qg.description - }); + }; } if (qg !== null && qg !== void 0 && qg.translations) { @@ -2310,35 +2233,32 @@ var toWebform = function toWebform(formData, questionGroups) { return result; }); - return _extends({}, webformData, { + return { ...webformData, question_group: output - }); + }; }; -var generateTranslations = function generateTranslations(key, value, savedTranslations, existingTranslation) { - var _ref; - - var newTranslations = [(_ref = { - language: existingTranslation - }, _ref[key] = value, _ref)]; - var currentTranslations = null; +const generateTranslations = (key, value, savedTranslations, existingTranslation) => { + const newTranslations = [{ + language: existingTranslation, + [key]: value + }]; + let currentTranslations = null; if (savedTranslations && savedTranslations !== null && savedTranslations !== void 0 && savedTranslations.length) { - currentTranslations = savedTranslations.map(function (tl) { + currentTranslations = savedTranslations.map(tl => { if (tl.language === existingTranslation) { - var _extends4; - - return _extends({}, tl, (_extends4 = {}, _extends4[key] = value, _extends4)); + return { ...tl, + [key]: value + }; } return tl; }); - var isExistingExist = findIndex(savedTranslations, function (tr) { - return tr.language === existingTranslation; - }); + const isExistingExist = findIndex(savedTranslations, tr => tr.language === existingTranslation); if (isExistingExist === -1) { - currentTranslations = [].concat(currentTranslations, newTranslations); + currentTranslations = [...currentTranslations, ...newTranslations]; } } @@ -2348,49 +2268,43 @@ var generateTranslations = function generateTranslations(key, value, savedTransl }; }; -var data = { +const data = { clear: clearQuestionObj, toWebform: toWebform, toEditor: toEditor, generateTranslations: generateTranslations }; -var FormDefinitionTranslation = function FormDefinitionTranslation() { - var _UIStore$useState = UIStore.useState(function (s) { - return s; - }), - UIText = _UIStore$useState.UIText, - existingTranslation = _UIStore$useState.existingTranslation; - - var formStore = formFn.store.useState(function (s) { - return s; - }); - var namePreffix = "translation-" + existingTranslation; - var existingTranslationValues = useMemo(function () { +const FormDefinitionTranslation = () => { + const { + UIText, + existingTranslation + } = UIStore.useState(s => s); + const formStore = formFn.store.useState(s => s); + const namePreffix = `translation-${existingTranslation}`; + const existingTranslationValues = useMemo(() => { var _formStore$translatio; - return formStore === null || formStore === void 0 ? void 0 : (_formStore$translatio = formStore.translations) === null || _formStore$translatio === void 0 ? void 0 : _formStore$translatio.find(function (tl) { - return tl.language === existingTranslation; - }); + return formStore === null || formStore === void 0 ? void 0 : (_formStore$translatio = formStore.translations) === null || _formStore$translatio === void 0 ? void 0 : _formStore$translatio.find(tl => tl.language === existingTranslation); }, [formStore, existingTranslation]); - var updateTranslation = function updateTranslation(key, value) { - var _data$generateTransla = data.generateTranslations(key, value, formStore === null || formStore === void 0 ? void 0 : formStore.translations, existingTranslation), - newTranslations = _data$generateTransla.newTranslations, - currentTranslations = _data$generateTransla.currentTranslations; - - formFn.store.update(function (u) { + const updateTranslation = (key, value) => { + const { + newTranslations, + currentTranslations + } = data.generateTranslations(key, value, formStore === null || formStore === void 0 ? void 0 : formStore.translations, existingTranslation); + formFn.store.update(u => { u.translations = !currentTranslations ? newTranslations : currentTranslations; }); }; - var handleChangeName = function handleChangeName(e) { + const handleChangeName = e => { var _e$target; updateTranslation('name', e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value); }; - var handleChangeDescription = function handleChangeDescription(e) { + const handleChangeDescription = e => { var _e$target2; updateTranslation('description', e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.value); @@ -2399,7 +2313,7 @@ var FormDefinitionTranslation = function FormDefinitionTranslation() { return /*#__PURE__*/React__default.createElement("div", null, (formStore === null || formStore === void 0 ? void 0 : formStore.name) && /*#__PURE__*/React__default.createElement(TranslationFormItem, { labelText: UIText.inputFormNameLabel, currentValue: formStore.name, - name: namePreffix + "-form-name", + name: `${namePreffix}-form-name`, initialValue: existingTranslationValues === null || existingTranslationValues === void 0 ? void 0 : existingTranslationValues.name }, /*#__PURE__*/React__default.createElement(Input, { disabled: !existingTranslation, @@ -2407,7 +2321,7 @@ var FormDefinitionTranslation = function FormDefinitionTranslation() { })), (formStore === null || formStore === void 0 ? void 0 : formStore.description) && /*#__PURE__*/React__default.createElement(TranslationFormItem, { labelText: UIText.inputFormDescriptionLabel, currentValue: formStore.description, - name: namePreffix + "-form-description", + name: `${namePreffix}-form-description`, initialValue: existingTranslationValues === null || existingTranslationValues === void 0 ? void 0 : existingTranslationValues.description }, /*#__PURE__*/React__default.createElement(Input.TextArea, { rows: 5, @@ -2416,60 +2330,51 @@ var FormDefinitionTranslation = function FormDefinitionTranslation() { }))); }; -var QuestionSettingTranslation = function QuestionSettingTranslation(_ref) { - var id = _ref.id, - questionGroupId = _ref.questionGroupId, - name = _ref.name, - type = _ref.type, - _ref$tooltip = _ref.tooltip, - tooltip = _ref$tooltip === void 0 ? {} : _ref$tooltip, - allowOther = _ref.allowOther, - allowOtherText = _ref.allowOtherText, - _ref$options = _ref.options, - options = _ref$options === void 0 ? [] : _ref$options, - _ref$translations = _ref.translations, - translations = _ref$translations === void 0 ? [] : _ref$translations; - - var _UIStore$useState = UIStore.useState(function (s) { - return s; - }), - UIText = _UIStore$useState.UIText, - existingTranslation = _UIStore$useState.existingTranslation; - - var namePreffix = "translation-" + existingTranslation + "-question-" + id; - var existingTranslationValues = useMemo(function () { - return translations === null || translations === void 0 ? void 0 : translations.find(function (tl) { - return tl.language === existingTranslation; - }); - }, [translations, existingTranslation]); - var existingTooltipTranslationValues = useMemo(function () { +const QuestionSettingTranslation = ({ + id, + questionGroupId, + name, + type, + tooltip: _tooltip = {}, + allowOther, + allowOtherText, + options: _options = [], + translations: _translations = [] +}) => { + const { + UIText, + existingTranslation + } = UIStore.useState(s => s); + const namePreffix = `translation-${existingTranslation}-question-${id}`; + const existingTranslationValues = useMemo(() => { + return _translations === null || _translations === void 0 ? void 0 : _translations.find(tl => tl.language === existingTranslation); + }, [_translations, existingTranslation]); + const existingTooltipTranslationValues = useMemo(() => { var _tooltip$translations; - return tooltip === null || tooltip === void 0 ? void 0 : (_tooltip$translations = tooltip.translations) === null || _tooltip$translations === void 0 ? void 0 : _tooltip$translations.find(function (tl) { - return tl.language === existingTranslation; - }); - }, [tooltip, existingTranslation]); - - var updateTranslation = function updateTranslation(key, value) { - var _data$generateTransla = data.generateTranslations(key, value, translations, existingTranslation), - newTranslations = _data$generateTransla.newTranslations, - currentTranslations = _data$generateTransla.currentTranslations; + return _tooltip === null || _tooltip === void 0 ? void 0 : (_tooltip$translations = _tooltip.translations) === null || _tooltip$translations === void 0 ? void 0 : _tooltip$translations.find(tl => tl.language === existingTranslation); + }, [_tooltip, existingTranslation]); - questionGroupFn.store.update(function (u) { - u.questionGroups = u.questionGroups.map(function (qg) { + const updateTranslation = (key, value) => { + const { + newTranslations, + currentTranslations + } = data.generateTranslations(key, value, _translations, existingTranslation); + questionGroupFn.store.update(u => { + u.questionGroups = u.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id) { - return _extends({}, q, { + return { ...q, translations: !currentTranslations ? newTranslations : currentTranslations - }); + }; } return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; @@ -2477,35 +2382,34 @@ var QuestionSettingTranslation = function QuestionSettingTranslation(_ref) { }); }; - var handleChangeTooltip = function handleChangeTooltip(e) { + const handleChangeTooltip = e => { var _e$target; - var key = 'text'; - var value = e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value; - - var _data$generateTransla2 = data.generateTranslations(key, value, tooltip === null || tooltip === void 0 ? void 0 : tooltip.translations, existingTranslation), - newTranslations = _data$generateTransla2.newTranslations, - currentTranslations = _data$generateTransla2.currentTranslations; - - questionGroupFn.store.update(function (u) { - u.questionGroups = u.questionGroups.map(function (qg) { + const key = 'text'; + const value = e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value; + const { + newTranslations, + currentTranslations + } = data.generateTranslations(key, value, _tooltip === null || _tooltip === void 0 ? void 0 : _tooltip.translations, existingTranslation); + questionGroupFn.store.update(u => { + u.questionGroups = u.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { var _q$tooltip; if (q.id === id && q !== null && q !== void 0 && (_q$tooltip = q.tooltip) !== null && _q$tooltip !== void 0 && _q$tooltip.text) { - return _extends({}, q, { - tooltip: _extends({}, q.tooltip, { + return { ...q, + tooltip: { ...q.tooltip, translations: !currentTranslations ? newTranslations : currentTranslations - }) - }); + } + }; } return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; @@ -2513,53 +2417,51 @@ var QuestionSettingTranslation = function QuestionSettingTranslation(_ref) { }); }; - var handleChangeName = function handleChangeName(e) { + const handleChangeName = e => { var _e$target2; updateTranslation('name', e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.value); }; - var handleChangeAllowOtherText = function handleChangeAllowOtherText(e) { + const handleChangeAllowOtherText = e => { var _e$target3; updateTranslation('allowOtherText', e === null || e === void 0 ? void 0 : (_e$target3 = e.target) === null || _e$target3 === void 0 ? void 0 : _e$target3.value); }; - var handleChangeOptionName = function handleChangeOptionName(e, optionTranslations, optionId) { + const handleChangeOptionName = (e, optionTranslations, optionId) => { var _e$target4; - var key = 'name'; - var value = e === null || e === void 0 ? void 0 : (_e$target4 = e.target) === null || _e$target4 === void 0 ? void 0 : _e$target4.value; - - var _data$generateTransla3 = data.generateTranslations(key, value, optionTranslations, existingTranslation), - newTranslations = _data$generateTransla3.newTranslations, - currentTranslations = _data$generateTransla3.currentTranslations; - - questionGroupFn.store.update(function (u) { - u.questionGroups = u.questionGroups.map(function (qg) { + const key = 'name'; + const value = e === null || e === void 0 ? void 0 : (_e$target4 = e.target) === null || _e$target4 === void 0 ? void 0 : _e$target4.value; + const { + newTranslations, + currentTranslations + } = data.generateTranslations(key, value, optionTranslations, existingTranslation); + questionGroupFn.store.update(u => { + u.questionGroups = u.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id && [questionType.option, questionType.multiple_option].includes(q.type)) { - var _options = q.options.map(function (opt) { + const options = q.options.map(opt => { if (opt.id === optionId) { - return _extends({}, opt, { + return { ...opt, translations: !currentTranslations ? newTranslations : currentTranslations - }); + }; } return opt; }); - - return _extends({}, q, { - options: _options - }); + return { ...q, + options: options + }; } return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; @@ -2570,15 +2472,15 @@ var QuestionSettingTranslation = function QuestionSettingTranslation(_ref) { return /*#__PURE__*/React__default.createElement("div", null, name && /*#__PURE__*/React__default.createElement(TranslationFormItem, { labelText: UIText.inputQuestionNameLabel, currentValue: name, - name: namePreffix + "-name", + name: `${namePreffix}-name`, initialValue: existingTranslationValues === null || existingTranslationValues === void 0 ? void 0 : existingTranslationValues.name }, /*#__PURE__*/React__default.createElement(Input, { disabled: !existingTranslation, onChange: handleChangeName - })), (tooltip === null || tooltip === void 0 ? void 0 : tooltip.text) && /*#__PURE__*/React__default.createElement(TranslationFormItem, { + })), (_tooltip === null || _tooltip === void 0 ? void 0 : _tooltip.text) && /*#__PURE__*/React__default.createElement(TranslationFormItem, { labelText: UIText.inputQuestionTooltipLabel, - currentValue: tooltip.text, - name: namePreffix + "-tooltip", + currentValue: _tooltip.text, + name: `${namePreffix}-tooltip`, initialValue: existingTooltipTranslationValues === null || existingTooltipTranslationValues === void 0 ? void 0 : existingTooltipTranslationValues.text }, /*#__PURE__*/React__default.createElement(Input.TextArea, { disabled: !existingTranslation, @@ -2588,75 +2490,67 @@ var QuestionSettingTranslation = function QuestionSettingTranslation(_ref) { }, UIText.questionMoreOptionTranslationText), allowOther && allowOtherText && /*#__PURE__*/React__default.createElement(TranslationFormItem, { labelText: UIText.inputQuestionAllowOtherTextLabel, currentValue: allowOtherText, - name: namePreffix + "-allow_other_text", + name: `${namePreffix}-allow_other_text`, initialValue: existingTranslationValues === null || existingTranslationValues === void 0 ? void 0 : existingTranslationValues.allowOtherText }, /*#__PURE__*/React__default.createElement(Input, { disabled: !existingTranslation, onChange: handleChangeAllowOtherText - })), orderBy$1(options, 'order').filter(function (d) { - return d === null || d === void 0 ? void 0 : d.name; - }).map(function (d, di) { + })), orderBy$1(_options, 'order').filter(d => d === null || d === void 0 ? void 0 : d.name).map((d, di) => { var _d$translations; - var existingOptionTranslationValues = d === null || d === void 0 ? void 0 : (_d$translations = d.translations) === null || _d$translations === void 0 ? void 0 : _d$translations.find(function (tl) { - return tl.language === existingTranslation; - }); + const existingOptionTranslationValues = d === null || d === void 0 ? void 0 : (_d$translations = d.translations) === null || _d$translations === void 0 ? void 0 : _d$translations.find(tl => tl.language === existingTranslation); return /*#__PURE__*/React__default.createElement(TranslationFormItem, { - key: "translation-option-" + d.id + "-" + di, - labelText: UIText.inputQuestionOptionNameLabel + " " + d.order, + key: `translation-option-${d.id}-${di}`, + labelText: `${UIText.inputQuestionOptionNameLabel} ${d.order}`, currentValue: d.name, - name: namePreffix + "-option-name-" + ((d === null || d === void 0 ? void 0 : d.id) || d.name), + name: `${namePreffix}-option-name-${(d === null || d === void 0 ? void 0 : d.id) || d.name}`, initialValue: existingOptionTranslationValues === null || existingOptionTranslationValues === void 0 ? void 0 : existingOptionTranslationValues.name }, /*#__PURE__*/React__default.createElement(Input, { disabled: !existingTranslation, - onChange: function onChange(e) { - return handleChangeOptionName(e, d === null || d === void 0 ? void 0 : d.translations, d.id); - } + onChange: e => handleChangeOptionName(e, d === null || d === void 0 ? void 0 : d.translations, d.id) })); }))); }; -var QuestionDefinitionTranslation = function QuestionDefinitionTranslation(_ref2) { - var index = _ref2.index, - question = _ref2.question; - var id = question.id, - name = question.name, - order = question.order, - questionGroupOrder = question.questionGroupOrder; - - var _UIStore$useState2 = UIStore.useState(function (s) { - return s; - }), - activeEditTranslationQuestions = _UIStore$useState2.activeEditTranslationQuestions; - - var isEditTranslationQuestion = useMemo(function () { +const QuestionDefinitionTranslation = ({ + index, + question +}) => { + const { + id, + name, + order, + questionGroupOrder + } = question; + const { + activeEditTranslationQuestions + } = UIStore.useState(s => s); + const isEditTranslationQuestion = useMemo(() => { return activeEditTranslationQuestions.includes(id); }, [activeEditTranslationQuestions, id]); - var handleEditTranslationQuestion = function handleEditTranslationQuestion() { - UIStore.update(function (s) { - s.activeEditTranslationQuestions = [].concat(activeEditTranslationQuestions, [id]); + const handleEditTranslationQuestion = () => { + UIStore.update(s => { + s.activeEditTranslationQuestions = [...activeEditTranslationQuestions, id]; }); }; - var handleCancelEditTranslationQuestion = function handleCancelEditTranslationQuestion() { - UIStore.update(function (s) { - s.activeEditTranslationQuestions = activeEditTranslationQuestions.filter(function (qId) { - return qId !== id; - }); + const handleCancelEditTranslationQuestion = () => { + UIStore.update(s => { + s.activeEditTranslationQuestions = activeEditTranslationQuestions.filter(qId => qId !== id); }); }; - var cardTitleButton = [{ + const cardTitleButton = [{ type: 'show-button', isExpand: isEditTranslationQuestion, onClick: handleEditTranslationQuestion, onCancel: handleCancelEditTranslationQuestion }]; return /*#__PURE__*/React__default.createElement(Card, { - key: "translation-question-" + index + "-" + id, + key: `translation-question-${index}-${id}`, title: /*#__PURE__*/React__default.createElement(CardTitle, { - title: questionGroupOrder + "." + order + ". " + name, + title: `${questionGroupOrder}.${order}. ${name}`, buttons: cardTitleButton }), headStyle: { @@ -2670,39 +2564,34 @@ var QuestionDefinitionTranslation = function QuestionDefinitionTranslation(_ref2 }, isEditTranslationQuestion && /*#__PURE__*/React__default.createElement(QuestionSettingTranslation, question)); }; -var QuestionGroupSettingTranslation = function QuestionGroupSettingTranslation(_ref) { - var id = _ref.id, - name = _ref.name, - description = _ref.description, - repeatable = _ref.repeatable, - repeatText = _ref.repeatText, - _ref$translations = _ref.translations, - translations = _ref$translations === void 0 ? [] : _ref$translations; - - var _UIStore$useState = UIStore.useState(function (s) { - return s; - }), - UIText = _UIStore$useState.UIText, - existingTranslation = _UIStore$useState.existingTranslation; - - var namePreffix = "translation-" + existingTranslation + "-question_group-" + id; - var existingTranslationValues = useMemo(function () { - return translations === null || translations === void 0 ? void 0 : translations.find(function (tl) { - return tl.language === existingTranslation; - }); - }, [translations, existingTranslation]); - - var updateTranslation = function updateTranslation(key, value) { - var _data$generateTransla = data.generateTranslations(key, value, translations, existingTranslation), - newTranslations = _data$generateTransla.newTranslations, - currentTranslations = _data$generateTransla.currentTranslations; - - questionGroupFn.store.update(function (u) { - u.questionGroups = u.questionGroups.map(function (qg) { +const QuestionGroupSettingTranslation = ({ + id, + name, + description, + repeatable, + repeatText, + translations: _translations = [] +}) => { + const { + UIText, + existingTranslation + } = UIStore.useState(s => s); + const namePreffix = `translation-${existingTranslation}-question_group-${id}`; + const existingTranslationValues = useMemo(() => { + return _translations === null || _translations === void 0 ? void 0 : _translations.find(tl => tl.language === existingTranslation); + }, [_translations, existingTranslation]); + + const updateTranslation = (key, value) => { + const { + newTranslations, + currentTranslations + } = data.generateTranslations(key, value, _translations, existingTranslation); + questionGroupFn.store.update(u => { + u.questionGroups = u.questionGroups.map(qg => { if (qg.id === id) { - return _extends({}, qg, { + return { ...qg, translations: !currentTranslations ? newTranslations : currentTranslations - }); + }; } return qg; @@ -2710,19 +2599,19 @@ var QuestionGroupSettingTranslation = function QuestionGroupSettingTranslation(_ }); }; - var handleChangeName = function handleChangeName(e) { + const handleChangeName = e => { var _e$target; updateTranslation('name', e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value); }; - var handleChangeDescription = function handleChangeDescription(e) { + const handleChangeDescription = e => { var _e$target2; updateTranslation('description', e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.value); }; - var handleChangeRepeatText = function handleChangeRepeatText(e) { + const handleChangeRepeatText = e => { var _e$target3; updateTranslation('repeatText', e === null || e === void 0 ? void 0 : (_e$target3 = e.target) === null || _e$target3 === void 0 ? void 0 : _e$target3.value); @@ -2731,7 +2620,7 @@ var QuestionGroupSettingTranslation = function QuestionGroupSettingTranslation(_ return /*#__PURE__*/React__default.createElement("div", null, name && /*#__PURE__*/React__default.createElement(TranslationFormItem, { labelText: UIText.inputQuestionGroupNameLabel, currentValue: name, - name: namePreffix + "-name", + name: `${namePreffix}-name`, initialValue: existingTranslationValues === null || existingTranslationValues === void 0 ? void 0 : existingTranslationValues.name }, /*#__PURE__*/React__default.createElement(Input, { disabled: !existingTranslation, @@ -2739,7 +2628,7 @@ var QuestionGroupSettingTranslation = function QuestionGroupSettingTranslation(_ })), description && /*#__PURE__*/React__default.createElement(TranslationFormItem, { labelText: UIText.inputQuestionGroupDescriptionLabel, currentValue: description, - name: namePreffix + "-description", + name: `${namePreffix}-description`, initialValue: existingTranslationValues === null || existingTranslationValues === void 0 ? void 0 : existingTranslationValues.description }, /*#__PURE__*/React__default.createElement(Input.TextArea, { rows: 5, @@ -2748,7 +2637,7 @@ var QuestionGroupSettingTranslation = function QuestionGroupSettingTranslation(_ })), repeatable && repeatText && /*#__PURE__*/React__default.createElement(TranslationFormItem, { labelText: UIText.inputRepeatTextLabel, currentValue: repeatText, - name: namePreffix + "-repeat_text", + name: `${namePreffix}-repeat_text`, initialValue: existingTranslationValues === null || existingTranslationValues === void 0 ? void 0 : existingTranslationValues.repeatText }, /*#__PURE__*/React__default.createElement(Input, { disabled: !existingTranslation, @@ -2756,90 +2645,82 @@ var QuestionGroupSettingTranslation = function QuestionGroupSettingTranslation(_ }))); }; -var QuestionGroupDefinitionTranslation = function QuestionGroupDefinitionTranslation(_ref2) { - var index = _ref2.index, - questionGroup = _ref2.questionGroup; - var id = questionGroup.id, - name = questionGroup.name, - order = questionGroup.order, - questions = questionGroup.questions; - - var _UIStore$useState2 = UIStore.useState(function (s) { - return s; - }), - activeTranslationQuestionGroups = _UIStore$useState2.activeTranslationQuestionGroups, - activeEditTranslationQuestionGroups = _UIStore$useState2.activeEditTranslationQuestionGroups, - activeEditTranslationQuestions = _UIStore$useState2.activeEditTranslationQuestions; - - var questionIds = questions.map(function (q) { - return q.id; - }); - var showTranslationQuestion = useMemo(function () { +const QuestionGroupDefinitionTranslation = ({ + index, + questionGroup +}) => { + const { + id, + name, + order, + questions + } = questionGroup; + const { + activeTranslationQuestionGroups, + activeEditTranslationQuestionGroups, + activeEditTranslationQuestions + } = UIStore.useState(s => s); + const questionIds = questions.map(q => q.id); + const showTranslationQuestion = useMemo(() => { return activeTranslationQuestionGroups.includes(id); }, [activeTranslationQuestionGroups, id]); - var isEditTranslationQuestionGroup = useMemo(function () { + const isEditTranslationQuestionGroup = useMemo(() => { return activeEditTranslationQuestionGroups.includes(id); }, [activeEditTranslationQuestionGroups, id]); - var handleHideTranslationQuestions = function handleHideTranslationQuestions() { - UIStore.update(function (s) { - s.activeTranslationQuestionGroups = activeTranslationQuestionGroups.filter(function (qgId) { - return qgId !== id; - }); + const handleHideTranslationQuestions = () => { + UIStore.update(s => { + s.activeTranslationQuestionGroups = activeTranslationQuestionGroups.filter(qgId => qgId !== id); }); }; - var handleCancelEditTranslationGroup = function handleCancelEditTranslationGroup() { - UIStore.update(function (s) { - s.activeEditTranslationQuestionGroups = activeEditTranslationQuestionGroups.filter(function (qgId) { - return qgId !== id; - }); + const handleCancelEditTranslationGroup = () => { + UIStore.update(s => { + s.activeEditTranslationQuestionGroups = activeEditTranslationQuestionGroups.filter(qgId => qgId !== id); }); handleHideTranslationQuestions(); }; - var handleEditTranslationGroup = function handleEditTranslationGroup() { - UIStore.update(function (s) { + const handleEditTranslationGroup = () => { + UIStore.update(s => { if (!activeEditTranslationQuestionGroups.includes(id)) { - s.activeEditTranslationQuestionGroups = [].concat(activeEditTranslationQuestionGroups, [id]); + s.activeEditTranslationQuestionGroups = [...activeEditTranslationQuestionGroups, id]; } else { - s.activeEditTranslationQuestionGroups = activeEditTranslationQuestionGroups.filter(function (a) { - return a !== id; - }); + s.activeEditTranslationQuestionGroups = activeEditTranslationQuestionGroups.filter(a => a !== id); } }); }; - var handleExpandAll = function handleExpandAll() { - UIStore.update(function (s) { - s.activeEditTranslationQuestionGroups = uniq([].concat(activeEditTranslationQuestionGroups, [id])); - s.activeEditTranslationQuestions = uniq([].concat(s.activeEditTranslationQuestions, questionIds)); + const handleExpandAll = () => { + UIStore.update(s => { + s.activeEditTranslationQuestionGroups = uniq([...activeEditTranslationQuestionGroups, id]); + s.activeEditTranslationQuestions = uniq([...s.activeEditTranslationQuestions, ...questionIds]); }); }; - var handleCancelExpandAll = function handleCancelExpandAll() { + const handleCancelExpandAll = () => { handleCancelEditTranslationGroup(); - UIStore.update(function (s) { + UIStore.update(s => { s.activeEditTranslationQuestions = difference(s.activeEditTranslationQuestions, questionIds); }); }; - var cardTitleButton = [{ + const cardTitleButton = [{ type: 'show-button', isExpand: isEditTranslationQuestionGroup, onClick: handleEditTranslationGroup, onCancel: handleCancelEditTranslationGroup }]; - var cardExtraButton = [{ + const cardExtraButton = [{ type: 'expand-all-button', isExpand: intersection(activeEditTranslationQuestions, questionIds).length, onClick: handleExpandAll, onCancel: handleCancelExpandAll }]; return /*#__PURE__*/React__default.createElement(Card, { - key: "translation-" + index + "-" + id, + key: `translation-${index}-${id}`, title: /*#__PURE__*/React__default.createElement(CardTitle, { - title: order + ". " + name, + title: `${order}. ${name}`, buttons: cardTitleButton }), headStyle: { @@ -2853,130 +2734,98 @@ var QuestionGroupDefinitionTranslation = function QuestionGroupDefinitionTransla extra: /*#__PURE__*/React__default.createElement(CardTitle, { buttons: cardExtraButton }) - }, isEditTranslationQuestionGroup && /*#__PURE__*/React__default.createElement(QuestionGroupSettingTranslation, questionGroup), isEditTranslationQuestionGroup && questions.map(function (q, qi) { - return /*#__PURE__*/React__default.createElement(QuestionDefinitionTranslation, { - key: "question-definition-translation-" + qi, - index: qi, - question: _extends({}, q, { - questionGroupOrder: order - }) - }); - })); + }, isEditTranslationQuestionGroup && /*#__PURE__*/React__default.createElement(QuestionGroupSettingTranslation, questionGroup), isEditTranslationQuestionGroup && questions.map((q, qi) => /*#__PURE__*/React__default.createElement(QuestionDefinitionTranslation, { + key: `question-definition-translation-${qi}`, + index: qi, + question: { ...q, + questionGroupOrder: order + } + }))); }; -var staticDefaultLang = 'en'; +const staticDefaultLang = 'en'; -var ExistingTranslation = function ExistingTranslation() { - var _UIStore$useState = UIStore.useState(function (s) { - return s; - }), - localeDropdownValue = _UIStore$useState.localeDropdownValue, - existingTranslation = _UIStore$useState.existingTranslation; +const ExistingTranslation = () => { + const { + localeDropdownValue, + existingTranslation + } = UIStore.useState(s => s); + const formStore = formFn.store.useState(s => s); + const languages = (formStore === null || formStore === void 0 ? void 0 : formStore.languages) || []; - var formStore = formFn.store.useState(function (s) { - return s; - }); - var languages = (formStore === null || formStore === void 0 ? void 0 : formStore.languages) || []; - - var handleCloseTag = function handleCloseTag(lang) { - UIStore.update(function (u) { + const handleCloseTag = lang => { + UIStore.update(u => { u.existingTranslation = existingTranslation === lang ? null : existingTranslation; }); - formFn.store.update(function (u) { + formFn.store.update(u => { var _formStore$translatio; - u.languages = languages.filter(function (ln) { - return ln !== lang; - }); - u.translations = formStore === null || formStore === void 0 ? void 0 : (_formStore$translatio = formStore.translations) === null || _formStore$translatio === void 0 ? void 0 : _formStore$translatio.filter(function (tl) { - return tl.language !== lang; - }); + u.languages = languages.filter(ln => ln !== lang); + u.translations = formStore === null || formStore === void 0 ? void 0 : (_formStore$translatio = formStore.translations) === null || _formStore$translatio === void 0 ? void 0 : _formStore$translatio.filter(tl => tl.language !== lang); }); - questionGroupFn.store.update(function (u) { - u.questionGroups = u.questionGroups.map(function (qg) { + questionGroupFn.store.update(u => { + u.questionGroups = u.questionGroups.map(qg => { var _qg$translations; - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { var _q$options, _q$translations; - var newObj = q; + let newObj = q; if (q !== null && q !== void 0 && q.options && q !== null && q !== void 0 && (_q$options = q.options) !== null && _q$options !== void 0 && _q$options.length) { - var options = q.options.map(function (op) { + const options = q.options.map(op => { var _op$translations; - return _extends({}, op, { - translations: op === null || op === void 0 ? void 0 : (_op$translations = op.translations) === null || _op$translations === void 0 ? void 0 : _op$translations.filter(function (tl) { - return tl.language !== lang; - }) - }); + return { ...op, + translations: op === null || op === void 0 ? void 0 : (_op$translations = op.translations) === null || _op$translations === void 0 ? void 0 : _op$translations.filter(tl => tl.language !== lang) + }; }); - newObj = _extends({}, newObj, { + newObj = { ...newObj, options: options - }); + }; } - return _extends({}, newObj, { - translations: q === null || q === void 0 ? void 0 : (_q$translations = q.translations) === null || _q$translations === void 0 ? void 0 : _q$translations.filter(function (tl) { - return tl.language !== lang; - }) - }); + return { ...newObj, + translations: q === null || q === void 0 ? void 0 : (_q$translations = q.translations) === null || _q$translations === void 0 ? void 0 : _q$translations.filter(tl => tl.language !== lang) + }; }); - return _extends({}, qg, { + return { ...qg, questions: questions, - translations: qg === null || qg === void 0 ? void 0 : (_qg$translations = qg.translations) === null || _qg$translations === void 0 ? void 0 : _qg$translations.filter(function (tl) { - return tl.language !== lang; - }) - }); + translations: qg === null || qg === void 0 ? void 0 : (_qg$translations = qg.translations) === null || _qg$translations === void 0 ? void 0 : _qg$translations.filter(tl => tl.language !== lang) + }; }); }); }; - return languages.map(function (lang) { - var findLang = localeDropdownValue.find(function (lc) { - return lc.value === lang; - }); + return languages.map(lang => { + const findLang = localeDropdownValue.find(lc => lc.value === lang); return /*#__PURE__*/React__default.createElement("a", { key: lang, href: "#", - onClick: function onClick() { - return UIStore.update(function (u) { - u.existingTranslation = existingTranslation !== lang ? lang : null; - }); - } + onClick: () => UIStore.update(u => { + u.existingTranslation = existingTranslation !== lang ? lang : null; + }) }, /*#__PURE__*/React__default.createElement(Tag, { - className: styles.tags + " " + (existingTranslation === lang ? styles['tags-active'] : ''), + className: `${styles.tags} ${existingTranslation === lang ? styles['tags-active'] : ''}`, closable: true, - onClose: function onClose() { - return handleCloseTag(lang); - } + onClose: () => handleCloseTag(lang) }, findLang.label)); }); }; -var FormTranslations = function FormTranslations() { - var _Form$useForm = Form.useForm(), - formTranslation = _Form$useForm[0]; - - var _UIStore$useState2 = UIStore.useState(function (s) { - return s; - }), - UIText = _UIStore$useState2.UIText, - localeDropdownValue = _UIStore$useState2.localeDropdownValue; - - var formStore = formFn.store.useState(function (s) { - return s; - }); - var questionGroups = questionGroupFn.store.useState(function (s) { - return s === null || s === void 0 ? void 0 : s.questionGroups; - }); - var languages = useMemo(function () { +const FormTranslations = () => { + const [formTranslation] = Form.useForm(); + const { + UIText, + localeDropdownValue + } = UIStore.useState(s => s); + const formStore = formFn.store.useState(s => s); + const questionGroups = questionGroupFn.store.useState(s => s === null || s === void 0 ? void 0 : s.questionGroups); + const languages = useMemo(() => { return (formStore === null || formStore === void 0 ? void 0 : formStore.languages) || []; }, [formStore === null || formStore === void 0 ? void 0 : formStore.languages]); - var defaultLangDropdownValue = useMemo(function () { - return localeDropdownValue.filter(function (ld) { - return [staticDefaultLang].concat(languages).includes(ld.value); - }); + const defaultLangDropdownValue = useMemo(() => { + return localeDropdownValue.filter(ld => [staticDefaultLang, ...languages].includes(ld.value)); }, [localeDropdownValue, languages]); return /*#__PURE__*/React__default.createElement(Space, { direction: "vertical", @@ -2997,16 +2846,12 @@ var FormTranslations = function FormTranslations() { className: styles['select-dropdown'], optionFilterProp: "label", options: defaultLangDropdownValue, - onChange: function onChange(e) { - return formFn.store.update(function (u) { - u.defaultLanguage = e; - }); - }, + onChange: e => formFn.store.update(u => { + u.defaultLanguage = e; + }), value: (formStore === null || formStore === void 0 ? void 0 : formStore.defaultLanguage) || staticDefaultLang, disabled: defaultLangDropdownValue.length === 1, - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - } + getPopupContainer: triggerNode => triggerNode.parentElement })), /*#__PURE__*/React__default.createElement(Col, { sm: 24, md: 8, @@ -3015,22 +2860,16 @@ var FormTranslations = function FormTranslations() { showSearch: true, className: styles['select-dropdown'], optionFilterProp: "children", - onChange: function onChange(e) { - return formFn.store.update(function (u) { - u.languages = [].concat(languages, [e]); - }); - }, + onChange: e => formFn.store.update(u => { + u.languages = [...languages, e]; + }), value: [], - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - } - }, localeDropdownValue.map(function (ld, ldi) { - return /*#__PURE__*/React__default.createElement(Select.Option, { - key: ld.value + "-" + ldi, - value: ld.value, - disabled: languages.includes(ld.value) || ld.value === staticDefaultLang - }, ld.label); - }))), /*#__PURE__*/React__default.createElement(Col, { + getPopupContainer: triggerNode => triggerNode.parentElement + }, localeDropdownValue.map((ld, ldi) => /*#__PURE__*/React__default.createElement(Select.Option, { + key: `${ld.value}-${ldi}`, + value: ld.value, + disabled: languages.includes(ld.value) || ld.value === staticDefaultLang + }, ld.label)))), /*#__PURE__*/React__default.createElement(Col, { sm: 24, md: 10, lg: 12 @@ -3042,39 +2881,36 @@ var FormTranslations = function FormTranslations() { key: "akvo-react-form-editor-translation", name: "akvo-react-form-editor-translation", layout: "vertical" - }, /*#__PURE__*/React__default.createElement(FormDefinitionTranslation, null), questionGroups.map(function (qg, qgi) { + }, /*#__PURE__*/React__default.createElement(FormDefinitionTranslation, null), questionGroups.map((qg, qgi) => { return /*#__PURE__*/React__default.createElement(QuestionGroupDefinitionTranslation, { - key: "translation-question-group-definition-" + qgi, + key: `translation-question-group-definition-${qgi}`, index: qgi, questionGroup: qg }); }))); }; -var FormPreview = function FormPreview() { - var _questionGroupFn$stor = questionGroupFn.store.useState(function (s) { - return s; - }), - questionGroups = _questionGroupFn$stor.questionGroups; - - var formStore = formFn.store.useState(function (s) { - return s; - }); +const FormPreview = () => { + const { + questionGroups + } = questionGroupFn.store.useState(s => s); + const formStore = formFn.store.useState(s => s); return /*#__PURE__*/React__default.createElement(Webform, { forms: data.toWebform(formStore, questionGroups) }); }; -var FormDefinition = function FormDefinition(_ref) { - var name = _ref.name, - description = _ref.description; - var form = Form.useFormInstance(); - var UIText = UIStore.useState(function (s) { - return s.UIText; - }); - var inputFormNameLabel = UIText.inputFormNameLabel, - inputFormDescriptionLabel = UIText.inputFormDescriptionLabel; - useEffect(function () { +const FormDefinition = ({ + name, + description +}) => { + const form = Form.useFormInstance(); + const UIText = UIStore.useState(s => s.UIText); + const { + inputFormNameLabel, + inputFormDescriptionLabel + } = UIText; + useEffect(() => { form.setFieldsValue({ 'form-name': name }); @@ -3091,13 +2927,11 @@ var FormDefinition = function FormDefinition(_ref) { initialValue: name }, /*#__PURE__*/React__default.createElement(Input, { allowClear: true, - onChange: function onChange(e) { - return formFn.store.update(function (u) { - var _e$target; + onChange: e => formFn.store.update(u => { + var _e$target; - u.name = e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value; - }); - } + u.name = e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value; + }) })), /*#__PURE__*/React__default.createElement(Form.Item, { label: inputFormDescriptionLabel, name: "form-description", @@ -3105,36 +2939,33 @@ var FormDefinition = function FormDefinition(_ref) { }, /*#__PURE__*/React__default.createElement(Input.TextArea, { rows: 5, allowClear: true, - onChange: function onChange(e) { - return formFn.store.update(function (u) { - var _e$target2; + onChange: e => formFn.store.update(u => { + var _e$target2; - u.description = e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.value; - }); - } + u.description = e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.value; + }) }))); }; -var QuestionGroupSetting = function QuestionGroupSetting(_ref) { - var id = _ref.id, - name = _ref.name, - description = _ref.description, - repeatable = _ref.repeatable, - repeatText = _ref.repeatText; - var namePreffix = "question_group-" + id; - var UIText = UIStore.useState(function (s) { - return s.UIText; - }); - - var handleChangeName = function handleChangeName(e) { - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (x) { +const QuestionGroupSetting = ({ + id, + name, + description, + repeatable, + repeatText +}) => { + const namePreffix = `question_group-${id}`; + const UIText = UIStore.useState(s => s.UIText); + + const handleChangeName = e => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(x => { if (x.id === id) { var _e$target; - return _extends({}, x, { + return { ...x, name: e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value - }); + }; } return x; @@ -3142,15 +2973,15 @@ var QuestionGroupSetting = function QuestionGroupSetting(_ref) { }); }; - var handleChangeDescription = function handleChangeDescription(e) { - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (x) { + const handleChangeDescription = e => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(x => { if (x.id === id) { var _e$target2; - return _extends({}, x, { + return { ...x, description: e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.value - }); + }; } return x; @@ -3158,15 +2989,15 @@ var QuestionGroupSetting = function QuestionGroupSetting(_ref) { }); }; - var handleChangeRepeatable = function handleChangeRepeatable(e) { - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (x) { + const handleChangeRepeatable = e => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(x => { if (x.id === id) { var _e$target3; - return _extends({}, x, { + return { ...x, repeatable: e === null || e === void 0 ? void 0 : (_e$target3 = e.target) === null || _e$target3 === void 0 ? void 0 : _e$target3.checked - }); + }; } return x; @@ -3174,15 +3005,15 @@ var QuestionGroupSetting = function QuestionGroupSetting(_ref) { }); }; - var handleChangeRepeatText = function handleChangeRepeatText(e) { - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (x) { + const handleChangeRepeatText = e => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(x => { if (x.id === id) { var _e$target4; - return _extends({}, x, { + return { ...x, repeatText: e === null || e === void 0 ? void 0 : (_e$target4 = e.target) === null || _e$target4 === void 0 ? void 0 : _e$target4.value - }); + }; } return x; @@ -3193,7 +3024,7 @@ var QuestionGroupSetting = function QuestionGroupSetting(_ref) { return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionGroupNameLabel, initialValue: name, - name: namePreffix + "-name", + name: `${namePreffix}-name`, required: true }, /*#__PURE__*/React__default.createElement(Input, { onChange: handleChangeName, @@ -3201,7 +3032,7 @@ var QuestionGroupSetting = function QuestionGroupSetting(_ref) { })), /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionGroupDescriptionLabel, initialValue: description, - name: namePreffix + "-description" + name: `${namePreffix}-description` }, /*#__PURE__*/React__default.createElement(Input.TextArea, { onChange: handleChangeDescription, allowClear: true, @@ -3210,7 +3041,7 @@ var QuestionGroupSetting = function QuestionGroupSetting(_ref) { align: "bottom", gutter: [24, 24] }, /*#__PURE__*/React__default.createElement(Col, null, /*#__PURE__*/React__default.createElement(Form.Item, { - name: namePreffix + "-repeatable", + name: `${namePreffix}-repeatable`, className: styles['input-checkbox-wrapper'] }, /*#__PURE__*/React__default.createElement(Checkbox, { onChange: handleChangeRepeatable, @@ -3219,7 +3050,7 @@ var QuestionGroupSetting = function QuestionGroupSetting(_ref) { span: 10 }, /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputRepeatTextLabel, - name: namePreffix + "-repeat_text", + name: `${namePreffix}-repeat_text`, initialValue: repeatText }, /*#__PURE__*/React__default.createElement(Input, { onChange: handleChangeRepeatText, @@ -3227,32 +3058,31 @@ var QuestionGroupSetting = function QuestionGroupSetting(_ref) { }))))); }; -var SettingInput = function SettingInput(_ref) { - var id = _ref.id, - questionGroupId = _ref.questionGroupId, - requiredDoubleEntry = _ref.requiredDoubleEntry, - hiddenString = _ref.hiddenString; - var namePreffix = "question-" + id; - var UIText = UIStore.useState(function (s) { - return s.UIText; - }); - - var updateState = function updateState(name, value) { - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { +const SettingInput = ({ + id, + questionGroupId, + requiredDoubleEntry, + hiddenString +}) => { + const namePreffix = `question-${id}`; + const UIText = UIStore.useState(s => s.UIText); + + const updateState = (name, value) => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id) { - var _extends2; - - return _extends({}, q, (_extends2 = {}, _extends2[name] = value, _extends2)); + return { ...q, + [name]: value + }; } return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; @@ -3260,13 +3090,13 @@ var SettingInput = function SettingInput(_ref) { }); }; - var handleChangeDoubleEntry = function handleChangeDoubleEntry(e) { + const handleChangeDoubleEntry = e => { var _e$target; updateState('requiredDoubleEntry', e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.checked); }; - var handleChangeHiddenString = function handleChangeHiddenString(e) { + const handleChangeHiddenString = e => { var _e$target2; updateState('hiddenString', e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.checked); @@ -3277,41 +3107,39 @@ var SettingInput = function SettingInput(_ref) { }, UIText.questionMoreInputTypeSettingText), /*#__PURE__*/React__default.createElement(Space, { className: styles['space-align-left'] }, /*#__PURE__*/React__default.createElement(Form.Item, { - name: namePreffix + "-require_double_entry" + name: `${namePreffix}-require_double_entry` }, /*#__PURE__*/React__default.createElement(Checkbox, { onChange: handleChangeDoubleEntry, checked: requiredDoubleEntry }, ' ', UIText.inputQuestionRequireDoubleEntryCheckbox)), /*#__PURE__*/React__default.createElement(Form.Item, { - name: namePreffix + "-hidden_string" + name: `${namePreffix}-hidden_string` }, /*#__PURE__*/React__default.createElement(Checkbox, { onChange: handleChangeHiddenString, checked: hiddenString }, ' ', UIText.inputQuestionHiddenStringCheckbox)))); }; -var SettingNumber = function SettingNumber(_ref) { - var id = _ref.id, - questionGroupId = _ref.questionGroupId, - _ref$rule = _ref.rule, - rule = _ref$rule === void 0 ? { +const SettingNumber = ({ + id, + questionGroupId, + rule: _rule = { allowDecimal: false, min: null, max: null - } : _ref$rule; - var namePreffix = "question-" + id; - var UIText = UIStore.useState(function (s) { - return s.UIText; - }); - var allowDecimal = rule === null || rule === void 0 ? void 0 : rule.allowDecimal; - var min = rule === null || rule === void 0 ? void 0 : rule.min; - var max = rule === null || rule === void 0 ? void 0 : rule.max; - var moreNumberSettings = [{ + } +}) => { + const namePreffix = `question-${id}`; + const UIText = UIStore.useState(s => s.UIText); + const allowDecimal = _rule === null || _rule === void 0 ? void 0 : _rule.allowDecimal; + const min = _rule === null || _rule === void 0 ? void 0 : _rule.min; + const max = _rule === null || _rule === void 0 ? void 0 : _rule.max; + const moreNumberSettings = [{ label: UIText.inputQuestionMinimumValueLabel, value: min, key: 'min', rules: { max: max - 1, - message: UIText.inputQuestionMinimumValidationText + " " + max + message: `${UIText.inputQuestionMinimumValidationText} ${max}` } }, { label: UIText.inputQuestionMaximumValueLabel, @@ -3319,28 +3147,28 @@ var SettingNumber = function SettingNumber(_ref) { key: 'max', rules: { min: min + 1, - message: UIText.inputQuestionMaximumValidationText + " " + min + message: `${UIText.inputQuestionMaximumValidationText} ${min}` } }]; - var updateState = function updateState(name, value) { - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { + const updateState = (name, value) => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id) { - var _extends2; - - return _extends({}, q, { - rule: _extends({}, q === null || q === void 0 ? void 0 : q.rule, (_extends2 = {}, _extends2[name] = value, _extends2)) - }); + return { ...q, + rule: { ...(q === null || q === void 0 ? void 0 : q.rule), + [name]: value + } + }; } return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; @@ -3348,13 +3176,13 @@ var SettingNumber = function SettingNumber(_ref) { }); }; - var handleChangeAllowDecimal = function handleChangeAllowDecimal(e) { + const handleChangeAllowDecimal = e => { var _e$target; updateState('allowDecimal', e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.checked); }; - var handleChangeMinMax = function handleChangeMinMax(key, e) { + const handleChangeMinMax = (key, e) => { updateState(key, e); }; @@ -3363,161 +3191,156 @@ var SettingNumber = function SettingNumber(_ref) { }, UIText.questionMoreInputNumberSettingText), /*#__PURE__*/React__default.createElement(Space, { className: styles['space-align-left'] }, /*#__PURE__*/React__default.createElement(Form.Item, { - name: namePreffix + "-allow_decimal" + name: `${namePreffix}-allow_decimal` }, /*#__PURE__*/React__default.createElement(Checkbox, { onChange: handleChangeAllowDecimal, checked: allowDecimal }, ' ', UIText.inputQuestionAllowDecimalCheckbox))), /*#__PURE__*/React__default.createElement(Row, { align: "middle", gutter: [24, 24] - }, moreNumberSettings.map(function (x) { - return /*#__PURE__*/React__default.createElement(Col, { - key: namePreffix + "-" + x.key, - span: 8 - }, /*#__PURE__*/React__default.createElement(Form.Item, { - label: x.label, - initialValue: x.value, - name: namePreffix + "-" + x.key, - rules: [_extends({ - type: 'number' - }, x.rules)] - }, /*#__PURE__*/React__default.createElement(InputNumber, { - style: { - width: '100%' - }, - controls: false, - keyboard: false, - onChange: function onChange(e) { - return handleChangeMinMax(x.key, e); - } - }))); - }))); + }, moreNumberSettings.map(x => /*#__PURE__*/React__default.createElement(Col, { + key: `${namePreffix}-${x.key}`, + span: 8 + }, /*#__PURE__*/React__default.createElement(Form.Item, { + label: x.label, + initialValue: x.value, + name: `${namePreffix}-${x.key}`, + rules: [{ + type: 'number', + ...x.rules + }] + }, /*#__PURE__*/React__default.createElement(InputNumber, { + style: { + width: '100%' + }, + controls: false, + keyboard: false, + onChange: e => handleChangeMinMax(x.key, e) + })))))); }; -var defaultOptions = function defaultOptions(_ref) { - var _ref$init = _ref.init, - init = _ref$init === void 0 ? false : _ref$init, - _ref$order = _ref.order, - order = _ref$order === void 0 ? 0 : _ref$order; - var option = { +const defaultOptions = ({ + init: _init = false, + order: _order = 0 +}) => { + const option = { code: null, name: 'New Option', order: 1 }; - if (init) { - return [_extends({}, option, { + if (_init) { + return [{ ...option, id: generateId(), name: 'New Option 1', order: 1 - }), _extends({}, option, { + }, { ...option, id: generateId() + 1, name: 'New Option 2', order: 2 - })]; + }]; } - return _extends({}, option, { + return { ...option, id: generateId(), - order: order - }); + order: _order + }; }; -var SettingOption = function SettingOption(_ref2) { - var id = _ref2.id, - questionGroupId = _ref2.questionGroupId, - allowOther = _ref2.allowOther, - allowOtherText = _ref2.allowOtherText, - initialOptions = _ref2.options; - var namePreffix = "question-" + id; - var UIText = UIStore.useState(function (s) { - return s.UIText; - }); - - var _useState = useState(initialOptions !== null && initialOptions !== void 0 && initialOptions.length ? initialOptions.map(function (x, xi) { - return _extends({}, x, { - code: (x === null || x === void 0 ? void 0 : x.code) || null, - id: (x === null || x === void 0 ? void 0 : x.id) || generateId() + xi, - order: (x === null || x === void 0 ? void 0 : x.order) || xi + 1 - }); - }) : defaultOptions({ +const SettingOption = ({ + id, + questionGroupId, + allowOther, + allowOtherText, + options: initialOptions +}) => { + const namePreffix = `question-${id}`; + const UIText = UIStore.useState(s => s.UIText); + const [options, setOptions] = useState(initialOptions !== null && initialOptions !== void 0 && initialOptions.length ? initialOptions.map((x, xi) => ({ ...x, + code: (x === null || x === void 0 ? void 0 : x.code) || null, + id: (x === null || x === void 0 ? void 0 : x.id) || generateId() + xi, + order: (x === null || x === void 0 ? void 0 : x.order) || xi + 1 + })) : defaultOptions({ init: true - })), - options = _useState[0], - setOptions = _useState[1]; - - var updateState = useCallback(function (name, value) { - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { + })); + const updateState = useCallback((name, value) => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id) { - var _extends2; - - return _extends({}, q, (_extends2 = {}, _extends2[name] = value, _extends2)); + return { ...q, + [name]: value + }; } return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; }); }); }, [id, questionGroupId]); - useEffect(function () { + useEffect(() => { updateState('options', options); }, [options, id, questionGroupId, updateState]); - var handleOnChangeAllowOther = function handleOnChangeAllowOther(e) { + const handleOnChangeAllowOther = e => { var _e$target; updateState('allowOther', e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.checked); }; - var handleOnChangeAllowOtherText = function handleOnChangeAllowOtherText(e) { + const handleOnChangeAllowOtherText = e => { var _e$target2; updateState('allowOtherText', e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.value); }; - var handleOnChangeCode = function handleOnChangeCode(e, current) { - var currentId = current.id; - setOptions(options.map(function (opt) { + const handleOnChangeCode = (e, current) => { + const { + id: currentId + } = current; + setOptions(options.map(opt => { if (opt.id === currentId) { var _e$target3; - return _extends({}, opt, { + return { ...opt, code: e === null || e === void 0 ? void 0 : (_e$target3 = e.target) === null || _e$target3 === void 0 ? void 0 : _e$target3.value - }); + }; } return opt; })); }; - var handleOnChangeOption = function handleOnChangeOption(e, current) { - var currentId = current.id; - setOptions(options.map(function (opt) { + const handleOnChangeOption = (e, current) => { + const { + id: currentId + } = current; + setOptions(options.map(opt => { if (opt.id === currentId) { var _e$target4; - return _extends({}, opt, { + return { ...opt, name: e === null || e === void 0 ? void 0 : (_e$target4 = e.target) === null || _e$target4 === void 0 ? void 0 : _e$target4.value - }); + }; } return opt; })); }; - var handleOnAddOption = function handleOnAddOption(current) { - var currentOrder = current.order; - var lastOrder = takeRight(orderBy(options, 'order'))[0].order; - var reorderOptions = options.map(function (opt) { + const handleOnAddOption = current => { + const { + order: currentOrder + } = current; + const lastOrder = takeRight(orderBy(options, 'order'))[0].order; + const reorderOptions = options.map(opt => { if (opt.order > currentOrder) { opt['order'] = opt['order'] + 1; } @@ -3528,42 +3351,30 @@ var SettingOption = function SettingOption(_ref2) { return opt; }); - var addOptions = [].concat(reorderOptions, [defaultOptions({ + const addOptions = [...reorderOptions, defaultOptions({ order: currentOrder + 1 - })]); + })]; setOptions(orderBy(addOptions, 'order')); }; - var handleOnMoveOption = function handleOnMoveOption(current, targetOrder) { - var currentOrder = current.order; - var prevOptions = options.filter(function (opt) { - return opt.order !== currentOrder && opt.order !== targetOrder; - }); - var currentOption = options.filter(function (opt) { - return opt.order === currentOrder; - }).map(function (opt) { - return _extends({}, opt, { - order: targetOrder - }); - }); - var targetOption = options.filter(function (opt) { - return opt.order === targetOrder; - }).map(function (opt) { - return _extends({}, opt, { - order: currentOrder - }); - }); - setOptions(orderBy([].concat(prevOptions, currentOption, targetOption), 'order')); + const handleOnMoveOption = (current, targetOrder) => { + const { + order: currentOrder + } = current; + const prevOptions = options.filter(opt => opt.order !== currentOrder && opt.order !== targetOrder); + const currentOption = options.filter(opt => opt.order === currentOrder).map(opt => ({ ...opt, + order: targetOrder + })); + const targetOption = options.filter(opt => opt.order === targetOrder).map(opt => ({ ...opt, + order: currentOrder + })); + setOptions(orderBy([...prevOptions, ...currentOption, ...targetOption], 'order')); }; - var handleOnDeleteOption = function handleOnDeleteOption(currentId) { - setOptions(orderBy(options, 'order').filter(function (opt) { - return opt.id !== currentId; - }).map(function (opt, opti) { - return _extends({}, opt, { - order: opti + 1 - }); - })); + const handleOnDeleteOption = currentId => { + setOptions(orderBy(options, 'order').filter(opt => opt.id !== currentId).map((opt, opti) => ({ ...opt, + order: opti + 1 + }))); }; return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("p", { @@ -3572,7 +3383,7 @@ var SettingOption = function SettingOption(_ref2) { align: "bottom", gutter: [24, 24] }, /*#__PURE__*/React__default.createElement(Col, null, /*#__PURE__*/React__default.createElement(Form.Item, { - name: namePreffix + "-allow_other" + name: `${namePreffix}-allow_other` }, /*#__PURE__*/React__default.createElement(Checkbox, { onChange: handleOnChangeAllowOther, checked: allowOther @@ -3580,103 +3391,87 @@ var SettingOption = function SettingOption(_ref2) { span: 11 }, /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionAllowOtherTextLabel, - name: namePreffix + "-allow_other_text", + name: `${namePreffix}-allow_other_text`, initialValue: allowOtherText }, /*#__PURE__*/React__default.createElement(Input, { onChange: handleOnChangeAllowOtherText, allowClear: true - })))), orderBy(options, 'order').map(function (d, di) { - return /*#__PURE__*/React__default.createElement(Row, { - key: "option-" + id + "-" + di, - align: "start", - justify: "start", - gutter: [12, 12] - }, /*#__PURE__*/React__default.createElement(Col, { - span: 4 - }, /*#__PURE__*/React__default.createElement(Form.Item, { - initialValue: d.code, - name: namePreffix + "-option_code_" + d.id - }, /*#__PURE__*/React__default.createElement(Input, { - placeholder: "Code", - onChange: function onChange(e) { - return handleOnChangeCode(e, d); - }, - allowClear: true - }))), /*#__PURE__*/React__default.createElement(Col, { - span: 10 - }, /*#__PURE__*/React__default.createElement(Form.Item, { - initialValue: d.name, - name: namePreffix + "-option_name_" + d.id - }, /*#__PURE__*/React__default.createElement(Input, { - onChange: function onChange(e) { - return handleOnChangeOption(e, d); - }, - allowClear: true - }))), /*#__PURE__*/React__default.createElement(Col, null, /*#__PURE__*/React__default.createElement(Space, null, /*#__PURE__*/React__default.createElement(Button, { - type: "link", - className: styles['button-icon'], - icon: /*#__PURE__*/React__default.createElement(MdOutlineAddCircleOutline, null), - onClick: function onClick() { - return handleOnAddOption(d); - } - }), /*#__PURE__*/React__default.createElement(Button, { - type: "link", - className: styles['button-icon'], - icon: /*#__PURE__*/React__default.createElement(MdOutlineArrowCircleUp, null), - onClick: function onClick() { - return handleOnMoveOption(d, d.order - 1); - }, - disabled: di === 0 - }), /*#__PURE__*/React__default.createElement(Button, { - type: "link", - className: styles['button-icon'], - icon: /*#__PURE__*/React__default.createElement(MdOutlineArrowCircleDown, null), - onClick: function onClick() { - return handleOnMoveOption(d, d.order + 1); - }, - disabled: di === options.length - 1 - }), /*#__PURE__*/React__default.createElement(Button, { - type: "link", - className: styles['button-icon'], - icon: /*#__PURE__*/React__default.createElement(MdOutlineRemoveCircleOutline, null), - onClick: function onClick() { - return handleOnDeleteOption(d.id); - }, - disabled: options.length === 1 - })))); - })); -}; - -var SettingTree = function SettingTree(_ref) { - var id = _ref.id, - questionGroupId = _ref.questionGroupId, - option = _ref.option; - var namePreffix = "question-" + id; - - var _UIStore$useState = UIStore.useState(function (s) { - return s; - }), - UIText = _UIStore$useState.UIText, - hostParams = _UIStore$useState.hostParams; - - var settingTreeDropdownValue = hostParams === null || hostParams === void 0 ? void 0 : hostParams.settingTreeDropdownValue; - - var handleChangeTreeDropdown = function handleChangeTreeDropdown(e) { - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { - if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { - if (q.id === id) { - return _extends({}, q, { - option: e - }); - } - - return q; - }); - return _extends({}, qg, { - questions: questions + })))), orderBy(options, 'order').map((d, di) => /*#__PURE__*/React__default.createElement(Row, { + key: `option-${id}-${di}`, + align: "start", + justify: "start", + gutter: [12, 12] + }, /*#__PURE__*/React__default.createElement(Col, { + span: 4 + }, /*#__PURE__*/React__default.createElement(Form.Item, { + initialValue: d.code, + name: `${namePreffix}-option_code_${d.id}` + }, /*#__PURE__*/React__default.createElement(Input, { + placeholder: "Code", + onChange: e => handleOnChangeCode(e, d), + allowClear: true + }))), /*#__PURE__*/React__default.createElement(Col, { + span: 10 + }, /*#__PURE__*/React__default.createElement(Form.Item, { + initialValue: d.name, + name: `${namePreffix}-option_name_${d.id}` + }, /*#__PURE__*/React__default.createElement(Input, { + onChange: e => handleOnChangeOption(e, d), + allowClear: true + }))), /*#__PURE__*/React__default.createElement(Col, null, /*#__PURE__*/React__default.createElement(Space, null, /*#__PURE__*/React__default.createElement(Button, { + type: "link", + className: styles['button-icon'], + icon: /*#__PURE__*/React__default.createElement(MdOutlineAddCircleOutline, null), + onClick: () => handleOnAddOption(d) + }), /*#__PURE__*/React__default.createElement(Button, { + type: "link", + className: styles['button-icon'], + icon: /*#__PURE__*/React__default.createElement(MdOutlineArrowCircleUp, null), + onClick: () => handleOnMoveOption(d, d.order - 1), + disabled: di === 0 + }), /*#__PURE__*/React__default.createElement(Button, { + type: "link", + className: styles['button-icon'], + icon: /*#__PURE__*/React__default.createElement(MdOutlineArrowCircleDown, null), + onClick: () => handleOnMoveOption(d, d.order + 1), + disabled: di === options.length - 1 + }), /*#__PURE__*/React__default.createElement(Button, { + type: "link", + className: styles['button-icon'], + icon: /*#__PURE__*/React__default.createElement(MdOutlineRemoveCircleOutline, null), + onClick: () => handleOnDeleteOption(d.id), + disabled: options.length === 1 + })))))); +}; + +const SettingTree = ({ + id, + questionGroupId, + option +}) => { + const namePreffix = `question-${id}`; + const { + UIText, + hostParams + } = UIStore.useState(s => s); + const settingTreeDropdownValue = hostParams === null || hostParams === void 0 ? void 0 : hostParams.settingTreeDropdownValue; + + const handleChangeTreeDropdown = e => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { + if (qg.id === questionGroupId) { + const questions = qg.questions.map(q => { + if (q.id === id) { + return { ...q, + option: e + }; + } + + return q; }); + return { ...qg, + questions: questions + }; } return qg; @@ -3688,68 +3483,59 @@ var SettingTree = function SettingTree(_ref) { className: styles['more-question-setting-text'] }, UIText.questionMoreTreeSettingText), /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputSelectTreeDropdownValueLabel, - name: namePreffix + "-tree-options", + name: `${namePreffix}-tree-options`, initialValue: option }, /*#__PURE__*/React__default.createElement(Select, { showSearch: true, className: styles['select-dropdown'], optionFilterProp: "label", options: settingTreeDropdownValue, - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - }, + getPopupContainer: triggerNode => triggerNode.parentElement, onChange: handleChangeTreeDropdown }))); }; -var SettingCascade = function SettingCascade(_ref) { - var id = _ref.id, - questionGroupId = _ref.questionGroupId, - _ref$api = _ref.api, - api = _ref$api === void 0 ? { +const SettingCascade = ({ + id, + questionGroupId, + api: _api = { endpoint: null, initial: 0, list: false - } : _ref$api; - var namePreffix = "question-" + id; - - var _UIStore$useState = UIStore.useState(function (s) { - return s; - }), - UIText = _UIStore$useState.UIText, - hostParams = _UIStore$useState.hostParams; - - var settingCascadeURL = hostParams === null || hostParams === void 0 ? void 0 : hostParams.settingCascadeURL; - var form = Form.useFormInstance(); - var cascadeURLDropdownValue = useMemo(function () { - return settingCascadeURL.map(function (x) { - return { - label: x.name, - value: x.id - }; - }); + } +}) => { + const namePreffix = `question-${id}`; + const { + UIText, + hostParams + } = UIStore.useState(s => s); + const settingCascadeURL = hostParams === null || hostParams === void 0 ? void 0 : hostParams.settingCascadeURL; + const form = Form.useFormInstance(); + const cascadeURLDropdownValue = useMemo(() => { + return settingCascadeURL.map(x => ({ + label: x.name, + value: x.id + })); }, [settingCascadeURL]); - var updateGlobalState = function updateGlobalState(values) { - if (values === void 0) { - values = {}; - } - - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { + const updateGlobalState = (values = {}) => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id) { - return _extends({}, q, { - api: _extends({}, q === null || q === void 0 ? void 0 : q.api, values) - }); + return { ...q, + api: { ...(q === null || q === void 0 ? void 0 : q.api), + ...values + } + }; } return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; @@ -3757,15 +3543,14 @@ var SettingCascade = function SettingCascade(_ref) { }); }; - var handleChangeEndpoint = function handleChangeEndpoint(e) { - var findURL = settingCascadeURL.find(function (x) { - return x.id === e; - }); + const handleChangeEndpoint = e => { + const findURL = settingCascadeURL.find(x => x.id === e); if (findURL) { - var _form$setFieldsValue; - - form.setFieldsValue((_form$setFieldsValue = {}, _form$setFieldsValue[namePreffix + "-api_initial"] = findURL.initial, _form$setFieldsValue[namePreffix + "-api_list"] = findURL.list, _form$setFieldsValue)); + form.setFieldsValue({ + [`${namePreffix}-api_initial`]: findURL.initial, + [`${namePreffix}-api_list`]: findURL.list + }); updateGlobalState({ endpoint: findURL.endpoint, initial: findURL.initial || 0, @@ -3774,13 +3559,13 @@ var SettingCascade = function SettingCascade(_ref) { } }; - var handleChangeInitial = function handleChangeInitial(e) { + const handleChangeInitial = e => { updateGlobalState({ initial: e }); }; - var handleChangeList = function handleChangeList(value) { + const handleChangeList = value => { updateGlobalState({ list: value }); @@ -3790,7 +3575,7 @@ var SettingCascade = function SettingCascade(_ref) { className: styles['more-question-setting-text'] }, UIText.questionMoreCascadeSettingText), /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionEndpointLabel, - name: namePreffix + "-api_endpoint" + name: `${namePreffix}-api_endpoint` }, /*#__PURE__*/React__default.createElement(Row, { align: "middle", gutter: [24, 24] @@ -3801,14 +3586,12 @@ var SettingCascade = function SettingCascade(_ref) { className: styles['select-dropdown'], optionFilterProp: "label", options: cascadeURLDropdownValue, - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - }, + getPopupContainer: triggerNode => triggerNode.parentElement, onChange: handleChangeEndpoint })), /*#__PURE__*/React__default.createElement(Col, { span: 14 }, /*#__PURE__*/React__default.createElement(Input, { - value: api === null || api === void 0 ? void 0 : api.endpoint, + value: _api === null || _api === void 0 ? void 0 : _api.endpoint, disabled: true })))), /*#__PURE__*/React__default.createElement(Row, { align: "bottom", @@ -3817,8 +3600,8 @@ var SettingCascade = function SettingCascade(_ref) { span: 4 }, /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionInitialValueLabel, - initialValue: api === null || api === void 0 ? void 0 : api.initial, - name: namePreffix + "-api_initial" + initialValue: _api === null || _api === void 0 ? void 0 : _api.initial, + name: `${namePreffix}-api_initial` }, /*#__PURE__*/React__default.createElement(InputNumber, { style: { width: '100%' @@ -3827,22 +3610,22 @@ var SettingCascade = function SettingCascade(_ref) { keyboard: false, onChange: handleChangeInitial }))), /*#__PURE__*/React__default.createElement(Col, null, /*#__PURE__*/React__default.createElement(Form.Item, { - name: namePreffix + "-api_list_checkbox" + name: `${namePreffix}-api_list_checkbox` }, /*#__PURE__*/React__default.createElement(Checkbox, { - onChange: function onChange(e) { + onChange: e => { var _e$target; return handleChangeList(e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.checked); }, - checked: api !== null && api !== void 0 && api.list ? true : false - }, ' ', UIText.inputQuestionListCheckbox))), (api === null || api === void 0 ? void 0 : api.list) && /*#__PURE__*/React__default.createElement(Col, { + checked: _api !== null && _api !== void 0 && _api.list ? true : false + }, ' ', UIText.inputQuestionListCheckbox))), (_api === null || _api === void 0 ? void 0 : _api.list) && /*#__PURE__*/React__default.createElement(Col, { span: 8 }, /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionListLabel, - initialValue: api !== null && api !== void 0 && api.list ? api.list !== true ? api.list : null : null, - name: namePreffix + "-api_list" + initialValue: _api !== null && _api !== void 0 && _api.list ? _api.list !== true ? _api.list : null : null, + name: `${namePreffix}-api_list` }, /*#__PURE__*/React__default.createElement(Input, { - onChange: function onChange(e) { + onChange: e => { var _e$target2; return handleChangeList(e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.value); @@ -9530,50 +9313,44 @@ var moment = createCommonjsModule(function (module, exports) { }))); }); -var SettingDate = function SettingDate(_ref) { - var id = _ref.id, - questionGroupId = _ref.questionGroupId, - _ref$rule = _ref.rule, - rule = _ref$rule === void 0 ? { +const SettingDate = ({ + id, + questionGroupId, + rule: _rule = { minDate: null, maxDate: null - } : _ref$rule; - var namePreffix = "question-" + id; - var UIText = UIStore.useState(function (s) { - return s.UIText; - }); - var minDate = rule === null || rule === void 0 ? void 0 : rule.minDate; - var maxDate = rule === null || rule === void 0 ? void 0 : rule.maxDate; - var moreDateSettings = [{ + } +}) => { + const namePreffix = `question-${id}`; + const UIText = UIStore.useState(s => s.UIText); + const minDate = _rule === null || _rule === void 0 ? void 0 : _rule.minDate; + const maxDate = _rule === null || _rule === void 0 ? void 0 : _rule.maxDate; + const moreDateSettings = [{ label: UIText.inputQuestionAfterDateValueLabel, value: minDate, key: 'minDate', - disabledDate: function disabledDate(current) { - return current && maxDate && current >= moment(maxDate); - } + disabledDate: current => current && maxDate && current >= moment(maxDate) }, { label: UIText.inputQuestionBeforeDateValueLabel, value: maxDate, key: 'maxDate', - disabledDate: function disabledDate(current) { - return current && minDate && current <= moment(minDate); - } + disabledDate: current => current && minDate && current <= moment(minDate) }]; - var handleChangeAfterBefore = function handleChangeAfterBefore(name, value) { - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { + const handleChangeAfterBefore = (name, value) => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id) { var _q$rule; if (value) { - var _extends2; - - return _extends({}, q, { - rule: _extends({}, q === null || q === void 0 ? void 0 : q.rule, (_extends2 = {}, _extends2[name] = moment(value).format('YYYY-MM-DD'), _extends2)) - }); + return { ...q, + rule: { ...(q === null || q === void 0 ? void 0 : q.rule), + [name]: moment(value).format('YYYY-MM-DD') + } + }; } if (!value && q !== null && q !== void 0 && (_q$rule = q.rule) !== null && _q$rule !== void 0 && _q$rule[name]) { @@ -9587,9 +9364,9 @@ var SettingDate = function SettingDate(_ref) { return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; @@ -9602,144 +9379,130 @@ var SettingDate = function SettingDate(_ref) { }, UIText.questionMoreInputDateSettingText), /*#__PURE__*/React__default.createElement(Row, { align: "middle", gutter: [24, 24] - }, moreDateSettings.map(function (x) { - return /*#__PURE__*/React__default.createElement(Col, { - key: namePreffix + "-" + x.key, - span: 8 - }, /*#__PURE__*/React__default.createElement(Form.Item, { - label: x.label, - initialValue: x.value ? moment(x.value) : null, - name: namePreffix + "-" + x.key - }, /*#__PURE__*/React__default.createElement(DatePicker, { - disabledDate: x.disabledDate, - style: { - width: '100%' - }, - onChange: function onChange(e) { - return handleChangeAfterBefore(x.key, e); - } - }))); - }))); + }, moreDateSettings.map(x => /*#__PURE__*/React__default.createElement(Col, { + key: `${namePreffix}-${x.key}`, + span: 8 + }, /*#__PURE__*/React__default.createElement(Form.Item, { + label: x.label, + initialValue: x.value ? moment(x.value) : null, + name: `${namePreffix}-${x.key}` + }, /*#__PURE__*/React__default.createElement(DatePicker, { + disabledDate: x.disabledDate, + style: { + width: '100%' + }, + onChange: e => handleChangeAfterBefore(x.key, e) + })))))); }; -var generateColumnName = function generateColumnName(text) { - return text.trim().toLowerCase().split(' ').join('_'); -}; +const generateColumnName = text => text.trim().toLowerCase().split(' ').join('_'); -var columnType = { +const columnType = { input: 'input', number: 'number', option: 'option', text: 'text' }; -var defaultColumns = function defaultColumns(_ref) { - var _ref$init = _ref.init, - init = _ref$init === void 0 ? false : _ref$init; - var column = { +const defaultColumns = ({ + init: _init = false +}) => { + const column = { name: null, label: null, type: null }; - if (init) { - return [_extends({}, column, { + if (_init) { + return [{ ...column, id: generateId() - })]; + }]; } - return _extends({}, column, { + return { ...column, id: generateId() - }); + }; }; -var defaultColumnOptions = function defaultColumnOptions(_ref2) { - var _ref2$init = _ref2.init, - init = _ref2$init === void 0 ? false : _ref2$init, - _ref2$order = _ref2.order, - order = _ref2$order === void 0 ? 0 : _ref2$order; - var option = { +const defaultColumnOptions = ({ + init: _init2 = false, + order: _order = 0 +}) => { + const option = { name: 'New Option', order: 1 }; - if (init) { - return [_extends({}, option, { + if (_init2) { + return [{ ...option, id: generateId() - })]; + }]; } - return _extends({}, option, { + return { ...option, id: generateId(), - order: order - }); + order: _order + }; }; -var SettingTable = function SettingTable(_ref3) { - var id = _ref3.id, - questionGroupId = _ref3.questionGroupId, - initialColumns = _ref3.columns; - var namePreffix = "question-" + id; - var UIText = UIStore.useState(function (s) { - return s.UIText; - }); - - var _useState = useState(initialColumns !== null && initialColumns !== void 0 && initialColumns.length ? initialColumns.map(function (cl, cli) { +const SettingTable = ({ + id, + questionGroupId, + columns: initialColumns +}) => { + const namePreffix = `question-${id}`; + const UIText = UIStore.useState(s => s.UIText); + const [columns, setColumns] = useState(initialColumns !== null && initialColumns !== void 0 && initialColumns.length ? initialColumns.map((cl, cli) => { var _cl$options; if (cl !== null && cl !== void 0 && cl.options && cl !== null && cl !== void 0 && (_cl$options = cl.options) !== null && _cl$options !== void 0 && _cl$options.length) { - var options = cl.options.map(function (op, opi) { - return _extends({}, op, { - id: (op === null || op === void 0 ? void 0 : op.id) || generateId() + initialColumns.length + opi + 1 - }); - }); - return _extends({}, cl, { + const options = cl.options.map((op, opi) => ({ ...op, + id: (op === null || op === void 0 ? void 0 : op.id) || generateId() + initialColumns.length + opi + 1 + })); + return { ...cl, id: (cl === null || cl === void 0 ? void 0 : cl.id) || generateId() + cli, options: options - }); + }; } - return _extends({}, cl, { + return { ...cl, id: (cl === null || cl === void 0 ? void 0 : cl.id) || generateId() + cli - }); + }; }) : defaultColumns({ init: true - })), - columns = _useState[0], - setColumns = _useState[1]; - - var columnTypeOptions = Object.keys(columnType).map(function (key) { - return { - label: columnType[key], - value: key - }; - }); - useEffect(function () { - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { + })); + const columnTypeOptions = Object.keys(columnType).map(key => ({ + label: columnType[key], + value: key + })); + useEffect(() => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id) { - return _extends({}, q, { + return { ...q, columns: columns - }); + }; } return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; }); }); }, [id, questionGroupId, columns]); - var updateColumns = useCallback(function (columnId, obj) { - var updatedColumn = columns.map(function (cl) { + const updateColumns = useCallback((columnId, obj) => { + const updatedColumn = columns.map(cl => { if (cl.id === columnId) { - return _extends({}, cl, obj); + return { ...cl, + ...obj + }; } return cl; @@ -9747,50 +9510,52 @@ var SettingTable = function SettingTable(_ref3) { setColumns(updatedColumn); }, [columns]); - var handleChangeColumnName = function handleChangeColumnName(columnId, value) { + const handleChangeColumnName = (columnId, value) => { updateColumns(columnId, { name: generateColumnName(value), label: value }); }; - var handleChangeColumnType = function handleChangeColumnType(columnId, value) { - var obj = { + const handleChangeColumnType = (columnId, value) => { + let obj = { type: value }; if (value === columnType.option) { - obj = _extends({}, obj, { + obj = { ...obj, options: defaultColumnOptions({ init: true }) - }); + }; } updateColumns(columnId, obj); }; - var handleAddColumn = function handleAddColumn() { - var addColumns = [].concat(columns, [defaultColumns({ + const handleAddColumn = () => { + const addColumns = [...columns, defaultColumns({ init: false - })]); + })]; setColumns(addColumns); }; - var handleDeleteColumn = function handleDeleteColumn(currentColumn) { - var updatedColumn = columns.filter(function (cl) { - return cl.id !== currentColumn.id; - }); + const handleDeleteColumn = currentColumn => { + const updatedColumn = columns.filter(cl => cl.id !== currentColumn.id); setColumns(updatedColumn); }; - var handleOnAddOption = function handleOnAddOption(currentColumn, currentOption) { - var columnId = currentColumn.id, - options = currentColumn.options; - var currentOrder = currentOption.order; - var lastOrder = takeRight(orderBy(options, 'order'))[0].order; - var reorderOptions = options.map(function (opt) { - var order = opt.order; + const handleOnAddOption = (currentColumn, currentOption) => { + const { + id: columnId, + options + } = currentColumn; + const { + order: currentOrder + } = currentOption; + const lastOrder = takeRight(orderBy(options, 'order'))[0].order; + const reorderOptions = options.map(opt => { + let order = opt.order; if (opt.order > currentOrder) { order = order + 1; @@ -9800,67 +9565,63 @@ var SettingTable = function SettingTable(_ref3) { order = order - 1; } - return _extends({}, opt, { + return { ...opt, order: order - }); + }; }); - var addOptions = [].concat(reorderOptions, [defaultColumnOptions({ + const addOptions = [...reorderOptions, defaultColumnOptions({ order: currentOrder + 1 - })]); + })]; updateColumns(columnId, { options: addOptions }); }; - var handleOnMoveOption = function handleOnMoveOption(currentColumn, currentOption, targetOrder) { - var columnId = currentColumn.id, - options = currentColumn.options; - var currentOrder = currentOption.order; - var prevOptions = options.filter(function (opt) { - return opt.order !== currentOrder && opt.order !== targetOrder; - }); - var currentOptions = options.filter(function (opt) { - return opt.order === currentOrder; - }).map(function (opt) { - return _extends({}, opt, { - order: targetOrder - }); - }); - var targetOptions = options.filter(function (opt) { - return opt.order === targetOrder; - }).map(function (opt) { - return _extends({}, opt, { - order: currentOrder - }); - }); + const handleOnMoveOption = (currentColumn, currentOption, targetOrder) => { + const { + id: columnId, + options + } = currentColumn; + const { + order: currentOrder + } = currentOption; + const prevOptions = options.filter(opt => opt.order !== currentOrder && opt.order !== targetOrder); + const currentOptions = options.filter(opt => opt.order === currentOrder).map(opt => ({ ...opt, + order: targetOrder + })); + const targetOptions = options.filter(opt => opt.order === targetOrder).map(opt => ({ ...opt, + order: currentOrder + })); updateColumns(columnId, { - options: orderBy([].concat(prevOptions, currentOptions, targetOptions), 'order') + options: orderBy([...prevOptions, ...currentOptions, ...targetOptions], 'order') }); }; - var handleOnDeleteOption = function handleOnDeleteOption(currentColumn, currentOptionId) { - var columnId = currentColumn.id, - options = currentColumn.options; + const handleOnDeleteOption = (currentColumn, currentOptionId) => { + const { + id: columnId, + options + } = currentColumn; updateColumns(columnId, { - options: orderBy(options, 'order').filter(function (opt) { - return opt.id !== currentOptionId; - }).map(function (opt, opti) { - return _extends({}, opt, { - order: opti + 1 - }); - }) + options: orderBy(options, 'order').filter(opt => opt.id !== currentOptionId).map((opt, opti) => ({ ...opt, + order: opti + 1 + })) }); }; - var handleOnChangeOption = function handleOnChangeOption(currentColumn, currentOption, value) { - var columnId = currentColumn.id, - options = currentColumn.options; - var currentOptId = currentOption.id; - var updatedOptions = options.map(function (op) { + const handleOnChangeOption = (currentColumn, currentOption, value) => { + const { + id: columnId, + options + } = currentColumn; + const { + id: currentOptId + } = currentOption; + const updatedOptions = options.map(op => { if (op.id === currentOptId) { - return _extends({}, op, { + return { ...op, name: value - }); + }; } return op; @@ -9872,34 +9633,30 @@ var SettingTable = function SettingTable(_ref3) { return /*#__PURE__*/React__default.createElement("div", { className: styles['more-question-setting-text'] - }, /*#__PURE__*/React__default.createElement("p", null, UIText.questionMoreTableTypeSettingText), columns.map(function (cl, cli) { + }, /*#__PURE__*/React__default.createElement("p", null, UIText.questionMoreTableTypeSettingText), columns.map((cl, cli) => { var _cl$options2; return /*#__PURE__*/React__default.createElement(Card, { - key: "column-" + id + "-" + cli + "-" + cl.id, + key: `column-${id}-${cli}-${cl.id}`, title: /*#__PURE__*/React__default.createElement(Row, { gutter: [24, 24], align: "middle", justify: "space-between" }, /*#__PURE__*/React__default.createElement(Col, { span: 20 - }, "Column - " + (cli + 1)), /*#__PURE__*/React__default.createElement(Col, { + }, `Column - ${cli + 1}`), /*#__PURE__*/React__default.createElement(Col, { span: 4, align: "end" }, /*#__PURE__*/React__default.createElement(Space, null, /*#__PURE__*/React__default.createElement(Button, { type: "link", className: styles['button-icon'], icon: /*#__PURE__*/React__default.createElement(MdOutlineAddCircleOutline, null), - onClick: function onClick() { - return handleAddColumn(); - } + onClick: () => handleAddColumn() }), /*#__PURE__*/React__default.createElement(Button, { type: "link", className: styles['button-icon'], icon: /*#__PURE__*/React__default.createElement(MdOutlineRemoveCircleOutline, null), - onClick: function onClick() { - return handleDeleteColumn(cl); - }, + onClick: () => handleDeleteColumn(cl), disabled: columns.length === 1 })))) }, /*#__PURE__*/React__default.createElement(Row, { @@ -9907,13 +9664,13 @@ var SettingTable = function SettingTable(_ref3) { }, /*#__PURE__*/React__default.createElement(Col, { span: 12 }, /*#__PURE__*/React__default.createElement(Form.Item, { - name: namePreffix + "-column_name_" + cl.id, + name: `${namePreffix}-column_name_${cl.id}`, className: styles['form-item-no-bottom-margin'], label: UIText.inputColumnNameLabel, initialValue: cl.label }, /*#__PURE__*/React__default.createElement(Input, { allowClear: true, - onChange: function onChange(e) { + onChange: e => { var _e$target; return handleChangeColumnName(cl.id, e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value); @@ -9921,7 +9678,7 @@ var SettingTable = function SettingTable(_ref3) { }))), /*#__PURE__*/React__default.createElement(Col, { span: 12 }, /*#__PURE__*/React__default.createElement(Form.Item, { - name: namePreffix + "-column_type_" + cl.id, + name: `${namePreffix}-column_type_${cl.id}`, className: styles['form-item-no-bottom-margin'], label: UIText.inputColumnTypeLabel, initialValue: cl.type @@ -9929,26 +9686,22 @@ var SettingTable = function SettingTable(_ref3) { showSearch: true, optionFilterProp: "label", options: columnTypeOptions, - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - }, - onChange: function onChange(val) { - return handleChangeColumnType(cl.id, val); - } + getPopupContainer: triggerNode => triggerNode.parentElement, + onChange: val => handleChangeColumnType(cl.id, val) }))), /*#__PURE__*/React__default.createElement(Col, { span: 24 - }, cl.type === columnType.option && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("p", null, UIText.questionTableTypeDefineOptionsText), cl === null || cl === void 0 ? void 0 : (_cl$options2 = cl.options) === null || _cl$options2 === void 0 ? void 0 : _cl$options2.map(function (op, opi) { + }, cl.type === columnType.option && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("p", null, UIText.questionTableTypeDefineOptionsText), cl === null || cl === void 0 ? void 0 : (_cl$options2 = cl.options) === null || _cl$options2 === void 0 ? void 0 : _cl$options2.map((op, opi) => { return /*#__PURE__*/React__default.createElement(Row, { - key: "option-" + id + "-" + opi + "-" + op.id, + key: `option-${id}-${opi}-${op.id}`, gutter: [24, 24] }, /*#__PURE__*/React__default.createElement(Col, { span: 12 }, /*#__PURE__*/React__default.createElement(Form.Item, { initialValue: op.name, - name: namePreffix + "-option_name_" + op.id + "_" + cl.id + name: `${namePreffix}-option_name_${op.id}_${cl.id}` }, /*#__PURE__*/React__default.createElement(Input, { allowClear: true, - onChange: function onChange(e) { + onChange: e => { var _e$target2; return handleOnChangeOption(cl, op, e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.value); @@ -9957,143 +9710,176 @@ var SettingTable = function SettingTable(_ref3) { type: "link", className: styles['button-icon'], icon: /*#__PURE__*/React__default.createElement(MdOutlineAddCircleOutline, null), - onClick: function onClick() { - return handleOnAddOption(cl, op); - } + onClick: () => handleOnAddOption(cl, op) }), /*#__PURE__*/React__default.createElement(Button, { type: "link", className: styles['button-icon'], icon: /*#__PURE__*/React__default.createElement(MdOutlineArrowCircleUp, null), - onClick: function onClick() { - return handleOnMoveOption(cl, op, op.order - 1); - }, + onClick: () => handleOnMoveOption(cl, op, op.order - 1), disabled: opi === 0 }), /*#__PURE__*/React__default.createElement(Button, { type: "link", className: styles['button-icon'], icon: /*#__PURE__*/React__default.createElement(MdOutlineArrowCircleDown, null), - onClick: function onClick() { - return handleOnMoveOption(cl, op, op.order + 1); - }, + onClick: () => handleOnMoveOption(cl, op, op.order + 1), disabled: opi === cl.options.length - 1 }), /*#__PURE__*/React__default.createElement(Button, { type: "link", className: styles['button-icon'], icon: /*#__PURE__*/React__default.createElement(MdOutlineRemoveCircleOutline, null), - onClick: function onClick() { - return handleOnDeleteOption(cl, op.id); - }, + onClick: () => handleOnDeleteOption(cl, op.id), disabled: cl.options.length === 1 })))); }))))); })); }; -var QuestionHint = function QuestionHint(_ref) { - var _hostParams$settingHi; +const SettingImage = ({ + id, + questionGroupId, + limit +}) => { + const namePreffix = `question-${id}`; + const UIText = UIStore.useState(s => s.UIText); + + const updateState = (name, value) => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { + if (qg.id === questionGroupId) { + const questions = qg.questions.map(q => { + if (q.id === id) { + return { ...q, + [name]: value + }; + } + + return q; + }); + return { ...qg, + questions: questions + }; + } + + return qg; + }); + }); + }; + + const handleOnLimit = value => { + updateState('limit', value); + }; + + return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("p", { + className: styles['more-question-setting-text'] + }, UIText.questionMoreImageTypeSettingText), /*#__PURE__*/React__default.createElement(Row, { + align: "middle", + gutter: [24, 24] + }, /*#__PURE__*/React__default.createElement(Col, { + span: 8 + }, /*#__PURE__*/React__default.createElement(Form.Item, { + label: UIText.inputQuestionImageLimitValidationText, + name: `${namePreffix}-limit_file_size` + }, /*#__PURE__*/React__default.createElement(InputNumber, { + onChange: handleOnLimit, + value: limit, + addonAfter: "MB" + }))))); +}; - var id = _ref.id, - questionGroupId = _ref.questionGroupId, - _ref$hint = _ref.hint, - hint = _ref$hint === void 0 ? { +const QuestionHint = ({ + id, + questionGroupId, + hint: _hint = { id: null, endpoint: null, path: [], - "static": null, + static: null, buttonText: null - } : _ref$hint; - var namePreffix = "question-" + id; - - var _UIStore$useState = UIStore.useState(function (s) { - return s; - }), - UIText = _UIStore$useState.UIText, - hostParams = _UIStore$useState.hostParams; - - var settingHintURL = hostParams === null || hostParams === void 0 ? void 0 : (_hostParams$settingHi = hostParams.settingHintURL) === null || _hostParams$settingHi === void 0 ? void 0 : _hostParams$settingHi.settings; - var form = Form.useFormInstance(); - var updateGlobalState = useCallback(function (values) { - if (values === void 0) { - values = {}; - } + } +}) => { + var _hostParams$settingHi; - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { + const namePreffix = `question-${id}`; + const { + UIText, + hostParams + } = UIStore.useState(s => s); + const settingHintURL = hostParams === null || hostParams === void 0 ? void 0 : (_hostParams$settingHi = hostParams.settingHintURL) === null || _hostParams$settingHi === void 0 ? void 0 : _hostParams$settingHi.settings; + const form = Form.useFormInstance(); + const updateGlobalState = useCallback((values = {}) => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id) { - return _extends({}, q, { - hint: _extends({}, q === null || q === void 0 ? void 0 : q.hint, values) - }); + return { ...q, + hint: { ...(q === null || q === void 0 ? void 0 : q.hint), + ...values + } + }; } return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; }); }); }, [id, questionGroupId]); - var hintURLDropdownValue = useMemo(function () { - return settingHintURL && settingHintURL !== null && settingHintURL !== void 0 && settingHintURL.length ? settingHintURL.map(function (x) { - return { - label: x.name, - value: x.id - }; - }) : []; + const hintURLDropdownValue = useMemo(() => { + return settingHintURL && settingHintURL !== null && settingHintURL !== void 0 && settingHintURL.length ? settingHintURL.map(x => ({ + label: x.name, + value: x.id + })) : []; }, [settingHintURL]); - var hintPathDropdownValue = useMemo(function () { - var endpoint = hint === null || hint === void 0 ? void 0 : hint.endpoint; + const hintPathDropdownValue = useMemo(() => { + let endpoint = _hint === null || _hint === void 0 ? void 0 : _hint.endpoint; - if (hint !== null && hint !== void 0 && hint.endpoint && endpoint.includes(String(id))) { - endpoint = endpoint.replace("/" + String(id), ''); + if (_hint !== null && _hint !== void 0 && _hint.endpoint && endpoint.includes(String(id))) { + endpoint = endpoint.replace(`/${String(id)}`, ''); } - var findURL = settingHintURL.find(function (x) { - return x.id === (hint === null || hint === void 0 ? void 0 : hint.id) || x.endpoint === endpoint; - }); + const findURL = settingHintURL.find(x => x.id === (_hint === null || _hint === void 0 ? void 0 : _hint.id) || x.endpoint === endpoint); updateGlobalState({ id: findURL === null || findURL === void 0 ? void 0 : findURL.id }); return (findURL === null || findURL === void 0 ? void 0 : findURL.path) || []; - }, [settingHintURL, hint === null || hint === void 0 ? void 0 : hint.id, hint === null || hint === void 0 ? void 0 : hint.endpoint, id, updateGlobalState]); + }, [settingHintURL, _hint === null || _hint === void 0 ? void 0 : _hint.id, _hint === null || _hint === void 0 ? void 0 : _hint.endpoint, id, updateGlobalState]); - var handleChangeEndpoint = function handleChangeEndpoint(e) { - var _form$setFieldsValue; - - var findURL = settingHintURL.find(function (x) { - return x.id === e; + const handleChangeEndpoint = e => { + const findURL = settingHintURL.find(x => x.id === e); + form.setFieldsValue({ + [`${namePreffix}-hint_path`]: [] }); - form.setFieldsValue((_form$setFieldsValue = {}, _form$setFieldsValue[namePreffix + "-hint_path"] = [], _form$setFieldsValue)); updateGlobalState({ id: e, - endpoint: findURL !== null && findURL !== void 0 && findURL.endpoint ? findURL.endpoint + "/" + id : null, + endpoint: findURL !== null && findURL !== void 0 && findURL.endpoint ? `${findURL.endpoint}/${id}` : null, path: [] }); }; - var handleChangePath = function handleChangePath(val) { + const handleChangePath = val => { updateGlobalState({ path: val }); }; - var handleChangeStaticValue = function handleChangeStaticValue(e) { + const handleChangeStaticValue = e => { var _e$target; updateGlobalState({ id: null, - "static": e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value, + static: e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value, endpoint: null, path: [] }); }; - var handleChangeButtonText = function handleChangeButtonText(e) { + const handleChangeButtonText = e => { var _e$target2; updateGlobalState({ @@ -10105,7 +9891,7 @@ var QuestionHint = function QuestionHint(_ref) { className: styles['more-question-setting-text'] }, UIText.questionHintSettingText), /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputSelectHintEndpointLabel, - name: namePreffix + "-hint_endpoint" + name: `${namePreffix}-hint_endpoint` }, /*#__PURE__*/React__default.createElement(Row, { align: "middle", gutter: [24, 24] @@ -10117,21 +9903,19 @@ var QuestionHint = function QuestionHint(_ref) { className: styles['select-dropdown'], optionFilterProp: "label", options: hintURLDropdownValue, - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - }, + getPopupContainer: triggerNode => triggerNode.parentElement, onChange: handleChangeEndpoint, - value: hint === null || hint === void 0 ? void 0 : hint.id, - disabled: hint === null || hint === void 0 ? void 0 : hint["static"] + value: _hint === null || _hint === void 0 ? void 0 : _hint.id, + disabled: _hint === null || _hint === void 0 ? void 0 : _hint.static })), /*#__PURE__*/React__default.createElement(Col, { span: 14 }, /*#__PURE__*/React__default.createElement(Input, { - value: hint === null || hint === void 0 ? void 0 : hint.endpoint, + value: _hint === null || _hint === void 0 ? void 0 : _hint.endpoint, disabled: true })))), /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputSelectHintPathLabel, - name: namePreffix + "-hint_path", - initialValue: hint === null || hint === void 0 ? void 0 : hint.path + name: `${namePreffix}-hint_path`, + initialValue: _hint === null || _hint === void 0 ? void 0 : _hint.path }, /*#__PURE__*/React__default.createElement(Select, { showSearch: true, allowClear: true, @@ -10140,11 +9924,9 @@ var QuestionHint = function QuestionHint(_ref) { className: styles['select-dropdown'], optionFilterProp: "label", options: hintPathDropdownValue, - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - }, + getPopupContainer: triggerNode => triggerNode.parentElement, onChange: handleChangePath, - disabled: hint === null || hint === void 0 ? void 0 : hint["static"] + disabled: _hint === null || _hint === void 0 ? void 0 : _hint.static })), /*#__PURE__*/React__default.createElement(Row, { align: "middle", gutter: [24, 24] @@ -10152,72 +9934,62 @@ var QuestionHint = function QuestionHint(_ref) { span: 12 }, /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionStaticValueLabel, - name: namePreffix + "-hint_static_value", - initialValue: hint === null || hint === void 0 ? void 0 : hint["static"] + name: `${namePreffix}-hint_static_value`, + initialValue: _hint === null || _hint === void 0 ? void 0 : _hint.static }, /*#__PURE__*/React__default.createElement(Input, { onChange: handleChangeStaticValue, - disabled: hint === null || hint === void 0 ? void 0 : hint.endpoint + disabled: _hint === null || _hint === void 0 ? void 0 : _hint.endpoint }))), /*#__PURE__*/React__default.createElement(Col, { span: 12 }, /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionHintButtonTextLabel, - name: namePreffix + "-hint_button_text", - initialValue: hint === null || hint === void 0 ? void 0 : hint.buttonText + name: `${namePreffix}-hint_button_text`, + initialValue: _hint === null || _hint === void 0 ? void 0 : _hint.buttonText }, /*#__PURE__*/React__default.createElement(Input, { onChange: handleChangeButtonText }))))); }; -var QuestionSetting = function QuestionSetting(_ref) { - var question = _ref.question, - dependant = _ref.dependant; - var id = question.id, - name = question.name, - type = question.type, - variable = question.variable, - tooltip = question.tooltip, - required = question.required, - questionGroupId = question.questionGroupId, - meta = question.meta, - disableDelete = question.disableDelete; - var namePreffix = "question-" + id; - var form = Form.useFormInstance(); - var qType = Form.useWatch(namePreffix + "-type", form); - - var _UIStore$useState = UIStore.useState(function (s) { - return s; - }), - UIText = _UIStore$useState.UIText, - hostParams = _UIStore$useState.hostParams; - - var limitQuestionType = hostParams === null || hostParams === void 0 ? void 0 : hostParams.limitQuestionType; - var settingHintURL = hostParams === null || hostParams === void 0 ? void 0 : hostParams.settingHintURL; - var defaultQuestionParam = hostParams === null || hostParams === void 0 ? void 0 : hostParams.defaultQuestionParam; - var questionGroups = questionGroupFn.store.useState(function (s) { - return s.questionGroups; - }); - var disableMetaForGeo = useMemo(function () { - var metaGeoQuestionDefined = questionGroups.flatMap(function (qg) { - return qg.questions.filter(function (q) { - return q.type === questionType.geo && (q === null || q === void 0 ? void 0 : q.meta); - }); - }).map(function (q) { - return q.id; - }); +const QuestionSetting = ({ + question, + dependant +}) => { + const { + id, + name, + type, + variable, + tooltip, + required, + questionGroupId, + meta, + disableDelete + } = question; + const namePreffix = `question-${id}`; + const form = Form.useFormInstance(); + const qType = Form.useWatch(`${namePreffix}-type`, form); + const { + UIText, + hostParams + } = UIStore.useState(s => s); + const limitQuestionType = hostParams === null || hostParams === void 0 ? void 0 : hostParams.limitQuestionType; + const settingHintURL = hostParams === null || hostParams === void 0 ? void 0 : hostParams.settingHintURL; + const defaultQuestionParam = hostParams === null || hostParams === void 0 ? void 0 : hostParams.defaultQuestionParam; + const questionGroups = questionGroupFn.store.useState(s => s.questionGroups); + const disableMetaForGeo = useMemo(() => { + const metaGeoQuestionDefined = questionGroups.flatMap(qg => qg.questions.filter(q => q.type === questionType.geo && (q === null || q === void 0 ? void 0 : q.meta))).map(q => q.id); return type === questionType.geo && metaGeoQuestionDefined.length && !metaGeoQuestionDefined.includes(id); }, [questionGroups, type, id]); - var showMetaCheckbox = useMemo(function () { - var currentQuestionGroup = questionGroups.find(function (qg) { - return qg.id === questionGroupId; - }); + const showMetaCheckbox = useMemo(() => { + const currentQuestionGroup = questionGroups.find(qg => qg.id === questionGroupId); return ![questionType.tree, questionType.table].includes(type) && !(currentQuestionGroup !== null && currentQuestionGroup !== void 0 && currentQuestionGroup.repeatable); }, [type, questionGroups, questionGroupId]); - var questionTypeDropdownValue = useMemo(function () { + const questionTypeDropdownValue = useMemo(() => { if (limitQuestionType && limitQuestionType !== null && limitQuestionType !== void 0 && limitQuestionType.length) { return limitQuestionType; } - return Object.keys(questionType).map(function (key) { + return Object.keys(questionType).map(key => { var _questionType$key; return { @@ -10226,7 +9998,7 @@ var QuestionSetting = function QuestionSetting(_ref) { }; }); }, [limitQuestionType]); - var showHintSetting = useMemo(function () { + const showHintSetting = useMemo(() => { var _settingHintURL$setti, _settingHintURL$quest, _settingHintURL$setti2; if (!settingHintURL || !(settingHintURL !== null && settingHintURL !== void 0 && (_settingHintURL$setti = settingHintURL.settings) !== null && _settingHintURL$setti !== void 0 && _settingHintURL$setti.length)) { @@ -10239,35 +10011,33 @@ var QuestionSetting = function QuestionSetting(_ref) { return settingHintURL === null || settingHintURL === void 0 ? void 0 : (_settingHintURL$setti2 = settingHintURL.settings) === null || _settingHintURL$setti2 === void 0 ? void 0 : _settingHintURL$setti2.length; }, [settingHintURL, type]); - var updateState = useCallback(function (name, value) { - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { + const updateState = useCallback((name, value) => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id) { - var _extends2; - - return _extends({}, q, (_extends2 = {}, _extends2[name] = value, _extends2)); + return { ...q, + [name]: value + }; } return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; }); }); }, [id, questionGroupId]); - var defaultTypeValue = useMemo(function () { + const defaultTypeValue = useMemo(() => { if (questionTypeDropdownValue.length) { var _questionTypeDropdown; - var checkType = questionTypeDropdownValue.find(function (x) { - return x.value === type; - }); + const checkType = questionTypeDropdownValue.find(x => x.value === type); if (checkType) { return type; @@ -10278,10 +10048,8 @@ var QuestionSetting = function QuestionSetting(_ref) { return defaultQuestionParam.type; } - var checkText = questionTypeDropdownValue.find(function (x) { - return x.value === questionType.text; - }); - var defType = checkText ? checkText.value : questionTypeDropdownValue === null || questionTypeDropdownValue === void 0 ? void 0 : (_questionTypeDropdown = questionTypeDropdownValue[0]) === null || _questionTypeDropdown === void 0 ? void 0 : _questionTypeDropdown.value; + const checkText = questionTypeDropdownValue.find(x => x.value === questionType.text); + const defType = checkText ? checkText.value : questionTypeDropdownValue === null || questionTypeDropdownValue === void 0 ? void 0 : (_questionTypeDropdown = questionTypeDropdownValue[0]) === null || _questionTypeDropdown === void 0 ? void 0 : _questionTypeDropdown.value; updateState('type', defType); return defType; } @@ -10289,71 +10057,63 @@ var QuestionSetting = function QuestionSetting(_ref) { return type; }, [type, questionTypeDropdownValue, defaultQuestionParam, updateState]); - var handleChangeName = function handleChangeName(e) { + const handleChangeName = e => { var _e$target; updateState('name', e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value); }; - var handleChangeType = function handleChangeType(e) { + const handleChangeType = e => { updateState('type', e); }; - var handleChangeVariableName = function handleChangeVariableName(e) { + const handleChangeVariableName = e => { var _e$target2; updateState('variableName', e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.value); }; - var handleChangeTooltip = function handleChangeTooltip(e) { + const handleChangeTooltip = e => { var _e$target3; - var value = e === null || e === void 0 ? void 0 : (_e$target3 = e.target) === null || _e$target3 === void 0 ? void 0 : _e$target3.value; + const value = e === null || e === void 0 ? void 0 : (_e$target3 = e.target) === null || _e$target3 === void 0 ? void 0 : _e$target3.value; if (value) { - updateState('tooltip', _extends({}, tooltip, { + updateState('tooltip', { ...tooltip, text: value - })); + }); } else { updateState('tooltip', null); } }; - var handleChangeRequired = function handleChangeRequired(e) { + const handleChangeRequired = e => { var _e$target4; updateState('required', e === null || e === void 0 ? void 0 : (_e$target4 = e.target) === null || _e$target4 === void 0 ? void 0 : _e$target4.checked); }; - var handleChangeMeta = function handleChangeMeta(e) { + const handleChangeMeta = e => { var _e$target5; updateState('meta', e === null || e === void 0 ? void 0 : (_e$target5 = e.target) === null || _e$target5 === void 0 ? void 0 : _e$target5.checked); }; - var dependantGroup = map(groupBy(dependant.map(function (x) { - return { - name: x.questionGroup.order + "." + x.order + ". " + x.name, - group: x.questionGroup.order + ". " + x.questionGroup.name - }; - }), 'group'), function (i, g) { - return { - items: orderBy(i, 'name'), - group: g - }; - }); + const dependantGroup = map(groupBy(dependant.map(x => ({ + name: `${x.questionGroup.order}.${x.order}. ${x.name}`, + group: `${x.questionGroup.order}. ${x.questionGroup.name}` + })), 'group'), (i, g) => ({ + items: orderBy(i, 'name'), + group: g + })); return /*#__PURE__*/React__default.createElement("div", null, !!dependant.length && /*#__PURE__*/React__default.createElement(Alert, { message: /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("ul", { className: "arfe-dependant-list-box" - }, "Dependant Questions:", dependantGroup.map(function (d, di) { - return /*#__PURE__*/React__default.createElement("li", { - key: di - }, d.group, /*#__PURE__*/React__default.createElement("ul", null, d.items.map(function (i, ii) { - return /*#__PURE__*/React__default.createElement("li", { - key: ii - }, i.name); - }))); - }))), + }, "Dependant Questions:", dependantGroup.map((d, di) => /*#__PURE__*/React__default.createElement("li", { + key: di + }, d.group, /*#__PURE__*/React__default.createElement("ul", null, d.items.map((i, ii) => /*#__PURE__*/React__default.createElement("li", { + key: ii + }, i.name))))))), type: "info", style: { marginBottom: 24 @@ -10361,7 +10121,7 @@ var QuestionSetting = function QuestionSetting(_ref) { }), /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionNameLabel, initialValue: name, - name: namePreffix + "-name", + name: `${namePreffix}-name`, required: true }, /*#__PURE__*/React__default.createElement(Input, { onChange: handleChangeName, @@ -10369,29 +10129,27 @@ var QuestionSetting = function QuestionSetting(_ref) { })), /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionTypeLabel, initialValue: defaultTypeValue, - name: namePreffix + "-type", + name: `${namePreffix}-type`, required: true }, /*#__PURE__*/React__default.createElement(Select, { showSearch: true, optionFilterProp: "label", className: styles['select-dropdown'], options: questionTypeDropdownValue, - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - }, + getPopupContainer: triggerNode => triggerNode.parentElement, onChange: handleChangeType, disabled: dependant.length || disableDelete })), /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionVariableNameLabel, initialValue: variable, - name: namePreffix + "-variable" + name: `${namePreffix}-variable` }, /*#__PURE__*/React__default.createElement(Input, { onChange: handleChangeVariableName, allowClear: true })), /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionTooltipLabel, initialValue: tooltip === null || tooltip === void 0 ? void 0 : tooltip.text, - name: namePreffix + "-tooltip" + name: `${namePreffix}-tooltip` }, /*#__PURE__*/React__default.createElement(Input.TextArea, { onChange: handleChangeTooltip, allowClear: true, @@ -10400,13 +10158,13 @@ var QuestionSetting = function QuestionSetting(_ref) { gutter: [24, 24], align: "middle" }, /*#__PURE__*/React__default.createElement(Col, null, /*#__PURE__*/React__default.createElement(Form.Item, { - name: namePreffix + "-required", + name: `${namePreffix}-required`, className: styles['input-checkbox-wrapper'] }, /*#__PURE__*/React__default.createElement(Checkbox, { onChange: handleChangeRequired, checked: required }, ' ', UIText.inputQuestionRequiredCheckbox))), showMetaCheckbox && /*#__PURE__*/React__default.createElement(Col, null, /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Form.Item, { - name: namePreffix + "-meta", + name: `${namePreffix}-meta`, className: styles['input-checkbox-wrapper'] }, /*#__PURE__*/React__default.createElement(Checkbox, { onChange: handleChangeMeta, @@ -10420,10 +10178,10 @@ var QuestionSetting = function QuestionSetting(_ref) { cursor: 'pointer', marginLeft: '-4px' } - })))))), showHintSetting && /*#__PURE__*/React__default.createElement(QuestionHint, question), qType === questionType.input && /*#__PURE__*/React__default.createElement(SettingInput, question), qType === questionType.number && /*#__PURE__*/React__default.createElement(SettingNumber, question), [questionType.option, questionType.multiple_option].includes(qType) && /*#__PURE__*/React__default.createElement(SettingOption, question), qType === questionType.tree && /*#__PURE__*/React__default.createElement(SettingTree, question), qType === questionType.cascade && /*#__PURE__*/React__default.createElement(SettingCascade, question), qType === questionType.date && /*#__PURE__*/React__default.createElement(SettingDate, question), qType === questionType.table && /*#__PURE__*/React__default.createElement(SettingTable, question)); + })))))), showHintSetting && /*#__PURE__*/React__default.createElement(QuestionHint, question), qType === questionType.input && /*#__PURE__*/React__default.createElement(SettingInput, question), qType === questionType.number && /*#__PURE__*/React__default.createElement(SettingNumber, question), [questionType.option, questionType.multiple_option].includes(qType) && /*#__PURE__*/React__default.createElement(SettingOption, question), qType === questionType.tree && /*#__PURE__*/React__default.createElement(SettingTree, question), qType === questionType.cascade && /*#__PURE__*/React__default.createElement(SettingCascade, question), qType === questionType.date && /*#__PURE__*/React__default.createElement(SettingDate, question), qType === questionType.table && /*#__PURE__*/React__default.createElement(SettingTable, question), qType === questionType.image && /*#__PURE__*/React__default.createElement(SettingImage, question)); }; -var dependencyTypes = [{ +const dependencyTypes = [{ type: [questionType.option, questionType.multiple_option], logicDropdowns: [{ label: 'contains', @@ -10452,7 +10210,7 @@ var dependencyTypes = [{ }] }]; -var defaultSkipLogic = function defaultSkipLogic() { +const defaultSkipLogic = () => { return [{ id: generateId(), dependentTo: null, @@ -10464,53 +10222,39 @@ var defaultSkipLogic = function defaultSkipLogic() { }]; }; -var fetchDependencyLogicDropdown = function fetchDependencyLogicDropdown(question) { +const fetchDependencyLogicDropdown = question => { var _dependencyTypes$find; - var value = (_dependencyTypes$find = dependencyTypes.find(function (dt) { - return dt.type.includes(question.type); - })) === null || _dependencyTypes$find === void 0 ? void 0 : _dependencyTypes$find.logicDropdowns; + const value = (_dependencyTypes$find = dependencyTypes.find(dt => dt.type.includes(question.type))) === null || _dependencyTypes$find === void 0 ? void 0 : _dependencyTypes$find.logicDropdowns; return value || []; }; -var fetchDependencyAnswerDropdown = function fetchDependencyAnswerDropdown(question) { +const fetchDependencyAnswerDropdown = question => { if (question !== null && question !== void 0 && question.options) { - return question.options.map(function (opt) { - return { - label: opt.name, - value: opt.name - }; - }); + return question.options.map(opt => ({ + label: opt.name, + value: opt.name + })); } return []; }; -var transformDependencyValue = function transformDependencyValue(dependency, questionGroups) { - var questions = questionGroups.flatMap(function (qg) { - return qg.questions; - }); - var logicDropdowns = dependencyTypes.flatMap(function (d) { - return d.logicDropdowns; - }).map(function (x) { - return x.value; - }); - var value = dependency.map(function (d) { +const transformDependencyValue = (dependency, questionGroups) => { + const questions = questionGroups.flatMap(qg => qg.questions); + const logicDropdowns = dependencyTypes.flatMap(d => d.logicDropdowns).map(x => x.value); + const value = dependency.map(d => { var _logicDropdowns$map$f; - var dependentLogic = null; - var dependentAnswer = (_logicDropdowns$map$f = logicDropdowns.map(function (lg) { + let dependentLogic = null; + const dependentAnswer = (_logicDropdowns$map$f = logicDropdowns.map(lg => { if (d !== null && d !== void 0 && d[lg]) { dependentLogic = lg; } return d === null || d === void 0 ? void 0 : d[lg]; - }).filter(function (x) { - return x; - })) === null || _logicDropdowns$map$f === void 0 ? void 0 : _logicDropdowns$map$f[0]; - var findQ = questions.find(function (q) { - return q.id === d.id; - }); + }).filter(x => x)) === null || _logicDropdowns$map$f === void 0 ? void 0 : _logicDropdowns$map$f[0]; + const findQ = questions.find(q => q.id === d.id); return { id: generateId(), dependentTo: d.id, @@ -10524,43 +10268,37 @@ var transformDependencyValue = function transformDependencyValue(dependency, que return value; }; -var SettingSkipLogic = function SettingSkipLogic(_ref) { - var question = _ref.question, - questions = _ref.questions, - dependency = _ref.dependency, - dependencies = _ref.dependencies, - setDependencies = _ref.setDependencies, - dependentToQuestions = _ref.dependentToQuestions; - var id = question.id, - questionGroupId = question.questionGroupId, - savedDependency = question.dependency; - var namePreffix = "question-" + id; - var UIText = UIStore.useState(function (s) { - return s.UIText; - }); - var form = Form.useFormInstance(); - var updateGlobalStore = useCallback(function (dependencyValue, isDelete) { - if (isDelete === void 0) { - isDelete = false; - } - - var transformDependencies = dependencyValue.map(function (dp) { - var _ref2; - - return _ref2 = { - id: dp.dependentTo - }, _ref2[dp.dependentLogic] = dp.dependentAnswer, _ref2; - }).filter(function (d) { - return d.id; - }); - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { +const SettingSkipLogic = ({ + question, + questions, + dependency, + dependencies, + setDependencies, + dependentToQuestions +}) => { + const { + id, + questionGroupId, + dependency: savedDependency + } = question; + const namePreffix = `question-${id}`; + const UIText = UIStore.useState(s => s.UIText); + const form = Form.useFormInstance(); + const updateGlobalStore = useCallback((dependencyValue, isDelete = false) => { + const transformDependencies = dependencyValue.map(dp => { + return { + id: dp.dependentTo, + [dp.dependentLogic]: dp.dependentAnswer + }; + }).filter(d => d.id); + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var _questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id && !isDelete) { - return _extends({}, q, { + return { ...q, dependency: transformDependencies - }); + }; } if (q.id === id && !isDelete && !transformDependencies.length) { @@ -10569,9 +10307,9 @@ var SettingSkipLogic = function SettingSkipLogic(_ref) { } if (q.id === id && isDelete && transformDependencies.length) { - return _extends({}, q, { + return { ...q, dependency: transformDependencies - }); + }; } if (q.id === id && isDelete && !transformDependencies.length) { @@ -10581,18 +10319,17 @@ var SettingSkipLogic = function SettingSkipLogic(_ref) { return q; }); - - return _extends({}, qg, { - questions: _questions - }); + return { ...qg, + questions: questions + }; } return qg; }); }); }, [id, questionGroupId]); - useEffect(function () { - var checkDependencies = dependencies.filter(function (dp) { + useEffect(() => { + const checkDependencies = dependencies.filter(dp => { if (dp.dependentTo && dp.dependentLogic && Array.isArray(dp.dependentAnswer) && dp.dependentAnswer.length) { return dp; } @@ -10606,63 +10343,49 @@ var SettingSkipLogic = function SettingSkipLogic(_ref) { updateGlobalStore(checkDependencies); } }, [dependencies, id, questionGroupId, updateGlobalStore]); - var updateLocalState = useCallback(function (dependencyId, values) { - if (values === void 0) { - values = {}; - } - - var updatedDependencies = dependencies.map(function (d) { + const updateLocalState = useCallback((dependencyId, values = {}) => { + const updatedDependencies = dependencies.map(d => { if (d.id === dependencyId) { - return _extends({}, d, values); + return { ...d, + ...values + }; } return d; - }).filter(function (d) { - return dependencyTypes.flatMap(function (dt) { - return dt.type; - }).includes(d.dependentToType); - }); + }).filter(d => dependencyTypes.flatMap(dt => dt.type).includes(d.dependentToType)); setDependencies(updatedDependencies); }, [dependencies, setDependencies]); - useEffect(function () { - setTimeout(function () { - var checkChangedType = dependencies.map(function (d) { - var findQ = questions.find(function (q) { - return q.id === d.dependentTo; - }); + useEffect(() => { + setTimeout(() => { + const checkChangedType = dependencies.map(d => { + const findQ = questions.find(q => q.id === d.dependentTo); if (findQ !== null && findQ !== void 0 && findQ.id && findQ.type !== d.dependentToType) { return findQ; } return false; - }).filter(function (x) { - return x; - }); + }).filter(x => x); if (dependencies.length && checkChangedType.length) { - checkChangedType.forEach(function (q) { - var _form$setFieldsValue; - - var updatedDependency = dependencies.find(function (d) { - return d.dependentTo === q.id; - }); - updateLocalState(updatedDependency.id, _extends({}, updatedDependency, { + checkChangedType.forEach(q => { + const updatedDependency = dependencies.find(d => d.dependentTo === q.id); + updateLocalState(updatedDependency.id, { ...updatedDependency, dependentToType: q.type, dependencyLogicDropdownValue: fetchDependencyLogicDropdown(q), dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(q) - })); - form.setFieldsValue((_form$setFieldsValue = {}, _form$setFieldsValue[namePreffix + "-dependent_logic-" + updatedDependency.id] = null, _form$setFieldsValue)); + }); + form.setFieldsValue({ + [`${namePreffix}-dependent_logic-${updatedDependency.id}`]: null + }); }); } }, 500); }, [dependencies, questions, form, namePreffix, updateLocalState]); - var handleChangeDependentTo = function handleChangeDependentTo(dependencyId, e) { - var question = questions.find(function (q) { - return q.id === e; - }); - var values = { + const handleChangeDependentTo = (dependencyId, e) => { + const question = questions.find(q => q.id === e); + const values = { dependentTo: e, dependentToType: question.type, dependencyLogicDropdownValue: fetchDependencyLogicDropdown(question), @@ -10671,21 +10394,19 @@ var SettingSkipLogic = function SettingSkipLogic(_ref) { updateLocalState(dependencyId, values); }; - var handleChangeDependentLogic = function handleChangeDependentLogic(dependencyId, e) { + const handleChangeDependentLogic = (dependencyId, e) => { updateLocalState(dependencyId, { dependentLogic: e }); }; - var handleChangeDependentAnswer = function handleChangeDependentAnswer(dependencyId, val) { + const handleChangeDependentAnswer = (dependencyId, val) => { updateLocalState(dependencyId, { dependentAnswer: val }); if (savedDependency !== null && savedDependency !== void 0 && savedDependency.length) { - var updatedDependencies = savedDependency.filter(function (d) { - return d.id !== dependencyId; - }); + const updatedDependencies = savedDependency.filter(d => d.id !== dependencyId); if (Array.isArray(val) && !val.length) { updateGlobalStore(updatedDependencies, true); @@ -10699,18 +10420,16 @@ var SettingSkipLogic = function SettingSkipLogic(_ref) { } }; - var handleAddMoreDependency = function handleAddMoreDependency() { - var newDependencies = [].concat(dependencies, defaultSkipLogic()); + const handleAddMoreDependency = () => { + const newDependencies = [...dependencies, ...defaultSkipLogic()]; setDependencies(newDependencies); }; - var handleDeleteDependentTo = function handleDeleteDependentTo(dependencyId) { - var _form$setFieldsValue2; - - form.setFieldsValue((_form$setFieldsValue2 = {}, _form$setFieldsValue2[namePreffix + "-dependent_logic-" + dependencyId] = null, _form$setFieldsValue2)); - var updatedDependencies = dependencies.filter(function (dependency) { - return dependency.id !== dependencyId; + const handleDeleteDependentTo = dependencyId => { + form.setFieldsValue({ + [`${namePreffix}-dependent_logic-${dependencyId}`]: null }); + const updatedDependencies = dependencies.filter(dependency => dependency.id !== dependencyId); if (updatedDependencies.length) { setDependencies(updatedDependencies); @@ -10720,22 +10439,18 @@ var SettingSkipLogic = function SettingSkipLogic(_ref) { } }; - var dropdown = map(groupBy(dependentToQuestions, 'group'), function (i, l) { - return { - label: l, - item: i - }; - }).map(function (g, gi) { - return _extends({}, g, { - key: gi - }); - }); + const dropdown = map(groupBy(dependentToQuestions, 'group'), (i, l) => ({ + label: l, + item: i + })).map((g, gi) => ({ ...g, + key: gi + })); return /*#__PURE__*/React__default.createElement(Col, { - key: "dependency-" + id + "-" + dependency.id, + key: `dependency-${id}-${dependency.id}`, span: 24 }, /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionDependentToLabel, - name: namePreffix + "-dependent_to-" + dependency.id + name: `${namePreffix}-dependent_to-${dependency.id}` }, /*#__PURE__*/React__default.createElement(Row, { align: "middle", justify: "space-between", @@ -10745,28 +10460,18 @@ var SettingSkipLogic = function SettingSkipLogic(_ref) { }, /*#__PURE__*/React__default.createElement(Select, { showSearch: true, className: styles['select-dropdown'], - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - }, - onChange: function onChange(e) { - return handleChangeDependentTo(dependency.id, e); - }, + getPopupContainer: triggerNode => triggerNode.parentElement, + onChange: e => handleChangeDependentTo(dependency.id, e), value: dependency.dependentTo || [], optionFilterProp: "children" - }, dropdown.map(function (g) { - return /*#__PURE__*/React__default.createElement(Select.OptGroup, { - key: g.key, - label: g.label - }, g.item.map(function (dq) { - return /*#__PURE__*/React__default.createElement(Select.Option, { - key: dq.value + "-dq", - value: dq.value, - disabled: dependencies.map(function (d) { - return d.dependentTo; - }).includes(dq.value) - }, dq.label); - })); - }))), /*#__PURE__*/React__default.createElement(Col, { + }, dropdown.map(g => /*#__PURE__*/React__default.createElement(Select.OptGroup, { + key: g.key, + label: g.label + }, g.item.map(dq => /*#__PURE__*/React__default.createElement(Select.Option, { + key: `${dq.value}-dq`, + value: dq.value, + disabled: dependencies.map(d => d.dependentTo).includes(dq.value) + }, dq.label)))))), /*#__PURE__*/React__default.createElement(Col, { span: 2, align: "end" }, /*#__PURE__*/React__default.createElement(Space, null, /*#__PURE__*/React__default.createElement(ButtonWithIcon, { @@ -10776,9 +10481,7 @@ var SettingSkipLogic = function SettingSkipLogic(_ref) { }), /*#__PURE__*/React__default.createElement(ButtonWithIcon, { type: "delete-button", disabled: !dependency.dependentTo, - onClick: function onClick() { - return handleDeleteDependentTo(dependency.id); - } + onClick: () => handleDeleteDependentTo(dependency.id) }))))), /*#__PURE__*/React__default.createElement(Row, { align: "middle", justify: "space-between", @@ -10788,21 +10491,17 @@ var SettingSkipLogic = function SettingSkipLogic(_ref) { }, /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionDependentLogicLabel, initialValue: dependency.dependentLogic || [], - name: namePreffix + "-dependent_logic-" + dependency.id + name: `${namePreffix}-dependent_logic-${dependency.id}` }, /*#__PURE__*/React__default.createElement(Select, { className: styles['select-dropdown'], options: dependency.dependencyLogicDropdownValue, - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - }, - onChange: function onChange(e) { - return handleChangeDependentLogic(dependency.id, e); - } + getPopupContainer: triggerNode => triggerNode.parentElement, + onChange: e => handleChangeDependentLogic(dependency.id, e) }))), /*#__PURE__*/React__default.createElement(Col, { span: 16 }, /*#__PURE__*/React__default.createElement(Form.Item, { label: UIText.inputQuestionDependentAnswerLabel, - name: namePreffix + "-dependent_answer-" + dependency.id + name: `${namePreffix}-dependent_answer-${dependency.id}` }, !dependency.dependentTo && /*#__PURE__*/React__default.createElement(Input, { disabled: true }), dependency.dependentToType === questionType.number && /*#__PURE__*/React__default.createElement(InputNumber, { @@ -10811,19 +10510,13 @@ var SettingSkipLogic = function SettingSkipLogic(_ref) { }, controls: false, keyboard: false, - onChange: function onChange(e) { - return handleChangeDependentAnswer(dependency.id, e); - }, + onChange: e => handleChangeDependentAnswer(dependency.id, e), value: dependency.dependentAnswer || null }), [questionType.option, questionType.multiple_option].includes(dependency.dependentToType) && /*#__PURE__*/React__default.createElement(Select, { className: styles['select-dropdown'], options: dependency.dependencyAnswerDropdownValue, - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - }, - onChange: function onChange(e) { - return handleChangeDependentAnswer(dependency.id, e); - }, + getPopupContainer: triggerNode => triggerNode.parentElement, + onChange: e => handleChangeDependentAnswer(dependency.id, e), mode: "multiple", showSearch: true, allowClear: true, @@ -10833,60 +10526,39 @@ var SettingSkipLogic = function SettingSkipLogic(_ref) { style: { width: '100%' }, - onChange: function onChange(e) { - return handleChangeDependentAnswer(dependency.id, moment(e).format('YYYY-MM-DD')); - } + onChange: e => handleChangeDependentAnswer(dependency.id, moment(e).format('YYYY-MM-DD')) }))))); }; -var QuestionSkipLogic = function QuestionSkipLogic(_ref3) { +const QuestionSkipLogic = ({ + question +}) => { var _dependencies$; - var question = _ref3.question; - var id = question.id, - questionGroupId = question.questionGroupId, - dependency = question.dependency, - currentQuestionOrder = question.order; - var UIText = UIStore.useState(function (s) { - return s.UIText; - }); - var questionGroups = questionGroupFn.store.useState(function (s) { - return s.questionGroups; - }); - - var _useState = useState(dependency !== null && dependency !== void 0 && dependency.length ? transformDependencyValue(dependency, questionGroups) : defaultSkipLogic()), - dependencies = _useState[0], - setDependencies = _useState[1]; - - var currentQuestionGroupOrder = useMemo(function () { + const { + id, + questionGroupId, + dependency, + order: currentQuestionOrder + } = question; + const UIText = UIStore.useState(s => s.UIText); + const questionGroups = questionGroupFn.store.useState(s => s.questionGroups); + const [dependencies, setDependencies] = useState(dependency !== null && dependency !== void 0 && dependency.length ? transformDependencyValue(dependency, questionGroups) : defaultSkipLogic()); + const currentQuestionGroupOrder = useMemo(() => { var _questionGroups$find; - return (_questionGroups$find = questionGroups.find(function (qg) { - return qg.id === questionGroupId; - })) === null || _questionGroups$find === void 0 ? void 0 : _questionGroups$find.order; + return (_questionGroups$find = questionGroups.find(qg => qg.id === questionGroupId)) === null || _questionGroups$find === void 0 ? void 0 : _questionGroups$find.order; }, [questionGroups, questionGroupId]); - var questions = useMemo(function () { - return questionGroups.filter(function (qg) { - return qg.order <= currentQuestionGroupOrder; - }).flatMap(function (qg) { - return qg.questions; - }).filter(function (q) { - return q.questionGroupId === questionGroupId && q.order < currentQuestionOrder || q.questionGroupId !== questionGroupId; - }); + const questions = useMemo(() => { + return questionGroups.filter(qg => qg.order <= currentQuestionGroupOrder).flatMap(qg => qg.questions).filter(q => q.questionGroupId === questionGroupId && q.order < currentQuestionOrder || q.questionGroupId !== questionGroupId); }, [questionGroups, currentQuestionGroupOrder, currentQuestionOrder, questionGroupId]); - var dependentToQuestions = useMemo(function () { - return questions.filter(function (q) { - return dependencyTypes.flatMap(function (dt) { - return dt.type; - }).includes(q.type); - }).map(function (q) { - var group = questionGroups.find(function (g) { - return g.id === q.questionGroupId; - }); + const dependentToQuestions = useMemo(() => { + return questions.filter(q => dependencyTypes.flatMap(dt => dt.type).includes(q.type)).map(q => { + const group = questionGroups.find(g => g.id === q.questionGroupId); return { - label: group.order + "." + q.order + ". " + q.name, + label: `${group.order}.${q.order}. ${q.name}`, value: q.id, - group: group.order + ". " + group.name + group: `${group.order}. ${group.name}` }; }); }, [questions, questionGroups]); @@ -10904,95 +10576,81 @@ var QuestionSkipLogic = function QuestionSkipLogic(_ref3) { return /*#__PURE__*/React__default.createElement(Row, { gutter: [24, 24] - }, dependencies === null || dependencies === void 0 ? void 0 : dependencies.map(function (dependency, di) { - return /*#__PURE__*/React__default.createElement(SettingSkipLogic, { - key: "dependency-" + id + "-" + di, - dependency: dependency, - question: question, - questions: questions, - dependencies: dependencies, - setDependencies: setDependencies, - dependentToQuestions: dependentToQuestions - }); - })); + }, dependencies === null || dependencies === void 0 ? void 0 : dependencies.map((dependency, di) => /*#__PURE__*/React__default.createElement(SettingSkipLogic, { + key: `dependency-${id}-${di}`, + dependency: dependency, + question: question, + questions: questions, + dependencies: dependencies, + setDependencies: setDependencies, + dependentToQuestions: dependentToQuestions + }))); }; -var QuestionCustomParams = function QuestionCustomParams(_ref) { +const QuestionCustomParams = ({ + question +}) => { var _customParams$params2; - var question = _ref.question; - var id = question.id, - questionGroupId = question.questionGroupId; - var namePreffix = "question-" + id; - var hostParams = UIStore.useState(function (s) { - return s.hostParams; - }); - var customParams = hostParams === null || hostParams === void 0 ? void 0 : hostParams.customParams; - - var _useState = useState(true), - initLoad = _useState[0], - setInitLoad = _useState[1]; - - var _useState2 = useState({}), - paramValue = _useState2[0], - setParamValue = _useState2[1]; - - useEffect(function () { + const { + id, + questionGroupId + } = question; + const namePreffix = `question-${id}`; + const hostParams = UIStore.useState(s => s.hostParams); + const customParams = hostParams === null || hostParams === void 0 ? void 0 : hostParams.customParams; + const [initLoad, setInitLoad] = useState(true); + const [paramValue, setParamValue] = useState({}); + useEffect(() => { if (initLoad) { var _customParams$params; - var customParamObj = customParams === null || customParams === void 0 ? void 0 : (_customParams$params = customParams.params) === null || _customParams$params === void 0 ? void 0 : _customParams$params.map(function (cp) { - var findValue = question === null || question === void 0 ? void 0 : question[cp.name]; + const customParamObj = customParams === null || customParams === void 0 ? void 0 : (_customParams$params = customParams.params) === null || _customParams$params === void 0 ? void 0 : _customParams$params.map(cp => { + let findValue = question === null || question === void 0 ? void 0 : question[cp.name]; if (Array.isArray(findValue) && cp.type === 'input') { findValue = findValue[0]; } if (findValue) { - var _ref2; - - return _ref2 = {}, _ref2[cp.name] = findValue, _ref2; + return { + [cp.name]: findValue + }; } return false; - }).filter(function (x) { - return x; - }); + }).filter(x => x); if (customParamObj.length) { - setParamValue(customParamObj.reduce(function (res, curr) { - return _extends({}, res, curr); - })); + setParamValue(customParamObj.reduce((res, curr) => ({ ...res, + ...curr + }))); } setInitLoad(false); } }, [customParams, question, initLoad]); - var updateGlobalStore = useCallback(function (objKey, value, isDelete) { - if (isDelete === void 0) { - isDelete = false; - } - - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { + const updateGlobalStore = useCallback((objKey, value, isDelete = false) => { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - var questions = qg.questions.map(function (q) { + const questions = qg.questions.map(q => { if (q.id === id) { - var _extends2; - if (isDelete && q !== null && q !== void 0 && q[objKey]) { delete q[objKey]; return q; } - return _extends({}, q, (_extends2 = {}, _extends2[objKey] = value, _extends2)); + return { ...q, + [objKey]: value + }; } return q; }); - return _extends({}, qg, { + return { ...qg, questions: questions - }); + }; } return qg; @@ -11000,17 +10658,17 @@ var QuestionCustomParams = function QuestionCustomParams(_ref) { }); }, [id, questionGroupId]); - var handleChangeParameterValue = function handleChangeParameterValue(objKey, val) { - var _extends3; - - setParamValue(_extends({}, paramValue, (_extends3 = {}, _extends3[objKey] = val, _extends3))); - var isDelete = !val || !(val !== null && val !== void 0 && val.length); - var value = Array.isArray(val) ? val : [val]; + const handleChangeParameterValue = (objKey, val) => { + setParamValue({ ...paramValue, + [objKey]: val + }); + const isDelete = !val || !(val !== null && val !== void 0 && val.length); + const value = Array.isArray(val) ? val : [val]; updateGlobalStore(objKey, value, isDelete); }; - return customParams === null || customParams === void 0 ? void 0 : (_customParams$params2 = customParams.params) === null || _customParams$params2 === void 0 ? void 0 : _customParams$params2.map(function (cp, cpi) { - var multipleProps = {}; + return customParams === null || customParams === void 0 ? void 0 : (_customParams$params2 = customParams.params) === null || _customParams$params2 === void 0 ? void 0 : _customParams$params2.map((cp, cpi) => { + let multipleProps = {}; if (cp !== null && cp !== void 0 && cp.multiple) { multipleProps = { @@ -11020,25 +10678,21 @@ var QuestionCustomParams = function QuestionCustomParams(_ref) { } return /*#__PURE__*/React__default.createElement("div", { - key: cp.name + "-" + cpi + key: `${cp.name}-${cpi}` }, /*#__PURE__*/React__default.createElement(Form.Item, { label: cp.label, - name: namePreffix + "-" + cp.name - }, cp.type === 'option' && /*#__PURE__*/React__default.createElement(Select, _extends({ + name: `${namePreffix}-${cp.name}` + }, cp.type === 'option' && /*#__PURE__*/React__default.createElement(Select, Object.assign({ showSearch: true, allowClear: true, className: styles['select-dropdown'], options: (cp === null || cp === void 0 ? void 0 : cp.options) || [], optionFilterProp: "label", - onChange: function onChange(val) { - return handleChangeParameterValue(cp.name, val); - }, - getPopupContainer: function getPopupContainer(triggerNode) { - return triggerNode.parentElement; - }, + onChange: val => handleChangeParameterValue(cp.name, val), + getPopupContainer: triggerNode => triggerNode.parentElement, value: (paramValue === null || paramValue === void 0 ? void 0 : paramValue[cp.name]) || [] }, multipleProps)), cp.type === 'input' && /*#__PURE__*/React__default.createElement(Input, { - onChange: function onChange(e) { + onChange: e => { var _e$target; return handleChangeParameterValue(cp.name, e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value); @@ -11049,108 +10703,79 @@ var QuestionCustomParams = function QuestionCustomParams(_ref) { }); }; -var QuestionDefinition = function QuestionDefinition(_ref) { +const QuestionDefinition = ({ + index, + question, + questionGroup, + isLastItem +}) => { var _customParams$params; - var index = _ref.index, - question = _ref.question, - questionGroup = _ref.questionGroup, - isLastItem = _ref.isLastItem; - var questionGroups = questionGroupFn.store.useState(function (s) { - return s.questionGroups; - }); - var questions = questionGroup === null || questionGroup === void 0 ? void 0 : questionGroup.questions; - - var _UIStore$useState = UIStore.useState(function (s) { - return s; - }), - UIText = _UIStore$useState.UIText, - hostParams = _UIStore$useState.hostParams, - activeEditQuestions = _UIStore$useState.activeEditQuestions; - - var movingQ = UIStore.useState(function (s) { - return s.activeMoveQuestion; - }); - var isCopying = UIStore.useState(function (s) { - return s.isCopyingQuestion; - }); - - var _useState = useState('setting'), - activeTab = _useState[0], - setActiveTab = _useState[1]; - - var _useState2 = useState(false), - isModalOpen = _useState2[0], - setIsModalOpen = _useState2[1]; - - var id = question.id, - questionGroupId = question.questionGroupId, - order = question.order, - name = question.name, - dependency = question.dependency, - disableDelete = question.disableDelete; - var defaultQuestionParam = hostParams === null || hostParams === void 0 ? void 0 : hostParams.defaultQuestionParam; - var customParams = hostParams === null || hostParams === void 0 ? void 0 : hostParams.customParams; - var enableCustomParams = customParams && (customParams === null || customParams === void 0 ? void 0 : customParams.label) && (customParams === null || customParams === void 0 ? void 0 : (_customParams$params = customParams.params) === null || _customParams$params === void 0 ? void 0 : _customParams$params.length); - var allQuestions = questionGroups.map(function (qg) { - return qg.questions; - }).flatMap(function (x) { - return x; - }).map(function (q) { - return _extends({}, q, { - questionGroup: questionGroups.find(function (qg) { - return q.questionGroupId === qg.id; - }) - }); - }); - var dependant = useMemo(function () { + const questionGroups = questionGroupFn.store.useState(s => s.questionGroups); + const questions = questionGroup === null || questionGroup === void 0 ? void 0 : questionGroup.questions; + const { + UIText, + hostParams, + activeEditQuestions + } = UIStore.useState(s => s); + const movingQ = UIStore.useState(s => s.activeMoveQuestion); + const isCopying = UIStore.useState(s => s.isCopyingQuestion); + const [activeTab, setActiveTab] = useState('setting'); + const [isModalOpen, setIsModalOpen] = useState(false); + const { + id, + questionGroupId, + order, + name, + dependency, + disableDelete + } = question; + const defaultQuestionParam = hostParams === null || hostParams === void 0 ? void 0 : hostParams.defaultQuestionParam; + const customParams = hostParams === null || hostParams === void 0 ? void 0 : hostParams.customParams; + const enableCustomParams = customParams && (customParams === null || customParams === void 0 ? void 0 : customParams.label) && (customParams === null || customParams === void 0 ? void 0 : (_customParams$params = customParams.params) === null || _customParams$params === void 0 ? void 0 : _customParams$params.length); + const allQuestions = questionGroups.map(qg => qg.questions).flatMap(x => x).map(q => ({ ...q, + questionGroup: questionGroups.find(qg => q.questionGroupId === qg.id) + })); + const dependant = useMemo(() => { var _movingQ$dependency, _movingQDependency$qu, _movingQDependant$que; - var dependant = allQuestions.filter(function (q) { + const dependant = allQuestions.filter(q => { var _q$dependency; - return (q === null || q === void 0 ? void 0 : (_q$dependency = q.dependency) === null || _q$dependency === void 0 ? void 0 : _q$dependency.filter(function (d) { - return d.id === id; - }).length) || false; + return (q === null || q === void 0 ? void 0 : (_q$dependency = q.dependency) === null || _q$dependency === void 0 ? void 0 : _q$dependency.filter(d => d.id === id).length) || false; }); - var disabled = { + let disabled = { current: false, last: false }; - var movingQDependency = maxBy(movingQ === null || movingQ === void 0 ? void 0 : (_movingQ$dependency = movingQ.dependency) === null || _movingQ$dependency === void 0 ? void 0 : _movingQ$dependency.map(function (q) { - return allQuestions.find(function (a) { - return a.id === q.id; - }); - }), 'questionGroup.order'); + const movingQDependency = maxBy(movingQ === null || movingQ === void 0 ? void 0 : (_movingQ$dependency = movingQ.dependency) === null || _movingQ$dependency === void 0 ? void 0 : _movingQ$dependency.map(q => allQuestions.find(a => a.id === q.id)), 'questionGroup.order'); if ((movingQDependency === null || movingQDependency === void 0 ? void 0 : (_movingQDependency$qu = movingQDependency.questionGroup) === null || _movingQDependency$qu === void 0 ? void 0 : _movingQDependency$qu.order) >= (questionGroup === null || questionGroup === void 0 ? void 0 : questionGroup.order)) { var _movingQDependency$qu2, _movingQDependency$qu3; - disabled = _extends({}, disabled, { + disabled = { ...disabled, current: (movingQDependency === null || movingQDependency === void 0 ? void 0 : (_movingQDependency$qu2 = movingQDependency.questionGroup) === null || _movingQDependency$qu2 === void 0 ? void 0 : _movingQDependency$qu2.order) === questionGroup.order ? movingQDependency.order >= order : true - }); - disabled = _extends({}, disabled, { + }; + disabled = { ...disabled, last: (movingQDependency === null || movingQDependency === void 0 ? void 0 : (_movingQDependency$qu3 = movingQDependency.questionGroup) === null || _movingQDependency$qu3 === void 0 ? void 0 : _movingQDependency$qu3.order) === questionGroup.order ? movingQDependency.order >= order + 1 : true - }); + }; } - var movingQDependant = minBy(allQuestions.filter(function (q) { + const movingQDependant = minBy(allQuestions.filter(q => { var _q$dependency2; - return (q === null || q === void 0 ? void 0 : (_q$dependency2 = q.dependency) === null || _q$dependency2 === void 0 ? void 0 : _q$dependency2.filter(function (d) { - return d.id === (movingQ === null || movingQ === void 0 ? void 0 : movingQ.id); - }).length) || false; + return (q === null || q === void 0 ? void 0 : (_q$dependency2 = q.dependency) === null || _q$dependency2 === void 0 ? void 0 : _q$dependency2.filter(d => d.id === (movingQ === null || movingQ === void 0 ? void 0 : movingQ.id)).length) || false; }), 'questionGroup.order'); if ((movingQDependant === null || movingQDependant === void 0 ? void 0 : (_movingQDependant$que = movingQDependant.questionGroup) === null || _movingQDependant$que === void 0 ? void 0 : _movingQDependant$que.order) <= (questionGroup === null || questionGroup === void 0 ? void 0 : questionGroup.order)) { var _movingQDependant$que2, _movingQDependant$que3; - disabled = _extends({}, disabled, { + disabled = { ...disabled, current: (movingQDependant === null || movingQDependant === void 0 ? void 0 : (_movingQDependant$que2 = movingQDependant.questionGroup) === null || _movingQDependant$que2 === void 0 ? void 0 : _movingQDependant$que2.order) === questionGroup.order ? movingQDependant.order <= order - 1 : true - }); - disabled = _extends({}, disabled, { + }; + disabled = { ...disabled, last: (movingQDependant === null || movingQDependant === void 0 ? void 0 : (_movingQDependant$que3 = movingQDependant.questionGroup) === null || _movingQDependant$que3 === void 0 ? void 0 : _movingQDependant$que3.order) === questionGroup.order ? movingQDependant.order <= order : true - }); + }; } return { @@ -11158,63 +10783,59 @@ var QuestionDefinition = function QuestionDefinition(_ref) { dependant: dependant }; }, [id, order, questionGroup, allQuestions, movingQ]); - var isEditQuestion = useMemo(function () { + const isEditQuestion = useMemo(() => { return activeEditQuestions.includes(id); }, [activeEditQuestions, id]); - var handleEdit = function handleEdit() { - UIStore.update(function (s) { - s.activeEditQuestions = [].concat(activeEditQuestions, [id]); + const handleEdit = () => { + UIStore.update(s => { + s.activeEditQuestions = [...activeEditQuestions, id]; }); }; - var handleCancelEdit = function handleCancelEdit() { - UIStore.update(function (s) { - s.activeEditQuestions = activeEditQuestions.filter(function (qId) { - return qId !== id; - }); + const handleCancelEdit = () => { + UIStore.update(s => { + s.activeEditQuestions = activeEditQuestions.filter(qId => qId !== id); }); }; - var handleCancelMove = function handleCancelMove() { - UIStore.update(function (s) { + const handleCancelMove = () => { + UIStore.update(s => { s.isCopyingQuestion = false; s.activeMoveQuestion = null; }); }; - var handleMove = function handleMove() { - UIStore.update(function (s) { + const handleMove = () => { + UIStore.update(s => { s.activeMoveQuestion = movingQ === question && !s.isCopyingQuestion ? null : question; s.isCopyingQuestion = false; }); }; - var handleCopy = function handleCopy() { - UIStore.update(function (s) { + const handleCopy = () => { + UIStore.update(s => { s.activeMoveQuestion = movingQ === question && s.isCopyingQuestion ? null : question; s.isCopyingQuestion = !s.isCopyingQuestion; }); }; - var handleDelete = function handleDelete() { - var newQuestions = questions.filter(function (q) { - return q.id !== id; - }).map(function (q) { + const handleDelete = () => { + const newQuestions = questions.filter(q => q.id !== id).map(q => { if (q.order > order) { - return _extends({}, q, { + return { ...q, order: q.order - 1 - }); + }; } return q; }); - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - return _extends({}, qg, { + return { ...qg, questions: newQuestions - }); + }; } return qg; @@ -11223,78 +10844,59 @@ var QuestionDefinition = function QuestionDefinition(_ref) { setIsModalOpen(false); }; - var _handleOnAdd = function handleOnAdd(prevOrder) { - var prevQ = questions.filter(function (q) { - return q.order <= prevOrder; - }); - var nextQ = questions.filter(function (q) { - return q.order > prevOrder; - }).map(function (q) { - return _extends({}, q, { - order: q.order + 1 - }); - }); - - var newQ = _extends({}, defaultQuestionParam, { + const handleOnAdd = prevOrder => { + const prevQ = questions.filter(q => q.order <= prevOrder); + const nextQ = questions.filter(q => q.order > prevOrder).map(q => ({ ...q, + order: q.order + 1 + })); + const newQ = { ...defaultQuestionParam, questionGroup: questionGroup, prevOrder: prevOrder, params: data.clear(['id', 'order', 'questionGroupId'], movingQ) - }); - - var newQuestions = [].concat(prevQ, [questionFn.add(newQ)], nextQ); - questionGroupFn.store.update(function (s) { - s.questionGroups = s.questionGroups.map(function (qg) { + }; + const newQuestions = [...prevQ, questionFn.add(newQ), ...nextQ]; + questionGroupFn.store.update(s => { + s.questionGroups = s.questionGroups.map(qg => { if (qg.id === questionGroupId) { - return _extends({}, qg, { + return { ...qg, questions: orderBy(newQuestions, 'order') - }); + }; } return qg; }); }); - UIStore.update(function (s) { + UIStore.update(s => { s.activeMoveQuestion = null; s.isCopyingQuestion = false; }); }; - var _handleOnMove = function handleOnMove(prevOrder, lastItem) { - if (lastItem === void 0) { - lastItem = false; - } - - var currentQ = _extends({}, movingQ, { + const handleOnMove = (prevOrder, lastItem = false) => { + const currentQ = { ...movingQ, questionGroupId: questionGroupId, order: questionGroupId !== movingQ.questionGroupId ? prevOrder + 1 : movingQ.order < prevOrder ? prevOrder : prevOrder + 1 - }); - - var changedQg = questionGroups.filter(function (qg) { - return qg.id === movingQ.questionGroupId || qg.id === questionGroupId; - }).map(function (qg) { - var addedQ = qg.id === questionGroupId ? currentQ : false; - var newQuestions = qg.questions.filter(function (q) { - return q.id !== movingQ.id; - }); + }; + const changedQg = questionGroups.filter(qg => qg.id === movingQ.questionGroupId || qg.id === questionGroupId).map(qg => { + const addedQ = qg.id === questionGroupId ? currentQ : false; + let newQuestions = qg.questions.filter(q => q.id !== movingQ.id); if (questionGroupId !== movingQ.questionGroupId && newQuestions.length < qg.questions.length) { - newQuestions = newQuestions.map(function (q, qi) { - return _extends({}, q, { - order: qi + 1 - }); - }); + newQuestions = newQuestions.map((q, qi) => ({ ...q, + order: qi + 1 + })); } if (questionGroupId !== movingQ.questionGroupId && qg.id === questionGroupId) { - newQuestions = newQuestions.map(function (x) { + newQuestions = newQuestions.map(x => { if (lastItem) { return x; } if (x.order >= prevOrder + 1) { - return _extends({}, x, { + return { ...x, order: x.order + 1 - }); + }; } return x; @@ -11302,63 +10904,57 @@ var QuestionDefinition = function QuestionDefinition(_ref) { } if (questionGroupId === movingQ.questionGroupId) { - newQuestions = newQuestions.map(function (x) { + newQuestions = newQuestions.map(x => { if (lastItem) { if (x.order > movingQ.order) { - return _extends({}, x, { + return { ...x, order: x.order - 1 - }); + }; } return x; } if (prevOrder > movingQ.order && x.order > movingQ.order && x.order <= prevOrder) { - return _extends({}, x, { + return { ...x, order: x.order - 1 - }); + }; } if (prevOrder < movingQ.order && x.order < movingQ.order && x.order >= prevOrder + 1) { - return _extends({}, x, { + return { ...x, order: x.order + 1 - }); + }; } return x; }); } - newQuestions = addedQ ? [].concat(newQuestions, [addedQ]) : newQuestions; - return _extends({}, qg, { + newQuestions = addedQ ? [...newQuestions, addedQ] : newQuestions; + return { ...qg, questions: orderBy(newQuestions, 'order') - }); - }); - var oldQg = questionGroups.filter(function (qg) { - return qg.id !== movingQ.questionGroupId; + }; }); - oldQg = movingQ.questionGroupId !== questionGroupId ? oldQg.filter(function (qg) { - return qg.id !== questionGroupId; - }) : oldQg; - questionGroupFn.store.update(function (s) { - s.questionGroups = orderBy([].concat(oldQg, changedQg), 'order'); + let oldQg = questionGroups.filter(qg => qg.id !== movingQ.questionGroupId); + oldQg = movingQ.questionGroupId !== questionGroupId ? oldQg.filter(qg => qg.id !== questionGroupId) : oldQg; + questionGroupFn.store.update(s => { + s.questionGroups = orderBy([...oldQg, ...changedQg], 'order'); }); - UIStore.update(function (s) { + UIStore.update(s => { s.activeMoveQuestion = null; }); }; - var rightButtons = [{ + const rightButtons = [{ type: 'copy-button', onClick: handleCopy }, { type: 'delete-button', - onClick: function onClick() { - return setIsModalOpen(true); - }, + onClick: () => setIsModalOpen(true), disabled: !index && isLastItem || dependant.dependant.length || disableDelete }]; - var leftButtons = [{ + const leftButtons = [{ type: 'move-button', onClick: handleMove, disabled: !index && isLastItem @@ -11374,16 +10970,12 @@ var QuestionDefinition = function QuestionDefinition(_ref) { handleCancelMove: handleCancelMove, movingItem: movingQ, isCopying: isCopying, - handleOnAdd: function handleOnAdd() { - return _handleOnAdd(order - 1); - }, - handleOnMove: function handleOnMove() { - return isCopying ? _handleOnAdd(order - 1) : _handleOnMove(order - 1); - } + handleOnAdd: () => handleOnAdd(order - 1), + handleOnMove: () => isCopying ? handleOnAdd(order - 1) : handleOnMove(order - 1) }), /*#__PURE__*/React__default.createElement(Card, { - key: index + "-" + id, + key: `${index}-${id}`, title: /*#__PURE__*/React__default.createElement(CardTitle, { - title: questionGroup.order + "." + order + ". " + name, + title: `${questionGroup.order}.${order}. ${name}`, buttons: leftButtons }), headStyle: { @@ -11399,17 +10991,11 @@ var QuestionDefinition = function QuestionDefinition(_ref) { loading: false, extra: /*#__PURE__*/React__default.createElement(CardTitle, { buttons: rightButtons, - dependency: allQuestions.filter(function (q) { - return dependency === null || dependency === void 0 ? void 0 : dependency.find(function (d) { - return d.id === q.id; - }); - }) + dependency: allQuestions.filter(q => dependency === null || dependency === void 0 ? void 0 : dependency.find(d => d.id === q.id)) }) }, isEditQuestion && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Tabs, { defaultActiveKey: activeTab, - onChange: function onChange(key) { - return setActiveTab(key); - }, + onChange: key => setActiveTab(key), tabBarGutter: 24, className: styles['tabs-wrapper'] }, /*#__PURE__*/React__default.createElement(Tabs.TabPane, { @@ -11433,18 +11019,12 @@ var QuestionDefinition = function QuestionDefinition(_ref) { disabled: movingQ === question && !isCopying || dependant.disabled.last, movingItem: movingQ, handleCancelMove: handleCancelMove, - handleOnAdd: function handleOnAdd() { - return _handleOnAdd(order); - }, - handleOnMove: function handleOnMove() { - return isCopying ? _handleOnAdd(order) : _handleOnMove(order, true); - } + handleOnAdd: () => handleOnAdd(order), + handleOnMove: () => isCopying ? handleOnAdd(order) : handleOnMove(order, true) }), /*#__PURE__*/React__default.createElement(AlertPopup, { visible: isModalOpen, onConfirm: handleDelete, - onCancel: function onCancel() { - return setIsModalOpen(false); - }, + onCancel: () => setIsModalOpen(false), okButtonProps: { danger: true }, @@ -11453,249 +11033,193 @@ var QuestionDefinition = function QuestionDefinition(_ref) { }, UIText.alertDeleteQuestion)); }; -var QuestionGroupDefinition = function QuestionGroupDefinition(_ref) { - var index = _ref.index, - questionGroup = _ref.questionGroup, - isLastItem = _ref.isLastItem; - - var _useState = useState(false), - isModalOpen = _useState[0], - setIsModalOpen = _useState[1]; - - var questionGroups = questionGroupFn.store.useState(function (s) { - return s.questionGroups; - }); - var movingQg = UIStore.useState(function (s) { - return s.activeMoveQuestionGroup; - }); - - var _UIStore$useState = UIStore.useState(function (s) { - return s; - }), - activeQuestionGroups = _UIStore$useState.activeQuestionGroups, - activeEditQuestionGroups = _UIStore$useState.activeEditQuestionGroups, - activeEditQuestions = _UIStore$useState.activeEditQuestions, - hostParams = _UIStore$useState.hostParams; - - var defaultQuestionParam = hostParams === null || hostParams === void 0 ? void 0 : hostParams.defaultQuestionParam; - var id = questionGroup.id, - name = questionGroup.name, - questions = questionGroup.questions, - order = questionGroup.order; - var questionIds = questions.map(function (q) { - return q.id; - }); - - var _UIStore$useState2 = UIStore.useState(function (s) { - return s.UIText; - }), - buttonAddNewQuestionGroupText = _UIStore$useState2.buttonAddNewQuestionGroupText, - buttonMoveQuestionGroupText = _UIStore$useState2.buttonMoveQuestionGroupText, - alertDeleteQuestionGroupTitle = _UIStore$useState2.alertDeleteQuestionGroupTitle, - alertDeleteQuestionGroup = _UIStore$useState2.alertDeleteQuestionGroup, - buttonDeleteText = _UIStore$useState2.buttonDeleteText; - - var showQuestion = useMemo(function () { +const QuestionGroupDefinition = ({ + index, + questionGroup, + isLastItem +}) => { + const [isModalOpen, setIsModalOpen] = useState(false); + const questionGroups = questionGroupFn.store.useState(s => s.questionGroups); + const movingQg = UIStore.useState(s => s.activeMoveQuestionGroup); + const { + activeQuestionGroups, + activeEditQuestionGroups, + activeEditQuestions, + hostParams + } = UIStore.useState(s => s); + const defaultQuestionParam = hostParams === null || hostParams === void 0 ? void 0 : hostParams.defaultQuestionParam; + const { + id, + name, + questions, + order + } = questionGroup; + const questionIds = questions.map(q => q.id); + const { + buttonAddNewQuestionGroupText, + buttonMoveQuestionGroupText, + alertDeleteQuestionGroupTitle, + alertDeleteQuestionGroup, + buttonDeleteText + } = UIStore.useState(s => s.UIText); + const showQuestion = useMemo(() => { return activeQuestionGroups.includes(id); }, [activeQuestionGroups, id]); - var isEditQuestionGroup = useMemo(function () { + const isEditQuestionGroup = useMemo(() => { return activeEditQuestionGroups.includes(id); }, [activeEditQuestionGroups, id]); - var disableDelete = useMemo(function () { + const disableDelete = useMemo(() => { var _questions$filter; - return (_questions$filter = questions.filter(function (q) { - return q === null || q === void 0 ? void 0 : q.disableDelete; - })) === null || _questions$filter === void 0 ? void 0 : _questions$filter.length; + return (_questions$filter = questions.filter(q => q === null || q === void 0 ? void 0 : q.disableDelete)) === null || _questions$filter === void 0 ? void 0 : _questions$filter.length; }, [questions]); - var handleHideQuestions = function handleHideQuestions() { - UIStore.update(function (s) { - s.activeQuestionGroups = activeQuestionGroups.filter(function (qgId) { - return qgId !== id; - }); + const handleHideQuestions = () => { + UIStore.update(s => { + s.activeQuestionGroups = activeQuestionGroups.filter(qgId => qgId !== id); }); }; - var handleCancelEditGroup = function handleCancelEditGroup() { - UIStore.update(function (s) { - s.activeEditQuestionGroups = activeEditQuestionGroups.filter(function (qgId) { - return qgId !== id; - }); + const handleCancelEditGroup = () => { + UIStore.update(s => { + s.activeEditQuestionGroups = activeEditQuestionGroups.filter(qgId => qgId !== id); }); }; - var handleShowQuestions = function handleShowQuestions() { - UIStore.update(function (s) { - s.activeQuestionGroups = [].concat(activeQuestionGroups, [id]); + const handleShowQuestions = () => { + UIStore.update(s => { + s.activeQuestionGroups = [...activeQuestionGroups, id]; }); handleCancelEditGroup(); }; - var handleEditGroup = function handleEditGroup() { - UIStore.update(function (s) { - s.activeEditQuestionGroups = [].concat(activeEditQuestionGroups, [id]); + const handleEditGroup = () => { + UIStore.update(s => { + s.activeEditQuestionGroups = [...activeEditQuestionGroups, id]; }); handleHideQuestions(); }; - var handleCancelMove = function handleCancelMove() { - UIStore.update(function (s) { + const handleCancelMove = () => { + UIStore.update(s => { s.activeMoveQuestionGroup = null; }); }; - var handleMove = function handleMove() { - UIStore.update(function (s) { + const handleMove = () => { + UIStore.update(s => { s.activeMoveQuestionGroup = movingQg === questionGroup ? null : questionGroup; }); }; - var handleExpandAll = function handleExpandAll() { + const handleExpandAll = () => { handleShowQuestions(); - UIStore.update(function (s) { - s.activeEditQuestions = uniq([].concat(s.activeEditQuestions, questionIds)); + UIStore.update(s => { + s.activeEditQuestions = uniq([...s.activeEditQuestions, ...questionIds]); }); }; - var handleCancelExpandAll = function handleCancelExpandAll() { + const handleCancelExpandAll = () => { handleHideQuestions(); - UIStore.update(function (s) { + UIStore.update(s => { s.activeEditQuestions = difference(s.activeEditQuestions, questionIds); }); }; - var handleDelete = function handleDelete() { - var newQuestionGroups = questionGroups.filter(function (qg) { - return id !== qg.id; - }).map(function (qg) { + const handleDelete = () => { + const newQuestionGroups = questionGroups.filter(qg => id !== qg.id).map(qg => { if (qg.order > order) { - return _extends({}, qg, { + return { ...qg, order: qg.order - 1 - }); + }; } return qg; }); - questionGroupFn.store.update(function (s) { + questionGroupFn.store.update(s => { s.questionGroups = newQuestionGroups; }); setIsModalOpen(false); }; - var _handleOnAdd = function handleOnAdd(prevOrder) { - var prevQg = questionGroups.filter(function (qg) { - return qg.order <= prevOrder; - }); - var nextQg = questionGroups.filter(function (qg) { - return qg.order > prevOrder; - }).map(function (qg) { - return _extends({}, qg, { - order: qg.order + 1 - }); - }); - var newQuestionGroups = [].concat(prevQg, [questionGroupFn.add({ + const handleOnAdd = prevOrder => { + const prevQg = questionGroups.filter(qg => qg.order <= prevOrder); + const nextQg = questionGroups.filter(qg => qg.order > prevOrder).map(qg => ({ ...qg, + order: qg.order + 1 + })); + const newQuestionGroups = [...prevQg, questionGroupFn.add({ prevOrder: prevOrder, defaultQuestionParam: defaultQuestionParam - })], nextQg); - questionGroupFn.store.update(function (s) { + }), ...nextQg]; + questionGroupFn.store.update(s => { s.questionGroups = newQuestionGroups; }); }; - var _handleOnMove = function handleOnMove(prevOrder, lastItem) { - if (lastItem === void 0) { - lastItem = false; - } - - var currentQg = _extends({}, movingQg, { + const handleOnMove = (prevOrder, lastItem = false) => { + const currentQg = { ...movingQg, order: movingQg.order < prevOrder ? prevOrder : prevOrder + 1 - }); - - var orderedQg = questionGroups.filter(function (qg) { - return qg.order !== movingQg.order; - }).map(function (x) { + }; + const orderedQg = questionGroups.filter(qg => qg.order !== movingQg.order).map(x => { if (lastItem) { if (x.order > movingQg.order) { - return _extends({}, x, { + return { ...x, order: x.order - 1 - }); + }; } return x; } if (prevOrder > movingQg.order && x.order > movingQg.order && x.order <= prevOrder) { - return _extends({}, x, { + return { ...x, order: x.order - 1 - }); + }; } if (prevOrder < movingQg.order && x.order < movingQg.order && x.order >= prevOrder + 1) { - return _extends({}, x, { + return { ...x, order: x.order + 1 - }); + }; } return x; }); - questionGroupFn.store.update(function (s) { - s.questionGroups = orderBy([].concat(orderedQg, [currentQg]), 'order'); + questionGroupFn.store.update(s => { + s.questionGroups = orderBy([...orderedQg, currentQg], 'order'); }); - UIStore.update(function (s) { + UIStore.update(s => { s.activeMoveQuestionGroup = null; }); }; - var dependant = useMemo(function () { + const dependant = useMemo(() => { var _movingQg$questions, _movingQg$questions2, _movingQ$map, _movingQDependency$qu, _movingQDependant$que; - var allQ = questionGroups.map(function (qg) { - return qg.questions; - }).flatMap(function (x) { - return x; - }).map(function (q) { - return _extends({}, q, { - questionGroup: questionGroups.find(function (qg) { - return q.questionGroupId === qg.id; - }) - }); - }); - var dependencies = allQ.filter(function (q) { + const allQ = questionGroups.map(qg => qg.questions).flatMap(x => x).map(q => ({ ...q, + questionGroup: questionGroups.find(qg => q.questionGroupId === qg.id) + })); + const dependencies = allQ.filter(q => { var _q$dependency; - return (q === null || q === void 0 ? void 0 : (_q$dependency = q.dependency) === null || _q$dependency === void 0 ? void 0 : _q$dependency.filter(function (d) { - return questionIds.find(function (qid) { - return qid === d.id; - }); - }).length) || false; + return (q === null || q === void 0 ? void 0 : (_q$dependency = q.dependency) === null || _q$dependency === void 0 ? void 0 : _q$dependency.filter(d => questionIds.find(qid => qid === d.id)).length) || false; }); - var movingQids = (movingQg === null || movingQg === void 0 ? void 0 : (_movingQg$questions = movingQg.questions) === null || _movingQg$questions === void 0 ? void 0 : _movingQg$questions.map(function (q) { - return q.id; - })) || []; - var movingQ = movingQg === null || movingQg === void 0 ? void 0 : (_movingQg$questions2 = movingQg.questions) === null || _movingQg$questions2 === void 0 ? void 0 : _movingQg$questions2.filter(function (q) { + const movingQids = (movingQg === null || movingQg === void 0 ? void 0 : (_movingQg$questions = movingQg.questions) === null || _movingQg$questions === void 0 ? void 0 : _movingQg$questions.map(q => q.id)) || []; + const movingQ = movingQg === null || movingQg === void 0 ? void 0 : (_movingQg$questions2 = movingQg.questions) === null || _movingQg$questions2 === void 0 ? void 0 : _movingQg$questions2.filter(q => { var _q$dependency2, _q$dependency2$filter; - var selfDependency = (q === null || q === void 0 ? void 0 : (_q$dependency2 = q.dependency) === null || _q$dependency2 === void 0 ? void 0 : (_q$dependency2$filter = _q$dependency2.filter(function (d) { - return movingQids.includes(d.id); - })) === null || _q$dependency2$filter === void 0 ? void 0 : _q$dependency2$filter.length) || 0; + const selfDependency = (q === null || q === void 0 ? void 0 : (_q$dependency2 = q.dependency) === null || _q$dependency2 === void 0 ? void 0 : (_q$dependency2$filter = _q$dependency2.filter(d => movingQids.includes(d.id))) === null || _q$dependency2$filter === void 0 ? void 0 : _q$dependency2$filter.length) || 0; return !selfDependency; }); - var disabled = { + let disabled = { current: false, last: false }; - var movingQDependency = maxBy((movingQ === null || movingQ === void 0 ? void 0 : (_movingQ$map = movingQ.map(function (q) { + const movingQDependency = maxBy((movingQ === null || movingQ === void 0 ? void 0 : (_movingQ$map = movingQ.map(q => { var _q$dependency3; - return (q === null || q === void 0 ? void 0 : (_q$dependency3 = q.dependency) === null || _q$dependency3 === void 0 ? void 0 : _q$dependency3.map(function (q) { - return allQ.find(function (a) { - return a.id === q.id; - }); - })) || []; - })) === null || _movingQ$map === void 0 ? void 0 : _movingQ$map.flatMap(function (q) { - return q; - })) || [], 'questionGroup.order'); + return (q === null || q === void 0 ? void 0 : (_q$dependency3 = q.dependency) === null || _q$dependency3 === void 0 ? void 0 : _q$dependency3.map(q => allQ.find(a => a.id === q.id))) || []; + })) === null || _movingQ$map === void 0 ? void 0 : _movingQ$map.flatMap(q => q)) || [], 'questionGroup.order'); if ((movingQDependency === null || movingQDependency === void 0 ? void 0 : (_movingQDependency$qu = movingQDependency.questionGroup) === null || _movingQDependency$qu === void 0 ? void 0 : _movingQDependency$qu.order) >= order) { disabled = { @@ -11704,16 +11228,12 @@ var QuestionGroupDefinition = function QuestionGroupDefinition(_ref) { }; } - var movingQDependant = minBy(allQ.filter(function (q) { + const movingQDependant = minBy(allQ.filter(q => { var _q$dependency4; - return (q === null || q === void 0 ? void 0 : (_q$dependency4 = q.dependency) === null || _q$dependency4 === void 0 ? void 0 : _q$dependency4.filter(function (d) { - return movingQ === null || movingQ === void 0 ? void 0 : movingQ.find(function (qs) { - return qs.id === d.id; - }); - }).length) || false; + return (q === null || q === void 0 ? void 0 : (_q$dependency4 = q.dependency) === null || _q$dependency4 === void 0 ? void 0 : _q$dependency4.filter(d => movingQ === null || movingQ === void 0 ? void 0 : movingQ.find(qs => qs.id === d.id)).length) || false; }), 'questionGroup.order'); - var dependantIsLessThanOrder = (movingQDependant === null || movingQDependant === void 0 ? void 0 : (_movingQDependant$que = movingQDependant.questionGroup) === null || _movingQDependant$que === void 0 ? void 0 : _movingQDependant$que.order) < (isLastItem ? order + 1 : order); + const dependantIsLessThanOrder = (movingQDependant === null || movingQDependant === void 0 ? void 0 : (_movingQDependant$que = movingQDependant.questionGroup) === null || _movingQDependant$que === void 0 ? void 0 : _movingQDependant$que.order) < (isLastItem ? order + 1 : order); if (dependantIsLessThanOrder) { disabled = { @@ -11727,16 +11247,14 @@ var QuestionGroupDefinition = function QuestionGroupDefinition(_ref) { dependant: dependencies }; }, [questionGroups, questionIds, movingQg, order, isLastItem]); - var rightButtons = [{ + const rightButtons = [{ type: 'expand-all-button', isExpand: showQuestion && intersection(activeEditQuestions, questionIds).length, onClick: handleExpandAll, onCancel: handleCancelExpandAll }, { type: 'delete-button', - onClick: function onClick() { - return setIsModalOpen(true); - }, + onClick: () => setIsModalOpen(true), disabled: !index && isLastItem || disableDelete }, { type: 'edit-button', @@ -11744,7 +11262,7 @@ var QuestionGroupDefinition = function QuestionGroupDefinition(_ref) { onClick: handleEditGroup, onCancel: handleCancelEditGroup }]; - var leftButtons = [{ + const leftButtons = [{ type: 'move-button', onClick: handleMove, onCancel: handleHideQuestions, @@ -11760,17 +11278,13 @@ var QuestionGroupDefinition = function QuestionGroupDefinition(_ref) { disabled: movingQg === questionGroup || (movingQg === null || movingQg === void 0 ? void 0 : movingQg.order) + 1 === order || dependant.disabled.current, movingItem: movingQg, handleCancelMove: handleCancelMove, - handleOnAdd: function handleOnAdd() { - return _handleOnAdd(order - 1); - }, - handleOnMove: function handleOnMove() { - return _handleOnMove(order - 1); - } + handleOnAdd: () => handleOnAdd(order - 1), + handleOnMove: () => handleOnMove(order - 1) }), /*#__PURE__*/React__default.createElement(Card, { - key: index + "-" + id, + key: `${index}-${id}`, title: /*#__PURE__*/React__default.createElement(CardTitle, { buttons: leftButtons, - title: order + ". " + name + title: `${order}. ${name}` }), headStyle: { textAlign: 'left', @@ -11785,31 +11299,23 @@ var QuestionGroupDefinition = function QuestionGroupDefinition(_ref) { extra: /*#__PURE__*/React__default.createElement(CardTitle, { buttons: rightButtons }) - }, isEditQuestionGroup && /*#__PURE__*/React__default.createElement(QuestionGroupSetting, questionGroup), showQuestion && questions.map(function (q, qi) { - return /*#__PURE__*/React__default.createElement(QuestionDefinition, { - key: "question-definition-" + qi, - index: qi, - question: q, - questionGroup: questionGroup, - isLastItem: qi === questions.length - 1 - }); - })), isLastItem && /*#__PURE__*/React__default.createElement(ButtonAddMove, { + }, isEditQuestionGroup && /*#__PURE__*/React__default.createElement(QuestionGroupSetting, questionGroup), showQuestion && questions.map((q, qi) => /*#__PURE__*/React__default.createElement(QuestionDefinition, { + key: `question-definition-${qi}`, + index: qi, + question: q, + questionGroup: questionGroup, + isLastItem: qi === questions.length - 1 + }))), isLastItem && /*#__PURE__*/React__default.createElement(ButtonAddMove, { text: movingQg ? buttonMoveQuestionGroupText : buttonAddNewQuestionGroupText, disabled: movingQg === questionGroup || dependant.disabled.last, movingItem: movingQg, handleCancelMove: handleCancelMove, - handleOnAdd: function handleOnAdd() { - return _handleOnAdd(order); - }, - handleOnMove: function handleOnMove() { - return _handleOnMove(order, true); - } + handleOnAdd: () => handleOnAdd(order), + handleOnMove: () => handleOnMove(order, true) }), /*#__PURE__*/React__default.createElement(AlertPopup, { visible: isModalOpen, onConfirm: handleDelete, - onCancel: function onCancel() { - return setIsModalOpen(false); - }, + onCancel: () => setIsModalOpen(false), okButtonProps: { danger: true }, @@ -11818,42 +11324,34 @@ var QuestionGroupDefinition = function QuestionGroupDefinition(_ref) { }, alertDeleteQuestionGroup)); }; -var WebformEditor = function WebformEditor(_ref) { - var _ref$onSave = _ref.onSave, - onSave = _ref$onSave === void 0 ? false : _ref$onSave, - _ref$initialValue = _ref.initialValue, - initialValue = _ref$initialValue === void 0 ? null : _ref$initialValue, - _ref$settingTreeDropd = _ref.settingTreeDropdownValue, - settingTreeDropdownValue = _ref$settingTreeDropd === void 0 ? [{ +const WebformEditor = ({ + onSave: _onSave = false, + initialValue: _initialValue = null, + settingTreeDropdownValue: _settingTreeDropdownValue = [{ label: null, value: null - }] : _ref$settingTreeDropd, - _ref$settingCascadeUR = _ref.settingCascadeURL, - settingCascadeURL = _ref$settingCascadeUR === void 0 ? [{ + }], + settingCascadeURL: _settingCascadeURL = [{ name: null, endpoint: null, initial: 0, list: false - }] : _ref$settingCascadeUR, - _ref$settingHintURL = _ref.settingHintURL, - settingHintURL = _ref$settingHintURL === void 0 ? { + }], + settingHintURL: _settingHintURL = { questionTypes: [], settings: [{ name: null, endpoint: null, path: [] }] - } : _ref$settingHintURL, - _ref$defaultQuestion = _ref.defaultQuestion, - defaultQuestion = _ref$defaultQuestion === void 0 ? { + }, + defaultQuestion: _defaultQuestion = { type: null, name: null, required: null - } : _ref$defaultQuestion, - _ref$limitQuestionTyp = _ref.limitQuestionType, - limitQuestionType = _ref$limitQuestionTyp === void 0 ? [] : _ref$limitQuestionTyp, - _ref$customParams = _ref.customParams, - customParams = _ref$customParams === void 0 ? { + }, + limitQuestionType: _limitQuestionType = [], + customParams: _customParams = { label: null, params: [{ name: null, @@ -11872,138 +11370,117 @@ var WebformEditor = function WebformEditor(_ref) { label: 'Input Param', type: 'input' }] - } : _ref$customParams; - - var _useState = useState(defaultQuestion), - init = _useState[0], - setInit = _useState[1]; - - var formStore = formFn.store.useState(function (s) { - return s; - }); - var current = UIStore.useState(function (s) { - return s.current; - }); - - var _UIStore$useState = UIStore.useState(function (s) { - return s; - }), - UIText = _UIStore$useState.UIText, - hostParams = _UIStore$useState.hostParams; - - var questionGroups = questionGroupFn.store.useState(function (s) { - return s.questionGroups; - }); - var activeEditFormSetting = UIStore.useState(function (s) { - return s.activeEditFormSetting; - }); - var defaultQuestionParam = hostParams === null || hostParams === void 0 ? void 0 : hostParams.defaultQuestionParam; - var currentTab = current.tab; - var formTabPane = UIText.formTabPane, - formTranslationPane = UIText.formTranslationPane, - previewTabPane = UIText.previewTabPane, - questionCount = UIText.questionCount, - questionGroupCount = UIText.questionGroupCount, - mandatoryQuestionCount = UIText.mandatoryQuestionCount, - version = UIText.version; - - if (!initialValue) { + } +}) => { + const [init, setInit] = useState(_defaultQuestion); + const formStore = formFn.store.useState(s => s); + const current = UIStore.useState(s => s.current); + const { + UIText, + hostParams + } = UIStore.useState(s => s); + const questionGroups = questionGroupFn.store.useState(s => s.questionGroups); + const activeEditFormSetting = UIStore.useState(s => s.activeEditFormSetting); + const defaultQuestionParam = hostParams === null || hostParams === void 0 ? void 0 : hostParams.defaultQuestionParam; + const { + tab: currentTab + } = current; + const { + formTabPane, + formTranslationPane, + previewTabPane, + questionCount, + questionGroupCount, + mandatoryQuestionCount, + version + } = UIText; + + if (!_initialValue) { console.error('initialValue required as an empty object {}'); } - useEffect(function () { + useEffect(() => { var _settingHintURL$setti, _settingHintURL$setti2, _customParams$params; - var checkDefaultQuestion = defaultQuestion ? Object.values(defaultQuestion).filter(function (x) { - return x; - }).length : false; - var sanitizeSettingTreeDropdownValue = settingTreeDropdownValue.filter(function (x) { - return (x === null || x === void 0 ? void 0 : x.label) && (x === null || x === void 0 ? void 0 : x.value); - }); - var sanitizeSettingCascadeURL = settingCascadeURL.filter(function (x) { - return (x === null || x === void 0 ? void 0 : x.name) && (x === null || x === void 0 ? void 0 : x.endpoint); - }).map(function (x, xi) { - return _extends({}, x, { - id: (x === null || x === void 0 ? void 0 : x.id) || xi + 1 - }); - }); - var sanitizeSettingHintURL = !isEmpty(settingHintURL) ? _extends({}, settingHintURL, { - settings: settingHintURL === null || settingHintURL === void 0 ? void 0 : (_settingHintURL$setti = settingHintURL.settings) === null || _settingHintURL$setti === void 0 ? void 0 : (_settingHintURL$setti2 = _settingHintURL$setti.filter(function (x) { + const checkDefaultQuestion = _defaultQuestion ? Object.values(_defaultQuestion).filter(x => x).length : false; + + const sanitizeSettingTreeDropdownValue = _settingTreeDropdownValue.filter(x => (x === null || x === void 0 ? void 0 : x.label) && (x === null || x === void 0 ? void 0 : x.value)); + + const sanitizeSettingCascadeURL = _settingCascadeURL.filter(x => (x === null || x === void 0 ? void 0 : x.name) && (x === null || x === void 0 ? void 0 : x.endpoint)).map((x, xi) => ({ ...x, + id: (x === null || x === void 0 ? void 0 : x.id) || xi + 1 + })); + + const sanitizeSettingHintURL = !isEmpty(_settingHintURL) ? { ..._settingHintURL, + settings: _settingHintURL === null || _settingHintURL === void 0 ? void 0 : (_settingHintURL$setti = _settingHintURL.settings) === null || _settingHintURL$setti === void 0 ? void 0 : (_settingHintURL$setti2 = _settingHintURL$setti.filter(x => { var _x$path; return (x === null || x === void 0 ? void 0 : x.name) && (x === null || x === void 0 ? void 0 : x.endpoint) && (x === null || x === void 0 ? void 0 : (_x$path = x.path) === null || _x$path === void 0 ? void 0 : _x$path.length); - })) === null || _settingHintURL$setti2 === void 0 ? void 0 : _settingHintURL$setti2.map(function (x, xi) { - return _extends({}, x, { - id: (x === null || x === void 0 ? void 0 : x.id) || xi + 1 - }); - }) - }) : {}; - var sanitizeDefaultQuestion = { - type: (defaultQuestion === null || defaultQuestion === void 0 ? void 0 : defaultQuestion.type) || questionType.input, - name: defaultQuestion === null || defaultQuestion === void 0 ? void 0 : defaultQuestion.name, - required: (defaultQuestion === null || defaultQuestion === void 0 ? void 0 : defaultQuestion.required) || false + })) === null || _settingHintURL$setti2 === void 0 ? void 0 : _settingHintURL$setti2.map((x, xi) => ({ ...x, + id: (x === null || x === void 0 ? void 0 : x.id) || xi + 1 + })) + } : {}; + const sanitizeDefaultQuestion = { + type: (_defaultQuestion === null || _defaultQuestion === void 0 ? void 0 : _defaultQuestion.type) || questionType.input, + name: _defaultQuestion === null || _defaultQuestion === void 0 ? void 0 : _defaultQuestion.name, + required: (_defaultQuestion === null || _defaultQuestion === void 0 ? void 0 : _defaultQuestion.required) || false }; - var sanitizeCustomParams = customParams === null || customParams === void 0 ? void 0 : (_customParams$params = customParams.params) === null || _customParams$params === void 0 ? void 0 : _customParams$params.filter(function (x) { - return x === null || x === void 0 ? void 0 : x.name; - }); - UIStore.update(function (s) { + const sanitizeCustomParams = _customParams === null || _customParams === void 0 ? void 0 : (_customParams$params = _customParams.params) === null || _customParams$params === void 0 ? void 0 : _customParams$params.filter(x => x === null || x === void 0 ? void 0 : x.name); + UIStore.update(s => { var _sanitizeSettingHintU; if (sanitizeSettingTreeDropdownValue.length) { - s.hostParams = _extends({}, s.hostParams, { + s.hostParams = { ...s.hostParams, settingTreeDropdownValue: sanitizeSettingTreeDropdownValue - }); + }; } if (sanitizeSettingCascadeURL.length) { - s.hostParams = _extends({}, s.hostParams, { + s.hostParams = { ...s.hostParams, settingCascadeURL: sanitizeSettingCascadeURL - }); + }; } if (!isEmpty(sanitizeSettingHintURL) && sanitizeSettingHintURL !== null && sanitizeSettingHintURL !== void 0 && (_sanitizeSettingHintU = sanitizeSettingHintURL.settings) !== null && _sanitizeSettingHintU !== void 0 && _sanitizeSettingHintU.length) { - s.hostParams = _extends({}, s.hostParams, { + s.hostParams = { ...s.hostParams, settingHintURL: sanitizeSettingHintURL - }); + }; } if (checkDefaultQuestion) { - s.hostParams = _extends({}, s.hostParams, { + s.hostParams = { ...s.hostParams, defaultQuestionParam: sanitizeDefaultQuestion - }); + }; } else { - s.hostParams = _extends({}, s.hostParams, { + s.hostParams = { ...s.hostParams, defaultQuestionParam: {} - }); + }; } - if (limitQuestionType.length) { - s.hostParams = _extends({}, s.hostParams, { - limitQuestionType: Object.keys(questionType).map(function (key) { + if (_limitQuestionType.length) { + s.hostParams = { ...s.hostParams, + limitQuestionType: Object.keys(questionType).map(key => { var _questionType$key; return { label: (_questionType$key = questionType[key]) === null || _questionType$key === void 0 ? void 0 : _questionType$key.split('_').join(' '), value: questionType[key] }; - }).filter(function (x) { - return limitQuestionType.includes(x.value); - }) - }); + }).filter(x => _limitQuestionType.includes(x.value)) + }; } - if (customParams !== null && customParams !== void 0 && customParams.label && sanitizeCustomParams !== null && sanitizeCustomParams !== void 0 && sanitizeCustomParams.length) { - s.hostParams = _extends({}, s.hostParams, { - customParams: _extends({}, customParams, { + if (_customParams !== null && _customParams !== void 0 && _customParams.label && sanitizeCustomParams !== null && sanitizeCustomParams !== void 0 && sanitizeCustomParams.length) { + s.hostParams = { ...s.hostParams, + customParams: { ..._customParams, params: sanitizeCustomParams - }) - }); + } + }; } }); - }, [settingTreeDropdownValue, settingCascadeURL, settingHintURL, defaultQuestion, limitQuestionType, customParams]); - useEffect(function () { + }, [_settingTreeDropdownValue, _settingCascadeURL, _settingHintURL, _defaultQuestion, _limitQuestionType, _customParams]); + useEffect(() => { if (defaultQuestionParam && init) { - questionGroupFn.store.update(function (s) { + questionGroupFn.store.update(s => { s.questionGroups = [questionGroupFn.add({ defaultQuestionParam: defaultQuestionParam })]; @@ -12011,28 +11488,26 @@ var WebformEditor = function WebformEditor(_ref) { setInit(false); } }, [defaultQuestionParam, init]); - useEffect(function () { - if (!isEmpty(initialValue)) { - var initialData = data.toEditor(initialValue); - formFn.store.update(function (s) { + useEffect(() => { + if (!isEmpty(_initialValue)) { + const initialData = data.toEditor(_initialValue); + formFn.store.update(s => { var _initialData$language; s.id = (initialData === null || initialData === void 0 ? void 0 : initialData.id) || generateId(); s.version = (initialData === null || initialData === void 0 ? void 0 : initialData.version) || 1; s.name = (initialData === null || initialData === void 0 ? void 0 : initialData.name) || 'Unknown Form'; s.description = (initialData === null || initialData === void 0 ? void 0 : initialData.description) || 'Unknown Description'; - s.languages = (initialData === null || initialData === void 0 ? void 0 : (_initialData$language = initialData.languages) === null || _initialData$language === void 0 ? void 0 : _initialData$language.filter(function (x) { - return x !== 'en'; - })) || []; + s.languages = (initialData === null || initialData === void 0 ? void 0 : (_initialData$language = initialData.languages) === null || _initialData$language === void 0 ? void 0 : _initialData$language.filter(x => x !== 'en')) || []; s.defaultLanguage = (initialData === null || initialData === void 0 ? void 0 : initialData.defaultLanguage) || 'en'; s.translations = (initialData === null || initialData === void 0 ? void 0 : initialData.translations) || []; }); - questionGroupFn.store.update(function (s) { + questionGroupFn.store.update(s => { s.questionGroups = initialData.questionGroups; }); } else { - var defaultForm = formFn.add(); - formFn.store.update(function (s) { + const defaultForm = formFn.add(); + formFn.store.update(s => { s.id = defaultForm.id; s.name = defaultForm.name; s.version = defaultForm.version; @@ -12041,40 +11516,36 @@ var WebformEditor = function WebformEditor(_ref) { s.defaultLanguage = 'en'; s.translations = []; }); - questionGroupFn.store.update(function (s) { + questionGroupFn.store.update(s => { s.questionGroups = [questionGroupFn.add({})]; }); } - }, [initialValue]); + }, [_initialValue]); - var handleTabsOnChange = function handleTabsOnChange(e) { - UIStore.update(function (s) { - s.current = _extends({}, current, { + const handleTabsOnChange = e => { + UIStore.update(s => { + s.current = { ...current, tab: e - }); + }; }); }; - var handleShowFormSetting = function handleShowFormSetting(e) { + const handleShowFormSetting = e => { e.preventDefault(); - UIStore.update(function (s) { + UIStore.update(s => { s.activeEditFormSetting = activeEditFormSetting ? false : true; }); }; - var handleSave = function handleSave() { - if (onSave) { - onSave(data.toWebform(formStore, questionGroups)); + const handleSave = () => { + if (_onSave) { + _onSave(data.toWebform(formStore, questionGroups)); } }; - var questions = questionGroups.reduce(function (curr, qg) { - return [].concat(curr, qg.questions); - }, []); - var mandatory = questions.filter(function (q) { - return q === null || q === void 0 ? void 0 : q.required; - }); - var tabProps = [{ + const questions = questionGroups.reduce((curr, qg) => [...curr, ...qg.questions], []); + const mandatory = questions.filter(q => q === null || q === void 0 ? void 0 : q.required); + const tabProps = [{ icon: TbEdit, tab: formTabPane, key: 'edit-form' @@ -12121,18 +11592,16 @@ var WebformEditor = function WebformEditor(_ref) { onClick: handleSave }))), tabBarGutter: 24, - className: styles['tabs-wrapper'] + " " + styles['tabs-wrapper-sticky'] - }, tabProps.map(function (prop) { - return /*#__PURE__*/React__default.createElement(Tabs.TabPane, { - tab: /*#__PURE__*/React__default.createElement(Space, { - size: 2, - className: styles['tab-pane-name-icon'] - }, /*#__PURE__*/React__default.createElement(prop.icon, null), " ", prop.tab), - key: prop.key - }); - })), currentTab === 'edit-form' && /*#__PURE__*/React__default.createElement(FormWrapper, null, activeEditFormSetting && /*#__PURE__*/React__default.createElement(FormDefinition, formStore), questionGroups.map(function (qg, qgi) { + className: `${styles['tabs-wrapper']} ${styles['tabs-wrapper-sticky']}` + }, tabProps.map(prop => /*#__PURE__*/React__default.createElement(Tabs.TabPane, { + tab: /*#__PURE__*/React__default.createElement(Space, { + size: 2, + className: styles['tab-pane-name-icon'] + }, /*#__PURE__*/React__default.createElement(prop.icon, null), " ", prop.tab), + key: prop.key + }))), currentTab === 'edit-form' && /*#__PURE__*/React__default.createElement(FormWrapper, null, activeEditFormSetting && /*#__PURE__*/React__default.createElement(FormDefinition, formStore), questionGroups.map((qg, qgi) => { return /*#__PURE__*/React__default.createElement(QuestionGroupDefinition, { - key: "question-group-definition-" + qgi, + key: `question-group-definition-${qgi}`, index: qgi, questionGroup: qg, isLastItem: qgi === questionGroups.length - 1 diff --git a/dist/index.modern.js.map b/dist/index.modern.js.map index 472305a..c3e9b8c 100644 --- a/dist/index.modern.js.map +++ b/dist/index.modern.js.map @@ -1 +1 @@ -{"version":3,"file":"index.modern.js","sources":["../src/components/FormWrapper.jsx","../src/lib/i18n.js","../src/lib/debug.js","../src/lib/store.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../src/support/ButtonAddMove.jsx","../src/support/ButtonWithIcon.jsx","../src/support/CardTitle.jsx","../src/support/TranslationFormItem.jsx","../src/support/AlertPopup.jsx","../src/lib/data.js","../src/components/translations/FormDefinitionTranslation.jsx","../src/components/translations/QuestionDefinitionTranslation.jsx","../src/components/translations/QuestionGroupDefinitionTranslation.jsx","../src/components/FormTranslations.jsx","../src/components/FormPreview.jsx","../src/components/FormDefinition.jsx","../src/components/QuestionGroupSetting.jsx","../src/components/question-type/SettingInput.jsx","../src/components/question-type/SettingNumber.jsx","../src/components/question-type/SettingOption.jsx","../src/components/question-type/SettingTree.jsx","../src/components/question-type/SettingCascade.jsx","../node_modules/moment/moment.js","../src/components/question-type/SettingDate.jsx","../src/components/question-type/SettingTable.jsx","../src/components/QuestionHint.jsx","../src/components/QuestionSetting.jsx","../src/components/QuestionSkipLogic.jsx","../src/components/QuestionCustomParams.jsx","../src/components/QuestionDefinition.jsx","../src/components/QuestionGroupDefinition.jsx","../src/index.js"],"sourcesContent":["import React from 'react';\nimport { Form } from 'antd';\n\nconst FormWrapper = ({ children }) => {\n const [form] = Form.useForm();\n\n const handleOnValuesChange = () => {\n // console.log(changedValues, allValues);\n };\n\n const handleOnFinish = () => {\n // console.log(values);\n };\n\n const handleOnFinishFailed = () => {\n // console.log(values, errorFields, outOfDate);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default FormWrapper;\n","const UIStaticText = {\n en: {\n inputFormNameLabel: 'Form Name',\n inputFormDescriptionLabel: 'Form Description',\n inputFormTranslationLabel: 'Add New Translation',\n inputFormExistingTranslationsLabel: 'Existing Translations',\n inputFormDefaultLanguageLabel: 'Default Language',\n formTabPane: 'Edit Form',\n formTranslationPane: 'Translations',\n previewTabPane: 'Preview',\n questionCount: 'Questions',\n questionGroupCount: 'Question Groups',\n mandatoryQuestionCount: 'Mandatory Questions',\n version: 'Version',\n inputQuestionGroupNameLabel: 'Question Group Name',\n inputQuestionGroupDescriptionLabel: 'Question Group Description',\n inputRepeatThisGroupCheckbox: 'Repeat this group',\n inputRepeatTextLabel: 'Repeat Text',\n buttonShowQuestionsText: 'Show Questions',\n buttonHideQuestionsText: 'Hide Questions',\n buttonEditGroupText: 'Edit Group',\n buttonCancelEditGroupText: 'Cancel Edit Group',\n buttonDeleteText: 'Delete',\n buttonCancelText: 'Cancel',\n buttonAddNewQuestionGroupText: 'Insert group here',\n buttonCopyQuestionGroupText: 'Copy group here',\n buttonMoveQuestionGroupText: 'Move group here',\n buttonAddNewQuestionText: 'Add new question',\n buttonCopyQuestionText: 'Copy question here',\n buttonMoveQuestionText: 'Move question here',\n inputQuestionNameLabel: 'Question Name',\n inputQuestionTypeLabel: 'Question Type',\n inputQuestionVariableNameLabel: 'Variable Name',\n inputQuestionTooltipLabel: 'Question Tooltip',\n inputQuestionRequiredCheckbox: 'Required',\n inputQuestionMetaCheckbox: 'Data point name',\n inputQuestionMetaCheckboxHint:\n 'A string value that represents the name of the data point',\n buttonSaveText: 'Save',\n questionSettingTabPane: 'Setting',\n questionSkipLogicTabPane: 'Skip Logic',\n questionCustomParamsTabPane: 'Custom Params',\n questionExtraTabPane: 'Extra',\n inputQuestionDependentToLabel: 'Dependent to Question',\n inputQuestionDependentLogicLabel: 'Logic',\n inputQuestionDependentAnswerLabel: 'Value',\n questionMoreInputTypeSettingText: 'More Input Question Setting',\n inputQuestionRequireDoubleEntryCheckbox: 'Require double entry of answer',\n inputQuestionHiddenStringCheckbox: 'Hidden String/Password',\n questionMoreInputNumberSettingText: 'More Number Question Setting',\n inputQuestionAllowDecimalCheckbox: 'Allow Decimal',\n inputQuestionMinimumValueLabel: 'Minimum Value',\n inputQuestionMaximumValueLabel: 'Maximum Value',\n inputQuestionMinimumValidationText: 'Min value must be less than',\n inputQuestionMaximumValidationText: 'Max value must be greater than',\n inputQuestionEqualValueLabel: 'Equal Value',\n questionMoreOptionTypeSettingText: 'More Option Question Setting',\n questionMoreOptionTranslationText: 'Option Translations',\n inputQuestionAllowOtherCheckbox: 'Allow Other',\n inputQuestionAllowOtherTextLabel: 'Allow Other Text',\n inputQuestionOptionNameLabel: 'Option',\n questionMoreTreeSettingText: 'More Nested List Question Setting',\n inputSelectTreeDropdownValueLabel: 'Select Nested List Value',\n deleteQuestionGroupError: 'Unable to delete question group',\n deleteQuestionError: 'Unable to delete question',\n infoNoDependentQuestionText: 'No dependent questions',\n questionMoreCascadeSettingText: 'More Cascade Question Setting',\n inputQuestionEndpointLabel: 'Cascade Endpoint',\n inputQuestionEndpointValidationText: 'Invalid URL',\n inputQuestionInitialValueLabel: 'Initial Value',\n inputQuestionListCheckbox: 'Use Specific Object Name',\n inputQuestionListLabel: 'Object Name',\n questionMoreInputDateSettingText: 'More Date Question Setting',\n inputQuestionAfterDateValueLabel: 'After Date',\n inputQuestionBeforeDateValueLabel: 'Before Date',\n alertDeleteQuestionTitle: 'Delete Question',\n alertDeleteQuestion: 'Do you want to delete this question?',\n alertDeleteQuestionGroupTitle: 'Delete Question Group',\n alertDeleteQuestionGroup:\n 'Do you want to delete this question group and all the questions?',\n questionMoreTableTypeSettingText: 'More Table Question Setting',\n inputColumnNameLabel: 'Column Name',\n inputColumnTypeLabel: 'Column Type',\n inputColumnOptionsLabel: 'Column Options',\n questionTableTypeDefineOptionsText: 'Define Options',\n questionHintSettingText: 'Hint Setting',\n inputQuestionStaticValueLabel: 'Static Value',\n inputSelectHintEndpointLabel: 'Hint Endpoint',\n inputSelectHintPathLabel: 'Hint Path',\n inputQuestionHintButtonTextLabel: 'Hint Button Text',\n },\n};\n\nexport default UIStaticText;\n","import * as words from './fake.json';\n\nconst titleCase = (str) => {\n return str.replace(\n /\\w\\S*/g,\n (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()\n );\n};\n\nconst getWords = () => {\n return words.default[Math.floor(Math.random() * words.default.length)];\n};\n\nexport const dummyName = (len = 2) => {\n return Array.from('x'.repeat(len)).reduce(\n (curr) => curr + ' ' + getWords(),\n titleCase(getWords())\n );\n};\n","import { Store } from 'pullstate';\nimport UIStaticText from './i18n';\nimport { dummyName } from './debug';\nimport * as locale from 'locale-codes';\nimport uniqBy from 'lodash/uniqBy';\n\nconst localeDropdownValue = uniqBy(\n locale.all\n .filter((x) => x.location)\n .map((x) => ({ label: x.name, value: x['iso639-1'] }))\n .filter((x) => x.value),\n 'value'\n);\n\nconst generateId = () => new Date().getTime();\n\nconst questionType = {\n input: 'input',\n number: 'number',\n cascade: 'cascade',\n geo: 'geo',\n text: 'text',\n date: 'date',\n option: 'option',\n multiple_option: 'multiple_option',\n tree: 'tree',\n table: 'table',\n // autofield: 'autofield',\n};\n\nconst defaultForm = () => {\n return {\n id: generateId(),\n name: 'New Form',\n version: 1,\n description: 'New Form Description',\n };\n};\n\nconst defaultQuestion = ({\n questionGroup,\n name,\n prevOrder = 0,\n type = questionType.input,\n required = false,\n params = {},\n}) => {\n const q = {\n id: generateId() + 2,\n order: prevOrder + 1,\n questionGroupId: questionGroup.id,\n name: name || dummyName(5),\n type: type,\n required: required,\n meta: false,\n tooltip: null,\n };\n if (type === questionType.option || type === questionType.multiple_option) {\n return {\n ...q,\n options: [],\n allowOther: false,\n };\n }\n if (type === questionType.cascade) {\n return {\n ...q,\n api: {\n endpoint: null,\n initial: 0,\n list: false,\n },\n };\n }\n return { ...q, ...params };\n};\n\nconst defaultQuestionGroup = ({\n name = dummyName(),\n prevOrder = 0,\n defaultQuestionParam = {},\n}) => {\n const qg = {\n id: generateId() + 1,\n name: name,\n order: prevOrder + 1,\n description: null,\n repeatable: false,\n };\n return {\n ...qg,\n questions: [\n defaultQuestion({ questionGroup: qg, ...defaultQuestionParam }),\n ],\n };\n};\n\nconst UIStore = new Store({\n current: {\n tab: 'edit-form',\n formId: null,\n questionGroupId: null,\n questionId: null,\n },\n activeEditFormSetting: true,\n activeQuestionGroups: [],\n activeEditQuestionGroups: [],\n activeMoveQuestionGroup: null,\n isCopyingQuestionGroup: false,\n activeEditQuestions: [],\n activeMoveQuestion: null,\n isCopyingQuestion: false,\n UIText: UIStaticText.en,\n localeDropdownValue: localeDropdownValue,\n existingTranslation: null,\n activeTranslationQuestionGroups: [],\n activeEditTranslationQuestionGroups: [],\n activeEditTranslationQuestions: [],\n hostParams: {},\n});\n\nconst FormStore = new Store({\n ...defaultForm(),\n});\n\nconst QuestionGroupStore = new Store({\n questionGroups: [defaultQuestionGroup({})],\n});\n\nconst formFn = {\n add: defaultForm,\n store: FormStore,\n};\n\nconst questionGroupFn = {\n add: defaultQuestionGroup,\n store: QuestionGroupStore,\n};\n\nconst questionFn = {\n add: defaultQuestion,\n update: ({ id, type, questionGroup, params }) =>\n defaultQuestion({\n id: id,\n type: type,\n questionGroup: questionGroup,\n ...params,\n }),\n};\n\nexport {\n UIStore,\n questionType,\n formFn,\n questionGroupFn,\n questionFn,\n generateId,\n};\n","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\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)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\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","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n } // Use native if support\n\n\n if (root.contains) {\n return root.contains(n);\n } // `document.contains` not support with IE11\n\n\n var node = n;\n\n while (node) {\n if (node === root) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}","import canUseDom from './canUseDom';\nimport contains from './contains';\nvar APPEND_ORDER = 'data-rc-order';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\n\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n\n return MARK_KEY;\n}\n\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n\n var head = document.querySelector('head');\n return head || document.body;\n}\n\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n\n return prepend ? 'prepend' : 'append';\n}\n/**\n * Find style which inject by rc-util\n */\n\n\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\n\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!canUseDom()) {\n return null;\n }\n\n var csp = option.csp,\n prepend = option.prepend;\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, getOrder(prepend));\n\n if (csp === null || csp === void 0 ? void 0 : csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (prepend === 'queue') {\n var existStyle = findStyles(container).filter(function (node) {\n return ['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER));\n });\n\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n } // Use `insertBefore` as `prepend`\n\n\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n\n return styleNode;\n}\n\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\n\nexport function removeCSS(key) {\n var _existNode$parentNode;\n\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n existNode === null || existNode === void 0 ? void 0 : (_existNode$parentNode = existNode.parentNode) === null || _existNode$parentNode === void 0 ? void 0 : _existNode$parentNode.removeChild(existNode);\n}\n/**\n * qiankun will inject `appendChild` to insert into other\n */\n\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container); // Find real container when not cached or cached container removed\n\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n parentNode.removeChild(placeholderStyle);\n }\n}\n\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option); // Sync real parent\n\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n\n if (existNode) {\n var _option$csp, _option$csp2;\n\n if (((_option$csp = option.csp) === null || _option$csp === void 0 ? void 0 : _option$csp.nonce) && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n\n return existNode;\n }\n\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n\n var _useContext = useContext(IconContext),\n csp = _useContext.csp;\n\n useEffect(function () {\n updateCSS(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\n\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n// should move it to antd main repo?\n\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre;\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexport default CaretRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CaretRightOutlined = function CaretRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretRightOutlinedSvg\n }));\n};\n\nCaretRightOutlined.displayName = 'CaretRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretRightOutlined);","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\n\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import React from 'react';\nimport { Button, Row, Col } from 'antd';\nimport { UIStore } from '../lib/store';\nimport { PlusOutlined, CaretRightOutlined } from '@ant-design/icons';\n\nconst ButtonAddMove = ({\n text,\n className,\n movingItem = null,\n handleCancelMove = () => {},\n disabled = false,\n handleOnAdd = () => {},\n handleOnMove = () => {},\n}) => {\n const { buttonCancelText } = UIStore.useState((s) => s.UIText);\n\n return (\n \n \n : }\n >\n {text}\n \n \n {movingItem && (\n \n \n {buttonCancelText}\n \n \n )}\n \n );\n};\n\nexport default ButtonAddMove;\n","import React from 'react';\nimport { Button } from 'antd';\nimport styles from '../styles.module.css';\nimport { TbEdit, TbEditOff } from 'react-icons/tb';\nimport {\n RiSettings5Fill,\n RiSettings5Line,\n RiDeleteBin2Line,\n RiSave3Fill,\n} from 'react-icons/ri';\nimport { BiMove, BiCopy } from 'react-icons/bi';\nimport { MdOutlineAddCircleOutline } from 'react-icons/md';\nimport { AiOutlineEye, AiOutlineEyeInvisible } from 'react-icons/ai';\n\nconst ButtonWithIcon = ({\n type = 'delete-button',\n isExpand = false,\n onClick = () => {},\n onCancel = () => {},\n disabled = false,\n}) => {\n let buttonProps = {};\n switch (type) {\n case 'show-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'copy-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'move-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'edit-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'add-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'save-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'expand-all-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n default:\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n }\n return (\n \n );\n};\n\nexport default ButtonWithIcon;\n","import React from 'react';\nimport { Space, Tag } from 'antd';\nimport ButtonWithIcon from './ButtonWithIcon';\n\nconst CardTitle = ({ id, title, buttons, dependency = [] }) => {\n return (\n \n {!!dependency.length && (\n \n {dependency.length} Dependenc{dependency.length > 1 ? 'ies' : 'y'}\n \n )}\n {buttons?.map((cfg) => (\n cfg.onClick()}\n onCancel={() => cfg.onCancel()}\n disabled={cfg?.disabled}\n />\n ))}\n {title &&
{title}
}\n
\n );\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport styles from '../styles.module.css';\nimport { Form, Row, Col, Space, Typography } from 'antd';\n\nconst { Text } = Typography;\n\nconst TranslationFormItem = ({\n labelText = '',\n name = '',\n currentValue = '',\n children = '',\n initialValue = '',\n}) => {\n return (\n \n \n \n {labelText}\n {currentValue}\n \n \n \n {labelText}}\n className={styles['translation-form-item']}\n initialValue={initialValue}\n >\n {children}\n \n \n \n );\n};\n\nexport default TranslationFormItem;\n","import React from 'react';\nimport { Modal } from 'antd';\n\nconst AlertPopup = ({\n onConfirm,\n onCancel,\n visible,\n children,\n title = 'Alert',\n okButtonProps = {},\n okText = 'OK',\n}) => {\n return (\n \n {children}\n \n );\n};\n\nexport default AlertPopup;\n","import { questionType, generateId } from './store';\nimport { findIndex, isEmpty, mapKeys, orderBy } from 'lodash';\n\nconst clearQuestionObj = (\n keysToRemove = [],\n obj = false,\n checkEmpty = false\n) => {\n let clearedQuestion = {};\n if (obj) {\n Object.keys(obj).forEach((key) => {\n // filter obj by key to remove\n if (!keysToRemove.includes(key)) {\n if (!checkEmpty) {\n clearedQuestion = {\n ...clearedQuestion,\n [key]: obj[key],\n };\n return key;\n }\n // clear or remove empty obj value\n if (checkEmpty && !isEmpty(obj?.[key])) {\n clearedQuestion = {\n ...clearedQuestion,\n [key]: obj[key],\n };\n return key;\n }\n }\n });\n }\n return clearedQuestion;\n};\n\nconst clearTranslations = (obj, translations) => {\n let newObj = {\n ...obj,\n };\n const clearedTranslations = translations\n .map((tl) => {\n const clearedObj = clearQuestionObj([], tl, true);\n // remove translation if only has language property\n if (Object.keys(clearedObj).length === 1 && clearedObj?.language) {\n return false;\n }\n return clearedObj;\n })\n .filter((x) => x);\n if (clearedTranslations.length) {\n newObj = {\n ...newObj,\n translations: clearedTranslations,\n };\n } else {\n delete newObj?.translations;\n // remove translation\n }\n return newObj;\n};\n\nconst toEditor = (webFormData) => {\n webFormData = mapKeys(webFormData, (_, k) =>\n k === 'question_group' ? 'questionGroups' : k\n );\n const questionGroups = webFormData.questionGroups.map((qg, qgi) => {\n const gid = qg?.id || generateId() + qgi;\n qg = mapKeys(qg, (_, k) => (k === 'question' ? 'questions' : k));\n const questions = qg.questions.map((q, qi) => {\n const isNotOption = ![\n questionType.option,\n questionType.multiple_option,\n ].includes(q.type);\n if (isNotOption && q.type !== questionType.tree) {\n q = clearQuestionObj(['option'], q);\n }\n if (\n [questionType.option, questionType.multiple_option].includes(q.type)\n ) {\n q = mapKeys(q, (_, k) => (k === 'option' ? 'options' : k));\n }\n if (q?.options) {\n const options = q.options.map((o, oi) => ({\n id: o?.id || qi + 1 + (oi + 1),\n ...o,\n order: o?.order || oi + 1,\n }));\n q = {\n ...q,\n options: orderBy(options, 'order'),\n };\n }\n if (q?.dependency) {\n const dependency = q.dependency.map((d) => {\n if (d?.max) {\n d = { ...d, max: d.max + 1 };\n }\n if (d?.min) {\n d = { ...d, min: d.min - 1 };\n }\n return d;\n });\n q = { ...q, dependency: dependency };\n }\n return { ...q, order: q?.order || qi + 1, questionGroupId: gid };\n });\n qg = {\n ...qg,\n id: gid,\n order: qg?.order || qgi + 1,\n questions: orderBy(questions, 'order'),\n };\n return qg;\n });\n webFormData = {\n ...webFormData,\n questionGroups: orderBy(questionGroups, 'order'),\n };\n return webFormData;\n};\n\nconst toWebform = (formData, questionGroups) => {\n let webformData = {\n id: formData?.id || generateId(),\n name: formData.name,\n description: formData.description,\n };\n if (formData?.languages && formData?.languages?.length) {\n webformData = {\n ...webformData,\n languages: ['en', ...formData.languages],\n defaultLanguage: formData?.defaultLanguage || 'en',\n };\n }\n if (formData?.translations) {\n webformData = clearTranslations(webformData, formData.translations);\n }\n // Question Group & Question Definition\n const output = questionGroups.map((qg) => {\n const questions = qg.questions.map((q) => {\n const isNotOption = ![\n questionType.option,\n questionType.multiple_option,\n ].includes(q.type);\n if (q.type !== questionType.input) {\n q = clearQuestionObj(['requiredDoubleEntry', 'hiddenString'], q);\n }\n if (q.type !== questionType.number && q.type !== questionType.date) {\n q = clearQuestionObj(['rule'], q);\n }\n if (\n [questionType.option, questionType.multiple_option].includes(q.type)\n ) {\n const options = q.options.map((op) => {\n if (op?.translations) {\n return clearTranslations(op, op.translations);\n }\n return op;\n });\n q = { ...q, option: options };\n }\n if (isNotOption) {\n q = clearQuestionObj(['allowOther'], q);\n }\n if (q.type !== questionType.cascade) {\n q = clearQuestionObj(['api'], q);\n }\n if (q.type !== questionType.tree && isNotOption) {\n q = clearQuestionObj(['option'], q);\n }\n if (q.type !== questionType.table) {\n q = clearQuestionObj(['columns'], q);\n }\n if (!q?.tooltip) {\n q = clearQuestionObj(['tooltip'], q);\n }\n if (q?.dependency) {\n const dependency = q.dependency.map((d) => {\n if (d?.max) {\n d = { ...d, max: d.max - 1 };\n }\n if (d?.min) {\n d = { ...d, min: d.min + 1 };\n }\n return d;\n });\n q = { ...q, dependency: dependency };\n }\n if (q?.translations) {\n q = clearTranslations(q, q.translations);\n }\n if (\n q?.hint &&\n !q?.hint?.static &&\n (!q?.hint?.endpoint || !q?.hint?.path?.length)\n ) {\n q = clearQuestionObj(['hint'], q);\n }\n q = clearQuestionObj(['options'], q);\n return q;\n });\n let result = {\n id: qg.id,\n name: qg.name,\n order: qg.order,\n repeatable: qg.repeatable,\n question: questions,\n };\n if (qg?.repeatText) {\n result = {\n ...result,\n repeatText: qg.repeatText,\n };\n }\n if (qg?.description) {\n result = {\n ...result,\n description: qg.description,\n };\n }\n if (qg?.translations) {\n result = clearTranslations(result, qg.translations);\n }\n return result;\n });\n return { ...webformData, question_group: output };\n};\n\nconst generateTranslations = (\n key,\n value,\n savedTranslations,\n existingTranslation\n) => {\n const newTranslations = [\n {\n language: existingTranslation,\n [key]: value,\n },\n ];\n let currentTranslations = null;\n if (savedTranslations && savedTranslations?.length) {\n currentTranslations = savedTranslations.map((tl) => {\n if (tl.language === existingTranslation) {\n return {\n ...tl,\n [key]: value,\n };\n }\n return tl;\n });\n const isExistingExist = findIndex(\n savedTranslations,\n (tr) => tr.language === existingTranslation\n );\n if (isExistingExist === -1) {\n currentTranslations = [...currentTranslations, ...newTranslations];\n }\n }\n return {\n newTranslations: newTranslations,\n currentTranslations: currentTranslations,\n };\n};\n\nconst data = {\n clear: clearQuestionObj,\n toWebform: toWebform,\n toEditor: toEditor,\n generateTranslations: generateTranslations,\n};\n\nexport default data;\n","import React, { useMemo } from 'react';\nimport { Input } from 'antd';\nimport { UIStore, formFn } from '../../lib/store';\nimport { TranslationFormItem } from '../../support';\nimport data from '../../lib/data';\n\nconst FormDefinitionTranslation = () => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}`;\n\n const existingTranslationValues = useMemo(() => {\n return formStore?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n }, [formStore, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n formStore?.translations,\n existingTranslation\n );\n formFn.store.update((u) => {\n u.translations = !currentTranslations\n ? newTranslations\n : currentTranslations;\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeDescription = (e) => {\n updateTranslation('description', e?.target?.value);\n };\n\n return (\n
\n {formStore?.name && (\n \n \n \n )}\n {formStore?.description && (\n \n \n \n )}\n
\n );\n};\n\nexport default FormDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport styles from '../../styles.module.css';\nimport { Card, Input } from 'antd';\nimport { CardTitle, TranslationFormItem } from '../../support';\nimport { UIStore, questionGroupFn, questionType } from '../../lib/store';\nimport data from '../../lib/data';\nimport orderBy from 'lodash/orderBy';\n\nconst QuestionSettingTranslation = ({\n id,\n questionGroupId,\n name,\n type,\n tooltip = {},\n allowOther,\n allowOtherText,\n options = [],\n translations = [],\n}) => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}-question-${id}`;\n\n const existingTranslationValues = useMemo(() => {\n return translations?.find((tl) => tl.language === existingTranslation);\n }, [translations, existingTranslation]);\n\n const existingTooltipTranslationValues = useMemo(() => {\n return tooltip?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n }, [tooltip, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeTooltip = (e) => {\n const key = 'text';\n const value = e?.target?.value;\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n tooltip?.translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id && q?.tooltip?.text) {\n return {\n ...q,\n tooltip: {\n ...q.tooltip,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeAllowOtherText = (e) => {\n updateTranslation('allowOtherText', e?.target?.value);\n };\n\n const handleChangeOptionName = (e, optionTranslations, optionId) => {\n const key = 'name';\n const value = e?.target?.value;\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n optionTranslations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (\n q.id === id &&\n [questionType.option, questionType.multiple_option].includes(\n q.type\n )\n ) {\n const options = q.options.map((opt) => {\n if (opt.id === optionId) {\n return {\n ...opt,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return opt;\n });\n return {\n ...q,\n options: options,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n {name && (\n \n \n \n )}\n {tooltip?.text && (\n \n \n \n )}\n {/* Option Translation */}\n {[questionType.option, questionType.multiple_option].includes(type) && (\n
\n

\n {UIText.questionMoreOptionTranslationText}\n

\n {allowOther && allowOtherText && (\n \n \n \n )}\n {orderBy(options, 'order')\n .filter((d) => d?.name)\n .map((d, di) => {\n const existingOptionTranslationValues = d?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n return (\n \n \n handleChangeOptionName(e, d?.translations, d.id)\n }\n />\n \n );\n })}\n
\n )}\n
\n );\n};\n\nconst QuestionDefinitionTranslation = ({ index, question }) => {\n const { id, name, order, questionGroupOrder } = question;\n const { activeEditTranslationQuestions } = UIStore.useState((s) => s);\n\n const isEditTranslationQuestion = useMemo(() => {\n return activeEditTranslationQuestions.includes(id);\n }, [activeEditTranslationQuestions, id]);\n\n const handleEditTranslationQuestion = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = [\n ...activeEditTranslationQuestions,\n id,\n ];\n });\n };\n\n const handleCancelEditTranslationQuestion = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = activeEditTranslationQuestions.filter(\n (qId) => qId !== id\n );\n });\n };\n\n const cardTitleButton = [\n {\n type: 'show-button',\n isExpand: isEditTranslationQuestion,\n onClick: handleEditTranslationQuestion,\n onCancel: handleCancelEditTranslationQuestion,\n },\n ];\n\n return (\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n }}\n bodyStyle={{\n padding: isEditTranslationQuestion ? 24 : 0,\n borderTop: isEditTranslationQuestion ? '1px solid #f3f3f3' : 'none',\n }}\n >\n {isEditTranslationQuestion && (\n \n )}\n \n );\n};\n\nexport default QuestionDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport { Card, Input } from 'antd';\nimport { UIStore, questionGroupFn } from '../../lib/store';\nimport { CardTitle, TranslationFormItem } from '../../support';\nimport QuestionDefinitionTranslation from './QuestionDefinitionTranslation';\nimport data from '../../lib/data';\nimport { uniq, difference, intersection } from 'lodash';\n\nconst QuestionGroupSettingTranslation = ({\n id,\n name,\n description,\n repeatable,\n repeatText,\n translations = [],\n}) => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}-question_group-${id}`;\n\n const existingTranslationValues = useMemo(() => {\n return translations?.find((tl) => tl.language === existingTranslation);\n }, [translations, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === id) {\n return {\n ...qg,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeDescription = (e) => {\n updateTranslation('description', e?.target?.value);\n };\n\n const handleChangeRepeatText = (e) => {\n updateTranslation('repeatText', e?.target?.value);\n };\n\n return (\n
\n {name && (\n \n \n \n )}\n {description && (\n \n \n \n )}\n {repeatable && repeatText && (\n \n \n \n )}\n
\n );\n};\n\nconst QuestionGroupDefinitionTranslation = ({ index, questionGroup }) => {\n const { id, name, order, questions } = questionGroup;\n const {\n activeTranslationQuestionGroups,\n activeEditTranslationQuestionGroups,\n activeEditTranslationQuestions,\n } = UIStore.useState((s) => s);\n const questionIds = questions.map((q) => q.id);\n\n const showTranslationQuestion = useMemo(() => {\n return activeTranslationQuestionGroups.includes(id);\n }, [activeTranslationQuestionGroups, id]);\n\n const isEditTranslationQuestionGroup = useMemo(() => {\n return activeEditTranslationQuestionGroups.includes(id);\n }, [activeEditTranslationQuestionGroups, id]);\n\n const handleHideTranslationQuestions = () => {\n UIStore.update((s) => {\n s.activeTranslationQuestionGroups =\n activeTranslationQuestionGroups.filter((qgId) => qgId !== id);\n });\n };\n\n const handleCancelEditTranslationGroup = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestionGroups =\n activeEditTranslationQuestionGroups.filter((qgId) => qgId !== id);\n });\n handleHideTranslationQuestions();\n };\n\n const handleEditTranslationGroup = () => {\n UIStore.update((s) => {\n if (!activeEditTranslationQuestionGroups.includes(id)) {\n s.activeEditTranslationQuestionGroups = [\n ...activeEditTranslationQuestionGroups,\n id,\n ];\n } else {\n s.activeEditTranslationQuestionGroups =\n activeEditTranslationQuestionGroups.filter((a) => a !== id);\n }\n });\n };\n\n const handleExpandAll = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestionGroups = uniq([\n ...activeEditTranslationQuestionGroups,\n id,\n ]);\n s.activeEditTranslationQuestions = uniq([\n ...s.activeEditTranslationQuestions,\n ...questionIds,\n ]);\n });\n };\n\n const handleCancelExpandAll = () => {\n handleCancelEditTranslationGroup();\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = difference(\n s.activeEditTranslationQuestions,\n questionIds\n );\n });\n };\n\n const cardTitleButton = [\n {\n type: 'show-button',\n isExpand: isEditTranslationQuestionGroup,\n onClick: handleEditTranslationGroup,\n onCancel: handleCancelEditTranslationGroup,\n },\n ];\n\n const cardExtraButton = [\n {\n type: 'expand-all-button',\n isExpand: intersection(activeEditTranslationQuestions, questionIds)\n .length,\n onClick: handleExpandAll,\n onCancel: handleCancelExpandAll,\n },\n ];\n\n return (\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n }}\n bodyStyle={{\n padding:\n isEditTranslationQuestionGroup || showTranslationQuestion ? 24 : 0,\n borderTop:\n isEditTranslationQuestionGroup || showTranslationQuestion\n ? '1px solid #f3f3f3'\n : 'none',\n }}\n extra={}\n >\n {isEditTranslationQuestionGroup && (\n \n )}\n {isEditTranslationQuestionGroup &&\n questions.map((q, qi) => (\n \n ))}\n \n );\n};\n\nexport default QuestionGroupDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport styles from '../styles.module.css';\nimport { Row, Col, Divider, Tag, Select, Form, Space } from 'antd';\nimport { UIStore, formFn, questionGroupFn } from '../lib/store';\nimport {\n FormDefinitionTranslation,\n QuestionGroupDefinitionTranslation,\n} from './translations';\n\nconst staticDefaultLang = 'en';\n\nconst ExistingTranslation = () => {\n const { localeDropdownValue, existingTranslation } = UIStore.useState(\n (s) => s\n );\n const formStore = formFn.store.useState((s) => s);\n const languages = formStore?.languages || [];\n\n const handleCloseTag = (lang) => {\n UIStore.update((u) => {\n u.existingTranslation =\n existingTranslation === lang ? null : existingTranslation;\n });\n // remove deleted translation from translations list\n formFn.store.update((u) => {\n u.languages = languages.filter((ln) => ln !== lang);\n u.translations = formStore?.translations?.filter(\n (tl) => tl.language !== lang\n );\n });\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n const questions = qg.questions.map((q) => {\n let newObj = q;\n if (q?.options && q?.options?.length) {\n const options = q.options.map((op) => ({\n ...op,\n translations: op?.translations?.filter(\n (tl) => tl.language !== lang\n ),\n }));\n newObj = {\n ...newObj,\n options: options,\n };\n }\n return {\n ...newObj,\n translations: q?.translations?.filter((tl) => tl.language !== lang),\n };\n });\n return {\n ...qg,\n questions: questions,\n translations: qg?.translations?.filter((tl) => tl.language !== lang),\n };\n });\n });\n };\n\n return languages.map((lang) => {\n const findLang = localeDropdownValue.find((lc) => lc.value === lang);\n return (\n \n UIStore.update((u) => {\n u.existingTranslation = existingTranslation !== lang ? lang : null;\n })\n }\n >\n handleCloseTag(lang)}\n >\n {findLang.label}\n \n \n );\n });\n};\n\nconst FormTranslations = () => {\n const [formTranslation] = Form.useForm();\n const { UIText, localeDropdownValue } = UIStore.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s?.questionGroups\n );\n\n const languages = useMemo(() => {\n return formStore?.languages || [];\n }, [formStore?.languages]);\n\n const defaultLangDropdownValue = useMemo(() => {\n return localeDropdownValue.filter((ld) =>\n [staticDefaultLang, ...languages].includes(ld.value)\n );\n }, [localeDropdownValue, languages]);\n\n return (\n \n \n \n

{UIText.inputFormDefaultLanguageLabel}

\n \n formFn.store.update((u) => {\n u.defaultLanguage = e;\n })\n }\n value={formStore?.defaultLanguage || staticDefaultLang}\n disabled={defaultLangDropdownValue.length === 1}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n />\n \n \n

{UIText.inputFormTranslationLabel}

\n \n formFn.store.update((u) => {\n u.languages = [...languages, e];\n })\n }\n value={[]}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n >\n {localeDropdownValue.map((ld, ldi) => (\n \n {ld.label}\n \n ))}\n \n \n \n

{UIText.inputFormExistingTranslationsLabel}

\n \n \n \n \n \n \n \n \n {questionGroups.map((qg, qgi) => {\n return (\n \n );\n })}\n \n \n );\n};\n\nexport default FormTranslations;\n","import React from 'react';\nimport 'akvo-react-form/dist/index.css';\nimport { Webform } from 'akvo-react-form';\nimport { formFn, questionGroupFn } from '../lib/store';\nimport data from '../lib/data';\n\nconst FormPreview = () => {\n const { questionGroups } = questionGroupFn.store.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n\n return ;\n};\n\nexport default FormPreview;\n","import React, { useEffect } from 'react';\nimport { Form, Input } from 'antd';\nimport { UIStore, formFn } from '../lib/store';\n\nconst FormDefinition = ({ name, description }) => {\n const form = Form.useFormInstance();\n const UIText = UIStore.useState((s) => s.UIText);\n const { inputFormNameLabel, inputFormDescriptionLabel } = UIText;\n\n useEffect(() => {\n form.setFieldsValue({ 'form-name': name });\n form.setFieldsValue({ 'form-description': description });\n }, [form, name, description]);\n\n return (\n \n \n \n formFn.store.update((u) => {\n u.name = e?.target?.value;\n })\n }\n />\n \n \n \n formFn.store.update((u) => {\n u.description = e?.target?.value;\n })\n }\n />\n \n \n );\n};\n\nexport default FormDefinition;\n","import React from 'react';\nimport { Form, Input, Checkbox, Row, Col } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionGroupFn } from '../lib/store';\n\nconst QuestionGroupSetting = ({\n id,\n name,\n description,\n repeatable,\n repeatText,\n}) => {\n const namePreffix = `question_group-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n\n const handleChangeName = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, name: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n const handleChangeDescription = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, description: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n const handleChangeRepeatable = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, repeatable: e?.target?.checked };\n }\n return x;\n });\n });\n };\n\n const handleChangeRepeatText = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, repeatText: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n {' '}\n {UIText.inputRepeatThisGroupCheckbox}\n \n \n \n {repeatable && (\n \n \n \n \n \n )}\n \n
\n );\n};\n\nexport default QuestionGroupSetting;\n","import React from 'react';\nimport { Form, Checkbox, Space } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingInput = ({\n id,\n questionGroupId,\n requiredDoubleEntry,\n hiddenString,\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n\n const updateState = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeDoubleEntry = (e) => {\n updateState('requiredDoubleEntry', e?.target?.checked);\n };\n\n const handleChangeHiddenString = (e) => {\n updateState('hiddenString', e?.target?.checked);\n };\n\n return (\n
\n

\n {UIText.questionMoreInputTypeSettingText}\n

\n \n \n \n {' '}\n {UIText.inputQuestionRequireDoubleEntryCheckbox}\n \n \n \n \n {' '}\n {UIText.inputQuestionHiddenStringCheckbox}\n \n \n \n
\n );\n};\n\nexport default SettingInput;\n","import React from 'react';\nimport { Form, Checkbox, Space, InputNumber, Row, Col } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingNumber = ({\n id,\n questionGroupId,\n rule = {\n allowDecimal: false,\n min: null,\n max: null,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const allowDecimal = rule?.allowDecimal;\n const min = rule?.min;\n const max = rule?.max;\n\n const moreNumberSettings = [\n {\n label: UIText.inputQuestionMinimumValueLabel,\n value: min,\n key: 'min',\n rules: {\n max: max - 1,\n message: `${UIText.inputQuestionMinimumValidationText} ${max}`,\n },\n },\n {\n label: UIText.inputQuestionMaximumValueLabel,\n value: max,\n key: 'max',\n rules: {\n min: min + 1,\n message: `${UIText.inputQuestionMaximumValidationText} ${min}`,\n },\n },\n ];\n\n const updateState = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n rule: {\n ...q?.rule,\n [name]: value,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeAllowDecimal = (e) => {\n updateState('allowDecimal', e?.target?.checked);\n };\n\n const handleChangeMinMax = (key, e) => {\n updateState(key, e);\n };\n\n return (\n
\n

\n {UIText.questionMoreInputNumberSettingText}\n

\n \n \n \n {' '}\n {UIText.inputQuestionAllowDecimalCheckbox}\n \n \n \n \n {moreNumberSettings.map((x) => (\n \n \n handleChangeMinMax(x.key, e)}\n />\n \n \n ))}\n \n
\n );\n};\n\nexport default SettingNumber;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Checkbox, Space, Row, Col, Input, Button } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn, generateId } from '../../lib/store';\nimport {\n MdOutlineRemoveCircleOutline,\n MdOutlineAddCircleOutline,\n MdOutlineArrowCircleDown,\n MdOutlineArrowCircleUp,\n} from 'react-icons/md';\nimport { orderBy, takeRight } from 'lodash';\n\nconst defaultOptions = ({ init = false, order = 0 }) => {\n const option = {\n code: null,\n name: 'New Option',\n order: 1,\n };\n if (init) {\n return [\n {\n ...option,\n id: generateId(),\n name: 'New Option 1',\n order: 1,\n },\n {\n ...option,\n id: generateId() + 1,\n name: 'New Option 2',\n order: 2,\n },\n ];\n }\n return {\n ...option,\n id: generateId(),\n order: order,\n };\n};\n\nconst SettingOption = ({\n id,\n questionGroupId,\n allowOther,\n allowOtherText,\n options: initialOptions,\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const [options, setOptions] = useState(\n initialOptions?.length\n ? initialOptions.map((x, xi) => ({\n ...x,\n code: x?.code || null,\n id: x?.id || generateId() + xi,\n order: x?.order || xi + 1,\n }))\n : defaultOptions({ init: true })\n );\n\n const updateState = useCallback(\n (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n useEffect(() => {\n updateState('options', options);\n }, [options, id, questionGroupId, updateState]);\n\n const handleOnChangeAllowOther = (e) => {\n updateState('allowOther', e?.target?.checked);\n };\n\n const handleOnChangeAllowOtherText = (e) => {\n updateState('allowOtherText', e?.target?.value);\n };\n\n const handleOnChangeCode = (e, current) => {\n const { id: currentId } = current;\n setOptions(\n options.map((opt) => {\n if (opt.id === currentId) {\n return {\n ...opt,\n code: e?.target?.value,\n };\n }\n return opt;\n })\n );\n };\n\n const handleOnChangeOption = (e, current) => {\n const { id: currentId } = current;\n setOptions(\n options.map((opt) => {\n if (opt.id === currentId) {\n return {\n ...opt,\n name: e?.target?.value,\n };\n }\n return opt;\n })\n );\n };\n\n const handleOnAddOption = (current) => {\n const { order: currentOrder } = current;\n const lastOrder = takeRight(orderBy(options, 'order'))[0].order;\n // reorder prev option\n const reorderOptions = options.map((opt) => {\n if (opt.order > currentOrder) {\n opt['order'] = opt['order'] + 1;\n }\n if (\n opt.order < currentOrder &&\n opt.order !== 1 &&\n currentOrder !== lastOrder\n ) {\n opt['order'] = opt['order'] - 1;\n }\n return opt;\n });\n const addOptions = [\n ...reorderOptions,\n defaultOptions({ order: currentOrder + 1 }),\n ];\n setOptions(orderBy(addOptions, 'order'));\n };\n\n const handleOnMoveOption = (current, targetOrder) => {\n const { order: currentOrder } = current;\n\n const prevOptions = options.filter(\n (opt) => opt.order !== currentOrder && opt.order !== targetOrder\n );\n const currentOption = options\n .filter((opt) => opt.order === currentOrder)\n .map((opt) => ({\n ...opt,\n order: targetOrder,\n }));\n const targetOption = options\n .filter((opt) => opt.order === targetOrder)\n .map((opt) => ({\n ...opt,\n order: currentOrder,\n }));\n setOptions(\n orderBy([...prevOptions, ...currentOption, ...targetOption], 'order')\n );\n };\n\n const handleOnDeleteOption = (currentId) => {\n // delete and reorder\n setOptions(\n orderBy(options, 'order')\n .filter((opt) => opt.id !== currentId)\n .map((opt, opti) => ({ ...opt, order: opti + 1 }))\n );\n };\n\n return (\n
\n

\n {UIText.questionMoreOptionTypeSettingText}\n

\n \n \n \n \n {' '}\n {UIText.inputQuestionAllowOtherCheckbox}\n \n \n \n {allowOther && (\n \n \n \n \n \n )}\n \n {orderBy(options, 'order').map((d, di) => (\n \n \n \n handleOnChangeCode(e, d)}\n allowClear\n />\n \n \n \n \n handleOnChangeOption(e, d)}\n allowClear\n />\n \n \n \n \n }\n onClick={() => handleOnAddOption(d)}\n />\n }\n onClick={() => handleOnMoveOption(d, d.order - 1)}\n disabled={di === 0}\n />\n }\n onClick={() => handleOnMoveOption(d, d.order + 1)}\n disabled={di === options.length - 1}\n />\n }\n onClick={() => handleOnDeleteOption(d.id)}\n disabled={options.length === 1}\n />\n \n \n \n ))}\n
\n );\n};\n\nexport default SettingOption;\n","import React from 'react';\nimport { Form, Select } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingTree = ({ id, questionGroupId, option }) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingTreeDropdownValue = hostParams?.settingTreeDropdownValue;\n\n const handleChangeTreeDropdown = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n option: e,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreTreeSettingText}\n

\n \n triggerNode.parentElement}\n onChange={handleChangeTreeDropdown}\n />\n \n
\n );\n};\n\nexport default SettingTree;\n","import React, { useMemo } from 'react';\nimport { Form, Checkbox, Row, Col, Input, InputNumber, Select } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingCascade = ({\n id,\n questionGroupId,\n api = {\n endpoint: null,\n initial: 0,\n list: false,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingCascadeURL = hostParams?.settingCascadeURL;\n const form = Form.useFormInstance();\n\n const cascadeURLDropdownValue = useMemo(() => {\n return settingCascadeURL.map((x) => ({ label: x.name, value: x.id }));\n }, [settingCascadeURL]);\n\n const updateGlobalState = (values = {}) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n api: {\n ...q?.api,\n ...values,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeEndpoint = (e) => {\n const findURL = settingCascadeURL.find((x) => x.id === e);\n if (findURL) {\n form.setFieldsValue({\n [`${namePreffix}-api_initial`]: findURL.initial,\n [`${namePreffix}-api_list`]: findURL.list,\n });\n updateGlobalState({\n endpoint: findURL.endpoint,\n initial: findURL.initial || 0,\n list: findURL.list || false,\n });\n }\n };\n\n const handleChangeInitial = (e) => {\n updateGlobalState({ initial: e });\n };\n\n const handleChangeList = (value) => {\n updateGlobalState({\n list: value,\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreCascadeSettingText}\n

\n \n \n \n triggerNode.parentElement}\n onChange={handleChangeEndpoint}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n handleChangeList(e?.target?.checked)}\n checked={api?.list ? true : false}\n >\n {' '}\n {UIText.inputQuestionListCheckbox}\n \n \n \n {api?.list && (\n \n \n handleChangeList(e?.target?.value)}\n allowClear\n />\n \n \n )}\n \n
\n );\n};\n\nexport default SettingCascade;\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","import React from 'react';\nimport { Form, DatePicker, Row, Col } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\nimport moment from 'moment';\nimport isEmpty from 'lodash/isEmpty';\n\nconst SettingDate = ({\n id,\n questionGroupId,\n rule = { minDate: null, maxDate: null },\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const minDate = rule?.minDate;\n const maxDate = rule?.maxDate;\n\n const moreDateSettings = [\n {\n label: UIText.inputQuestionAfterDateValueLabel,\n value: minDate,\n key: 'minDate',\n disabledDate: (current) =>\n current && maxDate && current >= moment(maxDate),\n },\n {\n label: UIText.inputQuestionBeforeDateValueLabel,\n value: maxDate,\n key: 'maxDate',\n disabledDate: (current) =>\n current && minDate && current <= moment(minDate),\n },\n ];\n\n const handleChangeAfterBefore = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n if (value) {\n return {\n ...q,\n rule: {\n ...q?.rule,\n [name]: moment(value).format('YYYY-MM-DD'),\n },\n };\n }\n if (!value && q?.rule?.[name]) {\n delete q.rule[name];\n if (isEmpty(q.rule)) {\n delete q.rule;\n }\n }\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreInputDateSettingText}\n

\n \n {moreDateSettings.map((x) => (\n \n \n handleChangeAfterBefore(x.key, e)}\n />\n \n \n ))}\n \n
\n );\n};\n\nexport default SettingDate;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Input, Select, Row, Col, Card, Button, Space } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn, generateId } from '../../lib/store';\nimport {\n MdOutlineRemoveCircleOutline,\n MdOutlineAddCircleOutline,\n MdOutlineArrowCircleDown,\n MdOutlineArrowCircleUp,\n} from 'react-icons/md';\nimport { takeRight, orderBy } from 'lodash';\n\nconst generateColumnName = (text) =>\n text.trim().toLowerCase().split(' ').join('_');\n\nconst columnType = {\n input: 'input',\n number: 'number',\n option: 'option',\n text: 'text',\n};\n\nconst defaultColumns = ({ init = false }) => {\n const column = {\n name: null,\n label: null,\n type: null,\n };\n if (init) {\n return [{ ...column, id: generateId() }];\n }\n return { ...column, id: generateId() };\n};\n\nconst defaultColumnOptions = ({ init = false, order = 0 }) => {\n const option = {\n name: 'New Option',\n order: 1,\n };\n if (init) {\n return [{ ...option, id: generateId() }];\n }\n return { ...option, id: generateId(), order: order };\n};\n\nconst SettingTable = ({ id, questionGroupId, columns: initialColumns }) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const [columns, setColumns] = useState(\n initialColumns?.length\n ? initialColumns.map((cl, cli) => {\n if (cl?.options && cl?.options?.length) {\n const options = cl.options.map((op, opi) => ({\n ...op,\n id: op?.id || generateId() + initialColumns.length + opi + 1,\n }));\n return {\n ...cl,\n id: cl?.id || generateId() + cli,\n options: options,\n };\n }\n return {\n ...cl,\n id: cl?.id || generateId() + cli,\n };\n })\n : defaultColumns({ init: true })\n );\n\n const columnTypeOptions = Object.keys(columnType).map((key) => ({\n label: columnType[key],\n value: key,\n }));\n\n useEffect(() => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return { ...q, columns: columns };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n }, [id, questionGroupId, columns]);\n\n const updateColumns = useCallback(\n (columnId, obj) => {\n const updatedColumn = columns.map((cl) => {\n if (cl.id === columnId) {\n return {\n ...cl,\n ...obj,\n };\n }\n return cl;\n });\n setColumns(updatedColumn);\n },\n [columns]\n );\n\n const handleChangeColumnName = (columnId, value) => {\n updateColumns(columnId, { name: generateColumnName(value), label: value });\n };\n\n const handleChangeColumnType = (columnId, value) => {\n let obj = { type: value };\n if (value === columnType.option) {\n obj = { ...obj, options: defaultColumnOptions({ init: true }) };\n }\n updateColumns(columnId, obj);\n };\n\n const handleAddColumn = () => {\n const addColumns = [...columns, defaultColumns({ init: false })];\n setColumns(addColumns);\n };\n\n const handleDeleteColumn = (currentColumn) => {\n const updatedColumn = columns.filter((cl) => cl.id !== currentColumn.id);\n setColumns(updatedColumn);\n };\n\n const handleOnAddOption = (currentColumn, currentOption) => {\n const { id: columnId, options } = currentColumn;\n const { order: currentOrder } = currentOption;\n const lastOrder = takeRight(orderBy(options, 'order'))[0].order;\n // reorder prev option\n const reorderOptions = options.map((opt) => {\n let order = opt.order;\n if (opt.order > currentOrder) {\n order = order + 1;\n }\n if (\n opt.order < currentOrder &&\n opt.order !== 1 &&\n currentOrder !== lastOrder\n ) {\n order = order - 1;\n }\n return { ...opt, order: order };\n });\n const addOptions = [\n ...reorderOptions,\n defaultColumnOptions({ order: currentOrder + 1 }),\n ];\n updateColumns(columnId, { options: addOptions });\n };\n\n const handleOnMoveOption = (currentColumn, currentOption, targetOrder) => {\n const { id: columnId, options } = currentColumn;\n const { order: currentOrder } = currentOption;\n // handle move\n const prevOptions = options.filter(\n (opt) => opt.order !== currentOrder && opt.order !== targetOrder\n );\n const currentOptions = options\n .filter((opt) => opt.order === currentOrder)\n .map((opt) => ({\n ...opt,\n order: targetOrder,\n }));\n const targetOptions = options\n .filter((opt) => opt.order === targetOrder)\n .map((opt) => ({\n ...opt,\n order: currentOrder,\n }));\n updateColumns(columnId, {\n options: orderBy(\n [...prevOptions, ...currentOptions, ...targetOptions],\n 'order'\n ),\n });\n };\n\n const handleOnDeleteOption = (currentColumn, currentOptionId) => {\n const { id: columnId, options } = currentColumn;\n // delete and reorder\n updateColumns(columnId, {\n options: orderBy(options, 'order')\n .filter((opt) => opt.id !== currentOptionId)\n .map((opt, opti) => ({ ...opt, order: opti + 1 })),\n });\n };\n\n const handleOnChangeOption = (currentColumn, currentOption, value) => {\n const { id: columnId, options } = currentColumn;\n const { id: currentOptId } = currentOption;\n const updatedOptions = options.map((op) => {\n if (op.id === currentOptId) {\n return {\n ...op,\n name: value,\n };\n }\n return op;\n });\n updateColumns(columnId, { options: updatedOptions });\n };\n\n return (\n
\n

{UIText.questionMoreTableTypeSettingText}

\n {columns.map((cl, cli) => {\n return (\n \n {`Column - ${cli + 1}`}\n \n \n }\n onClick={() => handleAddColumn()}\n />\n }\n onClick={() => handleDeleteColumn(cl)}\n disabled={columns.length === 1}\n />\n \n \n \n }\n >\n \n \n \n \n handleChangeColumnName(cl.id, e?.target?.value)\n }\n />\n \n \n \n \n \n triggerNode.parentElement\n }\n onChange={(val) => handleChangeColumnType(cl.id, val)}\n />\n \n \n \n {cl.type === columnType.option && (\n
\n

{UIText.questionTableTypeDefineOptionsText}

\n {cl?.options?.map((op, opi) => {\n return (\n \n \n \n \n handleOnChangeOption(cl, op, e?.target?.value)\n }\n />\n \n \n \n \n }\n onClick={() => handleOnAddOption(cl, op)}\n />\n }\n onClick={() =>\n handleOnMoveOption(cl, op, op.order - 1)\n }\n disabled={opi === 0}\n />\n }\n onClick={() =>\n handleOnMoveOption(cl, op, op.order + 1)\n }\n disabled={opi === cl.options.length - 1}\n />\n }\n onClick={() => handleOnDeleteOption(cl, op.id)}\n disabled={cl.options.length === 1}\n />\n \n \n \n );\n })}\n
\n )}\n \n
\n \n );\n })}\n
\n );\n};\n\nexport default SettingTable;\n","import React, { useMemo } from 'react';\nimport styles from '../styles.module.css';\nimport { Form, Row, Col, Select, Input } from 'antd';\nimport { UIStore, questionGroupFn } from '../lib/store';\nimport { useCallback } from 'react';\n\nconst QuestionHint = ({\n id,\n questionGroupId,\n hint = {\n id: null,\n endpoint: null,\n path: [],\n static: null,\n buttonText: null,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingHintURL = hostParams?.settingHintURL?.settings;\n const form = Form.useFormInstance();\n\n const updateGlobalState = useCallback(\n (values = {}) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n hint: {\n ...q?.hint,\n ...values,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const hintURLDropdownValue = useMemo(() => {\n return settingHintURL && settingHintURL?.length\n ? settingHintURL.map((x) => ({\n label: x.name,\n value: x.id,\n }))\n : [];\n }, [settingHintURL]);\n\n const hintPathDropdownValue = useMemo(() => {\n let endpoint = hint?.endpoint;\n if (hint?.endpoint && endpoint.includes(String(id))) {\n endpoint = endpoint.replace(`/${String(id)}`, '');\n }\n const findURL = settingHintURL.find(\n (x) => x.id === hint?.id || x.endpoint === endpoint\n );\n updateGlobalState({ id: findURL?.id });\n return findURL?.path || [];\n }, [settingHintURL, hint?.id, hint?.endpoint, id, updateGlobalState]);\n\n const handleChangeEndpoint = (e) => {\n const findURL = settingHintURL.find((x) => x.id === e);\n form.setFieldsValue({\n [`${namePreffix}-hint_path`]: [],\n });\n updateGlobalState({\n id: e, // set current URL id\n endpoint: findURL?.endpoint ? `${findURL.endpoint}/${id}` : null,\n path: [],\n });\n };\n\n const handleChangePath = (val) => {\n updateGlobalState({\n path: val,\n });\n };\n\n const handleChangeStaticValue = (e) => {\n updateGlobalState({\n id: null,\n static: e?.target?.value,\n endpoint: null,\n path: [],\n });\n };\n\n const handleChangeButtonText = (e) => {\n updateGlobalState({\n buttonText: e?.target?.value,\n });\n };\n\n return (\n
\n

\n {UIText.questionHintSettingText}\n

\n \n \n \n triggerNode.parentElement}\n onChange={handleChangeEndpoint}\n value={hint?.id}\n disabled={hint?.static}\n />\n \n \n \n \n \n \n \n triggerNode.parentElement}\n onChange={handleChangePath}\n disabled={hint?.static}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default QuestionHint;\n","import React, { useCallback, useMemo } from 'react';\nimport { Form, Input, Select, Checkbox, Alert, Row, Col, Popover } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionType, questionGroupFn } from '../lib/store';\nimport {\n SettingInput,\n SettingTree,\n SettingNumber,\n SettingOption,\n SettingCascade,\n SettingDate,\n SettingTable,\n} from './question-type';\nimport QuestionHint from './QuestionHint';\nimport { map, groupBy, orderBy, isEmpty } from 'lodash';\nimport { AiOutlineQuestionCircle } from 'react-icons/ai';\n\nconst QuestionSetting = ({ question, dependant }) => {\n const {\n id,\n name,\n type,\n variable,\n tooltip,\n required,\n questionGroupId,\n meta,\n disableDelete,\n } = question;\n const namePreffix = `question-${id}`;\n const form = Form.useFormInstance();\n const qType = Form.useWatch(`${namePreffix}-type`, form);\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const limitQuestionType = hostParams?.limitQuestionType;\n const settingHintURL = hostParams?.settingHintURL;\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n\n const disableMetaForGeo = useMemo(() => {\n const metaGeoQuestionDefined = questionGroups\n .flatMap((qg) =>\n qg.questions.filter((q) => q.type === questionType.geo && q?.meta)\n )\n .map((q) => q.id);\n return (\n type === questionType.geo &&\n metaGeoQuestionDefined.length &&\n !metaGeoQuestionDefined.includes(id)\n );\n }, [questionGroups, type, id]);\n\n const showMetaCheckbox = useMemo(() => {\n const currentQuestionGroup = questionGroups.find(\n (qg) => qg.id === questionGroupId\n );\n return (\n ![questionType.tree, questionType.table].includes(type) &&\n !currentQuestionGroup?.repeatable\n );\n }, [type, questionGroups, questionGroupId]);\n\n const questionTypeDropdownValue = useMemo(() => {\n if (limitQuestionType && limitQuestionType?.length) {\n return limitQuestionType;\n }\n return Object.keys(questionType).map((key) => ({\n label: questionType[key]?.split('_').join(' '),\n value: questionType[key],\n }));\n }, [limitQuestionType]);\n\n const showHintSetting = useMemo(() => {\n if (!settingHintURL || !settingHintURL?.settings?.length) {\n return false;\n }\n if (\n settingHintURL?.questionTypes &&\n settingHintURL?.questionTypes?.length\n ) {\n return settingHintURL.questionTypes.includes(type);\n }\n return settingHintURL?.settings?.length;\n }, [settingHintURL, type]);\n\n const updateState = useCallback(\n (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const defaultTypeValue = useMemo(() => {\n if (questionTypeDropdownValue.length) {\n const checkType = questionTypeDropdownValue.find((x) => x.value === type);\n if (checkType) {\n return type;\n }\n if (!isEmpty(defaultQuestionParam) && defaultQuestionParam?.type) {\n updateState('type', defaultQuestionParam.type);\n return defaultQuestionParam.type;\n }\n const checkText = questionTypeDropdownValue.find(\n (x) => x.value === questionType.text\n );\n const defType = checkText\n ? checkText.value\n : questionTypeDropdownValue?.[0]?.value;\n updateState('type', defType);\n return defType;\n }\n return type;\n }, [type, questionTypeDropdownValue, defaultQuestionParam, updateState]);\n\n const handleChangeName = (e) => {\n updateState('name', e?.target?.value);\n };\n\n const handleChangeType = (e) => {\n updateState('type', e);\n };\n\n const handleChangeVariableName = (e) => {\n updateState('variableName', e?.target?.value);\n };\n\n const handleChangeTooltip = (e) => {\n const value = e?.target?.value;\n if (value) {\n updateState('tooltip', { ...tooltip, text: value });\n } else {\n updateState('tooltip', null);\n }\n };\n\n const handleChangeRequired = (e) => {\n updateState('required', e?.target?.checked);\n };\n\n const handleChangeMeta = (e) => {\n updateState('meta', e?.target?.checked);\n };\n\n const dependantGroup = map(\n groupBy(\n dependant.map((x) => ({\n name: `${x.questionGroup.order}.${x.order}. ${x.name}`,\n group: `${x.questionGroup.order}. ${x.questionGroup.name}`,\n })),\n 'group'\n ),\n (i, g) => ({\n items: orderBy(i, 'name'),\n group: g,\n })\n );\n\n return (\n
\n {!!dependant.length && (\n \n
    \n Dependant Questions:\n {dependantGroup.map((d, di) => (\n
  • \n {d.group}\n
      \n {d.items.map((i, ii) => (\n
    • {i.name}
    • \n ))}\n
    \n
  • \n ))}\n
\n
\n }\n type=\"info\"\n style={{ marginBottom: 24 }}\n />\n )}\n \n \n \n \n triggerNode.parentElement}\n onChange={handleChangeType}\n disabled={dependant.length || disableDelete}\n />\n \n \n \n \n \n \n \n \n \n \n \n {' '}\n {UIText.inputQuestionRequiredCheckbox}\n \n \n \n {showMetaCheckbox && (\n \n
\n \n \n {' '}\n {UIText.inputQuestionMetaCheckbox}\n \n {UIText.inputQuestionMetaCheckboxHint}}\n >\n \n \n \n
\n \n )}\n \n {showHintSetting && }\n {qType === questionType.input && }\n {qType === questionType.number && }\n {[questionType.option, questionType.multiple_option].includes(qType) && (\n \n )}\n {qType === questionType.tree && }\n {qType === questionType.cascade && }\n {qType === questionType.date && }\n {qType === questionType.table && }\n \n );\n};\n\nexport default QuestionSetting;\n","import React, { useMemo, useState, useEffect, useCallback } from 'react';\nimport {\n Form,\n Select,\n Row,\n Col,\n InputNumber,\n Input,\n Alert,\n Space,\n DatePicker,\n} from 'antd';\nimport styles from '../styles.module.css';\nimport { ButtonWithIcon } from '../support';\nimport {\n UIStore,\n questionGroupFn,\n generateId,\n questionType,\n} from '../lib/store';\nimport { groupBy, map } from 'lodash';\nimport moment from 'moment';\n\nconst dependencyTypes = [\n {\n type: [questionType.option, questionType.multiple_option],\n logicDropdowns: [\n {\n label: 'contains',\n value: 'options',\n },\n ],\n },\n {\n type: [questionType.number],\n logicDropdowns: [\n {\n label: 'not equal',\n value: 'notEqual',\n },\n {\n label: 'less than',\n value: 'max',\n },\n {\n label: 'greater than',\n value: 'min',\n },\n ],\n },\n {\n type: [questionType.date],\n logicDropdowns: [\n {\n label: 'before',\n value: 'before',\n },\n {\n label: 'after',\n value: 'after',\n },\n ],\n },\n];\n\nconst defaultSkipLogic = () => {\n return [\n {\n id: generateId(),\n dependentTo: null,\n dependentToType: null,\n dependentLogic: null,\n dependentAnswer: null,\n dependencyLogicDropdownValue: [],\n dependencyAnswerDropdownValue: [],\n },\n ];\n};\n\nconst fetchDependencyLogicDropdown = (question) => {\n const value = dependencyTypes.find((dt) =>\n dt.type.includes(question.type)\n )?.logicDropdowns;\n return value || [];\n};\n\nconst fetchDependencyAnswerDropdown = (question) => {\n if (question?.options) {\n return question.options.map((opt) => ({\n label: opt.name,\n value: opt.name,\n }));\n }\n return [];\n};\n\nconst transformDependencyValue = (dependency, questionGroups) => {\n // transform dependency to match default skip logic format\n const questions = questionGroups.flatMap((qg) => qg.questions);\n const logicDropdowns = dependencyTypes\n .flatMap((d) => d.logicDropdowns)\n .map((x) => x.value);\n const value = dependency.map((d) => {\n let dependentLogic = null;\n const dependentAnswer = logicDropdowns\n .map((lg) => {\n if (d?.[lg]) {\n dependentLogic = lg;\n }\n return d?.[lg];\n })\n .filter((x) => x)?.[0];\n const findQ = questions.find((q) => q.id === d.id);\n return {\n id: generateId(),\n dependentTo: d.id,\n dependentToType: findQ.type,\n dependentLogic: dependentLogic,\n dependentAnswer: dependentAnswer,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(findQ),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(findQ),\n };\n });\n return value;\n};\n\nconst SettingSkipLogic = ({\n question,\n questions,\n dependency,\n dependencies,\n setDependencies,\n dependentToQuestions,\n}) => {\n const { id, questionGroupId, dependency: savedDependency } = question;\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const form = Form.useFormInstance();\n\n const updateGlobalStore = useCallback(\n (dependencyValue, isDelete = false) => {\n const transformDependencies = dependencyValue\n .map((dp) => {\n return {\n id: dp.dependentTo,\n [dp.dependentLogic]: dp.dependentAnswer,\n };\n })\n .filter((d) => d.id);\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id && !isDelete) {\n return {\n ...q,\n dependency: transformDependencies,\n };\n }\n if (q.id === id && !isDelete && !transformDependencies.length) {\n q.dependency && delete q.dependency;\n return q;\n }\n if (q.id === id && isDelete && transformDependencies.length) {\n return {\n ...q,\n dependency: transformDependencies,\n };\n }\n if (q.id === id && isDelete && !transformDependencies.length) {\n q.dependency && delete q.dependency;\n return q;\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n useEffect(() => {\n // add dependency to global store if all dependency value defined\n const checkDependencies = dependencies.filter((dp) => {\n if (\n dp.dependentTo &&\n dp.dependentLogic &&\n Array.isArray(dp.dependentAnswer) &&\n dp.dependentAnswer.length\n ) {\n return dp;\n }\n if (\n dp.dependentTo &&\n dp.dependentLogic &&\n !Array.isArray(dp.dependentAnswer) &&\n dp.dependentAnswer\n ) {\n return dp;\n }\n });\n if (checkDependencies.length) {\n updateGlobalStore(checkDependencies);\n }\n }, [dependencies, id, questionGroupId, updateGlobalStore]);\n\n const updateLocalState = useCallback(\n (dependencyId, values = {}) => {\n const updatedDependencies = dependencies\n .map((d) => {\n if (d.id === dependencyId) {\n return {\n ...d,\n ...values,\n };\n }\n return d;\n })\n .filter((d) =>\n dependencyTypes.flatMap((dt) => dt.type).includes(d.dependentToType)\n );\n setDependencies(updatedDependencies);\n },\n [dependencies, setDependencies]\n );\n\n useEffect(() => {\n // delete logic if dependentTo question type changed\n setTimeout(() => {\n const checkChangedType = dependencies\n .map((d) => {\n const findQ = questions.find((q) => q.id === d.dependentTo);\n if (findQ?.id && findQ.type !== d.dependentToType) {\n return findQ;\n }\n return false;\n })\n .filter((x) => x);\n if (dependencies.length && checkChangedType.length) {\n checkChangedType.forEach((q) => {\n const updatedDependency = dependencies.find(\n (d) => d.dependentTo === q.id\n );\n updateLocalState(updatedDependency.id, {\n ...updatedDependency,\n dependentToType: q.type,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(q),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(q),\n });\n form.setFieldsValue({\n [`${namePreffix}-dependent_logic-${updatedDependency.id}`]: null,\n });\n });\n }\n }, 500);\n }, [dependencies, questions, form, namePreffix, updateLocalState]);\n\n const handleChangeDependentTo = (dependencyId, e) => {\n const question = questions.find((q) => q.id === e);\n const values = {\n dependentTo: e,\n dependentToType: question.type,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(question),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(question),\n };\n updateLocalState(dependencyId, values);\n };\n\n const handleChangeDependentLogic = (dependencyId, e) => {\n updateLocalState(dependencyId, { dependentLogic: e });\n };\n\n const handleChangeDependentAnswer = (dependencyId, val) => {\n updateLocalState(dependencyId, { dependentAnswer: val });\n // handle when answer value empty\n if (savedDependency?.length) {\n // delete dependency from global store\n const updatedDependencies = savedDependency.filter(\n (d) => d.id !== dependencyId\n );\n if (Array.isArray(val) && !val.length) {\n updateGlobalStore(updatedDependencies, true);\n return;\n }\n if (!Array.isArray(val) && !val) {\n updateGlobalStore(updatedDependencies, true);\n return;\n }\n }\n };\n\n const handleAddMoreDependency = () => {\n const newDependencies = [...dependencies, ...defaultSkipLogic()];\n setDependencies(newDependencies);\n };\n\n const handleDeleteDependentTo = (dependencyId) => {\n form.setFieldsValue({\n [`${namePreffix}-dependent_logic-${dependencyId}`]: null,\n });\n const updatedDependencies = dependencies.filter(\n (dependency) => dependency.id !== dependencyId\n );\n if (updatedDependencies.length) {\n setDependencies(updatedDependencies);\n } else {\n setDependencies(defaultSkipLogic());\n updateGlobalStore([], true);\n }\n };\n\n const dropdown = map(groupBy(dependentToQuestions, 'group'), (i, l) => ({\n label: l,\n item: i,\n })).map((g, gi) => ({ ...g, key: gi }));\n\n return (\n \n \n \n \n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentTo(dependency.id, e)}\n value={dependency.dependentTo || []}\n optionFilterProp=\"children\"\n >\n {dropdown.map((g) => (\n \n {g.item.map((dq) => (\n d.dependentTo)\n .includes(dq.value)}\n >\n {dq.label}\n \n ))}\n \n ))}\n \n \n \n \n \n handleDeleteDependentTo(dependency.id)}\n />\n \n \n \n \n \n \n \n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentLogic(dependency.id, e)}\n />\n \n \n \n \n {!dependency.dependentTo && }\n {/* Number */}\n {dependency.dependentToType === questionType.number && (\n handleChangeDependentAnswer(dependency.id, e)}\n value={dependency.dependentAnswer || null}\n />\n )}\n {/* Option / Multiple */}\n {[questionType.option, questionType.multiple_option].includes(\n dependency.dependentToType\n ) && (\n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentAnswer(dependency.id, e)}\n mode=\"multiple\"\n showSearch\n allowClear\n showArrow\n value={\n Array.isArray(dependency.dependentAnswer)\n ? dependency.dependentAnswer\n : dependency.dependentAnswer\n ? [dependency.dependentAnswer]\n : []\n }\n />\n )}\n {/* Date */}\n {dependency.dependentToType === questionType.date && (\n \n handleChangeDependentAnswer(\n dependency.id,\n moment(e).format('YYYY-MM-DD')\n )\n }\n />\n )}\n \n \n \n \n );\n};\n\nconst QuestionSkipLogic = ({ question }) => {\n const {\n id,\n questionGroupId,\n dependency,\n order: currentQuestionOrder,\n } = question;\n const UIText = UIStore.useState((s) => s.UIText);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const [dependencies, setDependencies] = useState(\n dependency?.length\n ? transformDependencyValue(dependency, questionGroups)\n : defaultSkipLogic()\n );\n\n const currentQuestionGroupOrder = useMemo(() => {\n return questionGroups.find((qg) => qg.id === questionGroupId)?.order;\n }, [questionGroups, questionGroupId]);\n\n const questions = useMemo(() => {\n return questionGroups\n .filter((qg) => qg.order <= currentQuestionGroupOrder) // filter by group order\n .flatMap((qg) => qg.questions)\n .filter(\n (q) =>\n (q.questionGroupId === questionGroupId &&\n q.order < currentQuestionOrder) ||\n q.questionGroupId !== questionGroupId\n ); // filter by question order\n }, [\n questionGroups,\n currentQuestionGroupOrder,\n currentQuestionOrder,\n questionGroupId,\n ]);\n\n // dependency question dropdown value\n const dependentToQuestions = useMemo(() => {\n return questions\n .filter((q) => dependencyTypes.flatMap((dt) => dt.type).includes(q.type))\n .map((q) => {\n const group = questionGroups.find((g) => g.id === q.questionGroupId);\n return {\n label: `${group.order}.${q.order}. ${q.name}`,\n value: q.id,\n group: `${group.order}. ${group.name}`,\n };\n });\n }, [questions, questionGroups]);\n\n if (!dependencies?.[0]?.dependentTo && !dependentToQuestions?.length) {\n return (\n \n );\n }\n\n return (\n \n {dependencies?.map((dependency, di) => (\n \n ))}\n \n );\n};\n\nexport default QuestionSkipLogic;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Input, Select } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionGroupFn } from '../lib/store';\n\nconst QuestionCustomParams = ({ question }) => {\n const { id, questionGroupId } = question;\n const namePreffix = `question-${id}`;\n const hostParams = UIStore.useState((s) => s.hostParams);\n const customParams = hostParams?.customParams;\n const [initLoad, setInitLoad] = useState(true);\n const [paramValue, setParamValue] = useState({});\n\n useEffect(() => {\n if (initLoad) {\n // initial value load\n const customParamObj = customParams?.params\n ?.map((cp) => {\n let findValue = question?.[cp.name];\n if (Array.isArray(findValue) && cp.type === 'input') {\n findValue = findValue[0];\n }\n if (findValue) {\n return { [cp.name]: findValue };\n }\n return false;\n })\n .filter((x) => x);\n if (customParamObj.length) {\n setParamValue(\n customParamObj.reduce((res, curr) => ({ ...res, ...curr }))\n );\n }\n setInitLoad(false);\n }\n }, [customParams, question, initLoad]);\n\n const updateGlobalStore = useCallback(\n (objKey, value, isDelete = false) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n if (isDelete && q?.[objKey]) {\n delete q[objKey];\n return q;\n }\n return { ...q, [objKey]: value };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const handleChangeParameterValue = (objKey, val) => {\n setParamValue({\n ...paramValue,\n [objKey]: val,\n });\n const isDelete = !val || !val?.length;\n const value = Array.isArray(val) ? val : [val];\n updateGlobalStore(objKey, value, isDelete);\n };\n\n return customParams?.params?.map((cp, cpi) => {\n let multipleProps = {};\n if (cp?.multiple) {\n multipleProps = {\n mode: 'multiple',\n showArrow: true,\n };\n }\n return (\n
\n \n {cp.type === 'option' && (\n handleChangeParameterValue(cp.name, val)}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n value={paramValue?.[cp.name] || []}\n {...multipleProps}\n />\n )}\n {cp.type === 'input' && (\n \n handleChangeParameterValue(cp.name, e?.target?.value)\n }\n value={paramValue?.[cp.name] || null}\n allowClear\n />\n )}\n \n
\n );\n });\n};\n\nexport default QuestionCustomParams;\n","import React, { useMemo, useState } from 'react';\nimport { Card, Tabs } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionFn, questionGroupFn } from '../lib/store';\nimport data from '../lib/data';\nimport QuestionSetting from './QuestionSetting';\nimport QuestionSkipLogic from './QuestionSkipLogic';\nimport QuestionCustomParams from './QuestionCustomParams';\nimport { ButtonAddMove, CardTitle, AlertPopup } from '../support';\nimport { orderBy, maxBy, minBy } from 'lodash';\n\nconst QuestionDefinition = ({ index, question, questionGroup, isLastItem }) => {\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const questions = questionGroup?.questions;\n const { UIText, hostParams, activeEditQuestions } = UIStore.useState(\n (s) => s\n );\n const movingQ = UIStore.useState((s) => s.activeMoveQuestion);\n const isCopying = UIStore.useState((s) => s.isCopyingQuestion);\n const [activeTab, setActiveTab] = useState('setting');\n const [isModalOpen, setIsModalOpen] = useState(false);\n const { id, questionGroupId, order, name, dependency, disableDelete } =\n question;\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const customParams = hostParams?.customParams;\n\n const enableCustomParams =\n customParams && customParams?.label && customParams?.params?.length;\n\n const allQuestions = questionGroups\n .map((qg) => qg.questions)\n .flatMap((x) => x)\n .map((q) => ({\n ...q,\n questionGroup: questionGroups.find((qg) => q.questionGroupId === qg.id),\n }));\n\n const dependant = useMemo(() => {\n const dependant = allQuestions.filter(\n (q) => q?.dependency?.filter((d) => d.id === id).length || false\n );\n\n let disabled = { current: false, last: false };\n\n const movingQDependency = maxBy(\n movingQ?.dependency?.map((q) => allQuestions.find((a) => a.id === q.id)),\n 'questionGroup.order'\n );\n if (movingQDependency?.questionGroup?.order >= questionGroup?.order) {\n disabled = {\n ...disabled,\n current:\n movingQDependency?.questionGroup?.order === questionGroup.order\n ? movingQDependency.order >= order\n : true,\n };\n disabled = {\n ...disabled,\n last:\n movingQDependency?.questionGroup?.order === questionGroup.order\n ? movingQDependency.order >= order + 1\n : true,\n };\n }\n const movingQDependant = minBy(\n allQuestions.filter(\n (q) =>\n q?.dependency?.filter((d) => d.id === movingQ?.id).length || false\n ),\n 'questionGroup.order'\n );\n if (movingQDependant?.questionGroup?.order <= questionGroup?.order) {\n disabled = {\n ...disabled,\n current:\n movingQDependant?.questionGroup?.order === questionGroup.order\n ? movingQDependant.order <= order - 1\n : true,\n };\n disabled = {\n ...disabled,\n last:\n movingQDependant?.questionGroup?.order === questionGroup.order\n ? movingQDependant.order <= order\n : true,\n };\n }\n return {\n disabled: disabled,\n dependant: dependant,\n };\n }, [id, order, questionGroup, allQuestions, movingQ]);\n\n const isEditQuestion = useMemo(() => {\n return activeEditQuestions.includes(id);\n }, [activeEditQuestions, id]);\n\n const handleEdit = () => {\n UIStore.update((s) => {\n s.activeEditQuestions = [...activeEditQuestions, id];\n });\n };\n\n const handleCancelEdit = () => {\n UIStore.update((s) => {\n s.activeEditQuestions = activeEditQuestions.filter((qId) => qId !== id);\n });\n };\n\n const handleCancelMove = () => {\n UIStore.update((s) => {\n s.isCopyingQuestion = false;\n s.activeMoveQuestion = null;\n movingQ === question ? null : question;\n });\n };\n\n const handleMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestion =\n movingQ === question && !s.isCopyingQuestion ? null : question;\n s.isCopyingQuestion = false;\n });\n };\n\n const handleCopy = () => {\n UIStore.update((s) => {\n s.activeMoveQuestion =\n movingQ === question && s.isCopyingQuestion ? null : question;\n s.isCopyingQuestion = !s.isCopyingQuestion;\n });\n };\n\n const handleDelete = () => {\n const newQuestions = questions\n .filter((q) => q.id !== id)\n .map((q) => {\n if (q.order > order) {\n return { ...q, order: q.order - 1 };\n }\n return q;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n return { ...qg, questions: newQuestions };\n }\n return qg;\n });\n });\n setIsModalOpen(false);\n };\n\n const handleOnAdd = (prevOrder) => {\n const prevQ = questions.filter((q) => q.order <= prevOrder);\n const nextQ = questions\n .filter((q) => q.order > prevOrder)\n .map((q) => ({\n ...q,\n order: q.order + 1,\n }));\n const newQ = {\n ...defaultQuestionParam,\n questionGroup: questionGroup,\n prevOrder: prevOrder,\n params: data.clear(['id', 'order', 'questionGroupId'], movingQ),\n };\n const newQuestions = [...prevQ, questionFn.add(newQ), ...nextQ];\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n return { ...qg, questions: orderBy(newQuestions, 'order') };\n }\n return qg;\n });\n });\n UIStore.update((s) => {\n s.activeMoveQuestion = null;\n s.isCopyingQuestion = false;\n });\n };\n\n const handleOnMove = (prevOrder, lastItem = false) => {\n const currentQ = {\n ...movingQ,\n questionGroupId: questionGroupId,\n order:\n questionGroupId !== movingQ.questionGroupId\n ? prevOrder + 1\n : movingQ.order < prevOrder\n ? prevOrder\n : prevOrder + 1,\n };\n const changedQg = questionGroups\n .filter(\n (qg) => qg.id === movingQ.questionGroupId || qg.id === questionGroupId\n )\n .map((qg) => {\n const addedQ = qg.id === questionGroupId ? currentQ : false;\n let newQuestions = qg.questions.filter((q) => q.id !== movingQ.id);\n if (\n questionGroupId !== movingQ.questionGroupId &&\n newQuestions.length < qg.questions.length\n ) {\n newQuestions = newQuestions.map((q, qi) => ({ ...q, order: qi + 1 }));\n }\n if (\n questionGroupId !== movingQ.questionGroupId &&\n qg.id === questionGroupId\n ) {\n newQuestions = newQuestions.map((x) => {\n if (lastItem) {\n return x;\n }\n if (x.order >= prevOrder + 1) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n }\n if (questionGroupId === movingQ.questionGroupId) {\n newQuestions = newQuestions.map((x) => {\n if (lastItem) {\n if (x.order > movingQ.order) {\n return { ...x, order: x.order - 1 };\n }\n return x;\n }\n if (\n prevOrder > movingQ.order &&\n x.order > movingQ.order &&\n x.order <= prevOrder\n ) {\n return { ...x, order: x.order - 1 };\n }\n if (\n prevOrder < movingQ.order &&\n x.order < movingQ.order &&\n x.order >= prevOrder + 1\n ) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n }\n newQuestions = addedQ ? [...newQuestions, addedQ] : newQuestions;\n return {\n ...qg,\n questions: orderBy(newQuestions, 'order'),\n };\n });\n let oldQg = questionGroups.filter(\n (qg) => qg.id !== movingQ.questionGroupId\n );\n oldQg =\n movingQ.questionGroupId !== questionGroupId\n ? oldQg.filter((qg) => qg.id !== questionGroupId)\n : oldQg;\n questionGroupFn.store.update((s) => {\n s.questionGroups = orderBy([...oldQg, ...changedQg], 'order');\n });\n UIStore.update((s) => {\n s.activeMoveQuestion = null;\n });\n };\n\n const rightButtons = [\n {\n type: 'copy-button',\n onClick: handleCopy,\n },\n {\n type: 'delete-button',\n onClick: () => setIsModalOpen(true),\n disabled:\n (!index && isLastItem) || dependant.dependant.length || disableDelete,\n },\n ];\n\n const leftButtons = [\n {\n type: 'move-button',\n onClick: handleMove,\n disabled: !index && isLastItem,\n },\n {\n type: 'show-button',\n isExpand: isEditQuestion,\n onClick: handleEdit,\n onCancel: handleCancelEdit,\n },\n ];\n\n return (\n
\n handleOnAdd(order - 1)}\n handleOnMove={() =>\n isCopying ? handleOnAdd(order - 1) : handleOnMove(order - 1)\n }\n />\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n backgroundColor: movingQ?.id === id ? '#FFF2CA' : '#FFF',\n border: movingQ?.id === id ? '1px dashed #ffc107' : 'none',\n }}\n bodyStyle={{\n borderTop: isEditQuestion ? '1px solid #f3f3f3' : 'none',\n padding: isEditQuestion ? 24 : 0,\n }}\n loading={false}\n extra={\n \n dependency?.find((d) => d.id === q.id)\n )}\n />\n }\n >\n {isEditQuestion && (\n
\n setActiveTab(key)}\n tabBarGutter={24}\n className={styles['tabs-wrapper']}\n >\n {/* Setting */}\n \n {/* Skip Logic */}\n \n {/* Custom Params */}\n {enableCustomParams && (\n \n )}\n {/* \n */}\n \n {activeTab === 'setting' && (\n \n )}\n {activeTab === 'skip-logic' && (\n \n )}\n {enableCustomParams && activeTab === 'custom-params' && (\n \n )}\n
\n )}\n \n {isLastItem && (\n handleOnAdd(order)}\n handleOnMove={() =>\n isCopying ? handleOnAdd(order) : handleOnMove(order, true)\n }\n />\n )}\n setIsModalOpen(false)}\n okButtonProps={{ danger: true }}\n title={UIText.alertDeleteQuestionTitle}\n okText={UIText.buttonDeleteText}\n >\n {UIText.alertDeleteQuestion}\n \n
\n );\n};\n\nexport default QuestionDefinition;\n","import React, { useMemo, useState } from 'react';\nimport { Card } from 'antd';\nimport { UIStore, questionGroupFn } from '../lib/store';\nimport QuestionGroupSetting from './QuestionGroupSetting';\nimport QuestionDefinition from './QuestionDefinition';\nimport { ButtonAddMove, CardTitle, AlertPopup } from '../support';\nimport { orderBy, maxBy, minBy, uniq, difference, intersection } from 'lodash';\n\nconst QuestionGroupDefinition = ({ index, questionGroup, isLastItem }) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const movingQg = UIStore.useState((s) => s.activeMoveQuestionGroup);\n const {\n activeQuestionGroups,\n activeEditQuestionGroups,\n activeEditQuestions,\n hostParams,\n } = UIStore.useState((s) => s);\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n\n const { id, name, questions, order } = questionGroup;\n const questionIds = questions.map((q) => q.id);\n const {\n buttonAddNewQuestionGroupText,\n buttonMoveQuestionGroupText,\n alertDeleteQuestionGroupTitle,\n alertDeleteQuestionGroup,\n buttonDeleteText,\n } = UIStore.useState((s) => s.UIText);\n\n const showQuestion = useMemo(() => {\n return activeQuestionGroups.includes(id);\n }, [activeQuestionGroups, id]);\n\n const isEditQuestionGroup = useMemo(() => {\n return activeEditQuestionGroups.includes(id);\n }, [activeEditQuestionGroups, id]);\n\n const disableDelete = useMemo(() => {\n return questions.filter((q) => q?.disableDelete)?.length;\n }, [questions]);\n\n const handleHideQuestions = () => {\n UIStore.update((s) => {\n s.activeQuestionGroups = activeQuestionGroups.filter(\n (qgId) => qgId !== id\n );\n });\n };\n\n const handleCancelEditGroup = () => {\n UIStore.update((s) => {\n s.activeEditQuestionGroups = activeEditQuestionGroups.filter(\n (qgId) => qgId !== id\n );\n });\n };\n\n const handleShowQuestions = () => {\n UIStore.update((s) => {\n s.activeQuestionGroups = [...activeQuestionGroups, id];\n });\n handleCancelEditGroup();\n };\n\n const handleEditGroup = () => {\n UIStore.update((s) => {\n s.activeEditQuestionGroups = [...activeEditQuestionGroups, id];\n });\n handleHideQuestions();\n };\n\n const handleCancelMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestionGroup = null;\n });\n };\n\n const handleMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestionGroup =\n movingQg === questionGroup ? null : questionGroup;\n });\n };\n\n const handleExpandAll = () => {\n handleShowQuestions();\n UIStore.update((s) => {\n s.activeEditQuestions = uniq([...s.activeEditQuestions, ...questionIds]);\n });\n };\n\n const handleCancelExpandAll = () => {\n handleHideQuestions();\n UIStore.update((s) => {\n s.activeEditQuestions = difference(s.activeEditQuestions, questionIds);\n });\n };\n\n const handleDelete = () => {\n const newQuestionGroups = questionGroups\n .filter((qg) => id !== qg.id)\n .map((qg) => {\n if (qg.order > order) {\n return { ...qg, order: qg.order - 1 };\n }\n return qg;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = newQuestionGroups;\n });\n setIsModalOpen(false);\n };\n\n const handleOnAdd = (prevOrder) => {\n const prevQg = questionGroups.filter((qg) => qg.order <= prevOrder);\n const nextQg = questionGroups\n .filter((qg) => qg.order > prevOrder)\n .map((qg) => ({\n ...qg,\n order: qg.order + 1,\n }));\n const newQuestionGroups = [\n ...prevQg,\n questionGroupFn.add({\n prevOrder: prevOrder,\n defaultQuestionParam: defaultQuestionParam,\n }),\n ...nextQg,\n ];\n questionGroupFn.store.update((s) => {\n s.questionGroups = newQuestionGroups;\n });\n };\n\n const handleOnMove = (prevOrder, lastItem = false) => {\n const currentQg = {\n ...movingQg,\n order: movingQg.order < prevOrder ? prevOrder : prevOrder + 1,\n };\n const orderedQg = questionGroups\n .filter((qg) => qg.order !== movingQg.order)\n .map((x) => {\n if (lastItem) {\n if (x.order > movingQg.order) {\n return { ...x, order: x.order - 1 };\n }\n return x;\n }\n if (\n prevOrder > movingQg.order &&\n x.order > movingQg.order &&\n x.order <= prevOrder\n ) {\n return { ...x, order: x.order - 1 };\n }\n if (\n prevOrder < movingQg.order &&\n x.order < movingQg.order &&\n x.order >= prevOrder + 1\n ) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = orderBy([...orderedQg, currentQg], 'order');\n });\n UIStore.update((s) => {\n s.activeMoveQuestionGroup = null;\n });\n };\n\n const dependant = useMemo(() => {\n const allQ = questionGroups\n .map((qg) => qg.questions)\n .flatMap((x) => x)\n .map((q) => ({\n ...q,\n questionGroup: questionGroups.find((qg) => q.questionGroupId === qg.id),\n }));\n\n const dependencies = allQ.filter(\n (q) =>\n q?.dependency?.filter((d) => questionIds.find((qid) => qid === d.id))\n .length || false\n );\n\n const movingQids = movingQg?.questions?.map((q) => q.id) || [];\n const movingQ = movingQg?.questions?.filter((q) => {\n const selfDependency =\n q?.dependency?.filter((d) => movingQids.includes(d.id))?.length || 0;\n return !selfDependency;\n });\n\n let disabled = { current: false, last: false };\n\n const movingQDependency = maxBy(\n movingQ\n ?.map(\n (q) =>\n q?.dependency?.map((q) => allQ.find((a) => a.id === q.id)) || []\n )\n ?.flatMap((q) => q) || [],\n 'questionGroup.order'\n );\n\n if (movingQDependency?.questionGroup?.order >= order) {\n disabled = {\n current: true,\n last: true,\n };\n }\n\n const movingQDependant = minBy(\n allQ.filter(\n (q) =>\n q?.dependency?.filter((d) => movingQ?.find((qs) => qs.id === d.id))\n .length || false\n ),\n 'questionGroup.order'\n );\n\n const dependantIsLessThanOrder =\n movingQDependant?.questionGroup?.order < (isLastItem ? order + 1 : order);\n\n if (dependantIsLessThanOrder) {\n disabled = {\n current: true,\n last: true,\n };\n }\n\n return {\n disabled: disabled,\n dependant: dependencies,\n };\n }, [questionGroups, questionIds, movingQg, order, isLastItem]);\n\n const rightButtons = [\n {\n type: 'expand-all-button',\n isExpand:\n showQuestion && intersection(activeEditQuestions, questionIds).length,\n onClick: handleExpandAll,\n onCancel: handleCancelExpandAll,\n },\n {\n type: 'delete-button',\n onClick: () => setIsModalOpen(true),\n disabled: (!index && isLastItem) || disableDelete,\n },\n {\n type: 'edit-button',\n isExpand: isEditQuestionGroup,\n onClick: handleEditGroup,\n onCancel: handleCancelEditGroup,\n },\n ];\n\n const leftButtons = [\n {\n type: 'move-button',\n onClick: handleMove,\n onCancel: handleHideQuestions,\n disabled: !index && isLastItem,\n },\n {\n type: 'show-button',\n isExpand: showQuestion,\n onClick: handleShowQuestions,\n onCancel: handleHideQuestions,\n },\n ];\n\n return (\n
\n handleOnAdd(order - 1)}\n handleOnMove={() => handleOnMove(order - 1)}\n />\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n backgroundColor: movingQg?.id === id ? '#FFF2CA' : '#FFF',\n border: movingQg?.id === id ? '1px dashed #ffc107' : 'none',\n }}\n bodyStyle={{\n padding: isEditQuestionGroup || showQuestion ? 24 : 0,\n borderTop:\n isEditQuestionGroup || showQuestion ? '1px solid #f3f3f3' : 'none',\n }}\n extra={}\n >\n {isEditQuestionGroup && }\n {showQuestion &&\n questions.map((q, qi) => (\n \n ))}\n \n {isLastItem && (\n handleOnAdd(order)}\n handleOnMove={() => handleOnMove(order, true)}\n />\n )}\n setIsModalOpen(false)}\n okButtonProps={{ danger: true }}\n title={alertDeleteQuestionGroupTitle}\n okText={buttonDeleteText}\n >\n {alertDeleteQuestionGroup}\n \n
\n );\n};\n\nexport default QuestionGroupDefinition;\n","import React, { useEffect, useState } from 'react';\nimport 'antd/dist/antd.min.css';\nimport styles from './styles.module.css';\nimport { Card, Tabs, Tag, Space } from 'antd';\nimport {\n FormWrapper,\n FormDefinition,\n FormPreview,\n QuestionGroupDefinition,\n FormTranslations,\n} from './components';\nimport { ButtonWithIcon } from './support';\nimport {\n UIStore,\n formFn,\n questionGroupFn,\n generateId,\n questionType,\n} from './lib/store';\nimport data from './lib/data';\nimport { isEmpty } from 'lodash';\nimport { TbEdit } from 'react-icons/tb';\nimport { MdOutlineLanguage } from 'react-icons/md';\nimport { VscPreview } from 'react-icons/vsc';\n\nconst WebformEditor = ({\n onSave = false,\n initialValue = null,\n settingTreeDropdownValue = [{ label: null, value: null }],\n settingCascadeURL = [{ name: null, endpoint: null, initial: 0, list: false }],\n settingHintURL = {\n questionTypes: [],\n settings: [{ name: null, endpoint: null, path: [] }],\n },\n defaultQuestion = { type: null, name: null, required: null },\n limitQuestionType = [],\n customParams = {\n label: null,\n params: [\n {\n name: null,\n label: 'Single Option Param',\n type: 'option',\n multiple: true,\n options: [],\n },\n {\n name: null,\n label: 'Multiple Option Param',\n type: 'option',\n multiple: false,\n options: [],\n },\n {\n name: null,\n label: 'Input Param',\n type: 'input',\n },\n ],\n },\n}) => {\n const [init, setInit] = useState(defaultQuestion);\n const formStore = formFn.store.useState((s) => s);\n const current = UIStore.useState((s) => s.current);\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const activeEditFormSetting = UIStore.useState(\n (s) => s.activeEditFormSetting\n );\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const { tab: currentTab } = current;\n const {\n formTabPane,\n formTranslationPane,\n previewTabPane,\n questionCount,\n questionGroupCount,\n mandatoryQuestionCount,\n version,\n } = UIText;\n\n if (!initialValue) {\n console.error('initialValue required as an empty object {}');\n }\n\n useEffect(() => {\n // store params from host to global store\n const checkDefaultQuestion = defaultQuestion\n ? Object.values(defaultQuestion).filter((x) => x).length\n : false;\n const sanitizeSettingTreeDropdownValue = settingTreeDropdownValue.filter(\n (x) => x?.label && x?.value\n );\n const sanitizeSettingCascadeURL = settingCascadeURL\n .filter((x) => x?.name && x?.endpoint)\n .map((x, xi) => ({ ...x, id: x?.id || xi + 1 }));\n const sanitizeSettingHintURL = !isEmpty(settingHintURL)\n ? {\n ...settingHintURL,\n settings: settingHintURL?.settings\n ?.filter((x) => x?.name && x?.endpoint && x?.path?.length)\n ?.map((x, xi) => ({ ...x, id: x?.id || xi + 1 })),\n }\n : {};\n const sanitizeDefaultQuestion = {\n type: defaultQuestion?.type || questionType.input,\n name: defaultQuestion?.name,\n required: defaultQuestion?.required || false,\n };\n const sanitizeCustomParams = customParams?.params?.filter((x) => x?.name);\n // update UIStore\n UIStore.update((s) => {\n if (sanitizeSettingTreeDropdownValue.length) {\n s.hostParams = {\n ...s.hostParams,\n settingTreeDropdownValue: sanitizeSettingTreeDropdownValue,\n };\n }\n if (sanitizeSettingCascadeURL.length) {\n s.hostParams = {\n ...s.hostParams,\n settingCascadeURL: sanitizeSettingCascadeURL,\n };\n }\n if (\n !isEmpty(sanitizeSettingHintURL) &&\n sanitizeSettingHintURL?.settings?.length\n ) {\n s.hostParams = {\n ...s.hostParams,\n settingHintURL: sanitizeSettingHintURL,\n };\n }\n if (checkDefaultQuestion) {\n s.hostParams = {\n ...s.hostParams,\n defaultQuestionParam: sanitizeDefaultQuestion,\n };\n } else {\n s.hostParams = {\n ...s.hostParams,\n defaultQuestionParam: {},\n };\n }\n if (limitQuestionType.length) {\n s.hostParams = {\n ...s.hostParams,\n limitQuestionType: Object.keys(questionType)\n .map((key) => ({\n label: questionType[key]?.split('_').join(' '),\n value: questionType[key],\n }))\n .filter((x) => limitQuestionType.includes(x.value)),\n };\n }\n if (customParams?.label && sanitizeCustomParams?.length) {\n s.hostParams = {\n ...s.hostParams,\n customParams: {\n ...customParams,\n params: sanitizeCustomParams,\n },\n };\n }\n });\n }, [\n settingTreeDropdownValue,\n settingCascadeURL,\n settingHintURL,\n defaultQuestion,\n limitQuestionType,\n customParams,\n ]);\n\n useEffect(() => {\n if (defaultQuestionParam && init) {\n // replace questionGroup store with defaultQuestion value\n questionGroupFn.store.update((s) => {\n s.questionGroups = [\n questionGroupFn.add({\n defaultQuestionParam: defaultQuestionParam,\n }),\n ];\n });\n setInit(false);\n }\n }, [defaultQuestionParam, init]);\n\n useEffect(() => {\n if (!isEmpty(initialValue)) {\n const initialData = data.toEditor(initialValue);\n formFn.store.update((s) => {\n s.id = initialData?.id || generateId();\n s.version = initialData?.version || 1;\n s.name = initialData?.name || 'Unknown Form';\n s.description = initialData?.description || 'Unknown Description';\n s.languages = initialData?.languages?.filter((x) => x !== 'en') || [];\n s.defaultLanguage = initialData?.defaultLanguage || 'en';\n s.translations = initialData?.translations || [];\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = initialData.questionGroups;\n });\n } else {\n const defaultForm = formFn.add();\n formFn.store.update((s) => {\n s.id = defaultForm.id;\n s.name = defaultForm.name;\n s.version = defaultForm.version;\n s.description = defaultForm.description;\n s.languages = [];\n s.defaultLanguage = 'en';\n s.translations = [];\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = [questionGroupFn.add({})];\n });\n }\n }, [initialValue]);\n\n const handleTabsOnChange = (e) => {\n UIStore.update((s) => {\n s.current = {\n ...current,\n tab: e,\n };\n });\n };\n\n const handleShowFormSetting = (e) => {\n e.preventDefault();\n UIStore.update((s) => {\n s.activeEditFormSetting = activeEditFormSetting ? false : true;\n });\n };\n\n const handleSave = () => {\n if (onSave) {\n onSave(data.toWebform(formStore, questionGroups));\n }\n };\n\n const questions = questionGroups.reduce(\n (curr, qg) => [...curr, ...qg.questions],\n []\n );\n\n const mandatory = questions.filter((q) => q?.required);\n\n const tabProps = [\n {\n icon: TbEdit,\n tab: formTabPane,\n key: 'edit-form',\n },\n {\n icon: MdOutlineLanguage,\n tab: formTranslationPane,\n key: 'translations',\n },\n {\n icon: VscPreview,\n tab: previewTabPane,\n key: 'preview',\n },\n ];\n\n return (\n \n \n \n \n \n {questions.length} {questionCount}\n \n \n {mandatory.length} {mandatoryQuestionCount}\n \n \n {questionGroups.length} {questionGroupCount}\n \n \n {version} {formStore.version || 1}\n \n {currentTab === 'edit-form' && (\n \n )}\n \n \n \n }\n tabBarGutter={24}\n className={`${styles['tabs-wrapper']} ${styles['tabs-wrapper-sticky']}`}\n >\n {tabProps.map((prop) => (\n \n {prop.tab}\n \n }\n key={prop.key}\n />\n ))}\n \n {currentTab === 'edit-form' && (\n \n {activeEditFormSetting && }\n {questionGroups.map((qg, qgi) => {\n return (\n \n );\n })}\n \n )}\n {currentTab === 'translations' && }\n {currentTab === 'preview' && }\n \n \n );\n};\n\nexport default WebformEditor;\n"],"names":["FormWrapper","children","Form","useForm","form","handleOnValuesChange","handleOnFinish","handleOnFinishFailed","React","UIStaticText","en","inputFormNameLabel","inputFormDescriptionLabel","inputFormTranslationLabel","inputFormExistingTranslationsLabel","inputFormDefaultLanguageLabel","formTabPane","formTranslationPane","previewTabPane","questionCount","questionGroupCount","mandatoryQuestionCount","version","inputQuestionGroupNameLabel","inputQuestionGroupDescriptionLabel","inputRepeatThisGroupCheckbox","inputRepeatTextLabel","buttonShowQuestionsText","buttonHideQuestionsText","buttonEditGroupText","buttonCancelEditGroupText","buttonDeleteText","buttonCancelText","buttonAddNewQuestionGroupText","buttonCopyQuestionGroupText","buttonMoveQuestionGroupText","buttonAddNewQuestionText","buttonCopyQuestionText","buttonMoveQuestionText","inputQuestionNameLabel","inputQuestionTypeLabel","inputQuestionVariableNameLabel","inputQuestionTooltipLabel","inputQuestionRequiredCheckbox","inputQuestionMetaCheckbox","inputQuestionMetaCheckboxHint","buttonSaveText","questionSettingTabPane","questionSkipLogicTabPane","questionCustomParamsTabPane","questionExtraTabPane","inputQuestionDependentToLabel","inputQuestionDependentLogicLabel","inputQuestionDependentAnswerLabel","questionMoreInputTypeSettingText","inputQuestionRequireDoubleEntryCheckbox","inputQuestionHiddenStringCheckbox","questionMoreInputNumberSettingText","inputQuestionAllowDecimalCheckbox","inputQuestionMinimumValueLabel","inputQuestionMaximumValueLabel","inputQuestionMinimumValidationText","inputQuestionMaximumValidationText","inputQuestionEqualValueLabel","questionMoreOptionTypeSettingText","questionMoreOptionTranslationText","inputQuestionAllowOtherCheckbox","inputQuestionAllowOtherTextLabel","inputQuestionOptionNameLabel","questionMoreTreeSettingText","inputSelectTreeDropdownValueLabel","deleteQuestionGroupError","deleteQuestionError","infoNoDependentQuestionText","questionMoreCascadeSettingText","inputQuestionEndpointLabel","inputQuestionEndpointValidationText","inputQuestionInitialValueLabel","inputQuestionListCheckbox","inputQuestionListLabel","questionMoreInputDateSettingText","inputQuestionAfterDateValueLabel","inputQuestionBeforeDateValueLabel","alertDeleteQuestionTitle","alertDeleteQuestion","alertDeleteQuestionGroupTitle","alertDeleteQuestionGroup","questionMoreTableTypeSettingText","inputColumnNameLabel","inputColumnTypeLabel","inputColumnOptionsLabel","questionTableTypeDefineOptionsText","questionHintSettingText","inputQuestionStaticValueLabel","inputSelectHintEndpointLabel","inputSelectHintPathLabel","inputQuestionHintButtonTextLabel","titleCase","str","replace","txt","charAt","toUpperCase","substr","toLowerCase","getWords","words","Math","floor","random","length","dummyName","len","Array","from","repeat","reduce","curr","localeDropdownValue","uniqBy","locale","filter","x","location","map","label","name","value","generateId","Date","getTime","questionType","input","number","cascade","geo","text","date","option","multiple_option","tree","table","defaultForm","id","description","defaultQuestion","questionGroup","prevOrder","type","required","params","q","order","questionGroupId","meta","tooltip","options","allowOther","api","endpoint","initial","list","defaultQuestionGroup","defaultQuestionParam","qg","repeatable","questions","UIStore","Store","current","tab","formId","questionId","activeEditFormSetting","activeQuestionGroups","activeEditQuestionGroups","activeMoveQuestionGroup","isCopyingQuestionGroup","activeEditQuestions","activeMoveQuestion","isCopyingQuestion","UIText","existingTranslation","activeTranslationQuestionGroups","activeEditTranslationQuestionGroups","activeEditTranslationQuestions","hostParams","FormStore","QuestionGroupStore","questionGroups","formFn","add","store","questionGroupFn","questionFn","update","defineProperty","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","objectWithoutPropertiesLoose","warning","warn","generate","_objectSpread","generateColor","ReactIcon","_excluded","React.forwardRef","React.useContext","Context","classNames","React.createElement","CaretRightOutlined","AntdIcon","CaretRightOutlinedSvg","PlusOutlined","PlusOutlinedSvg","ButtonAddMove","className","movingItem","handleCancelMove","disabled","handleOnAdd","handleOnMove","useState","s","ButtonWithIcon","isExpand","onClick","onCancel","buttonProps","icon","styles","CardTitle","title","buttons","dependency","margin","cfg","Text","Typography","TranslationFormItem","labelText","currentValue","initialValue","marginBottom","width","AlertPopup","onConfirm","visible","okButtonProps","okText","clearQuestionObj","keysToRemove","obj","checkEmpty","clearedQuestion","Object","keys","forEach","key","includes","isEmpty","clearTranslations","translations","newObj","clearedTranslations","tl","clearedObj","language","toEditor","webFormData","mapKeys","_","k","qgi","gid","qi","isNotOption","o","oi","orderBy","d","max","min","toWebform","formData","webformData","languages","defaultLanguage","output","op","hint","path","result","question","repeatText","question_group","generateTranslations","savedTranslations","newTranslations","currentTranslations","isExistingExist","findIndex","tr","data","clear","FormDefinitionTranslation","formStore","namePreffix","existingTranslationValues","useMemo","find","updateTranslation","u","handleChangeName","e","target","handleChangeDescription","QuestionSettingTranslation","allowOtherText","existingTooltipTranslationValues","handleChangeTooltip","handleChangeAllowOtherText","handleChangeOptionName","optionTranslations","optionId","opt","di","existingOptionTranslationValues","QuestionDefinitionTranslation","index","questionGroupOrder","isEditTranslationQuestion","handleEditTranslationQuestion","handleCancelEditTranslationQuestion","qId","cardTitleButton","textAlign","padding","borderTop","QuestionGroupSettingTranslation","handleChangeRepeatText","QuestionGroupDefinitionTranslation","questionIds","showTranslationQuestion","isEditTranslationQuestionGroup","handleHideTranslationQuestions","qgId","handleCancelEditTranslationGroup","handleEditTranslationGroup","a","handleExpandAll","uniq","handleCancelExpandAll","difference","cardExtraButton","intersection","staticDefaultLang","ExistingTranslation","handleCloseTag","lang","ln","findLang","lc","tags","FormTranslations","formTranslation","defaultLangDropdownValue","ld","triggerNode","parentElement","ldi","FormPreview","FormDefinition","useFormInstance","useEffect","setFieldsValue","QuestionGroupSetting","handleChangeRepeatable","checked","SettingInput","requiredDoubleEntry","hiddenString","updateState","handleChangeDoubleEntry","handleChangeHiddenString","SettingNumber","rule","allowDecimal","moreNumberSettings","rules","message","handleChangeAllowDecimal","handleChangeMinMax","defaultOptions","init","code","SettingOption","initialOptions","xi","setOptions","useCallback","handleOnChangeAllowOther","handleOnChangeAllowOtherText","handleOnChangeCode","currentId","handleOnChangeOption","handleOnAddOption","currentOrder","lastOrder","takeRight","reorderOptions","addOptions","handleOnMoveOption","targetOrder","prevOptions","currentOption","targetOption","handleOnDeleteOption","opti","SettingTree","settingTreeDropdownValue","handleChangeTreeDropdown","SettingCascade","settingCascadeURL","cascadeURLDropdownValue","updateGlobalState","values","handleChangeEndpoint","findURL","handleChangeInitial","handleChangeList","this","require","SettingDate","minDate","maxDate","moreDateSettings","disabledDate","moment","handleChangeAfterBefore","format","generateColumnName","trim","split","join","columnType","defaultColumns","column","defaultColumnOptions","SettingTable","initialColumns","columns","cl","cli","opi","setColumns","columnTypeOptions","updateColumns","columnId","updatedColumn","handleChangeColumnName","handleChangeColumnType","handleAddColumn","addColumns","handleDeleteColumn","currentColumn","currentOptions","targetOptions","currentOptionId","currentOptId","updatedOptions","val","QuestionHint","buttonText","settingHintURL","settings","hintURLDropdownValue","hintPathDropdownValue","String","handleChangePath","handleChangeStaticValue","handleChangeButtonText","QuestionSetting","dependant","variable","disableDelete","qType","useWatch","limitQuestionType","disableMetaForGeo","metaGeoQuestionDefined","flatMap","showMetaCheckbox","currentQuestionGroup","questionTypeDropdownValue","showHintSetting","questionTypes","defaultTypeValue","checkType","checkText","defType","handleChangeType","handleChangeVariableName","handleChangeRequired","handleChangeMeta","dependantGroup","groupBy","group","i","g","items","ii","cursor","marginLeft","dependencyTypes","logicDropdowns","defaultSkipLogic","dependentTo","dependentToType","dependentLogic","dependentAnswer","dependencyLogicDropdownValue","dependencyAnswerDropdownValue","fetchDependencyLogicDropdown","dt","fetchDependencyAnswerDropdown","transformDependencyValue","lg","findQ","SettingSkipLogic","dependencies","setDependencies","dependentToQuestions","savedDependency","updateGlobalStore","dependencyValue","isDelete","transformDependencies","dp","checkDependencies","isArray","updateLocalState","dependencyId","updatedDependencies","setTimeout","checkChangedType","updatedDependency","handleChangeDependentTo","handleChangeDependentLogic","handleChangeDependentAnswer","handleAddMoreDependency","newDependencies","handleDeleteDependentTo","dropdown","l","item","gi","dq","QuestionSkipLogic","currentQuestionOrder","currentQuestionGroupOrder","QuestionCustomParams","customParams","initLoad","setInitLoad","paramValue","setParamValue","customParamObj","cp","findValue","res","objKey","handleChangeParameterValue","cpi","multipleProps","multiple","mode","showArrow","QuestionDefinition","isLastItem","movingQ","isCopying","activeTab","setActiveTab","isModalOpen","setIsModalOpen","enableCustomParams","allQuestions","last","movingQDependency","maxBy","movingQDependant","minBy","isEditQuestion","handleEdit","handleCancelEdit","handleMove","handleCopy","handleDelete","newQuestions","prevQ","nextQ","newQ","lastItem","currentQ","changedQg","addedQ","oldQg","rightButtons","leftButtons","backgroundColor","border","danger","QuestionGroupDefinition","movingQg","showQuestion","isEditQuestionGroup","handleHideQuestions","handleCancelEditGroup","handleShowQuestions","handleEditGroup","newQuestionGroups","prevQg","nextQg","currentQg","orderedQg","allQ","qid","movingQids","selfDependency","qs","dependantIsLessThanOrder","WebformEditor","onSave","setInit","currentTab","console","error","checkDefaultQuestion","sanitizeSettingTreeDropdownValue","sanitizeSettingCascadeURL","sanitizeSettingHintURL","sanitizeDefaultQuestion","sanitizeCustomParams","initialData","handleTabsOnChange","handleShowFormSetting","preventDefault","handleSave","mandatory","tabProps","TbEdit","MdOutlineLanguage","VscPreview","container","prop"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.modern.js","sources":["../src/components/FormWrapper.jsx","../src/lib/i18n.js","../src/lib/debug.js","../src/lib/store.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../src/support/ButtonAddMove.jsx","../src/support/ButtonWithIcon.jsx","../src/support/CardTitle.jsx","../src/support/TranslationFormItem.jsx","../src/support/AlertPopup.jsx","../src/lib/data.js","../src/components/translations/FormDefinitionTranslation.jsx","../src/components/translations/QuestionDefinitionTranslation.jsx","../src/components/translations/QuestionGroupDefinitionTranslation.jsx","../src/components/FormTranslations.jsx","../src/components/FormPreview.jsx","../src/components/FormDefinition.jsx","../src/components/QuestionGroupSetting.jsx","../src/components/question-type/SettingInput.jsx","../src/components/question-type/SettingNumber.jsx","../src/components/question-type/SettingOption.jsx","../src/components/question-type/SettingTree.jsx","../src/components/question-type/SettingCascade.jsx","../node_modules/moment/moment.js","../src/components/question-type/SettingDate.jsx","../src/components/question-type/SettingTable.jsx","../src/components/question-type/SettingImage.jsx","../src/components/QuestionHint.jsx","../src/components/QuestionSetting.jsx","../src/components/QuestionSkipLogic.jsx","../src/components/QuestionCustomParams.jsx","../src/components/QuestionDefinition.jsx","../src/components/QuestionGroupDefinition.jsx","../src/index.js"],"sourcesContent":["import React from 'react';\nimport { Form } from 'antd';\n\nconst FormWrapper = ({ children }) => {\n const [form] = Form.useForm();\n\n const handleOnValuesChange = () => {\n // console.log(changedValues, allValues);\n };\n\n const handleOnFinish = () => {\n // console.log(values);\n };\n\n const handleOnFinishFailed = () => {\n // console.log(values, errorFields, outOfDate);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default FormWrapper;\n","const UIStaticText = {\n en: {\n inputFormNameLabel: 'Form Name',\n inputFormDescriptionLabel: 'Form Description',\n inputFormTranslationLabel: 'Add New Translation',\n inputFormExistingTranslationsLabel: 'Existing Translations',\n inputFormDefaultLanguageLabel: 'Default Language',\n formTabPane: 'Edit Form',\n formTranslationPane: 'Translations',\n previewTabPane: 'Preview',\n questionCount: 'Questions',\n questionGroupCount: 'Question Groups',\n mandatoryQuestionCount: 'Mandatory Questions',\n version: 'Version',\n inputQuestionGroupNameLabel: 'Question Group Name',\n inputQuestionGroupDescriptionLabel: 'Question Group Description',\n inputRepeatThisGroupCheckbox: 'Repeat this group',\n inputRepeatTextLabel: 'Repeat Text',\n buttonShowQuestionsText: 'Show Questions',\n buttonHideQuestionsText: 'Hide Questions',\n buttonEditGroupText: 'Edit Group',\n buttonCancelEditGroupText: 'Cancel Edit Group',\n buttonDeleteText: 'Delete',\n buttonCancelText: 'Cancel',\n buttonAddNewQuestionGroupText: 'Insert group here',\n buttonCopyQuestionGroupText: 'Copy group here',\n buttonMoveQuestionGroupText: 'Move group here',\n buttonAddNewQuestionText: 'Add new question',\n buttonCopyQuestionText: 'Copy question here',\n buttonMoveQuestionText: 'Move question here',\n inputQuestionNameLabel: 'Question Name',\n inputQuestionTypeLabel: 'Question Type',\n inputQuestionVariableNameLabel: 'Variable Name',\n inputQuestionTooltipLabel: 'Question Tooltip',\n inputQuestionRequiredCheckbox: 'Required',\n inputQuestionMetaCheckbox: 'Data point name',\n inputQuestionMetaCheckboxHint:\n 'A string value that represents the name of the data point',\n buttonSaveText: 'Save',\n questionSettingTabPane: 'Setting',\n questionSkipLogicTabPane: 'Skip Logic',\n questionCustomParamsTabPane: 'Custom Params',\n questionExtraTabPane: 'Extra',\n inputQuestionDependentToLabel: 'Dependent to Question',\n inputQuestionDependentLogicLabel: 'Logic',\n inputQuestionDependentAnswerLabel: 'Value',\n questionMoreInputTypeSettingText: 'More Input Question Setting',\n inputQuestionRequireDoubleEntryCheckbox: 'Require double entry of answer',\n inputQuestionHiddenStringCheckbox: 'Hidden String/Password',\n questionMoreInputNumberSettingText: 'More Number Question Setting',\n inputQuestionAllowDecimalCheckbox: 'Allow Decimal',\n inputQuestionMinimumValueLabel: 'Minimum Value',\n inputQuestionMaximumValueLabel: 'Maximum Value',\n inputQuestionMinimumValidationText: 'Min value must be less than',\n inputQuestionMaximumValidationText: 'Max value must be greater than',\n inputQuestionEqualValueLabel: 'Equal Value',\n questionMoreOptionTypeSettingText: 'More Option Question Setting',\n questionMoreOptionTranslationText: 'Option Translations',\n inputQuestionAllowOtherCheckbox: 'Allow Other',\n inputQuestionAllowOtherTextLabel: 'Allow Other Text',\n inputQuestionOptionNameLabel: 'Option',\n questionMoreTreeSettingText: 'More Nested List Question Setting',\n inputSelectTreeDropdownValueLabel: 'Select Nested List Value',\n deleteQuestionGroupError: 'Unable to delete question group',\n deleteQuestionError: 'Unable to delete question',\n infoNoDependentQuestionText: 'No dependent questions',\n questionMoreCascadeSettingText: 'More Cascade Question Setting',\n inputQuestionEndpointLabel: 'Cascade Endpoint',\n inputQuestionEndpointValidationText: 'Invalid URL',\n inputQuestionInitialValueLabel: 'Initial Value',\n inputQuestionListCheckbox: 'Use Specific Object Name',\n inputQuestionListLabel: 'Object Name',\n questionMoreInputDateSettingText: 'More Date Question Setting',\n inputQuestionAfterDateValueLabel: 'After Date',\n inputQuestionBeforeDateValueLabel: 'Before Date',\n alertDeleteQuestionTitle: 'Delete Question',\n alertDeleteQuestion: 'Do you want to delete this question?',\n alertDeleteQuestionGroupTitle: 'Delete Question Group',\n alertDeleteQuestionGroup:\n 'Do you want to delete this question group and all the questions?',\n questionMoreTableTypeSettingText: 'More Table Question Setting',\n inputColumnNameLabel: 'Column Name',\n inputColumnTypeLabel: 'Column Type',\n inputColumnOptionsLabel: 'Column Options',\n questionTableTypeDefineOptionsText: 'Define Options',\n questionHintSettingText: 'Hint Setting',\n inputQuestionStaticValueLabel: 'Static Value',\n inputSelectHintEndpointLabel: 'Hint Endpoint',\n inputSelectHintPathLabel: 'Hint Path',\n inputQuestionHintButtonTextLabel: 'Hint Button Text',\n questionMoreImageTypeSettingText: 'More Image Question Setting',\n inputQuestionImageLimitValidationText: 'Limit / Max file size',\n },\n};\n\nexport default UIStaticText;\n","import * as words from './fake.json';\n\nconst titleCase = (str) => {\n return str.replace(\n /\\w\\S*/g,\n (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()\n );\n};\n\nconst getWords = () => {\n return words.default[Math.floor(Math.random() * words.default.length)];\n};\n\nexport const dummyName = (len = 2) => {\n return Array.from('x'.repeat(len)).reduce(\n (curr) => curr + ' ' + getWords(),\n titleCase(getWords())\n );\n};\n","import { Store } from 'pullstate';\nimport UIStaticText from './i18n';\nimport { dummyName } from './debug';\nimport * as locale from 'locale-codes';\nimport uniqBy from 'lodash/uniqBy';\n\nconst localeDropdownValue = uniqBy(\n locale.all\n .filter((x) => x.location)\n .map((x) => ({ label: x.name, value: x['iso639-1'] }))\n .filter((x) => x.value),\n 'value'\n);\n\nconst generateId = () => new Date().getTime();\n\nconst questionType = {\n input: 'input',\n number: 'number',\n cascade: 'cascade',\n geo: 'geo',\n text: 'text',\n date: 'date',\n option: 'option',\n multiple_option: 'multiple_option',\n tree: 'tree',\n table: 'table',\n // autofield: 'autofield',\n image: 'image',\n};\n\nconst defaultForm = () => {\n return {\n id: generateId(),\n name: 'New Form',\n version: 1,\n description: 'New Form Description',\n };\n};\n\nconst defaultQuestion = ({\n questionGroup,\n name,\n prevOrder = 0,\n type = questionType.input,\n required = false,\n params = {},\n}) => {\n const q = {\n id: generateId() + 2,\n order: prevOrder + 1,\n questionGroupId: questionGroup.id,\n name: name || dummyName(5),\n type: type,\n required: required,\n meta: false,\n tooltip: null,\n };\n if (type === questionType.option || type === questionType.multiple_option) {\n return {\n ...q,\n options: [],\n allowOther: false,\n };\n }\n if (type === questionType.cascade) {\n return {\n ...q,\n api: {\n endpoint: null,\n initial: 0,\n list: false,\n },\n };\n }\n return { ...q, ...params };\n};\n\nconst defaultQuestionGroup = ({\n name = dummyName(),\n prevOrder = 0,\n defaultQuestionParam = {},\n}) => {\n const qg = {\n id: generateId() + 1,\n name: name,\n order: prevOrder + 1,\n description: null,\n repeatable: false,\n };\n return {\n ...qg,\n questions: [\n defaultQuestion({ questionGroup: qg, ...defaultQuestionParam }),\n ],\n };\n};\n\nconst UIStore = new Store({\n current: {\n tab: 'edit-form',\n formId: null,\n questionGroupId: null,\n questionId: null,\n },\n activeEditFormSetting: true,\n activeQuestionGroups: [],\n activeEditQuestionGroups: [],\n activeMoveQuestionGroup: null,\n isCopyingQuestionGroup: false,\n activeEditQuestions: [],\n activeMoveQuestion: null,\n isCopyingQuestion: false,\n UIText: UIStaticText.en,\n localeDropdownValue: localeDropdownValue,\n existingTranslation: null,\n activeTranslationQuestionGroups: [],\n activeEditTranslationQuestionGroups: [],\n activeEditTranslationQuestions: [],\n hostParams: {},\n});\n\nconst FormStore = new Store({\n ...defaultForm(),\n});\n\nconst QuestionGroupStore = new Store({\n questionGroups: [defaultQuestionGroup({})],\n});\n\nconst formFn = {\n add: defaultForm,\n store: FormStore,\n};\n\nconst questionGroupFn = {\n add: defaultQuestionGroup,\n store: QuestionGroupStore,\n};\n\nconst questionFn = {\n add: defaultQuestion,\n update: ({ id, type, questionGroup, params }) =>\n defaultQuestion({\n id: id,\n type: type,\n questionGroup: questionGroup,\n ...params,\n }),\n};\n\nexport {\n UIStore,\n questionType,\n formFn,\n questionGroupFn,\n questionFn,\n generateId,\n};\n","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\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)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\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","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n } // Use native if support\n\n\n if (root.contains) {\n return root.contains(n);\n } // `document.contains` not support with IE11\n\n\n var node = n;\n\n while (node) {\n if (node === root) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}","import canUseDom from './canUseDom';\nimport contains from './contains';\nvar APPEND_ORDER = 'data-rc-order';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\n\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n\n return MARK_KEY;\n}\n\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n\n var head = document.querySelector('head');\n return head || document.body;\n}\n\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n\n return prepend ? 'prepend' : 'append';\n}\n/**\n * Find style which inject by rc-util\n */\n\n\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\n\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!canUseDom()) {\n return null;\n }\n\n var csp = option.csp,\n prepend = option.prepend;\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, getOrder(prepend));\n\n if (csp === null || csp === void 0 ? void 0 : csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (prepend === 'queue') {\n var existStyle = findStyles(container).filter(function (node) {\n return ['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER));\n });\n\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n } // Use `insertBefore` as `prepend`\n\n\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n\n return styleNode;\n}\n\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\n\nexport function removeCSS(key) {\n var _existNode$parentNode;\n\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n existNode === null || existNode === void 0 ? void 0 : (_existNode$parentNode = existNode.parentNode) === null || _existNode$parentNode === void 0 ? void 0 : _existNode$parentNode.removeChild(existNode);\n}\n/**\n * qiankun will inject `appendChild` to insert into other\n */\n\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container); // Find real container when not cached or cached container removed\n\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n parentNode.removeChild(placeholderStyle);\n }\n}\n\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option); // Sync real parent\n\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n\n if (existNode) {\n var _option$csp, _option$csp2;\n\n if (((_option$csp = option.csp) === null || _option$csp === void 0 ? void 0 : _option$csp.nonce) && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n\n return existNode;\n }\n\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n\n var _useContext = useContext(IconContext),\n csp = _useContext.csp;\n\n useEffect(function () {\n updateCSS(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\n\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n// should move it to antd main repo?\n\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre;\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexport default CaretRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CaretRightOutlined = function CaretRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretRightOutlinedSvg\n }));\n};\n\nCaretRightOutlined.displayName = 'CaretRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretRightOutlined);","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\n\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import React from 'react';\nimport { Button, Row, Col } from 'antd';\nimport { UIStore } from '../lib/store';\nimport { PlusOutlined, CaretRightOutlined } from '@ant-design/icons';\n\nconst ButtonAddMove = ({\n text,\n className,\n movingItem = null,\n handleCancelMove = () => {},\n disabled = false,\n handleOnAdd = () => {},\n handleOnMove = () => {},\n}) => {\n const { buttonCancelText } = UIStore.useState((s) => s.UIText);\n\n return (\n \n \n : }\n >\n {text}\n \n \n {movingItem && (\n \n \n {buttonCancelText}\n \n \n )}\n \n );\n};\n\nexport default ButtonAddMove;\n","import React from 'react';\nimport { Button } from 'antd';\nimport styles from '../styles.module.css';\nimport { TbEdit, TbEditOff } from 'react-icons/tb';\nimport {\n RiSettings5Fill,\n RiSettings5Line,\n RiDeleteBin2Line,\n RiSave3Fill,\n} from 'react-icons/ri';\nimport { BiMove, BiCopy } from 'react-icons/bi';\nimport { MdOutlineAddCircleOutline } from 'react-icons/md';\nimport { AiOutlineEye, AiOutlineEyeInvisible } from 'react-icons/ai';\n\nconst ButtonWithIcon = ({\n type = 'delete-button',\n isExpand = false,\n onClick = () => {},\n onCancel = () => {},\n disabled = false,\n}) => {\n let buttonProps = {};\n switch (type) {\n case 'show-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'copy-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'move-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'edit-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'add-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'save-button':\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n case 'expand-all-button':\n if (isExpand) {\n buttonProps = {\n onClick: onCancel,\n icon: ,\n };\n break;\n }\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n default:\n buttonProps = {\n onClick: onClick,\n icon: ,\n };\n break;\n }\n return (\n \n );\n};\n\nexport default ButtonWithIcon;\n","import React from 'react';\nimport { Space, Tag } from 'antd';\nimport ButtonWithIcon from './ButtonWithIcon';\n\nconst CardTitle = ({ id, title, buttons, dependency = [] }) => {\n return (\n \n {!!dependency.length && (\n \n {dependency.length} Dependenc{dependency.length > 1 ? 'ies' : 'y'}\n \n )}\n {buttons?.map((cfg) => (\n cfg.onClick()}\n onCancel={() => cfg.onCancel()}\n disabled={cfg?.disabled}\n />\n ))}\n {title &&
{title}
}\n
\n );\n};\n\nexport default CardTitle;\n","import React from 'react';\nimport styles from '../styles.module.css';\nimport { Form, Row, Col, Space, Typography } from 'antd';\n\nconst { Text } = Typography;\n\nconst TranslationFormItem = ({\n labelText = '',\n name = '',\n currentValue = '',\n children = '',\n initialValue = '',\n}) => {\n return (\n \n \n \n {labelText}\n {currentValue}\n \n \n \n {labelText}}\n className={styles['translation-form-item']}\n initialValue={initialValue}\n >\n {children}\n \n \n \n );\n};\n\nexport default TranslationFormItem;\n","import React from 'react';\nimport { Modal } from 'antd';\n\nconst AlertPopup = ({\n onConfirm,\n onCancel,\n visible,\n children,\n title = 'Alert',\n okButtonProps = {},\n okText = 'OK',\n}) => {\n return (\n \n {children}\n \n );\n};\n\nexport default AlertPopup;\n","import { questionType, generateId } from './store';\nimport { findIndex, isEmpty, mapKeys, orderBy } from 'lodash';\n\nconst clearQuestionObj = (\n keysToRemove = [],\n obj = false,\n checkEmpty = false\n) => {\n let clearedQuestion = {};\n if (obj) {\n Object.keys(obj).forEach((key) => {\n // filter obj by key to remove\n if (!keysToRemove.includes(key)) {\n if (!checkEmpty) {\n clearedQuestion = {\n ...clearedQuestion,\n [key]: obj[key],\n };\n return key;\n }\n // clear or remove empty obj value\n if (checkEmpty && !isEmpty(obj?.[key])) {\n clearedQuestion = {\n ...clearedQuestion,\n [key]: obj[key],\n };\n return key;\n }\n }\n });\n }\n return clearedQuestion;\n};\n\nconst clearTranslations = (obj, translations) => {\n let newObj = {\n ...obj,\n };\n const clearedTranslations = translations\n .map((tl) => {\n const clearedObj = clearQuestionObj([], tl, true);\n // remove translation if only has language property\n if (Object.keys(clearedObj).length === 1 && clearedObj?.language) {\n return false;\n }\n return clearedObj;\n })\n .filter((x) => x);\n if (clearedTranslations.length) {\n newObj = {\n ...newObj,\n translations: clearedTranslations,\n };\n } else {\n delete newObj?.translations;\n // remove translation\n }\n return newObj;\n};\n\nconst toEditor = (webFormData) => {\n webFormData = mapKeys(webFormData, (_, k) =>\n k === 'question_group' ? 'questionGroups' : k\n );\n const questionGroups = webFormData.questionGroups.map((qg, qgi) => {\n const gid = qg?.id || generateId() + qgi;\n qg = mapKeys(qg, (_, k) => (k === 'question' ? 'questions' : k));\n const questions = qg.questions.map((q, qi) => {\n const isNotOption = ![\n questionType.option,\n questionType.multiple_option,\n ].includes(q.type);\n if (isNotOption && q.type !== questionType.tree) {\n q = clearQuestionObj(['option'], q);\n }\n if (\n [questionType.option, questionType.multiple_option].includes(q.type)\n ) {\n q = mapKeys(q, (_, k) => (k === 'option' ? 'options' : k));\n }\n if (q?.options) {\n const options = q.options.map((o, oi) => ({\n id: o?.id || qi + 1 + (oi + 1),\n ...o,\n order: o?.order || oi + 1,\n }));\n q = {\n ...q,\n options: orderBy(options, 'order'),\n };\n }\n if (q?.dependency) {\n const dependency = q.dependency.map((d) => {\n if (d?.max) {\n d = { ...d, max: d.max + 1 };\n }\n if (d?.min) {\n d = { ...d, min: d.min - 1 };\n }\n return d;\n });\n q = { ...q, dependency: dependency };\n }\n return { ...q, order: q?.order || qi + 1, questionGroupId: gid };\n });\n qg = {\n ...qg,\n id: gid,\n order: qg?.order || qgi + 1,\n questions: orderBy(questions, 'order'),\n };\n return qg;\n });\n webFormData = {\n ...webFormData,\n questionGroups: orderBy(questionGroups, 'order'),\n };\n return webFormData;\n};\n\nconst toWebform = (formData, questionGroups) => {\n let webformData = {\n id: formData?.id || generateId(),\n name: formData.name,\n description: formData.description,\n };\n if (formData?.languages && formData?.languages?.length) {\n webformData = {\n ...webformData,\n languages: ['en', ...formData.languages],\n defaultLanguage: formData?.defaultLanguage || 'en',\n };\n }\n if (formData?.translations) {\n webformData = clearTranslations(webformData, formData.translations);\n }\n // Question Group & Question Definition\n const output = questionGroups.map((qg) => {\n const questions = qg.questions.map((q) => {\n const isNotOption = ![\n questionType.option,\n questionType.multiple_option,\n ].includes(q.type);\n if (q.type !== questionType.input) {\n q = clearQuestionObj(['requiredDoubleEntry', 'hiddenString'], q);\n }\n if (q.type !== questionType.number && q.type !== questionType.date) {\n q = clearQuestionObj(['rule'], q);\n }\n if (\n [questionType.option, questionType.multiple_option].includes(q.type)\n ) {\n const options = q.options.map((op) => {\n if (op?.translations) {\n return clearTranslations(op, op.translations);\n }\n return op;\n });\n q = { ...q, option: options };\n }\n if (isNotOption) {\n q = clearQuestionObj(['allowOther'], q);\n }\n if (q.type !== questionType.cascade) {\n q = clearQuestionObj(['api'], q);\n }\n if (q.type !== questionType.tree && isNotOption) {\n q = clearQuestionObj(['option'], q);\n }\n if (q.type !== questionType.table) {\n q = clearQuestionObj(['columns'], q);\n }\n if (!q?.tooltip) {\n q = clearQuestionObj(['tooltip'], q);\n }\n if (q?.dependency) {\n const dependency = q.dependency.map((d) => {\n if (d?.max) {\n d = { ...d, max: d.max - 1 };\n }\n if (d?.min) {\n d = { ...d, min: d.min + 1 };\n }\n return d;\n });\n q = { ...q, dependency: dependency };\n }\n if (q?.translations) {\n q = clearTranslations(q, q.translations);\n }\n if (\n q?.hint &&\n !q?.hint?.static &&\n (!q?.hint?.endpoint || !q?.hint?.path?.length)\n ) {\n q = clearQuestionObj(['hint'], q);\n }\n q = clearQuestionObj(['options'], q);\n return q;\n });\n let result = {\n id: qg.id,\n name: qg.name,\n order: qg.order,\n repeatable: qg.repeatable,\n question: questions,\n };\n if (qg?.repeatText) {\n result = {\n ...result,\n repeatText: qg.repeatText,\n };\n }\n if (qg?.description) {\n result = {\n ...result,\n description: qg.description,\n };\n }\n if (qg?.translations) {\n result = clearTranslations(result, qg.translations);\n }\n return result;\n });\n return { ...webformData, question_group: output };\n};\n\nconst generateTranslations = (\n key,\n value,\n savedTranslations,\n existingTranslation\n) => {\n const newTranslations = [\n {\n language: existingTranslation,\n [key]: value,\n },\n ];\n let currentTranslations = null;\n if (savedTranslations && savedTranslations?.length) {\n currentTranslations = savedTranslations.map((tl) => {\n if (tl.language === existingTranslation) {\n return {\n ...tl,\n [key]: value,\n };\n }\n return tl;\n });\n const isExistingExist = findIndex(\n savedTranslations,\n (tr) => tr.language === existingTranslation\n );\n if (isExistingExist === -1) {\n currentTranslations = [...currentTranslations, ...newTranslations];\n }\n }\n return {\n newTranslations: newTranslations,\n currentTranslations: currentTranslations,\n };\n};\n\nconst data = {\n clear: clearQuestionObj,\n toWebform: toWebform,\n toEditor: toEditor,\n generateTranslations: generateTranslations,\n};\n\nexport default data;\n","import React, { useMemo } from 'react';\nimport { Input } from 'antd';\nimport { UIStore, formFn } from '../../lib/store';\nimport { TranslationFormItem } from '../../support';\nimport data from '../../lib/data';\n\nconst FormDefinitionTranslation = () => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}`;\n\n const existingTranslationValues = useMemo(() => {\n return formStore?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n }, [formStore, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n formStore?.translations,\n existingTranslation\n );\n formFn.store.update((u) => {\n u.translations = !currentTranslations\n ? newTranslations\n : currentTranslations;\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeDescription = (e) => {\n updateTranslation('description', e?.target?.value);\n };\n\n return (\n
\n {formStore?.name && (\n \n \n \n )}\n {formStore?.description && (\n \n \n \n )}\n
\n );\n};\n\nexport default FormDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport styles from '../../styles.module.css';\nimport { Card, Input } from 'antd';\nimport { CardTitle, TranslationFormItem } from '../../support';\nimport { UIStore, questionGroupFn, questionType } from '../../lib/store';\nimport data from '../../lib/data';\nimport orderBy from 'lodash/orderBy';\n\nconst QuestionSettingTranslation = ({\n id,\n questionGroupId,\n name,\n type,\n tooltip = {},\n allowOther,\n allowOtherText,\n options = [],\n translations = [],\n}) => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}-question-${id}`;\n\n const existingTranslationValues = useMemo(() => {\n return translations?.find((tl) => tl.language === existingTranslation);\n }, [translations, existingTranslation]);\n\n const existingTooltipTranslationValues = useMemo(() => {\n return tooltip?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n }, [tooltip, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeTooltip = (e) => {\n const key = 'text';\n const value = e?.target?.value;\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n tooltip?.translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id && q?.tooltip?.text) {\n return {\n ...q,\n tooltip: {\n ...q.tooltip,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeAllowOtherText = (e) => {\n updateTranslation('allowOtherText', e?.target?.value);\n };\n\n const handleChangeOptionName = (e, optionTranslations, optionId) => {\n const key = 'name';\n const value = e?.target?.value;\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n optionTranslations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (\n q.id === id &&\n [questionType.option, questionType.multiple_option].includes(\n q.type\n )\n ) {\n const options = q.options.map((opt) => {\n if (opt.id === optionId) {\n return {\n ...opt,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return opt;\n });\n return {\n ...q,\n options: options,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n {name && (\n \n \n \n )}\n {tooltip?.text && (\n \n \n \n )}\n {/* Option Translation */}\n {[questionType.option, questionType.multiple_option].includes(type) && (\n
\n

\n {UIText.questionMoreOptionTranslationText}\n

\n {allowOther && allowOtherText && (\n \n \n \n )}\n {orderBy(options, 'order')\n .filter((d) => d?.name)\n .map((d, di) => {\n const existingOptionTranslationValues = d?.translations?.find(\n (tl) => tl.language === existingTranslation\n );\n return (\n \n \n handleChangeOptionName(e, d?.translations, d.id)\n }\n />\n \n );\n })}\n
\n )}\n
\n );\n};\n\nconst QuestionDefinitionTranslation = ({ index, question }) => {\n const { id, name, order, questionGroupOrder } = question;\n const { activeEditTranslationQuestions } = UIStore.useState((s) => s);\n\n const isEditTranslationQuestion = useMemo(() => {\n return activeEditTranslationQuestions.includes(id);\n }, [activeEditTranslationQuestions, id]);\n\n const handleEditTranslationQuestion = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = [\n ...activeEditTranslationQuestions,\n id,\n ];\n });\n };\n\n const handleCancelEditTranslationQuestion = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = activeEditTranslationQuestions.filter(\n (qId) => qId !== id\n );\n });\n };\n\n const cardTitleButton = [\n {\n type: 'show-button',\n isExpand: isEditTranslationQuestion,\n onClick: handleEditTranslationQuestion,\n onCancel: handleCancelEditTranslationQuestion,\n },\n ];\n\n return (\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n }}\n bodyStyle={{\n padding: isEditTranslationQuestion ? 24 : 0,\n borderTop: isEditTranslationQuestion ? '1px solid #f3f3f3' : 'none',\n }}\n >\n {isEditTranslationQuestion && (\n \n )}\n \n );\n};\n\nexport default QuestionDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport { Card, Input } from 'antd';\nimport { UIStore, questionGroupFn } from '../../lib/store';\nimport { CardTitle, TranslationFormItem } from '../../support';\nimport QuestionDefinitionTranslation from './QuestionDefinitionTranslation';\nimport data from '../../lib/data';\nimport { uniq, difference, intersection } from 'lodash';\n\nconst QuestionGroupSettingTranslation = ({\n id,\n name,\n description,\n repeatable,\n repeatText,\n translations = [],\n}) => {\n const { UIText, existingTranslation } = UIStore.useState((s) => s);\n const namePreffix = `translation-${existingTranslation}-question_group-${id}`;\n\n const existingTranslationValues = useMemo(() => {\n return translations?.find((tl) => tl.language === existingTranslation);\n }, [translations, existingTranslation]);\n\n const updateTranslation = (key, value) => {\n const { newTranslations, currentTranslations } = data.generateTranslations(\n key,\n value,\n translations,\n existingTranslation\n );\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n if (qg.id === id) {\n return {\n ...qg,\n translations: !currentTranslations\n ? newTranslations\n : currentTranslations,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeName = (e) => {\n updateTranslation('name', e?.target?.value);\n };\n\n const handleChangeDescription = (e) => {\n updateTranslation('description', e?.target?.value);\n };\n\n const handleChangeRepeatText = (e) => {\n updateTranslation('repeatText', e?.target?.value);\n };\n\n return (\n
\n {name && (\n \n \n \n )}\n {description && (\n \n \n \n )}\n {repeatable && repeatText && (\n \n \n \n )}\n
\n );\n};\n\nconst QuestionGroupDefinitionTranslation = ({ index, questionGroup }) => {\n const { id, name, order, questions } = questionGroup;\n const {\n activeTranslationQuestionGroups,\n activeEditTranslationQuestionGroups,\n activeEditTranslationQuestions,\n } = UIStore.useState((s) => s);\n const questionIds = questions.map((q) => q.id);\n\n const showTranslationQuestion = useMemo(() => {\n return activeTranslationQuestionGroups.includes(id);\n }, [activeTranslationQuestionGroups, id]);\n\n const isEditTranslationQuestionGroup = useMemo(() => {\n return activeEditTranslationQuestionGroups.includes(id);\n }, [activeEditTranslationQuestionGroups, id]);\n\n const handleHideTranslationQuestions = () => {\n UIStore.update((s) => {\n s.activeTranslationQuestionGroups =\n activeTranslationQuestionGroups.filter((qgId) => qgId !== id);\n });\n };\n\n const handleCancelEditTranslationGroup = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestionGroups =\n activeEditTranslationQuestionGroups.filter((qgId) => qgId !== id);\n });\n handleHideTranslationQuestions();\n };\n\n const handleEditTranslationGroup = () => {\n UIStore.update((s) => {\n if (!activeEditTranslationQuestionGroups.includes(id)) {\n s.activeEditTranslationQuestionGroups = [\n ...activeEditTranslationQuestionGroups,\n id,\n ];\n } else {\n s.activeEditTranslationQuestionGroups =\n activeEditTranslationQuestionGroups.filter((a) => a !== id);\n }\n });\n };\n\n const handleExpandAll = () => {\n UIStore.update((s) => {\n s.activeEditTranslationQuestionGroups = uniq([\n ...activeEditTranslationQuestionGroups,\n id,\n ]);\n s.activeEditTranslationQuestions = uniq([\n ...s.activeEditTranslationQuestions,\n ...questionIds,\n ]);\n });\n };\n\n const handleCancelExpandAll = () => {\n handleCancelEditTranslationGroup();\n UIStore.update((s) => {\n s.activeEditTranslationQuestions = difference(\n s.activeEditTranslationQuestions,\n questionIds\n );\n });\n };\n\n const cardTitleButton = [\n {\n type: 'show-button',\n isExpand: isEditTranslationQuestionGroup,\n onClick: handleEditTranslationGroup,\n onCancel: handleCancelEditTranslationGroup,\n },\n ];\n\n const cardExtraButton = [\n {\n type: 'expand-all-button',\n isExpand: intersection(activeEditTranslationQuestions, questionIds)\n .length,\n onClick: handleExpandAll,\n onCancel: handleCancelExpandAll,\n },\n ];\n\n return (\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n }}\n bodyStyle={{\n padding:\n isEditTranslationQuestionGroup || showTranslationQuestion ? 24 : 0,\n borderTop:\n isEditTranslationQuestionGroup || showTranslationQuestion\n ? '1px solid #f3f3f3'\n : 'none',\n }}\n extra={}\n >\n {isEditTranslationQuestionGroup && (\n \n )}\n {isEditTranslationQuestionGroup &&\n questions.map((q, qi) => (\n \n ))}\n \n );\n};\n\nexport default QuestionGroupDefinitionTranslation;\n","import React, { useMemo } from 'react';\nimport styles from '../styles.module.css';\nimport { Row, Col, Divider, Tag, Select, Form, Space } from 'antd';\nimport { UIStore, formFn, questionGroupFn } from '../lib/store';\nimport {\n FormDefinitionTranslation,\n QuestionGroupDefinitionTranslation,\n} from './translations';\n\nconst staticDefaultLang = 'en';\n\nconst ExistingTranslation = () => {\n const { localeDropdownValue, existingTranslation } = UIStore.useState(\n (s) => s\n );\n const formStore = formFn.store.useState((s) => s);\n const languages = formStore?.languages || [];\n\n const handleCloseTag = (lang) => {\n UIStore.update((u) => {\n u.existingTranslation =\n existingTranslation === lang ? null : existingTranslation;\n });\n // remove deleted translation from translations list\n formFn.store.update((u) => {\n u.languages = languages.filter((ln) => ln !== lang);\n u.translations = formStore?.translations?.filter(\n (tl) => tl.language !== lang\n );\n });\n questionGroupFn.store.update((u) => {\n u.questionGroups = u.questionGroups.map((qg) => {\n const questions = qg.questions.map((q) => {\n let newObj = q;\n if (q?.options && q?.options?.length) {\n const options = q.options.map((op) => ({\n ...op,\n translations: op?.translations?.filter(\n (tl) => tl.language !== lang\n ),\n }));\n newObj = {\n ...newObj,\n options: options,\n };\n }\n return {\n ...newObj,\n translations: q?.translations?.filter((tl) => tl.language !== lang),\n };\n });\n return {\n ...qg,\n questions: questions,\n translations: qg?.translations?.filter((tl) => tl.language !== lang),\n };\n });\n });\n };\n\n return languages.map((lang) => {\n const findLang = localeDropdownValue.find((lc) => lc.value === lang);\n return (\n \n UIStore.update((u) => {\n u.existingTranslation = existingTranslation !== lang ? lang : null;\n })\n }\n >\n handleCloseTag(lang)}\n >\n {findLang.label}\n \n \n );\n });\n};\n\nconst FormTranslations = () => {\n const [formTranslation] = Form.useForm();\n const { UIText, localeDropdownValue } = UIStore.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s?.questionGroups\n );\n\n const languages = useMemo(() => {\n return formStore?.languages || [];\n }, [formStore?.languages]);\n\n const defaultLangDropdownValue = useMemo(() => {\n return localeDropdownValue.filter((ld) =>\n [staticDefaultLang, ...languages].includes(ld.value)\n );\n }, [localeDropdownValue, languages]);\n\n return (\n \n \n \n

{UIText.inputFormDefaultLanguageLabel}

\n \n formFn.store.update((u) => {\n u.defaultLanguage = e;\n })\n }\n value={formStore?.defaultLanguage || staticDefaultLang}\n disabled={defaultLangDropdownValue.length === 1}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n />\n \n \n

{UIText.inputFormTranslationLabel}

\n \n formFn.store.update((u) => {\n u.languages = [...languages, e];\n })\n }\n value={[]}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n >\n {localeDropdownValue.map((ld, ldi) => (\n \n {ld.label}\n \n ))}\n \n \n \n

{UIText.inputFormExistingTranslationsLabel}

\n \n \n \n \n \n \n \n \n {questionGroups.map((qg, qgi) => {\n return (\n \n );\n })}\n \n \n );\n};\n\nexport default FormTranslations;\n","import React from 'react';\nimport 'akvo-react-form/dist/index.css';\nimport { Webform } from 'akvo-react-form';\nimport { formFn, questionGroupFn } from '../lib/store';\nimport data from '../lib/data';\n\nconst FormPreview = () => {\n const { questionGroups } = questionGroupFn.store.useState((s) => s);\n const formStore = formFn.store.useState((s) => s);\n\n return ;\n};\n\nexport default FormPreview;\n","import React, { useEffect } from 'react';\nimport { Form, Input } from 'antd';\nimport { UIStore, formFn } from '../lib/store';\n\nconst FormDefinition = ({ name, description }) => {\n const form = Form.useFormInstance();\n const UIText = UIStore.useState((s) => s.UIText);\n const { inputFormNameLabel, inputFormDescriptionLabel } = UIText;\n\n useEffect(() => {\n form.setFieldsValue({ 'form-name': name });\n form.setFieldsValue({ 'form-description': description });\n }, [form, name, description]);\n\n return (\n \n \n \n formFn.store.update((u) => {\n u.name = e?.target?.value;\n })\n }\n />\n \n \n \n formFn.store.update((u) => {\n u.description = e?.target?.value;\n })\n }\n />\n \n \n );\n};\n\nexport default FormDefinition;\n","import React from 'react';\nimport { Form, Input, Checkbox, Row, Col } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionGroupFn } from '../lib/store';\n\nconst QuestionGroupSetting = ({\n id,\n name,\n description,\n repeatable,\n repeatText,\n}) => {\n const namePreffix = `question_group-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n\n const handleChangeName = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, name: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n const handleChangeDescription = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, description: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n const handleChangeRepeatable = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, repeatable: e?.target?.checked };\n }\n return x;\n });\n });\n };\n\n const handleChangeRepeatText = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((x) => {\n if (x.id === id) {\n return { ...x, repeatText: e?.target?.value };\n }\n return x;\n });\n });\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n {' '}\n {UIText.inputRepeatThisGroupCheckbox}\n \n \n \n {repeatable && (\n \n \n \n \n \n )}\n \n
\n );\n};\n\nexport default QuestionGroupSetting;\n","import React from 'react';\nimport { Form, Checkbox, Space } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingInput = ({\n id,\n questionGroupId,\n requiredDoubleEntry,\n hiddenString,\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n\n const updateState = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeDoubleEntry = (e) => {\n updateState('requiredDoubleEntry', e?.target?.checked);\n };\n\n const handleChangeHiddenString = (e) => {\n updateState('hiddenString', e?.target?.checked);\n };\n\n return (\n
\n

\n {UIText.questionMoreInputTypeSettingText}\n

\n \n \n \n {' '}\n {UIText.inputQuestionRequireDoubleEntryCheckbox}\n \n \n \n \n {' '}\n {UIText.inputQuestionHiddenStringCheckbox}\n \n \n \n
\n );\n};\n\nexport default SettingInput;\n","import React from 'react';\nimport { Form, Checkbox, Space, InputNumber, Row, Col } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingNumber = ({\n id,\n questionGroupId,\n rule = {\n allowDecimal: false,\n min: null,\n max: null,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const allowDecimal = rule?.allowDecimal;\n const min = rule?.min;\n const max = rule?.max;\n\n const moreNumberSettings = [\n {\n label: UIText.inputQuestionMinimumValueLabel,\n value: min,\n key: 'min',\n rules: {\n max: max - 1,\n message: `${UIText.inputQuestionMinimumValidationText} ${max}`,\n },\n },\n {\n label: UIText.inputQuestionMaximumValueLabel,\n value: max,\n key: 'max',\n rules: {\n min: min + 1,\n message: `${UIText.inputQuestionMaximumValidationText} ${min}`,\n },\n },\n ];\n\n const updateState = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n rule: {\n ...q?.rule,\n [name]: value,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeAllowDecimal = (e) => {\n updateState('allowDecimal', e?.target?.checked);\n };\n\n const handleChangeMinMax = (key, e) => {\n updateState(key, e);\n };\n\n return (\n
\n

\n {UIText.questionMoreInputNumberSettingText}\n

\n \n \n \n {' '}\n {UIText.inputQuestionAllowDecimalCheckbox}\n \n \n \n \n {moreNumberSettings.map((x) => (\n \n \n handleChangeMinMax(x.key, e)}\n />\n \n \n ))}\n \n
\n );\n};\n\nexport default SettingNumber;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Checkbox, Space, Row, Col, Input, Button } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn, generateId } from '../../lib/store';\nimport {\n MdOutlineRemoveCircleOutline,\n MdOutlineAddCircleOutline,\n MdOutlineArrowCircleDown,\n MdOutlineArrowCircleUp,\n} from 'react-icons/md';\nimport { orderBy, takeRight } from 'lodash';\n\nconst defaultOptions = ({ init = false, order = 0 }) => {\n const option = {\n code: null,\n name: 'New Option',\n order: 1,\n };\n if (init) {\n return [\n {\n ...option,\n id: generateId(),\n name: 'New Option 1',\n order: 1,\n },\n {\n ...option,\n id: generateId() + 1,\n name: 'New Option 2',\n order: 2,\n },\n ];\n }\n return {\n ...option,\n id: generateId(),\n order: order,\n };\n};\n\nconst SettingOption = ({\n id,\n questionGroupId,\n allowOther,\n allowOtherText,\n options: initialOptions,\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const [options, setOptions] = useState(\n initialOptions?.length\n ? initialOptions.map((x, xi) => ({\n ...x,\n code: x?.code || null,\n id: x?.id || generateId() + xi,\n order: x?.order || xi + 1,\n }))\n : defaultOptions({ init: true })\n );\n\n const updateState = useCallback(\n (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n useEffect(() => {\n updateState('options', options);\n }, [options, id, questionGroupId, updateState]);\n\n const handleOnChangeAllowOther = (e) => {\n updateState('allowOther', e?.target?.checked);\n };\n\n const handleOnChangeAllowOtherText = (e) => {\n updateState('allowOtherText', e?.target?.value);\n };\n\n const handleOnChangeCode = (e, current) => {\n const { id: currentId } = current;\n setOptions(\n options.map((opt) => {\n if (opt.id === currentId) {\n return {\n ...opt,\n code: e?.target?.value,\n };\n }\n return opt;\n })\n );\n };\n\n const handleOnChangeOption = (e, current) => {\n const { id: currentId } = current;\n setOptions(\n options.map((opt) => {\n if (opt.id === currentId) {\n return {\n ...opt,\n name: e?.target?.value,\n };\n }\n return opt;\n })\n );\n };\n\n const handleOnAddOption = (current) => {\n const { order: currentOrder } = current;\n const lastOrder = takeRight(orderBy(options, 'order'))[0].order;\n // reorder prev option\n const reorderOptions = options.map((opt) => {\n if (opt.order > currentOrder) {\n opt['order'] = opt['order'] + 1;\n }\n if (\n opt.order < currentOrder &&\n opt.order !== 1 &&\n currentOrder !== lastOrder\n ) {\n opt['order'] = opt['order'] - 1;\n }\n return opt;\n });\n const addOptions = [\n ...reorderOptions,\n defaultOptions({ order: currentOrder + 1 }),\n ];\n setOptions(orderBy(addOptions, 'order'));\n };\n\n const handleOnMoveOption = (current, targetOrder) => {\n const { order: currentOrder } = current;\n\n const prevOptions = options.filter(\n (opt) => opt.order !== currentOrder && opt.order !== targetOrder\n );\n const currentOption = options\n .filter((opt) => opt.order === currentOrder)\n .map((opt) => ({\n ...opt,\n order: targetOrder,\n }));\n const targetOption = options\n .filter((opt) => opt.order === targetOrder)\n .map((opt) => ({\n ...opt,\n order: currentOrder,\n }));\n setOptions(\n orderBy([...prevOptions, ...currentOption, ...targetOption], 'order')\n );\n };\n\n const handleOnDeleteOption = (currentId) => {\n // delete and reorder\n setOptions(\n orderBy(options, 'order')\n .filter((opt) => opt.id !== currentId)\n .map((opt, opti) => ({ ...opt, order: opti + 1 }))\n );\n };\n\n return (\n
\n

\n {UIText.questionMoreOptionTypeSettingText}\n

\n \n \n \n \n {' '}\n {UIText.inputQuestionAllowOtherCheckbox}\n \n \n \n {allowOther && (\n \n \n \n \n \n )}\n \n {orderBy(options, 'order').map((d, di) => (\n \n \n \n handleOnChangeCode(e, d)}\n allowClear\n />\n \n \n \n \n handleOnChangeOption(e, d)}\n allowClear\n />\n \n \n \n \n }\n onClick={() => handleOnAddOption(d)}\n />\n }\n onClick={() => handleOnMoveOption(d, d.order - 1)}\n disabled={di === 0}\n />\n }\n onClick={() => handleOnMoveOption(d, d.order + 1)}\n disabled={di === options.length - 1}\n />\n }\n onClick={() => handleOnDeleteOption(d.id)}\n disabled={options.length === 1}\n />\n \n \n \n ))}\n
\n );\n};\n\nexport default SettingOption;\n","import React from 'react';\nimport { Form, Select } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingTree = ({ id, questionGroupId, option }) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingTreeDropdownValue = hostParams?.settingTreeDropdownValue;\n\n const handleChangeTreeDropdown = (e) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n option: e,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreTreeSettingText}\n

\n \n triggerNode.parentElement}\n onChange={handleChangeTreeDropdown}\n />\n \n
\n );\n};\n\nexport default SettingTree;\n","import React, { useMemo } from 'react';\nimport { Form, Checkbox, Row, Col, Input, InputNumber, Select } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingCascade = ({\n id,\n questionGroupId,\n api = {\n endpoint: null,\n initial: 0,\n list: false,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingCascadeURL = hostParams?.settingCascadeURL;\n const form = Form.useFormInstance();\n\n const cascadeURLDropdownValue = useMemo(() => {\n return settingCascadeURL.map((x) => ({ label: x.name, value: x.id }));\n }, [settingCascadeURL]);\n\n const updateGlobalState = (values = {}) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n api: {\n ...q?.api,\n ...values,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleChangeEndpoint = (e) => {\n const findURL = settingCascadeURL.find((x) => x.id === e);\n if (findURL) {\n form.setFieldsValue({\n [`${namePreffix}-api_initial`]: findURL.initial,\n [`${namePreffix}-api_list`]: findURL.list,\n });\n updateGlobalState({\n endpoint: findURL.endpoint,\n initial: findURL.initial || 0,\n list: findURL.list || false,\n });\n }\n };\n\n const handleChangeInitial = (e) => {\n updateGlobalState({ initial: e });\n };\n\n const handleChangeList = (value) => {\n updateGlobalState({\n list: value,\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreCascadeSettingText}\n

\n \n \n \n triggerNode.parentElement}\n onChange={handleChangeEndpoint}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n handleChangeList(e?.target?.checked)}\n checked={api?.list ? true : false}\n >\n {' '}\n {UIText.inputQuestionListCheckbox}\n \n \n \n {api?.list && (\n \n \n handleChangeList(e?.target?.value)}\n allowClear\n />\n \n \n )}\n \n
\n );\n};\n\nexport default SettingCascade;\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","import React from 'react';\nimport { Form, DatePicker, Row, Col } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\nimport moment from 'moment';\nimport isEmpty from 'lodash/isEmpty';\n\nconst SettingDate = ({\n id,\n questionGroupId,\n rule = { minDate: null, maxDate: null },\n}) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const minDate = rule?.minDate;\n const maxDate = rule?.maxDate;\n\n const moreDateSettings = [\n {\n label: UIText.inputQuestionAfterDateValueLabel,\n value: minDate,\n key: 'minDate',\n disabledDate: (current) =>\n current && maxDate && current >= moment(maxDate),\n },\n {\n label: UIText.inputQuestionBeforeDateValueLabel,\n value: maxDate,\n key: 'maxDate',\n disabledDate: (current) =>\n current && minDate && current <= moment(minDate),\n },\n ];\n\n const handleChangeAfterBefore = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n if (value) {\n return {\n ...q,\n rule: {\n ...q?.rule,\n [name]: moment(value).format('YYYY-MM-DD'),\n },\n };\n }\n if (!value && q?.rule?.[name]) {\n delete q.rule[name];\n if (isEmpty(q.rule)) {\n delete q.rule;\n }\n }\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n return (\n
\n

\n {UIText.questionMoreInputDateSettingText}\n

\n \n {moreDateSettings.map((x) => (\n \n \n handleChangeAfterBefore(x.key, e)}\n />\n \n \n ))}\n \n
\n );\n};\n\nexport default SettingDate;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Input, Select, Row, Col, Card, Button, Space } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn, generateId } from '../../lib/store';\nimport {\n MdOutlineRemoveCircleOutline,\n MdOutlineAddCircleOutline,\n MdOutlineArrowCircleDown,\n MdOutlineArrowCircleUp,\n} from 'react-icons/md';\nimport { takeRight, orderBy } from 'lodash';\n\nconst generateColumnName = (text) =>\n text.trim().toLowerCase().split(' ').join('_');\n\nconst columnType = {\n input: 'input',\n number: 'number',\n option: 'option',\n text: 'text',\n};\n\nconst defaultColumns = ({ init = false }) => {\n const column = {\n name: null,\n label: null,\n type: null,\n };\n if (init) {\n return [{ ...column, id: generateId() }];\n }\n return { ...column, id: generateId() };\n};\n\nconst defaultColumnOptions = ({ init = false, order = 0 }) => {\n const option = {\n name: 'New Option',\n order: 1,\n };\n if (init) {\n return [{ ...option, id: generateId() }];\n }\n return { ...option, id: generateId(), order: order };\n};\n\nconst SettingTable = ({ id, questionGroupId, columns: initialColumns }) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const [columns, setColumns] = useState(\n initialColumns?.length\n ? initialColumns.map((cl, cli) => {\n if (cl?.options && cl?.options?.length) {\n const options = cl.options.map((op, opi) => ({\n ...op,\n id: op?.id || generateId() + initialColumns.length + opi + 1,\n }));\n return {\n ...cl,\n id: cl?.id || generateId() + cli,\n options: options,\n };\n }\n return {\n ...cl,\n id: cl?.id || generateId() + cli,\n };\n })\n : defaultColumns({ init: true })\n );\n\n const columnTypeOptions = Object.keys(columnType).map((key) => ({\n label: columnType[key],\n value: key,\n }));\n\n useEffect(() => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return { ...q, columns: columns };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n }, [id, questionGroupId, columns]);\n\n const updateColumns = useCallback(\n (columnId, obj) => {\n const updatedColumn = columns.map((cl) => {\n if (cl.id === columnId) {\n return {\n ...cl,\n ...obj,\n };\n }\n return cl;\n });\n setColumns(updatedColumn);\n },\n [columns]\n );\n\n const handleChangeColumnName = (columnId, value) => {\n updateColumns(columnId, { name: generateColumnName(value), label: value });\n };\n\n const handleChangeColumnType = (columnId, value) => {\n let obj = { type: value };\n if (value === columnType.option) {\n obj = { ...obj, options: defaultColumnOptions({ init: true }) };\n }\n updateColumns(columnId, obj);\n };\n\n const handleAddColumn = () => {\n const addColumns = [...columns, defaultColumns({ init: false })];\n setColumns(addColumns);\n };\n\n const handleDeleteColumn = (currentColumn) => {\n const updatedColumn = columns.filter((cl) => cl.id !== currentColumn.id);\n setColumns(updatedColumn);\n };\n\n const handleOnAddOption = (currentColumn, currentOption) => {\n const { id: columnId, options } = currentColumn;\n const { order: currentOrder } = currentOption;\n const lastOrder = takeRight(orderBy(options, 'order'))[0].order;\n // reorder prev option\n const reorderOptions = options.map((opt) => {\n let order = opt.order;\n if (opt.order > currentOrder) {\n order = order + 1;\n }\n if (\n opt.order < currentOrder &&\n opt.order !== 1 &&\n currentOrder !== lastOrder\n ) {\n order = order - 1;\n }\n return { ...opt, order: order };\n });\n const addOptions = [\n ...reorderOptions,\n defaultColumnOptions({ order: currentOrder + 1 }),\n ];\n updateColumns(columnId, { options: addOptions });\n };\n\n const handleOnMoveOption = (currentColumn, currentOption, targetOrder) => {\n const { id: columnId, options } = currentColumn;\n const { order: currentOrder } = currentOption;\n // handle move\n const prevOptions = options.filter(\n (opt) => opt.order !== currentOrder && opt.order !== targetOrder\n );\n const currentOptions = options\n .filter((opt) => opt.order === currentOrder)\n .map((opt) => ({\n ...opt,\n order: targetOrder,\n }));\n const targetOptions = options\n .filter((opt) => opt.order === targetOrder)\n .map((opt) => ({\n ...opt,\n order: currentOrder,\n }));\n updateColumns(columnId, {\n options: orderBy(\n [...prevOptions, ...currentOptions, ...targetOptions],\n 'order'\n ),\n });\n };\n\n const handleOnDeleteOption = (currentColumn, currentOptionId) => {\n const { id: columnId, options } = currentColumn;\n // delete and reorder\n updateColumns(columnId, {\n options: orderBy(options, 'order')\n .filter((opt) => opt.id !== currentOptionId)\n .map((opt, opti) => ({ ...opt, order: opti + 1 })),\n });\n };\n\n const handleOnChangeOption = (currentColumn, currentOption, value) => {\n const { id: columnId, options } = currentColumn;\n const { id: currentOptId } = currentOption;\n const updatedOptions = options.map((op) => {\n if (op.id === currentOptId) {\n return {\n ...op,\n name: value,\n };\n }\n return op;\n });\n updateColumns(columnId, { options: updatedOptions });\n };\n\n return (\n
\n

{UIText.questionMoreTableTypeSettingText}

\n {columns.map((cl, cli) => {\n return (\n \n {`Column - ${cli + 1}`}\n \n \n }\n onClick={() => handleAddColumn()}\n />\n }\n onClick={() => handleDeleteColumn(cl)}\n disabled={columns.length === 1}\n />\n \n \n \n }\n >\n \n \n \n \n handleChangeColumnName(cl.id, e?.target?.value)\n }\n />\n \n \n \n \n \n triggerNode.parentElement\n }\n onChange={(val) => handleChangeColumnType(cl.id, val)}\n />\n \n \n \n {cl.type === columnType.option && (\n
\n

{UIText.questionTableTypeDefineOptionsText}

\n {cl?.options?.map((op, opi) => {\n return (\n \n \n \n \n handleOnChangeOption(cl, op, e?.target?.value)\n }\n />\n \n \n \n \n }\n onClick={() => handleOnAddOption(cl, op)}\n />\n }\n onClick={() =>\n handleOnMoveOption(cl, op, op.order - 1)\n }\n disabled={opi === 0}\n />\n }\n onClick={() =>\n handleOnMoveOption(cl, op, op.order + 1)\n }\n disabled={opi === cl.options.length - 1}\n />\n }\n onClick={() => handleOnDeleteOption(cl, op.id)}\n disabled={cl.options.length === 1}\n />\n \n \n \n );\n })}\n
\n )}\n \n
\n \n );\n })}\n
\n );\n};\n\nexport default SettingTable;\n","import React from 'react';\nimport { Form, InputNumber, Row, Col } from 'antd';\nimport styles from '../../styles.module.css';\nimport { UIStore, questionGroupFn } from '../../lib/store';\n\nconst SettingImage = ({ id, questionGroupId, limit }) => {\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n\n const updateState = (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n };\n\n const handleOnLimit = (value) => {\n updateState('limit', value);\n };\n return (\n
\n

\n {UIText.questionMoreImageTypeSettingText}\n

\n \n \n \n \n \n \n \n
\n );\n};\n\nexport default SettingImage;\n","import React, { useMemo } from 'react';\nimport styles from '../styles.module.css';\nimport { Form, Row, Col, Select, Input } from 'antd';\nimport { UIStore, questionGroupFn } from '../lib/store';\nimport { useCallback } from 'react';\n\nconst QuestionHint = ({\n id,\n questionGroupId,\n hint = {\n id: null,\n endpoint: null,\n path: [],\n static: null,\n buttonText: null,\n },\n}) => {\n const namePreffix = `question-${id}`;\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const settingHintURL = hostParams?.settingHintURL?.settings;\n const form = Form.useFormInstance();\n\n const updateGlobalState = useCallback(\n (values = {}) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n hint: {\n ...q?.hint,\n ...values,\n },\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const hintURLDropdownValue = useMemo(() => {\n return settingHintURL && settingHintURL?.length\n ? settingHintURL.map((x) => ({\n label: x.name,\n value: x.id,\n }))\n : [];\n }, [settingHintURL]);\n\n const hintPathDropdownValue = useMemo(() => {\n let endpoint = hint?.endpoint;\n if (hint?.endpoint && endpoint.includes(String(id))) {\n endpoint = endpoint.replace(`/${String(id)}`, '');\n }\n const findURL = settingHintURL.find(\n (x) => x.id === hint?.id || x.endpoint === endpoint\n );\n updateGlobalState({ id: findURL?.id });\n return findURL?.path || [];\n }, [settingHintURL, hint?.id, hint?.endpoint, id, updateGlobalState]);\n\n const handleChangeEndpoint = (e) => {\n const findURL = settingHintURL.find((x) => x.id === e);\n form.setFieldsValue({\n [`${namePreffix}-hint_path`]: [],\n });\n updateGlobalState({\n id: e, // set current URL id\n endpoint: findURL?.endpoint ? `${findURL.endpoint}/${id}` : null,\n path: [],\n });\n };\n\n const handleChangePath = (val) => {\n updateGlobalState({\n path: val,\n });\n };\n\n const handleChangeStaticValue = (e) => {\n updateGlobalState({\n id: null,\n static: e?.target?.value,\n endpoint: null,\n path: [],\n });\n };\n\n const handleChangeButtonText = (e) => {\n updateGlobalState({\n buttonText: e?.target?.value,\n });\n };\n\n return (\n
\n

\n {UIText.questionHintSettingText}\n

\n \n \n \n triggerNode.parentElement}\n onChange={handleChangeEndpoint}\n value={hint?.id}\n disabled={hint?.static}\n />\n \n \n \n \n \n \n \n triggerNode.parentElement}\n onChange={handleChangePath}\n disabled={hint?.static}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default QuestionHint;\n","import React, { useCallback, useMemo } from 'react';\nimport { Form, Input, Select, Checkbox, Alert, Row, Col, Popover } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionType, questionGroupFn } from '../lib/store';\nimport {\n SettingInput,\n SettingTree,\n SettingNumber,\n SettingOption,\n SettingCascade,\n SettingDate,\n SettingTable,\n SettingImage,\n} from './question-type';\nimport QuestionHint from './QuestionHint';\nimport { map, groupBy, orderBy, isEmpty } from 'lodash';\nimport { AiOutlineQuestionCircle } from 'react-icons/ai';\n\nconst QuestionSetting = ({ question, dependant }) => {\n const {\n id,\n name,\n type,\n variable,\n tooltip,\n required,\n questionGroupId,\n meta,\n disableDelete,\n } = question;\n const namePreffix = `question-${id}`;\n const form = Form.useFormInstance();\n const qType = Form.useWatch(`${namePreffix}-type`, form);\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const limitQuestionType = hostParams?.limitQuestionType;\n const settingHintURL = hostParams?.settingHintURL;\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n\n const disableMetaForGeo = useMemo(() => {\n const metaGeoQuestionDefined = questionGroups\n .flatMap((qg) =>\n qg.questions.filter((q) => q.type === questionType.geo && q?.meta)\n )\n .map((q) => q.id);\n return (\n type === questionType.geo &&\n metaGeoQuestionDefined.length &&\n !metaGeoQuestionDefined.includes(id)\n );\n }, [questionGroups, type, id]);\n\n const showMetaCheckbox = useMemo(() => {\n const currentQuestionGroup = questionGroups.find(\n (qg) => qg.id === questionGroupId\n );\n return (\n ![questionType.tree, questionType.table].includes(type) &&\n !currentQuestionGroup?.repeatable\n );\n }, [type, questionGroups, questionGroupId]);\n\n const questionTypeDropdownValue = useMemo(() => {\n if (limitQuestionType && limitQuestionType?.length) {\n return limitQuestionType;\n }\n return Object.keys(questionType).map((key) => ({\n label: questionType[key]?.split('_').join(' '),\n value: questionType[key],\n }));\n }, [limitQuestionType]);\n\n const showHintSetting = useMemo(() => {\n if (!settingHintURL || !settingHintURL?.settings?.length) {\n return false;\n }\n if (\n settingHintURL?.questionTypes &&\n settingHintURL?.questionTypes?.length\n ) {\n return settingHintURL.questionTypes.includes(type);\n }\n return settingHintURL?.settings?.length;\n }, [settingHintURL, type]);\n\n const updateState = useCallback(\n (name, value) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n return {\n ...q,\n [name]: value,\n };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const defaultTypeValue = useMemo(() => {\n if (questionTypeDropdownValue.length) {\n const checkType = questionTypeDropdownValue.find((x) => x.value === type);\n if (checkType) {\n return type;\n }\n if (!isEmpty(defaultQuestionParam) && defaultQuestionParam?.type) {\n updateState('type', defaultQuestionParam.type);\n return defaultQuestionParam.type;\n }\n const checkText = questionTypeDropdownValue.find(\n (x) => x.value === questionType.text\n );\n const defType = checkText\n ? checkText.value\n : questionTypeDropdownValue?.[0]?.value;\n updateState('type', defType);\n return defType;\n }\n return type;\n }, [type, questionTypeDropdownValue, defaultQuestionParam, updateState]);\n\n const handleChangeName = (e) => {\n updateState('name', e?.target?.value);\n };\n\n const handleChangeType = (e) => {\n updateState('type', e);\n };\n\n const handleChangeVariableName = (e) => {\n updateState('variableName', e?.target?.value);\n };\n\n const handleChangeTooltip = (e) => {\n const value = e?.target?.value;\n if (value) {\n updateState('tooltip', { ...tooltip, text: value });\n } else {\n updateState('tooltip', null);\n }\n };\n\n const handleChangeRequired = (e) => {\n updateState('required', e?.target?.checked);\n };\n\n const handleChangeMeta = (e) => {\n updateState('meta', e?.target?.checked);\n };\n\n const dependantGroup = map(\n groupBy(\n dependant.map((x) => ({\n name: `${x.questionGroup.order}.${x.order}. ${x.name}`,\n group: `${x.questionGroup.order}. ${x.questionGroup.name}`,\n })),\n 'group'\n ),\n (i, g) => ({\n items: orderBy(i, 'name'),\n group: g,\n })\n );\n\n return (\n
\n {!!dependant.length && (\n \n
    \n Dependant Questions:\n {dependantGroup.map((d, di) => (\n
  • \n {d.group}\n
      \n {d.items.map((i, ii) => (\n
    • {i.name}
    • \n ))}\n
    \n
  • \n ))}\n
\n
\n }\n type=\"info\"\n style={{ marginBottom: 24 }}\n />\n )}\n \n \n \n \n triggerNode.parentElement}\n onChange={handleChangeType}\n disabled={dependant.length || disableDelete}\n />\n \n \n \n \n \n \n \n \n \n \n \n {' '}\n {UIText.inputQuestionRequiredCheckbox}\n \n \n \n {showMetaCheckbox && (\n \n
\n \n \n {' '}\n {UIText.inputQuestionMetaCheckbox}\n \n {UIText.inputQuestionMetaCheckboxHint}}\n >\n \n \n \n
\n \n )}\n \n {showHintSetting && }\n {qType === questionType.input && }\n {qType === questionType.number && }\n {[questionType.option, questionType.multiple_option].includes(qType) && (\n \n )}\n {qType === questionType.tree && }\n {qType === questionType.cascade && }\n {qType === questionType.date && }\n {qType === questionType.table && }\n {qType === questionType.image && }\n \n );\n};\n\nexport default QuestionSetting;\n","import React, { useMemo, useState, useEffect, useCallback } from 'react';\nimport {\n Form,\n Select,\n Row,\n Col,\n InputNumber,\n Input,\n Alert,\n Space,\n DatePicker,\n} from 'antd';\nimport styles from '../styles.module.css';\nimport { ButtonWithIcon } from '../support';\nimport {\n UIStore,\n questionGroupFn,\n generateId,\n questionType,\n} from '../lib/store';\nimport { groupBy, map } from 'lodash';\nimport moment from 'moment';\n\nconst dependencyTypes = [\n {\n type: [questionType.option, questionType.multiple_option],\n logicDropdowns: [\n {\n label: 'contains',\n value: 'options',\n },\n ],\n },\n {\n type: [questionType.number],\n logicDropdowns: [\n {\n label: 'not equal',\n value: 'notEqual',\n },\n {\n label: 'less than',\n value: 'max',\n },\n {\n label: 'greater than',\n value: 'min',\n },\n ],\n },\n {\n type: [questionType.date],\n logicDropdowns: [\n {\n label: 'before',\n value: 'before',\n },\n {\n label: 'after',\n value: 'after',\n },\n ],\n },\n];\n\nconst defaultSkipLogic = () => {\n return [\n {\n id: generateId(),\n dependentTo: null,\n dependentToType: null,\n dependentLogic: null,\n dependentAnswer: null,\n dependencyLogicDropdownValue: [],\n dependencyAnswerDropdownValue: [],\n },\n ];\n};\n\nconst fetchDependencyLogicDropdown = (question) => {\n const value = dependencyTypes.find((dt) =>\n dt.type.includes(question.type)\n )?.logicDropdowns;\n return value || [];\n};\n\nconst fetchDependencyAnswerDropdown = (question) => {\n if (question?.options) {\n return question.options.map((opt) => ({\n label: opt.name,\n value: opt.name,\n }));\n }\n return [];\n};\n\nconst transformDependencyValue = (dependency, questionGroups) => {\n // transform dependency to match default skip logic format\n const questions = questionGroups.flatMap((qg) => qg.questions);\n const logicDropdowns = dependencyTypes\n .flatMap((d) => d.logicDropdowns)\n .map((x) => x.value);\n const value = dependency.map((d) => {\n let dependentLogic = null;\n const dependentAnswer = logicDropdowns\n .map((lg) => {\n if (d?.[lg]) {\n dependentLogic = lg;\n }\n return d?.[lg];\n })\n .filter((x) => x)?.[0];\n const findQ = questions.find((q) => q.id === d.id);\n return {\n id: generateId(),\n dependentTo: d.id,\n dependentToType: findQ.type,\n dependentLogic: dependentLogic,\n dependentAnswer: dependentAnswer,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(findQ),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(findQ),\n };\n });\n return value;\n};\n\nconst SettingSkipLogic = ({\n question,\n questions,\n dependency,\n dependencies,\n setDependencies,\n dependentToQuestions,\n}) => {\n const { id, questionGroupId, dependency: savedDependency } = question;\n const namePreffix = `question-${id}`;\n const UIText = UIStore.useState((s) => s.UIText);\n const form = Form.useFormInstance();\n\n const updateGlobalStore = useCallback(\n (dependencyValue, isDelete = false) => {\n const transformDependencies = dependencyValue\n .map((dp) => {\n return {\n id: dp.dependentTo,\n [dp.dependentLogic]: dp.dependentAnswer,\n };\n })\n .filter((d) => d.id);\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id && !isDelete) {\n return {\n ...q,\n dependency: transformDependencies,\n };\n }\n if (q.id === id && !isDelete && !transformDependencies.length) {\n q.dependency && delete q.dependency;\n return q;\n }\n if (q.id === id && isDelete && transformDependencies.length) {\n return {\n ...q,\n dependency: transformDependencies,\n };\n }\n if (q.id === id && isDelete && !transformDependencies.length) {\n q.dependency && delete q.dependency;\n return q;\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n useEffect(() => {\n // add dependency to global store if all dependency value defined\n const checkDependencies = dependencies.filter((dp) => {\n if (\n dp.dependentTo &&\n dp.dependentLogic &&\n Array.isArray(dp.dependentAnswer) &&\n dp.dependentAnswer.length\n ) {\n return dp;\n }\n if (\n dp.dependentTo &&\n dp.dependentLogic &&\n !Array.isArray(dp.dependentAnswer) &&\n dp.dependentAnswer\n ) {\n return dp;\n }\n });\n if (checkDependencies.length) {\n updateGlobalStore(checkDependencies);\n }\n }, [dependencies, id, questionGroupId, updateGlobalStore]);\n\n const updateLocalState = useCallback(\n (dependencyId, values = {}) => {\n const updatedDependencies = dependencies\n .map((d) => {\n if (d.id === dependencyId) {\n return {\n ...d,\n ...values,\n };\n }\n return d;\n })\n .filter((d) =>\n dependencyTypes.flatMap((dt) => dt.type).includes(d.dependentToType)\n );\n setDependencies(updatedDependencies);\n },\n [dependencies, setDependencies]\n );\n\n useEffect(() => {\n // delete logic if dependentTo question type changed\n setTimeout(() => {\n const checkChangedType = dependencies\n .map((d) => {\n const findQ = questions.find((q) => q.id === d.dependentTo);\n if (findQ?.id && findQ.type !== d.dependentToType) {\n return findQ;\n }\n return false;\n })\n .filter((x) => x);\n if (dependencies.length && checkChangedType.length) {\n checkChangedType.forEach((q) => {\n const updatedDependency = dependencies.find(\n (d) => d.dependentTo === q.id\n );\n updateLocalState(updatedDependency.id, {\n ...updatedDependency,\n dependentToType: q.type,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(q),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(q),\n });\n form.setFieldsValue({\n [`${namePreffix}-dependent_logic-${updatedDependency.id}`]: null,\n });\n });\n }\n }, 500);\n }, [dependencies, questions, form, namePreffix, updateLocalState]);\n\n const handleChangeDependentTo = (dependencyId, e) => {\n const question = questions.find((q) => q.id === e);\n const values = {\n dependentTo: e,\n dependentToType: question.type,\n dependencyLogicDropdownValue: fetchDependencyLogicDropdown(question),\n dependencyAnswerDropdownValue: fetchDependencyAnswerDropdown(question),\n };\n updateLocalState(dependencyId, values);\n };\n\n const handleChangeDependentLogic = (dependencyId, e) => {\n updateLocalState(dependencyId, { dependentLogic: e });\n };\n\n const handleChangeDependentAnswer = (dependencyId, val) => {\n updateLocalState(dependencyId, { dependentAnswer: val });\n // handle when answer value empty\n if (savedDependency?.length) {\n // delete dependency from global store\n const updatedDependencies = savedDependency.filter(\n (d) => d.id !== dependencyId\n );\n if (Array.isArray(val) && !val.length) {\n updateGlobalStore(updatedDependencies, true);\n return;\n }\n if (!Array.isArray(val) && !val) {\n updateGlobalStore(updatedDependencies, true);\n return;\n }\n }\n };\n\n const handleAddMoreDependency = () => {\n const newDependencies = [...dependencies, ...defaultSkipLogic()];\n setDependencies(newDependencies);\n };\n\n const handleDeleteDependentTo = (dependencyId) => {\n form.setFieldsValue({\n [`${namePreffix}-dependent_logic-${dependencyId}`]: null,\n });\n const updatedDependencies = dependencies.filter(\n (dependency) => dependency.id !== dependencyId\n );\n if (updatedDependencies.length) {\n setDependencies(updatedDependencies);\n } else {\n setDependencies(defaultSkipLogic());\n updateGlobalStore([], true);\n }\n };\n\n const dropdown = map(groupBy(dependentToQuestions, 'group'), (i, l) => ({\n label: l,\n item: i,\n })).map((g, gi) => ({ ...g, key: gi }));\n\n return (\n \n \n \n \n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentTo(dependency.id, e)}\n value={dependency.dependentTo || []}\n optionFilterProp=\"children\"\n >\n {dropdown.map((g) => (\n \n {g.item.map((dq) => (\n d.dependentTo)\n .includes(dq.value)}\n >\n {dq.label}\n \n ))}\n \n ))}\n \n \n \n \n \n handleDeleteDependentTo(dependency.id)}\n />\n \n \n \n \n \n \n \n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentLogic(dependency.id, e)}\n />\n \n \n \n \n {!dependency.dependentTo && }\n {/* Number */}\n {dependency.dependentToType === questionType.number && (\n handleChangeDependentAnswer(dependency.id, e)}\n value={dependency.dependentAnswer || null}\n />\n )}\n {/* Option / Multiple */}\n {[questionType.option, questionType.multiple_option].includes(\n dependency.dependentToType\n ) && (\n triggerNode.parentElement}\n onChange={(e) => handleChangeDependentAnswer(dependency.id, e)}\n mode=\"multiple\"\n showSearch\n allowClear\n showArrow\n value={\n Array.isArray(dependency.dependentAnswer)\n ? dependency.dependentAnswer\n : dependency.dependentAnswer\n ? [dependency.dependentAnswer]\n : []\n }\n />\n )}\n {/* Date */}\n {dependency.dependentToType === questionType.date && (\n \n handleChangeDependentAnswer(\n dependency.id,\n moment(e).format('YYYY-MM-DD')\n )\n }\n />\n )}\n \n \n \n \n );\n};\n\nconst QuestionSkipLogic = ({ question }) => {\n const {\n id,\n questionGroupId,\n dependency,\n order: currentQuestionOrder,\n } = question;\n const UIText = UIStore.useState((s) => s.UIText);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const [dependencies, setDependencies] = useState(\n dependency?.length\n ? transformDependencyValue(dependency, questionGroups)\n : defaultSkipLogic()\n );\n\n const currentQuestionGroupOrder = useMemo(() => {\n return questionGroups.find((qg) => qg.id === questionGroupId)?.order;\n }, [questionGroups, questionGroupId]);\n\n const questions = useMemo(() => {\n return questionGroups\n .filter((qg) => qg.order <= currentQuestionGroupOrder) // filter by group order\n .flatMap((qg) => qg.questions)\n .filter(\n (q) =>\n (q.questionGroupId === questionGroupId &&\n q.order < currentQuestionOrder) ||\n q.questionGroupId !== questionGroupId\n ); // filter by question order\n }, [\n questionGroups,\n currentQuestionGroupOrder,\n currentQuestionOrder,\n questionGroupId,\n ]);\n\n // dependency question dropdown value\n const dependentToQuestions = useMemo(() => {\n return questions\n .filter((q) => dependencyTypes.flatMap((dt) => dt.type).includes(q.type))\n .map((q) => {\n const group = questionGroups.find((g) => g.id === q.questionGroupId);\n return {\n label: `${group.order}.${q.order}. ${q.name}`,\n value: q.id,\n group: `${group.order}. ${group.name}`,\n };\n });\n }, [questions, questionGroups]);\n\n if (!dependencies?.[0]?.dependentTo && !dependentToQuestions?.length) {\n return (\n \n );\n }\n\n return (\n \n {dependencies?.map((dependency, di) => (\n \n ))}\n \n );\n};\n\nexport default QuestionSkipLogic;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Form, Input, Select } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionGroupFn } from '../lib/store';\n\nconst QuestionCustomParams = ({ question }) => {\n const { id, questionGroupId } = question;\n const namePreffix = `question-${id}`;\n const hostParams = UIStore.useState((s) => s.hostParams);\n const customParams = hostParams?.customParams;\n const [initLoad, setInitLoad] = useState(true);\n const [paramValue, setParamValue] = useState({});\n\n useEffect(() => {\n if (initLoad) {\n // initial value load\n const customParamObj = customParams?.params\n ?.map((cp) => {\n let findValue = question?.[cp.name];\n if (Array.isArray(findValue) && cp.type === 'input') {\n findValue = findValue[0];\n }\n if (findValue) {\n return { [cp.name]: findValue };\n }\n return false;\n })\n .filter((x) => x);\n if (customParamObj.length) {\n setParamValue(\n customParamObj.reduce((res, curr) => ({ ...res, ...curr }))\n );\n }\n setInitLoad(false);\n }\n }, [customParams, question, initLoad]);\n\n const updateGlobalStore = useCallback(\n (objKey, value, isDelete = false) => {\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n const questions = qg.questions.map((q) => {\n if (q.id === id) {\n if (isDelete && q?.[objKey]) {\n delete q[objKey];\n return q;\n }\n return { ...q, [objKey]: value };\n }\n return q;\n });\n return {\n ...qg,\n questions: questions,\n };\n }\n return qg;\n });\n });\n },\n [id, questionGroupId]\n );\n\n const handleChangeParameterValue = (objKey, val) => {\n setParamValue({\n ...paramValue,\n [objKey]: val,\n });\n const isDelete = !val || !val?.length;\n const value = Array.isArray(val) ? val : [val];\n updateGlobalStore(objKey, value, isDelete);\n };\n\n return customParams?.params?.map((cp, cpi) => {\n let multipleProps = {};\n if (cp?.multiple) {\n multipleProps = {\n mode: 'multiple',\n showArrow: true,\n };\n }\n return (\n
\n \n {cp.type === 'option' && (\n handleChangeParameterValue(cp.name, val)}\n getPopupContainer={(triggerNode) => triggerNode.parentElement}\n value={paramValue?.[cp.name] || []}\n {...multipleProps}\n />\n )}\n {cp.type === 'input' && (\n \n handleChangeParameterValue(cp.name, e?.target?.value)\n }\n value={paramValue?.[cp.name] || null}\n allowClear\n />\n )}\n \n
\n );\n });\n};\n\nexport default QuestionCustomParams;\n","import React, { useMemo, useState } from 'react';\nimport { Card, Tabs } from 'antd';\nimport styles from '../styles.module.css';\nimport { UIStore, questionFn, questionGroupFn } from '../lib/store';\nimport data from '../lib/data';\nimport QuestionSetting from './QuestionSetting';\nimport QuestionSkipLogic from './QuestionSkipLogic';\nimport QuestionCustomParams from './QuestionCustomParams';\nimport { ButtonAddMove, CardTitle, AlertPopup } from '../support';\nimport { orderBy, maxBy, minBy } from 'lodash';\n\nconst QuestionDefinition = ({ index, question, questionGroup, isLastItem }) => {\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const questions = questionGroup?.questions;\n const { UIText, hostParams, activeEditQuestions } = UIStore.useState(\n (s) => s\n );\n const movingQ = UIStore.useState((s) => s.activeMoveQuestion);\n const isCopying = UIStore.useState((s) => s.isCopyingQuestion);\n const [activeTab, setActiveTab] = useState('setting');\n const [isModalOpen, setIsModalOpen] = useState(false);\n const { id, questionGroupId, order, name, dependency, disableDelete } =\n question;\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const customParams = hostParams?.customParams;\n\n const enableCustomParams =\n customParams && customParams?.label && customParams?.params?.length;\n\n const allQuestions = questionGroups\n .map((qg) => qg.questions)\n .flatMap((x) => x)\n .map((q) => ({\n ...q,\n questionGroup: questionGroups.find((qg) => q.questionGroupId === qg.id),\n }));\n\n const dependant = useMemo(() => {\n const dependant = allQuestions.filter(\n (q) => q?.dependency?.filter((d) => d.id === id).length || false\n );\n\n let disabled = { current: false, last: false };\n\n const movingQDependency = maxBy(\n movingQ?.dependency?.map((q) => allQuestions.find((a) => a.id === q.id)),\n 'questionGroup.order'\n );\n if (movingQDependency?.questionGroup?.order >= questionGroup?.order) {\n disabled = {\n ...disabled,\n current:\n movingQDependency?.questionGroup?.order === questionGroup.order\n ? movingQDependency.order >= order\n : true,\n };\n disabled = {\n ...disabled,\n last:\n movingQDependency?.questionGroup?.order === questionGroup.order\n ? movingQDependency.order >= order + 1\n : true,\n };\n }\n const movingQDependant = minBy(\n allQuestions.filter(\n (q) =>\n q?.dependency?.filter((d) => d.id === movingQ?.id).length || false\n ),\n 'questionGroup.order'\n );\n if (movingQDependant?.questionGroup?.order <= questionGroup?.order) {\n disabled = {\n ...disabled,\n current:\n movingQDependant?.questionGroup?.order === questionGroup.order\n ? movingQDependant.order <= order - 1\n : true,\n };\n disabled = {\n ...disabled,\n last:\n movingQDependant?.questionGroup?.order === questionGroup.order\n ? movingQDependant.order <= order\n : true,\n };\n }\n return {\n disabled: disabled,\n dependant: dependant,\n };\n }, [id, order, questionGroup, allQuestions, movingQ]);\n\n const isEditQuestion = useMemo(() => {\n return activeEditQuestions.includes(id);\n }, [activeEditQuestions, id]);\n\n const handleEdit = () => {\n UIStore.update((s) => {\n s.activeEditQuestions = [...activeEditQuestions, id];\n });\n };\n\n const handleCancelEdit = () => {\n UIStore.update((s) => {\n s.activeEditQuestions = activeEditQuestions.filter((qId) => qId !== id);\n });\n };\n\n const handleCancelMove = () => {\n UIStore.update((s) => {\n s.isCopyingQuestion = false;\n s.activeMoveQuestion = null;\n movingQ === question ? null : question;\n });\n };\n\n const handleMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestion =\n movingQ === question && !s.isCopyingQuestion ? null : question;\n s.isCopyingQuestion = false;\n });\n };\n\n const handleCopy = () => {\n UIStore.update((s) => {\n s.activeMoveQuestion =\n movingQ === question && s.isCopyingQuestion ? null : question;\n s.isCopyingQuestion = !s.isCopyingQuestion;\n });\n };\n\n const handleDelete = () => {\n const newQuestions = questions\n .filter((q) => q.id !== id)\n .map((q) => {\n if (q.order > order) {\n return { ...q, order: q.order - 1 };\n }\n return q;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n return { ...qg, questions: newQuestions };\n }\n return qg;\n });\n });\n setIsModalOpen(false);\n };\n\n const handleOnAdd = (prevOrder) => {\n const prevQ = questions.filter((q) => q.order <= prevOrder);\n const nextQ = questions\n .filter((q) => q.order > prevOrder)\n .map((q) => ({\n ...q,\n order: q.order + 1,\n }));\n const newQ = {\n ...defaultQuestionParam,\n questionGroup: questionGroup,\n prevOrder: prevOrder,\n params: data.clear(['id', 'order', 'questionGroupId'], movingQ),\n };\n const newQuestions = [...prevQ, questionFn.add(newQ), ...nextQ];\n questionGroupFn.store.update((s) => {\n s.questionGroups = s.questionGroups.map((qg) => {\n if (qg.id === questionGroupId) {\n return { ...qg, questions: orderBy(newQuestions, 'order') };\n }\n return qg;\n });\n });\n UIStore.update((s) => {\n s.activeMoveQuestion = null;\n s.isCopyingQuestion = false;\n });\n };\n\n const handleOnMove = (prevOrder, lastItem = false) => {\n const currentQ = {\n ...movingQ,\n questionGroupId: questionGroupId,\n order:\n questionGroupId !== movingQ.questionGroupId\n ? prevOrder + 1\n : movingQ.order < prevOrder\n ? prevOrder\n : prevOrder + 1,\n };\n const changedQg = questionGroups\n .filter(\n (qg) => qg.id === movingQ.questionGroupId || qg.id === questionGroupId\n )\n .map((qg) => {\n const addedQ = qg.id === questionGroupId ? currentQ : false;\n let newQuestions = qg.questions.filter((q) => q.id !== movingQ.id);\n if (\n questionGroupId !== movingQ.questionGroupId &&\n newQuestions.length < qg.questions.length\n ) {\n newQuestions = newQuestions.map((q, qi) => ({ ...q, order: qi + 1 }));\n }\n if (\n questionGroupId !== movingQ.questionGroupId &&\n qg.id === questionGroupId\n ) {\n newQuestions = newQuestions.map((x) => {\n if (lastItem) {\n return x;\n }\n if (x.order >= prevOrder + 1) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n }\n if (questionGroupId === movingQ.questionGroupId) {\n newQuestions = newQuestions.map((x) => {\n if (lastItem) {\n if (x.order > movingQ.order) {\n return { ...x, order: x.order - 1 };\n }\n return x;\n }\n if (\n prevOrder > movingQ.order &&\n x.order > movingQ.order &&\n x.order <= prevOrder\n ) {\n return { ...x, order: x.order - 1 };\n }\n if (\n prevOrder < movingQ.order &&\n x.order < movingQ.order &&\n x.order >= prevOrder + 1\n ) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n }\n newQuestions = addedQ ? [...newQuestions, addedQ] : newQuestions;\n return {\n ...qg,\n questions: orderBy(newQuestions, 'order'),\n };\n });\n let oldQg = questionGroups.filter(\n (qg) => qg.id !== movingQ.questionGroupId\n );\n oldQg =\n movingQ.questionGroupId !== questionGroupId\n ? oldQg.filter((qg) => qg.id !== questionGroupId)\n : oldQg;\n questionGroupFn.store.update((s) => {\n s.questionGroups = orderBy([...oldQg, ...changedQg], 'order');\n });\n UIStore.update((s) => {\n s.activeMoveQuestion = null;\n });\n };\n\n const rightButtons = [\n {\n type: 'copy-button',\n onClick: handleCopy,\n },\n {\n type: 'delete-button',\n onClick: () => setIsModalOpen(true),\n disabled:\n (!index && isLastItem) || dependant.dependant.length || disableDelete,\n },\n ];\n\n const leftButtons = [\n {\n type: 'move-button',\n onClick: handleMove,\n disabled: !index && isLastItem,\n },\n {\n type: 'show-button',\n isExpand: isEditQuestion,\n onClick: handleEdit,\n onCancel: handleCancelEdit,\n },\n ];\n\n return (\n
\n handleOnAdd(order - 1)}\n handleOnMove={() =>\n isCopying ? handleOnAdd(order - 1) : handleOnMove(order - 1)\n }\n />\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n backgroundColor: movingQ?.id === id ? '#FFF2CA' : '#FFF',\n border: movingQ?.id === id ? '1px dashed #ffc107' : 'none',\n }}\n bodyStyle={{\n borderTop: isEditQuestion ? '1px solid #f3f3f3' : 'none',\n padding: isEditQuestion ? 24 : 0,\n }}\n loading={false}\n extra={\n \n dependency?.find((d) => d.id === q.id)\n )}\n />\n }\n >\n {isEditQuestion && (\n
\n setActiveTab(key)}\n tabBarGutter={24}\n className={styles['tabs-wrapper']}\n >\n {/* Setting */}\n \n {/* Skip Logic */}\n \n {/* Custom Params */}\n {enableCustomParams && (\n \n )}\n {/* \n */}\n \n {activeTab === 'setting' && (\n \n )}\n {activeTab === 'skip-logic' && (\n \n )}\n {enableCustomParams && activeTab === 'custom-params' && (\n \n )}\n
\n )}\n \n {isLastItem && (\n handleOnAdd(order)}\n handleOnMove={() =>\n isCopying ? handleOnAdd(order) : handleOnMove(order, true)\n }\n />\n )}\n setIsModalOpen(false)}\n okButtonProps={{ danger: true }}\n title={UIText.alertDeleteQuestionTitle}\n okText={UIText.buttonDeleteText}\n >\n {UIText.alertDeleteQuestion}\n \n
\n );\n};\n\nexport default QuestionDefinition;\n","import React, { useMemo, useState } from 'react';\nimport { Card } from 'antd';\nimport { UIStore, questionGroupFn } from '../lib/store';\nimport QuestionGroupSetting from './QuestionGroupSetting';\nimport QuestionDefinition from './QuestionDefinition';\nimport { ButtonAddMove, CardTitle, AlertPopup } from '../support';\nimport { orderBy, maxBy, minBy, uniq, difference, intersection } from 'lodash';\n\nconst QuestionGroupDefinition = ({ index, questionGroup, isLastItem }) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const movingQg = UIStore.useState((s) => s.activeMoveQuestionGroup);\n const {\n activeQuestionGroups,\n activeEditQuestionGroups,\n activeEditQuestions,\n hostParams,\n } = UIStore.useState((s) => s);\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n\n const { id, name, questions, order } = questionGroup;\n const questionIds = questions.map((q) => q.id);\n const {\n buttonAddNewQuestionGroupText,\n buttonMoveQuestionGroupText,\n alertDeleteQuestionGroupTitle,\n alertDeleteQuestionGroup,\n buttonDeleteText,\n } = UIStore.useState((s) => s.UIText);\n\n const showQuestion = useMemo(() => {\n return activeQuestionGroups.includes(id);\n }, [activeQuestionGroups, id]);\n\n const isEditQuestionGroup = useMemo(() => {\n return activeEditQuestionGroups.includes(id);\n }, [activeEditQuestionGroups, id]);\n\n const disableDelete = useMemo(() => {\n return questions.filter((q) => q?.disableDelete)?.length;\n }, [questions]);\n\n const handleHideQuestions = () => {\n UIStore.update((s) => {\n s.activeQuestionGroups = activeQuestionGroups.filter(\n (qgId) => qgId !== id\n );\n });\n };\n\n const handleCancelEditGroup = () => {\n UIStore.update((s) => {\n s.activeEditQuestionGroups = activeEditQuestionGroups.filter(\n (qgId) => qgId !== id\n );\n });\n };\n\n const handleShowQuestions = () => {\n UIStore.update((s) => {\n s.activeQuestionGroups = [...activeQuestionGroups, id];\n });\n handleCancelEditGroup();\n };\n\n const handleEditGroup = () => {\n UIStore.update((s) => {\n s.activeEditQuestionGroups = [...activeEditQuestionGroups, id];\n });\n handleHideQuestions();\n };\n\n const handleCancelMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestionGroup = null;\n });\n };\n\n const handleMove = () => {\n UIStore.update((s) => {\n s.activeMoveQuestionGroup =\n movingQg === questionGroup ? null : questionGroup;\n });\n };\n\n const handleExpandAll = () => {\n handleShowQuestions();\n UIStore.update((s) => {\n s.activeEditQuestions = uniq([...s.activeEditQuestions, ...questionIds]);\n });\n };\n\n const handleCancelExpandAll = () => {\n handleHideQuestions();\n UIStore.update((s) => {\n s.activeEditQuestions = difference(s.activeEditQuestions, questionIds);\n });\n };\n\n const handleDelete = () => {\n const newQuestionGroups = questionGroups\n .filter((qg) => id !== qg.id)\n .map((qg) => {\n if (qg.order > order) {\n return { ...qg, order: qg.order - 1 };\n }\n return qg;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = newQuestionGroups;\n });\n setIsModalOpen(false);\n };\n\n const handleOnAdd = (prevOrder) => {\n const prevQg = questionGroups.filter((qg) => qg.order <= prevOrder);\n const nextQg = questionGroups\n .filter((qg) => qg.order > prevOrder)\n .map((qg) => ({\n ...qg,\n order: qg.order + 1,\n }));\n const newQuestionGroups = [\n ...prevQg,\n questionGroupFn.add({\n prevOrder: prevOrder,\n defaultQuestionParam: defaultQuestionParam,\n }),\n ...nextQg,\n ];\n questionGroupFn.store.update((s) => {\n s.questionGroups = newQuestionGroups;\n });\n };\n\n const handleOnMove = (prevOrder, lastItem = false) => {\n const currentQg = {\n ...movingQg,\n order: movingQg.order < prevOrder ? prevOrder : prevOrder + 1,\n };\n const orderedQg = questionGroups\n .filter((qg) => qg.order !== movingQg.order)\n .map((x) => {\n if (lastItem) {\n if (x.order > movingQg.order) {\n return { ...x, order: x.order - 1 };\n }\n return x;\n }\n if (\n prevOrder > movingQg.order &&\n x.order > movingQg.order &&\n x.order <= prevOrder\n ) {\n return { ...x, order: x.order - 1 };\n }\n if (\n prevOrder < movingQg.order &&\n x.order < movingQg.order &&\n x.order >= prevOrder + 1\n ) {\n return { ...x, order: x.order + 1 };\n }\n return x;\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = orderBy([...orderedQg, currentQg], 'order');\n });\n UIStore.update((s) => {\n s.activeMoveQuestionGroup = null;\n });\n };\n\n const dependant = useMemo(() => {\n const allQ = questionGroups\n .map((qg) => qg.questions)\n .flatMap((x) => x)\n .map((q) => ({\n ...q,\n questionGroup: questionGroups.find((qg) => q.questionGroupId === qg.id),\n }));\n\n const dependencies = allQ.filter(\n (q) =>\n q?.dependency?.filter((d) => questionIds.find((qid) => qid === d.id))\n .length || false\n );\n\n const movingQids = movingQg?.questions?.map((q) => q.id) || [];\n const movingQ = movingQg?.questions?.filter((q) => {\n const selfDependency =\n q?.dependency?.filter((d) => movingQids.includes(d.id))?.length || 0;\n return !selfDependency;\n });\n\n let disabled = { current: false, last: false };\n\n const movingQDependency = maxBy(\n movingQ\n ?.map(\n (q) =>\n q?.dependency?.map((q) => allQ.find((a) => a.id === q.id)) || []\n )\n ?.flatMap((q) => q) || [],\n 'questionGroup.order'\n );\n\n if (movingQDependency?.questionGroup?.order >= order) {\n disabled = {\n current: true,\n last: true,\n };\n }\n\n const movingQDependant = minBy(\n allQ.filter(\n (q) =>\n q?.dependency?.filter((d) => movingQ?.find((qs) => qs.id === d.id))\n .length || false\n ),\n 'questionGroup.order'\n );\n\n const dependantIsLessThanOrder =\n movingQDependant?.questionGroup?.order < (isLastItem ? order + 1 : order);\n\n if (dependantIsLessThanOrder) {\n disabled = {\n current: true,\n last: true,\n };\n }\n\n return {\n disabled: disabled,\n dependant: dependencies,\n };\n }, [questionGroups, questionIds, movingQg, order, isLastItem]);\n\n const rightButtons = [\n {\n type: 'expand-all-button',\n isExpand:\n showQuestion && intersection(activeEditQuestions, questionIds).length,\n onClick: handleExpandAll,\n onCancel: handleCancelExpandAll,\n },\n {\n type: 'delete-button',\n onClick: () => setIsModalOpen(true),\n disabled: (!index && isLastItem) || disableDelete,\n },\n {\n type: 'edit-button',\n isExpand: isEditQuestionGroup,\n onClick: handleEditGroup,\n onCancel: handleCancelEditGroup,\n },\n ];\n\n const leftButtons = [\n {\n type: 'move-button',\n onClick: handleMove,\n onCancel: handleHideQuestions,\n disabled: !index && isLastItem,\n },\n {\n type: 'show-button',\n isExpand: showQuestion,\n onClick: handleShowQuestions,\n onCancel: handleHideQuestions,\n },\n ];\n\n return (\n
\n handleOnAdd(order - 1)}\n handleOnMove={() => handleOnMove(order - 1)}\n />\n \n }\n headStyle={{\n textAlign: 'left',\n padding: '0 12px',\n backgroundColor: movingQg?.id === id ? '#FFF2CA' : '#FFF',\n border: movingQg?.id === id ? '1px dashed #ffc107' : 'none',\n }}\n bodyStyle={{\n padding: isEditQuestionGroup || showQuestion ? 24 : 0,\n borderTop:\n isEditQuestionGroup || showQuestion ? '1px solid #f3f3f3' : 'none',\n }}\n extra={}\n >\n {isEditQuestionGroup && }\n {showQuestion &&\n questions.map((q, qi) => (\n \n ))}\n \n {isLastItem && (\n handleOnAdd(order)}\n handleOnMove={() => handleOnMove(order, true)}\n />\n )}\n setIsModalOpen(false)}\n okButtonProps={{ danger: true }}\n title={alertDeleteQuestionGroupTitle}\n okText={buttonDeleteText}\n >\n {alertDeleteQuestionGroup}\n \n
\n );\n};\n\nexport default QuestionGroupDefinition;\n","import React, { useEffect, useState } from 'react';\nimport 'antd/dist/antd.min.css';\nimport styles from './styles.module.css';\nimport { Card, Tabs, Tag, Space } from 'antd';\nimport {\n FormWrapper,\n FormDefinition,\n FormPreview,\n QuestionGroupDefinition,\n FormTranslations,\n} from './components';\nimport { ButtonWithIcon } from './support';\nimport {\n UIStore,\n formFn,\n questionGroupFn,\n generateId,\n questionType,\n} from './lib/store';\nimport data from './lib/data';\nimport { isEmpty } from 'lodash';\nimport { TbEdit } from 'react-icons/tb';\nimport { MdOutlineLanguage } from 'react-icons/md';\nimport { VscPreview } from 'react-icons/vsc';\n\nconst WebformEditor = ({\n onSave = false,\n initialValue = null,\n settingTreeDropdownValue = [{ label: null, value: null }],\n settingCascadeURL = [{ name: null, endpoint: null, initial: 0, list: false }],\n settingHintURL = {\n questionTypes: [],\n settings: [{ name: null, endpoint: null, path: [] }],\n },\n defaultQuestion = { type: null, name: null, required: null },\n limitQuestionType = [],\n customParams = {\n label: null,\n params: [\n {\n name: null,\n label: 'Single Option Param',\n type: 'option',\n multiple: true,\n options: [],\n },\n {\n name: null,\n label: 'Multiple Option Param',\n type: 'option',\n multiple: false,\n options: [],\n },\n {\n name: null,\n label: 'Input Param',\n type: 'input',\n },\n ],\n },\n}) => {\n const [init, setInit] = useState(defaultQuestion);\n const formStore = formFn.store.useState((s) => s);\n const current = UIStore.useState((s) => s.current);\n const { UIText, hostParams } = UIStore.useState((s) => s);\n const questionGroups = questionGroupFn.store.useState(\n (s) => s.questionGroups\n );\n const activeEditFormSetting = UIStore.useState(\n (s) => s.activeEditFormSetting\n );\n const defaultQuestionParam = hostParams?.defaultQuestionParam;\n const { tab: currentTab } = current;\n const {\n formTabPane,\n formTranslationPane,\n previewTabPane,\n questionCount,\n questionGroupCount,\n mandatoryQuestionCount,\n version,\n } = UIText;\n\n if (!initialValue) {\n console.error('initialValue required as an empty object {}');\n }\n\n useEffect(() => {\n // store params from host to global store\n const checkDefaultQuestion = defaultQuestion\n ? Object.values(defaultQuestion).filter((x) => x).length\n : false;\n const sanitizeSettingTreeDropdownValue = settingTreeDropdownValue.filter(\n (x) => x?.label && x?.value\n );\n const sanitizeSettingCascadeURL = settingCascadeURL\n .filter((x) => x?.name && x?.endpoint)\n .map((x, xi) => ({ ...x, id: x?.id || xi + 1 }));\n const sanitizeSettingHintURL = !isEmpty(settingHintURL)\n ? {\n ...settingHintURL,\n settings: settingHintURL?.settings\n ?.filter((x) => x?.name && x?.endpoint && x?.path?.length)\n ?.map((x, xi) => ({ ...x, id: x?.id || xi + 1 })),\n }\n : {};\n const sanitizeDefaultQuestion = {\n type: defaultQuestion?.type || questionType.input,\n name: defaultQuestion?.name,\n required: defaultQuestion?.required || false,\n };\n const sanitizeCustomParams = customParams?.params?.filter((x) => x?.name);\n // update UIStore\n UIStore.update((s) => {\n if (sanitizeSettingTreeDropdownValue.length) {\n s.hostParams = {\n ...s.hostParams,\n settingTreeDropdownValue: sanitizeSettingTreeDropdownValue,\n };\n }\n if (sanitizeSettingCascadeURL.length) {\n s.hostParams = {\n ...s.hostParams,\n settingCascadeURL: sanitizeSettingCascadeURL,\n };\n }\n if (\n !isEmpty(sanitizeSettingHintURL) &&\n sanitizeSettingHintURL?.settings?.length\n ) {\n s.hostParams = {\n ...s.hostParams,\n settingHintURL: sanitizeSettingHintURL,\n };\n }\n if (checkDefaultQuestion) {\n s.hostParams = {\n ...s.hostParams,\n defaultQuestionParam: sanitizeDefaultQuestion,\n };\n } else {\n s.hostParams = {\n ...s.hostParams,\n defaultQuestionParam: {},\n };\n }\n if (limitQuestionType.length) {\n s.hostParams = {\n ...s.hostParams,\n limitQuestionType: Object.keys(questionType)\n .map((key) => ({\n label: questionType[key]?.split('_').join(' '),\n value: questionType[key],\n }))\n .filter((x) => limitQuestionType.includes(x.value)),\n };\n }\n if (customParams?.label && sanitizeCustomParams?.length) {\n s.hostParams = {\n ...s.hostParams,\n customParams: {\n ...customParams,\n params: sanitizeCustomParams,\n },\n };\n }\n });\n }, [\n settingTreeDropdownValue,\n settingCascadeURL,\n settingHintURL,\n defaultQuestion,\n limitQuestionType,\n customParams,\n ]);\n\n useEffect(() => {\n if (defaultQuestionParam && init) {\n // replace questionGroup store with defaultQuestion value\n questionGroupFn.store.update((s) => {\n s.questionGroups = [\n questionGroupFn.add({\n defaultQuestionParam: defaultQuestionParam,\n }),\n ];\n });\n setInit(false);\n }\n }, [defaultQuestionParam, init]);\n\n useEffect(() => {\n if (!isEmpty(initialValue)) {\n const initialData = data.toEditor(initialValue);\n formFn.store.update((s) => {\n s.id = initialData?.id || generateId();\n s.version = initialData?.version || 1;\n s.name = initialData?.name || 'Unknown Form';\n s.description = initialData?.description || 'Unknown Description';\n s.languages = initialData?.languages?.filter((x) => x !== 'en') || [];\n s.defaultLanguage = initialData?.defaultLanguage || 'en';\n s.translations = initialData?.translations || [];\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = initialData.questionGroups;\n });\n } else {\n const defaultForm = formFn.add();\n formFn.store.update((s) => {\n s.id = defaultForm.id;\n s.name = defaultForm.name;\n s.version = defaultForm.version;\n s.description = defaultForm.description;\n s.languages = [];\n s.defaultLanguage = 'en';\n s.translations = [];\n });\n questionGroupFn.store.update((s) => {\n s.questionGroups = [questionGroupFn.add({})];\n });\n }\n }, [initialValue]);\n\n const handleTabsOnChange = (e) => {\n UIStore.update((s) => {\n s.current = {\n ...current,\n tab: e,\n };\n });\n };\n\n const handleShowFormSetting = (e) => {\n e.preventDefault();\n UIStore.update((s) => {\n s.activeEditFormSetting = activeEditFormSetting ? false : true;\n });\n };\n\n const handleSave = () => {\n if (onSave) {\n onSave(data.toWebform(formStore, questionGroups));\n }\n };\n\n const questions = questionGroups.reduce(\n (curr, qg) => [...curr, ...qg.questions],\n []\n );\n\n const mandatory = questions.filter((q) => q?.required);\n\n const tabProps = [\n {\n icon: TbEdit,\n tab: formTabPane,\n key: 'edit-form',\n },\n {\n icon: MdOutlineLanguage,\n tab: formTranslationPane,\n key: 'translations',\n },\n {\n icon: VscPreview,\n tab: previewTabPane,\n key: 'preview',\n },\n ];\n\n return (\n \n \n \n \n \n {questions.length} {questionCount}\n \n \n {mandatory.length} {mandatoryQuestionCount}\n \n \n {questionGroups.length} {questionGroupCount}\n \n \n {version} {formStore.version || 1}\n \n {currentTab === 'edit-form' && (\n \n )}\n \n \n \n }\n tabBarGutter={24}\n className={`${styles['tabs-wrapper']} ${styles['tabs-wrapper-sticky']}`}\n >\n {tabProps.map((prop) => (\n \n {prop.tab}\n \n }\n key={prop.key}\n />\n ))}\n \n {currentTab === 'edit-form' && (\n \n {activeEditFormSetting && }\n {questionGroups.map((qg, qgi) => {\n return (\n \n );\n })}\n \n )}\n {currentTab === 'translations' && }\n {currentTab === 'preview' && }\n \n \n );\n};\n\nexport default WebformEditor;\n"],"names":["FormWrapper","children","form","Form","useForm","handleOnValuesChange","handleOnFinish","handleOnFinishFailed","React","UIStaticText","en","inputFormNameLabel","inputFormDescriptionLabel","inputFormTranslationLabel","inputFormExistingTranslationsLabel","inputFormDefaultLanguageLabel","formTabPane","formTranslationPane","previewTabPane","questionCount","questionGroupCount","mandatoryQuestionCount","version","inputQuestionGroupNameLabel","inputQuestionGroupDescriptionLabel","inputRepeatThisGroupCheckbox","inputRepeatTextLabel","buttonShowQuestionsText","buttonHideQuestionsText","buttonEditGroupText","buttonCancelEditGroupText","buttonDeleteText","buttonCancelText","buttonAddNewQuestionGroupText","buttonCopyQuestionGroupText","buttonMoveQuestionGroupText","buttonAddNewQuestionText","buttonCopyQuestionText","buttonMoveQuestionText","inputQuestionNameLabel","inputQuestionTypeLabel","inputQuestionVariableNameLabel","inputQuestionTooltipLabel","inputQuestionRequiredCheckbox","inputQuestionMetaCheckbox","inputQuestionMetaCheckboxHint","buttonSaveText","questionSettingTabPane","questionSkipLogicTabPane","questionCustomParamsTabPane","questionExtraTabPane","inputQuestionDependentToLabel","inputQuestionDependentLogicLabel","inputQuestionDependentAnswerLabel","questionMoreInputTypeSettingText","inputQuestionRequireDoubleEntryCheckbox","inputQuestionHiddenStringCheckbox","questionMoreInputNumberSettingText","inputQuestionAllowDecimalCheckbox","inputQuestionMinimumValueLabel","inputQuestionMaximumValueLabel","inputQuestionMinimumValidationText","inputQuestionMaximumValidationText","inputQuestionEqualValueLabel","questionMoreOptionTypeSettingText","questionMoreOptionTranslationText","inputQuestionAllowOtherCheckbox","inputQuestionAllowOtherTextLabel","inputQuestionOptionNameLabel","questionMoreTreeSettingText","inputSelectTreeDropdownValueLabel","deleteQuestionGroupError","deleteQuestionError","infoNoDependentQuestionText","questionMoreCascadeSettingText","inputQuestionEndpointLabel","inputQuestionEndpointValidationText","inputQuestionInitialValueLabel","inputQuestionListCheckbox","inputQuestionListLabel","questionMoreInputDateSettingText","inputQuestionAfterDateValueLabel","inputQuestionBeforeDateValueLabel","alertDeleteQuestionTitle","alertDeleteQuestion","alertDeleteQuestionGroupTitle","alertDeleteQuestionGroup","questionMoreTableTypeSettingText","inputColumnNameLabel","inputColumnTypeLabel","inputColumnOptionsLabel","questionTableTypeDefineOptionsText","questionHintSettingText","inputQuestionStaticValueLabel","inputSelectHintEndpointLabel","inputSelectHintPathLabel","inputQuestionHintButtonTextLabel","questionMoreImageTypeSettingText","inputQuestionImageLimitValidationText","titleCase","str","replace","txt","charAt","toUpperCase","substr","toLowerCase","getWords","words","Math","floor","random","length","dummyName","len","Array","from","repeat","reduce","curr","localeDropdownValue","uniqBy","locale","filter","x","location","map","label","name","value","generateId","Date","getTime","questionType","input","number","cascade","geo","text","date","option","multiple_option","tree","table","image","defaultForm","id","description","defaultQuestion","questionGroup","prevOrder","type","required","params","q","order","questionGroupId","meta","tooltip","options","allowOther","api","endpoint","initial","list","defaultQuestionGroup","defaultQuestionParam","qg","repeatable","questions","UIStore","Store","current","tab","formId","questionId","activeEditFormSetting","activeQuestionGroups","activeEditQuestionGroups","activeMoveQuestionGroup","isCopyingQuestionGroup","activeEditQuestions","activeMoveQuestion","isCopyingQuestion","UIText","existingTranslation","activeTranslationQuestionGroups","activeEditTranslationQuestionGroups","activeEditTranslationQuestions","hostParams","FormStore","QuestionGroupStore","questionGroups","formFn","add","store","questionGroupFn","questionFn","update","defineProperty","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","objectWithoutPropertiesLoose","warning","warn","generate","_objectSpread","generateColor","ReactIcon","_excluded","React.forwardRef","React.useContext","Context","classNames","React.createElement","CaretRightOutlined","AntdIcon","CaretRightOutlinedSvg","PlusOutlined","PlusOutlinedSvg","ButtonAddMove","className","movingItem","handleCancelMove","disabled","handleOnAdd","handleOnMove","useState","s","ButtonWithIcon","isExpand","onClick","onCancel","buttonProps","icon","styles","CardTitle","title","buttons","dependency","margin","cfg","Text","Typography","TranslationFormItem","labelText","currentValue","initialValue","marginBottom","width","AlertPopup","onConfirm","visible","okButtonProps","okText","clearQuestionObj","keysToRemove","obj","checkEmpty","clearedQuestion","Object","keys","forEach","key","includes","isEmpty","clearTranslations","translations","newObj","clearedTranslations","tl","clearedObj","language","toEditor","webFormData","mapKeys","_","k","qgi","gid","qi","isNotOption","o","oi","orderBy","d","max","min","toWebform","formData","webformData","languages","defaultLanguage","output","op","hint","static","path","result","question","repeatText","question_group","generateTranslations","savedTranslations","newTranslations","currentTranslations","isExistingExist","findIndex","tr","data","clear","FormDefinitionTranslation","formStore","namePreffix","existingTranslationValues","useMemo","find","updateTranslation","u","handleChangeName","e","target","handleChangeDescription","QuestionSettingTranslation","allowOtherText","existingTooltipTranslationValues","handleChangeTooltip","handleChangeAllowOtherText","handleChangeOptionName","optionTranslations","optionId","opt","di","existingOptionTranslationValues","QuestionDefinitionTranslation","index","questionGroupOrder","isEditTranslationQuestion","handleEditTranslationQuestion","handleCancelEditTranslationQuestion","qId","cardTitleButton","textAlign","padding","borderTop","QuestionGroupSettingTranslation","handleChangeRepeatText","QuestionGroupDefinitionTranslation","questionIds","showTranslationQuestion","isEditTranslationQuestionGroup","handleHideTranslationQuestions","qgId","handleCancelEditTranslationGroup","handleEditTranslationGroup","a","handleExpandAll","uniq","handleCancelExpandAll","difference","cardExtraButton","intersection","staticDefaultLang","ExistingTranslation","handleCloseTag","lang","ln","findLang","lc","tags","FormTranslations","formTranslation","defaultLangDropdownValue","ld","triggerNode","parentElement","ldi","FormPreview","FormDefinition","useFormInstance","useEffect","setFieldsValue","QuestionGroupSetting","handleChangeRepeatable","checked","SettingInput","requiredDoubleEntry","hiddenString","updateState","handleChangeDoubleEntry","handleChangeHiddenString","SettingNumber","rule","allowDecimal","moreNumberSettings","rules","message","handleChangeAllowDecimal","handleChangeMinMax","defaultOptions","init","code","SettingOption","initialOptions","setOptions","xi","useCallback","handleOnChangeAllowOther","handleOnChangeAllowOtherText","handleOnChangeCode","currentId","handleOnChangeOption","handleOnAddOption","currentOrder","lastOrder","takeRight","reorderOptions","addOptions","handleOnMoveOption","targetOrder","prevOptions","currentOption","targetOption","handleOnDeleteOption","opti","SettingTree","settingTreeDropdownValue","handleChangeTreeDropdown","SettingCascade","settingCascadeURL","cascadeURLDropdownValue","updateGlobalState","values","handleChangeEndpoint","findURL","handleChangeInitial","handleChangeList","this","require","SettingDate","minDate","maxDate","moreDateSettings","disabledDate","moment","handleChangeAfterBefore","format","generateColumnName","trim","split","join","columnType","defaultColumns","column","defaultColumnOptions","SettingTable","columns","initialColumns","setColumns","cl","cli","opi","columnTypeOptions","updateColumns","columnId","updatedColumn","handleChangeColumnName","handleChangeColumnType","handleAddColumn","addColumns","handleDeleteColumn","currentColumn","currentOptions","targetOptions","currentOptionId","currentOptId","updatedOptions","val","SettingImage","limit","handleOnLimit","QuestionHint","buttonText","settingHintURL","settings","hintURLDropdownValue","hintPathDropdownValue","String","handleChangePath","handleChangeStaticValue","handleChangeButtonText","QuestionSetting","dependant","variable","disableDelete","qType","useWatch","limitQuestionType","disableMetaForGeo","metaGeoQuestionDefined","flatMap","showMetaCheckbox","currentQuestionGroup","questionTypeDropdownValue","showHintSetting","questionTypes","defaultTypeValue","checkType","checkText","defType","handleChangeType","handleChangeVariableName","handleChangeRequired","handleChangeMeta","dependantGroup","groupBy","group","i","g","items","ii","cursor","marginLeft","dependencyTypes","logicDropdowns","defaultSkipLogic","dependentTo","dependentToType","dependentLogic","dependentAnswer","dependencyLogicDropdownValue","dependencyAnswerDropdownValue","fetchDependencyLogicDropdown","dt","fetchDependencyAnswerDropdown","transformDependencyValue","lg","findQ","SettingSkipLogic","dependencies","setDependencies","dependentToQuestions","savedDependency","updateGlobalStore","dependencyValue","isDelete","transformDependencies","dp","checkDependencies","isArray","updateLocalState","dependencyId","updatedDependencies","setTimeout","checkChangedType","updatedDependency","handleChangeDependentTo","handleChangeDependentLogic","handleChangeDependentAnswer","handleAddMoreDependency","newDependencies","handleDeleteDependentTo","dropdown","l","item","gi","dq","QuestionSkipLogic","currentQuestionOrder","currentQuestionGroupOrder","QuestionCustomParams","customParams","initLoad","setInitLoad","paramValue","setParamValue","customParamObj","cp","findValue","res","objKey","handleChangeParameterValue","cpi","multipleProps","multiple","mode","showArrow","QuestionDefinition","isLastItem","movingQ","isCopying","activeTab","setActiveTab","isModalOpen","setIsModalOpen","enableCustomParams","allQuestions","last","movingQDependency","maxBy","movingQDependant","minBy","isEditQuestion","handleEdit","handleCancelEdit","handleMove","handleCopy","handleDelete","newQuestions","prevQ","nextQ","newQ","lastItem","currentQ","changedQg","addedQ","oldQg","rightButtons","leftButtons","backgroundColor","border","danger","QuestionGroupDefinition","movingQg","showQuestion","isEditQuestionGroup","handleHideQuestions","handleCancelEditGroup","handleShowQuestions","handleEditGroup","newQuestionGroups","prevQg","nextQg","currentQg","orderedQg","allQ","qid","movingQids","selfDependency","qs","dependantIsLessThanOrder","WebformEditor","onSave","setInit","currentTab","console","error","checkDefaultQuestion","sanitizeSettingTreeDropdownValue","sanitizeSettingCascadeURL","sanitizeSettingHintURL","sanitizeDefaultQuestion","sanitizeCustomParams","initialData","handleTabsOnChange","handleShowFormSetting","preventDefault","handleSave","mandatory","tabProps","TbEdit","MdOutlineLanguage","VscPreview","container","prop"],"mappings":"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"} \ No newline at end of file