{"version":3,"file":"js/important-dates.fce3a1ed.js","mappings":"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","sources":["webpack://vero/./src/sites/tax_fi/js/vue/components/ImportantDates.vue?bccd","webpack://vero/./src/sites/tax_fi/js/vue/components/RadioGroup.vue?d042","webpack://vero/src/sites/tax_fi/js/vue/components/RadioGroup.vue","webpack://vero/./src/sites/tax_fi/js/vue/components/RadioGroup.vue?6823","webpack://vero/./src/sites/tax_fi/js/vue/components/RadioGroup.vue","webpack://vero/./src/api/ImportantDatesApi.js","webpack://vero/src/sites/tax_fi/js/vue/components/ImportantDates.vue","webpack://vero/./src/sites/tax_fi/js/vue/components/ImportantDates.vue?b8a9","webpack://vero/./src/sites/tax_fi/js/vue/components/ImportantDates.vue","webpack://vero/./src/sites/tax_fi/js/vue/components/Tooltip.vue?51c3","webpack://vero/src/sites/tax_fi/js/vue/components/Tooltip.vue","webpack://vero/./src/sites/tax_fi/js/vue/components/Tooltip.vue?e35d","webpack://vero/./src/sites/tax_fi/js/vue/components/Tooltip.vue","webpack://vero/./node_modules/core-js/modules/es.symbol.description.js","webpack://vero/./node_modules/lodash/_arrayIncludes.js","webpack://vero/./node_modules/lodash/_arrayIncludesWith.js","webpack://vero/./node_modules/lodash/_baseIndexOf.js","webpack://vero/./node_modules/lodash/_baseIsNaN.js","webpack://vero/./node_modules/lodash/_baseUniq.js","webpack://vero/./node_modules/lodash/_createSet.js","webpack://vero/./node_modules/lodash/_strictIndexOf.js","webpack://vero/./node_modules/lodash/noop.js","webpack://vero/./node_modules/lodash/uniq.js","webpack://vero/./src/sites/tax_fi/js/vue/components/calculators/utils/calculatorHelpers.js","webpack://vero/./node_modules/vee-validate3/dist/rules.js","webpack://vero/./src/utils/vee-validate.js","webpack://vero/./node_modules/vee-validate3/dist/vee-validate.esm.js","webpack://vero/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://vero/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://vero/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://vero/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://vero/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"important-dates\"},[(_vm.showFilters)?_c('ValidationObserver',{ref:\"observer\",staticClass:\"important-dates__filters\",attrs:{\"tag\":\"form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[(_vm.hasCompanyForms)?_c('fieldset',[_c('Tooltip',{attrs:{\"tooltip-text\":_vm.tooltips.CompanyFormInfo}},[_c('legend',[_vm._v(_vm._s(_vm.$trans('/importantdates/CompanyFormTitle')))])]),_c('Radio-group',{ref:\"companyForm\",attrs:{\"name\":\"companyForm\",\"rules\":\"required\",\"options\":_vm.companyForms},model:{value:(_vm.selectedCompanyForm),callback:function ($$v) {_vm.selectedCompanyForm=$$v},expression:\"selectedCompanyForm\"}})],1):_vm._e(),(_vm.hasTaxPeriods)?_c('fieldset',[_c('Tooltip',{attrs:{\"tooltip-text\":_vm.tooltips.TaxPeriodInfo}},[_c('legend',[_vm._v(_vm._s(_vm.$trans('/importantdates/TaxPeriodTitle')))])]),_c('Radio-group',{ref:\"taxPeriod\",attrs:{\"name\":\"taxPeriod\",\"rules\":\"required\",\"options\":_vm.taxPeriods},model:{value:(_vm.selectedTaxPeriod),callback:function ($$v) {_vm.selectedTaxPeriod=$$v},expression:\"selectedTaxPeriod\"}})],1):_vm._e(),(_vm.hasEmployerContributions)?_c('fieldset',[_c('Tooltip',{attrs:{\"tooltip-text\":_vm.tooltips.EmployerContributionsInfo}},[_c('legend',[_vm._v(_vm._s(_vm.$trans('/importantdates/EmployerContributionsTitle')))])]),_c('Radio-group',{ref:\"employerContribution\",attrs:{\"name\":\"employerContribution\",\"rules\":\"required\",\"options\":_vm.employerContributions},model:{value:(_vm.selectedEmployerContribution),callback:function ($$v) {_vm.selectedEmployerContribution=$$v},expression:\"selectedEmployerContribution\"}})],1):_vm._e(),_c('fieldset',{staticClass:\"important-dates__buttons\"},[_c('button',{staticClass:\"btn\",on:{\"click\":function($event){return _vm.onSubmit()}}},[_c('span',[_vm._v(_vm._s(_vm.$trans('/importantdates/CreateCalendar')))])]),_c('button',{staticClass:\"important-dates__buttons--reset\",on:{\"click\":function($event){return _vm.reset()}}},[_c('span',[_vm._v(_vm._s(_vm.$trans('/importantdates/ResetCalendar')))])])])]):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLoading),expression:\"isLoading\"}],staticClass:\"important-dates__loader\"},[_c('div',{staticClass:\"loader\"})]),(_vm.apiError)?_c('div',{},[_c('h3',[_vm._v(_vm._s(_vm.$trans('/errormessages/errorinsearchmessage')))])]):_vm._e(),_c('div',[(!_vm.hasImportantDates && _vm.hasLoaded)?_c('div',{},[_c('h2',[_vm._v(_vm._s(_vm.$trans('/importantdates/NoSearchResults')))])]):_vm._e(),(_vm.hasImportantDates)?_c('div',{},[_c('h2',[_vm._v(_vm._s(_vm.year))]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasLoaded && !_vm.isFiltersEmpty),expression:\"hasLoaded && !isFiltersEmpty\"}],staticClass:\"important-dates__selected-filters\"},[_c('ul',[(_vm.$route.query.companyForm != null)?_c('li',[_c('strong',[_vm._v(_vm._s(_vm.$trans('/importantdates/CompanyFormTitle')))]),_vm._v(\": \"+_vm._s(_vm.getSelectedValue('companyForms', _vm.$route.query.companyForm))+\" \")]):_vm._e(),(_vm.$route.query.taxPeriod != null)?_c('li',[_c('strong',[_vm._v(_vm._s(_vm.$trans('/importantdates/TaxPeriodTitle')))]),_vm._v(\": \"+_vm._s(_vm.getSelectedValue('taxPeriods', _vm.$route.query.taxPeriod))+\" \")]):_vm._e(),(_vm.$route.query.employerContribution != null)?_c('li',[_c('strong',[_vm._v(_vm._s(_vm.$trans('/importantdates/EmployerContributionsTitle')))]),_vm._v(\": \"+_vm._s(_vm.getSelectedValue('employerContributions', _vm.$route.query.employerContribution))+\" \")]):_vm._e()])]),(_vm.hasMonths)?_c('div',{staticClass:\"important-dates__months hidden-print\"},[_c('ul',_vm._l((_vm.filteredMonths),function(month){return _c('li',{key:month.Key},[_c('a',{attrs:{\"href\":(\"#month_\" + month)},on:{\"click\":function($event){return _vm.jumpTo($event)}}},[_vm._v(_vm._s(_vm.getMonthName(month)))])])}),0)]):_vm._e(),_vm._l((_vm.filteredMonths),function(monthNumber){return _c('div',{key:monthNumber.Key},[_c('h3',{staticClass:\"important-dates__month-heading\",attrs:{\"id\":(\"month_\" + monthNumber)}},[_vm._v(\" \"+_vm._s(_vm.getMonthName(monthNumber))+\" \")]),_c('ul',{staticClass:\"important-dates__result-info\"},_vm._l((_vm.importantDates.filter(function (x) { return x.month === monthNumber; })),function(importantDate){return _c('li',{key:importantDate.id,staticClass:\"u-flex\"},[_c('div',{staticClass:\"important-dates__result-date u-flex u-flex-center\"},[_c('span',[_vm._v(_vm._s(importantDate.day)+\".\"+_vm._s(importantDate.month)+\".\")])]),_c('div',{staticClass:\"important-dates__result-text u-flex u-flex-center\"},[_c('div',[_c('h4',[_vm._v(_vm._s(importantDate.title))]),_c('p',{domProps:{\"innerHTML\":_vm._s(importantDate.description)}})])])])}),0)])})],2):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ValidationProvider',{attrs:{\"rules\":_vm.rules,\"mode\":_vm.mode,\"vid\":_vm.name},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nvar ariaInput = ref.ariaInput;\nvar ariaMsg = ref.ariaMsg;\nreturn [_c('div',_vm._l((_vm.options),function(option){return _c('div',{key:option.Key,staticClass:\"important-dates__filter\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected),expression:\"selected\"}],attrs:{\"id\":(_vm.name + \"_\" + (option.Key) + \"_opt1\"),\"name\":(_vm.name + \"_\" + (option.Key) + \"_opt1\"),\"type\":\"radio\"},domProps:{\"value\":option.Key,\"checked\":_vm._q(_vm.selected,option.Key)},on:{\"change\":[function($event){_vm.selected=option.Key},function($event){return _vm.$emit('input', _vm.selected)}]}}),_c('label',{attrs:{\"for\":(_vm.name + \"_\" + (option.Key) + \"_opt1\")}},[_vm._v(_vm._s(option.Value))])])}),0),_c('div',_vm._b({staticClass:\"calculator__inputerror\"},'div',ariaMsg,false),[_vm._v(\" \"+_vm._s(errors[0])+\" \")])]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <ValidationProvider\r\n    :rules=\"rules\"\r\n    :mode=\"mode\"\r\n    :vid=\"name\"\r\n    v-slot=\"{ errors, ariaInput, ariaMsg }\"\r\n  >\r\n    <div>\r\n      <div v-for=\"option in options\" :key=\"option.Key\" class=\"important-dates__filter\">\r\n        <input\r\n          :id=\"`${name}_${option.Key}_opt1`\"\r\n          :name=\"`${name}_${option.Key}_opt1`\"\r\n          type=\"radio\"\r\n          :value=\"option.Key\"\r\n          @change=\"$emit('input', selected)\"\r\n          v-model=\"selected\"\r\n        />\r\n        <label :for=\"`${name}_${option.Key}_opt1`\">{{ option.Value }}</label>\r\n      </div>\r\n    </div>\r\n\r\n    <div v-bind=\"ariaMsg\" class=\"calculator__inputerror\">\r\n      {{ errors[0] }}\r\n    </div>\r\n  </ValidationProvider>\r\n</template>\r\n\r\n<script>\r\nimport { ValidationProvider } from 'vee-validate3';\r\n\r\nexport default {\r\n  name: 'radioGroup',\r\n  components: {\r\n    ValidationProvider\r\n  },\r\n  data() {\r\n    return {\r\n      selected: this.value || null\r\n    };\r\n  },\r\n  watch: {\r\n    value(newVal, oldVal) {\r\n      if (newVal === oldVal) {\r\n        return;\r\n      }\r\n      this.selected = newVal;\r\n    }\r\n  },\r\n  props: {\r\n    name: { type: String, default: '' },\r\n    value: { type: Number, default: null },\r\n    options: { type: Array, default: () => [] },\r\n    mode: { type: String, default: 'aggressive' },\r\n    rules: { type: String, default: '' }\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RadioGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RadioGroup.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RadioGroup.vue?vue&type=template&id=73a0212b\"\nimport script from \"./RadioGroup.vue?vue&type=script&lang=js\"\nexport * from \"./RadioGroup.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import API from 'utils/api';\r\nimport _isNil from 'lodash/isNil';\r\n\r\nconst apiUrl = '/api/importantdates/results';\r\n\r\n/**\r\n *\r\n * @export\r\n * @param {string } language\r\n * @param {int} year\r\n * @param {int} type\r\n * @param {number} [rootFilter] - root content ids where the search is targeted\r\n * @param {int } companyForm\r\n * @param {int } taxPeriod\r\n * @param {int } employerContribution\r\n * @param {int } taxPrepaymentInstalment\r\n * @returns\r\n */\r\nexport function searchImportantDates(\r\n  language,\r\n  year,\r\n  type,\r\n  rootFilter = [],\r\n  companyForm,\r\n  taxPeriod,\r\n  employerContribution,\r\n  taxPrepaymentInstalment\r\n) {\r\n  const params = {\r\n    language,\r\n    year,\r\n    type,\r\n    rootFilter\r\n  };\r\n\r\n  if (!_isNil(companyForm)) {\r\n    params.companyForm = companyForm;\r\n  }\r\n\r\n  if (!_isNil(taxPeriod)) {\r\n    params.taxPeriod = taxPeriod;\r\n  }\r\n\r\n  if (!_isNil(employerContribution)) {\r\n    params.employerContribution = employerContribution;\r\n  }\r\n\r\n  if (!_isNil(taxPrepaymentInstalment)) {\r\n    params.taxPrepaymentInstalment = taxPrepaymentInstalment;\r\n  }\r\n  return API.get(apiUrl, {\r\n    params\r\n  });\r\n}\r\n\r\nexport default {\r\n  searchImportantDates\r\n};\r\n","<template>\r\n  <div class=\"important-dates\">\r\n    <ValidationObserver\r\n      v-if=\"showFilters\"\r\n      ref=\"observer\"\r\n      tag=\"form\"\r\n      class=\"important-dates__filters\"\r\n      @submit.prevent=\"onSubmit\"\r\n    >\r\n      <fieldset v-if=\"hasCompanyForms\">\r\n        <Tooltip :tooltip-text=\"tooltips.CompanyFormInfo\">\r\n          <legend>{{ $trans('/importantdates/CompanyFormTitle') }}</legend>\r\n        </Tooltip>\r\n        <Radio-group\r\n          name=\"companyForm\"\r\n          v-model=\"selectedCompanyForm\"\r\n          rules=\"required\"\r\n          ref=\"companyForm\"\r\n          :options=\"companyForms\"\r\n        >\r\n        </Radio-group>\r\n      </fieldset>\r\n      <fieldset v-if=\"hasTaxPeriods\">\r\n        <Tooltip :tooltip-text=\"tooltips.TaxPeriodInfo\">\r\n          <legend>{{ $trans('/importantdates/TaxPeriodTitle') }}</legend>\r\n        </Tooltip>\r\n        <Radio-group\r\n          name=\"taxPeriod\"\r\n          v-model=\"selectedTaxPeriod\"\r\n          rules=\"required\"\r\n          ref=\"taxPeriod\"\r\n          :options=\"taxPeriods\"\r\n        >\r\n        </Radio-group>\r\n      </fieldset>\r\n      <fieldset v-if=\"hasEmployerContributions\">\r\n        <Tooltip :tooltip-text=\"tooltips.EmployerContributionsInfo\">\r\n          <legend>{{ $trans('/importantdates/EmployerContributionsTitle') }}</legend>\r\n        </Tooltip>\r\n        <Radio-group\r\n          name=\"employerContribution\"\r\n          v-model=\"selectedEmployerContribution\"\r\n          rules=\"required\"\r\n          ref=\"employerContribution\"\r\n          :options=\"employerContributions\"\r\n        >\r\n        </Radio-group>\r\n      </fieldset>\r\n      <!-- <fieldset v-if=\"hasTaxPrepaymentInstalments\">\r\n        <Tooltip :tooltip-text=\"tooltips.TaxPrepaymentInstalmentsInfo\">\r\n          <legend>{{ $trans('/importantdates/TaxPrepaymentInstalmentTitle') }}</legend>\r\n        </Tooltip>\r\n        <Radio-group\r\n          name=\"taxPrepaymentInstalment\"\r\n          v-model=\"selectedTaxPrepaymentInstalment\"\r\n          rules=\"required\"\r\n          ref=\"taxPrepaymentInstalment\"\r\n          :options=\"taxPrepaymentInstalments\"\r\n        >\r\n        </Radio-group>\r\n      </fieldset> -->\r\n      <fieldset class=\"important-dates__buttons\">\r\n        <button class=\"btn\" @click=\"onSubmit()\">\r\n          <span>{{ $trans('/importantdates/CreateCalendar') }}</span>\r\n        </button>\r\n        <button class=\"important-dates__buttons--reset\" @click=\"reset()\">\r\n          <span>{{ $trans('/importantdates/ResetCalendar') }}</span>\r\n        </button>\r\n      </fieldset>\r\n    </ValidationObserver>\r\n    <div class=\"important-dates__loader\" v-show=\"isLoading\" v-cloak>\r\n      <div class=\"loader\"></div>\r\n    </div>\r\n    <div v-if=\"apiError\" v-cloak>\r\n      <h3>{{ $trans('/errormessages/errorinsearchmessage') }}</h3>\r\n    </div>\r\n    <div>\r\n      <div v-if=\"!hasImportantDates && hasLoaded\" v-cloak>\r\n        <h2>{{ $trans('/importantdates/NoSearchResults') }}</h2>\r\n      </div>\r\n      <div v-if=\"hasImportantDates\" v-cloak>\r\n        <h2>{{ year }}</h2>\r\n        <div\r\n          class=\"important-dates__selected-filters\"\r\n          v-show=\"hasLoaded && !isFiltersEmpty\"\r\n          v-cloak\r\n        >\r\n          <ul>\r\n            <li v-if=\"$route.query.companyForm != null\">\r\n              <strong>{{ $trans('/importantdates/CompanyFormTitle') }}</strong\r\n              >:\r\n              {{ getSelectedValue('companyForms', $route.query.companyForm) }}\r\n            </li>\r\n            <li v-if=\"$route.query.taxPeriod != null\">\r\n              <strong>{{ $trans('/importantdates/TaxPeriodTitle') }}</strong\r\n              >:\r\n              {{ getSelectedValue('taxPeriods', $route.query.taxPeriod) }}\r\n            </li>\r\n            <li v-if=\"$route.query.employerContribution != null\">\r\n              <strong>{{ $trans('/importantdates/EmployerContributionsTitle') }}</strong\r\n              >:\r\n              {{ getSelectedValue('employerContributions', $route.query.employerContribution) }}\r\n            </li>\r\n            <!-- <li v-if=\"$route.query.taxPrepaymentInstalment != null\">\r\n              <strong>{{ $trans('/importantdates/TaxPrepaymentInstalmentTitle') }}</strong\r\n              >:\r\n              {{\r\n                getSelectedValue('taxPrepaymentInstalments', $route.query.taxPrepaymentInstalment)\r\n              }}\r\n            </li> -->\r\n          </ul>\r\n        </div>\r\n        <div v-if=\"hasMonths\" class=\"important-dates__months hidden-print\">\r\n          <ul>\r\n            <li v-for=\"month in filteredMonths\" :key=\"month.Key\">\r\n              <a :href=\"`#month_${month}`\" @click=\"jumpTo($event)\">{{ getMonthName(month) }}</a>\r\n            </li>\r\n          </ul>\r\n        </div>\r\n        <div v-for=\"monthNumber in filteredMonths\" :key=\"monthNumber.Key\">\r\n          <h3 :id=\"`month_${monthNumber}`\" class=\"important-dates__month-heading\">\r\n            {{ getMonthName(monthNumber) }}\r\n          </h3>\r\n          <ul class=\"important-dates__result-info\">\r\n            <li\r\n              class=\"u-flex\"\r\n              v-for=\"importantDate in importantDates.filter(x => x.month === monthNumber)\"\r\n              :key=\"importantDate.id\"\r\n            >\r\n              <div class=\"important-dates__result-date u-flex u-flex-center\">\r\n                <span>{{ importantDate.day }}.{{ importantDate.month }}.</span>\r\n              </div>\r\n              <div class=\"important-dates__result-text u-flex u-flex-center\">\r\n                <div>\r\n                  <h4>{{ importantDate.title }}</h4>\r\n                  <p v-html=\"importantDate.description\"></p>\r\n                </div>\r\n              </div>\r\n            </li>\r\n          </ul>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport Tooltip from './Tooltip';\r\nimport RadioGroup from './RadioGroup';\r\nimport 'utils/vee-validate';\r\nimport { validationMessages } from 'utils/vee-validate';\r\nimport { localize, ValidationObserver } from 'vee-validate3';\r\n\r\nimport importantDatesAPI from 'api/ImportantDatesApi';\r\nimport _isNil from 'lodash/isNil';\r\nimport _uniq from 'lodash/uniq';\r\nimport jump from 'jump.js';\r\n\r\nconst IMPORTANT_DATE_TYPE_BUSINESS = 2;\r\n\r\nexport default {\r\n  name: 'ImportantDates',\r\n  components: { ValidationObserver, Tooltip, RadioGroup },\r\n  props: {\r\n    language: {\r\n      type: String,\r\n      default: 'fi'\r\n    },\r\n    year: {\r\n      type: Number,\r\n      default: 2018\r\n    },\r\n    rootPages: {\r\n      type: Array,\r\n      default: () => []\r\n    },\r\n    searchedDateType: {\r\n      type: Number,\r\n      default: 2\r\n    },\r\n    hideBusinessDateSearch: { type: Boolean, default: false },\r\n    months: {\r\n      type: Array,\r\n      default: () => []\r\n    },\r\n    companyForms: {\r\n      type: Array,\r\n      default: () => []\r\n    },\r\n    taxPeriods: {\r\n      type: Array,\r\n      default: () => []\r\n    },\r\n    employerContributions: {\r\n      type: Array,\r\n      default: () => []\r\n    },\r\n    taxPrepaymentInstalments: {\r\n      type: Array,\r\n      default: () => []\r\n    },\r\n    tooltips: { type: Object, default: () => {} }\r\n  },\r\n  data() {\r\n    return {\r\n      results: null,\r\n      importantDates: [],\r\n      selectedCompanyForm: this.hideBusinessDateSearch\r\n        ? null\r\n        : this.tryParseInt(this.$route.query.companyForm) || null,\r\n      selectedTaxPeriod: this.hideBusinessDateSearch\r\n        ? null\r\n        : this.tryParseInt(this.$route.query.taxPeriod) || null,\r\n      selectedEmployerContribution: this.hideBusinessDateSearch\r\n        ? null\r\n        : this.tryParseInt(this.$route.query.employerContribution) || null,\r\n      // selectedTaxPrepaymentInstalment: this.hideBusinessDateSearch\r\n      //   ? null\r\n      //   : this.tryParseInt(this.$route.query.taxPrepaymentInstalment) || null,\r\n      hasLoaded: false,\r\n      apiError: false,\r\n      isLoading: false\r\n    };\r\n  },\r\n  created() {\r\n    localize(window.site_locale, validationMessages());\r\n  },\r\n  computed: {\r\n    isFormDirty() {\r\n      const _observer = this.$refs.observer;\r\n      return _observer.ctx.dirty || false;\r\n    },\r\n    showFilters() {\r\n      return this.searchedDateType === IMPORTANT_DATE_TYPE_BUSINESS && !this.hideBusinessDateSearch;\r\n    },\r\n    filteredMonths() {\r\n      return _uniq(this.importantDates.map(x => x.month));\r\n    },\r\n    hasImportantDates() {\r\n      return !_isNil(this.importantDates) && this.importantDates.length > 0;\r\n    },\r\n    hasMonths() {\r\n      return !_isNil(this.filteredMonths) && this.filteredMonths.length > 1;\r\n    },\r\n    hasCompanyForms() {\r\n      return !_isNil(this.companyForms) && this.companyForms.length > 0;\r\n    },\r\n    hasTaxPeriods() {\r\n      return !_isNil(this.taxPeriods) && this.taxPeriods.length > 0;\r\n    },\r\n    hasEmployerContributions() {\r\n      return !_isNil(this.employerContributions) && this.employerContributions.length > 0;\r\n    },\r\n    hasTaxPrepaymentInstalments() {\r\n      return !_isNil(this.taxPrepaymentInstalments) && this.taxPrepaymentInstalments.length > 0;\r\n    },\r\n    isFiltersEmpty() {\r\n      return (\r\n        _isNil(this.$route.query.companyForm) &&\r\n        _isNil(this.$route.query.taxPeriod) &&\r\n        _isNil(this.$route.query.employerContribution)\r\n        // && _isNil(this.$route.query.taxPrepaymentInstalment)\r\n      );\r\n    }\r\n  },\r\n  mounted() {\r\n    if (!this.showFilters) {\r\n      this.searchImportantDates();\r\n    }\r\n  },\r\n  methods: {\r\n    async onSubmit() {\r\n      const _observer = this.$refs.observer;\r\n      const isValid = await _observer.validate();\r\n      if (!isValid) {\r\n        const firstError = this.$el.querySelector('[aria-invalid=true]');\r\n        if (firstError) {\r\n          firstError.focus();\r\n        }\r\n        return;\r\n      }\r\n      this.setQueryParams();\r\n      this.searchImportantDates();\r\n    },\r\n    setQueryParams() {\r\n      this.setQueryParam('companyForm', this.selectedCompanyForm);\r\n      this.setQueryParam('taxPeriod', this.selectedTaxPeriod);\r\n      this.setQueryParam('employerContribution', this.selectedEmployerContribution);\r\n      // this.setQueryParam('taxPrepaymentInstalment', this.selectedTaxPrepaymentInstalment);\r\n    },\r\n    setQueryParam(key, value) {\r\n      if (value === null) {\r\n        return;\r\n      }\r\n      const newQuery = { ...this.$route.query, [key]: value };\r\n      this.$router.push({ query: newQuery }).catch(err => {});\r\n    },\r\n    reset() {\r\n      this.$router.replace({ query: null });\r\n      Object.assign(this.$data, this.$options.data.call(this));\r\n      if (!this.showFilters) {\r\n        this.searchImportantDates();\r\n      }\r\n    },\r\n    searchImportantDates() {\r\n      this.isLoading = true;\r\n      const _observer = this.showFilters ? this.$refs.observer : null;\r\n      importantDatesAPI\r\n        .searchImportantDates(\r\n          this.language,\r\n          this.year,\r\n          this.searchedDateType,\r\n          this.rootPages,\r\n          this.selectedCompanyForm,\r\n          this.selectedTaxPeriod,\r\n          this.selectedEmployerContribution,\r\n          null //this.selectedTaxPrepaymentInstalment\r\n        )\r\n        .then(data => {\r\n          this.results = data;\r\n          if (!_isNil(_observer)) {\r\n            _observer.reset();\r\n          }\r\n          if (!_isNil(this.results)) {\r\n            this.importantDates = this.results.importantDates;\r\n          }\r\n          this.hasLoaded = true;\r\n          setTimeout(() => {\r\n            this.isLoading = false;\r\n          }, 1000);\r\n        })\r\n        .catch(() => {\r\n          this.isLoading = false;\r\n          this.apiError = true;\r\n        });\r\n    },\r\n    getMonthName(monthNumber) {\r\n      if (_isNil(monthNumber) || monthNumber < 1) {\r\n        return '';\r\n      }\r\n      return this.months.filter(element => element.Key === monthNumber)[0].Value;\r\n    },\r\n    getSelectedValue(arr, index) {\r\n      const indx = parseInt(index, 10);\r\n      const selectedArray = this[arr];\r\n      if (selectedArray && indx) {\r\n        const selectedValue = selectedArray.filter(obj => obj.Key === indx);\r\n        return selectedValue[0].Value;\r\n      }\r\n      return null;\r\n    },\r\n    tryParseInt(value) {\r\n      if (!value) {\r\n        return null;\r\n      }\r\n      return parseInt(value);\r\n    },\r\n    jumpTo(event) {\r\n      event.preventDefault();\r\n      if (!_isNil(event.target.hash)) {\r\n        jump(event.target.hash, {\r\n          a11y: true\r\n        });\r\n      }\r\n    }\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ImportantDates.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ImportantDates.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ImportantDates.vue?vue&type=template&id=afa5b20c\"\nimport script from \"./ImportantDates.vue?vue&type=script&lang=js\"\nexport * from \"./ImportantDates.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tooltip\"},[_vm._t(\"default\"),(_vm.tooltipText)?_c('button',{staticClass:\"tooltip__button\",attrs:{\"type\":\"button\",\"aria-label\":_vm.ariaLabel,\"aria-describedby\":(\"tooltip_\" + _vm.id),\"aria-controls\":(\"tooltip_\" + _vm.id),\"aria-haspopup\":\"true\",\"aria-expanded\":_vm.isOpen ? 'true' : 'false'},on:{\"click\":function($event){$event.preventDefault();return _vm.toggle($event)}}},[_c('icon',{attrs:{\"glyph\":\"#icon-info\"}})],1):_vm._e(),(_vm.tooltipText)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOpen && _vm.tooltipText),expression:\"isOpen && tooltipText\"}],staticClass:\"tooltip__text\",attrs:{\"role\":\"tooltip\",\"id\":(\"tooltip_\" + _vm.id)}},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.tooltipText)}}),_c('div',{staticClass:\"u-flex u-flex-right\"},[_c('span',{staticClass:\"btn-close\",attrs:{\"aria-label\":_vm.$trans('/common/close')},on:{\"click\":function($event){$event.preventDefault();return _vm.toggle($event)}}},[_vm._v(\" \"+_vm._s(_vm.$trans('/common/close'))+\" \")])])]):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div class=\"tooltip\">\r\n    <slot></slot>\r\n    <button\r\n      type=\"button\"\r\n      class=\"tooltip__button\"\r\n      :aria-label=\"ariaLabel\"\r\n      :aria-describedby=\"`tooltip_${id}`\"\r\n      :aria-controls=\"`tooltip_${id}`\"\r\n      aria-haspopup=\"true\"\r\n      :aria-expanded=\"isOpen ? 'true' : 'false'\"\r\n      v-if=\"tooltipText\"\r\n      @click.prevent=\"toggle\"\r\n    >\r\n      <icon glyph=\"#icon-info\" />\r\n    </button>\r\n    <div\r\n      role=\"tooltip\"\r\n      class=\"tooltip__text\"\r\n      :id=\"`tooltip_${id}`\"\r\n      v-show=\"isOpen && tooltipText\"\r\n      v-if=\"tooltipText\"\r\n      v-cloak\r\n    >\r\n      <div v-html=\"tooltipText\"></div>\r\n      <div class=\"u-flex u-flex-right\">\r\n        <span class=\"btn-close\" :aria-label=\"$trans('/common/close')\" @click.prevent=\"toggle\">\r\n          {{ $trans('/common/close') }}\r\n        </span>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: 'Tooltip',\r\n  props: {\r\n    tooltipText: { type: String, default: null },\r\n    tooltipAriaLabel: {\r\n      type: String,\r\n      default: ''\r\n    }\r\n  },\r\n  data() {\r\n    return {\r\n      id: null,\r\n      isOpen: false,\r\n      ariaLabel: ''\r\n    };\r\n  },\r\n  mounted() {\r\n    // eslint-disable-next-line no-underscore-dangle\r\n    this.id = this._uid;\r\n    this.ariaLabel = this.tooltipAriaLabel || this.$trans('/common/MoreInfo');\r\n  },\r\n  methods: {\r\n    toggle() {\r\n      this.isOpen = !this.isOpen;\r\n    }\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Tooltip.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Tooltip.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Tooltip.vue?vue&type=template&id=058c9445\"\nimport script from \"./Tooltip.vue?vue&type=script&lang=js\"\nexport * from \"./Tooltip.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n  // Safari 12 bug\n  NativeSymbol().description !== undefined\n)) {\n  var EmptyStringDescriptionStore = {};\n  // wrap Symbol constructor for correct work with undefined description\n  var SymbolWrapper = function Symbol() {\n    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n    var result = isPrototypeOf(SymbolPrototype, this)\n      ? new NativeSymbol(description)\n      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n      : description === undefined ? NativeSymbol() : NativeSymbol(description);\n    if (description === '') EmptyStringDescriptionStore[result] = true;\n    return result;\n  };\n\n  copyConstructorProperties(SymbolWrapper, NativeSymbol);\n  SymbolWrapper.prototype = SymbolPrototype;\n  SymbolPrototype.constructor = SymbolWrapper;\n\n  var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n  var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n  var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n  var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n  var replace = uncurryThis(''.replace);\n  var stringSlice = uncurryThis(''.slice);\n\n  defineProperty(SymbolPrototype, 'description', {\n    configurable: true,\n    get: function description() {\n      var symbol = thisSymbolValue(this);\n      if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n      var string = symbolDescriptiveString(symbol);\n      var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n      return desc === '' ? undefined : desc;\n    }\n  });\n\n  $({ global: true, constructor: true, forced: true }, {\n    Symbol: SymbolWrapper\n  });\n}\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n  var length = array == null ? 0 : array.length;\n  return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (comparator(value, array[index])) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseFindIndex = require('./_baseFindIndex'),\n    baseIsNaN = require('./_baseIsNaN'),\n    strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n  return value === value\n    ? strictIndexOf(array, value, fromIndex)\n    : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n  return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var SetCache = require('./_SetCache'),\n    arrayIncludes = require('./_arrayIncludes'),\n    arrayIncludesWith = require('./_arrayIncludesWith'),\n    cacheHas = require('./_cacheHas'),\n    createSet = require('./_createSet'),\n    setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n  var index = -1,\n      includes = arrayIncludes,\n      length = array.length,\n      isCommon = true,\n      result = [],\n      seen = result;\n\n  if (comparator) {\n    isCommon = false;\n    includes = arrayIncludesWith;\n  }\n  else if (length >= LARGE_ARRAY_SIZE) {\n    var set = iteratee ? null : createSet(array);\n    if (set) {\n      return setToArray(set);\n    }\n    isCommon = false;\n    includes = cacheHas;\n    seen = new SetCache;\n  }\n  else {\n    seen = iteratee ? [] : result;\n  }\n  outer:\n  while (++index < length) {\n    var value = array[index],\n        computed = iteratee ? iteratee(value) : value;\n\n    value = (comparator || value !== 0) ? value : 0;\n    if (isCommon && computed === computed) {\n      var seenIndex = seen.length;\n      while (seenIndex--) {\n        if (seen[seenIndex] === computed) {\n          continue outer;\n        }\n      }\n      if (iteratee) {\n        seen.push(computed);\n      }\n      result.push(value);\n    }\n    else if (!includes(seen, computed, comparator)) {\n      if (seen !== result) {\n        seen.push(computed);\n      }\n      result.push(value);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseUniq;\n","var Set = require('./_Set'),\n    noop = require('./noop'),\n    setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n  return new Set(values);\n};\n\nmodule.exports = createSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n  var index = fromIndex - 1,\n      length = array.length;\n\n  while (++index < length) {\n    if (array[index] === value) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = strictIndexOf;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n  // No operation performed.\n}\n\nmodule.exports = noop;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n  return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","import _isNil from 'lodash/isNil';\r\n\r\nexport const addThousandSeparators = param => {\r\n  if (_isNil(param)) {\r\n    return '';\r\n  }\r\n  return param.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1 ');\r\n};\r\n\r\nexport const containsString = (input, searchString) => {\r\n  if (_isNil(input) || _isNil(searchString)) {\r\n    return false;\r\n  }\r\n  const position = input.toString().indexOf(searchString);\r\n  return position && position > 0;\r\n};\r\n\r\nexport const decimalToString = input => {\r\n  const str = `${input}`;\r\n  if (!containsString(str, '.')) {\r\n    return str;\r\n  }\r\n  return str.toString().replace('.', ',');\r\n};\r\n\r\nexport const formatDecimal = input => {\r\n  if (!containsString(input, '.')) {\r\n    return input;\r\n  }\r\n  return input.toString().replace('.', ',');\r\n};\r\n\r\nexport const convertStringToDate = dateStr => {\r\n  if (!dateStr) {\r\n    return null;\r\n  }\r\n  const [day, month, year] = dateStr.toString().split('.');\r\n  return new Date(year, month - 1, day);\r\n};\r\n\r\nexport const convertDateToString = (day, month, year) => {\r\n  return `${day.toString()}.${month.toString()}.${year.toString()}`;\r\n};\r\n\r\nexport const parseStringToFloat = value => {\r\n  if (!value) {\r\n    return value;\r\n  }\r\n  return parseFloat(value.toString().replace(',', '.')) || 0;\r\n};\r\n\r\nexport const convertDecimalSeparatorToDot = input => {\r\n  if (!input) {\r\n    return input;\r\n  }\r\n  return parseFloat(input.toString().replace(',', '.'));\r\n};\r\n\r\nexport const roundToTwo = input => {\r\n  return +(Math.round(input.toString() + 'e+2') + 'e-2');\r\n};\r\n\r\nexport default {\r\n  addThousandSeparators,\r\n  containsString,\r\n  decimalToString,\r\n  formatDecimal,\r\n  convertStringToDate,\r\n  convertDateToString,\r\n  parseStringToFloat,\r\n  convertDecimalSeparatorToDot,\r\n  roundToTwo\r\n};\r\n","/**\n  * vee-validate v3.3.0\n  * (c) 2020 Abdelrahman Awad\n  * @license MIT\n  */\n/**\r\n * Some Alpha Regex helpers.\r\n * https://github.com/chriso/validator.js/blob/master/src/lib/alpha.js\r\n */\r\n/* eslint-disable no-misleading-character-class */\r\nvar alpha = {\r\n    en: /^[A-Z]*$/i,\r\n    cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\r\n    da: /^[A-ZÆØÅ]*$/i,\r\n    de: /^[A-ZÄÖÜß]*$/i,\r\n    es: /^[A-ZÁÉÍÑÓÚÜ]*$/i,\r\n    fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n    fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\r\n    it: /^[A-Z\\xC0-\\xFF]*$/i,\r\n    lt: /^[A-ZĄČĘĖĮŠŲŪŽ]*$/i,\r\n    nl: /^[A-ZÉËÏÓÖÜ]*$/i,\r\n    hu: /^[A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\r\n    pl: /^[A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\r\n    pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\r\n    ru: /^[А-ЯЁ]*$/i,\r\n    sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\r\n    sr: /^[A-ZČĆŽŠĐ]*$/i,\r\n    sv: /^[A-ZÅÄÖ]*$/i,\r\n    tr: /^[A-ZÇĞİıÖŞÜ]*$/i,\r\n    uk: /^[А-ЩЬЮЯЄІЇҐ]*$/i,\r\n    ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\r\n    az: /^[A-ZÇƏĞİıÖŞÜ]*$/i\r\n};\r\nvar alphaSpaces = {\r\n    en: /^[A-Z\\s]*$/i,\r\n    cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ\\s]*$/i,\r\n    da: /^[A-ZÆØÅ\\s]*$/i,\r\n    de: /^[A-ZÄÖÜß\\s]*$/i,\r\n    es: /^[A-ZÁÉÍÑÓÚÜ\\s]*$/i,\r\n    fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n    fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ\\s]*$/i,\r\n    it: /^[A-Z\\xC0-\\xFF\\s]*$/i,\r\n    lt: /^[A-ZĄČĘĖĮŠŲŪŽ\\s]*$/i,\r\n    nl: /^[A-ZÉËÏÓÖÜ\\s]*$/i,\r\n    hu: /^[A-ZÁÉÍÓÖŐÚÜŰ\\s]*$/i,\r\n    pl: /^[A-ZĄĆĘŚŁŃÓŻŹ\\s]*$/i,\r\n    pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ\\s]*$/i,\r\n    ru: /^[А-ЯЁ\\s]*$/i,\r\n    sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ\\s]*$/i,\r\n    sr: /^[A-ZČĆŽŠĐ\\s]*$/i,\r\n    sv: /^[A-ZÅÄÖ\\s]*$/i,\r\n    tr: /^[A-ZÇĞİıÖŞÜ\\s]*$/i,\r\n    uk: /^[А-ЩЬЮЯЄІЇҐ\\s]*$/i,\r\n    ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ\\s]*$/,\r\n    az: /^[A-ZÇƏĞİıÖŞÜ\\s]*$/i\r\n};\r\nvar alphanumeric = {\r\n    en: /^[0-9A-Z]*$/i,\r\n    cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\r\n    da: /^[0-9A-ZÆØÅ]$/i,\r\n    de: /^[0-9A-ZÄÖÜß]*$/i,\r\n    es: /^[0-9A-ZÁÉÍÑÓÚÜ]*$/i,\r\n    fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n    fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\r\n    it: /^[0-9A-Z\\xC0-\\xFF]*$/i,\r\n    lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ]*$/i,\r\n    hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\r\n    nl: /^[0-9A-ZÉËÏÓÖÜ]*$/i,\r\n    pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\r\n    pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\r\n    ru: /^[0-9А-ЯЁ]*$/i,\r\n    sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\r\n    sr: /^[0-9A-ZČĆŽŠĐ]*$/i,\r\n    sv: /^[0-9A-ZÅÄÖ]*$/i,\r\n    tr: /^[0-9A-ZÇĞİıÖŞÜ]*$/i,\r\n    uk: /^[0-9А-ЩЬЮЯЄІЇҐ]*$/i,\r\n    ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\r\n    az: /^[0-9A-ZÇƏĞİıÖŞÜ]*$/i\r\n};\r\nvar alphaDash = {\r\n    en: /^[0-9A-Z_-]*$/i,\r\n    cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ_-]*$/i,\r\n    da: /^[0-9A-ZÆØÅ_-]*$/i,\r\n    de: /^[0-9A-ZÄÖÜß_-]*$/i,\r\n    es: /^[0-9A-ZÁÉÍÑÓÚÜ_-]*$/i,\r\n    fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\r\n    fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ_-]*$/i,\r\n    it: /^[0-9A-Z\\xC0-\\xFF_-]*$/i,\r\n    lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ_-]*$/i,\r\n    nl: /^[0-9A-ZÉËÏÓÖÜ_-]*$/i,\r\n    hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ_-]*$/i,\r\n    pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ_-]*$/i,\r\n    pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ_-]*$/i,\r\n    ru: /^[0-9А-ЯЁ_-]*$/i,\r\n    sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ_-]*$/i,\r\n    sr: /^[0-9A-ZČĆŽŠĐ_-]*$/i,\r\n    sv: /^[0-9A-ZÅÄÖ_-]*$/i,\r\n    tr: /^[0-9A-ZÇĞİıÖŞÜ_-]*$/i,\r\n    uk: /^[0-9А-ЩЬЮЯЄІЇҐ_-]*$/i,\r\n    ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ_-]*$/,\r\n    az: /^[0-9A-ZÇƏĞİıÖŞÜ_-]*$/i\r\n};\n\nvar validate = function (value, _a) {\r\n    var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return validate(val, { locale: locale }); });\r\n    }\r\n    // Match at least one locale.\r\n    if (!locale) {\r\n        return Object.keys(alpha).some(function (loc) { return alpha[loc].test(value); });\r\n    }\r\n    return (alpha[locale] || alpha.en).test(value);\r\n};\r\nvar params = [\r\n    {\r\n        name: 'locale'\r\n    }\r\n];\r\nvar alpha$1 = {\r\n    validate: validate,\r\n    params: params\r\n};\n\nvar validate$1 = function (value, _a) {\r\n    var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return validate$1(val, { locale: locale }); });\r\n    }\r\n    // Match at least one locale.\r\n    if (!locale) {\r\n        return Object.keys(alphaDash).some(function (loc) { return alphaDash[loc].test(value); });\r\n    }\r\n    return (alphaDash[locale] || alphaDash.en).test(value);\r\n};\r\nvar params$1 = [\r\n    {\r\n        name: 'locale'\r\n    }\r\n];\r\nvar alpha_dash = {\r\n    validate: validate$1,\r\n    params: params$1\r\n};\n\nvar validate$2 = function (value, _a) {\r\n    var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return validate$2(val, { locale: locale }); });\r\n    }\r\n    // Match at least one locale.\r\n    if (!locale) {\r\n        return Object.keys(alphanumeric).some(function (loc) { return alphanumeric[loc].test(value); });\r\n    }\r\n    return (alphanumeric[locale] || alphanumeric.en).test(value);\r\n};\r\nvar params$2 = [\r\n    {\r\n        name: 'locale'\r\n    }\r\n];\r\nvar alpha_num = {\r\n    validate: validate$2,\r\n    params: params$2\r\n};\n\nvar validate$3 = function (value, _a) {\r\n    var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return validate$3(val, { locale: locale }); });\r\n    }\r\n    // Match at least one locale.\r\n    if (!locale) {\r\n        return Object.keys(alphaSpaces).some(function (loc) { return alphaSpaces[loc].test(value); });\r\n    }\r\n    return (alphaSpaces[locale] || alphaSpaces.en).test(value);\r\n};\r\nvar params$3 = [\r\n    {\r\n        name: 'locale'\r\n    }\r\n];\r\nvar alpha_spaces = {\r\n    validate: validate$3,\r\n    params: params$3\r\n};\n\nvar validate$4 = function (value, _a) {\r\n    var _b = _a === void 0 ? {} : _a, min = _b.min, max = _b.max;\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return !!validate$4(val, { min: min, max: max }); });\r\n    }\r\n    return Number(min) <= value && Number(max) >= value;\r\n};\r\nvar params$4 = [\r\n    {\r\n        name: 'min'\r\n    },\r\n    {\r\n        name: 'max'\r\n    }\r\n];\r\nvar between = {\r\n    validate: validate$4,\r\n    params: params$4\r\n};\n\nvar validate$5 = function (value, _a) {\r\n    var target = _a.target;\r\n    return String(value) === String(target);\r\n};\r\nvar params$5 = [\r\n    {\r\n        name: 'target',\r\n        isTarget: true\r\n    }\r\n];\r\nvar confirmed = {\r\n    validate: validate$5,\r\n    params: params$5\r\n};\n\nvar validate$6 = function (value, _a) {\r\n    var length = _a.length;\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return validate$6(val, { length: length }); });\r\n    }\r\n    var strVal = String(value);\r\n    return /^[0-9]*$/.test(strVal) && strVal.length === length;\r\n};\r\nvar params$6 = [\r\n    {\r\n        name: 'length',\r\n        cast: function (value) {\r\n            return Number(value);\r\n        }\r\n    }\r\n];\r\nvar digits = {\r\n    validate: validate$6,\r\n    params: params$6\r\n};\n\nvar validateImage = function (file, width, height) {\r\n    var URL = window.URL || window.webkitURL;\r\n    return new Promise(function (resolve) {\r\n        var image = new Image();\r\n        image.onerror = function () { return resolve(false); };\r\n        image.onload = function () { return resolve(image.width === width && image.height === height); };\r\n        image.src = URL.createObjectURL(file);\r\n    });\r\n};\r\nvar validate$7 = function (files, _a) {\r\n    var width = _a.width, height = _a.height;\r\n    var list = [];\r\n    files = Array.isArray(files) ? files : [files];\r\n    for (var i = 0; i < files.length; i++) {\r\n        // if file is not an image, reject.\r\n        if (!/\\.(jpg|svg|jpeg|png|bmp|gif)$/i.test(files[i].name)) {\r\n            return Promise.resolve(false);\r\n        }\r\n        list.push(files[i]);\r\n    }\r\n    return Promise.all(list.map(function (file) { return validateImage(file, width, height); })).then(function (values) {\r\n        return values.every(function (v) { return v; });\r\n    });\r\n};\r\nvar params$7 = [\r\n    {\r\n        name: 'width',\r\n        cast: function (value) {\r\n            return Number(value);\r\n        }\r\n    },\r\n    {\r\n        name: 'height',\r\n        cast: function (value) {\r\n            return Number(value);\r\n        }\r\n    }\r\n];\r\nvar dimensions = {\r\n    validate: validate$7,\r\n    params: params$7\r\n};\n\nvar validate$8 = function (value, _a) {\r\n    var multiple = (_a === void 0 ? {} : _a).multiple;\r\n    // eslint-disable-next-line\r\n    var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n    if (multiple && !Array.isArray(value)) {\r\n        value = String(value)\r\n            .split(',')\r\n            .map(function (emailStr) { return emailStr.trim(); });\r\n    }\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return re.test(String(val)); });\r\n    }\r\n    return re.test(String(value));\r\n};\r\nvar params$8 = [\r\n    {\r\n        name: 'multiple',\r\n        default: false\r\n    }\r\n];\r\nvar email = {\r\n    validate: validate$8,\r\n    params: params$8\r\n};\n\nfunction isNullOrUndefined(value) {\r\n    return value === null || value === undefined;\r\n}\r\nfunction isEmptyArray(arr) {\r\n    return Array.isArray(arr) && arr.length === 0;\r\n}\r\nfunction isCallable(fn) {\r\n    return typeof fn === 'function';\r\n}\n\nfunction includes(collection, item) {\r\n    return collection.indexOf(item) !== -1;\r\n}\r\n/**\r\n * Converts an array-like object to array, provides a simple polyfill for Array.from\r\n */\r\nfunction toArray(arrayLike) {\r\n    if (isCallable(Array.from)) {\r\n        return Array.from(arrayLike);\r\n    }\r\n    /* istanbul ignore next */\r\n    return _copyArray(arrayLike);\r\n}\r\n/* istanbul ignore next */\r\nfunction _copyArray(arrayLike) {\r\n    var array = [];\r\n    var length = arrayLike.length;\r\n    for (var i = 0; i < length; i++) {\r\n        array.push(arrayLike[i]);\r\n    }\r\n    return array;\r\n}\n\nvar validate$9 = function (value, options) {\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return validate$9(val, options); });\r\n    }\r\n    return toArray(options).some(function (item) {\r\n        // eslint-disable-next-line\r\n        return item == value;\r\n    });\r\n};\r\nvar oneOf = {\r\n    validate: validate$9\r\n};\n\nvar validate$a = function (value, args) {\r\n    return !validate$9(value, args);\r\n};\r\nvar excluded = {\r\n    validate: validate$a\r\n};\n\nvar validate$b = function (files, extensions) {\r\n    var regex = new RegExp(\".(\" + extensions.join('|') + \")$\", 'i');\r\n    if (Array.isArray(files)) {\r\n        return files.every(function (file) { return regex.test(file.name); });\r\n    }\r\n    return regex.test(files.name);\r\n};\r\nvar ext = {\r\n    validate: validate$b\r\n};\n\nvar validate$c = function (files) {\r\n    var regex = /\\.(jpg|svg|jpeg|png|bmp|gif)$/i;\r\n    if (Array.isArray(files)) {\r\n        return files.every(function (file) { return regex.test(file.name); });\r\n    }\r\n    return regex.test(files.name);\r\n};\r\nvar image = {\r\n    validate: validate$c\r\n};\n\nvar validate$d = function (value) {\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return /^-?[0-9]+$/.test(String(val)); });\r\n    }\r\n    return /^-?[0-9]+$/.test(String(value));\r\n};\r\nvar integer = {\r\n    validate: validate$d\r\n};\n\nvar validate$e = function (value, _a) {\r\n    var other = _a.other;\r\n    return value === other;\r\n};\r\nvar params$9 = [\r\n    {\r\n        name: 'other'\r\n    }\r\n];\r\nvar is = {\r\n    validate: validate$e,\r\n    params: params$9\r\n};\n\nvar validate$f = function (value, _a) {\r\n    var other = _a.other;\r\n    return value !== other;\r\n};\r\nvar params$a = [\r\n    {\r\n        name: 'other'\r\n    }\r\n];\r\nvar is_not = {\r\n    validate: validate$f,\r\n    params: params$a\r\n};\n\nvar validate$g = function (value, _a) {\r\n    var length = _a.length;\r\n    if (isNullOrUndefined(value)) {\r\n        return false;\r\n    }\r\n    if (typeof value === 'number') {\r\n        value = String(value);\r\n    }\r\n    if (!value.length) {\r\n        value = toArray(value);\r\n    }\r\n    return value.length === length;\r\n};\r\nvar params$b = [\r\n    {\r\n        name: 'length',\r\n        cast: function (value) { return Number(value); }\r\n    }\r\n];\r\nvar length = {\r\n    validate: validate$g,\r\n    params: params$b\r\n};\n\nvar validate$h = function (value, _a) {\r\n    var length = _a.length;\r\n    if (isNullOrUndefined(value)) {\r\n        return length >= 0;\r\n    }\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return validate$h(val, { length: length }); });\r\n    }\r\n    return String(value).length <= length;\r\n};\r\nvar params$c = [\r\n    {\r\n        name: 'length',\r\n        cast: function (value) {\r\n            return Number(value);\r\n        }\r\n    }\r\n];\r\nvar max = {\r\n    validate: validate$h,\r\n    params: params$c\r\n};\n\nvar validate$i = function (value, _a) {\r\n    var max = _a.max;\r\n    if (isNullOrUndefined(value) || value === '') {\r\n        return false;\r\n    }\r\n    if (Array.isArray(value)) {\r\n        return value.length > 0 && value.every(function (val) { return validate$i(val, { max: max }); });\r\n    }\r\n    return Number(value) <= max;\r\n};\r\nvar params$d = [\r\n    {\r\n        name: 'max',\r\n        cast: function (value) {\r\n            return Number(value);\r\n        }\r\n    }\r\n];\r\nvar max_value = {\r\n    validate: validate$i,\r\n    params: params$d\r\n};\n\nvar validate$j = function (files, mimes) {\r\n    var regex = new RegExp(mimes.join('|').replace('*', '.+') + \"$\", 'i');\r\n    if (Array.isArray(files)) {\r\n        return files.every(function (file) { return regex.test(file.type); });\r\n    }\r\n    return regex.test(files.type);\r\n};\r\nvar mimes = {\r\n    validate: validate$j\r\n};\n\nvar validate$k = function (value, _a) {\r\n    var length = _a.length;\r\n    if (isNullOrUndefined(value)) {\r\n        return false;\r\n    }\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return validate$k(val, { length: length }); });\r\n    }\r\n    return String(value).length >= length;\r\n};\r\nvar params$e = [\r\n    {\r\n        name: 'length',\r\n        cast: function (value) {\r\n            return Number(value);\r\n        }\r\n    }\r\n];\r\nvar min = {\r\n    validate: validate$k,\r\n    params: params$e\r\n};\n\nvar validate$l = function (value, _a) {\r\n    var min = _a.min;\r\n    if (isNullOrUndefined(value) || value === '') {\r\n        return false;\r\n    }\r\n    if (Array.isArray(value)) {\r\n        return value.length > 0 && value.every(function (val) { return validate$l(val, { min: min }); });\r\n    }\r\n    return Number(value) >= min;\r\n};\r\nvar params$f = [\r\n    {\r\n        name: 'min',\r\n        cast: function (value) {\r\n            return Number(value);\r\n        }\r\n    }\r\n];\r\nvar min_value = {\r\n    validate: validate$l,\r\n    params: params$f\r\n};\n\nvar ar = /^[٠١٢٣٤٥٦٧٨٩]+$/;\r\nvar en = /^[0-9]+$/;\r\nvar validate$m = function (value) {\r\n    var testValue = function (val) {\r\n        var strValue = String(val);\r\n        return en.test(strValue) || ar.test(strValue);\r\n    };\r\n    if (Array.isArray(value)) {\r\n        return value.every(testValue);\r\n    }\r\n    return testValue(value);\r\n};\r\nvar numeric = {\r\n    validate: validate$m\r\n};\n\nvar validate$n = function (value, _a) {\r\n    var regex = _a.regex;\r\n    if (Array.isArray(value)) {\r\n        return value.every(function (val) { return validate$n(val, { regex: regex }); });\r\n    }\r\n    return regex.test(String(value));\r\n};\r\nvar params$g = [\r\n    {\r\n        name: 'regex',\r\n        cast: function (value) {\r\n            if (typeof value === 'string') {\r\n                return new RegExp(value);\r\n            }\r\n            return value;\r\n        }\r\n    }\r\n];\r\nvar regex = {\r\n    validate: validate$n,\r\n    params: params$g\r\n};\n\nvar validate$o = function (value, _a) {\r\n    var allowFalse = (_a === void 0 ? { allowFalse: true } : _a).allowFalse;\r\n    var result = {\r\n        valid: false,\r\n        required: true\r\n    };\r\n    if (isNullOrUndefined(value) || isEmptyArray(value)) {\r\n        return result;\r\n    }\r\n    // incase a field considers `false` as an empty value like checkboxes.\r\n    if (value === false && !allowFalse) {\r\n        return result;\r\n    }\r\n    result.valid = !!String(value).trim().length;\r\n    return result;\r\n};\r\nvar computesRequired = true;\r\nvar params$h = [\r\n    {\r\n        name: 'allowFalse',\r\n        default: true\r\n    }\r\n];\r\nvar required = {\r\n    validate: validate$o,\r\n    params: params$h,\r\n    computesRequired: computesRequired\r\n};\n\nvar testEmpty = function (value) {\r\n    return isEmptyArray(value) || includes([false, null, undefined], value) || !String(value).trim().length;\r\n};\r\nvar validate$p = function (value, _a) {\r\n    var target = _a.target, values = _a.values;\r\n    var required;\r\n    if (values && values.length) {\r\n        if (!Array.isArray(values) && typeof values === 'string') {\r\n            values = [values];\r\n        }\r\n        // eslint-disable-next-line\r\n        required = values.some(function (val) { return val == String(target).trim(); });\r\n    }\r\n    else {\r\n        required = !testEmpty(target);\r\n    }\r\n    if (!required) {\r\n        return {\r\n            valid: true,\r\n            required: required\r\n        };\r\n    }\r\n    return {\r\n        valid: !testEmpty(value),\r\n        required: required\r\n    };\r\n};\r\nvar params$i = [\r\n    {\r\n        name: 'target',\r\n        isTarget: true\r\n    },\r\n    {\r\n        name: 'values'\r\n    }\r\n];\r\nvar computesRequired$1 = true;\r\nvar required_if = {\r\n    validate: validate$p,\r\n    params: params$i,\r\n    computesRequired: computesRequired$1\r\n};\n\nvar validate$q = function (files, _a) {\r\n    var size = _a.size;\r\n    if (isNaN(size)) {\r\n        return false;\r\n    }\r\n    var nSize = size * 1024;\r\n    if (!Array.isArray(files)) {\r\n        return files.size <= nSize;\r\n    }\r\n    for (var i = 0; i < files.length; i++) {\r\n        if (files[i].size > nSize) {\r\n            return false;\r\n        }\r\n    }\r\n    return true;\r\n};\r\nvar params$j = [\r\n    {\r\n        name: 'size',\r\n        cast: function (value) {\r\n            return Number(value);\r\n        }\r\n    }\r\n];\r\nvar size = {\r\n    validate: validate$q,\r\n    params: params$j\r\n};\n\nexport { alpha$1 as alpha, alpha_dash, alpha_num, alpha_spaces, between, confirmed, digits, dimensions, email, excluded, ext, image, integer, is, is_not, length, max, max_value, mimes, min, min_value, numeric, oneOf, regex, required, required_if, size };\n","import Vue from 'vue';\r\nimport { ValidationProvider, extend } from 'vee-validate3';\r\nimport { required, email } from 'vee-validate3/dist/rules';\r\nimport _isNil from 'lodash/isNil';\r\nimport {\r\n  parseStringToFloat,\r\n  addThousandSeparators,\r\n  convertStringToDate,\r\n  convertDateToString\r\n} from 'src/sites/tax_fi/js/vue/components/calculators/utils/calculatorHelpers';\r\n\r\nVue.component('ValidationProvider', ValidationProvider);\r\n\r\nexport const currencyValidator = {\r\n  validate(value) {\r\n    if (_isNil(value)) {\r\n      return true;\r\n    }\r\n    const regex = /(^[0-9 ]+([,]\\d{1,2})?)$/;\r\n    return regex.test(value);\r\n  }\r\n};\r\n\r\nexport const dateFormatValidator = {\r\n  validate(value) {\r\n    if (_isNil(value)) {\r\n      return true;\r\n    }\r\n    // eslint-disable-next-line no-useless-escape\r\n    const regex = /^(0?[1-9]|[12][0-9]|3[01])[\\.](0?[1-9]|1[012])[\\.]\\d{4}$/;\r\n    return regex.test(value);\r\n  }\r\n};\r\n\r\nexport const mustNotBeSameDateValidator = {\r\n  validate: (value, { other }) => {\r\n    if (_isNil(value) || _isNil(other)) {\r\n      return true;\r\n    }\r\n    return value.getTime() !== other.getTime();\r\n  },\r\n  castValue: convertStringToDate,\r\n  params: [{ name: 'other', isTarget: true, cast: convertStringToDate }]\r\n};\r\n\r\nexport const dateMustBeGreaterValidator = {\r\n  validate: (value, { other }) => {\r\n    if (_isNil(value) || _isNil(other)) {\r\n      return true;\r\n    }\r\n    return value > other;\r\n  },\r\n  castValue: convertStringToDate,\r\n  params: [{ name: 'other', isTarget: true, cast: convertStringToDate }]\r\n};\r\n\r\nexport const taxFreePriceValidator = {\r\n  validate: (value, params) => {\r\n    if (value == '' || (params.taxable == 0 && params.taxAmount == 0)) {\r\n      return true;\r\n    }\r\n    if (params.taxable != 0) {\r\n      return value < params.taxable;\r\n    }\r\n    return params.taxAmount < value;\r\n  },\r\n  castValue: parseStringToFloat,\r\n  params: [\r\n    { name: 'taxable', isTarget: false, cast: parseStringToFloat },\r\n    { name: 'taxAmount', isTarget: false, cast: parseStringToFloat }\r\n  ]\r\n};\r\nexport const taxablePriceValidator = {\r\n  validate: (value, params) => {\r\n    if (value == '' || (params.taxFree == 0 && params.taxAmount == 0)) {\r\n      return true;\r\n    }\r\n    if (params.taxFree != 0) {\r\n      return value > params.taxFree;\r\n    }\r\n    return params.taxAmount < value;\r\n  },\r\n  castValue: parseStringToFloat,\r\n  params: [\r\n    { name: 'taxFree', isTarget: false, cast: parseStringToFloat },\r\n    { name: 'taxAmount', isTarget: false, cast: parseStringToFloat }\r\n  ]\r\n};\r\nexport const taxAmountValidator = {\r\n  validate: (value, params) => {\r\n    if (value == '' || (params.taxFree == 0 && params.taxable == 0)) {\r\n      return true;\r\n    }\r\n    if (params.taxFree != 0) {\r\n      return value < params.taxFree;\r\n    }\r\n    return value < params.taxable;\r\n  },\r\n  castValue: parseStringToFloat,\r\n  params: [\r\n    { name: 'taxFree', isTarget: false, cast: parseStringToFloat },\r\n    { name: 'taxable', isTarget: false, cast: parseStringToFloat }\r\n  ]\r\n};\r\n\r\nexport const dateBetweenValidator = {\r\n  validate: (value, params) => {\r\n    if (_isNil(value) || _isNil(params) || _isNil(params.minDate) || _isNil(params.maxDate)) {\r\n      return true;\r\n    }\r\n    return value >= params.minDate && value <= params.maxDate;\r\n  },\r\n  castValue: convertStringToDate,\r\n  params: [\r\n    {\r\n      name: 'minDate',\r\n      isTarget: false,\r\n      cast: convertStringToDate\r\n    },\r\n    {\r\n      name: 'maxDate',\r\n      isTarget: false,\r\n      cast: convertStringToDate\r\n    }\r\n  ],\r\n  message: (_value, params) => {\r\n    if (_isNil(params) || _isNil(params.minDate) || _isNil(params.maxDate)) {\r\n      return '';\r\n    }\r\n    return Vue.prototype.$trans(\r\n      '/calculators/ValidateDateBetween',\r\n      convertDateToString(\r\n        params.minDate.getDate(),\r\n        params.minDate.getMonth() + 1,\r\n        params.minDate.getFullYear()\r\n      ),\r\n      convertDateToString(\r\n        params.maxDate.getDate(),\r\n        params.maxDate.getMonth() + 1,\r\n        params.maxDate.getFullYear()\r\n      )\r\n    );\r\n  }\r\n};\r\n\r\nexport const dateMustBeGreaterOrEqualValidator = {\r\n  validate: (value, { other }) => {\r\n    if (_isNil(value) || _isNil(other)) {\r\n      return true;\r\n    }\r\n    return value >= other;\r\n  },\r\n  castValue: convertStringToDate,\r\n  params: [{ name: 'other', isTarget: true, cast: convertStringToDate }]\r\n};\r\n\r\nexport const financialYearRangeValidator = {\r\n  validate: (value, { startDate }) => {\r\n    if (_isNil(value) || _isNil(startDate)) {\r\n      return true;\r\n    }\r\n    const financialYearsMaxLenghtInMonths = 18;\r\n    var firstDateOutOfRange = new Date(\r\n      startDate.setMonth(startDate.getMonth() + financialYearsMaxLenghtInMonths)\r\n    );\r\n    return value < firstDateOutOfRange;\r\n  },\r\n  castValue: convertStringToDate,\r\n  params: [{ name: 'startDate', isTarget: true, cast: convertStringToDate }]\r\n};\r\n\r\nexport const financialYearInMonthsValidator = {\r\n  validate(value) {\r\n    if (_isNil(value)) {\r\n      return true;\r\n    }\r\n    const regex = /(^[1-9]$|^[1][0-8])$/;\r\n    return regex.test(value);\r\n  }\r\n};\r\n\r\nexport const financialYearGivenBeforeRevenue = {\r\n  validate(value, params) {\r\n    if (params.tilikaudenPituus == '') {\r\n      return false;\r\n    }\r\n    return true;\r\n  },\r\n  params: [{ name: 'tilikaudenPituus', isTarget: false, cast: parseStringToFloat }]\r\n};\r\n\r\nexport const totalTurnoverValidator = {\r\n  validate(value, params) {\r\n    if (\r\n      _isNil(params) ||\r\n      _isNil(params.huojennukseenOikeuttavaLiikevaihto) ||\r\n      _isNil(params.maxValue)\r\n    ) {\r\n      return true;\r\n    }\r\n    return params.huojennukseenOikeuttavaLiikevaihto <= params.maxValue;\r\n  },\r\n  params: [\r\n    {\r\n      name: 'huojennukseenOikeuttavaLiikevaihto',\r\n      isTarget: false,\r\n      cast: parseStringToFloat\r\n    },\r\n    { name: 'maxValue', isTarget: false, cast: parseStringToFloat }\r\n  ],\r\n  message: (_value, params) => {\r\n    if (_isNil(params) || _isNil(params.maxValue)) {\r\n      return '';\r\n    }\r\n    return Vue.prototype.$trans(\r\n      '/calculators/Liikevaihto_yhteensa_ylaraja',\r\n      addThousandSeparators(params.maxValue)\r\n    );\r\n  }\r\n};\r\n\r\nexport const decimalValidator = {\r\n  validate(value) {\r\n    if (_isNil(value)) {\r\n      return true;\r\n    }\r\n    const regex = /(^\\d+([,]\\d{1,2})?)$/;\r\n    return regex.test(value);\r\n  }\r\n};\r\n\r\nexport const percentageValidator = {\r\n  validate(value) {\r\n    if (_isNil(value)) {\r\n      return true;\r\n    }\r\n    const regex = /(^100([,]0{1,2})?)$|(^\\d{1,2}([,]\\d{1,2})?)$/;\r\n    return regex.test(value);\r\n  }\r\n};\r\n\r\nexport const dividendResolutionDateNotInFinancialYear = {\r\n  validate: (value, { mostRecentFinancialYearStartDate, mostRecentFinancialYearEndDate }) => {\r\n    if (\r\n      _isNil(value) ||\r\n      _isNil(mostRecentFinancialYearStartDate) ||\r\n      _isNil(mostRecentFinancialYearEndDate)\r\n    ) {\r\n      return true;\r\n    }\r\n    const dateInFinancialYear =\r\n      mostRecentFinancialYearStartDate <= value && value <= mostRecentFinancialYearEndDate;\r\n    return !dateInFinancialYear;\r\n  },\r\n  castValue: convertStringToDate,\r\n  params: [\r\n    { name: 'mostRecentFinancialYearStartDate', isTarget: false, cast: convertStringToDate },\r\n    { name: 'mostRecentFinancialYearEndDate', isTarget: false, cast: convertStringToDate }\r\n  ]\r\n};\r\n\r\nexport const dividendResolutionDateValidator = {\r\n  validate: (value, { other }) => {\r\n    if (_isNil(value) || _isNil(other)) {\r\n      return true;\r\n    }\r\n    const dateIsGreater = value > other;\r\n    const isSameOrFollowingYear =\r\n      value.getFullYear() === other.getFullYear() ||\r\n      value.getFullYear() === other.getFullYear() + 1;\r\n    return dateIsGreater && isSameOrFollowingYear;\r\n  },\r\n  castValue: convertStringToDate,\r\n  params: [{ name: 'other', isTarget: true, cast: convertStringToDate }]\r\n};\r\n\r\nexport const householdExpenseOwnShareValidator = {\r\n  validate: (value, { expense }) => {\r\n    if (_isNil(value) || _isNil(expense)) {\r\n      return true;\r\n    }\r\n    return expense > value;\r\n  },\r\n  castValue: parseStringToFloat,\r\n  params: [{ name: 'expense', isTarget: false, cast: parseStringToFloat }]\r\n};\r\n\r\nexport const validationMessages = () => {\r\n  const translation = Vue.prototype.$trans;\r\n  return {\r\n    messages: {\r\n      required: translation('/calculators/MissingValue'),\r\n      currency: translation('/calculators/ValidateDecimalNumber'),\r\n      date_format: translation('/calculators/ValidateDateFormat'),\r\n      not_same_date: translation('/calculators/ValidateSameDate'),\r\n      valid_end_date: translation('/calculators/ValidateEndDate'),\r\n      valid_financial_year_length: translation('/calculators/ValidateFinancialYear'),\r\n      dividend_resolution_date_not_in_financial_year: translation(\r\n        '/calculators/DividendResolutionDateInsideFinancialYear'\r\n      ),\r\n      valid_dividend_resolution_date: translation('/calculators/ValidateDividendResolution'),\r\n      valid_dividend_withdrawal_date: translation('/calculators/ValidateDividendWithdrawal'),\r\n      valid_decimal: translation('/calculators/ValidateDecimalNumber'),\r\n      percentage: translation('/calculators/ValidatePercent'),\r\n      payment_date_after: translation('/calculators/ValidateDueDate'),\r\n      valid_share_of_expense: translation('/calculators/ValidateShareOfExpense'),\r\n      valid_financial_year_in_months: translation('/calculators/financialYearInMonthsValidator'),\r\n      financial_year_given: translation('/calculators/financialYearGivenBeforeRevenue'),\r\n      tax_free_validator: translation('/calculators/ValidateTaxFreePrice'),\r\n      taxable_validator: translation('/calculators/ValidateTaxablePrice'),\r\n      tax_amount_validator: translation('/calculators/ValidateTaxAmount')\r\n    }\r\n  };\r\n};\r\n\r\n// OOTB and mostly used rules extended always\r\nextend('required', required);\r\nextend('email', email);\r\nextend('currency', currencyValidator);\r\n\r\n// Install validators\r\nexport default {\r\n  currencyValidator,\r\n  dateFormatValidator,\r\n  mustNotBeSameDateValidator,\r\n  dateMustBeGreaterValidator,\r\n  dateMustBeGreaterOrEqualValidator,\r\n  financialYearRangeValidator,\r\n  financialYearInMonthsValidator,\r\n  financialYearGivenBeforeRevenue,\r\n  totalTurnoverValidator,\r\n  decimalValidator,\r\n  dateBetweenValidator,\r\n  dividendResolutionDateNotInFinancialYear,\r\n  dividendResolutionDateValidator,\r\n  householdExpenseOwnShareValidator,\r\n  taxFreePriceValidator,\r\n  taxablePriceValidator,\r\n  taxAmountValidator\r\n};\r\n","/**\n  * vee-validate v3.3.0\n  * (c) 2020 Abdelrahman Awad\n  * @license MIT\n  */\nimport Vue from 'vue';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nfunction __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\n\nfunction isNaN(value) {\r\n    // NaN is the one value that does not equal itself.\r\n    // eslint-disable-next-line\r\n    return value !== value;\r\n}\r\nfunction isNullOrUndefined(value) {\r\n    return value === null || value === undefined;\r\n}\r\nfunction isEmptyArray(arr) {\r\n    return Array.isArray(arr) && arr.length === 0;\r\n}\r\nvar isObject = function (obj) {\r\n    return obj !== null && obj && typeof obj === 'object' && !Array.isArray(obj);\r\n};\r\n/**\r\n * Shallow object comparison.\r\n */\r\nfunction isEqual(lhs, rhs) {\r\n    if (lhs instanceof RegExp && rhs instanceof RegExp) {\r\n        return isEqual(lhs.source, rhs.source) && isEqual(lhs.flags, rhs.flags);\r\n    }\r\n    if (Array.isArray(lhs) && Array.isArray(rhs)) {\r\n        if (lhs.length !== rhs.length)\r\n            return false;\r\n        for (var i = 0; i < lhs.length; i++) {\r\n            if (!isEqual(lhs[i], rhs[i])) {\r\n                return false;\r\n            }\r\n        }\r\n        return true;\r\n    }\r\n    // if both are objects, compare each key recursively.\r\n    if (isObject(lhs) && isObject(rhs)) {\r\n        return (Object.keys(lhs).every(function (key) {\r\n            return isEqual(lhs[key], rhs[key]);\r\n        }) &&\r\n            Object.keys(rhs).every(function (key) {\r\n                return isEqual(lhs[key], rhs[key]);\r\n            }));\r\n    }\r\n    if (isNaN(lhs) && isNaN(rhs)) {\r\n        return true;\r\n    }\r\n    return lhs === rhs;\r\n}\r\n// Checks if a given value is not an empty string or null or undefined.\r\nfunction isSpecified(val) {\r\n    if (val === '') {\r\n        return false;\r\n    }\r\n    return !isNullOrUndefined(val);\r\n}\r\nfunction isCallable(fn) {\r\n    return typeof fn === 'function';\r\n}\r\nfunction isLocator(value) {\r\n    return isCallable(value) && !!value.__locatorRef;\r\n}\n\nfunction findIndex(arrayLike, predicate) {\r\n    var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\r\n    if (isCallable(array.findIndex)) {\r\n        return array.findIndex(predicate);\r\n    }\r\n    /* istanbul ignore next */\r\n    for (var i = 0; i < array.length; i++) {\r\n        if (predicate(array[i], i)) {\r\n            return i;\r\n        }\r\n    }\r\n    /* istanbul ignore next */\r\n    return -1;\r\n}\r\n/**\r\n * finds the first element that satisfies the predicate callback, polyfills array.find\r\n */\r\nfunction find(arrayLike, predicate) {\r\n    var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\r\n    var idx = findIndex(array, predicate);\r\n    return idx === -1 ? undefined : array[idx];\r\n}\r\nfunction includes(collection, item) {\r\n    return collection.indexOf(item) !== -1;\r\n}\r\n/**\r\n * Converts an array-like object to array, provides a simple polyfill for Array.from\r\n */\r\nfunction toArray(arrayLike) {\r\n    if (isCallable(Array.from)) {\r\n        return Array.from(arrayLike);\r\n    }\r\n    /* istanbul ignore next */\r\n    return _copyArray(arrayLike);\r\n}\r\n/* istanbul ignore next */\r\nfunction _copyArray(arrayLike) {\r\n    var array = [];\r\n    var length = arrayLike.length;\r\n    for (var i = 0; i < length; i++) {\r\n        array.push(arrayLike[i]);\r\n    }\r\n    return array;\r\n}\r\nfunction values(obj) {\r\n    if (isCallable(Object.values)) {\r\n        return Object.values(obj);\r\n    }\r\n    // fallback to keys()\r\n    /* istanbul ignore next */\r\n    return Object.keys(obj).map(function (k) { return obj[k]; });\r\n}\r\nfunction merge(target, source) {\r\n    Object.keys(source).forEach(function (key) {\r\n        if (isObject(source[key])) {\r\n            if (!target[key]) {\r\n                target[key] = {};\r\n            }\r\n            merge(target[key], source[key]);\r\n            return;\r\n        }\r\n        target[key] = source[key];\r\n    });\r\n    return target;\r\n}\n\nfunction createFlags() {\r\n    return {\r\n        untouched: true,\r\n        touched: false,\r\n        dirty: false,\r\n        pristine: true,\r\n        valid: false,\r\n        invalid: false,\r\n        validated: false,\r\n        pending: false,\r\n        required: false,\r\n        changed: false,\r\n        passed: false,\r\n        failed: false\r\n    };\r\n}\n\nfunction identity(x) {\r\n    return x;\r\n}\r\nfunction debounce(fn, wait, token) {\r\n    if (wait === void 0) { wait = 0; }\r\n    if (token === void 0) { token = { cancelled: false }; }\r\n    if (wait === 0) {\r\n        return fn;\r\n    }\r\n    var timeout;\r\n    return function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        var later = function () {\r\n            timeout = undefined;\r\n            // check if the fn call was cancelled.\r\n            if (!token.cancelled)\r\n                fn.apply(void 0, args);\r\n        };\r\n        // because we might want to use Node.js setTimout for SSR.\r\n        clearTimeout(timeout);\r\n        timeout = setTimeout(later, wait);\r\n    };\r\n}\n\n/**\r\n * Emits a warning to the console\r\n */\r\nfunction warn(message) {\r\n    console.warn(\"[vee-validate] \" + message);\r\n}\r\n/**\r\n * Replaces placeholder values in a string with their actual values\r\n */\r\nfunction interpolate(template, values) {\r\n    return template.replace(/{([^}]+)}/g, function (_, p) {\r\n        return p in values ? values[p] : \"{\" + p + \"}\";\r\n    });\r\n}\n\nvar RULES = {};\r\nfunction normalizeSchema(schema) {\r\n    var _a;\r\n    if ((_a = schema.params) === null || _a === void 0 ? void 0 : _a.length) {\r\n        schema.params = schema.params.map(function (param) {\r\n            if (typeof param === 'string') {\r\n                return { name: param };\r\n            }\r\n            return param;\r\n        });\r\n    }\r\n    return schema;\r\n}\r\nvar RuleContainer = /** @class */ (function () {\r\n    function RuleContainer() {\r\n    }\r\n    RuleContainer.extend = function (name, schema) {\r\n        // if rule already exists, overwrite it.\r\n        var rule = normalizeSchema(schema);\r\n        if (RULES[name]) {\r\n            RULES[name] = merge(RULES[name], schema);\r\n            return;\r\n        }\r\n        RULES[name] = __assign({ lazy: false, computesRequired: false }, rule);\r\n    };\r\n    RuleContainer.isLazy = function (name) {\r\n        var _a;\r\n        return !!((_a = RULES[name]) === null || _a === void 0 ? void 0 : _a.lazy);\r\n    };\r\n    RuleContainer.isRequireRule = function (name) {\r\n        var _a;\r\n        return !!((_a = RULES[name]) === null || _a === void 0 ? void 0 : _a.computesRequired);\r\n    };\r\n    RuleContainer.getRuleDefinition = function (ruleName) {\r\n        return RULES[ruleName];\r\n    };\r\n    return RuleContainer;\r\n}());\r\n/**\r\n * Adds a custom validator to the list of validation rules.\r\n */\r\nfunction extend(name, schema) {\r\n    // makes sure new rules are properly formatted.\r\n    guardExtend(name, schema);\r\n    // Full schema object.\r\n    if (typeof schema === 'object') {\r\n        RuleContainer.extend(name, schema);\r\n        return;\r\n    }\r\n    RuleContainer.extend(name, {\r\n        validate: schema\r\n    });\r\n}\r\n/**\r\n * Guards from extension violations.\r\n */\r\nfunction guardExtend(name, validator) {\r\n    if (isCallable(validator)) {\r\n        return;\r\n    }\r\n    if (isCallable(validator.validate)) {\r\n        return;\r\n    }\r\n    if (RuleContainer.getRuleDefinition(name)) {\r\n        return;\r\n    }\r\n    throw new Error(\"Extension Error: The validator '\" + name + \"' must be a function or have a 'validate' method.\");\r\n}\n\nvar DEFAULT_CONFIG = {\r\n    defaultMessage: \"{_field_} is not valid.\",\r\n    skipOptional: true,\r\n    classes: {\r\n        touched: 'touched',\r\n        untouched: 'untouched',\r\n        valid: 'valid',\r\n        invalid: 'invalid',\r\n        pristine: 'pristine',\r\n        dirty: 'dirty' // control has been interacted with\r\n    },\r\n    bails: true,\r\n    mode: 'aggressive',\r\n    useConstraintAttrs: true\r\n};\r\nvar currentConfig = __assign({}, DEFAULT_CONFIG);\r\nvar getConfig = function () { return currentConfig; };\r\nvar setConfig = function (newConf) {\r\n    currentConfig = __assign(__assign({}, currentConfig), newConf);\r\n};\r\nvar configure = function (cfg) {\r\n    setConfig(cfg);\r\n};\n\n/**\r\n * Normalizes the given rules expression.\r\n */\r\nfunction normalizeRules(rules) {\r\n    // if falsy value return an empty object.\r\n    var acc = {};\r\n    Object.defineProperty(acc, '_$$isNormalized', {\r\n        value: true,\r\n        writable: false,\r\n        enumerable: false,\r\n        configurable: false\r\n    });\r\n    if (!rules) {\r\n        return acc;\r\n    }\r\n    // Object is already normalized, skip.\r\n    if (isObject(rules) && rules._$$isNormalized) {\r\n        return rules;\r\n    }\r\n    if (isObject(rules)) {\r\n        return Object.keys(rules).reduce(function (prev, curr) {\r\n            var params = [];\r\n            var preserveArrayParams = false;\r\n            if (rules[curr] === true) {\r\n                params = [];\r\n            }\r\n            else if (Array.isArray(rules[curr])) {\r\n                params = rules[curr];\r\n                preserveArrayParams = true;\r\n            }\r\n            else if (isObject(rules[curr])) {\r\n                params = rules[curr];\r\n            }\r\n            else {\r\n                params = [rules[curr]];\r\n            }\r\n            if (rules[curr] !== false) {\r\n                prev[curr] = buildParams(curr, params, preserveArrayParams);\r\n            }\r\n            return prev;\r\n        }, acc);\r\n    }\r\n    /* istanbul ignore if */\r\n    if (typeof rules !== 'string') {\r\n        warn('rules must be either a string or an object.');\r\n        return acc;\r\n    }\r\n    return rules.split('|').reduce(function (prev, rule) {\r\n        var parsedRule = parseRule(rule);\r\n        if (!parsedRule.name) {\r\n            return prev;\r\n        }\r\n        prev[parsedRule.name] = buildParams(parsedRule.name, parsedRule.params);\r\n        return prev;\r\n    }, acc);\r\n}\r\nfunction buildParams(ruleName, provided, preserveArrayParams) {\r\n    if (preserveArrayParams === void 0) { preserveArrayParams = false; }\r\n    var ruleSchema = RuleContainer.getRuleDefinition(ruleName);\r\n    if (!ruleSchema) {\r\n        return provided;\r\n    }\r\n    var params = {};\r\n    if (!ruleSchema.params && !Array.isArray(provided)) {\r\n        throw new Error('You provided an object params to a rule that has no defined schema.');\r\n    }\r\n    // Rule probably uses an array for their args, keep it as is.\r\n    if (Array.isArray(provided) && !ruleSchema.params) {\r\n        return provided;\r\n    }\r\n    var definedParams;\r\n    // collect the params schema.\r\n    if (!ruleSchema.params || (ruleSchema.params.length < provided.length && Array.isArray(provided))) {\r\n        var lastDefinedParam_1;\r\n        // collect any additional parameters in the last item.\r\n        definedParams = provided.map(function (_, idx) {\r\n            var _a;\r\n            var param = (_a = ruleSchema.params) === null || _a === void 0 ? void 0 : _a[idx];\r\n            lastDefinedParam_1 = param || lastDefinedParam_1;\r\n            if (!param) {\r\n                param = lastDefinedParam_1;\r\n            }\r\n            return param;\r\n        });\r\n    }\r\n    else {\r\n        definedParams = ruleSchema.params;\r\n    }\r\n    // Match the provided array length with a temporary schema.\r\n    for (var i = 0; i < definedParams.length; i++) {\r\n        var options = definedParams[i];\r\n        var value = options.default;\r\n        // if the provided is an array, map element value.\r\n        if (Array.isArray(provided) && !preserveArrayParams) {\r\n            if (i in provided) {\r\n                value = provided[i];\r\n            }\r\n        }\r\n        else {\r\n            // If the param exists in the provided object.\r\n            if (options.name in provided) {\r\n                value = provided[options.name];\r\n                // if the provided is the first param value.\r\n            }\r\n            else if (definedParams.length === 1) {\r\n                value = provided;\r\n            }\r\n        }\r\n        // if the param is a target, resolve the target value.\r\n        if (options.isTarget) {\r\n            value = createLocator(value, options.cast);\r\n        }\r\n        // A target param using interpolation\r\n        if (typeof value === 'string' && value[0] === '@') {\r\n            value = createLocator(value.slice(1), options.cast);\r\n        }\r\n        // If there is a transformer defined.\r\n        if (!isLocator(value) && options.cast) {\r\n            value = options.cast(value);\r\n        }\r\n        // already been set, probably multiple values.\r\n        if (params[options.name]) {\r\n            params[options.name] = Array.isArray(params[options.name]) ? params[options.name] : [params[options.name]];\r\n            params[options.name].push(value);\r\n        }\r\n        else {\r\n            // set the value.\r\n            params[options.name] = value;\r\n        }\r\n    }\r\n    return params;\r\n}\r\n/**\r\n * Parses a rule string expression.\r\n */\r\nvar parseRule = function (rule) {\r\n    var params = [];\r\n    var name = rule.split(':')[0];\r\n    if (includes(rule, ':')) {\r\n        params = rule\r\n            .split(':')\r\n            .slice(1)\r\n            .join(':')\r\n            .split(',');\r\n    }\r\n    return { name: name, params: params };\r\n};\r\nfunction createLocator(value, castFn) {\r\n    var locator = function (crossTable) {\r\n        var val = crossTable[value];\r\n        return castFn ? castFn(val) : val;\r\n    };\r\n    locator.__locatorRef = value;\r\n    return locator;\r\n}\r\nfunction extractLocators(params) {\r\n    if (Array.isArray(params)) {\r\n        return params.filter(isLocator);\r\n    }\r\n    return Object.keys(params)\r\n        .filter(function (key) { return isLocator(params[key]); })\r\n        .map(function (key) { return params[key]; });\r\n}\n\n/**\r\n * Validates a value against the rules.\r\n */\r\nfunction validate(value, rules, options) {\r\n    if (options === void 0) { options = {}; }\r\n    return __awaiter(this, void 0, void 0, function () {\r\n        var shouldBail, skipIfEmpty, field, result, errors, failedRules, regenerateMap;\r\n        return __generator(this, function (_a) {\r\n            switch (_a.label) {\r\n                case 0:\r\n                    shouldBail = options === null || options === void 0 ? void 0 : options.bails;\r\n                    skipIfEmpty = options === null || options === void 0 ? void 0 : options.skipIfEmpty;\r\n                    field = {\r\n                        name: (options === null || options === void 0 ? void 0 : options.name) || '{field}',\r\n                        rules: normalizeRules(rules),\r\n                        bails: shouldBail !== null && shouldBail !== void 0 ? shouldBail : true,\r\n                        skipIfEmpty: skipIfEmpty !== null && skipIfEmpty !== void 0 ? skipIfEmpty : true,\r\n                        forceRequired: false,\r\n                        crossTable: (options === null || options === void 0 ? void 0 : options.values) || {},\r\n                        names: (options === null || options === void 0 ? void 0 : options.names) || {},\r\n                        customMessages: (options === null || options === void 0 ? void 0 : options.customMessages) || {}\r\n                    };\r\n                    return [4 /*yield*/, _validate(field, value, options)];\r\n                case 1:\r\n                    result = _a.sent();\r\n                    errors = [];\r\n                    failedRules = {};\r\n                    regenerateMap = {};\r\n                    result.errors.forEach(function (e) {\r\n                        var msg = e.msg();\r\n                        errors.push(msg);\r\n                        failedRules[e.rule] = msg;\r\n                        regenerateMap[e.rule] = e.msg;\r\n                    });\r\n                    return [2 /*return*/, {\r\n                            valid: result.valid,\r\n                            errors: errors,\r\n                            failedRules: failedRules,\r\n                            regenerateMap: regenerateMap\r\n                        }];\r\n            }\r\n        });\r\n    });\r\n}\r\n/**\r\n * Starts the validation process.\r\n */\r\nfunction _validate(field, value, _a) {\r\n    var _b = (_a === void 0 ? {} : _a).isInitial, isInitial = _b === void 0 ? false : _b;\r\n    return __awaiter(this, void 0, void 0, function () {\r\n        var _c, shouldSkip, errors, rules, length, i, rule, result;\r\n        return __generator(this, function (_d) {\r\n            switch (_d.label) {\r\n                case 0: return [4 /*yield*/, _shouldSkip(field, value)];\r\n                case 1:\r\n                    _c = _d.sent(), shouldSkip = _c.shouldSkip, errors = _c.errors;\r\n                    if (shouldSkip) {\r\n                        return [2 /*return*/, {\r\n                                valid: !errors.length,\r\n                                errors: errors\r\n                            }];\r\n                    }\r\n                    rules = Object.keys(field.rules).filter(function (rule) { return !RuleContainer.isRequireRule(rule); });\r\n                    length = rules.length;\r\n                    i = 0;\r\n                    _d.label = 2;\r\n                case 2:\r\n                    if (!(i < length)) return [3 /*break*/, 5];\r\n                    if (isInitial && RuleContainer.isLazy(rules[i])) {\r\n                        return [3 /*break*/, 4];\r\n                    }\r\n                    rule = rules[i];\r\n                    return [4 /*yield*/, _test(field, value, {\r\n                            name: rule,\r\n                            params: field.rules[rule]\r\n                        })];\r\n                case 3:\r\n                    result = _d.sent();\r\n                    if (!result.valid && result.error) {\r\n                        errors.push(result.error);\r\n                        if (field.bails) {\r\n                            return [2 /*return*/, {\r\n                                    valid: false,\r\n                                    errors: errors\r\n                                }];\r\n                        }\r\n                    }\r\n                    _d.label = 4;\r\n                case 4:\r\n                    i++;\r\n                    return [3 /*break*/, 2];\r\n                case 5: return [2 /*return*/, {\r\n                        valid: !errors.length,\r\n                        errors: errors\r\n                    }];\r\n            }\r\n        });\r\n    });\r\n}\r\nfunction _shouldSkip(field, value) {\r\n    return __awaiter(this, void 0, void 0, function () {\r\n        var requireRules, length, errors, isEmpty, isEmptyAndOptional, isRequired, i, rule, result;\r\n        return __generator(this, function (_a) {\r\n            switch (_a.label) {\r\n                case 0:\r\n                    requireRules = Object.keys(field.rules).filter(RuleContainer.isRequireRule);\r\n                    length = requireRules.length;\r\n                    errors = [];\r\n                    isEmpty = isNullOrUndefined(value) || value === '' || isEmptyArray(value);\r\n                    isEmptyAndOptional = isEmpty && field.skipIfEmpty;\r\n                    isRequired = false;\r\n                    i = 0;\r\n                    _a.label = 1;\r\n                case 1:\r\n                    if (!(i < length)) return [3 /*break*/, 4];\r\n                    rule = requireRules[i];\r\n                    return [4 /*yield*/, _test(field, value, {\r\n                            name: rule,\r\n                            params: field.rules[rule]\r\n                        })];\r\n                case 2:\r\n                    result = _a.sent();\r\n                    if (!isObject(result)) {\r\n                        throw new Error('Require rules has to return an object (see docs)');\r\n                    }\r\n                    if (result.required) {\r\n                        isRequired = true;\r\n                    }\r\n                    if (!result.valid && result.error) {\r\n                        errors.push(result.error);\r\n                        // Exit early as the field is required and failed validation.\r\n                        if (field.bails) {\r\n                            return [2 /*return*/, {\r\n                                    shouldSkip: true,\r\n                                    errors: errors\r\n                                }];\r\n                        }\r\n                    }\r\n                    _a.label = 3;\r\n                case 3:\r\n                    i++;\r\n                    return [3 /*break*/, 1];\r\n                case 4:\r\n                    if (isEmpty && !isRequired && !field.skipIfEmpty) {\r\n                        return [2 /*return*/, {\r\n                                shouldSkip: false,\r\n                                errors: errors\r\n                            }];\r\n                    }\r\n                    // field is configured to run through the pipeline regardless\r\n                    if (!field.bails && !isEmptyAndOptional) {\r\n                        return [2 /*return*/, {\r\n                                shouldSkip: false,\r\n                                errors: errors\r\n                            }];\r\n                    }\r\n                    // skip if the field is not required and has an empty value.\r\n                    return [2 /*return*/, {\r\n                            shouldSkip: !isRequired && isEmpty,\r\n                            errors: errors\r\n                        }];\r\n            }\r\n        });\r\n    });\r\n}\r\n/**\r\n * Tests a single input value against a rule.\r\n */\r\nfunction _test(field, value, rule) {\r\n    return __awaiter(this, void 0, void 0, function () {\r\n        var ruleSchema, normalizedValue, params, result, values_1;\r\n        return __generator(this, function (_a) {\r\n            switch (_a.label) {\r\n                case 0:\r\n                    ruleSchema = RuleContainer.getRuleDefinition(rule.name);\r\n                    if (!ruleSchema || !ruleSchema.validate) {\r\n                        throw new Error(\"No such validator '\" + rule.name + \"' exists.\");\r\n                    }\r\n                    normalizedValue = ruleSchema.castValue ? ruleSchema.castValue(value) : value;\r\n                    params = fillTargetValues(rule.params, field.crossTable);\r\n                    return [4 /*yield*/, ruleSchema.validate(normalizedValue, params)];\r\n                case 1:\r\n                    result = _a.sent();\r\n                    if (typeof result === 'string') {\r\n                        values_1 = __assign(__assign({}, (params || {})), { _field_: field.name, _value_: value, _rule_: rule.name });\r\n                        return [2 /*return*/, {\r\n                                valid: false,\r\n                                error: { rule: rule.name, msg: function () { return interpolate(result, values_1); } }\r\n                            }];\r\n                    }\r\n                    if (!isObject(result)) {\r\n                        result = { valid: result };\r\n                    }\r\n                    return [2 /*return*/, {\r\n                            valid: result.valid,\r\n                            required: result.required,\r\n                            error: result.valid ? undefined : _generateFieldError(field, value, ruleSchema, rule.name, params)\r\n                        }];\r\n            }\r\n        });\r\n    });\r\n}\r\n/**\r\n * Generates error messages.\r\n */\r\nfunction _generateFieldError(field, value, ruleSchema, ruleName, params) {\r\n    var _a;\r\n    var message = (_a = field.customMessages[ruleName]) !== null && _a !== void 0 ? _a : ruleSchema.message;\r\n    var ruleTargets = _getRuleTargets(field, ruleSchema, ruleName);\r\n    var _b = _getUserTargets(field, ruleSchema, ruleName, message), userTargets = _b.userTargets, userMessage = _b.userMessage;\r\n    var values = __assign(__assign(__assign(__assign({}, (params || {})), { _field_: field.name, _value_: value, _rule_: ruleName }), ruleTargets), userTargets);\r\n    return {\r\n        msg: function () { return _normalizeMessage(userMessage || getConfig().defaultMessage, field.name, values); },\r\n        rule: ruleName\r\n    };\r\n}\r\nfunction _getRuleTargets(field, ruleSchema, ruleName) {\r\n    var params = ruleSchema.params;\r\n    if (!params) {\r\n        return {};\r\n    }\r\n    var numTargets = params.filter(function (param) { return param.isTarget; }).length;\r\n    if (numTargets <= 0) {\r\n        return {};\r\n    }\r\n    var names = {};\r\n    var ruleConfig = field.rules[ruleName];\r\n    if (!Array.isArray(ruleConfig) && isObject(ruleConfig)) {\r\n        ruleConfig = params.map(function (param) {\r\n            return ruleConfig[param.name];\r\n        });\r\n    }\r\n    for (var index = 0; index < params.length; index++) {\r\n        var param = params[index];\r\n        var key = ruleConfig[index];\r\n        if (!isLocator(key)) {\r\n            continue;\r\n        }\r\n        key = key.__locatorRef;\r\n        var name_1 = field.names[key] || key;\r\n        names[param.name] = name_1;\r\n        names[\"_\" + param.name + \"_\"] = field.crossTable[key];\r\n    }\r\n    return names;\r\n}\r\nfunction _getUserTargets(field, ruleSchema, ruleName, userMessage) {\r\n    var userTargets = {};\r\n    var rules = field.rules[ruleName];\r\n    var params = ruleSchema.params || [];\r\n    // early return if no rules\r\n    if (!rules) {\r\n        return {};\r\n    }\r\n    // check all rules to convert targets\r\n    Object.keys(rules).forEach(function (key, index) {\r\n        // get the rule\r\n        var rule = rules[key];\r\n        if (!isLocator(rule)) {\r\n            return {};\r\n        }\r\n        // get associated parameter\r\n        var param = params[index];\r\n        if (!param) {\r\n            return {};\r\n        }\r\n        // grab the name of the target\r\n        var name = rule.__locatorRef;\r\n        userTargets[param.name] = field.names[name] || name;\r\n        userTargets[\"_\" + param.name + \"_\"] = field.crossTable[name];\r\n    });\r\n    return {\r\n        userTargets: userTargets,\r\n        userMessage: userMessage\r\n    };\r\n}\r\nfunction _normalizeMessage(template, field, values) {\r\n    if (typeof template === 'function') {\r\n        return template(field, values);\r\n    }\r\n    return interpolate(template, __assign(__assign({}, values), { _field_: field }));\r\n}\r\nfunction fillTargetValues(params, crossTable) {\r\n    if (Array.isArray(params)) {\r\n        return params;\r\n    }\r\n    var values = {};\r\n    var normalize = function (value) {\r\n        if (isLocator(value)) {\r\n            return value(crossTable);\r\n        }\r\n        return value;\r\n    };\r\n    Object.keys(params).forEach(function (param) {\r\n        values[param] = normalize(params[param]);\r\n    });\r\n    return values;\r\n}\n\nvar aggressive = function () { return ({\r\n    on: ['input', 'blur']\r\n}); };\r\nvar lazy = function () { return ({\r\n    on: ['change']\r\n}); };\r\nvar eager = function (_a) {\r\n    var errors = _a.errors;\r\n    if (errors.length) {\r\n        return {\r\n            on: ['input', 'change']\r\n        };\r\n    }\r\n    return {\r\n        on: ['change', 'blur']\r\n    };\r\n};\r\nvar passive = function () { return ({\r\n    on: []\r\n}); };\r\nvar modes = {\r\n    aggressive: aggressive,\r\n    eager: eager,\r\n    passive: passive,\r\n    lazy: lazy\r\n};\r\nvar setInteractionMode = function (mode, implementation) {\r\n    setConfig({ mode: mode });\r\n    if (!implementation) {\r\n        return;\r\n    }\r\n    if (!isCallable(implementation)) {\r\n        throw new Error('A mode implementation must be a function');\r\n    }\r\n    modes[mode] = implementation;\r\n};\n\nvar EVENT_BUS = new Vue();\r\nfunction localeChanged() {\r\n    EVENT_BUS.$emit('change:locale');\r\n}\n\nvar Dictionary = /** @class */ (function () {\r\n    function Dictionary(locale, dictionary) {\r\n        this.container = {};\r\n        this.locale = locale;\r\n        this.merge(dictionary);\r\n    }\r\n    Dictionary.prototype.resolve = function (field, rule, values) {\r\n        return this.format(this.locale, field, rule, values);\r\n    };\r\n    Dictionary.prototype.format = function (locale, field, rule, values) {\r\n        var _a, _b, _c, _d, _e, _f, _g, _h;\r\n        var message;\r\n        // find if specific message for that field was specified.\r\n        message = ((_c = (_b = (_a = this.container[locale]) === null || _a === void 0 ? void 0 : _a.fields) === null || _b === void 0 ? void 0 : _b[field]) === null || _c === void 0 ? void 0 : _c[rule]) || ((_e = (_d = this.container[locale]) === null || _d === void 0 ? void 0 : _d.messages) === null || _e === void 0 ? void 0 : _e[rule]);\r\n        if (!message) {\r\n            message = '{_field_} is not valid';\r\n        }\r\n        field = (_h = (_g = (_f = this.container[locale]) === null || _f === void 0 ? void 0 : _f.names) === null || _g === void 0 ? void 0 : _g[field]) !== null && _h !== void 0 ? _h : field;\r\n        return isCallable(message) ? message(field, values) : interpolate(message, __assign(__assign({}, values), { _field_: field }));\r\n    };\r\n    Dictionary.prototype.merge = function (dictionary) {\r\n        merge(this.container, dictionary);\r\n    };\r\n    Dictionary.prototype.hasRule = function (name) {\r\n        var _a, _b;\r\n        return !!((_b = (_a = this.container[this.locale]) === null || _a === void 0 ? void 0 : _a.messages) === null || _b === void 0 ? void 0 : _b[name]);\r\n    };\r\n    return Dictionary;\r\n}());\r\nvar DICTIONARY;\r\nfunction localize(locale, dictionary) {\r\n    var _a;\r\n    if (!DICTIONARY) {\r\n        DICTIONARY = new Dictionary('en', {});\r\n        setConfig({\r\n            defaultMessage: function (field, values) {\r\n                return DICTIONARY.resolve(field, values === null || values === void 0 ? void 0 : values._rule_, values || {});\r\n            }\r\n        });\r\n    }\r\n    if (typeof locale === 'string') {\r\n        DICTIONARY.locale = locale;\r\n        if (dictionary) {\r\n            DICTIONARY.merge((_a = {}, _a[locale] = dictionary, _a));\r\n        }\r\n        localeChanged();\r\n        return;\r\n    }\r\n    DICTIONARY.merge(locale);\r\n}\n\nvar isEvent = function (evt) {\r\n    if (!evt) {\r\n        return false;\r\n    }\r\n    if (typeof Event !== 'undefined' && isCallable(Event) && evt instanceof Event) {\r\n        return true;\r\n    }\r\n    // this is for IE\r\n    /* istanbul ignore next */\r\n    if (evt && evt.srcElement) {\r\n        return true;\r\n    }\r\n    return false;\r\n};\r\nfunction normalizeEventValue(value) {\r\n    var _a, _b;\r\n    if (!isEvent(value)) {\r\n        return value;\r\n    }\r\n    var input = value.target;\r\n    if (input.type === 'file' && input.files) {\r\n        return toArray(input.files);\r\n    }\r\n    // If the input has a `v-model.number` modifier applied.\r\n    if ((_a = input._vModifiers) === null || _a === void 0 ? void 0 : _a.number) {\r\n        // as per the spec the v-model.number uses parseFloat\r\n        var valueAsNumber = parseFloat(input.value);\r\n        if (isNaN(valueAsNumber)) {\r\n            return input.value;\r\n        }\r\n        return valueAsNumber;\r\n    }\r\n    if ((_b = input._vModifiers) === null || _b === void 0 ? void 0 : _b.trim) {\r\n        var trimmedValue = typeof input.value === 'string' ? input.value.trim() : input.value;\r\n        return trimmedValue;\r\n    }\r\n    return input.value;\r\n}\n\nvar isTextInput = function (vnode) {\r\n    var _a;\r\n    var attrs = ((_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs) || vnode.elm;\r\n    // it will fallback to being a text input per browsers spec.\r\n    if (vnode.tag === 'input' && (!attrs || !attrs.type)) {\r\n        return true;\r\n    }\r\n    if (vnode.tag === 'textarea') {\r\n        return true;\r\n    }\r\n    return includes(['text', 'password', 'search', 'email', 'tel', 'url', 'number'], attrs === null || attrs === void 0 ? void 0 : attrs.type);\r\n};\r\n// export const isCheckboxOrRadioInput = (vnode: VNode): boolean => {\r\n//   const attrs = (vnode.data && vnode.data.attrs) || vnode.elm;\r\n//   return includes(['radio', 'checkbox'], attrs && attrs.type);\r\n// };\r\n// Gets the model object on the vnode.\r\nfunction findModel(vnode) {\r\n    if (!vnode.data) {\r\n        return undefined;\r\n    }\r\n    // Component Model\r\n    // THIS IS NOT TYPED IN OFFICIAL VUE TYPINGS\r\n    // eslint-disable-next-line\r\n    var nonStandardVNodeData = vnode.data;\r\n    if ('model' in nonStandardVNodeData) {\r\n        return nonStandardVNodeData.model;\r\n    }\r\n    if (!vnode.data.directives) {\r\n        return undefined;\r\n    }\r\n    return find(vnode.data.directives, function (d) { return d.name === 'model'; });\r\n}\r\nfunction findValue(vnode) {\r\n    var _a, _b;\r\n    var model = findModel(vnode);\r\n    if (model) {\r\n        return { value: model.value };\r\n    }\r\n    var config = findModelConfig(vnode);\r\n    var prop = (config === null || config === void 0 ? void 0 : config.prop) || 'value';\r\n    if (((_a = vnode.componentOptions) === null || _a === void 0 ? void 0 : _a.propsData) && prop in vnode.componentOptions.propsData) {\r\n        var propsDataWithValue = vnode.componentOptions.propsData;\r\n        return { value: propsDataWithValue[prop] };\r\n    }\r\n    if (((_b = vnode.data) === null || _b === void 0 ? void 0 : _b.domProps) && 'value' in vnode.data.domProps) {\r\n        return { value: vnode.data.domProps.value };\r\n    }\r\n    return undefined;\r\n}\r\nfunction extractChildren(vnode) {\r\n    if (Array.isArray(vnode)) {\r\n        return vnode;\r\n    }\r\n    if (Array.isArray(vnode.children)) {\r\n        return vnode.children;\r\n    }\r\n    /* istanbul ignore next */\r\n    if (vnode.componentOptions && Array.isArray(vnode.componentOptions.children)) {\r\n        return vnode.componentOptions.children;\r\n    }\r\n    return [];\r\n}\r\nfunction findInputNode(vnode) {\r\n    if (!Array.isArray(vnode) && findValue(vnode) !== undefined) {\r\n        return vnode;\r\n    }\r\n    var children = extractChildren(vnode);\r\n    return children.reduce(function (candidate, node) {\r\n        if (candidate) {\r\n            return candidate;\r\n        }\r\n        return findInputNode(node);\r\n    }, null);\r\n}\r\n// Resolves v-model config if exists.\r\nfunction findModelConfig(vnode) {\r\n    /* istanbul ignore next */\r\n    if (!vnode.componentOptions)\r\n        return null;\r\n    // This is also not typed in the standard Vue TS.\r\n    return vnode.componentOptions.Ctor.options.model;\r\n}\r\n// Adds a listener to vnode listener object.\r\nfunction mergeVNodeListeners(obj, eventName, handler) {\r\n    // no listener at all.\r\n    if (isNullOrUndefined(obj[eventName])) {\r\n        obj[eventName] = [handler];\r\n        return;\r\n    }\r\n    // Is an invoker.\r\n    if (isCallable(obj[eventName]) && obj[eventName].fns) {\r\n        var invoker = obj[eventName];\r\n        invoker.fns = Array.isArray(invoker.fns) ? invoker.fns : [invoker.fns];\r\n        if (!includes(invoker.fns, handler)) {\r\n            invoker.fns.push(handler);\r\n        }\r\n        return;\r\n    }\r\n    if (isCallable(obj[eventName])) {\r\n        var prev = obj[eventName];\r\n        obj[eventName] = [prev];\r\n    }\r\n    if (Array.isArray(obj[eventName]) && !includes(obj[eventName], handler)) {\r\n        obj[eventName].push(handler);\r\n    }\r\n}\r\n// Adds a listener to a native HTML vnode.\r\nfunction addNativeNodeListener(node, eventName, handler) {\r\n    /* istanbul ignore next */\r\n    if (!node.data) {\r\n        node.data = {};\r\n    }\r\n    if (isNullOrUndefined(node.data.on)) {\r\n        node.data.on = {};\r\n    }\r\n    mergeVNodeListeners(node.data.on, eventName, handler);\r\n}\r\n// Adds a listener to a Vue component vnode.\r\nfunction addComponentNodeListener(node, eventName, handler) {\r\n    /* istanbul ignore next */\r\n    if (!node.componentOptions) {\r\n        return;\r\n    }\r\n    /* istanbul ignore next */\r\n    if (!node.componentOptions.listeners) {\r\n        node.componentOptions.listeners = {};\r\n    }\r\n    mergeVNodeListeners(node.componentOptions.listeners, eventName, handler);\r\n}\r\nfunction addVNodeListener(vnode, eventName, handler) {\r\n    if (vnode.componentOptions) {\r\n        addComponentNodeListener(vnode, eventName, handler);\r\n        return;\r\n    }\r\n    addNativeNodeListener(vnode, eventName, handler);\r\n}\r\n// Determines if `change` should be used over `input` for listeners.\r\nfunction getInputEventName(vnode, model) {\r\n    var _a;\r\n    // Is a component.\r\n    if (vnode.componentOptions) {\r\n        var event_1 = (findModelConfig(vnode) || { event: 'input' }).event;\r\n        return event_1;\r\n    }\r\n    // Lazy Models typically use change event\r\n    if ((_a = model === null || model === void 0 ? void 0 : model.modifiers) === null || _a === void 0 ? void 0 : _a.lazy) {\r\n        return 'change';\r\n    }\r\n    // is a textual-type input.\r\n    if (isTextInput(vnode)) {\r\n        return 'input';\r\n    }\r\n    return 'change';\r\n}\r\nfunction isHTMLNode(node) {\r\n    return includes(['input', 'select', 'textarea'], node.tag);\r\n}\r\n// TODO: Type this one properly.\r\nfunction normalizeSlots(slots, ctx) {\r\n    var acc = [];\r\n    return Object.keys(slots).reduce(function (arr, key) {\r\n        slots[key].forEach(function (vnode) {\r\n            if (!vnode.context) {\r\n                slots[key].context = ctx;\r\n                if (!vnode.data) {\r\n                    vnode.data = {};\r\n                }\r\n                vnode.data.slot = key;\r\n            }\r\n        });\r\n        return arr.concat(slots[key]);\r\n    }, acc);\r\n}\r\nfunction resolveTextualRules(vnode) {\r\n    var _a;\r\n    var attrs = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs;\r\n    var rules = {};\r\n    if (!attrs)\r\n        return rules;\r\n    if (attrs.type === 'email' && RuleContainer.getRuleDefinition('email')) {\r\n        rules.email = ['multiple' in attrs];\r\n    }\r\n    if (attrs.pattern && RuleContainer.getRuleDefinition('regex')) {\r\n        rules.regex = attrs.pattern;\r\n    }\r\n    if (attrs.maxlength >= 0 && RuleContainer.getRuleDefinition('max')) {\r\n        rules.max = attrs.maxlength;\r\n    }\r\n    if (attrs.minlength >= 0 && RuleContainer.getRuleDefinition('min')) {\r\n        rules.min = attrs.minlength;\r\n    }\r\n    if (attrs.type === 'number') {\r\n        if (isSpecified(attrs.min) && RuleContainer.getRuleDefinition('min_value')) {\r\n            rules.min_value = Number(attrs.min);\r\n        }\r\n        if (isSpecified(attrs.max) && RuleContainer.getRuleDefinition('max_value')) {\r\n            rules.max_value = Number(attrs.max);\r\n        }\r\n    }\r\n    return rules;\r\n}\r\nfunction resolveRules(vnode) {\r\n    var _a;\r\n    var htmlTags = ['input', 'select', 'textarea'];\r\n    var attrs = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs;\r\n    if (!includes(htmlTags, vnode.tag) || !attrs) {\r\n        return {};\r\n    }\r\n    var rules = {};\r\n    if ('required' in attrs && attrs.required !== false && RuleContainer.getRuleDefinition('required')) {\r\n        rules.required = attrs.type === 'checkbox' ? [true] : true;\r\n    }\r\n    if (isTextInput(vnode)) {\r\n        return normalizeRules(__assign(__assign({}, rules), resolveTextualRules(vnode)));\r\n    }\r\n    return normalizeRules(rules);\r\n}\r\nfunction normalizeChildren(context, slotProps) {\r\n    if (context.$scopedSlots.default) {\r\n        return context.$scopedSlots.default(slotProps) || [];\r\n    }\r\n    return context.$slots.default || [];\r\n}\n\n/**\r\n * Determines if a provider needs to run validation.\r\n */\r\nfunction shouldValidate(ctx, value) {\r\n    // when an immediate/initial validation is needed and wasn't done before.\r\n    if (!ctx._ignoreImmediate && ctx.immediate) {\r\n        return true;\r\n    }\r\n    // when the value changes for whatever reason.\r\n    if (ctx.value !== value && ctx.normalizedEvents.length) {\r\n        return true;\r\n    }\r\n    // when it needs validation due to props/cross-fields changes.\r\n    if (ctx._needsValidation) {\r\n        return true;\r\n    }\r\n    // when the initial value is undefined and the field wasn't rendered yet.\r\n    if (!ctx.initialized && value === undefined) {\r\n        return true;\r\n    }\r\n    return false;\r\n}\r\nfunction createValidationCtx(ctx) {\r\n    return __assign(__assign({}, ctx.flags), { errors: ctx.errors, classes: ctx.classes, failedRules: ctx.failedRules, reset: function () { return ctx.reset(); }, validate: function () {\r\n            var args = [];\r\n            for (var _i = 0; _i < arguments.length; _i++) {\r\n                args[_i] = arguments[_i];\r\n            }\r\n            return ctx.validate.apply(ctx, args);\r\n        }, ariaInput: {\r\n            'aria-invalid': ctx.flags.invalid ? 'true' : 'false',\r\n            'aria-required': ctx.isRequired ? 'true' : 'false',\r\n            'aria-errormessage': \"vee_\" + ctx.id\r\n        }, ariaMsg: {\r\n            id: \"vee_\" + ctx.id,\r\n            'aria-live': ctx.errors.length ? 'assertive' : 'off'\r\n        } });\r\n}\r\nfunction onRenderUpdate(vm, value) {\r\n    if (!vm.initialized) {\r\n        vm.initialValue = value;\r\n    }\r\n    var validateNow = shouldValidate(vm, value);\r\n    vm._needsValidation = false;\r\n    vm.value = value;\r\n    vm._ignoreImmediate = true;\r\n    if (!validateNow) {\r\n        return;\r\n    }\r\n    var validate = function () {\r\n        if (vm.immediate || vm.flags.validated) {\r\n            return triggerThreadSafeValidation(vm);\r\n        }\r\n        vm.validateSilent();\r\n    };\r\n    if (vm.initialized) {\r\n        validate();\r\n        return;\r\n    }\r\n    vm.$once('hook:mounted', function () { return validate(); });\r\n}\r\nfunction computeModeSetting(ctx) {\r\n    var compute = (isCallable(ctx.mode) ? ctx.mode : modes[ctx.mode]);\r\n    return compute(ctx);\r\n}\r\nfunction triggerThreadSafeValidation(vm) {\r\n    var pendingPromise = vm.validateSilent();\r\n    // avoids race conditions between successive validations.\r\n    vm._pendingValidation = pendingPromise;\r\n    return pendingPromise.then(function (result) {\r\n        if (pendingPromise === vm._pendingValidation) {\r\n            vm.applyResult(result);\r\n            vm._pendingValidation = undefined;\r\n        }\r\n        return result;\r\n    });\r\n}\r\n// Creates the common handlers for a validatable context.\r\nfunction createCommonHandlers(vm) {\r\n    if (!vm.$veeOnInput) {\r\n        vm.$veeOnInput = function (e) {\r\n            vm.syncValue(e); // track and keep the value updated.\r\n            vm.setFlags({ dirty: true, pristine: false });\r\n        };\r\n    }\r\n    var onInput = vm.$veeOnInput;\r\n    if (!vm.$veeOnBlur) {\r\n        vm.$veeOnBlur = function () {\r\n            vm.setFlags({ touched: true, untouched: false });\r\n        };\r\n    }\r\n    // Blur event listener.\r\n    var onBlur = vm.$veeOnBlur;\r\n    var onValidate = vm.$veeHandler;\r\n    var mode = computeModeSetting(vm);\r\n    // Handle debounce changes.\r\n    if (!onValidate || vm.$veeDebounce !== vm.debounce) {\r\n        onValidate = debounce(function () {\r\n            vm.$nextTick(function () {\r\n                if (!vm._pendingReset) {\r\n                    triggerThreadSafeValidation(vm);\r\n                }\r\n                vm._pendingReset = false;\r\n            });\r\n        }, mode.debounce || vm.debounce);\r\n        // Cache the handler so we don't create it each time.\r\n        vm.$veeHandler = onValidate;\r\n        // cache the debounce value so we detect if it was changed.\r\n        vm.$veeDebounce = vm.debounce;\r\n    }\r\n    return { onInput: onInput, onBlur: onBlur, onValidate: onValidate };\r\n}\r\n// Adds all plugin listeners to the vnode.\r\nfunction addListeners(vm, node) {\r\n    var value = findValue(node);\r\n    // cache the input eventName.\r\n    vm._inputEventName = vm._inputEventName || getInputEventName(node, findModel(node));\r\n    onRenderUpdate(vm, value === null || value === void 0 ? void 0 : value.value);\r\n    var _a = createCommonHandlers(vm), onInput = _a.onInput, onBlur = _a.onBlur, onValidate = _a.onValidate;\r\n    addVNodeListener(node, vm._inputEventName, onInput);\r\n    addVNodeListener(node, 'blur', onBlur);\r\n    // add the validation listeners.\r\n    vm.normalizedEvents.forEach(function (evt) {\r\n        addVNodeListener(node, evt, onValidate);\r\n    });\r\n    vm.initialized = true;\r\n}\n\nvar PROVIDER_COUNTER = 0;\r\nfunction data() {\r\n    var errors = [];\r\n    var fieldName = '';\r\n    var defaultValues = {\r\n        errors: errors,\r\n        value: undefined,\r\n        initialized: false,\r\n        initialValue: undefined,\r\n        flags: createFlags(),\r\n        failedRules: {},\r\n        isActive: true,\r\n        fieldName: fieldName,\r\n        id: ''\r\n    };\r\n    return defaultValues;\r\n}\r\nvar ValidationProvider = Vue.extend({\r\n    inject: {\r\n        $_veeObserver: {\r\n            from: '$_veeObserver',\r\n            default: function () {\r\n                if (!this.$vnode.context.$_veeObserver) {\r\n                    this.$vnode.context.$_veeObserver = createObserver();\r\n                }\r\n                return this.$vnode.context.$_veeObserver;\r\n            }\r\n        }\r\n    },\r\n    props: {\r\n        vid: {\r\n            type: String,\r\n            default: ''\r\n        },\r\n        name: {\r\n            type: String,\r\n            default: null\r\n        },\r\n        mode: {\r\n            type: [String, Function],\r\n            default: function () {\r\n                return getConfig().mode;\r\n            }\r\n        },\r\n        rules: {\r\n            type: [Object, String],\r\n            default: null\r\n        },\r\n        immediate: {\r\n            type: Boolean,\r\n            default: false\r\n        },\r\n        bails: {\r\n            type: Boolean,\r\n            default: function () { return getConfig().bails; }\r\n        },\r\n        skipIfEmpty: {\r\n            type: Boolean,\r\n            default: function () { return getConfig().skipOptional; }\r\n        },\r\n        debounce: {\r\n            type: Number,\r\n            default: 0\r\n        },\r\n        tag: {\r\n            type: String,\r\n            default: 'span'\r\n        },\r\n        slim: {\r\n            type: Boolean,\r\n            default: false\r\n        },\r\n        disabled: {\r\n            type: Boolean,\r\n            default: false\r\n        },\r\n        customMessages: {\r\n            type: Object,\r\n            default: function () {\r\n                return {};\r\n            }\r\n        }\r\n    },\r\n    watch: {\r\n        rules: {\r\n            deep: true,\r\n            handler: function (val, oldVal) {\r\n                this._needsValidation = !isEqual(val, oldVal);\r\n            }\r\n        }\r\n    },\r\n    data: data,\r\n    computed: {\r\n        fieldDeps: function () {\r\n            var _this = this;\r\n            return Object.keys(this.normalizedRules).reduce(function (acc, rule) {\r\n                var deps = extractLocators(_this.normalizedRules[rule]).map(function (dep) { return dep.__locatorRef; });\r\n                acc.push.apply(acc, deps);\r\n                deps.forEach(function (depName) {\r\n                    watchCrossFieldDep(_this, depName);\r\n                });\r\n                return acc;\r\n            }, []);\r\n        },\r\n        normalizedEvents: function () {\r\n            var _this = this;\r\n            var on = computeModeSetting(this).on;\r\n            return (on || []).map(function (e) {\r\n                if (e === 'input') {\r\n                    return _this._inputEventName;\r\n                }\r\n                return e;\r\n            });\r\n        },\r\n        isRequired: function () {\r\n            var rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);\r\n            var isRequired = Object.keys(rules).some(RuleContainer.isRequireRule);\r\n            this.flags.required = !!isRequired;\r\n            return isRequired;\r\n        },\r\n        classes: function () {\r\n            var names = getConfig().classes;\r\n            return computeClassObj(names, this.flags);\r\n        },\r\n        normalizedRules: function () {\r\n            return normalizeRules(this.rules);\r\n        }\r\n    },\r\n    mounted: function () {\r\n        var _this = this;\r\n        var onLocaleChanged = function () {\r\n            if (!_this.flags.validated) {\r\n                return;\r\n            }\r\n            var regenerateMap = _this._regenerateMap;\r\n            if (regenerateMap) {\r\n                var errors_1 = [];\r\n                var failedRules_1 = {};\r\n                Object.keys(regenerateMap).forEach(function (rule) {\r\n                    var msg = regenerateMap[rule]();\r\n                    errors_1.push(msg);\r\n                    failedRules_1[rule] = msg;\r\n                });\r\n                _this.applyResult({ errors: errors_1, failedRules: failedRules_1, regenerateMap: regenerateMap });\r\n                return;\r\n            }\r\n            _this.validate();\r\n        };\r\n        EVENT_BUS.$on('change:locale', onLocaleChanged);\r\n        this.$on('hook:beforeDestroy', function () {\r\n            EVENT_BUS.$off('change:locale', onLocaleChanged);\r\n        });\r\n    },\r\n    render: function (h) {\r\n        var _a, _b, _c, _d;\r\n        this.registerField();\r\n        var ctx = createValidationCtx(this);\r\n        var children = normalizeChildren(this, ctx);\r\n        var input = findInputNode(children);\r\n        if (!input) {\r\n            // Silent exit if no input was found.\r\n            return this.slim && children.length <= 1 ? children[0] : h(this.tag, children);\r\n        }\r\n        var resolved = getConfig().useConstraintAttrs ? resolveRules(input) : {};\r\n        if (!isEqual(this._resolvedRules, resolved)) {\r\n            this._needsValidation = true;\r\n        }\r\n        if (isHTMLNode(input)) {\r\n            this.fieldName = ((_b = (_a = input.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.name) || ((_d = (_c = input.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d.id);\r\n        }\r\n        this._resolvedRules = resolved;\r\n        addListeners(this, input);\r\n        return this.slim && children.length <= 1 ? children[0] : h(this.tag, children);\r\n    },\r\n    beforeDestroy: function () {\r\n        // cleanup reference.\r\n        this.$_veeObserver.unobserve(this.id);\r\n    },\r\n    activated: function () {\r\n        this.isActive = true;\r\n    },\r\n    deactivated: function () {\r\n        this.isActive = false;\r\n    },\r\n    methods: {\r\n        setFlags: function (flags) {\r\n            var _this = this;\r\n            Object.keys(flags).forEach(function (flag) {\r\n                _this.flags[flag] = flags[flag];\r\n            });\r\n        },\r\n        syncValue: function (v) {\r\n            var value = normalizeEventValue(v);\r\n            this.value = value;\r\n            this.flags.changed = this.initialValue !== value;\r\n        },\r\n        reset: function () {\r\n            var _this = this;\r\n            this.errors = [];\r\n            this.initialValue = this.value;\r\n            var flags = createFlags();\r\n            flags.required = this.isRequired;\r\n            this.setFlags(flags);\r\n            this.failedRules = {};\r\n            this.validateSilent();\r\n            this._pendingValidation = undefined;\r\n            this._pendingReset = true;\r\n            setTimeout(function () {\r\n                _this._pendingReset = false;\r\n            }, this.debounce);\r\n        },\r\n        validate: function () {\r\n            var args = [];\r\n            for (var _i = 0; _i < arguments.length; _i++) {\r\n                args[_i] = arguments[_i];\r\n            }\r\n            return __awaiter(this, void 0, void 0, function () {\r\n                return __generator(this, function (_a) {\r\n                    if (args.length > 0) {\r\n                        this.syncValue(args[0]);\r\n                    }\r\n                    return [2 /*return*/, triggerThreadSafeValidation(this)];\r\n                });\r\n            });\r\n        },\r\n        validateSilent: function () {\r\n            return __awaiter(this, void 0, void 0, function () {\r\n                var rules, result;\r\n                return __generator(this, function (_a) {\r\n                    switch (_a.label) {\r\n                        case 0:\r\n                            this.setFlags({ pending: true });\r\n                            rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);\r\n                            Object.defineProperty(rules, '_$$isNormalized', {\r\n                                value: true,\r\n                                writable: false,\r\n                                enumerable: false,\r\n                                configurable: false\r\n                            });\r\n                            return [4 /*yield*/, validate(this.value, rules, __assign(__assign({ name: this.name || this.fieldName }, createLookup(this)), { bails: this.bails, skipIfEmpty: this.skipIfEmpty, isInitial: !this.initialized, customMessages: this.customMessages }))];\r\n                        case 1:\r\n                            result = _a.sent();\r\n                            this.setFlags({\r\n                                pending: false,\r\n                                valid: result.valid,\r\n                                invalid: !result.valid\r\n                            });\r\n                            return [2 /*return*/, result];\r\n                    }\r\n                });\r\n            });\r\n        },\r\n        setErrors: function (errors) {\r\n            this.applyResult({ errors: errors, failedRules: {} });\r\n        },\r\n        applyResult: function (_a) {\r\n            var errors = _a.errors, failedRules = _a.failedRules, regenerateMap = _a.regenerateMap;\r\n            this.errors = errors;\r\n            this._regenerateMap = regenerateMap;\r\n            this.failedRules = __assign({}, (failedRules || {}));\r\n            this.setFlags({\r\n                valid: !errors.length,\r\n                passed: !errors.length,\r\n                invalid: !!errors.length,\r\n                failed: !!errors.length,\r\n                validated: true,\r\n                changed: this.value !== this.initialValue\r\n            });\r\n        },\r\n        registerField: function () {\r\n            updateRenderingContextRefs(this);\r\n        }\r\n    }\r\n});\r\nfunction computeClassObj(names, flags) {\r\n    var acc = {};\r\n    var keys = Object.keys(flags);\r\n    var length = keys.length;\r\n    var _loop_1 = function (i) {\r\n        var flag = keys[i];\r\n        var className = (names && names[flag]) || flag;\r\n        var value = flags[flag];\r\n        if (isNullOrUndefined(value)) {\r\n            return \"continue\";\r\n        }\r\n        if ((flag === 'valid' || flag === 'invalid') && !flags.validated) {\r\n            return \"continue\";\r\n        }\r\n        if (typeof className === 'string') {\r\n            acc[className] = value;\r\n        }\r\n        else if (Array.isArray(className)) {\r\n            className.forEach(function (cls) {\r\n                acc[cls] = value;\r\n            });\r\n        }\r\n    };\r\n    for (var i = 0; i < length; i++) {\r\n        _loop_1(i);\r\n    }\r\n    return acc;\r\n}\r\nfunction createLookup(vm) {\r\n    var providers = vm.$_veeObserver.refs;\r\n    var reduced = {\r\n        names: {},\r\n        values: {}\r\n    };\r\n    return vm.fieldDeps.reduce(function (acc, depName) {\r\n        if (!providers[depName]) {\r\n            return acc;\r\n        }\r\n        acc.values[depName] = providers[depName].value;\r\n        acc.names[depName] = providers[depName].name;\r\n        return acc;\r\n    }, reduced);\r\n}\r\nfunction extractId(vm) {\r\n    if (vm.vid) {\r\n        return vm.vid;\r\n    }\r\n    if (vm.name) {\r\n        return vm.name;\r\n    }\r\n    if (vm.id) {\r\n        return vm.id;\r\n    }\r\n    if (vm.fieldName) {\r\n        return vm.fieldName;\r\n    }\r\n    PROVIDER_COUNTER++;\r\n    return \"_vee_\" + PROVIDER_COUNTER;\r\n}\r\nfunction updateRenderingContextRefs(vm) {\r\n    var providedId = extractId(vm);\r\n    var id = vm.id;\r\n    // Nothing has changed.\r\n    if (!vm.isActive || (id === providedId && vm.$_veeObserver.refs[id])) {\r\n        return;\r\n    }\r\n    // vid was changed.\r\n    if (id !== providedId && vm.$_veeObserver.refs[id] === vm) {\r\n        vm.$_veeObserver.unobserve(id);\r\n    }\r\n    vm.id = providedId;\r\n    vm.$_veeObserver.observe(vm);\r\n}\r\nfunction createObserver() {\r\n    return {\r\n        refs: {},\r\n        observe: function (vm) {\r\n            this.refs[vm.id] = vm;\r\n        },\r\n        unobserve: function (id) {\r\n            delete this.refs[id];\r\n        }\r\n    };\r\n}\r\nfunction watchCrossFieldDep(ctx, depName, withHooks) {\r\n    if (withHooks === void 0) { withHooks = true; }\r\n    var providers = ctx.$_veeObserver.refs;\r\n    if (!ctx._veeWatchers) {\r\n        ctx._veeWatchers = {};\r\n    }\r\n    if (!providers[depName] && withHooks) {\r\n        return ctx.$once('hook:mounted', function () {\r\n            watchCrossFieldDep(ctx, depName, false);\r\n        });\r\n    }\r\n    if (!isCallable(ctx._veeWatchers[depName]) && providers[depName]) {\r\n        ctx._veeWatchers[depName] = providers[depName].$watch('value', function () {\r\n            if (ctx.flags.validated) {\r\n                ctx._needsValidation = true;\r\n                ctx.validate();\r\n            }\r\n        });\r\n    }\r\n}\n\nvar FLAGS_STRATEGIES = [\r\n    ['pristine', 'every'],\r\n    ['dirty', 'some'],\r\n    ['touched', 'some'],\r\n    ['untouched', 'every'],\r\n    ['valid', 'every'],\r\n    ['invalid', 'some'],\r\n    ['pending', 'some'],\r\n    ['validated', 'every'],\r\n    ['changed', 'some'],\r\n    ['passed', 'every'],\r\n    ['failed', 'some']\r\n];\r\nvar OBSERVER_COUNTER = 0;\r\nfunction data$1() {\r\n    var refs = {};\r\n    var errors = {};\r\n    var flags = createObserverFlags();\r\n    var fields = {};\r\n    // FIXME: Not sure of this one can be typed, circular type reference.\r\n    var observers = [];\r\n    return {\r\n        id: '',\r\n        refs: refs,\r\n        observers: observers,\r\n        errors: errors,\r\n        flags: flags,\r\n        fields: fields\r\n    };\r\n}\r\nfunction provideSelf() {\r\n    return {\r\n        $_veeObserver: this\r\n    };\r\n}\r\nvar ValidationObserver = Vue.extend({\r\n    name: 'ValidationObserver',\r\n    provide: provideSelf,\r\n    inject: {\r\n        $_veeObserver: {\r\n            from: '$_veeObserver',\r\n            default: function () {\r\n                if (!this.$vnode.context.$_veeObserver) {\r\n                    return null;\r\n                }\r\n                return this.$vnode.context.$_veeObserver;\r\n            }\r\n        }\r\n    },\r\n    props: {\r\n        tag: {\r\n            type: String,\r\n            default: 'span'\r\n        },\r\n        vid: {\r\n            type: String,\r\n            default: function () {\r\n                return \"obs_\" + OBSERVER_COUNTER++;\r\n            }\r\n        },\r\n        slim: {\r\n            type: Boolean,\r\n            default: false\r\n        },\r\n        disabled: {\r\n            type: Boolean,\r\n            default: false\r\n        }\r\n    },\r\n    data: data$1,\r\n    created: function () {\r\n        var _this = this;\r\n        this.id = this.vid;\r\n        register(this);\r\n        var onChange = debounce(function (_a) {\r\n            var errors = _a.errors, flags = _a.flags, fields = _a.fields;\r\n            _this.errors = errors;\r\n            _this.flags = flags;\r\n            _this.fields = fields;\r\n        }, 16);\r\n        this.$watch(computeObserverState, onChange);\r\n    },\r\n    activated: function () {\r\n        register(this);\r\n    },\r\n    deactivated: function () {\r\n        unregister(this);\r\n    },\r\n    beforeDestroy: function () {\r\n        unregister(this);\r\n    },\r\n    render: function (h) {\r\n        var children = normalizeChildren(this, prepareSlotProps(this));\r\n        return this.slim && children.length <= 1 ? children[0] : h(this.tag, { on: this.$listeners }, children);\r\n    },\r\n    methods: {\r\n        observe: function (subscriber, kind) {\r\n            var _a;\r\n            if (kind === void 0) { kind = 'provider'; }\r\n            if (kind === 'observer') {\r\n                this.observers.push(subscriber);\r\n                return;\r\n            }\r\n            this.refs = __assign(__assign({}, this.refs), (_a = {}, _a[subscriber.id] = subscriber, _a));\r\n        },\r\n        unobserve: function (id, kind) {\r\n            if (kind === void 0) { kind = 'provider'; }\r\n            if (kind === 'provider') {\r\n                var provider = this.refs[id];\r\n                if (!provider) {\r\n                    return;\r\n                }\r\n                this.$delete(this.refs, id);\r\n                return;\r\n            }\r\n            var idx = findIndex(this.observers, function (o) { return o.id === id; });\r\n            if (idx !== -1) {\r\n                this.observers.splice(idx, 1);\r\n            }\r\n        },\r\n        validate: function (_a) {\r\n            var _b = (_a === void 0 ? {} : _a).silent, silent = _b === void 0 ? false : _b;\r\n            return __awaiter(this, void 0, void 0, function () {\r\n                var results;\r\n                return __generator(this, function (_c) {\r\n                    switch (_c.label) {\r\n                        case 0: return [4 /*yield*/, Promise.all(__spreadArrays(values(this.refs)\r\n                                .filter(function (r) { return !r.disabled; })\r\n                                .map(function (ref) { return ref[silent ? 'validateSilent' : 'validate']().then(function (r) { return r.valid; }); }), this.observers.filter(function (o) { return !o.disabled; }).map(function (obs) { return obs.validate({ silent: silent }); })))];\r\n                        case 1:\r\n                            results = _c.sent();\r\n                            return [2 /*return*/, results.every(function (r) { return r; })];\r\n                    }\r\n                });\r\n            });\r\n        },\r\n        handleSubmit: function (cb) {\r\n            return __awaiter(this, void 0, void 0, function () {\r\n                var isValid;\r\n                return __generator(this, function (_a) {\r\n                    switch (_a.label) {\r\n                        case 0: return [4 /*yield*/, this.validate()];\r\n                        case 1:\r\n                            isValid = _a.sent();\r\n                            if (!isValid || !cb) {\r\n                                return [2 /*return*/];\r\n                            }\r\n                            return [2 /*return*/, cb()];\r\n                    }\r\n                });\r\n            });\r\n        },\r\n        reset: function () {\r\n            return __spreadArrays(values(this.refs), this.observers).forEach(function (ref) { return ref.reset(); });\r\n        },\r\n        setErrors: function (errors) {\r\n            var _this = this;\r\n            Object.keys(errors).forEach(function (key) {\r\n                var provider = _this.refs[key];\r\n                if (!provider)\r\n                    return;\r\n                var errorArr = errors[key] || [];\r\n                errorArr = typeof errorArr === 'string' ? [errorArr] : errorArr;\r\n                provider.setErrors(errorArr);\r\n            });\r\n            this.observers.forEach(function (observer) {\r\n                observer.setErrors(errors);\r\n            });\r\n        }\r\n    }\r\n});\r\nfunction unregister(vm) {\r\n    if (vm.$_veeObserver) {\r\n        vm.$_veeObserver.unobserve(vm.id, 'observer');\r\n    }\r\n}\r\nfunction register(vm) {\r\n    if (vm.$_veeObserver) {\r\n        vm.$_veeObserver.observe(vm, 'observer');\r\n    }\r\n}\r\nfunction prepareSlotProps(vm) {\r\n    return __assign(__assign({}, vm.flags), { errors: vm.errors, fields: vm.fields, validate: vm.validate, passes: vm.handleSubmit, handleSubmit: vm.handleSubmit, reset: vm.reset });\r\n}\r\n// Creates a modified version of validation flags\r\nfunction createObserverFlags() {\r\n    return __assign(__assign({}, createFlags()), { valid: true, invalid: false });\r\n}\r\nfunction computeObserverState() {\r\n    var vms = __spreadArrays(values(this.refs), this.observers);\r\n    var errors = {};\r\n    var flags = createObserverFlags();\r\n    var fields = {};\r\n    var length = vms.length;\r\n    for (var i = 0; i < length; i++) {\r\n        var vm = vms[i];\r\n        // validation provider\r\n        if (Array.isArray(vm.errors)) {\r\n            errors[vm.id] = vm.errors;\r\n            fields[vm.id] = __assign({ id: vm.id, name: vm.name, failedRules: vm.failedRules }, vm.flags);\r\n            continue;\r\n        }\r\n        // Nested observer, merge errors and fields\r\n        errors = __assign(__assign({}, errors), vm.errors);\r\n        fields = __assign(__assign({}, fields), vm.fields);\r\n    }\r\n    FLAGS_STRATEGIES.forEach(function (_a) {\r\n        var flag = _a[0], method = _a[1];\r\n        flags[flag] = vms[method](function (vm) { return vm.flags[flag]; });\r\n    });\r\n    return { errors: errors, flags: flags, fields: fields };\r\n}\n\nfunction withValidation(component, mapProps) {\r\n    if (mapProps === void 0) { mapProps = identity; }\r\n    var _a;\r\n    var options = 'options' in component ? component.options : component;\r\n    var providerOpts = ValidationProvider.options;\r\n    var hoc = {\r\n        name: (options.name || 'AnonymousHoc') + \"WithValidation\",\r\n        props: __assign({}, providerOpts.props),\r\n        data: providerOpts.data,\r\n        computed: __assign({}, providerOpts.computed),\r\n        methods: __assign({}, providerOpts.methods),\r\n        beforeDestroy: providerOpts.beforeDestroy,\r\n        inject: providerOpts.inject\r\n    };\r\n    var eventName = ((_a = options === null || options === void 0 ? void 0 : options.model) === null || _a === void 0 ? void 0 : _a.event) || 'input';\r\n    hoc.render = function (h) {\r\n        var _a;\r\n        this.registerField();\r\n        var vctx = createValidationCtx(this);\r\n        var listeners = __assign({}, this.$listeners);\r\n        var model = findModel(this.$vnode);\r\n        this._inputEventName = this._inputEventName || getInputEventName(this.$vnode, model);\r\n        var value = findValue(this.$vnode);\r\n        onRenderUpdate(this, value === null || value === void 0 ? void 0 : value.value);\r\n        var _b = createCommonHandlers(this), onInput = _b.onInput, onBlur = _b.onBlur, onValidate = _b.onValidate;\r\n        mergeVNodeListeners(listeners, eventName, onInput);\r\n        mergeVNodeListeners(listeners, 'blur', onBlur);\r\n        this.normalizedEvents.forEach(function (evt) {\r\n            mergeVNodeListeners(listeners, evt, onValidate);\r\n        });\r\n        // Props are any attrs not associated with ValidationProvider Plus the model prop.\r\n        // WARNING: Accidental prop overwrite will probably happen.\r\n        var prop = (findModelConfig(this.$vnode) || { prop: 'value' }).prop;\r\n        var props = __assign(__assign(__assign({}, this.$attrs), (_a = {}, _a[prop] = model === null || model === void 0 ? void 0 : model.value, _a)), mapProps(vctx));\r\n        return h(options, {\r\n            attrs: this.$attrs,\r\n            props: props,\r\n            on: listeners\r\n        }, normalizeSlots(this.$slots, this.$vnode.context));\r\n    };\r\n    return hoc;\r\n}\n\nvar version = '3.3.0';\n\nexport { ValidationObserver, ValidationProvider, configure, extend, localeChanged, localize, normalizeRules, setInteractionMode, validate, version, withValidation };\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}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\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  return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\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  return keys;\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  return target;\n}"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","ref","attrs","on","$event","preventDefault","onSubmit","tooltips","CompanyFormInfo","_v","_s","$trans","companyForms","model","value","callback","$$v","selectedCompanyForm","expression","_e","TaxPeriodInfo","taxPeriods","selectedTaxPeriod","EmployerContributionsInfo","employerContributions","selectedEmployerContribution","reset","directives","name","rawName","hasImportantDates","hasLoaded","year","isFiltersEmpty","$route","query","companyForm","getSelectedValue","taxPeriod","employerContribution","_l","month","key","Key","jumpTo","getMonthName","monthNumber","importantDates","filter","x","importantDate","id","day","title","domProps","description","staticRenderFns","rules","mode","scopedSlots","_u","fn","errors","ariaMsg","ariaInput","option","_q","selected","$emit","Value","_b","components","ValidationProvider","data","watch","props","type","default","options","component","apiUrl","searchImportantDates","language","rootFilter","taxPrepaymentInstalment","params","_isNil","API","IMPORTANT_DATE_TYPE_BUSINESS","ValidationObserver","Tooltip","RadioGroup","rootPages","searchedDateType","hideBusinessDateSearch","months","taxPrepaymentInstalments","results","apiError","isLoading","created","localize","computed","isFormDirty","showFilters","filteredMonths","hasMonths","hasCompanyForms","hasTaxPeriods","hasEmployerContributions","hasTaxPrepaymentInstalments","mounted","methods","firstError","setQueryParams","setQueryParam","Object","importantDatesAPI","then","_observer","setTimeout","catch","tryParseInt","event","jump","a11y","_t","ariaLabel","isOpen","toggle","tooltipText","tooltipAriaLabel","$","DESCRIPTORS","global","uncurryThis","hasOwn","isCallable","isPrototypeOf","toString","defineProperty","copyConstructorProperties","NativeSymbol","Symbol","SymbolPrototype","prototype","undefined","EmptyStringDescriptionStore","SymbolWrapper","arguments","length","result","constructor","NATIVE_SYMBOL","String","thisSymbolValue","valueOf","symbolDescriptiveString","regexp","replace","stringSlice","slice","configurable","get","symbol","string","desc","forced","baseIndexOf","arrayIncludes","array","module","exports","arrayIncludesWith","comparator","index","baseFindIndex","baseIsNaN","strictIndexOf","fromIndex","SetCache","cacheHas","createSet","setToArray","LARGE_ARRAY_SIZE","baseUniq","iteratee","includes","isCommon","seen","set","outer","seenIndex","push","Set","noop","INFINITY","values","uniq","addThousandSeparators","param","containsString","input","searchString","position","indexOf","decimalToString","str","formatDecimal","convertStringToDate","dateStr","split","Date","convertDateToString","parseStringToFloat","parseFloat","convertDecimalSeparatorToDot","roundToTwo","Math","round","validate$8","_a","multiple","re","Array","isArray","map","emailStr","trim","every","val","test","params$8","email","validate","isNullOrUndefined","isEmptyArray","arr","validate$o","allowFalse","valid","required","computesRequired","params$h","Vue","currencyValidator","regex","dateFormatValidator","mustNotBeSameDateValidator","other","getTime","castValue","isTarget","cast","dateMustBeGreaterValidator","taxFreePriceValidator","taxable","taxAmount","taxablePriceValidator","taxFree","taxAmountValidator","dateBetweenValidator","minDate","maxDate","message","_value","getDate","getMonth","getFullYear","dateMustBeGreaterOrEqualValidator","financialYearRangeValidator","startDate","financialYearsMaxLenghtInMonths","firstDateOutOfRange","setMonth","financialYearInMonthsValidator","financialYearGivenBeforeRevenue","tilikaudenPituus","totalTurnoverValidator","huojennukseenOikeuttavaLiikevaihto","maxValue","decimalValidator","percentageValidator","dividendResolutionDateNotInFinancialYear","mostRecentFinancialYearStartDate","mostRecentFinancialYearEndDate","dateInFinancialYear","dividendResolutionDateValidator","dateIsGreater","isSameOrFollowingYear","validationMessages","translation","messages","currency","date_format","not_same_date","valid_end_date","valid_financial_year_length","dividend_resolution_date_not_in_financial_year","valid_dividend_resolution_date","valid_dividend_withdrawal_date","valid_decimal","percentage","payment_date_after","valid_share_of_expense","valid_financial_year_in_months","financial_year_given","tax_free_validator","taxable_validator","tax_amount_validator","extend","__assign","assign","t","s","i","n","p","hasOwnProperty","call","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","done","__generator","body","f","y","g","_","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","__spreadArrays","il","r","k","a","j","jl","isNaN","isObject","obj","isEqual","lhs","rhs","RegExp","source","flags","keys","isSpecified","isLocator","__locatorRef","findIndex","arrayLike","predicate","toArray","find","idx","collection","item","from","_copyArray","merge","target","forEach","createFlags","untouched","touched","dirty","pristine","invalid","validated","pending","changed","passed","failed","debounce","wait","token","cancelled","args","_i","later","timeout","clearTimeout","warn","console","interpolate","template","RULES","normalizeSchema","schema","RuleContainer","rule","lazy","isLazy","isRequireRule","getRuleDefinition","ruleName","guardExtend","validator","Error","DEFAULT_CONFIG","defaultMessage","skipOptional","classes","bails","useConstraintAttrs","currentConfig","getConfig","setConfig","newConf","normalizeRules","acc","writable","enumerable","_$$isNormalized","reduce","prev","curr","preserveArrayParams","buildParams","parsedRule","parseRule","provided","ruleSchema","definedParams","lastDefinedParam_1","createLocator","join","castFn","locator","crossTable","extractLocators","shouldBail","skipIfEmpty","field","failedRules","regenerateMap","forceRequired","names","customMessages","_validate","msg","isInitial","shouldSkip","_d","_shouldSkip","_test","error","requireRules","isEmpty","isEmptyAndOptional","isRequired","normalizedValue","values_1","fillTargetValues","_field_","_value_","_rule_","_generateFieldError","ruleTargets","_getRuleTargets","_getUserTargets","userTargets","userMessage","_normalizeMessage","numTargets","ruleConfig","name_1","normalize","aggressive","eager","passive","modes","EVENT_BUS","localeChanged","DICTIONARY","Dictionary","locale","dictionary","container","format","_f","_g","fields","hasRule","isEvent","evt","Event","srcElement","normalizeEventValue","files","_vModifiers","number","valueAsNumber","trimmedValue","isTextInput","vnode","elm","tag","findModel","nonStandardVNodeData","d","findValue","config","findModelConfig","prop","componentOptions","propsData","propsDataWithValue","extractChildren","children","findInputNode","candidate","node","Ctor","mergeVNodeListeners","eventName","handler","fns","invoker","addNativeNodeListener","addComponentNodeListener","listeners","addVNodeListener","getInputEventName","event_1","modifiers","isHTMLNode","resolveTextualRules","pattern","maxlength","max","minlength","min","min_value","Number","max_value","resolveRules","htmlTags","normalizeChildren","context","slotProps","$scopedSlots","$slots","shouldValidate","ctx","_ignoreImmediate","immediate","normalizedEvents","_needsValidation","initialized","createValidationCtx","onRenderUpdate","vm","initialValue","validateNow","triggerThreadSafeValidation","validateSilent","$once","computeModeSetting","compute","pendingPromise","_pendingValidation","applyResult","createCommonHandlers","$veeOnInput","syncValue","setFlags","onInput","$veeOnBlur","onBlur","onValidate","$veeHandler","$veeDebounce","$nextTick","_pendingReset","addListeners","_inputEventName","PROVIDER_COUNTER","fieldName","defaultValues","isActive","inject","$_veeObserver","$vnode","createObserver","vid","Function","Boolean","slim","disabled","deep","oldVal","fieldDeps","_this","normalizedRules","deps","dep","depName","watchCrossFieldDep","_resolvedRules","some","computeClassObj","onLocaleChanged","_regenerateMap","errors_1","failedRules_1","$on","$off","h","registerField","resolved","beforeDestroy","unobserve","activated","deactivated","flag","createLookup","setErrors","updateRenderingContextRefs","_loop_1","className","cls","providers","refs","reduced","extractId","providedId","observe","withHooks","_veeWatchers","$watch","FLAGS_STRATEGIES","OBSERVER_COUNTER","data$1","createObserverFlags","observers","provideSelf","provide","register","onChange","computeObserverState","unregister","prepareSlotProps","$listeners","subscriber","kind","o","splice","provider","$delete","silent","all","obs","handleSubmit","cb","isValid","errorArr","observer","passes","vms","method","_typeof","_toPrimitive","hint","prim","toPrimitive","res","_toPropertyKey","arg","_defineProperty","toPropertyKey","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties"],"sourceRoot":""}