')\r\n .css({ visibility: 'hidden', width: 100, overflow: 'scroll' })\r\n .appendTo('body')\r\n\r\n const widthWithScroll = $('
')\r\n .css({ width: '100%' })\r\n .appendTo($outer)\r\n .outerWidth()\r\n\r\n $outer.remove()\r\n\r\n return 100 - widthWithScroll\r\n}\r\n\r\nexport const events = {\r\n list: [],\r\n add(element, event, func) {\r\n this.list.push({ element, event, func })\r\n element.addEventListener(event, func)\r\n },\r\n remove(element, event, func) {\r\n this.list\r\n .filter(\r\n (x) => x.element === element && x.event === event && x.func === func\r\n )\r\n .forEach((item) => {\r\n element.removeEventListener(item.event, item.func)\r\n })\r\n },\r\n clear(element, event) {\r\n this.list\r\n .filter((x) => x.element === element && x.event === event)\r\n .forEach((item) => {\r\n element.removeEventListener(item.event, item.func)\r\n })\r\n },\r\n replace(element, event, func) {\r\n this.clear(element, event)\r\n this.add(element, event, func)\r\n }\r\n}\r\n","
\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t \r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./settings-document.vue?vue&type=template&id=d6a08290\"\nimport script from \"./settings-document.vue?vue&type=script&lang=js\"\nexport * from \"./settings-document.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","
\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./product-floating-modify.vue?vue&type=template&id=2ffa0a97\"\nimport script from \"./product-floating-modify.vue?vue&type=script&lang=js\"\nexport * from \"./product-floating-modify.vue?vue&type=script&lang=js\"\n\nimport \"./product-floating-modify.vue?vue&type=style&index=0&id=2ffa0a97&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","
\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{ (localData[row] ? localData[row].name : $t('sale.product-classification.no-account-selected')) }}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{ (localData[`${row}Center`] ? localData[`${row}Center`].name : $t('sale.product-classification.no-center-selected')) }}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t cardStateHandler(row, e)\" :tabindex=\"104 + index\">\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./product-classification-modify.vue?vue&type=template&id=30e969ce\"\nimport script from \"./product-classification-modify.vue?vue&type=script&lang=js\"\nexport * from \"./product-classification-modify.vue?vue&type=script&lang=js\"\n\nimport \"./product-classification-modify.vue?vue&type=style&index=0&id=30e969ce&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","
\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{{ settings.data.name }}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
{{ $t('center.f.phone') }}: {{ settings.data.phone }}\r\n\t\t\t\t
{{ $t('center.f.balance') }}: {{ balancePlusText }}\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
{{ settings.data.name }}
\r\n\t\t\t
\r\n\t\t\t\t{{ $t('account.balance') }}: {{ balancePlusText }}
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
{{ $t('center.f.accountingCode') }}: {{ settings.data.accountingCode?.toString() }}
\r\n\t\t\t\t
{{ $t('center.f.name') }}: {{ settings.data.name }}
\r\n\t\t\t\t
{{ $t('center.f.phone') }}: {{ settings.data.phone }}
\r\n\t\t\t\t
{{ $t('center.f.address') }}: {{ settings.data.address }}
\r\n\t\t\t\t
{{ $t('AccountNatures.debtorremaining') }}: {{ !settings.data.balanceRestricted ? formatPrice(settings.data.totalDebit) : '***' }}
\r\n\t\t\t\t
{{ $t('AccountNatures.creditorremaining') }}: {{ !settings.data.balanceRestricted ? formatPrice(settings.data.totalCredit) : '***' }}
\r\n\t\t\t\t
{{ $t(`sale.factor.last-${this.factorType.toLowerCase()}`) }}:
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./floating-center-advance-name.vue?vue&type=template&id=8e434284\"\nimport script from \"./floating-center-advance-name.vue?vue&type=script&lang=js\"\nexport * from \"./floating-center-advance-name.vue?vue&type=script&lang=js\"\n\nimport \"./floating-center-advance-name.vue?vue&type=style&index=0&id=8e434284&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","
\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t 1 ? index.toString().toLocaleDigits() : ''}:`\" :labelSizes=\"{ sm: 4 }\" :dataSizes=\"{ sm: 8 }\">\r\n\t\t\t\t\t\t\t\t\t !!x)\" :options=\"getCenterOptions(index)\" :tabindex=\"108 + index\">\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./warehouse-modify.vue?vue&type=template&id=6ec16558\"\nimport script from \"./warehouse-modify.vue?vue&type=script&lang=js\"\nexport * from \"./warehouse-modify.vue?vue&type=script&lang=js\"\n\nimport \"./warehouse-modify.vue?vue&type=style&index=0&id=6ec16558&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","
\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./factor-bunch.vue?vue&type=template&id=fe241ca6\"\nimport script from \"./factor-bunch.vue?vue&type=script&lang=js\"\nexport * from \"./factor-bunch.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import store from '../store'\r\nimport { i18nInstance } from './localization'\r\nimport { toastInstance } from './toast'\r\nimport MultiCurrencyCell from '~/components/form/multi-currency/multi-currency-cell'\r\nimport validators, { isEmpty, VCustom } from '~/statics/validators.js'\r\nimport MultiCurrencyCellView from '~/components/form/multi-currency/multi-currency-cell-view'\r\nimport Merge from 'lodash/merge'\r\nimport PersianDate from 'persian-date'\r\nimport dialog from '@/plugins/nikan-dialog-plugin'\r\nimport $sc from '@/plugins/shortcut.collection'\r\n\r\nclass FormUtility {\r\n\r\n loadIfPossible(methods = Object, data = Object, toast = Object, navigateOptions = null, additionalBroadcastFields = {}) {\r\n const directionTranslator = (direction) => i18nInstance.global.t(direction.toLowerCase())\r\n const allowedToChangeCodeForms = [\r\n 'product-modify',\r\n 'account-modify',\r\n ]\r\n const checkChangingCode = (isChanged) => {\r\n const localChangeFormAlert = () => {\r\n if (isChanged) {\r\n methods.changedFormAlert(methods.clearForm)\r\n .then((res) => { return })\r\n .catch((err) => { return })\r\n } else {\r\n if (toast.useToast) {\r\n if (navigateOptions)\r\n toastInstance(i18nInstance.global.t('not-found-for-toast-navigation', { type: toast.keyword, direction: directionTranslator(navigateOptions.direction) }), toast.configs)\r\n else\r\n toastInstance(i18nInstance.global.t('not-found-for-toast', { code: data.searchCode, type: toast.keyword }), toast.configs)\r\n }\r\n setTimeout(methods.clearForm, 500)\r\n }\r\n }\r\n\r\n localChangeFormAlert()\r\n // if(isEmpty(data.originalData?.id) || navigateOptions || !methods.formType || (methods.formType && !allowedToChangeCodeForms.includes(methods.formType()))){\r\n // localChangeFormAlert()\r\n // }\r\n // else {\r\n // dialog({\r\n // title: i18nInstance.global.t('do-you-want-to-change-code-title'),\r\n // body: i18nInstance.global.t('do-you-want-to-change-code-body', {\r\n // // fromCode: data.originalData.code,\r\n // code: data.searchCode,\r\n // }),\r\n // buttons: [\r\n // {\r\n // title: i18nInstance.global.t('do-you-want-to-change-code-yes',{fromCode: data.originalData.code,toCode:data.searchCode}),\r\n // shortcut: $sc.find('yes', 'dialog'),\r\n // isPrimary: true,\r\n // handle: (button, page, e) => {\r\n // methods.save()?.then((res)=>methods.clearForm()).catch(()=>{})\r\n // },\r\n // },\r\n // {\r\n // title: i18nInstance.global.t('do-you-want-to-change-code-no'),\r\n // shortcut: $sc.find('no', 'dialog'),\r\n // isPrimary: true,\r\n // handle: (button, page, e) => {\r\n // localChangeFormAlert()\r\n // },\r\n // }\r\n // ],\r\n // }).catch(()=>{})\r\n // }\r\n }\r\n const onCatch = (err) => {\r\n\r\n // Not found and state is edit and its not navigate because in navigate we don't want the form to be cleared\r\n if (err && err.exception && err.exception.response.status == 404 && !methods.retreiveIsEmpty()) {\r\n methods.isDataChanged().then((isChanged) => {\r\n checkChangingCode(isChanged)\r\n })\r\n }\r\n }\r\n\r\n const onSuccess = (response) => {\r\n methods.isDataChanged().then((isChanged) => {\r\n // if(isEmpty(response.id) && (methods.formType && allowedToChangeCodeForms.includes(methods.formType())))\r\n // checkChangingCode(isChanged)\r\n // else\r\n if (isChanged) {\r\n methods.changedFormAlert(methods.fillData, response)\r\n .then((res) => { return })\r\n .catch((err) => { return })\r\n } else {\r\n methods.fillData(response)\r\n }\r\n })\r\n }\r\n\r\n let defaultToastConfigs = { keyword: 'آیتم', useToast: true, configs: { type: 'info' } }\r\n toast = Merge(defaultToastConfigs, toast)\r\n if (data.originalData && data.searchCode === data.originalData.code && (typeof (methods.forceLoad) === 'function' ? !methods.forceLoad() : true))\r\n return\r\n\r\n if (store.getters['formCodes/isCodeInNotFoundArray'](toast.keyword, data.searchCode, additionalBroadcastFields)) {\r\n onCatch({ exception: { response: { status: 404 } } })\r\n return\r\n }\r\n\r\n if (data.searchCode == 0) {\r\n methods.isDataChanged().then((isChanged) => {\r\n if (isChanged) {\r\n methods.changedFormAlert(methods.clearForm)\r\n .then((res) => { return })\r\n .catch((err) => { return })\r\n } else {\r\n methods.clearForm()\r\n }\r\n })\r\n return\r\n }\r\n\r\n if (methods.navigate && navigateOptions)\r\n methods.navigate(navigateOptions.direction, navigateOptions.id).then(response => {\r\n // test error for not found with response code 200\r\n if (!response)\r\n throw new Error({ exception: { response: { status: 404 } } })\r\n onSuccess(response)\r\n })\r\n .catch(err => { // Not found\r\n onCatch(err)\r\n return err\r\n })\r\n\r\n else {\r\n methods.getData(data).then(response => { // Transaction found and state is either new or edit\r\n onSuccess(response)\r\n })\r\n .catch(err => { // Not found\r\n onCatch(err)\r\n store.dispatch('socket/broadcastItemNotExist', { form: toast.keyword, code: data.searchCode, additionalBroadcastFields })\r\n return err\r\n })\r\n }\r\n }\r\n\r\n getTodaysDate(splitter = '-', type = 'gregorian') {\r\n const differenceInMilliSecond = store.getters['appContext/getClientDifferenceDateTimeByServer']\r\n let date = new Date(Date.now() + differenceInMilliSecond)\r\n var dd = String(date.getDate()).padStart(2, '0')\r\n var mm = String(date.getMonth() + 1).padStart(2, '0') //January is 0!\r\n var hh = String(date.getHours()).padStart(2, '0')\r\n var minu = String(date.getMinutes()).padStart(2, '0')\r\n var ss = String(date.getSeconds()).padStart(2, '0')\r\n var yyyy = date.getFullYear()\r\n let final = `${yyyy}${splitter}${mm}${splitter}${dd}T${hh}:${minu}:${ss}`\r\n if (type === 'solar') {\r\n final = new PersianDate(diff).format(`YYYY${splitter}MM${splitter}DDThh:MM:ss`).toString().toEnglishDigits()\r\n }\r\n return final\r\n }\r\n\r\n setCurrencyColumns(list, tableOptions, mode, isAgGrid = false) {\r\n let companyCurrencyLength = store.getters['currencies/companyCurrencies'].filter(\r\n (x) => x.isEnabled\r\n ).length\r\n let columns = tableOptions.columns ? tableOptions.columns : tableOptions.columnDefs\r\n let currentPaymentHasCurrency = false\r\n if (list && list.length > 0) {\r\n list.map((x) => {\r\n if (x.currency && x.currency.id != emptyId)\r\n currentPaymentHasCurrency = true\r\n })\r\n }\r\n\r\n if (companyCurrencyLength < 2 && !currentPaymentHasCurrency) {\r\n columns = columns.filter(\r\n (x) => !x.currency\r\n )\r\n return\r\n }\r\n\r\n if (columns.filter((x) => !x.currency).length == 3)\r\n return\r\n\r\n columns = columns.filter(\r\n (x) => !x.currency\r\n )\r\n let start = columns.findIndex((x) => x.name === 'currencyValues' || x.field === 'currencyValues')\r\n let tableCols\r\n if (mode == 'view') tableCols = this.retreiveCurrencyColsView(tableOptions.columnDefs)\r\n else if (mode == 'editable') tableCols = this.retreiveCurrencyColsEditable(isAgGrid)\r\n columns.splice(start + 1, 0, ...tableCols)\r\n tableOptions.columns ? tableOptions.columns = columns : tableOptions.columnDefs = columns\r\n }\r\n\r\n retreiveCurrencyColsView(agGridColumns) {\r\n if (agGridColumns)\r\n return [\r\n {\r\n field: 'currencyValues',\r\n contentType: 'enum',\r\n headerName: i18nInstance.global.t('document.f.currency'),\r\n width: 100,\r\n valueFormatter: (data) => {\r\n return Array.isArray(data.value) ? data.value.map(x => x?.currency?.name).join(' | ') : ''\r\n },\r\n // cellRenderer: MultiCurrencyCellView,\r\n // cellRendererParams : (data)=>{\r\n // return {\r\n // options: {\r\n // targetValuePropertyName: 'currency',\r\n // // value: data.value\r\n // },\r\n // }\r\n // },\r\n aggFunc: 'count'\r\n },\r\n {\r\n field: 'currencyValues',\r\n headerName: i18nInstance.global.t('document.f.currencyRate'),\r\n width: 100,\r\n contentType: 'enum',\r\n valueFormatter: (data) => {\r\n return Array.isArray(data.value) ? data.value.map(x => x.currencyRate.toString().toPriceFormat()).join(' | ') : ''\r\n },\r\n // cellRenderer: MultiCurrencyCellView,\r\n // cellRendererParams : {\r\n // options: {\r\n // targetValuePropertyName: 'currencyRate',\r\n // }\r\n // },\r\n },\r\n {\r\n field: 'currencyValues',\r\n headerName: i18nInstance.global.t('trs.transaction.f.currency-price'),\r\n width: 100,\r\n contentType: 'enum',\r\n valueFormatter: (data) => {\r\n return Array.isArray(data.value) ? data.value.map(x => x.debitCurrency.toString().toPriceFormat()).join(' | ') : ''\r\n },\r\n // cellRenderer: MultiCurrencyCellView,\r\n // cellRendererParams : {\r\n // options: {\r\n // targetValuePropertyName: 'debitCurrency',\r\n // }\r\n // },\r\n },\r\n ]\r\n else\r\n return [\r\n {\r\n name: 'currencyValues',\r\n type: 'text',\r\n currency: true,\r\n title: i18nInstance.global.t('document.f.currency'),\r\n width: 100,\r\n editable: false,\r\n search: {\r\n searchFields: ['currency.name'],\r\n },\r\n view: (row, col) => {\r\n return {\r\n component: MultiCurrencyCellView,\r\n options: {\r\n targetValuePropertyName: 'currency',\r\n },\r\n }\r\n },\r\n leaving: true,\r\n pinned: false,\r\n entering: false,\r\n },\r\n {\r\n name: 'currencyValues',\r\n currency: true,\r\n title: i18nInstance.global.t('document.f.currencyRate'),\r\n width: 100,\r\n editable: false,\r\n search: {\r\n searchFields: ['currencyRate'],\r\n },\r\n view: (row, col) => {\r\n return {\r\n component: MultiCurrencyCellView,\r\n options: {\r\n targetValuePropertyName: 'currencyRate',\r\n },\r\n }\r\n },\r\n leaving: true,\r\n pinned: false,\r\n entering: false\r\n },\r\n {\r\n name: 'currencyValues',\r\n currency: true,\r\n title: i18nInstance.global.t('trs.transaction.f.currency-price'),\r\n width: 100,\r\n editable: false,\r\n search: {\r\n searchFields: ['debitCurrency'],\r\n },\r\n view: (row, col) => {\r\n return {\r\n component: MultiCurrencyCellView,\r\n options: {\r\n targetValuePropertyName: 'debitCurrency',\r\n },\r\n }\r\n },\r\n leaving: true,\r\n pinned: false,\r\n entering: false,\r\n },\r\n ]\r\n }\r\n\r\n retreiveCurrencyColsEditable(isAgGrid) {\r\n if (isAgGrid)\r\n return [\r\n {\r\n field: 'currencyValues',\r\n headerName: i18nInstance.global.t('document.f.currency'),\r\n width: 100,\r\n isEditable: true,\r\n type: 'multiCurrency',\r\n cellDataType: 'object',\r\n cellRendererParams: {\r\n options: {\r\n targetValuePropertyName: 'currency',\r\n },\r\n },\r\n cellEditorParams: {\r\n options: () => {\r\n return {\r\n targetValuePropertyName: 'currency',\r\n }\r\n }\r\n },\r\n validators: validators(\r\n new VCustom(\r\n (currencyValues, row) => {\r\n if (\r\n (!row.accountTheir || !row.accountTheir.acceptsCurrency) &&\r\n (!row.accountOur || !row.accountOur.acceptsCurrency)\r\n )\r\n return true\r\n\r\n if (!currencyValues || !currencyValues.length) return false\r\n\r\n let allZero =\r\n currencyValues.filter((x) => !x.currency).length === 0 &&\r\n currencyValues.filter((x) => x.debit > 0).length === 0\r\n if (allZero) return false\r\n\r\n return true\r\n },\r\n () => {\r\n return i18nInstance.global.t('document.m.account-required-currency')\r\n }\r\n )\r\n ),\r\n },\r\n {\r\n field: 'currencyValues',\r\n headerName: i18nInstance.global.t('document.f.currencyRate'),\r\n width: 100,\r\n type: 'multiCurrency',\r\n cellDataType: 'object',\r\n isEditable: true,\r\n cellRendererParams: {\r\n options: {\r\n targetValuePropertyName: 'currencyRate',\r\n },\r\n },\r\n cellEditorParams: {\r\n options: () => {\r\n return {\r\n targetValuePropertyName: 'currencyRate',\r\n }\r\n }\r\n },\r\n },\r\n {\r\n field: 'currencyValues',\r\n headerName: i18nInstance.global.t('trs.transaction.f.currency-price'),\r\n width: 100,\r\n type: 'multiCurrency',\r\n cellDataType: 'object',\r\n isEditable: true,\r\n cellRendererParams: {\r\n options: {\r\n targetValuePropertyName: 'debitCurrency',\r\n },\r\n },\r\n cellEditorParams: {\r\n options: () => {\r\n return {\r\n targetValuePropertyName: 'debitCurrency',\r\n }\r\n }\r\n },\r\n validators: validators(\r\n new VCustom(\r\n (currencyValues, row) => {\r\n if (\r\n (!row.accountTheir || !row.accountTheir.acceptsCurrency) &&\r\n (!row.accountOur || !row.accountOur.acceptsCurrency)\r\n )\r\n return true\r\n\r\n if (!currencyValues || !currencyValues.length) return false\r\n\r\n let allZero =\r\n currencyValues.filter((x) => x.debitCurrency > 0).length === 0\r\n && currencyValues.filter((x) => x.debit > 0).length > 0\r\n if (allZero) return false\r\n\r\n return true\r\n },\r\n () => {\r\n return i18nInstance.global.t('document.m.account-required-currency')\r\n }\r\n )\r\n ),\r\n },\r\n ]\r\n else\r\n return [\r\n {\r\n name: 'currencyValues',\r\n currency: true,\r\n title: i18nInstance.global.t('document.f.currency'),\r\n width: 100,\r\n editable: true,\r\n view: (row, col) => {\r\n return {\r\n component: MultiCurrencyCellView,\r\n options: {\r\n targetValuePropertyName: 'currency',\r\n },\r\n }\r\n },\r\n edit: {\r\n component: MultiCurrencyCell,\r\n options: {\r\n targetValuePropertyName: 'currency',\r\n },\r\n },\r\n validators: validators(\r\n new VCustom(\r\n (currencyValues, row) => {\r\n if (\r\n (!row.accountTheir || !row.accountTheir.acceptsCurrency) &&\r\n (!row.accountOur || !row.accountOur.acceptsCurrency)\r\n )\r\n return true\r\n\r\n if (!currencyValues || !currencyValues.length) return false\r\n\r\n let allZero =\r\n currencyValues.filter((x) => !x.currency).length === 0 &&\r\n currencyValues.filter((x) => x.debit > 0).length === 0\r\n if (allZero) return false\r\n\r\n return true\r\n },\r\n () => {\r\n return i18nInstance.global.t('document.m.account-required-currency')\r\n }\r\n )\r\n ),\r\n leaving: (row) => {\r\n return true\r\n },\r\n pinned: false,\r\n entering: (row) => {\r\n return true\r\n },\r\n },\r\n {\r\n name: 'currencyValues',\r\n currency: true,\r\n title: i18nInstance.global.t('document.f.currencyRate'),\r\n width: 100,\r\n editable: true,\r\n view: (row, col) => {\r\n return {\r\n component: MultiCurrencyCellView,\r\n options: {\r\n targetValuePropertyName: 'currencyRate',\r\n },\r\n }\r\n },\r\n edit: {\r\n component: MultiCurrencyCell,\r\n options: {\r\n targetValuePropertyName: 'currencyRate',\r\n },\r\n },\r\n leaving: (row) => {\r\n return true\r\n },\r\n pinned: false,\r\n entering: (row) => {\r\n return true\r\n },\r\n },\r\n {\r\n name: 'currencyValues',\r\n currency: true,\r\n title: i18nInstance.global.t('trs.transaction.f.currency-price'),\r\n width: 100,\r\n editable: true,\r\n view: (row, col) => {\r\n return {\r\n component: MultiCurrencyCellView,\r\n options: {\r\n targetValuePropertyName: 'debitCurrency',\r\n },\r\n }\r\n },\r\n edit: {\r\n component: MultiCurrencyCell,\r\n options: {\r\n targetValuePropertyName: 'debitCurrency',\r\n },\r\n },\r\n leaving: (row) => {\r\n return true\r\n },\r\n validators: validators(\r\n new VCustom(\r\n (currencyValues, row) => {\r\n if (\r\n (!row.accountTheir || !row.accountTheir.acceptsCurrency) &&\r\n (!row.accountOur || !row.accountOur.acceptsCurrency)\r\n )\r\n return true\r\n\r\n if (!currencyValues || !currencyValues.length) return false\r\n\r\n let allZero =\r\n currencyValues.filter((x) => x.debitCurrency > 0).length === 0\r\n && currencyValues.filter((x) => x.debit > 0).length > 0\r\n if (allZero) return false\r\n\r\n return true\r\n },\r\n () => {\r\n return i18nInstance.global.t('document.m.account-required-currency')\r\n }\r\n )\r\n ),\r\n pinned: false,\r\n entering: (row) => {\r\n return true\r\n },\r\n },\r\n ]\r\n }\r\n switchMode(pageButtons, mode) {\r\n switch (mode) {\r\n case 'edit':\r\n pageButtons.saveButton.disabled = false\r\n pageButtons.selectButton.disabled = true\r\n break\r\n case 'select':\r\n pageButtons.saveButton.disabled = true\r\n pageButtons.selectButton.disabled = false\r\n break\r\n default:\r\n throw new Error('Mode is not currect, use (edit/select).')\r\n }\r\n }\r\n}\r\n\r\nconst _FormUtility = new FormUtility()\r\nexport default _FormUtility\r\n","import $ from 'jquery'\r\nimport _ from 'lodash'\r\nimport { post } from './nikan-api'\r\nimport $store from '../store'\r\nimport FormUtility from './form-utility'\r\n\r\nclass _NikanApp {\r\n constructor() {\r\n this.calcAutoHeight = _.debounce(this.calcAutoHeight, 500, { leading: true, trailing: true })\r\n this.formUtility = FormUtility\r\n }\r\n\r\n api(url, data, callback) {\r\n console.warn('DEPRECATED: use post|get of api', url)\r\n\r\n var promise = post(url, data)\r\n\r\n if (callback == null) {\r\n return promise\r\n } else {\r\n promise.then(response => {\r\n callback(response)\r\n })\r\n }\r\n }\r\n\r\n isEmpty(obj) {\r\n if ((typeof obj === 'undefined') || (obj === null)) {\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n\r\n isZeroLength(obj) {\r\n if ((typeof obj === 'undefined') || (obj === null)) {\r\n return true\r\n } else if (obj.constructor === Array && obj.length === 0) {\r\n return true\r\n } else if (obj.length === 0) {\r\n return true\r\n } else if (typeof obj !== 'string' && $(obj).length === 0) {\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n\r\n calcAutoHeight($root) {\r\n $root = $($root)\r\n $root.find('.height-to-bottom.height-to-bottom-done:visible').removeClass('height-to-bottom-done')\r\n $root.find('.height-to-bottom:visible').heightToBottom()\r\n }\r\n\r\n isObject = (obj) => {\r\n return Object.prototype.toString.call(obj) === '[object Object]'\r\n }\r\n\r\n typeChecker(claims) {\r\n if (typeof (claims) === 'string') {\r\n return 'string'\r\n } else if (this.isObject(claims)) {\r\n return 'object'\r\n }\r\n return 'array'\r\n }\r\n\r\n /**\r\n * Checks User permission based on given claims\r\n * @param {Array, String, Object} claims - given claims\r\n * accessDeniedAnd => Checks user permission from store and if all the given claims where matched return an index greater than -1 so access will be granted\r\n * accessDeniedOr => Checks user permission from store and if atleast on of the given claims where matched return an not equal to 0 so access will be granted\r\n * and function returns true or false based on user access\r\n */\r\n\r\n checkPermission(claims) {\r\n\r\n if (_.isFunction(claims))\r\n claims = claims()\r\n\r\n if (!claims || claims === '' || claims.length === 0 || (this.isObject(claims)) && Object.keys(claims).length === 0)\r\n return true\r\n\r\n const hasPermission = $store.getters['appContext/userHasPermission']\r\n let accessDeniedAnd // accessDenied for and claims\r\n let accessDeniedOr = false // accessDenied for or claims\r\n switch (this.typeChecker(claims)) {\r\n case 'string':\r\n case 'array':\r\n claims = Array.isArray(claims) ? claims : [claims]\r\n accessDeniedAnd = claims.findIndex(claim => hasPermission(claim) === false) > -1 // implement and mechanism\r\n break\r\n\r\n case 'object':\r\n let claimsAnd = claims.and || []\r\n let claimsOr = claims.or || []\r\n accessDeniedAnd = claimsAnd.findIndex(claim => hasPermission(claim) === false) > -1 // implement and mechanism\r\n accessDeniedOr = claimsOr.length == 0 ? false : claimsOr.findIndex(claim => hasPermission(claim) === true) == -1 // implement or mechanism\r\n default:\r\n break\r\n }\r\n return !accessDeniedAnd && !accessDeniedOr\r\n }\r\n\r\n /**\r\n * Checks customer commercial Access\r\n * @param {String, Function} token - given claims\r\n */\r\n\r\n checkCommercialAccess(token) {\r\n const hasPermission = $store.getters['appContext/checkCommercialAccess']\r\n\r\n if (_.isFunction(token))\r\n token = token()\r\n\r\n if (Array.isArray(token))\r\n return token.some(x => hasPermission(x))\r\n\r\n return hasPermission(token)\r\n }\r\n\r\n checkCommercialAccessDetailed(token) {\r\n const hasPermission = $store.getters['appContext/checkCommercialAccessDetailed']\r\n if (_.isFunction(token))\r\n token = token()\r\n return hasPermission(token)\r\n }\r\n\r\n GetSyncedDateTimeByServer() {\r\n const differenceInMilliSecond = $store.getters['appContext/getClientDifferenceDateTimeByServer']\r\n return new Date(Date.now() + differenceInMilliSecond)\r\n }\r\n}\r\n\r\nconst NikanApp = {\r\n install(app, options) {\r\n const nikan = new _NikanApp()\r\n app.config.globalProperties.$nikan = nikan\r\n app.$nikan = nikan\r\n }\r\n}\r\n\r\nexport { _NikanApp }\r\nexport default NikanApp\r\n","import $ from 'jquery'\r\n\r\nfunction _NikanUI() {\r\n\r\n}\r\n\r\n_NikanUI.prototype.init = function () {\r\n this.layoutSections()\r\n this.fullHouseHeight()\r\n}\r\n\r\n_NikanUI.prototype.layoutSections = function () {\r\n function initUI() {\r\n var box = $('.white-box')\r\n var offset = box.offset()\r\n var marginTop = parseFloat(box.css('margin-top'))\r\n\r\n var container = $('.container-fluid')\r\n var containerPadding = parseFloat(container.css('padding-top')) + parseFloat(container.css('padding-bottom'))\r\n\r\n var diff = offset.top + marginTop + containerPadding * 2\r\n var height = parseFloat($(window).height()) - diff - 5\r\n box.height(height)\r\n\r\n var content = $('.white-content')\r\n content.slimScroll({\r\n height: '100%',\r\n position: 'right',\r\n size: '5px',\r\n color: '#dcdcdc'\r\n })\r\n\r\n $('.slimScrollBar').hide()\r\n }\r\n\r\n initUI()\r\n $(window).resize(initUI)\r\n}\r\n\r\n_NikanUI.prototype.scrollable = function (jel, options) {\r\n function act() {\r\n // jel.slimScroll(options);\r\n }\r\n\r\n act()\r\n jel.resize(act)\r\n}\r\n\r\n_NikanUI.prototype.fullHouseHeight = function () {\r\n var els = $('.full-house-height')\r\n $.each(els, function (index, item) {\r\n var parentSelector = $(item).attr('fhh-parent')\r\n var parent = $(item).parent()\r\n if (parentSelector) {\r\n parent = $(item).parents(parentSelector)\r\n }\r\n\r\n var parentHeight = parent.height()\r\n\r\n var detailsHeightSelector = $(item).attr('fhh-details')\r\n if (detailsHeightSelector) {\r\n parentHeight -= $(detailsHeightSelector).height()\r\n }\r\n\r\n var padding = parseFloat(parent.css('padding-top')) + parseFloat(parent.css('padding-bottom'))\r\n parentHeight -= padding\r\n\r\n $(item).height(parentHeight)\r\n })\r\n}\r\n\r\nconst NikanUI = {\r\n install(app) {\r\n const ui = new _NikanUI()\r\n app.$ui = ui\r\n app.config.globalProperties.$wait = ui\r\n }\r\n}\r\n\r\nexport default NikanUI\r\n","import $ from 'jquery'\r\nimport _ from 'lodash'\r\nimport $store from '../store'\r\nimport dialog from './nikan-dialog-plugin'\r\nimport { markRaw } from '@vue/reactivity'\r\nimport { globalLogger } from './logger'\r\n\r\nconst NikanModalStorage = {\r\n install(Vue, options) {\r\n Vue.mixin({\r\n methods: {\r\n showModal(modal) {\r\n modal.component = markRaw(modal.component)\r\n\r\n if (modal.component.modal && !modal.component.modal.stateUID)\r\n globalLogger.warn(`component with path: ${modal.component.__file} doesn't provide modal's stateUID, It's recommended to fill StateUID for modal size cache clearance.`)\r\n\r\n if (!modal.component.modal)\r\n modal.component.modal = {\r\n stateUID: this.idGenerator(5),\r\n size: 'fullscreen',\r\n helpTag: ''\r\n }\r\n\r\n if (modal.component.modal.checkDataChange === undefined)\r\n modal.component.modal.checkDataChange = true\r\n\r\n modal = _.extend({ title: '', buttons: [] }, modal)\r\n\r\n const token = _.get(modal, 'component.modal.policyToken')\r\n\r\n return new Promise((resolve, reject) => {\r\n if (Vue.$nikan.checkPermission(token)) {\r\n modal.resolve = resolve\r\n modal.reject = reject\r\n\r\n $store.dispatch('addModal', modal)\r\n } else {\r\n dialog({\r\n title: this.$t('msg.access-denied.title'),\r\n body: this.$t('msg.access-denied.body'),\r\n type: 'error',\r\n autoClose: true\r\n })\r\n\r\n reject(new Error('User needs additional privileges in order to perform this action.'))\r\n }\r\n })\r\n },\r\n resolve(response, close = true) {\r\n if(!close)\r\n this.$emit('resolve', response)\r\n else\r\n this.close(response)\r\n },\r\n reject(error) {\r\n if (typeof error !== 'undefined' && (typeof error !== 'string' || error !== '')) {\r\n this.writeError(error)\r\n }\r\n\r\n this.$emit('reject', error)\r\n this.close()\r\n },\r\n close(response) {\r\n $('.modal-item-locker').last().removeClass('show')\r\n this.defer(() => {\r\n this.$emit('resolve', response)\r\n $store.dispatch('removeModal')\r\n if ($store.state.modals.length === 0) {\r\n var tab = $('.nk-tabs-component-panels section:visible')\r\n\r\n if (!tab.has(':focus')) {\r\n tab.focus()\r\n var startup = tab.find('[startup]')\r\n if (startup.length > 0) {\r\n startup.focus()\r\n }\r\n }\r\n }\r\n }, 300)\r\n },\r\n\r\n prepareWindow(title, buttons) {\r\n this.$emit('title-changed', title)\r\n if (!buttons) buttons = []\r\n for (var i = 0; i < buttons.length; i++) {\r\n if (buttons[i].handle)\r\n buttons[i].handle = buttons[i].handle.bind(this)\r\n if (buttons[i].items) {\r\n for (var j = 0; j < buttons[i].items.length; j++) {\r\n if (buttons[i].items[j].handle){\r\n buttons[i].items[j].handle = buttons[i].items[j].handle.bind(this)\r\n }\r\n this.incrementUID(id => {\r\n buttons[i].items[j].id = id\r\n })\r\n }\r\n }\r\n this.incrementUID(id => {\r\n typeof buttons[i] === 'object' && (buttons[i].id = id)\r\n })\r\n }\r\n this.addButtons(...buttons)\r\n // }\r\n },\r\n addButtons() {\r\n if (arguments.length > 0) {\r\n this.$emit('buttons-changed', Array.from(arguments))\r\n }\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport default NikanModalStorage\r\n","import app from '~/plugins/vue-instance'\r\nimport INikanWait, { INikanWaitOptions } from '@/interfaces/plugins/nikan-waiting-plugin'\r\nimport { defineComponent, createApp, ComponentPublicInstance, App, Plugin } from 'vue'\r\nimport TabOrder from '../statics/taborder-functions'\r\nimport _ from 'lodash'\r\nimport { globalLogger } from './logger'\r\nimport $ from 'jquery'\r\n\r\nclass _NikanWait implements INikanWait {\r\n loggingEnabled: boolean\r\n el?: HTMLElement | null\r\n jel?: JQuery
| null\r\n component?: ComponentPublicInstance | null\r\n focusedEl?: any | null\r\n reservedFocusedEl?: any | null\r\n _started?: boolean\r\n _destroyed?: boolean\r\n _ended: boolean\r\n options?: INikanWaitOptions\r\n\r\n constructor(el: HTMLElement | null, options?: INikanWaitOptions) {\r\n this.loggingEnabled = false\r\n this.el = el\r\n this.jel = el ? $(el) : null\r\n this.component = null\r\n this.focusedEl = null\r\n this.reservedFocusedEl = null\r\n this._started = false\r\n this._destroyed = false\r\n this._ended = false\r\n\r\n this.options = $.extend({\r\n size: 'default',\r\n color: '#FFFFFF',\r\n dimColor: 'rgba(0,0,0,.3)'\r\n }, options)\r\n }\r\n\r\n _validate() {\r\n if (this._destroyed) {\r\n globalLogger.warn('NikanWait object is destroyed. You cannot access it.')\r\n return false\r\n }\r\n\r\n if (this.el == null || this.jel == null) {\r\n globalLogger.warn('Waiting host is not defined.')\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n _destroy() {\r\n this._destroyed = true\r\n if (this.component && _.isFunction(this.component.$options.unmount)) {\r\n this.component.$options.unmount()\r\n }\r\n\r\n delete this.el\r\n delete this.jel\r\n delete this.component\r\n delete this.focusedEl\r\n delete this._started\r\n delete this._destroyed\r\n delete this.options\r\n }\r\n _loadVm() {\r\n if (!this._validate()) {\r\n return\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n import('../components/general/nikan-waiting.vue')\r\n .then(response => {\r\n resolve(response.default)\r\n })\r\n .catch(error => {\r\n globalLogger.error(error)\r\n })\r\n })\r\n }\r\n _catchFocus() {\r\n if (!this._validate()) {\r\n return\r\n }\r\n\r\n if (this.component == null) {\r\n return\r\n }\r\n\r\n var focused = this.jel?.find(':focus')\r\n if (focused && !focused.length && this.jel?.is(':focus')) {\r\n focused = this.jel\r\n }\r\n\r\n if (focused && focused.length > 0 && this.jel?.hasClass('nk-waiting-holder')) {\r\n this.focusedEl = focused\r\n this.component.$el.focus()\r\n } else {\r\n this.focusedEl = null\r\n }\r\n }\r\n _returnFocus() {\r\n if (!this._validate()) {\r\n return\r\n }\r\n\r\n var el = this.focusedEl\r\n var elExists = el != null && $(el).length > 0\r\n\r\n if (!elExists) {\r\n if (this.reservedFocusedEl == null) {\r\n return\r\n } else {\r\n el = this.reservedFocusedEl\r\n }\r\n }\r\n\r\n if (el != null) {\r\n if (_.isElement(el)) {\r\n el.focus()\r\n } else {\r\n el[0].focus()\r\n }\r\n }\r\n }\r\n _handleKeys() {\r\n if (!this._validate()) {\r\n return\r\n }\r\n\r\n // @ts-ignore\r\n app.$keyHandler.Subscribe({\r\n name: 'waiting-prevent-working',\r\n el: this.component?.$el,\r\n context: this,\r\n handler: function () {\r\n return true\r\n }\r\n })\r\n }\r\n _log(msg: string) {\r\n if (this.loggingEnabled) {\r\n console.log(msg)\r\n }\r\n }\r\n\r\n start() {\r\n this._log('waiting started')\r\n\r\n if (!this._validate()) {\r\n return\r\n }\r\n\r\n if (this._started) {\r\n return\r\n }\r\n\r\n this._started = true\r\n\r\n var _this = this\r\n\r\n this._loadVm()\r\n ?.then(Template => {\r\n if (this._ended) {\r\n return\r\n }\r\n\r\n if (_this.jel?.hasClass('nk-waiting-holder')) {\r\n return\r\n }\r\n\r\n const wait = defineComponent({\r\n extends: Template, props: {\r\n size: { type: String, default: _this.options?.size },\r\n // color: { type: String, default: _this.options?.color },\r\n color: { type: String, default: _this.options?.dimColor },\r\n bgColor: { type: String, default: _this.options?.bgColor },\r\n fixed: { type: Boolean, default: _this.options?.fixed },\r\n }\r\n })\r\n\r\n const div = document.createElement('div')\r\n _this.jel?.addClass('nk-waiting-holder')\r\n _this.jel?.attr('disabled', 'disabled')\r\n _this.jel?.append(div)\r\n this.component = createApp(wait).mount(div)\r\n _this.jel?.find('.draggable').css({ 'z-index': '998' })\r\n\r\n _this._catchFocus()\r\n _this._handleKeys()\r\n TabOrder.updateDisableds()\r\n })\r\n }\r\n end(el?: HTMLElement | null) {\r\n try {\r\n if (this._ended) {\r\n return\r\n }\r\n\r\n this._ended = true\r\n\r\n if (!this._validate()) {\r\n return\r\n }\r\n\r\n if (!this._started) {\r\n return\r\n }\r\n\r\n if (el) {\r\n this.reservedFocusedEl = el\r\n }\r\n\r\n this.jel?.find('.nk-waiting').remove()\r\n this.jel?.removeClass('nk-waiting-holder')\r\n this.jel?.removeAttr('disabled')\r\n\r\n this.jel?.find('.draggable').css({ 'z-index': 'auto' })\r\n\r\n TabOrder.updateDisableds()\r\n\r\n this._returnFocus()\r\n this._destroy()\r\n this._log('waiting ended')\r\n } catch (e) {\r\n globalLogger.error(e)\r\n }\r\n }\r\n}\r\n\r\nconst NikanWait: Plugin = {\r\n\r\n install(app: App, options) {\r\n function wait(el: HTMLElement, options?: INikanWaitOptions) {\r\n var wait = new _NikanWait(el, options)\r\n\r\n wait.start()\r\n\r\n\r\n return wait\r\n }\r\n app.config.globalProperties.$wait = wait\r\n }\r\n}\r\n\r\nexport default NikanWait\r\nexport { _NikanWait }\r\n","import $ from 'jquery'\r\nimport { createNamespacedHelpers } from 'vuex'\r\n\r\nconst { mapState, mapGetters } = createNamespacedHelpers('cache')\r\n\r\nconst NikanCache = {\r\n install(Vue, options) {\r\n Vue.mixin({\r\n computed: {\r\n ...mapState(['cache_objects']),\r\n ...mapGetters(['cache_items', 'cache_expiredItems', 'cache_get'])\r\n },\r\n methods: {\r\n cache_set(key, value, seconds) {\r\n var obj = { key, value, seconds }\r\n this.$store.dispatch('cache/set', obj)\r\n },\r\n cache_remove(key) {\r\n this.$store.dispatch('cache/remove', key)\r\n },\r\n cache_clear(pattern) {\r\n this.$store.dispatch('cache/clear', pattern)\r\n },\r\n\r\n cache_getOrSet(key, seconds, factory) {\r\n if (!$.isFunction(factory)) {\r\n throw new Error('factory needs to be function')\r\n }\r\n\r\n var _vm = this\r\n return new Promise((resolve, reject) => {\r\n var cached = this.cache_get(key)\r\n if (cached != null) {\r\n resolve(cached)\r\n return\r\n }\r\n\r\n var result = factory()\r\n if (result.then) {\r\n result\r\n .then(res => {\r\n _vm.cache_set(key, res, seconds)\r\n resolve(res)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n } else {\r\n _vm.cache_set(key, result, seconds)\r\n resolve(result)\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport default NikanCache\r\n","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n","import { render } from \"./drop-button.vue?vue&type=template&id=c6dc390c\"\nimport script from \"./drop-button.vue?vue&type=script&lang=js\"\nexport * from \"./drop-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t x.visible).length > 3, 'md-dialog': localButtons.filter(x => x.visible).length === 3 }]\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
-1\">\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./nikan-dialog.vue?vue&type=template&id=a5b9312c\"\nimport script from \"./nikan-dialog.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-dialog.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/nikan-dialog.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./popup.vue?vue&type=template&id=0db070ea\"\nimport script from \"./popup.vue?vue&type=script&lang=js\"\nexport * from \"./popup.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\r\n\t\t
0\" class=\"nk-page-toolbar\" tabscope>\r\n\t\t\t
\r\n\t\t\t\t- \r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\thidden: b.visible === false,\r\n\t\t\t\t}\">\r\n\t\t\t\t\t 0\" class=\"nk-page-toolbar-separator\">\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n","\r\n\t\r\n\r\n\r\n","import { render } from \"./form-info.vue?vue&type=template&id=551527dc\"\nimport script from \"./form-info.vue?vue&type=script&lang=js\"\nexport * from \"./form-info.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./nikan-help.vue?vue&type=template&id=16a88188\"\nimport script from \"./nikan-help.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-help.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./snapshot-button.vue?vue&type=template&id=45001f6b\"\nimport script from \"./snapshot-button.vue?vue&type=script&lang=js\"\nexport * from \"./snapshot-button.vue?vue&type=script&lang=js\"\n\nimport \"./snapshot-button.vue?vue&type=style&index=0&id=45001f6b&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./nikan-page.vue?vue&type=template&id=517f7f84\"\nimport script from \"./nikan-page.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-page.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t

\r\n\t\t\t\t
{{ $t('policy.access-denied') }}
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n","import { render } from \"./check-permission.vue?vue&type=template&id=b0cda79a\"\nimport script from \"./check-permission.vue?vue&type=script&lang=js\"\nexport * from \"./check-permission.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

\r\n\t\t\t\t\t
{{ access.message }}
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n","import { render } from \"./check-commercial-access.vue?vue&type=template&id=6e131603\"\nimport script from \"./check-commercial-access.vue?vue&type=script&lang=js\"\nexport * from \"./check-commercial-access.vue?vue&type=script&lang=js\"\n\nimport \"./check-commercial-access.vue?vue&type=style&index=0&id=6e131603&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./bootstrap-wrapper.vue?vue&type=template&id=0ed5db8c\"\nimport script from \"./bootstrap-wrapper.vue?vue&type=script&lang=js\"\nexport * from \"./bootstrap-wrapper.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/bootstrap-wrapper.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
{{ localData.imageName }}
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./image-uploader.vue?vue&type=template&id=7247d7d1\"\nimport script from \"./image-uploader.vue?vue&type=script&lang=js\"\nexport * from \"./image-uploader.vue?vue&type=script&lang=js\"\n\nimport \"./image-uploader.vue?vue&type=style&index=0&id=7247d7d1&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./nikan-radio.vue?vue&type=template&id=3268f28c\"\nimport script from \"./nikan-radio.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-radio.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t buttonClicked(b, e)\" :options=\"settings.dropSettings\">\r\n\t
\r\n\r\n\r\n","import { render } from \"./excel-button.vue?vue&type=template&id=66883ddc\"\nimport script from \"./excel-button.vue?vue&type=script&lang=js\"\nexport * from \"./excel-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./lottie.vue?vue&type=template&id=7862a7a4\"\nimport script from \"./lottie.vue?vue&type=script&lang=js\"\nexport * from \"./lottie.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t
\r\n\r\n\r\n","import { render } from \"./nikan-recaptcha.vue?vue&type=template&id=9b633346\"\nimport script from \"./nikan-recaptcha.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-recaptcha.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n","import { render } from \"./row-separator.vue?vue&type=template&id=6728ce22\"\nimport script from \"./row-separator.vue?vue&type=script&lang=js\"\nexport * from \"./row-separator.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./col-form-group.vue?vue&type=template&id=4b851f50&scoped=true\"\nimport script from \"./col-form-group.vue?vue&type=script&lang=js\"\nexport * from \"./col-form-group.vue?vue&type=script&lang=js\"\n\nimport \"./col-form-group.vue?vue&type=style&index=0&id=4b851f50&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b851f50\"]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./nikan-textarea.vue?vue&type=template&id=0d0346c4\"\nimport script from \"./nikan-textarea.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-textarea.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
{{ $t('empty-items') }}
\r\n\t\t\t
\r\n\t\t\t
onItemClicked(e, i)\">\r\n\t\t\t\t
removeItem(x)\">
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./multichoice.vue?vue&type=template&id=ccaccd4c\"\nimport script from \"./multichoice.vue?vue&type=script&lang=js\"\nexport * from \"./multichoice.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/multichoice.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n","import { render } from \"./multichoice2-floating-center.vue?vue&type=template&id=42f1d043\"\nimport script from \"./multichoice2-floating-center.vue?vue&type=script&lang=js\"\nexport * from \"./multichoice2-floating-center.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\r\n\t
\r\n\r\n\r\n","import { render } from \"./checkbox.vue?vue&type=template&id=dadf76a4\"\nimport script from \"./checkbox.vue?vue&type=script&lang=js\"\nexport * from \"./checkbox.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t onDebitCreditValueChanged(val, item)\">\r\n\t\t\t onCurrencyChange(val, item)\" :tabindex=\"disabled ? 0 : itemIndex\">\r\n\t\t\t onCurrencyRateChanged(val, item)\">\r\n\t\t\t onDCCurrencyValueChanged(val, item)\">\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./multi-currency.vue?vue&type=template&id=702c63d2\"\nimport script from \"./multi-currency.vue?vue&type=script&lang=js\"\nexport * from \"./multi-currency.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/multi-currency.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./multi-currency-view.vue?vue&type=template&id=2797e738\"\nimport script from \"./multi-currency-view.vue?vue&type=script&lang=js\"\nexport * from \"./multi-currency-view.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/multi-currency.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./popover.vue?vue&type=template&id=dbc9857e\"\nimport script from \"./popover.vue?vue&type=script&lang=js\"\nexport * from \"./popover.vue?vue&type=script&lang=js\"\n\nimport \"./popover.vue?vue&type=style&index=0&id=dbc9857e&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t
\r\n\r\n","\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./stimul.vue?vue&type=template&id=469d3c00&scoped=true\"\nimport script from \"./stimul.vue?vue&type=script&lang=js\"\nexport * from \"./stimul.vue?vue&type=script&lang=js\"\n\nimport \"./stimul.vue?vue&type=style&index=0&id=469d3c00&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-469d3c00\"]])\n\nexport default __exports__","import { render } from \"./client-print-button.vue?vue&type=template&id=14d3edb4\"\nimport script from \"./client-print-button.vue?vue&type=script&lang=js\"\nexport * from \"./client-print-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./meta-data-list.vue?vue&type=template&id=9a39bac4\"\nimport script from \"./meta-data-list.vue?vue&type=script&lang=js\"\nexport * from \"./meta-data-list.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./toggler.vue?vue&type=template&id=767d45c5\"\nimport script from \"./toggler.vue?vue&type=script&lang=js\"\nexport * from \"./toggler.vue?vue&type=script&lang=js\"\n\nimport \"./toggler.vue?vue&type=style&index=0&id=767d45c5&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t clicked(item, selected)\" :key=\"item.id\" :data=\"item\" :options=\"settings.togglerOptions\" :disabled=\"disabled\" :tabindex=\"tabindex + index + 1\">\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./toggler-group.vue?vue&type=template&id=9d121830\"\nimport script from \"./toggler-group.vue?vue&type=script&lang=js\"\nexport * from \"./toggler-group.vue?vue&type=script&lang=js\"\n\nimport \"./toggler-group.vue?vue&type=style&index=0&id=9d121830&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n \r\n\r\n\r\n\r\n\r\n","import { render } from \"./info.vue?vue&type=template&id=0cdd7d21\"\nimport script from \"./info.vue?vue&type=script&lang=js\"\nexport * from \"./info.vue?vue&type=script&lang=js\"\n\nimport \"./info.vue?vue&type=style&index=0&id=0cdd7d21&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t{{ $t('review-mode.message') }}.\"{{ reviewModeData }}\"\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./review-mode-bar.vue?vue&type=template&id=2d581f66\"\nimport script from \"./review-mode-bar.vue?vue&type=script&lang=js\"\nexport * from \"./review-mode-bar.vue?vue&type=script&lang=js\"\n\nimport \"./review-mode-bar.vue?vue&type=style&index=0&id=2d581f66&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./popper.vue?vue&type=template&id=d0b4e15c\"\nimport script from \"./popper.vue?vue&type=script&lang=js\"\nexport * from \"./popper.vue?vue&type=script&lang=js\"\n\nimport \"./popper.vue?vue&type=style&index=0&id=d0b4e15c&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
![]()
\r\n\t\t
{{ settings.text }}
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./widget-error.vue?vue&type=template&id=3a79af3c\"\nimport script from \"./widget-error.vue?vue&type=script&lang=js\"\nexport * from \"./widget-error.vue?vue&type=script&lang=js\"\n\nimport \"./widget-error.vue?vue&type=style&index=0&id=3a79af3c&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./default-settings.vue?vue&type=template&id=32397c74\"\nimport script from \"./default-settings.vue?vue&type=script&lang=js\"\nexport * from \"./default-settings.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-category.vue?vue&type=template&id=2b372aac\"\nimport script from \"./dropdown-category.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-category.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-product-price-level.vue?vue&type=template&id=165153f0\"\nimport script from \"./dropdown-product-price-level.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-product-price-level.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-product-price-group.vue?vue&type=template&id=2d9e2a19\"\nimport script from \"./dropdown-product-price-group.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-product-price-group.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-product-classifications.vue?vue&type=template&id=e1a53c30\"\nimport script from \"./dropdown-product-classifications.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-product-classifications.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-warehouse.vue?vue&type=template&id=ada80306\"\nimport script from \"./dropdown-warehouse.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-warehouse.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-factor-bunch.vue?vue&type=template&id=598f5a96\"\nimport script from \"./dropdown-factor-bunch.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-factor-bunch.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\r\n\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./nav-menu.vue?vue&type=template&id=5cb18f6a\"\nimport script from \"./nav-menu.vue?vue&type=script&lang=js\"\nexport * from \"./nav-menu.vue?vue&type=script&lang=js\"\n\nimport \"./nav-menu.vue?vue&type=style&index=0&id=5cb18f6a&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./nav-menu-item.vue?vue&type=template&id=5f7cf0aa\"\nimport script from \"./nav-menu-item.vue?vue&type=script&lang=js\"\nexport * from \"./nav-menu-item.vue?vue&type=script&lang=js\"\n\nimport \"./nav-menu-item.vue?vue&type=style&index=0&id=5f7cf0aa&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
0\">\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./modal-host.vue?vue&type=template&id=6c9e0f48\"\nimport script from \"./modal-host.vue?vue&type=script&lang=js\"\nexport * from \"./modal-host.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{{ page.title }}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t 0\" class=\"nm-flexitem nm-toolbar d-flex\" tabscope tabindex=\"1\">\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./modal-item.vue?vue&type=template&id=055226ba\"\nimport script from \"./modal-item.vue?vue&type=script&lang=js\"\nexport * from \"./modal-item.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/nikan-modal.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./tab-host.vue?vue&type=template&id=4c32690e\"\nimport script from \"./tab-host.vue?vue&type=script&lang=js\"\nexport * from \"./tab-host.vue?vue&type=script&lang=js\"\n\nimport \"./tab-host.vue?vue&type=style&index=0&id=4c32690e&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t 0 }\" :id=\"hash\" role=\"tabpanel\">\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\r\n\r\n\r\n","import { render } from \"./tab-item.vue?vue&type=template&id=6dd17aa4\"\nimport script from \"./tab-item.vue?vue&type=script&lang=js\"\nexport * from \"./tab-item.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t- \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./stab-host.vue?vue&type=template&id=a9291a9e\"\nimport script from \"./stab-host.vue?vue&type=script&lang=js\"\nexport * from \"./stab-host.vue?vue&type=script&lang=js\"\n\nimport \"./stab-host.vue?vue&type=style&index=0&id=a9291a9e&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./stab-item.vue?vue&type=template&id=c02e15fc\"\nimport script from \"./stab-item.vue?vue&type=script&lang=js\"\nexport * from \"./stab-item.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t onNodeSelected(val, true)\" @nodeStateChanged=\"onNodeStateChanged\" @nodeDblClicked=\"n => $emit('nodeDblClicked', n)\" v-if=\"visible\" startup>\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./nikan-tree.vue?vue&type=template&id=fd74208c\"\nimport script from \"./nikan-tree.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-tree.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/nikan-tree.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t- \r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
onNodeStateChangeClicked(e, item)\">\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t $emit('nodeSelected', n)\" @nodeStateChanged=\"n => $emit('nodeStateChanged', n)\" @nodeDblClicked=\"n => onNodeDblClick(n)\">\r\n\t\t\t\t \r\n\t\t\t\r\n\t\t\r\n\t\t- \r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{{ $t('msg.has-child-other-fiscal') }}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t \r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./nikan-subtree.vue?vue&type=template&id=63d6fb00\"\nimport script from \"./nikan-subtree.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-subtree.vue?vue&type=script&lang=js\"\n\nimport \"./nikan-subtree.vue?vue&type=style&index=0&id=63d6fb00&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n","import { render } from \"./context-menu.vue?vue&type=template&id=515fb5b2\"\nimport script from \"./context-menu.vue?vue&type=script&lang=js\"\nexport * from \"./context-menu.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{{ item.title }}\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{{ shortcutDisplay }}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./menu-item.vue?vue&type=template&id=162a674e\"\nimport script from \"./menu-item.vue?vue&type=script&lang=js\"\nexport * from \"./menu-item.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./menu-splitter.vue?vue&type=template&id=294c22ba\"\nimport script from \"./menu-splitter.vue?vue&type=script&lang=js\"\nexport * from \"./menu-splitter.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./nikan-badge-host.vue?vue&type=template&id=72d313df\"\nimport script from \"./nikan-badge-host.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-badge-host.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./nikan-badge.vue?vue&type=template&id=697a7279\"\nimport script from \"./nikan-badge.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-badge.vue?vue&type=script&lang=js\"\n\nimport \"./nikan-badge.vue?vue&type=style&index=0&id=697a7279&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t- \r\n\t\t\t\t\t\r\n\t\t\t\t\t 0\" :removeButtonVisible=\"true\" @update:modelValue=\"filterGroupRowChanged\">\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\t- \r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t \r\n\t\t
\r\n\t
\r\n\r\n\r\n","\r\n\r\n\t\r\n\t\t\r\n\t\t\t- \r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t 0\" :operatorVisible=\"true\" :removeButtonVisible=\"true\" @update:modelValue=\"filterRowValueChanged\">\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t \r\n\t\t\r\n\t\t- \r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t \r\n\t
\r\n\r\n\r\n","\r\n\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n","\r\n\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n","import _ from 'lodash'\r\n\r\nlet defaults = [\r\n {\r\n name: 'string',\r\n items: [\r\n { value: 'equals', text: 'برابر باشد با' },\r\n { value: 'contains', text: 'شامل باشد' }\r\n ]\r\n },\r\n {\r\n name: 'number',\r\n items: [\r\n { value: 'equals', text: 'برابر باشد با' },\r\n { value: 'greaterThan', text: 'بزرگتر باشد از' },\r\n { value: 'lesserThan', text: 'کمتر باشد از' },\r\n { value: 'greaterThanEqual', text: 'بزرگتر مساوی باشد از' },\r\n { value: 'lesserThanEqual', text: 'کمتر مساوی باشد از' }\r\n ]\r\n },\r\n {\r\n name: 'price',\r\n items: [\r\n { value: 'equals', text: 'برابر باشد با' },\r\n { value: 'greaterThan', text: 'بزرگتر باشد از' },\r\n { value: 'lesserThan', text: 'کمتر باشد از' }\r\n ]\r\n },\r\n {\r\n name: 'single-choice',\r\n items: [\r\n { value: 'equals', text: 'برابر باشد با' },\r\n { value: 'notEquals', text: 'برابر نباشد با' },\r\n { value: 'contains', text: 'شامل باشد' },\r\n { value: 'notContains', text: 'شامل نباشد' }\r\n ]\r\n },\r\n {\r\n name: 'multi-choice',\r\n items: [\r\n { value: 'equals', text: 'برابر باشد با' },\r\n { value: 'notEquals', text: 'برابر نباشد با' },\r\n { value: 'contains', text: 'شامل باشد' },\r\n { value: 'notContains', text: 'شامل نباشد' }\r\n ]\r\n }\r\n]\r\n\r\nexport default function (name, include) {\r\n let def = _.head(defaults.filter(x => x.name === name))\r\n let items = (def || {}).items\r\n if (items && items.length) {\r\n if (include && Array.isArray(include)) {\r\n items = items.filter(x => include.indexOf(x.name) > -1)\r\n }\r\n\r\n return items\r\n }\r\n\r\n return []\r\n}\r\n","import { render } from \"./filter-type-input.vue?vue&type=template&id=a33c17a4\"\nimport script from \"./filter-type-input.vue?vue&type=script&lang=js\"\nexport * from \"./filter-type-input.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./filter-row.vue?vue&type=template&id=9aea647e\"\nimport script from \"./filter-row.vue?vue&type=script&lang=js\"\nexport * from \"./filter-row.vue?vue&type=script&lang=js\"\n\nimport \"./filter-row.vue?vue&type=style&index=0&id=9aea647e&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./filter-group.vue?vue&type=template&id=5c09307c\"\nimport script from \"./filter-group.vue?vue&type=script&lang=js\"\nexport * from \"./filter-group.vue?vue&type=script&lang=js\"\n\nimport \"./filter-group.vue?vue&type=style&index=0&id=5c09307c&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./view-port.vue?vue&type=template&id=6305ea86\"\nimport script from \"./view-port.vue?vue&type=script&lang=js\"\nexport * from \"./view-port.vue?vue&type=script&lang=js\"\n\nimport \"./view-port.vue?vue&type=style&index=0&id=6305ea86&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./virtualizer.vue?vue&type=template&id=8aaf95a2&scoped=true\"\nimport script from \"./virtualizer.vue?vue&type=script&lang=js\"\nexport * from \"./virtualizer.vue?vue&type=script&lang=js\"\n\nimport \"./virtualizer.vue?vue&type=style&index=0&id=8aaf95a2&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8aaf95a2\"]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
{{ localData.titlePath }}
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
اطلاعات کدام ستون نمایش داده شود:
\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
کاراکتر جدا ساز:
\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
انطباق از ستون:
\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
انطباق به ستون:
\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\tتجمیع:\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t 0 && !modelValue.aggregate\" :options=\"{ title: 'Distinct' }\" class=\"mr-3\">\r\n\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./toggler.vue?vue&type=template&id=10a5bc52\"\nimport script from \"./toggler.vue?vue&type=script&lang=js\"\nexport * from \"./toggler.vue?vue&type=script&lang=js\"\n\nimport \"./toggler.vue?vue&type=style&index=0&id=10a5bc52&lang=less\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ColumnsTableRow.vue?vue&type=template&id=695bfdc6\"\nimport script from \"./ColumnsTableRow.vue?vue&type=script&lang=js\"\nexport * from \"./ColumnsTableRow.vue?vue&type=script&lang=js\"\n\nimport \"./ColumnsTableRow.vue?vue&type=style&index=0&id=695bfdc6&lang=less\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
مرتب سازی
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{{ sort.titlePath }}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./Sorts.vue?vue&type=template&id=36024086\"\nimport script from \"./Sorts.vue?vue&type=script&lang=js\"\nexport * from \"./Sorts.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./ReportHeader.vue?vue&type=template&id=83ca6f0e\"\nimport script from \"./ReportHeader.vue?vue&type=script&lang=js\"\nexport * from \"./ReportHeader.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\tنام:\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\tنوع:\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./ReportParameterItem.vue?vue&type=template&id=86a36728\"\nimport script from \"./ReportParameterItem.vue?vue&type=script&lang=js\"\nexport * from \"./ReportParameterItem.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t
افزودن پارامتر جدید
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./ReportParameters.vue?vue&type=template&id=0e5b9cbc\"\nimport script from \"./ReportParameters.vue?vue&type=script&lang=js\"\nexport * from \"./ReportParameters.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{{ entity.entityTitle }}\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./EntitySelector.vue?vue&type=template&id=5bedd0d8\"\nimport script from \"./EntitySelector.vue?vue&type=script&lang=js\"\nexport * from \"./EntitySelector.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{{ title }}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./EntityColumnSelector.vue?vue&type=template&id=727dc852\"\nimport script from \"./EntityColumnSelector.vue?vue&type=script&lang=js\"\nexport * from \"./EntityColumnSelector.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t swapItems(dragged, dropped)\" />\r\n\t\t
\r\n\r\n\t\t
0\">\r\n\t\t\tتعداد ردیف: \r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t

\r\n\t\t\t
\r\n\t\t\t
هیچ موردی انتخاب نشده است
\r\n\t\t
\r\n\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./ColumnsTable.vue?vue&type=template&id=ff4bebaa\"\nimport script from \"./ColumnsTable.vue?vue&type=script&lang=js\"\nexport * from \"./ColumnsTable.vue?vue&type=script&lang=js\"\n\nimport \"./ColumnsTable.vue?vue&type=style&index=0&id=ff4bebaa&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
1\" style=\"text-align: center\">\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./ConditionGroup.vue?vue&type=template&id=1a0aa742\"\nimport script from \"./ConditionGroup.vue?vue&type=script&lang=js\"\nexport * from \"./ConditionGroup.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./ConditionSingle.vue?vue&type=template&id=119cf168\"\nimport script from \"./ConditionSingle.vue?vue&type=script&lang=js\"\nexport * from \"./ConditionSingle.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./DatePicker.vue?vue&type=template&id=db9c4d26\"\nimport script from \"./DatePicker.vue?vue&type=script&lang=js\"\nexport * from \"./DatePicker.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","\r\n\t\r\n\t\t
\r\n\t\t\t{{ item[settings.displayField] }}\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./group-radio.vue?vue&type=template&id=abecd13e\"\nimport script from \"./group-radio.vue?vue&type=script&lang=js\"\nexport * from \"./group-radio.vue?vue&type=script&lang=js\"\n\nimport \"./group-radio.vue?vue&type=style&index=0&id=abecd13e&lang=less\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ConditionValue.vue?vue&type=template&id=7ed5f183\"\nimport script from \"./ConditionValue.vue?vue&type=script&lang=js\"\nexport * from \"./ConditionValue.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
شرط ها:
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./Conditions.vue?vue&type=template&id=38a7e68e\"\nimport script from \"./Conditions.vue?vue&type=script&lang=js\"\nexport * from \"./Conditions.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
افزودن متغیر جدید
\r\n\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./Variables.vue?vue&type=template&id=f1c4a27e\"\nimport script from \"./Variables.vue?vue&type=script&lang=js\"\nexport * from \"./Variables.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\tنام:\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./VariableModify.vue?vue&type=template&id=5f9af0fd\"\nimport script from \"./VariableModify.vue?vue&type=script&lang=js\"\nexport * from \"./VariableModify.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t({{ selectedEntity.entityTitle }})\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\tلطفا ابتدا یک ساختار انتخاب کنید\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t swapItems(dragged, dropped)\" />\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
پارامتر های گزارش:
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
متغیر ها:
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t- \r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./tab-host.vue?vue&type=template&id=653d54a7&scoped=true\"\nimport script from \"./tab-host.vue?vue&type=script&lang=js\"\nexport * from \"./tab-host.vue?vue&type=script&lang=js\"\n\nimport \"./tab-host.vue?vue&type=style&index=0&id=653d54a7&lang=less&scoped=true\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-653d54a7\"]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./tab-item.vue?vue&type=template&id=71982ce9&scoped=true\"\nimport script from \"./tab-item.vue?vue&type=script&lang=js\"\nexport * from \"./tab-item.vue?vue&type=script&lang=js\"\n\nimport \"./tab-item.vue?vue&type=style&index=0&id=71982ce9&lang=less&scoped=true\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-71982ce9\"]])\n\nexport default __exports__","import { render } from \"./QueryVisualizer.vue?vue&type=template&id=ccef9f06\"\nimport script from \"./QueryVisualizer.vue?vue&type=script&lang=js\"\nexport * from \"./QueryVisualizer.vue?vue&type=script&lang=js\"\n\nimport \"./QueryVisualizer.vue?vue&type=style&index=0&id=ccef9f06&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// General\r\nimport FontAwesomeIcon from '~/components/general/icon'\r\nimport Button from '~/components/general/button'\r\nimport InputButton from '~/components/general/input-button'\r\nimport DropButton from '~/components/general/drop-button'\r\nimport Dialog from '~/components/general/nikan-dialog'\r\nimport Popup from '~/components/general/popup'\r\nimport Page from '~/components/pages/nikan-page'\r\nimport CheckPermission from '~/components/pages/check-permission'\r\nimport CheckCommercialAccess from '~/components/pages/check-commercial-access'\r\nimport Wrapper from '~/components/general/bootstrap-wrapper'\r\nimport vList from '~/components/general/nikan-list'\r\nimport Image from '~/components/general/nikan-image'\r\nimport ImageUploader from '~/components/uploader/image-uploader.vue'\r\nimport RadioButton from '~/components/general/nikan-radio.vue'\r\nimport ExcelButton from '~/components/excel/excel-button'\r\nimport Lottie from '~/components/general/lottie'\r\nimport VueDraggableResizable from 'vdr/dist/vue-draggable-resizable.es'\r\nimport NikanRecaptcha from '~/components/general/nikan-recaptcha.vue'\r\n\r\n// Form\r\nimport RowSeparator from '~/components/general/row-separator.vue'\r\nimport ColFormGroup from '~/components/form/col/col-form-group.vue'\r\nimport Input from '~/components/general/nikan-input.vue'\r\nimport Textarea from '~/components/general/nikan-textarea.vue'\r\nimport Date from '~/components/general/nikan-date'\r\nimport MultiChoiceLagacy from '~/components/general/nikan-multichoice.vue'\r\nimport MultiChoice from '~/components/general/multichoice.vue'\r\nimport MultiChoice2 from '~/components/general/multichoice2.vue'\r\nimport MultiChoiceFloatingCenter from '~/components/form/multichoice/multichoice-floating-center.vue'\r\nimport MultiChoiceFloatingCenter2 from '~/components/form/multichoice/multichoice2-floating-center.vue'\r\nimport checkbox from '~/components/general/checkbox.vue'\r\nimport Switch from '~/components/general/nikan-switch.vue'\r\nimport MultiCurrency from '~/components/form/multi-currency/multi-currency'\r\nimport MultiCurrencyView from '~/components/form/multi-currency/multi-currency-view'\r\nimport BooleanView from '~/components/form/boolean-label'\r\nimport Popover from '~/components/general/popover'\r\nimport PrintButton from '~/components/print/client-print-button'\r\nimport FrequentDescriptionsInput from '~/components/form/frequent-descriptions/frequent-descriptions-input.vue'\r\nimport ChangeLog from '~/components/form/change-log/change-log.vue'\r\nimport MetaDataList from '~/components/form/meta-data/meta-data-list.vue'\r\nimport RelatedFactorAttachments from '~/components/form/related-factor-attachments/related-factor-attachments.vue'\r\nimport Toggler from '~/components/general/toggler.vue'\r\nimport TogglerGroup from '~/components/general/toggler-group.vue'\r\nimport Info from '~/components/form/info.vue'\r\nimport ReviewModeBar from '@/components/form/review-mode-bar.vue'\r\nimport Stimul from '~/components/stimul/stimul.vue'\r\nimport Popper from '~/components/form/popper.vue'\r\n\r\n// Widgets\r\nimport WidgetError from '~/components/dashboard-widgets/widget-error.vue'\r\nimport WidgetDefaultSettings from '~/components/dashboard-widgets/default-settings.vue'\r\n\r\n// Dropdowns\r\nimport Dropdown from '~/components/general/dropdown.vue'\r\nimport DropdownAccount from '~/components/form/dropdown/dropdown-account.vue'\r\nimport DropdownCenter from '~/components/form/dropdown/dropdown-floating-center.vue'\r\nimport DropdownCategory from '~/components/form/dropdown/dropdown-category.vue'\r\nimport DropdownBank from '~/components/form/dropdown/dropdown-bank.vue'\r\nimport DropdownProductGroup from '~/components/form/dropdown/dropdown-product-group'\r\nimport DropdownProductPriceLevel from '~/components/form/dropdown/dropdown-product-price-level'\r\nimport DropdownProductPriceGroup from '~/components/form/dropdown/dropdown-product-price-group.vue'\r\nimport DropdownProductNeasureUnit from '~/components/form/dropdown/dropdown-product-measure-unit.vue'\r\nimport DropdownProductClassifications from '~/components/form/dropdown/dropdown-product-classifications.vue'\r\nimport DropdownProductFloatings from '~/components/form/dropdown/dropdown-product-floatings.vue'\r\nimport DropdownWarehouse from '~/components/form/dropdown/dropdown-warehouse.vue'\r\nimport DropdownFactorBunch from '~/components/form/dropdown/dropdown-factor-bunch.vue'\r\nimport DropdownSalaryItem from '~/components/form/dropdown/dropdown-salary-item.vue'\r\n\r\n// Navigation\r\nimport NavMenu from '~/components/navigation/nav-menu'\r\nimport NavMenuItem from '~/components/navigation/nav-menu-item'\r\n\r\n// Modal\r\nimport ModalHost from '~/components/modals/modal-host'\r\nimport Modal from '~/components/modals/modal-item'\r\n\r\n// Tab\r\nimport Tabs from '~/components/tabs/tab-host'\r\nimport Tab from '~/components/tabs/tab-item'\r\nimport STabs from '~/components/tabs/stab-host'\r\nimport STab from '~/components/tabs/stab-item'\r\n\r\n// Tree\r\nimport Tree from '~/components/tree/nikan-tree'\r\nimport SubTree from '~/components/tree/nikan-subtree'\r\n\r\n// Table\r\nimport Table from '~/components/table/grid'\r\nimport Label from '~/components/general/nikan-label'\r\nimport AgGrid from '~/components/table/ag-grid'\r\n\r\n// Context Menu\r\nimport ContextMenu from '~/components/context-menu/context-menu'\r\nimport MenuItem from '~/components/context-menu/menu-item'\r\nimport MenuSplitter from '~/components/context-menu/menu-splitter'\r\n\r\n// Badges\r\nimport BadgeHost from '~/components/badges/nikan-badge-host'\r\nimport BadgeItem from '~/components/badges/nikan-badge'\r\n\r\n// Filters\r\nimport FilterViewPort from '~/components/filter/view-port'\r\n\r\n// virtual\r\nimport virtualizer from '@/components/virtualize/virtualizer.vue'\r\n\r\n// QueryDesigner\r\nimport ColumnsTableRow from '~/components/query-designer/columns/ColumnsTableRow.vue'\r\nimport Sorts from '~/components/query-designer/sort/Sorts.vue'\r\nimport ReportHeader from '~/components/query-designer/ReportHeader.vue'\r\nimport ReportParameterItem from '~/components/query-designer/reportParameter/ReportParameterItem.vue'\r\nimport ReportParameters from \"~/components/query-designer/reportParameter/ReportParameters.vue\"\r\nimport EntitySelector from '~/components/query-designer/structureSelector/EntitySelector.vue'\r\nimport EntityColumnSelector from '~/components/query-designer/structureSelector/EntityColumnSelector.vue'\r\nimport ColumnsTable from '~/components/query-designer/columns/ColumnsTable.vue'\r\nimport ConditionGroup from '~/components/query-designer/condition/ConditionGroup.vue'\r\nimport ConditionSingle from '~/components/query-designer/condition/ConditionSingle.vue'\r\nimport DatePicker from '~/components/query-designer/datepicker/DatePicker.vue'\r\nimport ConditionValue from '~/components/query-designer/condition/ConditionValue.vue'\r\nimport Conditions from '~/components/query-designer/condition/Conditions.vue'\r\nimport Variables from '~/components/query-designer/variables/Variables.vue'\r\nimport VariableModify from '~/components/query-designer/variables/VariableModify.vue'\r\nimport QueryVisualizer from '~/components/query-designer/QueryVisualizer.vue'\r\nimport JsonExcel from \"vue-json-excel3\";\r\nconst components = {\r\n install(Vue, options) {\r\n Vue.component(\"downloadExcel\", JsonExcel);\r\n\r\n // Query Designer\r\n Vue.component('Sorts', Sorts)\r\n Vue.component('columns-table-row', ColumnsTableRow)\r\n Vue.component('ReportHeader', ReportHeader)\r\n Vue.component('report-parameter-item', ReportParameterItem)\r\n Vue.component('report-parameters', ReportParameters)\r\n Vue.component('entity-selector', EntitySelector)\r\n Vue.component('entity-column-selector', EntityColumnSelector)\r\n Vue.component('columns-table', ColumnsTable)\r\n Vue.component('condition-group', ConditionGroup)\r\n Vue.component('condition-single', ConditionSingle)\r\n Vue.component('date-picker', DatePicker)\r\n Vue.component('condition-value', ConditionValue)\r\n Vue.component('conditions', Conditions)\r\n Vue.component('variables', Variables)\r\n Vue.component('variable-modify', VariableModify)\r\n Vue.component('QueryVisualizer', QueryVisualizer)\r\n\r\n // General\r\n Vue.component('icon', FontAwesomeIcon)\r\n Vue.component('nk-button', Button)\r\n Vue.component('nk-input-button', InputButton)\r\n Vue.component('nk-drop-button', DropButton)\r\n Vue.component('nk-dialog', Dialog)\r\n Vue.component('nk-popup', Popup)\r\n Vue.component('nk-page', Page)\r\n Vue.component('nk-check-permission', CheckPermission)\r\n Vue.component('nk-check-commercial-access', CheckCommercialAccess)\r\n Vue.component('nk-bootstrap-wrapper', Wrapper)\r\n Vue.component('nk-list', vList)\r\n Vue.component('nk-image', Image)\r\n Vue.component('nk-image-uploader', ImageUploader)\r\n Vue.component('nk-radio', RadioButton)\r\n Vue.component('nk-excel-button', ExcelButton)\r\n Vue.component('nk-lottie', Lottie)\r\n Vue.component('vue-draggable-resizable', VueDraggableResizable)\r\n Vue.component('nk-recaptcha', NikanRecaptcha)\r\n\r\n // Form\r\n Vue.component('nk-row-separator', RowSeparator)\r\n Vue.component('nk-col-form-group', ColFormGroup)\r\n Vue.component('nk-input', Input)\r\n Vue.component('nk-textarea', Textarea)\r\n Vue.component('nk-label', Label)\r\n Vue.component('nk-date', Date)\r\n Vue.component('nk-multichoice-old', MultiChoiceLagacy)\r\n Vue.component('nk-multichoice', MultiChoice)\r\n Vue.component('nk-multichoice-center', MultiChoiceFloatingCenter)\r\n Vue.component('nk-multichoice2-center', MultiChoiceFloatingCenter2)\r\n Vue.component('nk-multichoice2', MultiChoice2)\r\n Vue.component('nk-checkbox', checkbox)\r\n Vue.component('nk-switch', Switch)\r\n Vue.component('nk-multi-currency', MultiCurrency)\r\n Vue.component('nk-multi-currency-view', MultiCurrencyView)\r\n Vue.component('nk-bool', BooleanView)\r\n Vue.component('nk-popover', Popover)\r\n Vue.component('nk-print-button', PrintButton)\r\n Vue.component('nk-descriptions-input', FrequentDescriptionsInput)\r\n Vue.component('nk-change-log', ChangeLog)\r\n Vue.component('nk-metadata', MetaDataList)\r\n Vue.component('related-factor-attachments', RelatedFactorAttachments)\r\n Vue.component('nk-toggler', Toggler)\r\n Vue.component('nk-toggler-group', TogglerGroup)\r\n Vue.component('nk-info', Info)\r\n Vue.component('nk-review-mode-bar', ReviewModeBar)\r\n Vue.component('nk-stimul', Stimul)\r\n Vue.component('nk-popper', Popper)\r\n\r\n // Widgets\r\n Vue.component('nk-widget-error', WidgetError)\r\n Vue.component('nk-widget-default-settings', WidgetDefaultSettings)\r\n\r\n // Dropdown\r\n Vue.component('nk-dropdown', Dropdown)\r\n Vue.component('nk-dropdown-account', DropdownAccount)\r\n Vue.component('nk-dropdown-center', DropdownCenter)\r\n Vue.component('nk-dropdown-category', DropdownCategory)\r\n Vue.component('nk-dropdown-bank', DropdownBank)\r\n Vue.component('nk-dropdown-product-group', DropdownProductGroup)\r\n Vue.component('nk-dropdown-product-price-level', DropdownProductPriceLevel)\r\n Vue.component('nk-dropdown-product-classification', DropdownProductClassifications)\r\n Vue.component('nk-dropdown-product-floatings', DropdownProductFloatings)\r\n Vue.component('nk-dropdown-product-price-group', DropdownProductPriceGroup)\r\n Vue.component('nk-dropdown-product-measure-unit', DropdownProductNeasureUnit)\r\n Vue.component('nk-dropdown-warehouse', DropdownWarehouse)\r\n Vue.component('nk-dropdown-factor-bunch', DropdownFactorBunch)\r\n Vue.component('nk-dropdown-salary-item', DropdownSalaryItem)\r\n\r\n // Navigation\r\n Vue.component('nav-menu', NavMenu)\r\n Vue.component('nav-menu-item', NavMenuItem)\r\n\r\n // Modal\r\n Vue.component('nk-modal-host', ModalHost)\r\n Vue.component('nk-modal', Modal)\r\n\r\n // Tab\r\n Vue.component('nk-tabs', Tabs)\r\n Vue.component('nk-tab', Tab)\r\n Vue.component('nk-stabs', STabs)\r\n Vue.component('nk-stab', STab)\r\n\r\n // Tree\r\n Vue.component('nk-tree', Tree)\r\n Vue.component('nk-sub-tree', SubTree)\r\n\r\n // Table\r\n Vue.component('nk-table', Table)\r\n Vue.component('ag-grid', AgGrid)\r\n // Vue.use(Label)\r\n\r\n // Context Menu\r\n Vue.component('context-menu', ContextMenu)\r\n Vue.component('menu-item', MenuItem)\r\n Vue.component('menu-splitter', MenuSplitter)\r\n\r\n // Badges\r\n Vue.component('nk-badge', BadgeHost)\r\n Vue.component('nk-badge-item', BadgeItem)\r\n\r\n // Filters\r\n Vue.component('nk-filter', FilterViewPort)\r\n\r\n //virtual\r\n Vue.component('nk-virtual-scroller', virtualizer)\r\n\r\n }\r\n}\r\n\r\nexport default components\r\n","import $ from 'jquery'\r\n\r\n(function () {\r\n 'use strict'\r\n var definer = $('ABCD
').appendTo('body')[0]\r\n var type = 'reverse'\r\n\r\n if (definer.scrollLeft > 0) {\r\n type = 'default'\r\n } else {\r\n definer.scrollLeft = 1\r\n if (definer.scrollLeft === 0) {\r\n type = 'negative'\r\n }\r\n }\r\n\r\n $(definer).remove()\r\n $.support.rtlScrollType = type\r\n}())\r\n\r\nif (!window.focusListenersAttached) {\r\n (function () {\r\n window.focusListenersAttached = true\r\n\r\n var hidden = 'hidden'\r\n\r\n // Standards:\r\n if (hidden in document) {\r\n document.addEventListener('visibilitychange', onchange)\r\n } else if ((hidden = 'mozHidden') in document) {\r\n document.addEventListener('mozvisibilitychange', onchange)\r\n } else if ((hidden = 'webkitHidden') in document) {\r\n document.addEventListener('webkitvisibilitychange', onchange)\r\n } else if ((hidden = 'msHidden') in document) {\r\n document.addEventListener('msvisibilitychange', onchange)\r\n // IE 9 and lower:\r\n } else if ('onfocusin' in document) {\r\n document.onfocusin = document.onfocusout = onchange\r\n // All others:\r\n } else {\r\n window.onpageshow = window.onpagehide = window.onfocus = window.onblur = onchange\r\n }\r\n\r\n function onchange(evt) {\r\n var v = 'visible'\r\n var h = 'hidden'\r\n var evtMap = {\r\n focus: v, focusin: v, pageshow: v, blur: h, focusout: h, pagehide: h\r\n }\r\n\r\n evt = evt || window.event\r\n if (evt.type in evtMap) {\r\n document.body.className = evtMap[evt.type]\r\n } else {\r\n document.body.className = this[hidden] ? h : v\r\n }\r\n\r\n if (document.body.className === v) {\r\n $(window).trigger('window-active')\r\n }\r\n }\r\n\r\n // set the initial state (but only if browser supports the Page Visibility API)\r\n if (document[hidden] !== undefined) {\r\n onchange({ type: document[hidden] ? 'blur' : 'focus' })\r\n }\r\n })()\r\n}\r\n","import $ from 'jquery'\r\nimport _ from 'lodash'\r\n\r\nif (!Function.prototype.bind) {\r\n Function.prototype.bind = function (oThis) { // eslint-disable-line\r\n if (typeof this !== 'function') {\r\n // closest thing possible to the ECMAScript 5 internal IsCallable function\r\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable')\r\n }\r\n let AArgs = Array.prototype.slice.call(arguments, 1)\r\n let FToBind = this\r\n let FNOP = function () { }\r\n let FBound = () => FToBind.apply(this instanceof FNOP && oThis ? this : oThis, AArgs.concat(Array.prototype.slice.call(arguments)))\r\n\r\n FNOP.prototype = this.prototype\r\n FBound.prototype = new FNOP()\r\n return FBound\r\n }\r\n}\r\n\r\nif (!Array.prototype.inArray) {\r\n Array.prototype.inArray = function (comparer, element) { // eslint-disable-line\r\n for (var i = 0; i < this.length; i++) {\r\n if (comparer) {\r\n if (comparer(this[i], element)) {\r\n return true\r\n }\r\n } else {\r\n if (this[i] === element) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n }\r\n}\r\n\r\nif (!Array.prototype.sumBy) {\r\n Array.prototype.sumBy = function (field) { // eslint-disable-line\r\n return _.sumBy(this, item => {\r\n return item[field]\r\n })\r\n }\r\n}\r\n\r\nif (!Array.prototype.isDistinct) {\r\n Array.prototype.isDistinct = function () {\r\n var cleaned = this.filter(x => x) // remove null values therefore the result is accurate\r\n return cleaned.length === new Set(cleaned).size\r\n }\r\n}\r\n\r\nif (!Array.prototype.tryPush) {\r\n Array.prototype.tryPush = function (element, comparer) { // eslint-disable-line\r\n if (!this.inArray(comparer, element)) {\r\n this.push(element)\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\n\r\nif (!Array.prototype.tryRemove) {\r\n Array.prototype.tryRemove = function (element, comparer) { // eslint-disable-line\r\n if (!comparer) {\r\n comparer = (el) => el === element\r\n }\r\n var index = this.findIndex(el => comparer(el, element))\r\n if (index > -1) {\r\n this.splice(index, 1)\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n}\r\n\r\nif (!Array.prototype.first) {\r\n Array.prototype.first = function () { // eslint-disable-line\r\n return _.head(this)\r\n }\r\n}\r\n\r\nif (!Array.prototype.last) {\r\n Array.prototype.last = function () { // eslint-disable-line\r\n return _.last(this)\r\n }\r\n}\r\n\r\nif (!Array.prototype.sort2) {\r\n Array.prototype.sort2 = function (field, direction = 'asc', castTo = '') {\r\n if (castTo == 'number')\r\n return this.sort((a, b) => (Number(a[field]) > Number(b[field])) ? (direction == 'asc' ? 1 : -1) : (direction == 'desc' ? 1 : -1))\r\n return this.sort((a, b) => (a[field] > b[field]) ? (direction == 'asc' ? 1 : -1) : (direction == 'desc' ? 1 : -1))\r\n }\r\n}\r\n\r\n\r\nif (!Date.prototype.getUnixTime) {\r\n Date.prototype.getUnixTime = function () { // eslint-disable-line\r\n return this.getTime() / 1000 | 0\r\n }\r\n if (!Date.now) {\r\n Date.now = function () {\r\n return new Date()\r\n }\r\n }\r\n Date.time = function () {\r\n var now = Date.now()\r\n\r\n if (!isNaN(now)) {\r\n now = new Date(now)\r\n }\r\n\r\n return now.getUnixTime()\r\n }\r\n Date.nowPretty = function (separator) {\r\n separator = separator || '-'\r\n\r\n let date = new Date()\r\n let year = date.getFullYear()\r\n let month = date.getMonth() + 1\r\n let day = date.getDate()\r\n\r\n return `${year}${separator}${month}${separator}${day}`\r\n }\r\n}\r\n\r\nHTMLElement.prototype.select = function (selector) {\r\n const all = this.selectAll(selector)\r\n if (all.length > 0) {\r\n return all[0]\r\n } else {\r\n return null\r\n }\r\n}\r\n\r\nHTMLElement.prototype.selectAll = function (selector) {\r\n return Array.from($(this).find(selector))\r\n}\r\n","import $ from 'jquery'\r\n\r\n(function () {\r\n var originalFocusMethod = $.fn.focus\r\n\r\n $.fn.focus = function () {\r\n var that = this\r\n originalFocusMethod.apply(that, arguments)\r\n }\r\n\r\n $.fn.positionAt = function (parent) {\r\n if (this.length === 0) {\r\n return\r\n }\r\n\r\n if (parent == null) {\r\n return this.position()\r\n } else {\r\n parent = parent.length ? parent[0] : parent\r\n var pos = this.position()\r\n var $parents = this.parents()\r\n for (var i = 0; i < $parents.length; i++) {\r\n var p = $parents[i]\r\n\r\n if (p === parent) {\r\n break\r\n }\r\n\r\n pos.top += p.offsetTop\r\n pos.left += p.offsetLeft\r\n }\r\n\r\n return pos\r\n }\r\n }\r\n\r\n $.fn.scrollTo = function (element) {\r\n if (element == null || element.length === 0) {\r\n return\r\n }\r\n\r\n element = $(element)\r\n\r\n var viewPort = this[0]\r\n\r\n var originParentPosition = $(viewPort).css('position')\r\n $(viewPort).css('position', 'relative')\r\n\r\n var border = parseFloat($(viewPort).css('border-top-width')) + parseFloat($(viewPort).css('border-bottom-width'))\r\n\r\n var scrollTop = $(viewPort).scrollTop()\r\n var screenHeight = viewPort.clientHeight + border - 7 // why 7?!\r\n\r\n var viewScreen = {\r\n top: scrollTop,\r\n bottom: scrollTop + screenHeight,\r\n height: screenHeight,\r\n\r\n inBounds(point) {\r\n if (point >= this.top && point <= this.bottom) {\r\n return true\r\n }\r\n\r\n return false\r\n },\r\n getTargetPoint(el, point) {\r\n let target = 0\r\n\r\n if (el.top < this.top) {\r\n let diff = this.top - el.top\r\n\r\n target = this.top - diff\r\n } else if (el.bottom > this.bottom) {\r\n let diff = el.bottom - this.bottom\r\n target = this.top + diff\r\n } else {\r\n target = point\r\n }\r\n\r\n if (target < 0) {\r\n target = 0\r\n }\r\n\r\n return target\r\n },\r\n fitInPort(el) {\r\n return this.height >= el.height\r\n },\r\n inUpHalfBounds(point) {\r\n if (point >= this.top && point <= this.top + (this.height / 2)) {\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n }\r\n\r\n let elHeight = parseFloat(element.height())\r\n let elTop = element.positionAt(viewPort).top\r\n let additionTop = elTop !== element.position().top ? 0 : viewScreen.top\r\n let elementScreen = {\r\n top: additionTop + elTop,\r\n height: elHeight,\r\n bottom: additionTop + elTop + elHeight\r\n }\r\n\r\n var target = null\r\n let fit = viewScreen.fitInPort(elementScreen)\r\n\r\n if (fit) {\r\n if (!viewScreen.inBounds(elementScreen.top)) {\r\n target = viewScreen.getTargetPoint(elementScreen, elementScreen.top)\r\n } else if (!viewScreen.inBounds(elementScreen.bottom)) {\r\n target = viewScreen.getTargetPoint(elementScreen, elementScreen.bottom)\r\n }\r\n } else {\r\n if (!viewScreen.inUpHalfBounds(elementScreen.top)) {\r\n target = viewScreen.top + (viewScreen.height / 4)\r\n }\r\n }\r\n\r\n if (target != null) {\r\n $(viewPort).scrollTop(target)\r\n }\r\n\r\n $(viewPort).css('position', originParentPosition)\r\n }\r\n\r\n $.fn.scroller = function () {\r\n var jel = this\r\n if (jel.length > 0) {\r\n const hasScroll = function (element) {\r\n return element.scrollHeight > element.offsetHeight\r\n }\r\n\r\n var el = jel[0]\r\n if (hasScroll(el)) {\r\n return $(el)\r\n } else {\r\n var parents = $(el).parents()\r\n for (var i = 0; i < parents.length; i++) {\r\n var p = parents[i]\r\n var $p = $(p)\r\n if (hasScroll(p) && !$p.hasClass('app-body')) {\r\n return $p\r\n }\r\n }\r\n return jel\r\n }\r\n } else {\r\n return jel\r\n }\r\n }\r\n\r\n $.fn.heightToBottom = function () {\r\n this.each(function (i, el) {\r\n var child = $(el)\r\n\r\n if (child.hasClass('height-to-bottom-done')) {\r\n return\r\n }\r\n\r\n if (child.parents('.height-to-bottom:not(.height-to-bottom-done)').length > 0) {\r\n child.parents('.height-to-bottom:not(.height-to-bottom-done)').heightToBottom()\r\n }\r\n\r\n var parent = child.parent()\r\n\r\n var originParentPosition = parent.css('position')\r\n parent.css('position', 'relative')\r\n\r\n var parentHeight = parent.height()\r\n var ppt = parseFloat(parent.css('padding-top'))\r\n var ppb = parseFloat(parent.css('padding-bottom'))\r\n var pbt = parseFloat(parent.css('border-top-width'))\r\n var pbb = parseFloat(parent.css('border-bottom-width'))\r\n\r\n var mergedHeight = parentHeight + ppt + ppb + pbt + pbb\r\n if (mergedHeight === parentHeight) {\r\n mergedHeight -= (ppt + ppb + pbt + pbb)\r\n }\r\n\r\n parentHeight = mergedHeight\r\n\r\n var top = child.position().top\r\n var height = parentHeight - top\r\n var marginTop = parseFloat(child.css('margin-top'))\r\n var marginBottom = parseFloat(child.css('margin-bottom'))\r\n\r\n height = height - (ppb + pbb)\r\n height = height - (marginTop + marginBottom)\r\n\r\n var minHeight = child.css('min-height')\r\n if (minHeight && !isNaN(minHeight)) {\r\n minHeight = parseFloat(minHeight)\r\n } else {\r\n minHeight = 0\r\n }\r\n\r\n if (minHeight < height) {\r\n child.css('height', height)\r\n }\r\n\r\n child.addClass('height-to-bottom-done')\r\n parent.css('position', originParentPosition)\r\n })\r\n }\r\n\r\n var origScrollLeft = $.fn.scrollLeft\r\n $.fn.scrollLeft = function (i) {\r\n if ($.support.rtlScrollType === 'default') {\r\n return origScrollLeft.apply(this, arguments)\r\n } else {\r\n var leftEdge = this[0].scrollWidth - this[0].clientWidth\r\n\r\n if (i == null) {\r\n let value = origScrollLeft.apply(this, arguments)\r\n\r\n switch ($.support.rtlScrollType) {\r\n case 'negative':\r\n return value + leftEdge\r\n case 'reverse':\r\n return leftEdge - value\r\n default:\r\n throw new Error('not supported scroll mode')\r\n }\r\n } else {\r\n switch ($.support.rtlScrollType) {\r\n case 'negative':\r\n leftEdge = -leftEdge\r\n return origScrollLeft.call(this, leftEdge + i)\r\n case 'reverse':\r\n return origScrollLeft.call(this, leftEdge - i)\r\n default:\r\n throw new Error('not supported scroll mode')\r\n }\r\n }\r\n }\r\n }\r\n\r\n $.fn.scrollRight = function (val) {\r\n if (val === undefined) {\r\n return this[0].scrollWidth - ($(this[0]).scrollLeft() + this[0].clientWidth)\r\n }\r\n\r\n return this.scrollLeft(this[0].scrollWidth - this[0].clientWidth - val)\r\n }\r\n\r\n $.fn.preBind = function (type, data, fn) {\r\n this.each(function () {\r\n var $this = $(this)\r\n\r\n $this.bind(type, data, fn)\r\n\r\n var allEvents = $._data($this.get(0), 'events')\r\n var currentBindings = allEvents[type]\r\n if ($.isArray(currentBindings)) {\r\n currentBindings.unshift(currentBindings.pop())\r\n }\r\n })\r\n return this\r\n }\r\n})()\r\n","import store from '../store'\r\n\r\nif (!String.prototype.splice) {\r\n /**\r\n * {JSDoc}\r\n *\r\n * The splice() method changes the content of a string by removing a range of\r\n * characters and/or adding new characters.\r\n *\r\n * @this {String}\r\n * @param {number} start Index at which to start changing the string.\r\n * @param {number} delCount An integer indicating the number of old chars to remove.\r\n * @param {string} newSubStr The String that is spliced in.\r\n * @return {string} A new string with the spliced substring.\r\n */\r\n String.prototype.splice = function (start, delCount, newSubStr) { // eslint-disable-line\r\n return this.slice(0, start) + newSubStr + this.slice(start + Math.abs(delCount))\r\n }\r\n}\r\n\r\nif (!String.prototype.trimEnd2) {\r\n /**\r\n * {JSDoc}\r\n *\r\n * The toEnglishDigits method convert every Persian digits to English in content of a string\r\n *\r\n * @this {string}\r\n * @return {string} Persian digits converted to English chars\r\n */\r\n String.prototype.trimEnd2 = function (str) {\r\n var lastIndex = this.lastIndexOf(str)\r\n if (lastIndex > -1) {\r\n return this.substring(0, lastIndex)\r\n }\r\n return this\r\n }\r\n}\r\n\r\nif (!String.prototype.toCamelCase) {\r\n /**\r\n * {JSDoc}\r\n *\r\n * The toEnglishDigits method convert every Persian digits to English in content of a string\r\n *\r\n * @this {string}\r\n * @return {string} Persian digits converted to English chars\r\n */\r\n String.prototype.toCamelCase = function () {\r\n return this.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function (word, index) {\r\n return index === 0 ? word.toLowerCase() : word.toUpperCase()\r\n }).replace(/\\s+/g, '')\r\n }\r\n}\r\n\r\nif (!String.prototype.upperCaseFirstLetter) {\r\n String.prototype.upperCaseFirstLetter = function () {\r\n var firstLetter = this.slice(0, 1)\r\n return firstLetter.toUpperCase() + this.substring(1)\r\n }\r\n}\r\n\r\nif (!String.prototype.lowerCaseFirstLetter) {\r\n String.prototype.lowerCaseFirstLetter = function () {\r\n var firstLetter = this.slice(0, 1)\r\n return firstLetter.toLowerCase() + this.substring(1)\r\n }\r\n}\r\n\r\nif (!String.prototype.toEnglishDigits) {\r\n /**\r\n * {JSDoc}\r\n *\r\n * The toEnglishDigits method convert every Persian digits to English in content of a string\r\n *\r\n * @this {string}\r\n * @return {string} Persian digits converted to English chars\r\n */\r\n String.prototype.toEnglishDigits = function () { // eslint-disable-line\r\n var charCodeZero = '۰'.charCodeAt(0)\r\n return this.replace(/[۰-۹]/g, function (w) {\r\n return w.charCodeAt(0) - charCodeZero\r\n })\r\n }\r\n}\r\n\r\nif (!String.prototype.toPersianDigits) {\r\n /**\r\n * {JSDoc}\r\n *\r\n * The toPersianDigits method convert every English digits to Persian in content of a string\r\n *\r\n * @this {string}\r\n * @return {string} English digits converted to Persian chars\r\n */\r\n String.prototype.toPersianDigits = function () { // eslint-disable-line\r\n var charCodeZero = '۰'.charCodeAt(0)\r\n var charCodeZeroEn = '0'.charCodeAt(0)\r\n var diff = charCodeZero - charCodeZeroEn\r\n return this.replace(/[0-9]/g, function (w) {\r\n return String.fromCharCode(w.charCodeAt(0) + diff)\r\n })\r\n }\r\n}\r\n\r\nif (!String.prototype.toLocaleDigits) {\r\n /**\r\n * {JSDoc}\r\n *\r\n * The toPersianDigits method convert every English digits to Persian in content of a string\r\n *\r\n * @this {string}\r\n * @return {string} English digits converted to Persian chars\r\n */\r\n String.prototype.toLocaleDigits = function () { // eslint-disable-line\r\n return (String(this) !== 'null' && String(this) !== 'undefined') || this === '0' ? this.toPersianDigits() : ''\r\n }\r\n}\r\n\r\nif (!String.prototype.toPriceFormat) {\r\n /**\r\n * {JSDoc}\r\n *\r\n * The toPriceFormat method split every 3 number with a splitter\r\n *\r\n * @this {string}\r\n * @param {splitter} splitter char\r\n * @return {string} Formatted string as a price\r\n */\r\n String.prototype.toPriceFormat = function (splitter) { // eslint-disable-line\r\n const company = store.getters['appContext/getCompany']\r\n const decimals = company.currency.decimals\r\n\r\n if (!splitter) {\r\n splitter = ','\r\n }\r\n if (this.includes('.')) {\r\n let secondSection = this.split('.')[1]\r\n let firstSection = this.split('.')[0]\r\n firstSection = firstSection.replace(/\\B(?=(\\d{3})+(?!\\d))/g, splitter)\r\n\r\n if (parseInt(secondSection) === 0 || decimals === 0)\r\n return firstSection\r\n\r\n return firstSection + '.' + secondSection.slice(0, decimals)\r\n }\r\n return this.replace(/\\B(?=(\\d{3})+(?!\\d))/g, splitter)\r\n }\r\n}\r\n\r\nif (!String.prototype.toCommaSeprator) {\r\n /**\r\n * {JSDoc}\r\n *\r\n * The toPriceFormat method split every 3 number with a splitter\r\n *\r\n * @this {string}\r\n * @param {splitter} splitter char\r\n * @return {string} Formatted string as a price\r\n */\r\n String.prototype.toCommaSeprator = function () { // eslint-disable-line\r\n if (this.includes('.')) {\r\n let secondSection = this.split('.')[1]\r\n let firstSection = this.split('.')[0]\r\n firstSection = firstSection.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\r\n\r\n if (parseInt(secondSection) === 0)\r\n return firstSection\r\n\r\n return firstSection + '.' + secondSection\r\n }\r\n return this.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\r\n }\r\n}\r\n\r\n// export default {}\r\nString.fromKeyCode = function (keyCode) {\r\n var arr = {\r\n 8: 'Backspace',\r\n 9: 'Tab',\r\n 13: 'Enter',\r\n 16: 'Shift',\r\n 17: 'Ctrl',\r\n 18: 'Alt',\r\n 19: 'Pause/Break',\r\n 20: 'Caps Lock',\r\n 27: 'Esc',\r\n 32: 'Space',\r\n 33: 'Page Up',\r\n 34: 'Page Down',\r\n 35: 'End',\r\n 36: 'Home',\r\n 37: 'Left',\r\n 38: 'Up',\r\n 39: 'Right',\r\n 40: 'Down',\r\n 45: 'Insert',\r\n 46: 'Delete',\r\n 48: '0',\r\n 49: '1',\r\n 50: '2',\r\n 51: '3',\r\n 52: '4',\r\n 53: '5',\r\n 54: '6',\r\n 55: '7',\r\n 56: '8',\r\n 57: '9',\r\n 65: 'A',\r\n 66: 'B',\r\n 67: 'C',\r\n 68: 'D',\r\n 69: 'E',\r\n 70: 'F',\r\n 71: 'G',\r\n 72: 'H',\r\n 73: 'I',\r\n 74: 'J',\r\n 75: 'K',\r\n 76: 'L',\r\n 77: 'M',\r\n 78: 'N',\r\n 79: 'O',\r\n 80: 'P',\r\n 81: 'Q',\r\n 82: 'R',\r\n 83: 'S',\r\n 84: 'T',\r\n 85: 'U',\r\n 86: 'V',\r\n 87: 'W',\r\n 88: 'X',\r\n 89: 'Y',\r\n 90: 'Z',\r\n 91: 'Windows',\r\n 93: 'Right Click',\r\n 96: 'Numpad 0',\r\n 97: 'Numpad 1',\r\n 98: 'Numpad 2',\r\n 99: 'Numpad 3',\r\n 100: 'Numpad 4',\r\n 101: 'Numpad 5',\r\n 102: 'Numpad 6',\r\n 103: 'Numpad 7',\r\n 104: 'Numpad 8',\r\n 105: 'Numpad 9',\r\n 106: 'Numpad *',\r\n 107: 'Numpad +',\r\n 109: 'Numpad -',\r\n 110: 'Numpad .',\r\n 111: 'Numpad /',\r\n 112: 'F1',\r\n 113: 'F2',\r\n 114: 'F3',\r\n 115: 'F4',\r\n 116: 'F5',\r\n 117: 'F6',\r\n 118: 'F7',\r\n 119: 'F8',\r\n 120: 'F9',\r\n 121: 'F10',\r\n 122: 'F11',\r\n 123: 'F12',\r\n 144: 'Num Lock',\r\n 145: 'Scroll Lock',\r\n 182: 'My Computer',\r\n 183: 'My Calculator',\r\n 186: ';',\r\n 187: '=',\r\n 188: ',',\r\n 189: '-',\r\n 190: '.',\r\n 191: '/',\r\n 192: '`',\r\n 219: '[',\r\n 220: '\\\\',\r\n 221: ']',\r\n 222: '\"'\r\n }\r\n\r\n return arr[keyCode]\r\n}\r\n\r\nif (!String.prototype.getWords) {\r\n /**\r\n * {JSDoc}\r\n *\r\n * The getWords split strings into words separated by spaces\r\n *\r\n * @this {string}\r\n * @return {string[]} string splitted into string[]\r\n */\r\n String.prototype.getWords = function () { // eslint-disable-line\r\n var str = (this || '').trim()\r\n var words = str.split(' ')\r\n\r\n words = words.map((item, index) => item.trim()).filter(item => item != null && item !== '')\r\n return words\r\n }\r\n}\r\nif (!String.prototype.toPascalCase) {\r\n /**\r\n * {JSDoc}\r\n *\r\n * convert wordsTo PascalCase\r\n *\r\n * @this {string}\r\n * @return {string[]} string splitted into string[]\r\n */\r\n String.prototype.toPascalCase = function () {\r\n return this\r\n .toLowerCase()\r\n .replace(new RegExp(/[-_]+/, 'g'), ' ')\r\n .replace(new RegExp(/[^\\w\\s]/, 'g'), '')\r\n .replace(\r\n new RegExp(/\\s+(.)(\\w*)/, 'g'),\r\n ($1, $2, $3) => `${$2.toUpperCase() + $3}`\r\n )\r\n .replace(new RegExp(/\\w/), s => s.toUpperCase())\r\n }\r\n}\r\n","import store from './store'\r\nimport NikanApp from './plugins/nikan-app'\r\nimport NikanUI from './plugins/nikanUI'\r\nimport NikanModalStorage from './plugins/nikan-modal-plugin'\r\nimport Mixins from './plugins/nikan-mixins'\r\nimport NikanWait from './plugins/nikan-waiting-plugin'\r\nimport NikanCache from './plugins/nikan-cache-plugin'\r\nimport ComponentRegistrar from './plugins/components.js'\r\nimport router from './plugins/router'\r\nimport mitt from 'mitt'\r\nimport {Events} from './statics/events'\r\nconst emitter = mitt()\r\n\r\n//@ts-ignore\r\nimport Endpoints from '@nikan/endpoints'\r\nimport i18n, { hotreload } from '~/plugins/localization'\r\nimport app from './plugins/vue-instance.js'\r\nimport { ObserveVisibility } from 'vue-observe-visibility'\r\n//@ts-ignore\r\nimport SalaryEditor from 'salaryeditor'\r\n\r\n// toast\r\nimport 'vue-toastification/dist/index.css'\r\nimport Toast, { toastInstance, toastOptions } from '~/plugins/toast.js'\r\n\r\nimport axios from 'axios'\r\n\r\nimport KeyHandler from '@nikan/key-handler'\r\nimport 'bootstrap'\r\n\r\nimport './statics/scripts.dep.js'\r\nimport './statics/javascript.prototypes.js'\r\nimport './statics/jquery.prototypes.js'\r\nimport './statics/validators.js'\r\nimport './statics/string.prototypes.js'\r\n\r\n\r\n\r\napp.config.globalProperties.$http = axios\r\napp.config.globalProperties.$toast = toastInstance\r\napp.config.globalProperties.$emitter = emitter\r\n\r\n//@ts-ignore\r\napp.$toast = toastInstance\r\n\r\n// KeyHandler.Configure({ loggerEnabled: false, observe: true })\r\n// @ts-ignore\r\napp.use(KeyHandler)\r\napp.use(NikanApp)\r\napp.use(NikanUI)\r\napp.use(NikanModalStorage)\r\napp.use(Mixins)\r\napp.use(NikanWait)\r\napp.use(NikanCache)\r\napp.use(i18n)\r\napp.use(router)\r\napp.use(Toast, toastOptions)\r\napp.use(store)\r\napp.use(ComponentRegistrar)\r\napp.use(SalaryEditor)\r\n\r\napp.directive('observe-visibility', ObserveVisibility)\r\n\r\nEndpoints.register(store)\r\nrouter.isReady().then(() => {\r\n app.mount('#app')\r\n})\r\n\r\nconst { title } = require('../package')\r\ndocument.title = title\r\n\r\nhotreload(app)\r\n","\r\n\t\r\n\r\n\r\n","import { render } from \"./multichoice-floating-center.vue?vue&type=template&id=59f0f071\"\nimport script from \"./multichoice-floating-center.vue?vue&type=script&lang=js\"\nexport * from \"./multichoice-floating-center.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { TNikanDate, Guid, IResponseList } from '@/interfaces/base'\r\nimport { i18nInstance } from './localization'\r\n//@ts-ignore\r\nimport textVisualizer from '@nikan/text-visualizer'\r\nimport { PrintDataConvertTypes } from '~/plugins/stimul'\r\nimport { PersonnelGenderTypes, ContractTypes, InsuranceTypes, PersonnelEducationalStatusTypes, PersonnelEmploymentAsTypes, PersonnelEmploymentTypes, PersonnelMarriageTypes, PersonnelMilitaryStatusTypes, PersonnelSacrificeStatusTypes, SalaryItemTypes, InsuranceBaseTypes } from '@/enums/salary'\r\nimport { ContractSalaryItem } from '@/classes/salary/contract-salary-item'\r\nimport { CooperateType } from '@/classes/salary/cooperate-type'\r\nimport { Personnel } from '@/classes/salary/personnel'\r\nimport { post } from '@/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport { ContractFullData } from '~/classes/salary/contract-fulldata'\r\nimport jalaliMoment from 'jalali-moment'\r\nimport { Contract } from '@/classes/salary/contract'\r\nimport OrderBy from 'lodash/orderBy'\r\n\r\n\r\nfunction isEmptyExceptZero(val: any): boolean {\r\n return !val && val != 0\r\n}\r\n\r\nfunction computeContractSalaryItemValue(contractSalaryItem: ContractSalaryItem): string {\r\n\r\n if (!isEmptyExceptZero(contractSalaryItem.finalValue))\r\n return monify(contractSalaryItem.finalValue as string)\r\n\r\n else if (!isEmptyExceptZero(contractSalaryItem.userManualValue))\r\n return monify(contractSalaryItem.userManualValue as string)\r\n\r\n else if (!isEmptyExceptZero(contractSalaryItem.value))\r\n return monify(contractSalaryItem.value as string)\r\n\r\n else\r\n return ''\r\n}\r\n\r\nfunction monify(x: number | string) {\r\n\r\n if (x !== 0 && !x)\r\n return ''\r\n\r\n var parts = x.toString().split(\".\")\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")\r\n\r\n if (parseInt(parts[1]) > 0)\r\n return parts.join(\".\")\r\n\r\n return parts[0]\r\n}\r\n\r\nexport const StimulCustomFunctions = [\r\n {\r\n functionName: 'formatPrice',\r\n functionDescription: 'جدا سازی سه رقمی مبالغ عددی',\r\n returnType: String,\r\n returnDescription: 'مبلغ',\r\n paramsTypes: [Number],\r\n paramsNames: ['price'],\r\n paramsDescriptions: ['مبلغ عددی'],\r\n handler: (price: number) => {\r\n const parts = price.toString().split('.')\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\r\n return parts.join('.')\r\n }\r\n },\r\n {\r\n functionName: 'formatPrice',\r\n functionDescription: 'جدا سازی سه رقمی مبالغ رشته ای',\r\n returnType: String,\r\n returnDescription: 'مبلغ',\r\n paramsTypes: [String],\r\n paramsNames: ['price'],\r\n paramsDescriptions: ['مبلغ رشته ای'],\r\n handler: (price: string) => {\r\n const parts = price.split('.')\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\r\n return parts.join('.')\r\n }\r\n },\r\n {\r\n functionName: 'balanceDistinction',\r\n functionDescription: 'تشخیص مانده حساب',\r\n returnType: String,\r\n returnDescription: 'تشخیص',\r\n paramsTypes: [String],\r\n paramsNames: ['price'],\r\n paramsDescriptions: ['مبلغ رشته ای'],\r\n handler: (price: string) => {\r\n if (parseFloat(price) > 0)\r\n return i18nInstance.global.t('account.total-credit')\r\n else\r\n return i18nInstance.global.t('account.total-debit')\r\n }\r\n },\r\n {\r\n functionName: 'balanceDistinctionShort',\r\n functionDescription: 'تشخیص مانده حساب به صورت خلاصه',\r\n returnType: String,\r\n returnDescription: 'تشخیص',\r\n paramsTypes: [String],\r\n paramsNames: ['price'],\r\n paramsDescriptions: ['مبلغ رشته ای'],\r\n handler: (price: string) => {\r\n if (parseFloat(price) > 0)\r\n return i18nInstance.global.t('creditor')\r\n else\r\n return i18nInstance.global.t('debtor')\r\n }\r\n },\r\n {\r\n functionName: 'displayNumberToPersian',\r\n functionDescription: 'نمایش عدد به حروف فارسی',\r\n returnType: String,\r\n returnDescription: 'عدد تبدیل شده به حروف',\r\n paramsTypes: [Number],\r\n paramsNames: ['num'],\r\n paramsDescriptions: ['عدد برای تبدیل'],\r\n handler: (num: number) => {\r\n return textVisualizer(num, { type: 'price-letter' })\r\n }\r\n },\r\n {\r\n functionName: 'displayNumberToPersian',\r\n functionDescription: 'نمایش عدد رشته ای به حروف فارسی',\r\n returnType: String,\r\n returnDescription: 'عدد تبدیل شده به حروف',\r\n paramsTypes: [String],\r\n paramsNames: ['num'],\r\n paramsDescriptions: ['عدد برای تبدیل'],\r\n handler: (num: string) => {\r\n return textVisualizer(num, { type: 'price-letter' })\r\n }\r\n },\r\n {\r\n functionName: 'displayGregiorianDate',\r\n functionDescription: 'نمایش تاریخ به میلادی',\r\n returnType: String,\r\n returnDescription: 'تاریخ میلادی',\r\n paramsTypes: [String],\r\n paramsNames: ['date'],\r\n paramsDescriptions: ['تاریخ برای تبدیل'],\r\n handler: (date: TNikanDate) => {\r\n const d = new Date(date)\r\n return d.toString() !== 'Invalid Date' ? d.toLocaleDateString('en-US') : ''\r\n }\r\n },\r\n {\r\n functionName: 'displayJalaliDate',\r\n functionDescription: 'نمایش تاریخ به شمسی',\r\n returnType: String,\r\n returnDescription: 'تاریخ شمسی',\r\n paramsTypes: [String],\r\n paramsNames: ['date'],\r\n paramsDescriptions: ['تاریخ برای تبدیل'],\r\n handler: (date: TNikanDate) => {\r\n return jalaliMoment(date).locale('fa').format('jYYYY/jMM/jDD')\r\n }\r\n },\r\n {\r\n functionName: 'displayJalaliDay',\r\n functionDescription: 'نمایش روز تاریخ به شمسی',\r\n returnType: String,\r\n returnDescription: 'روز تاریخ شمسی',\r\n paramsTypes: [String],\r\n paramsNames: ['date'],\r\n paramsDescriptions: ['تاریخ برای تبدیل'],\r\n handler: (date: any) => {\r\n return jalaliMoment(date).locale('fa').jDate()\r\n }\r\n },\r\n {\r\n functionName: 'displayJalaliMonth',\r\n functionDescription: 'نمایش ماه به شمسی',\r\n returnType: String,\r\n returnDescription: 'ماه تاریخ شمسی',\r\n paramsTypes: [String],\r\n paramsNames: ['date'],\r\n paramsDescriptions: ['تاریخ برای تبدیل'],\r\n handler: (date: any) => {\r\n return jalaliMoment(date).locale('fa').format('jMMM')\r\n }\r\n },\r\n {\r\n functionName: 'displayJalaliYear',\r\n functionDescription: 'نمایش سال به شمسی',\r\n returnType: String,\r\n returnDescription: 'سال تاریخ شمسی',\r\n paramsTypes: [String],\r\n paramsNames: ['date'],\r\n paramsDescriptions: ['تاریخ برای تبدیل'],\r\n handler: (date: any) => {\r\n return jalaliMoment(date).locale('fa').jYear()\r\n }\r\n },\r\n {\r\n functionName: 'charAt',\r\n functionDescription: 'نمایش کارکتر از رشته',\r\n returnType: String,\r\n returnDescription: 'نمایش جداگانه کارکتر با اندیس مشخص شده',\r\n paramsTypes: [String, Number],\r\n paramsNames: ['str', 'index'],\r\n paramsDescriptions: ['رشته', 'اندیس(می تواند مثبت یا منفی باشد)'],\r\n handler: (str: string, index: number) => {\r\n return String(str).at(index) || ''\r\n }\r\n },\r\n]\r\n\r\nexport async function contractFullDataSchemaGenerator(contractIds: Guid[]) {\r\n\r\n const result: IResponseList = await post(Endpoints.getUrl('contract.fullData'), { contractIds })\r\n const contractFullData = result.data.items.map(x => x.contract)\r\n\r\n const contractFullDataSchema: any = {\r\n name: 'ContractsAndPersonnels',\r\n data: contractFullData,\r\n translatedDataSetName: i18nInstance.global.t('salary.contract.f.contractFullData'),\r\n translatePrefix: 'salary.contract.f',\r\n converter: {\r\n type: PrintDataConvertTypes.MAPPER,\r\n settings: {\r\n // Contract Schema\r\n severanceDetailAmount: 'severanceDetailAmount',\r\n severanceDailyAmount: 'severanceDailyAmount',\r\n baseOfDailyYears: 'baseOfDailyYears',\r\n calculated: 'calculated',\r\n childrenCount: 'childrenCount',\r\n dailyFee: 'dailyFee',\r\n date: 'date',\r\n educationalField: 'educationalField',\r\n descriptionRelatedToSalaryItems: 'descriptionRelatedToSalaryItems',\r\n endDate: 'endDate',\r\n exportableInInsuranceDisket: 'exportableInInsuranceDisket',\r\n exportableInTaxDisket: 'exportableInTaxDisket',\r\n insuranceIncludeHardJob: 'insuranceIncludeHardJob',\r\n insuranceLeaveDate: 'insuranceLeaveDate',\r\n insuranceNumber: 'insuranceNumber',\r\n insuranceStartDate: 'insuranceStartDate',\r\n jobCodeInMinistry: 'jobCodeInMinistry',\r\n number: 'number',\r\n startDate: 'startDate',\r\n taxEndDate: 'taxEndDate',\r\n taxStartDate: 'taxStartDate',\r\n workingPlace: 'workingPlace',\r\n incrementalSum: 'incrementalSum',\r\n decrementalSum: 'decrementalSum',\r\n insurancableSum: 'insurancableSum',\r\n insurance: 'insurance',\r\n tax: 'tax',\r\n taxableSum: 'taxableSum',\r\n taxFreeAmount: 'taxFreeAmount',\r\n payable: 'payable',\r\n jobCode: 'jobCode.name',\r\n jobField: 'jobField.name',\r\n jobGroup: 'jobGroup.name',\r\n workplaceStatus: 'workplaceStatus.name',\r\n taxCalculationTableHeader: 'taxCalculationTableHeader.name',\r\n position: 'position.title',\r\n yearsOfExperience: 'yearsOfExperience',\r\n severancesGroup: 'severancesGroup',\r\n employerInsurance: (item: undefined, row: Contract) => {\r\n return row.contractMetaData?.sumEmployerInsurance\r\n },\r\n unEmploymentInsurance: (item: undefined, row: Contract) => {\r\n return row.contractMetaData?.sumUnEmploymentInsurance\r\n },\r\n contractType: (item: ContractTypes) => i18nInstance.global.t(`enum-items.ContractTypes.${item}`),\r\n cooperateType: (item: CooperateType) => item?.name,\r\n educationalStatus: (item: PersonnelEducationalStatusTypes) => i18nInstance.global.t(`enum-items.EducationalStatuses.${item}`),\r\n employmentAs: (item: PersonnelEmploymentAsTypes) => i18nInstance.global.t(`enum-items.EmploymentAsTypes.${item}`),\r\n employmentType: (item: PersonnelEmploymentTypes) => i18nInstance.global.t(`enum-items.EmploymentTypes.${item}`),\r\n insuranceType: (item: InsuranceTypes) => i18nInstance.global.t(`enum-items.InsuranceTypes.${item}`),\r\n insuranceBaseType: (item: InsuranceBaseTypes) => i18nInstance.global.t(`enum-items.InsuranceBaseTypes.${item}`),\r\n marriage: (item: PersonnelMarriageTypes) => i18nInstance.global.t(`enum-items.MarriageTypes.${item}`),\r\n militaryStatus: (item: PersonnelMilitaryStatusTypes) => i18nInstance.global.t(`enum-items.MilitaryStatuses.${item}`),\r\n sacrificeStatus: (item: PersonnelSacrificeStatusTypes) => i18nInstance.global.t(`enum-items.SacrificeStatuses.${item}`),\r\n\r\n // Personnel Schema\r\n address: 'personnel.address',\r\n code: 'personnel.code',\r\n bank: 'personnel.bank.name',\r\n bankAccountNumber: 'personnel.bankAccountNumber',\r\n bankCardNumber: 'personnel.bankCardNumber',\r\n bankShabaNumber: 'personnel.bankShabaNumber',\r\n birthDate: 'personnel.birthDate',\r\n birthPlace: 'personnel.birthPlace',\r\n description: 'personnel.description',\r\n email: 'personnel.email',\r\n fatherName: 'personnel.fatherName',\r\n firstName: 'personnel.firstName',\r\n floatingCenterName: 'personnel.floatingCenter.name',\r\n floatingCenterCode: 'personnel.floatingCenter.code',\r\n idNumber: 'personnel.idNumber',\r\n isActive: 'personnel.isActive',\r\n issuePlace: 'personnel.issuePlace',\r\n lastName: 'personnel.lastName',\r\n mobile1: 'personnel.mobile1',\r\n mobile2: 'personnel.mobile2',\r\n nationalCode: 'personnel.nationalCode',\r\n nationality: 'personnel.nationality',\r\n phone: 'personnel.phone',\r\n postalCode: 'personnel.postalCode',\r\n religion: 'personnel.religion',\r\n gender: (item: any, row: any) => i18nInstance.global.t(`enum-items.GenderTypes.${row.personnel.gender}`),\r\n sumIgnoredPrivilege: (item: any, row: any) => row.contractMetaData?.sumIgnoredPrivilege || 0\r\n }\r\n },\r\n }\r\n\r\n for (let index = 0; index < result.data.items.length; index++) {\r\n const salaryItemsList = OrderBy(result.data.items[index].contract.contractSalaryItems, [(item) => item.salaryItem.orderIndex], ['desc'])\r\n\r\n for (let key of Object.values(SalaryItemTypes)) {\r\n // @ts-ignore\r\n result.data.items[index].contract[key] = salaryItemsList.filter((x: ContractSalaryItem) => x.salaryItem!.type === key && computeContractSalaryItemValue(x) !== '' && computeContractSalaryItemValue(x) != '0')\r\n\r\n contractFullDataSchema.converter.settings[key] = {\r\n contractSalaryItemName: 'salaryItem.name',\r\n contractSalaryItemValue: (item: any, row: ContractSalaryItem) => computeContractSalaryItemValue(row)\r\n }\r\n }\r\n\r\n result.data.items[index].salaryItems.forEach(salaryItem => {\r\n contractFullDataSchema.data[index][`_${salaryItem.name}`] = salaryItem.value\r\n contractFullDataSchema.converter.settings[`_${salaryItem.name}`] = `_${salaryItem.name}`\r\n })\r\n }\r\n\r\n return contractFullDataSchema\r\n}\r\n\r\nexport function personnelSchemaGenerator(personnels: Personnel[]) {\r\n return {\r\n name: 'Personnel',\r\n data: personnels,\r\n translatedDataSetName: i18nInstance.global.t('salary.personnel.t.Personnel'),\r\n translatePrefix: 'salary.personnel.f',\r\n converter: {\r\n type: PrintDataConvertTypes.MAPPER,\r\n settings: {\r\n address: 'address',\r\n code: 'code',\r\n bank: 'bank.name',\r\n bankAccountNumber: 'bankAccountNumber',\r\n bankCardNumber: 'bankCardNumber',\r\n bankShabaNumber: 'bankShabaNumber',\r\n birthDate: 'birthDate',\r\n birthPlace: 'birthPlace',\r\n description: 'description',\r\n email: 'email',\r\n fatherName: 'fatherName',\r\n firstName: 'firstName',\r\n floatingCenterName: 'floatingCenter.name',\r\n floatingCenterCode: 'floatingCenter.code',\r\n idNumber: 'idNumber',\r\n isActive: 'isActive',\r\n issuePlace: 'issuePlace',\r\n lastName: 'lastName',\r\n mobile1: 'mobile1',\r\n mobile2: 'mobile2',\r\n nationalCode: 'nationalCode',\r\n nationality: 'nationality',\r\n phone: 'phone',\r\n postalCode: 'postalCode',\r\n religion: 'religion',\r\n gender: (item: PersonnelGenderTypes) => i18nInstance.global.t(`enum-items.GenderTypes.${item}`),\r\n }\r\n }\r\n }\r\n}","import { Code, Guid, ICodeBaseModel, TNikanDate } from '@/interfaces/base'\r\nimport { PersonnelCategory } from './personnel-category'\r\nimport { SavingBox } from './saving-box'\r\nimport { PersonnelLoan } from './personnel-loan'\r\nimport { PersonnelFiscalPeriod } from './personnel-fiscalperiod'\r\nimport { PersonnelGenderTypes } from '@/enums/salary'\r\nimport { Contract } from './contract'\r\nimport emptyId from '@/statics/empty-id'\r\nimport { FloatingCenter } from '../system/floating-center'\r\nimport { Bank } from '../system/bank'\r\nimport { MetaData } from '../system/meta-data'\r\n\r\nexport class Personnel implements ICodeBaseModel {\r\n id: Guid\r\n code: Code\r\n imageUrl: string | null\r\n companyId!: Guid\r\n isActive: boolean\r\n firstName: string\r\n lastName: string\r\n fatherName: string\r\n nationalCode: string\r\n idNumber: string\r\n issuePlace: string\r\n gender!: PersonnelGenderTypes\r\n birthDate: TNikanDate | string\r\n birthPlace: string\r\n nationality: string\r\n religion: string\r\n address: string\r\n phone: string | null\r\n postalCode: string | null\r\n email: string | null\r\n mobile1: string | null\r\n mobile2: string | null\r\n bankAccountNumber: string | null\r\n bankCardNumber: string | null\r\n bankShabaNumber: string | null\r\n description: string | null\r\n floatingCenter!: FloatingCenter\r\n bank!: Bank\r\n personnelCategories: PersonnelCategory[]\r\n savingBoxes: SavingBox[]\r\n personnelLoans: PersonnelLoan[]\r\n personnelFiscalPeriods: PersonnelFiscalPeriod[]\r\n contracts: Contract[]\r\n contract: Contract\r\n metaDatas: MetaData[]\r\n\r\n constructor() {\r\n this.id = emptyId\r\n this.code = ''\r\n this.isActive = true\r\n this.firstName = ''\r\n this.lastName = ''\r\n this.fatherName = ''\r\n this.nationalCode = ''\r\n this.idNumber = ''\r\n this.issuePlace = ''\r\n this.birthDate = ''\r\n this.birthPlace = ''\r\n this.nationality = ''\r\n this.religion = ''\r\n this.address = ''\r\n this.personnelCategories = []\r\n this.savingBoxes = []\r\n this.personnelLoans = []\r\n this.personnelFiscalPeriods = []\r\n this.contracts = []\r\n this.contract = new Contract()\r\n this.imageUrl = null\r\n this.phone = null\r\n this.postalCode = null\r\n this.email = null\r\n this.mobile1 = null\r\n this.mobile2 = null\r\n this.bankAccountNumber = null\r\n this.bankCardNumber = null\r\n this.bankShabaNumber = null\r\n this.description = null\r\n this.metaDatas = []\r\n }\r\n}","\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./note-manager.vue?vue&type=template&id=3e53eb07\"\nimport script from \"./note-manager.vue?vue&type=script&lang=js\"\nexport * from \"./note-manager.vue?vue&type=script&lang=js\"\n\nimport \"./note-manager.vue?vue&type=style&index=0&id=3e53eb07&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./product-price-level.vue?vue&type=template&id=05da1ded\"\nimport script from \"./product-price-level.vue?vue&type=script&lang=js\"\nexport * from \"./product-price-level.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./related-factor-attachments-modify.vue?vue&type=template&id=01ced7cc\"\nimport script from \"./related-factor-attachments-modify.vue?vue&type=script&lang=js\"\nexport * from \"./related-factor-attachments-modify.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n\r\n","import { render } from \"./modify.vue?vue&type=template&id=26f914f0\"\nimport script from \"./modify.vue?vue&type=script&lang=js\"\nexport * from \"./modify.vue?vue&type=script&lang=js\"\n\nimport \"./modify.vue?vue&type=style&index=0&id=26f914f0&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-bank.vue?vue&type=template&id=a6923a8e\"\nimport script from \"./dropdown-bank.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-bank.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-product-server.vue?vue&type=template&id=6d636308\"\nimport script from \"./dropdown-product-server.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-product-server.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export interface ISnapshot {\r\n\r\n form: string\r\n state: ISnapshotState\r\n LOCALSTORAGEKEY: string\r\n CURRENTFISCALID: string\r\n CURRENTUSERID: string\r\n\r\n retrieveData(): any\r\n isDataChanged(): Promise\r\n takeSnapshot(type: SnapshotTypes, that: ISnapshot): void\r\n restoreSnapshot(type: SnapshotTypes): any\r\n addToLocalStorage(data: ISnapshotData): void\r\n getLocalStorage(): any\r\n setInterval(): void\r\n tryFlush(userId: string, fiscalPeriodId: string): void\r\n forceFlush(): void\r\n getState(): ISnapshotState\r\n clearInterval(intervalId: number): void\r\n userHasSnapshot(type: SnapshotTypes): boolean\r\n}\r\n\r\nexport interface ISnapshotState {\r\n timeInSeconds: number\r\n initialized: boolean\r\n intervalId: number\r\n snapshotsTaken: number\r\n}\r\n\r\nexport interface ISnapshotData {\r\n date: string\r\n form: string\r\n type: SnapshotTypes\r\n data: any\r\n}\r\n\r\nexport interface ISanpshotInitializer {\r\n form: string\r\n retrieveData(): any\r\n isDataChanged(): Promise\r\n}\r\n\r\nexport enum SnapshotTypes {\r\n MANUAL = 'Manual',\r\n AUTOMATIC = 'Automatic'\r\n}","import { i18nInstance } from '../plugins/localization'\r\nimport $ from 'jquery'\r\nimport $store from '../store'\r\nimport $sc from './shortcut.collection.js'\r\n\r\nexport default (message) => {\r\n if (message == null) {\r\n return\r\n }\r\n\r\n if (!message.buttons || !Array.isArray(message.buttons) || message.buttons.length === 0) {\r\n message.buttons = [{\r\n title: i18nInstance.global.t('dialog.seen'),\r\n shortcut: $sc.find('ok', 'dialog'),\r\n isPrimary: true, \r\n handle: (button, page, e) => {\r\n }\r\n }]\r\n }\r\n\r\n let focusedEl = $(':focus')\r\n\r\n return new Promise((resolve, reject) => {\r\n message.resolve = resolve\r\n message.reject = reject\r\n message.focusedEl = focusedEl\r\n\r\n setTimeout(() => {\r\n $store.dispatch('addMessage', message)\r\n }, 50)\r\n })\r\n}\r\n","export enum AccountGroups {\r\n\tAsset = 'Asset',\r\n\tDebt = 'Debt',\r\n\tWealth = 'Wealth',\r\n\tCost = 'Cost',\r\n\tRevenue = 'Revenue',\r\n\tPledge = 'Pledge',\r\n\tOther = 'Other',\r\n}\r\n\r\nexport enum AccountTypes {\r\n\tPermanent = 'Permanent',\r\n\tTemporary = 'Temporary',\r\n\tPledge = 'Pledge',\r\n}\r\n\r\nexport enum AccountNatures {\r\n\tDebtorRemaining = 'DebtorRemaining',\r\n\tCreditorRemaining = 'CreditorRemaining',\r\n\tAlwaysDebtor = 'AlwaysDebtor',\r\n\tAlwaysCreditor = 'AlwaysCreditor',\r\n\tUndefined = 'Undefined',\r\n}\r\n\r\nexport enum AccountGroupTypes {\r\n\tExpense_SaleOfficeGeneral = 'Expense_SaleOfficeGeneral',\r\n\tExpense_Operating = 'Expense_Operating',\r\n\tExpense_NonOperating = 'Expense_NonOperating',\r\n\tExpense_OtherOperating = 'Expense_OtherOperating',\r\n\tExpense_OtherNonOperating = 'Expense_OtherNonOperating',\r\n\tExpense_Financial = 'Expense_Financial',\r\n\tExpense_IncomeTaxes = 'Expense_IncomeTaxes',\r\n\tExpense_Cost = 'Expense_Cost',\r\n\tIncome_Operating = 'Income_Operating',\r\n\tIncome_NonOperating = 'Income_NonOperating',\r\n\tIncome_OtherOperating = 'Income_OtherOperating',\r\n\tIncome_OtherNonOperating = 'Income_OtherNonOperating',\r\n}\r\n\r\nexport enum FloatingCenterGroups {\r\n\tPerson = 'Person',\r\n\tCompany = 'Company',\r\n\tProject = 'Project',\r\n\tDepartment = 'Department',\r\n\tOrders = 'Orders',\r\n\tCreditsLc = 'CreditsLc',\r\n\tSaleContracts = 'SaleContracts',\r\n\tPurchaseContracts = 'PurchaseContracts',\r\n\tProduct = 'Product',\r\n\tProductCategory = 'ProductCategory',\r\n\tWarehouse = 'Warehouse',\r\n\tCostCenter = 'CostCenter',\r\n\tService = 'Service',\r\n\tFacilities = 'Facilities',\r\n\tPersonel = 'Personel',\r\n\tBank = 'Bank',\r\n\tCash = 'Cash',\r\n\tOther = 'Other',\r\n}\r\n\r\nexport enum IdentityTypes {\r\n\tReal = 'Real',\r\n\tLegal = 'Legal',\r\n}\r\n\r\nexport enum NationalityTypes {\r\n\tIranian = 'Iranian',\r\n\tForeign = 'Foreign',\r\n\tInternational = 'International',\r\n}\r\n\r\nexport enum FormModes {\r\n\tREADONLY = 'readonly',\r\n\tEDITABLE = 'editable'\r\n}\r\n\r\nexport enum NavigationDirections {\r\n\tNEXT = 'next',\r\n\tPREVIOUS = 'previous'\r\n}\r\n\r\nexport enum JalaliMonths {\r\n\tFarvardin,\r\n\tOrdibehesht,\r\n\tKhurdad,\r\n\tTir,\r\n\tMordad,\r\n\tShahrivar,\r\n\tMehr,\r\n\tAban,\r\n\tAzar,\r\n\tDey,\r\n\tBahman,\r\n\tEsfand\r\n}\r\n\r\nexport enum RowStates {\r\n\tChanged = 'changed',\r\n\tUnchanged = 'unchanged',\r\n\tNew = 'new',\r\n\tDeleted = 'deleted'\r\n}\r\n\r\nexport enum DocumentClosingTypes {\r\n\tPermanent = 'Permanent',\r\n\tTemporary = 'Temporary'\r\n}\r\n\r\nexport enum DocumentGroups {\r\n\tNormal = 'Normal',\r\n\tAdjustNature = 'AdjustNature',\r\n\tCloseTemporaryAccounts = 'CloseTemporaryAccounts',\r\n\tCurrencyExchange = 'CurrencyExchange',\r\n\tOpening_Account = 'Opening_Account',\r\n\tOpening_ProductStock = 'Opening_ProductStock',\r\n\tOpening_ReceiveCheque = 'Opening_ReceiveCheque',\r\n\tOpening_PaymentCheque = 'Opening_PaymentCheque',\r\n\tClosing = 'Closing',\r\n\tTransferCostAndBenefitRemain = 'TransferCostAndBenefitRemain',\r\n}\r\n\r\nexport enum SystemDocumentTypes {\r\n\tUnknown = 'Unknown',\r\n\tRegistered = 'Registered',\r\n\tNote = 'Note',\r\n\tReviewed = 'Reviewed',\r\n\tAccepted = 'Accepted',\r\n\tOther = 'Other'\r\n}\r\n\r\nexport enum SaleReportGroupType {\r\n\tProduct = 'Product',\r\n\tFirstFloatingCenter = 'FirstFloatingCenter',\r\n\tCompany = 'Company',\r\n\tFactor = 'Factor',\r\n\tMarketer = 'Marketer',\r\n\tFactorBunch = 'FactorBunch',\r\n\tFactorFloatingCenterSaleCrawling = 'FactorFloatingCenterSaleCrawling',\r\n\tFactorProductGroupSaleCrawling = 'FactorProductGroupSaleCrawling',\r\n\tFactorProductSaleCrawling = 'FactorProductSaleCrawling',\r\n\tProductGroup = 'ProductGroup'\r\n}\r\n\r\nexport enum ProductCountCrawlingType {\r\n\tSupplier = 'supplier',\r\n\tProductGroup = 'productGroup',\r\n\tProduct = 'product',\r\n\tClassification = 'classification',\r\n\tWarehouse = 'warehouse',\r\n\tWarehouseCrawling = 'warehouseCrawling'\r\n}\r\nexport enum FactorTypes {\r\n\tBuy = 'Buy',\r\n\tSale = 'Sale',\r\n\tBuyReturn = 'BuyReturn',\r\n\tSaleReturn = 'SaleReturn',\r\n\tProforma = 'Proforma',\r\n}\r\n\r\nexport enum ReceiptHawalaGroups {\r\n\tBUYRECEIPT = 'BuyReceipt',\r\n\tSALEHAWALA = 'SaleHawala',\r\n\tWAREHOUSETRANSFER = 'WarehouseTransfer',\r\n\tWAREHOUSETAKING = 'WarehouseTaking',\r\n\tOPENINGPRODUCTSTOCK = 'OpeningProductStock',\r\n\tRECIEPTRETURNSALE = 'SaleReturnReceipt',\r\n\tHAWALARETURNBUY = 'BuyReturnHawala',\r\n\r\n\tUsBorrowProductAccountWithOthers = 'UsBorrowProductAccountWithOthers',\r\n\tProductSampleCenterHawala = 'ProductSampleCenterHawala',\r\n\tBorrowProductHawala = 'BorrowProductHawala',\r\n\tProductionCenterHawala = 'ProductionCenterHawala',\r\n\tReturnProductionReceipt = 'ReturnProductionReceipt',\r\n\tBorrowProductReceipt = 'BorrowProductReceipt',\r\n\tProductionReceipt = 'ProductionReceipt',\r\n\tConsumeHawala = 'ConsumeHawala',\r\n}\r\n\r\nexport enum CheckoutTypes {\r\n\t/// \r\n\t/// میان دوره\r\n\t/// \r\n\tMidTerm = 'MidTerm',\r\n\t/// \r\n\t/// دائمی\r\n\t/// \r\n\tPermanent = 'Permanent'\r\n}\r\n\r\nexport enum NorouzCalculationType {\r\n\t/// \r\n\t/// پایه اداره کار\r\n\t/// \r\n\tBaseDailyWage = 'BaseDailyWage',\r\n\r\n\t/// \r\n\t/// پایه \\\r\n\t/// \r\n\tContractDailyWage = 'ContractDailyWage'\r\n}\r\n\r\nexport enum TaxPanelSettlementMethodTypes {\r\n\tCashe = 'Cashe',\r\n\tCredit = 'Credit',\r\n\tHybrid = 'Hybrid'\r\n}\r\n\r\nexport enum TaxPanelPersonTypes {\r\n\tGenuine = 'Genuine',\r\n\tLegal = 'Legal',\r\n\tCivilPartnership = 'CivilPartnership',\r\n\tNonInranianNational = 'NonInranianNational',\r\n}\r\n\r\nexport enum TaxPanelInvoiceSubjects {\r\n\tOrginal = 'Orginal',\r\n\tEdited = 'Edited',\r\n\tExpired = 'Expired',\r\n\tSalesReturn = 'SalesReturn'\r\n}\r\n\r\nexport enum TaxPanelInvoiceAlgorithms {\r\n\tSales = 'Sales',\r\n\tCurrency = 'Currency',\r\n\tJewel = 'Jewel',\r\n\tContracting = 'Contracting',\r\n\tServiceBill = 'ServiceBill',\r\n\tAirport = 'Airport',\r\n\tExport = 'Export',\r\n}\r\n\r\nexport enum TaxPanelInvoiceTypes {\r\n\tFirst = 'First',\r\n\tSecond = 'Second'\r\n}\r\n\r\nexport enum TaxPanelInvoiceMoadianTypes {\r\n\tUnsend = 'Unsend',\r\n\tSended = 'Sended',\r\n\tPend = 'Pend',\r\n\tFaileded = 'Faileded',\r\n\tInProgress = 'InProgress'\r\n}\r\n\r\nexport enum NotifyCenterUpdateStatus {\r\n\tAdded = 'Added', AddOrModified = 'AddOrModified', Deleted = 'Deleted'\r\n}\r\n","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import _ from \"lodash\";\r\nimport jMoment from 'jalali-moment'\r\nexport default {\r\n template: `\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n `,\r\n props: {\r\n options: { type: Object }\r\n },\r\n data: function () {\r\n const types = [\r\n { id: 'greaterThan', func: 'isAfter', name: 'بزرگتر از' },\r\n { id: 'lessThan', func: 'isBefore', name: 'کوچکتر از' },\r\n { id: 'equals', func: 'isSame', name: 'برابر با' },\r\n { id: 'between', func: 'between', name: 'بین' },\r\n ]\r\n return {\r\n filterText: null,\r\n filterText2: null,\r\n selectedType: types[0],\r\n types: types\r\n };\r\n },\r\n mounted() {\r\n this.settings = _.merge(this.settings, this.options)\r\n this.settings.selectedType && (this.selectedType = this.settings.selectedType)\r\n },\r\n watch: {\r\n filterText(newFilterText, oldFilterText) {\r\n this.params.filterChangedCallback();\r\n },\r\n },\r\n methods: {\r\n isFilterActive() {\r\n return (\r\n this.filterText !== null &&\r\n this.filterText !== undefined &&\r\n this.filterText !== ''\r\n );\r\n },\r\n handleSelectedOption(event) {\r\n // console.log(event.target.value)\r\n this.selectedType = this.types.find(x => x.id == event.target.value)\r\n if (this.filterText) this.params.filterChangedCallback();\r\n },\r\n doesFilterPass(params) {\r\n const value = this.params.valueGetter(params);\r\n\r\n if (this.isFilterActive()) {\r\n if (!value) return false;\r\n let status\r\n if (this.selectedType?.func === 'between') {\r\n status = jMoment(value, 'YYYY-M-D HH:mm:ss').isSameOrAfter(jMoment(this.filterText, 'YYYY-M-D HH:mm:ss'), 'day') &&\r\n jMoment(value, 'YYYY-M-D HH:mm:ss').isSameOrBefore(jMoment(this.filterText2, 'YYYY-M-D HH:mm:ss'), 'day')\r\n } else\r\n status = jMoment(value, 'YYYY-M-D HH:mm:ss')[this.selectedType?.func](jMoment(this.filterText, 'YYYY-M-D HH:mm:ss'), 'day')\r\n\r\n return status;\r\n // return Number(value) > Number(this.filterText);\r\n }\r\n },\r\n\r\n isNumeric(n) {\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n },\r\n\r\n getModel() {\r\n return this.filterText\r\n // return this.isFilterActive() ? Number(this.filterText) : null;\r\n },\r\n\r\n setModel(model) {\r\n this.filterText = model;\r\n },\r\n\r\n myMethodForTakingValueFromFloatingFilter(value) {\r\n this.filterText = value;\r\n if(!value) this.filterText2 = null\r\n },\r\n },\r\n};\r\n","export default {\r\n template: `\r\n \r\n `,\r\n data: function () {\r\n return {\r\n currentValue: null,\r\n };\r\n },\r\n methods: {\r\n removeFilter(){\r\n // this.$refs.datePicker.setDefault(null)\r\n this.currentValue = null\r\n this.onInputBoxChanged()\r\n },\r\n onInputBoxChanged() {\r\n // console.log('onInputBoxChanged',this.currentValue)\r\n if (this.currentValue === '') {\r\n // Remove the filter\r\n this.params.parentFilterInstance((instance) => {\r\n instance.myMethodForTakingValueFromFloatingFilter(null);\r\n });\r\n return;\r\n }\r\n\r\n this.params.parentFilterInstance((instance) => {\r\n instance.myMethodForTakingValueFromFloatingFilter(this.currentValue);\r\n });\r\n },\r\n\r\n onParentModelChanged(parentModel) {\r\n console.log('floating',parentModel)\r\n // When the filter is empty we will receive a null value here\r\n if (parentModel == null) {\r\n this.currentValue = '';\r\n } else {\r\n this.currentValue = parentModel;\r\n }\r\n },\r\n },\r\n};\r\n","import _ from \"lodash\";\r\nimport jMoment from 'jalali-moment'\r\n\r\nexport default {\r\n template: `\r\n \r\n \r\n \r\n this.filterText=value\" />\r\n\r\n
\r\n `,\r\n props: {\r\n options: { type: Object }\r\n },\r\n data: function () {\r\n const types = [\r\n { id: 'include', func: 'isAfter', name: 'شامل' },\r\n { id: 'startWith', func: 'isBefore', name: 'شروع با' },\r\n { id: 'endWith', func: 'isBefore', name: 'پایان با' },\r\n { id: 'equals', func: 'isSame', name: 'برابر با' },\r\n ]\r\n return {\r\n filterText: null,\r\n selectedType: types[0],\r\n types: types\r\n };\r\n },\r\n mounted() {\r\n this.settings = _.merge(this.settings, this.options)\r\n this.settings.selectedType && (this.selectedType = this.settings.selectedType)\r\n },\r\n watch: {\r\n filterText(newFilterText, oldFilterText) {\r\n this.params.filterChangedCallback();\r\n },\r\n },\r\n methods: {\r\n isFilterActive() {\r\n return (\r\n this.filterText !== null &&\r\n this.filterText !== undefined &&\r\n this.filterText !== ''\r\n );\r\n },\r\n handleSelectedOption(event) {\r\n // console.log(event.target.value)\r\n this.selectedType = this.types.find(x => x.id == event.target.value)\r\n if (this.filterText) this.params.filterChangedCallback();\r\n },\r\n doesFilterPass(params) {\r\n const value = this.params.valueGetter(params);\r\n const valueFormatted = this.params?.colDef?.valueFormatter({ ...params, value: value })\r\n const functions = {\r\n equals: (value) => this.filterText == value,\r\n endWith: value => value.endsWith(this.filterText),\r\n startWith: value => value.startsWith(this.filterText),\r\n include: value => value.includes(this.filterText),\r\n }\r\n if (this.isFilterActive()) {\r\n // if (!value) return false;\r\n let status = !valueFormatted && !value ? false : functions[this.selectedType?.id](valueFormatted ? valueFormatted : value)\r\n return status;\r\n // return Number(value) > Number(this.filterText);\r\n }\r\n },\r\n\r\n isNumeric(n) {\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n },\r\n\r\n getModel() {\r\n return this.filterText\r\n // return this.isFilterActive() ? Number(this.filterText) : null;\r\n },\r\n\r\n setModel(model) {\r\n this.filterText = model;\r\n },\r\n\r\n myMethodForTakingValueFromFloatingFilter(value) {\r\n this.filterText = value;\r\n },\r\n },\r\n};\r\n","export default {\r\n template: `\r\n \r\n `,\r\n data: function () {\r\n return {\r\n currentValue: null,\r\n };\r\n },\r\n methods: {\r\n removeFilter() {\r\n this.currentValue = ''\r\n this.onInputBoxChanged()\r\n },\r\n onInputBoxChanged() {\r\n const valueSetter = () => {\r\n this.params.parentFilterInstance((instance) => {\r\n this.timeout && clearTimeout(this.timeout)\r\n this.timeout = setTimeout(() => {\r\n instance.myMethodForTakingValueFromFloatingFilter(this.currentValue === '' ? null : this.currentValue);\r\n }, this.params.filterParams.debounceMs)\r\n });\r\n }\r\n\r\n valueSetter()\r\n\r\n },\r\n\r\n onParentModelChanged(parentModel) {\r\n // console.log('floating',parentModel)\r\n // When the filter is empty we will receive a null value here\r\n if (parentModel == null) {\r\n this.currentValue = '';\r\n } else {\r\n this.currentValue = parentModel;\r\n }\r\n },\r\n },\r\n};\r\n","import _ from \"lodash\"\r\nimport jMoment from 'jalali-moment'\r\n\r\nexport default {\r\n\ttemplate: `\r\n \r\n \r\n \r\n this.filterText=value\" />\r\n\r\n
\r\n\t`,\r\n\tprops: {\r\n\t\toptions: { type: Object }\r\n\t},\r\n\tdata: function () {\r\n\t\tconst types = [\r\n\t\t\t{ id: 'include', func: 'isInclude', name: 'شامل شود' },\r\n\t\t\t{ id: 'equal', func: 'isSame', name: 'برابر با' },\r\n\t\t\t{ id: 'graterThan', func: 'isAfter', name: 'بزرگتر از' },\r\n\t\t\t{ id: 'smallerThan', func: 'isBefore', name: 'کوچکتر از' },\r\n\t\t]\r\n\t\treturn {\r\n\t\t\tfilterText: null,\r\n\t\t\tselectedType: types[0],\r\n\t\t\ttypes: types,\r\n\t\t\tsettings: {\r\n\t\t\t\tinputOptions: {\r\n\t\t\t\t\tmode: 'price',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tthis.settings = _.merge(this.settings, this.params.options)\r\n\t\tthis.settings.selectedType && (this.selectedType = this.settings.selectedType)\r\n\t},\r\n\twatch: {\r\n\t\tfilterText(newFilterText, oldFilterText) {\r\n\t\t\tthis.params.filterChangedCallback()\r\n\t\t},\r\n\t},\r\n\tmethods: {\r\n\t\tisFilterActive() {\r\n\t\t\treturn (\r\n\t\t\t\tthis.filterText !== null &&\r\n\t\t\t\tthis.filterText !== 0 &&\r\n\t\t\t\tthis.filterText !== undefined &&\r\n\t\t\t\tthis.filterText !== ''\r\n\t\t\t)\r\n\t\t},\r\n\t\thandleSelectedOption(event) {\r\n\t\t\t// console.log(event.target.value)\r\n\t\t\tthis.selectedType = this.types.find(x => x.id == event.target.value)\r\n\t\t\tif (this.filterText) this.params.filterChangedCallback()\r\n\t\t},\r\n\t\tdoesFilterPass(params) {\r\n\t\t\tlet value = this.params.valueGetter(params)\r\n\t\t\tlet valueFormatted = this.params?.colDef.valueFormatter(params)\r\n\t\t\tconst functions = {\r\n\t\t\t\tinclude: (value) => String(value).includes(this.filterText),\r\n\t\t\t\tequal: (value) => parseFloat(this.filterText) === value,\r\n\t\t\t\tgraterThan: value => parseFloat(this.filterText) <= value,\r\n\t\t\t\tsmallerThan: value => parseFloat(this.filterText) >= value,\r\n\t\t\t}\r\n\t\t\tif (this.isFilterActive()) {\r\n\t\t\t\tif (!valueFormatted && valueFormatted) return false\r\n\t\t\t\tif (typeof valueFormatted === 'string' && /^-?\\d+(?:[.,]\\d+)*$/.exec(valueFormatted))\r\n\t\t\t\t\tvalueFormatted = valueFormatted.replace(/[^0-9.-]+/g, \"\")\r\n\t\t\t\tvalueFormatted = parseFloat(valueFormatted)\r\n\t\t\t\treturn functions[this.selectedType?.id](this.params.colDef.valueFormatter ? valueFormatted : value)\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tisNumeric(n) {\r\n\t\t\treturn !isNaN(parseFloat(n)) && isFinite(n)\r\n\t\t},\r\n\r\n\t\tgetModel() {\r\n\t\t\treturn this.filterText\r\n\t\t\t// return this.isFilterActive() ? Number(this.filterText) : null;\r\n\t\t},\r\n\r\n\t\tsetModel(model) {\r\n\t\t\tthis.filterText = model\r\n\t\t},\r\n\r\n\t\tmyMethodForTakingValueFromFloatingFilter(value) {\r\n\t\t\tthis.filterText = value\r\n\t\t},\r\n\t},\r\n}\r\n","import _ from 'lodash'\r\n\r\nexport default {\r\n\ttemplate: `\r\n \r\n\t`,\r\n\tmounted() {\r\n\t\tthis.settings = _.merge(this.settings, this.params.filterParams.options)\r\n\t},\r\n\tdata: function () {\r\n\t\treturn {\r\n\t\t\tcurrentValue: null,\r\n\t\t\tsettings: {\r\n\t\t\t\tinputOptions: {\r\n\t\t\t\t\tmode: 'price',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t},\r\n\tmethods: {\r\n\t\tremoveFilter() {\r\n\t\t\tthis.currentValue = ''\r\n\t\t\tthis.onInputBoxChanged()\r\n\t\t},\r\n\t\tonInputBoxChanged() {\r\n\t\t\tif (this.currentValue === '') {\r\n\t\t\t\t// Remove the filter\r\n\t\t\t\tthis.params.parentFilterInstance((instance) => {\r\n\t\t\t\t\tinstance.myMethodForTakingValueFromFloatingFilter(null);\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.params.parentFilterInstance((instance) => {\r\n\t\t\t\tinstance.myMethodForTakingValueFromFloatingFilter(this.currentValue);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tonParentModelChanged(parentModel) {\r\n\t\t\t// console.log('floating',parentModel)\r\n\t\t\t// When the filter is empty we will receive a null value here\r\n\t\t\tif (parentModel == null) {\r\n\t\t\t\tthis.currentValue = '';\r\n\t\t\t} else {\r\n\t\t\t\tthis.currentValue = parentModel;\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n};\r\n","\r\n {{ prefix }} {{ cellValue }}\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./totalAndSubTotal.vue?vue&type=template&id=3ba095d9\"\nimport script from \"./totalAndSubTotal.vue?vue&type=script&lang=js\"\nexport * from \"./totalAndSubTotal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\r\n\r\n\t
\r\n\r\n\r\n","import { render } from \"./agGrid-settings.vue?vue&type=template&id=02ddcd4c\"\nimport script from \"./agGrid-settings.vue?vue&type=script&lang=js\"\nexport * from \"./agGrid-settings.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=67ca88b2\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=67ca88b2&lang=less\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
{{ $t('sale.product-request.m.no-product-floating-found') }}
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./product-center-modify.vue?vue&type=template&id=46700ae5\"\nimport script from \"./product-center-modify.vue?vue&type=script&lang=js\"\nexport * from \"./product-center-modify.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./admin-details.vue?vue&type=template&id=4eaffe98\"\nimport script from \"./admin-details.vue?vue&type=script&lang=js\"\nexport * from \"./admin-details.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./multi-currency-cell.vue?vue&type=template&id=5517868b\"\nimport script from \"./multi-currency-cell.vue?vue&type=script&lang=js\"\nexport * from \"./multi-currency-cell.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { cloneDeep } from 'lodash'\r\nimport store from '../store'\r\nimport { i18nInstance } from './localization'\r\nimport { StimulCustomFunctions } from './stimul-utils'\r\n\r\nexport default class Stimul {\r\n\r\n\tconstructor(eventHandlers, getDataSources, additionalData, isBulk = false, customFunctions = StimulCustomFunctions, createBaseDivsOnInit = true) {\r\n\r\n\t\tif (!Stimulsoft)\r\n\t\t\tthrow new Error('StimulSoft Plugin Not Installed!')\r\n\r\n\t\tthis.currentUser = store.getters['appContext/getUser']\r\n\r\n\t\tthis.CONSTANTS = {\r\n\t\t\tBASENAME: 'NikanClientPrint',\r\n\t\t\tVIEWERDIVID: 'ViewerContent',\r\n\t\t\tDESIGNERDIVID: 'DesignerContent',\r\n\t\t\tSTIMULCONTAINERID: 'NikanStimulContainer'\r\n\t\t}\r\n\r\n\t\tthis.states = {\r\n\t\t\tdivsAdded: false\r\n\t\t}\r\n\r\n\t\tthis.getDataSources = getDataSources\r\n\t\tthis.eventHandlers = eventHandlers\r\n\t\tthis.customFunctions = customFunctions\r\n\t\tthis.additionalData = additionalData\r\n\t\tthis.isBulk = isBulk\r\n\r\n\t\tthis.options = this.createOptions()\r\n\t\tthis.viewer = this.createViewer()\r\n\t\tthis.designer = this.createDesigner()\r\n\t\tthis.registerCustomFunctions()\r\n\t\tthis.registerCustomFonts()\r\n\r\n\t\tif (createBaseDivsOnInit) // if used before mounted should be false\r\n\t\t\tthis.createBaseDivs()\r\n\t}\r\n\r\n\tcreateBaseDivs() {\r\n\t\tconst container = document.getElementById(this.CONSTANTS.STIMULCONTAINERID)\r\n\r\n\t\tif (!container)\r\n\t\t\tthrow new Error('Stimul Container Not Found!')\r\n\r\n\t\tconst viewerDiv = document.createElement('div')\r\n\t\tviewerDiv.id = this.CONSTANTS.VIEWERDIVID\r\n\t\tviewerDiv.style.direction = 'ltr'\r\n\t\tviewerDiv.style.height = '100%'\r\n\r\n\t\tconst designerDiv = document.createElement('div')\r\n\t\tdesignerDiv.id = this.CONSTANTS.DESIGNERDIVID\r\n\t\tdesignerDiv.style.direction = 'ltr'\r\n\r\n\t\tcontainer.style.textAlign = 'left'\r\n\t\tcontainer.appendChild(viewerDiv)\r\n\t\tcontainer.appendChild(designerDiv)\r\n\r\n\t\tthis.states.divsAdded = true\r\n\t}\r\n\r\n\tcreateOptions() {\r\n\r\n\t\t// creating viewer options\r\n\t\tvar viewerOptions = new Stimulsoft.Viewer.StiViewerOptions()\r\n\r\n\t\tviewerOptions.height = \"100%\"\r\n\t\tviewerOptions.width = \"100%\"\r\n\r\n\t\tviewerOptions.toolbar.printDestination = Stimulsoft.Viewer.StiPrintDestination.Direct\r\n\t\tviewerOptions.appearance.scrollbarsMode = true\r\n\t\tviewerOptions.appearance.htmlRenderMode = Stimulsoft.Report.Export.StiHtmlExportMode.Table\r\n\t\t// viewerOptions.appearance.rightToLeft = true\r\n\r\n\r\n\t\tviewerOptions.toolbar.showDesignButton = true\r\n\t\tviewerOptions.toolbar.showAboutButton = false\r\n\t\tviewerOptions.toolbar.showSendEmailButton = true\r\n\t\t// viewerOptions.toolbar.fontFamily = 'Tahoma'\r\n\r\n\t\tviewerOptions.email.defaultEmailAddress = this.currentUser.email || ''\r\n\t\tviewerOptions.email.defaultEmailSubject = \"New Design\" // designName\r\n\t\tviewerOptions.email.defaultEmailMessage = \"\"\r\n\r\n\t\tviewerOptions.exports.showExportToExcel = true\r\n\t\tviewerOptions.exports.showExportToHtml = false\r\n\t\tviewerOptions.exports.showExportToHtml5 = false\r\n\t\tviewerOptions.exports.showExportToImageSvg = false\r\n\t\tviewerOptions.exports.showExportToOpenDocumentCalc = false\r\n\t\tviewerOptions.exports.showExportToOpenDocumentWriter = false\r\n\t\tviewerOptions.exports.showExportToText = false\r\n\r\n\t\t// creating designer options\r\n\t\tvar designerOptions = new Stimulsoft.Designer.StiDesignerOptions()\r\n\r\n\t\tdesignerOptions.appearance.fullScreenMode = true\r\n\t\tdesignerOptions.appearance.allowChangeWindowTitle = false\r\n\t\tdesignerOptions.appearance.htmlRenderMode = Stimulsoft.Report.Export.StiHtmlExportMode.Table\r\n\r\n\t\tdesignerOptions.components.showMathFormula = true\r\n\r\n\t\treturn {\r\n\t\t\tviewer: viewerOptions,\r\n\t\t\tdesigner: designerOptions\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tcreateViewer() {\r\n\r\n\t\tif (!this.options && !this.options.viewer)\r\n\t\t\tthrow new Error('Stimul Viewer Options Not Found!')\r\n\r\n\t\tvar viewer = new Stimulsoft.Viewer.StiViewer(this.options.viewer, `${this.CONSTANTS.BASENAME}Viewer`, false)\r\n\t\tviewer.visible = false\r\n\r\n\t\tviewer.onDesignReport = (e) => {\r\n\t\t\tthis.visible = false\r\n\t\t\tthis.designer.visible = true\r\n\t\t\tthis.designer.report = e.report\r\n\t\t}\r\n\r\n\t\treturn viewer\r\n\t}\r\n\r\n\tcreateDesigner() {\r\n\r\n\t\tif (!this.options && !this.options.designer)\r\n\t\t\tthrow new Error('Stimul Designer Options Not Found!')\r\n\r\n\t\tvar designer = new Stimulsoft.Designer.StiDesigner(this.options.designer, `${this.CONSTANTS.BASENAME}Designer`, false)\r\n\r\n\t\t// Add the exit menu item event\r\n\t\tdesigner.onExit = (e) => {\r\n\t\t\tthis.visible = false\r\n\t\t\tthis.viewer.visible = true\r\n\r\n\t\t\tif (this.eventHandlers && typeof this.eventHandlers.onExit === 'function')\r\n\t\t\t\tthis.eventHandlers.onExit(e)\r\n\t\t}\r\n\r\n\t\tdesigner.onCreateReport = async (args, callback) => {\r\n\t\t\targs.async = true\r\n\r\n\t\t\tawait this.addDataSources(args.report, 'Designer', true, true)\r\n\r\n\t\t\tif (this.eventHandlers && typeof this.eventHandlers.onCreateReport === 'function') {\r\n\t\t\t\targs = await this.eventHandlers.onCreateReport(args)\r\n\r\n\t\t\t\tif (args === null || args === undefined)\r\n\t\t\t\t\tthrow new Error('onCreateReport Should Have a Return Value!')\r\n\r\n\t\t\t}\r\n\t\t\tcallback(args)\r\n\t\t}\r\n\r\n\t\tdesigner.onSaveReport = (args) => {\r\n\r\n\t\t\tif (this.eventHandlers && typeof this.eventHandlers.onSaveReport === 'function')\r\n\t\t\t\tthis.eventHandlers.onSaveReport(args)\r\n\r\n\t\t}\r\n\r\n\t\tdesigner.onSaveAsReport = (args) => {\r\n\r\n\t\t\tif (this.eventHandlers && typeof this.eventHandlers.onSaveReport === 'function')\r\n\t\t\t\tthis.eventHandlers.onSaveAsReport(args)\r\n\t\t}\r\n\r\n\t\treturn designer\r\n\r\n\t}\r\n\r\n\tregisterCustomFunctions(customFunctions = this.customFunctions) {\r\n\r\n\t\tfor (var functionSchema of customFunctions) {\r\n\t\t\tconst functionList = Stimulsoft.Report.Dictionary.StiFunctions.getFunctionsList(functionSchema.functionName)\r\n\r\n\t\t\tif (!functionList || functionList.length === 0 || !functionList.find(func => func.functionName === functionSchema.functionName && func.description === functionSchema.functionDescription))\r\n\t\t\t\tStimulsoft.Report.Dictionary.StiFunctions.addFunction(\"Nikan Functions\", \"\", functionSchema.functionName, functionSchema.functionDescription, \"\", functionSchema.returnType, functionSchema.returnDescription, functionSchema.paramsTypes, functionSchema.paramsNames, functionSchema.paramsDescriptions, functionSchema.handler)\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tregisterCustomFonts() {\r\n\t\tStimulsoft.Base.StiFontCollection.addOpentypeFontFile('/stimul/fonts/IranYekan/iranyekanwebregularfanum.ttf', 'IranYekan')\r\n\t}\r\n\r\n\tasync showViewer(reportObject) {\r\n\r\n\t\tif (!this.states.divsAdded)\r\n\t\t\tthrow new Error('ContainerDivs Not Found!')\r\n\r\n\t\tif (!reportObject)\r\n\t\t\tthrow new Error('ReportObject is Not Set!')\r\n\r\n\t\tif (this.eventHandlers && typeof this.eventHandlers.onShowViewer === 'function') {\r\n\t\t\treportObject = this.eventHandlers.onShowViewer(reportObject)\r\n\r\n\t\t\tif (reportObject === null || reportObject === undefined)\r\n\t\t\t\tthrow new Error('onShowViewer Should Have a Return Value!')\r\n\r\n\t\t}\r\n\r\n\t\tif (this.isBulk)\r\n\t\t\tthis.viewer.report = await this.prepareBulkReport(reportObject, 'Viewer')\r\n\t\telse\r\n\t\t\tthis.viewer.report = await this.prepareReport(reportObject, 'Viewer')\r\n\r\n\t\tthis.viewer.visible = true\r\n\t\tthis.viewer.renderHtml(this.CONSTANTS.VIEWERDIVID)\r\n\t}\r\n\r\n\tasync showDesigner(reportObject) {\r\n\r\n\t\tif (!this.states.divsAdded)\r\n\t\t\tthrow new Error('ContainerDivs Not Found!')\r\n\r\n\t\tif (this.eventHandlers && typeof this.eventHandlers.onShowDesigner === 'function') {\r\n\t\t\treportObject = this.eventHandlers.onShowDesigner(reportObject)\r\n\r\n\t\t\tif (reportObject === null || reportObject === undefined)\r\n\t\t\t\tthrow new Error('onShowDesigner Should Have a Return Value!')\r\n\t\t}\r\n\r\n\t\tif (reportObject) {\r\n\t\t\tif (this.isBulk)\r\n\t\t\t\tthis.designer.report = await this.prepareBulkReport(reportObject, 'Designer')\r\n\t\t\telse\r\n\t\t\t\tthis.designer.report = await this.prepareReport(reportObject, 'Designer')\r\n\t\t}\r\n\r\n\t\tthis.designer.visible = true\r\n\t\tthis.designer.renderHtml(this.CONSTANTS.DESIGNERDIVID)\r\n\t}\r\n\r\n\tasync prepareReport(reportObject, mode) {\r\n\r\n\t\tif (!reportObject)\r\n\t\t\tthrow new Error('ReportObject is Not Set!')\r\n\r\n\t\tvar report = new Stimulsoft.Report.StiReport()\r\n\t\treport.load(reportObject)\r\n\t\treport = await this.addDataSources(report, mode)\r\n\r\n\t\tif (this.eventHandlers && typeof this.eventHandlers.onPrepareReport === 'function') {\r\n\t\t\treport = this.eventHandlers.onPrepareReport(report)\r\n\r\n\t\t\tif (report === null || report === undefined)\r\n\t\t\t\tthrow new Error('onPrepareReport Should Have a Return Value!')\r\n\r\n\t\t}\r\n\r\n\t\treturn report\r\n\t}\r\n\r\n\tasync prepareBulkReport(reportObject, mode) {\r\n\t\t// Bulk data source should have this format\r\n\t\t// { items: Array of data, preparer: printDataSource method }\r\n\r\n\t\tif (!reportObject)\r\n\t\t\tthrow new Error('ReportObject is Not Set!')\r\n\r\n\t\tvar reportAll = new Stimulsoft.Report.StiReport()\r\n\t\treportAll.isRendered = true\r\n\t\treportAll.renderedPages.clear()\r\n\r\n\t\tvar report = new Stimulsoft.Report.StiReport()\r\n\t\treport.load(reportObject)\r\n\r\n\t\tconst bulkSource = await this.getDataSources(mode)\r\n\r\n\t\treport = await this.addDataSources(report, mode, true)\r\n\r\n\t\tif (mode === 'Designer') {\r\n\t\t\tconst dataSources = bulkSource.preparer(bulkSource.items[0])\r\n\r\n\t\t\tawait this.addDataSourcesToReport(dataSources, report)\r\n\r\n\t\t\tif (this.eventHandlers && typeof this.eventHandlers.onPrepareReport === 'function') {\r\n\t\t\t\treportAll = this.eventHandlers.onPrepareReport(reportAll)\r\n\r\n\t\t\t\tif (reportAll === null || reportAll === undefined)\r\n\t\t\t\t\tthrow new Error('onPrepareReport Should Have a Return Value!')\r\n\r\n\t\t\t}\r\n\r\n\t\t\treturn report\r\n\t\t}\r\n\t\telse {\r\n\t\t\tfor (let item of bulkSource.items) {\r\n\t\t\t\tconst dataSources = bulkSource.preparer(item)\r\n\t\t\t\tconst dataItemReport = cloneDeep(report)\r\n\r\n\t\t\t\tawait this.addDataSourcesToReport(dataSources, dataItemReport)\r\n\r\n\t\t\t\tawait dataItemReport.renderAsync2()\r\n\r\n\t\t\t\tfor (let page of dataItemReport.renderedPages.list) {\r\n\t\t\t\t\treportAll.renderedPages.add(page)\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.eventHandlers && typeof this.eventHandlers.onPrepareReport === 'function') {\r\n\t\t\treportAll = this.eventHandlers.onPrepareReport(reportAll)\r\n\r\n\t\t\tif (reportAll === null || reportAll === undefined)\r\n\t\t\t\tthrow new Error('onPrepareReport Should Have a Return Value!')\r\n\r\n\t\t}\r\n\r\n\t\treturn reportAll\r\n\t}\r\n\r\n\tasync addDataSources(reportObject, mode, prepareDatasource = true, isEmptyReport = false) {\r\n\r\n\t\tvar dataSources = []\r\n\r\n\t\tif (!this.isBulk)\r\n\t\t\tdataSources = await this.getDataSources(mode)\r\n\r\n\t\telse if (this.isBulk && mode === 'Designer' && isEmptyReport) {\r\n\t\t\tconst bulkSource = await this.getDataSources(mode)\r\n\t\t\tconst dataSources1 = bulkSource.preparer(bulkSource.items[0])\r\n\r\n\t\t\tawait this.addDataSourcesToReport(dataSources1, reportObject)\r\n\t\t}\r\n\r\n\t\tdataSources = this.addBaseDataSources(dataSources)\r\n\r\n\t\tawait this.addDataSourcesToReport(dataSources, reportObject, prepareDatasource)\r\n\r\n\t\treturn reportObject\r\n\t}\r\n\r\n\tasync addDataSourcesToReport(dataSources, reportObject, prepareDatasource = true) {\r\n\t\tfor (var source of dataSources) {\r\n\r\n\t\t\tif (prepareDatasource)\r\n\t\t\t\tsource.data = await this.prepareDatasource(source)\r\n\r\n\t\t\tvar dataSet = new Stimulsoft.System.Data.DataSet(source.name)\r\n\t\t\tdataSet.readJson(source.data)\r\n\r\n\t\t\tif (this.eventHandlers && typeof this.eventHandlers.onAddDataSources === 'function') {\r\n\t\t\t\tdataSet = this.eventHandlers.onAddDataSources(dataSet)\r\n\r\n\t\t\t\tif (dataSet === null || dataSet === undefined)\r\n\t\t\t\t\tthrow new Error('onAddDataSources Should Have a Return Value!')\r\n\r\n\t\t\t}\r\n\r\n\t\t\treportObject.regData(source.name, source.translatedDataSetName, dataSet)\r\n\t\t\treportObject.dictionary.synchronize()\r\n\t\t}\r\n\t}\r\n\r\n\taddBaseDataSources(dataSources) {\r\n\t\tconst ComapnyDataSource = {\r\n\t\t\tname: 'Company',\r\n\t\t\tdata: store.getters['appContext/getCompany'],\r\n\t\t\ttranslatedDataSetName: i18nInstance.global.t('tbsy_Company'),\r\n\t\t\ttranslatePrefix: 'company.f',\r\n\t\t\tconverter: {\r\n\t\t\t\ttype: PrintDataConvertTypes.MAPPER,\r\n\t\t\t\tsettings: {\r\n\t\t\t\t\tname: 'name',\r\n\t\t\t\t\tcity: 'city.name',\r\n\t\t\t\t\ttaxZone: 'taxZone.name',\r\n\t\t\t\t\ttaxOffice: 'taxOffice.name',\r\n\t\t\t\t\tagentName: 'agentName',\r\n\t\t\t\t\tregistrationNumber: 'registrationNumber',\r\n\t\t\t\t\tnationalCode: 'nationalCode',\r\n\t\t\t\t\taddress: 'address',\r\n\t\t\t\t\tpostalCode: 'postalCode',\r\n\t\t\t\t\tmobile: 'mobile',\r\n\t\t\t\t\teconomicalCode: 'economicalCode',\r\n\t\t\t\t\ttelephone: 'telephone',\r\n\t\t\t\t\timageUrl: 'imageUrl',\r\n\t\t\t\t\ttype: (item) => i18nInstance.global.t(`IdentityTypes.${item}`),\r\n\t\t\t\t\tnationality: (item) => i18nInstance.global.t(`NationalityTypes.${item}`),\r\n\t\t\t\t\tcalendar: (item) => i18nInstance.global.t(`SupportedCalendars.${item}`),\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst FiscalPeriodDataSource = {\r\n\t\t\tname: 'FiscalPeriod',\r\n\t\t\tdata: store.getters['appContext/getFiscalPeriod'],\r\n\t\t\ttranslatedDataSetName: i18nInstance.global.t('tbcp_FiscalPeriod'),\r\n\t\t\ttranslatePrefix: 'fiscal.f',\r\n\t\t\tconverter: {\r\n\t\t\t\ttype: PrintDataConvertTypes.MAPPER,\r\n\t\t\t\tsettings: {\r\n\t\t\t\t\tname: 'name',\r\n\t\t\t\t\tstartDate: 'startDate',\r\n\t\t\t\t\tendDate: 'endDate',\r\n\t\t\t\t\tdescription: 'description',\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst UserDataSource = {\r\n\t\t\tname: 'User',\r\n\t\t\tdata: store.getters['appContext/getUser'],\r\n\t\t\ttranslatedDataSetName: i18nInstance.global.t('tbau_User'),\r\n\t\t\ttranslatePrefix: 'user.f',\r\n\t\t\tconverter: {\r\n\t\t\t\ttype: PrintDataConvertTypes.MAPPER,\r\n\t\t\t\tsettings: {\r\n\t\t\t\t\tfirstName: 'firstName',\r\n\t\t\t\t\tlastName: 'lastName',\r\n\t\t\t\t\tnationalCode: 'nationalCode',\r\n\t\t\t\t\taddress: 'address',\r\n\t\t\t\t\tpostalCode: 'postalCode',\r\n\t\t\t\t\tphoneNumber: 'phoneNumber',\r\n\t\t\t\t\tlandLineNumber: 'landLineNumber',\r\n\t\t\t\t\temail: 'email',\r\n\t\t\t\t\tuserName: 'userName',\r\n\t\t\t\t\tisActive: 'isActive'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst WorkshopDataSource = {\r\n\t\t\tname: 'Workshop',\r\n\t\t\tdata: store.getters['workshops/getById'](store.getters['appContext/getWorkshop'].id),\r\n\t\t\ttranslatedDataSetName: i18nInstance.global.t('salary.workshop.title'),\r\n\t\t\ttranslatePrefix: 'salary.workshop.f',\r\n\t\t\tconverter: {\r\n\t\t\t\ttype: PrintDataConvertTypes.MAPPER,\r\n\t\t\t\tsettings: {\r\n\t\t\t\t\tcode: 'code',\r\n\t\t\t\t\tname: 'name',\r\n\t\t\t\t\tisActive: 'isActive',\r\n\t\t\t\t\tmanagerName: 'managerName',\r\n\t\t\t\t\taddress: 'address',\r\n\t\t\t\t\tphone: 'phone',\r\n\t\t\t\t\tworkshopNumberInTamin: 'workshopNumberInTamin',\r\n\t\t\t\t\tworkshopRow: 'workshopRow',\r\n\t\t\t\t\ttaminBranch: 'taminBranch.name',\r\n\t\t\t\t\tstartDate: 'startDate',\r\n\t\t\t\t\tendDate: 'endDate',\r\n\t\t\t\t\tinsuranceTypeName: 'insuranceType.name',\r\n\t\t\t\t\tinsuranceTypeCode: 'insuranceType.code',\r\n\t\t\t\t\tdefaultBank: 'defaultBank.name',\r\n\t\t\t\t\tdefaultTaxTable: 'defaultTaxTable.name'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t}\r\n\t\tconst SalaryPeriodDataSource = {\r\n\t\t\tname: 'SalaryPeriod',\r\n\t\t\tdata: store.getters['salaryPeriods/getById'](store.getters['appContext/getSalaryPeriod'].id),\r\n\t\t\ttranslatedDataSetName: i18nInstance.global.t('salary.salary-period'),\r\n\t\t\ttranslatePrefix: 'salary.period.f',\r\n\t\t\tconverter: {\r\n\t\t\t\ttype: PrintDataConvertTypes.MAPPER,\r\n\t\t\t\tsettings: {\r\n\t\t\t\t\tdisplayName: 'displayName',\r\n\t\t\t\t\tisMain: 'isMain',\r\n\t\t\t\t\tisLocked: 'isLocked',\r\n\t\t\t\t\tdate: 'date',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t}\r\n\t\tdataSources.push(ComapnyDataSource, FiscalPeriodDataSource, UserDataSource)\r\n\r\n\t\tif (this.additionalData.navMenuKey === 'Salary')\r\n\t\t\tdataSources.push(WorkshopDataSource, SalaryPeriodDataSource)\r\n\r\n\t\treturn dataSources\r\n\t}\r\n\r\n\tasync prepareDatasource(dataSource) {\r\n\r\n\t\tif (this.eventHandlers && typeof this.eventHandlers.onPrepareDatasource === 'function') {\r\n\t\t\tdataSource = this.eventHandlers.onPrepareDatasource(dataSource)\r\n\r\n\t\t\tif (dataSource === null || dataSource === undefined)\r\n\t\t\t\tthrow new Error('onPrepareDatasource Should Have a Return Value!')\r\n\t\t}\r\n\r\n\t\tif (!dataSource.converter)\r\n\t\t\treturn { [dataSource.translate]: dataSource.data }\r\n\r\n\t\treturn await new DataPreparer(dataSource.data, dataSource.converter, dataSource.translatePrefix, dataSource.translatedDataSetName).getData()\r\n\t}\r\n\r\n\tdestroy(mode) {\r\n\r\n\t\tif (this.eventHandlers && typeof this.eventHandlers.onDestroy === 'function')\r\n\t\t\tthis.eventHandlers.onDestroy(mode)\r\n\r\n\t\tthis[mode].visible = false\r\n\t}\r\n}\r\n\r\nexport class DataPreparer {\r\n\r\n\tconstructor(data = {}, converter, translatePrefix = '', translatedDataSetName = '') {\r\n\t\tthis.data = data\r\n\t\tthis.converter = converter\r\n\t\tthis.translatePrefix = translatePrefix\r\n\t\tthis.translatedDataSetName = translatedDataSetName\r\n\t}\r\n\r\n\tasync getData() {\r\n\t\tswitch (this.converter.type) {\r\n\t\t\tcase PrintDataConvertTypes.METADATAS:\r\n\t\t\t\tif (this.translatedDataSetName)\r\n\t\t\t\t\treturn { [this.translatedDataSetName]: await this.processMetaData() }\r\n\t\t\t\telse\r\n\t\t\t\t\treturn await this.processMetaData()\r\n\t\t\tcase PrintDataConvertTypes.METADATAS2:\r\n\t\t\t\tif (this.translatedDataSetName)\r\n\t\t\t\t\treturn { [this.translatedDataSetName]: this.processMetaData2() }\r\n\t\t\t\telse\r\n\t\t\t\t\treturn this.processMetaData2()\r\n\r\n\t\t\tcase PrintDataConvertTypes.GENERALFILTERS:\r\n\t\t\t\tif (this.translatedDataSetName)\r\n\t\t\t\t\treturn { [this.translatedDataSetName]: this.processGeneralFilters() }\r\n\t\t\t\telse\r\n\t\t\t\t\treturn this.processGeneralFilters()\r\n\r\n\t\t\tcase PrintDataConvertTypes.MAPPER:\r\n\t\t\t\tif (this.translatedDataSetName)\r\n\t\t\t\t\treturn { [this.translatedDataSetName]: this.mapper() }\r\n\t\t\t\telse\r\n\t\t\t\t\treturn this.mapper()\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tthis.data\r\n\t\t}\r\n\t}\r\n\r\n\tprocessGeneralFilters(source = this.data) {\r\n\r\n\t\tconst displays = {\r\n\t\t\taccountGroupsText: 'accountGroupsText',\r\n\t\t\taccountTypesText: 'accountTypesText',\r\n\t\t\taccountNamesText: 'accountNamesText',\r\n\t\t\tcenterNamesText: 'centerNamesText',\r\n\t\t\tbalance: (item, row) => i18nInstance.global.t(`${this.translatePrefix}.${row.balance}`),\r\n\t\t\tbalanceRangeStartAmount: 'balanceRangeStart.amount',\r\n\t\t\tbalanceRangeEndAmount: 'balanceRangeEndAmount.amount',\r\n\t\t\tbalanceRangeStartRangeType: (item, row) => i18nInstance.global.t(`${this.translatePrefix}.rangeTypes.${row.balanceRangeStart?.rangeType}`),\r\n\t\t\tbalanceRangeEndRangeType: (item, row) => i18nInstance.global.t(`${this.translatePrefix}.rangeTypes.${row.balanceRangeEnd?.rangeType}`),\r\n\t\t\tbeforeBalance: 'beforeBalance',\r\n\t\t\tstartDate: 'startDate',\r\n\t\t\tendDate: 'endDate',\r\n\t\t\tstartDocNumber: 'startDocNumber',\r\n\t\t\tendDocNumber: 'endDocNumber',\r\n\t\t\tfiscalPeriodsText: 'fiscalPeriodsText',\r\n\t\t\tturnover: (item, row) => i18nInstance.global.t(`${this.translatePrefix}.${item}`),\r\n\t\t}\r\n\r\n\t\treturn this.mapper(source, displays)\r\n\t}\r\n\r\n\tasync processMetaData(settings = this.converter.settings) {\r\n\t\tconst MetaDatas = await store.getters['floatingCenters/getMetaDatasByCenterId'](settings.centerId, false)\r\n\r\n\t\tfor (var meta in MetaDatas) {\r\n\r\n\t\t\tconst value = MetaDatas[meta]\r\n\r\n\t\t\tswitch (value) {\r\n\t\t\t\tcase 'true':\r\n\t\t\t\tcase 'false':\r\n\t\t\t\t\tMetaDatas[meta] = value === 'true'\r\n\t\t\t\t\tbreak\r\n\r\n\t\t\t\tcase undefined:\r\n\t\t\t\t\tMetaDatas[meta] = \"\"\r\n\t\t\t\t\tbreak\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn MetaDatas\r\n\t}\r\n\r\n\tprocessMetaData2(settings = this.converter.settings) {\r\n\t\tif (this.data.length === 0) return\r\n\t\tthis.data.forEach(x => {\r\n\t\t\tlet name = x.metaDataSchema.name\r\n\t\t\tsettings['_' + name] = '#directValue' + x.value\r\n\t\t})\r\n\r\n\t\treturn this.mapper()\r\n\t}\r\n\r\n\tmapper(source = this.data, displays = this.converter.settings) {\r\n\t\tif (!displays)\r\n\t\t\treturn source\r\n\r\n\t\tif (Array.isArray(source)) {\r\n\t\t\tlet newArray = source.map(item => this.mapper(item, displays))\r\n\r\n\t\t\treturn newArray\r\n\t\t}\r\n\r\n\t\tlet newObj = {}\r\n\r\n\t\tfor (var key of Object.keys(displays)) {\r\n\r\n\t\t\tvar currentDisplay = displays[key]\r\n\t\t\tvar base = key\r\n\r\n\t\t\tif (key.startsWith('_')) // skip translation if key startswith \"_\"\r\n\t\t\t\tbase = key.split('_')[1]\r\n\t\t\tif (this.translatePrefix.length && !key.startsWith('_')) // translatation\r\n\t\t\t{\r\n\t\t\t\tbase = i18nInstance.global.t(`${this.translatePrefix}.${key}`)\r\n\t\t\t\tif (!/[\\u0600-\\u06FF]/.test(base)) {\r\n\t\t\t\t\tconst kebabFunc = (str) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? \"-\" : \"\") + $.toLowerCase())\r\n\t\t\t\t\tbase = i18nInstance.global.t(`${this.translatePrefix}.${kebabFunc(key)}`)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (source[key] === currentDisplay)\r\n\t\t\t\tnewObj[base] = source[key]\r\n\r\n\t\t\tif (typeof currentDisplay === 'function') {// function as display\r\n\t\t\t\tconst funcReturn = currentDisplay(source[key], source)\r\n\t\t\t\tif (typeof funcReturn === 'object') newObj = { ...newObj, ...funcReturn }\r\n\t\t\t\telse newObj[base] = funcReturn\r\n\t\t\t} else if (this.isObject(currentDisplay) && Array.isArray(source[key])) { // if property is an array\r\n\t\t\t\tnewObj[base] = source[key].map(item => this.mapper(item, currentDisplay))\r\n\t\t\t} else if (typeof currentDisplay === 'string') {// if property has a path to corresponding property as display\r\n\t\t\t\tnewObj[base] = this.findPropertyBasedOnPath(source, currentDisplay)\r\n\t\t\t} else newObj[base] = currentDisplay\r\n\r\n\t\t}\r\n\r\n\t\treturn newObj\r\n\t}\r\n\r\n\tfindPropertyBasedOnPath(obj, path) {\r\n\r\n\t\tvar found = obj\r\n\t\tvar splittedPath = path.split(\".\")\r\n\r\n\t\twhile (splittedPath.length) {\r\n\r\n\t\t\t// Trying to find if there is brackets and getting index from it.\r\n\t\t\tvar matchBrackets = splittedPath[0].match(/(.*?)\\[(.*?)\\]/)\r\n\r\n\t\t\tif (matchBrackets) { // it's array\r\n\t\t\t\tvar property = matchBrackets[1]\r\n\t\t\t\tvar index = parseInt(matchBrackets[2])\r\n\r\n\t\t\t\tif (found)\r\n\t\t\t\t\tfound = found[property][index]\r\n\r\n\t\t\t\tsplittedPath.splice(0, 1)\r\n\t\t\t} else { // it's object\r\n\t\t\t\tvar property = splittedPath[0]\r\n\r\n\t\t\t\tif (found)\r\n\t\t\t\t\tfound = found[property]\r\n\t\t\t\tif (splittedPath.length === 1 && property.split('#directValue').length > 1)\r\n\t\t\t\t\tfound = property.split('#directValue')[1]\r\n\r\n\r\n\t\t\t\tsplittedPath.splice(0, 1)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn found\r\n\t}\r\n\r\n\tisObject(obj) {\r\n\t\treturn Object.prototype.toString.call(obj) === '[object Object]'\r\n\t}\r\n}\r\n\r\nexport const PrintDataConvertTypes = {\r\n\tMETADATAS: 'MetaDatas',\r\n\tMETADATAS2: 'MetaDatas2',\r\n\tMAPPER: 'Mapper',\r\n\tGENERALFILTERS: 'GeneralFilters'\r\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"nk-card form-container\",\n ref: \"parent\"\n}\nconst _hoisted_2 = { class: \"p-5\" }\nconst _hoisted_3 = { class: \"row mb-5\" }\nconst _hoisted_4 = { class: \"col-sm-6 col-md-4 col-lg-4\" }\nconst _hoisted_5 = { class: \"col-sm-6 col-md-4 col-lg-4\" }\nconst _hoisted_6 = { class: \"col-sm-12 col-md-4 col-lg-4\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_nk_dropdown = _resolveComponent(\"nk-dropdown\")!\n const _component_nk_col_form_group = _resolveComponent(\"nk-col-form-group\")!\n const _component_nk_input = _resolveComponent(\"nk-input\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n class: \"\",\n policyClaims: ``,\n tabindex: \"101\",\n startup: \"\"\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.SalaryPeriods')\n }, null, 8, [\"title\"]),\n _createVNode(_component_nk_badge_item, {\n type: \"edition\",\n modelValue: _ctx.settings.mode === _ctx.FormModes.READONLY ? _ctx.FormModes.READONLY : (_ctx.isEmpty(_ctx.getPeriodId) ? 'new' : 'edit')\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.month') + ':',\n labelSizes: { sm: 12, md: 2 },\n dataSizes: { sm: 12, md: 10 },\n labelAligns: { sm: 'right', md: 'left', lg: 'left' }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n ref: \"selectedMonthDrop\",\n class: \"form-container\",\n options: _ctx.monthOptions.month,\n modelValue: _ctx.monthValue.selectedMonth,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.monthValue.selectedMonth) = $event)),\n disabled: !_ctx.isEmpty(_ctx.getPeriodId) || !!_ctx.settings?.selectedMonth?.date,\n tabindex: 102,\n data: _ctx.months\n }, null, 8, [\"options\", \"modelValue\", \"disabled\", \"data\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.type') + ':',\n labelSizes: { sm: 12, md: 2 },\n dataSizes: { sm: 12, md: 10 },\n labelAligns: { sm: 'right', md: 'left', lg: 'left' }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n disabled: true,\n class: \"form-container\",\n options: _ctx.monthOptions.type,\n modelValue: _ctx.monthValue.selectedType,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.monthValue.selectedType) = $event)),\n tabindex: 104,\n data: _ctx.types\n }, null, 8, [\"options\", \"modelValue\", \"data\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.preview-name') + ':',\n labelSizes: { sm: 12, md: 4 },\n dataSizes: { sm: 12, md: 8 },\n labelAligns: { sm: 'right', md: 'left', lg: 'left' }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n class: \"\",\n modelValue: _ctx.monthValue.displayName,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.monthValue.displayName) = $event)),\n options: _ctx.monthOptions.displayName,\n tabindex: 106\n }, null, 8, [\"modelValue\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ])\n ])\n ], 512)\n ]),\n _: 1\n }))\n}","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./salary-period-modify.vue?vue&type=template&id=3a8192d5&ts=true\"\nimport script from \"./salary-period-modify.vue?vue&type=script&lang=ts\"\nexport * from \"./salary-period-modify.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t onOperationRolesChange(val)\" />\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
{{ $t('policy.infoBox-title') }}:
\r\n\t\t\t\t\t\t\t\t\t\t\t
{{ data.accessData.objectDescription }}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t{{ $t('policy.select-restrict-item-by-click') }}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{{ $t('PrivilegeTypes.' + type.key) }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ role.dedicatedUser ? $t('policy.user') : $t('policy.role') }}:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ role.dedicatedUser ? role.dedicatedUser.firstName + ' ' + role.dedicatedUser.lastName : role.name }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
x.operationRoleId == role.id && x.privilegeTypes.indexOf(type.key.toLowerCase()) > -1 && !x.restrict) > -1 }\" @click=\"toggleSelection(type.key, role.id, false)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
x.operationRoleId == role.id && x.privilegeTypes.indexOf(type.key.toLowerCase()) > -1 && x.restrict) > -1 }\" @click=\"toggleSelection(type.key, role.id, true)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./access-control.vue?vue&type=template&id=0a461d01&scoped=true\"\nimport script from \"./access-control.vue?vue&type=script&lang=js\"\nexport * from \"./access-control.vue?vue&type=script&lang=js\"\n\nimport \"./access-control.vue?vue&type=style&index=0&id=0a461d01&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0a461d01\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-flex flex-column h-100\" }\nconst _hoisted_2 = { class: \"nk-card h-100\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_ag_grid = _resolveComponent(\"ag-grid\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n policyClaims: \"Salary_SalaryItem_Management\",\n tabindex: \"101\",\n startup: \"\",\n buttons: [_ctx.footerButtons.refresh]\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.SalaryItems')\n }, null, 8, [\"title\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_ag_grid, {\n options: _ctx.tableOption,\n data: _ctx.items,\n modelValue: _ctx.selectedRows,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedRows) = $event)),\n onPreSelectedRowData: _cache[1] || (_cache[1] = (data) => _ctx.selectedRow = data),\n onRow_dbClicked: _cache[2] || (_cache[2] = (row) => _ctx.showItem(row)),\n tabindex: \"105\",\n startup: \"\"\n }, null, 8, [\"options\", \"data\", \"modelValue\"])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"buttons\"]))\n}","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t
selectedRow = data\" @row_db-clicked=\"(row: any) => showItem(row)\" tabindex=\"105\" startup>\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"h-100 nk-card\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ag_grid = _resolveComponent(\"ag-grid\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n policyClaims: \"Salary_SalaryItem_Management\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_ag_grid, {\n options: _ctx.componentOptions.tableOptions,\n data: _ctx.tableData\n }, null, 8, [\"options\", \"data\"])\n ])\n ]),\n _: 1\n }))\n}","\r\n \r\n \r\n \r\n\r\n\r\n","import { render } from \"./salary-item-contracts-usage.vue?vue&type=template&id=166d8b26&ts=true\"\nimport script from \"./salary-item-contracts-usage.vue?vue&type=script&lang=ts\"\nexport * from \"./salary-item-contracts-usage.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"h-100 nk-card\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ag_grid = _resolveComponent(\"ag-grid\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n policyClaims: \"Salary_SalaryItem_Management\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_ag_grid, {\n options: _ctx.componentOptions.tableOptions,\n data: _ctx.tableData\n }, null, 8, [\"options\", \"data\"])\n ])\n ]),\n _: 1\n }))\n}","\r\n \r\n \r\n \r\n\r\n\r\n","import { render } from \"./salary-item-dependency.vue?vue&type=template&id=290b372c&ts=true\"\nimport script from \"./salary-item-dependency.vue?vue&type=script&lang=ts\"\nexport * from \"./salary-item-dependency.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./salary-item-list.vue?vue&type=template&id=2846cc32&ts=true\"\nimport script from \"./salary-item-list.vue?vue&type=script&lang=ts\"\nexport * from \"./salary-item-list.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createI18n } from 'vue-i18n'\r\nconst faJson = require('~/assets/resources/fa.json')\r\n\r\nconst i18nInstance = createI18n({\r\n warnHtmlInMessage: 'off',\r\n locale: 'fa',\r\n messages: {\r\n fa: faJson\r\n }\r\n})\r\n\r\nexport const hotreload = (app) => {\r\n // Hot updates\r\n if (module.hot) {\r\n module.hot.accept(['~/assets/resources/fa.json'], function () {\r\n app.i18n.setLocaleMessage('fa', require('~/assets/resources/fa.json').default)\r\n })\r\n }\r\n}\r\n\r\nexport const i18n = {\r\n install(app, options) {\r\n app.use(i18nInstance)\r\n app.i18n = {\r\n translate: i18nInstance.global.t\r\n }\r\n }\r\n}\r\n\r\nexport default i18n\r\nexport { i18nInstance }","\r\n\t\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./icon.vue?vue&type=template&id=15a1beb9\"\nimport script from \"./icon.vue?vue&type=script&lang=js\"\nexport * from \"./icon.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Guid, IBaseModel } from '~/interfaces/base'\r\nimport emptyId from '~/statics/empty-id'\r\n\r\nexport class TaminBranch implements IBaseModel {\r\n id: Guid\r\n city: string\r\n name: string\r\n\r\n constructor() {\r\n this.id = emptyId\r\n this.city = ''\r\n this.name = ''\r\n }\r\n}","\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./preparing.vue?vue&type=template&id=bfbeb3fa\"\nimport script from \"./preparing.vue?vue&type=script&lang=js\"\nexport * from \"./preparing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./meta-data-schema-csValues.vue?vue&type=template&id=74ebfba1\"\nimport script from \"./meta-data-schema-csValues.vue?vue&type=script&lang=js\"\nexport * from \"./meta-data-schema-csValues.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./meta-data-schema-modify.vue?vue&type=template&id=539e1541\"\nimport script from \"./meta-data-schema-modify.vue?vue&type=script&lang=js\"\nexport * from \"./meta-data-schema-modify.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withModifiers as _withModifiers, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-inline-flex cursor-pointer h-100\" }\nconst _hoisted_2 = [\"onClick\"]\nconst _hoisted_3 = { class: \"d-flex justify-content-between\" }\nconst _hoisted_4 = { class: \"d-flex\" }\nconst _hoisted_5 = { class: \"text-bold\" }\nconst _hoisted_6 = {\n key: 0,\n style: {\"width\":\"35px\",\"height\":\"15px\",\"border-radius\":\"3px\"},\n class: \"bg-primary-light small px-1\"\n}\nconst _hoisted_7 = { class: \"d-flex justify-content-between hover-div\" }\nconst _hoisted_8 = {\n key: 0,\n tabindex: \"0\",\n class: \"text-left d-none group-buttons\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_small_checkbox = _resolveComponent(\"small-checkbox\")!\n const _component_nk_button = _resolveComponent(\"nk-button\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.localData, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n onClick: ($event: any) => (_ctx.selectPeriod(item)),\n class: _normalizeClass([\"bg-white p-3 month-period mx-2\", { 'borderPrimary-light': item.selected, 'disabled': !item.canUse }]),\n style: {}\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_small_checkbox, {\n checked: item.selected,\n onClick: _withModifiers(($event: any) => (_ctx.selectPeriod(item)), [\"prevent\"])\n }, null, 8, [\"checked\", \"onClick\"]),\n _createElementVNode(\"label\", _hoisted_5, _toDisplayString(item.displayName), 1)\n ]),\n (!item.isMain)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _toDisplayString(_ctx.$t('salary.virtual')), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_small_checkbox, {\n checked: item.isLocked,\n icon: \"lock\",\n \"onUpdate:modelValue\": (status) => _ctx.lockButton.handler(status, item),\n options: _ctx.lockButton.options,\n class: \"\",\n style: {\"border-radius\":\"100%\",\"border-width\":\"thin\"}\n }, null, 8, [\"checked\", \"onUpdate:modelValue\", \"options\"]),\n (!_ctx.isModal)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.buttons, (button) => {\n return (_openBlock(), _createBlock(_component_nk_button, {\n class: _normalizeClass([button.class, \"\"]),\n onClick: () => button.handler(item),\n onSubmit: button.handler,\n options: button.options\n }, null, 8, [\"class\", \"onClick\", \"onSubmit\", \"options\"]))\n }), 256))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ], 10, _hoisted_2))\n }), 256))\n ]))\n}","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
{{ $t('salary.virtual') }}
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
lockButton.handler(status, item)\" :options=\"lockButton.options\" class=\"\" style=\"border-radius: 100%;border-width: thin\" />\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t button.handler(item)\" @submit=\"button.handler\" :options=\"button.options\" class=\"\" />\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./period-card.vue?vue&type=template&id=5d093a88&scoped=true&ts=true\"\nimport script from \"./period-card.vue?vue&type=script&lang=ts\"\nexport * from \"./period-card.vue?vue&type=script&lang=ts\"\n\nimport \"./period-card.vue?vue&type=style&index=0&id=5d093a88&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5d093a88\"]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t selectedRow = val\" ref=\"attachmentsFactorList\" tabindex=\"101\" startup>\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./factor-attachments-factor-list.vue?vue&type=template&id=1dbd4fdc\"\nimport script from \"./factor-attachments-factor-list.vue?vue&type=script&lang=js\"\nexport * from \"./factor-attachments-factor-list.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./login.vue?vue&type=template&id=41efa5f2\"\nimport script from \"./login.vue?vue&type=script&lang=js\"\nexport * from \"./login.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/login.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// #COMPATIBILITY_MODE\r\n\r\nimport Store from '../store/index'\r\nimport axios from 'axios'\r\nimport _ from 'lodash'\r\nimport dialog from './nikan-dialog-plugin'\r\nimport { i18nInstance } from './localization'\r\nimport router from './router'\r\nimport { toastInstance } from './toast'\r\nimport $sc from './shortcut.collection.js'\r\nimport qs from 'querystring'\r\nimport { globalLogger } from './logger'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport merge from 'lodash/merge'\r\nimport { isEmpty } from '~/statics/validators'\r\n\r\nconst CURRENT_CULTURE = 'fa'\r\nconst CURRENT_UI_CULTURE = 'fa'\r\n\r\nfunction getCurrentContext() {\r\n return Store.getters['useraccount/currentUserDetails'] || {}\r\n}\r\nfunction getCurrentUser() {\r\n return getCurrentContext().user\r\n}\r\nfunction getWorkshop() {\r\n return getCurrentContext().workshopId\r\n}\r\nfunction getSalaryPeriod() {\r\n return getCurrentContext().salaryPeriodId\r\n}\r\nfunction getFiscalPeriod() {\r\n return getCurrentContext().fiscalId\r\n return Store.getters['app-context/getFiscalPeriod']\r\n}\r\nfunction getCompany() {\r\n return getCurrentContext().companyId\r\n}\r\nfunction getCustomerCode() {\r\n let reviewModeData = getCurrentContext().reviewModeData\r\n return `${getCurrentContext().customerCode}${reviewModeData ? '_review' : ''}`\r\n}\r\nfunction logoutUser() {\r\n Store.dispatch('useraccount/clearUser')\r\n router.push({ name: 'login' })\r\n}\r\nfunction redirectToLauncher() {\r\n router.push({ name: 'launcher' })\r\n}\r\nlet currentUser = null\r\n\r\nlet axiosInstance = null\r\nexport const getAxios = () => {\r\n let latestUser = getCurrentUser()\r\n if (axiosInstance == null || (latestUser != null && currentUser !== latestUser)) {\r\n currentUser = latestUser\r\n\r\n const headers = {\r\n }\r\n\r\n //FISCAL and COMPANY must be out of above if section because after login it should selecte last fiscal and company that user worked\r\n headers['NIKAN_APP_FISCAL'] = getFiscalPeriod()\r\n headers['NIKAN_APP_COMPANY'] = getCompany()\r\n headers['NIKAN_APP_WORKSHOP'] = getWorkshop()\r\n headers['NIKAN_APP_SALARYPERIOD'] = getSalaryPeriod()\r\n\r\n axiosInstance = axios.create({\r\n headers\r\n })\r\n\r\n axiosInstance.interceptors.request.use((config) => {\r\n const CUSER = getCurrentUser()\r\n\r\n config.headers.CCODE = getCustomerCode()\r\n\r\n if (CUSER && CUSER.access_token)\r\n config.headers['Authorization'] = 'Bearer ' + CUSER.access_token\r\n else\r\n delete config.headers['Authorization']\r\n\r\n return config\r\n })\r\n\r\n axiosInstance.interceptors.response.use(\r\n (res) => {\r\n return res\r\n },\r\n async (err) => {\r\n const fetchRefreshToken = (currentUser) => {\r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n },\r\n }\r\n return axiosInstance.post('/api/refresh-token', qs.stringify({\r\n refreshToken: currentUser.refresh_token\r\n }), config)\r\n .then(result => {\r\n return result.data\r\n })\r\n\r\n }\r\n const originalConfig = err.config\r\n\r\n if (originalConfig.url !== \"/api/token\" && err.response) {\r\n // Access Token was expired\r\n if (err.response.status === 403 && err.response.data.message && err.response.data.message.indexOf('refreshToken') > -1) {\r\n logoutUser()\r\n return\r\n }\r\n if (err.response.status === 401 && !originalConfig._retry) {\r\n originalConfig._retry = true\r\n\r\n try {\r\n let currentUser = getCurrentUser()\r\n if (!currentUser) {\r\n logoutUser()\r\n return\r\n }\r\n const rs = await fetchRefreshToken(currentUser)\r\n\r\n Store.dispatch('useraccount/applyDetails', { user: rs })\r\n originalConfig.headers['Authorization'] = 'Bearer ' + rs.access_token\r\n\r\n return axiosInstance(originalConfig)\r\n } catch (_error) {\r\n return Promise.reject(_error)\r\n }\r\n }\r\n }\r\n\r\n return Promise.reject(err)\r\n }\r\n )\r\n }\r\n\r\n return axiosInstance\r\n}\r\n\r\nconst addCurrentLocaleToUrl = url => {\r\n let begins = '&'\r\n if (url.indexOf('?') === -1) {\r\n begins = '?'\r\n }\r\n\r\n url += begins + `culture=${CURRENT_CULTURE}&ui-culture=${CURRENT_UI_CULTURE}`\r\n\r\n return url\r\n}\r\nconst decorateRequest = (request, url) => {\r\n let currentContext = getCurrentContext()\r\n const module = url.split('/')[3].toLowerCase()\r\n\r\n let contextValues = {\r\n fiscalPeriodId: currentContext.fiscalPeriodId,\r\n companyId: currentContext.companyId,\r\n customerId: currentContext.customerId,\r\n\r\n // only add workshopId & salaryPeriodId if request if for salary module and their value is not empty\r\n ...(module === 'salary' && !isEmpty(currentContext.workshopId) ? { workshopId: currentContext.workshopId } : {}),\r\n ...(module === 'salary' && !isEmpty(currentContext.salaryPeriodId) ? { salaryPeriodId: currentContext.salaryPeriodId } : {})\r\n }\r\n\r\n if (request instanceof FormData) {\r\n request.append('fiscalPeriodId', contextValues.fiscalPeriodId)\r\n request.append('companyId', contextValues.companyId)\r\n request.append('customerId', contextValues.customerId)\r\n\r\n if (module === 'salary' && !isEmpty(currentContext.workshopId))\r\n request.append('workshopId', currentContext.workshopId)\r\n\r\n if (module === 'salary' && !isEmpty(currentContext.salaryPeriodId))\r\n request.append('salaryPeriodId', currentContext.salaryPeriodId)\r\n\r\n return request\r\n } else {\r\n return _.merge(contextValues, request)\r\n }\r\n}\r\n\r\nconst getErrorDetail = error => {\r\n const act = errorItem => {\r\n switch (errorItem.code) {\r\n case 'NotFound': return {\r\n title: i18nInstance.global.t('Errors.NotFound.title'),\r\n body: i18nInstance.global.t('Errors.NotFound.body')\r\n }\r\n case 'UnauthorizedAccess': return {\r\n title: i18nInstance.global.t('Errors.UnauthorizedAccess.title'),\r\n body: i18nInstance.global.t('Errors.UnauthorizedAccess.body')\r\n }\r\n case 'InvalidFiscalPeriod': return {\r\n title: i18nInstance.global.t('Errors.InvalidFiscalPeriod.title'),\r\n body: i18nInstance.global.t('Errors.InvalidFiscalPeriod.body')\r\n }\r\n case 'InvalidCompany': return {\r\n title: i18nInstance.global.t('Errors.InvalidCompany.title'),\r\n body: i18nInstance.global.t('Errors.InvalidCompany.body')\r\n }\r\n case 'InvalidCustomer': return {\r\n title: i18nInstance.global.t('Errors.InvalidCustomer.title'),\r\n body: i18nInstance.global.t('Errors.InvalidCustomer.body')\r\n }\r\n case 'OperationAccessViolation': return {\r\n title: i18nInstance.global.t('Errors.OperationAccessViolation.title'),\r\n body: i18nInstance.global.t('Errors.OperationAccessViolation.body', { operationClaimName: i18nInstance.global.t(`operationClaims.${_.head(errorItem.arguments).operationClaimName}`) })\r\n }\r\n case 'DataAccessViolation':\r\n let names = ''\r\n if (errorItem.arguments && errorItem.arguments.length) {\r\n names = errorItem.arguments.map(arg => i18nInstance.global.t('EntityTypes.' + arg.entityType)).join('
')\r\n }\r\n\r\n return {\r\n title: i18nInstance.global.t('Errors.DataAccessViolation.title'),\r\n body: i18nInstance.global.t(`Errors.DataAccessViolation.body${(names.length ? '-withname' : '')}`, { names })\r\n }\r\n case 'HasDependent':\r\n let lines = []\r\n if (errorItem.arguments && errorItem.arguments.length) {\r\n lines = errorItem.arguments.map(x => `- ${i18nInstance.global.t(x)}`)\r\n }\r\n return {\r\n title: i18nInstance.global.t('Errors.HasDependent.title'),\r\n body: i18nInstance.global.t('Errors.HasDependent.body') + '' + lines.join('
') + '
'\r\n }\r\n case 'IdentityException': return {\r\n title: i18nInstance.global.t('Errors.IdentityException.title'),\r\n body: i18nInstance.global.t('Errors.IdentityException.body')\r\n }\r\n case 'AcceptWarningException': {\r\n let lines = []\r\n if (errorItem.arguments && errorItem.arguments.length) {\r\n lines = errorItem.arguments\r\n }\r\n\r\n return {\r\n title: i18nInstance.global.t('Errors.AcceptWarningException.title'),\r\n body: errorItem.description + '
' + lines.join('
')\r\n }\r\n }\r\n case 'ValidationException': {\r\n let lines = []\r\n if (errorItem.arguments && errorItem.arguments.length) {\r\n lines = errorItem.arguments.map(arg => arg.errorMessage)\r\n }\r\n\r\n return {\r\n title: i18nInstance.global.t('Errors.ValidationException.title'),\r\n body: i18nInstance.global.t('Errors.ValidationException.body', { description: lines.join('
') })\r\n }\r\n }\r\n default: return {\r\n title: i18nInstance.global.t('Errors.GeneralError.title'),\r\n body: i18nInstance.global.t('Errors.GeneralError.body', errorItem)\r\n }\r\n }\r\n }\r\n\r\n if (Array.isArray(error.errors)) {\r\n if (error.errors.length > 1) {\r\n let items = []\r\n for (var i = 0; i < error.errors.length; i++) {\r\n let er = error.errors[i]\r\n let item = act(er)\r\n items.push(item)\r\n }\r\n\r\n let body = `${items.map(x => x.body).join('')}`\r\n return {\r\n errorCode: error.error[i].code,\r\n title: null,\r\n body\r\n }\r\n } else if (error.errors.length === 1) {\r\n let res = act(error.errors[0])\r\n return {\r\n errorCode: error.errors[0].code,\r\n title: res.title,\r\n body: res.body\r\n }\r\n }\r\n }\r\n\r\n return {}\r\n}\r\n\r\nconst isModernResponse = (result) => Object.getOwnPropertyNames(result).filter(x => x === 'succeeded').length === 1\r\nconst convertToOldSchema = result => {\r\n return {\r\n success: result.succeeded,\r\n data: result.object,\r\n errors: result.errors\r\n }\r\n}\r\nconst isUserUnauthorizeError = (error) => error.errors.filter(x => x.code === 'UnauthorizedAccess').length > 0\r\nconst isLauncherError = (error) => error.errors.filter(x => x.code === 'launcherException').length > 0\r\n\r\nconst _get = (url, options) => {\r\n url = url || ''\r\n url = _.isString(url) ? url.trim() : (() => { throw new Error('url is not a string') })()\r\n url = addCurrentLocaleToUrl(url)\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n if (!options.ignoreCommercialAccess && !checkCommercialAccess(url))\r\n return reject({ data: { items: [] }, message: 'Access Denied!' })\r\n\r\n if (options.preventConcurrent && Store.getters['concurrentRequests/get'](url)) {\r\n let ex = {\r\n title: i18nInstance.global.t('msg.general-server-error.title'),\r\n success: false,\r\n message: i18nInstance.global.t('msg.too-many-request'),\r\n messageTypeCode: 1,\r\n messageType: 'error',\r\n }\r\n ex.promise = new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n console.log(url)\r\n toastInstance(ex.message, { type: 'error' })\r\n resolve(ex)\r\n }, 50)\r\n })\r\n reject(ex)\r\n return\r\n }\r\n\r\n getAxios().get(url)\r\n .then(response => {\r\n var rd = response.data\r\n\r\n if (rd == null) {\r\n let ex = {\r\n success: false,\r\n message: 'Response is undefined',\r\n messageTypeCode: 1,\r\n messageType: 'error'\r\n }\r\n throw ex\r\n } else {\r\n if (isModernResponse(rd)) {\r\n if (rd.succeeded === false) {\r\n throw rd\r\n } else {\r\n resolve(convertToOldSchema(rd))\r\n }\r\n } else {\r\n if (rd.success === false) {\r\n throw rd\r\n } else {\r\n resolve(rd)\r\n }\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n let ex = {\r\n title: i18nInstance.global.t('msg.general-server-error.title'),\r\n success: false,\r\n message: error.message,\r\n messageTypeCode: 1,\r\n messageType: 'error',\r\n exception: error\r\n }\r\n\r\n let responseContent = isModernResponse(error) ? error : _.get(error, 'response.data')\r\n if (responseContent) {\r\n if (isModernResponse(responseContent)) {\r\n let isUserUnauthorize = isUserUnauthorizeError(responseContent)\r\n if (isUserUnauthorize) {\r\n logoutUser()\r\n return\r\n }\r\n\r\n let isLaunchRequied = isLauncherError(responseContent)\r\n if (isLaunchRequied) {\r\n redirectToLauncher()\r\n return\r\n }\r\n\r\n let { title, body } = getErrorDetail(responseContent)\r\n ex.title = title || ex.title\r\n ex.message = body.replace(/(?:\\r\\n|\\r|\\n)/g, '
')\r\n } else if (responseContent.success === true) {\r\n ex.message = responseContent.message\r\n }\r\n }\r\n\r\n if (!options.silent) {\r\n // show the error dialog box\r\n ex.promise = new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n dialog({\r\n title: ex.title,\r\n body: ex.message,\r\n type: ex.messageType\r\n }).then(res => resolve(res))\r\n .catch(error => reject(error))\r\n }, 50)\r\n })\r\n } else {\r\n ex.promise = Promise.resolve()\r\n }\r\n\r\n reject(ex)\r\n })\r\n })\r\n}\r\nconst _post = (url, data, options) => {\r\n const doPromise = (resolve, reject) => {\r\n let config = {\r\n header: {\r\n 'Content-Type': data instanceof FormData ? 'multipart/form-data' : 'application/json'\r\n },\r\n onUploadProgress: options.onUploadProgress || (() => { })\r\n }\r\n\r\n if (url.toLowerCase().indexOf('download/') > -1) {\r\n config.responseType = 'blob'\r\n }\r\n\r\n if (options.responseType) {\r\n config.responseType = options.responseType\r\n }\r\n\r\n if (!options.ignoreCommercialAccess && !checkCommercialAccess(url))\r\n return reject({ data: { items: [] }, message: 'Access Denied!' })\r\n\r\n\r\n if (options.preventConcurrent && Store.getters['concurrentRequests/get'](url)) {\r\n let ex = {\r\n title: i18nInstance.global.t('msg.general-server-error.title'),\r\n success: false,\r\n message: i18nInstance.global.t('msg.too-many-request'),\r\n messageTypeCode: 1,\r\n messageType: 'error',\r\n }\r\n ex.promise = new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n console.warn('Concurrent', url)\r\n toastInstance(ex.message, { type: 'error' })\r\n resolve(ex)\r\n }, 50)\r\n })\r\n reject(ex)\r\n return\r\n }\r\n\r\n Store.dispatch('concurrentRequests/add', url)\r\n\r\n getAxios().post(url, data, config)\r\n .then(response => {\r\n setTimeout(() => {\r\n Store.dispatch('concurrentRequests/remove', url)\r\n }, 500)\r\n\r\n var rd = response.data\r\n\r\n if (rd == null) {\r\n let ex = {\r\n success: false,\r\n message: 'Response is undefined',\r\n messageTypeCode: 1,\r\n messageType: 'error'\r\n }\r\n throw ex\r\n } else {\r\n if (url.toLowerCase().indexOf('download/') > -1 || url.toLowerCase().indexOf('export/') > -1 || options.responseType === 'blob') {\r\n resolve(response)\r\n } else if (isModernResponse(rd)) {\r\n if (rd.succeeded === false) {\r\n throw rd\r\n } else {\r\n resolve(convertToOldSchema(rd))\r\n }\r\n } else {\r\n if (rd.success === false) {\r\n if (rd.message)\r\n throw rd\r\n } else {\r\n resolve(rd)\r\n }\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n setTimeout(() => {\r\n Store.dispatch('concurrentRequests/remove', url)\r\n }, 500)\r\n\r\n let ex = {\r\n title: i18nInstance.global.t('msg.general-server-error.title'),\r\n success: false,\r\n message: error.message,\r\n messageTypeCode: 1,\r\n messageType: 'error',\r\n exception: error\r\n }\r\n\r\n let responseContent = isModernResponse(error) ? error : _.get(error, 'response.data')\r\n if (responseContent) {\r\n if (isModernResponse(responseContent)) {\r\n let isUserUnauthorize = isUserUnauthorizeError(responseContent)\r\n if (isUserUnauthorize) {\r\n logoutUser()\r\n return\r\n }\r\n\r\n let isLaunchRequied = isLauncherError(responseContent)\r\n if (isLaunchRequied) {\r\n redirectToLauncher()\r\n return\r\n }\r\n\r\n let { errorCode, title, body } = getErrorDetail(responseContent)\r\n ex.errorCode = errorCode\r\n ex.title = title || ex.title\r\n ex.message = body.replace(/(?:\\r\\n|\\r|\\n)/g, '
')\r\n } else if (responseContent.success === true) {\r\n ex.message = responseContent.message\r\n }\r\n }\r\n\r\n if (ex.errorCode === 'AcceptWarningException' && !options.warningTurn) {//options.warningTurn for prevent loop\r\n ex.promise = new Promise((exResolve, exReject) => {\r\n setTimeout(() => {\r\n dialog({\r\n title: ex.title,\r\n body: ex.message,\r\n type: 'warning',\r\n buttons: [\r\n {\r\n title: i18nInstance.global.t('dialog.yes'),\r\n shortcut: $sc.find('yes', 'dialog'),\r\n isPrimary: true,\r\n handle: (button, page, e) => {\r\n options.warningTurn = true\r\n options.resolve = resolve\r\n options.reject = reject\r\n data.checkWarning = false\r\n _post(url, data, options)\r\n },\r\n },\r\n {\r\n title: i18nInstance.global.t('dialog.cancel'),\r\n shortcut: $sc.find('cancel', 'dialog'),\r\n isCancel: true,\r\n handle: (button, page, e) => {\r\n reject()\r\n },\r\n },\r\n ],\r\n })\r\n }, 50)\r\n })\r\n return\r\n }\r\n\r\n if (!options.silent) {\r\n // show the error dialog box\r\n ex.promise = new Promise((exResolve, exReject) => {\r\n setTimeout(() => {\r\n dialog({\r\n title: ex.title,\r\n body: ex.message,\r\n type: ex.messageType\r\n }).then(res => resolve(res))\r\n .catch(error => reject(error))\r\n }, 50)\r\n })\r\n } else {\r\n ex.promise = Promise.resolve()\r\n }\r\n\r\n reject(ex)\r\n })\r\n }\r\n if (options.warningTurn) {\r\n return doPromise(options.resolve, options.reject)\r\n }\r\n url = url || ''\r\n url = _.isString(url) ? url.trim() : (() => { throw new Error('url is not a string') })()\r\n url = addCurrentLocaleToUrl(url)\r\n\r\n data = data || {}\r\n data = (_.isObject(data) || Array.isArray(data)) ? data : (() => { throw new Error('data is not an object or array') })()\r\n data = decorateRequest(data, url)\r\n if (!data.hasOwnProperty('checkWarning') && options.checkWarning) {\r\n data.checkWarning = true\r\n }\r\n return new Promise((resolve, reject) => {\r\n doPromise(resolve, reject)\r\n })\r\n}\r\nconst _validate = url => {\r\n url = (url || '').trim()\r\n if (url === '') {\r\n throw new Error('url is required')\r\n }\r\n}\r\nconst _getAddress = endpoint => {\r\n if (!endpoint) {\r\n return ''\r\n }\r\n\r\n let address = _.isString(endpoint) ? endpoint : endpoint.address\r\n return address\r\n}\r\n\r\nconst checkCommercialAccess = (url) => {\r\n const endpoint = Endpoints.getEndpointByUrl(url)\r\n const hasPermission = Store.getters['appContext/checkCommercialAccess']\r\n var commercialAccess = endpoint.commercialAccess ? endpoint.commercialAccess : url.split('/')[3].upperCaseFirstLetter()\r\n\r\n if (!hasPermission(commercialAccess)) {\r\n globalLogger.error(`Access Denied! ${commercialAccess} - ${url}`)\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n\r\nconst api = {\r\n get(endpoint, callback, options = { silent: false, preventConcurrent: true, ignoreCommercialAccess: false }) {\r\n let address = _getAddress(endpoint)\r\n _validate(address)\r\n\r\n if (options && typeof options.preventConcurrent === 'undefined')\r\n options.preventConcurrent = true\r\n\r\n var promise = _get(address, options)\r\n\r\n if (callback == null) {\r\n return promise\r\n } else {\r\n promise\r\n .then(response => callback(response))\r\n .catch(error => callback(error))\r\n }\r\n },\r\n post(endpoint, data, callback, _options) {\r\n let options = { silent: false, preventConcurrent: true, ignoreCommercialAccess: false, checkWarning: true }\r\n merge(options, _options)\r\n let address = _getAddress(endpoint)\r\n _validate(address)\r\n\r\n if (options && typeof options.preventConcurrent === 'undefined')\r\n options.preventConcurrent = true\r\n\r\n var promise = _post(address, data, options)\r\n\r\n if (callback == null) {\r\n return promise\r\n } else {\r\n promise\r\n .then(response => callback(response))\r\n .catch(error => callback(error))\r\n }\r\n }\r\n}\r\n\r\nexport const get = api.get\r\nexport const post = api.post\r\nexport default api\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ag_grid = _resolveComponent(\"ag-grid\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, { policyClaims: [] }, {\n default: _withCtx(() => [\n _createVNode(_component_ag_grid, {\n options: _ctx.tableOptions,\n data: _ctx.errorList,\n ref: \"table\",\n startup: \"\",\n tabindex: \"101\"\n }, null, 8, [\"options\", \"data\"])\n ]),\n _: 1\n }))\n}","\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./product-import-errors.vue?vue&type=template&id=5362cdb4&ts=true\"\nimport script from \"./product-import-errors.vue?vue&type=script&lang=ts\"\nexport * from \"./product-import-errors.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
![]()
\r\n\t
\r\n\r\n\r\n","import { render } from \"./nikan-image.vue?vue&type=template&id=561a93a8\"\nimport script from \"./nikan-image.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-image.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"form-container d-flex flex-column gap-10\" }\nconst _hoisted_2 = { class: \"nk-card d-flex align-items-center justify-content-center gap-15\" }\nconst _hoisted_3 = { class: \"code-title\" }\nconst _hoisted_4 = { class: \"icon-title\" }\nconst _hoisted_5 = { class: \"input-title\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"nk-card bg-white-nk-page\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_icon = _resolveComponent(\"icon\")!\n const _component_nk_input = _resolveComponent(\"nk-input\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: _ctx.settings.commercialAccess,\n policyClaims: _ctx.settings.claim\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.currentData?.code), 1),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_icon, {\n icon: \"arrow-left\",\n group: \"duo\"\n })\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.code,\n modelValue: _ctx.localData.code,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.localData.code) = $event))\n }, null, 8, [\"options\", \"modelValue\"])\n ])\n ]),\n (_ctx.settings.reviewComponent)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.settings.reviewComponent), {\n data: _ctx.currentData,\n options: _ctx.settings.componentOptions\n }, null, 8, [\"data\", \"options\"]))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n }, 8, [\"commercialAccess\", \"policyClaims\"]))\n}","\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n","import { render } from \"./update-code.vue?vue&type=template&id=e6a3682a&ts=true\"\nimport script from \"./update-code.vue?vue&type=script&lang=ts\"\nexport * from \"./update-code.vue?vue&type=script&lang=ts\"\n\nimport \"./update-code.vue?vue&type=style&index=0&id=e6a3682a&lang=less\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import _ from 'lodash'\r\nimport { post } from './nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport ReportParameters from '../views/reports/report-parameters.vue'\r\nimport DynamicReportViewer from '../views/reports/dynamic-report-viewer.vue'\r\nimport moment, { Moment } from \"jalali-moment\"\r\nimport Store from '../store/index'\r\nimport { IDRParameter, IQueryDesignerData, TDRParameterSmartDate, IDynamicReport, IReportExecuteResult } from '../interfaces/plugins/dynamic-report'\r\n\r\ninterface IExecutionRequestResult {\r\n errors: any[]\r\n success: boolean\r\n data: IReportExecuteResult\r\n}\r\n\r\nclass DynamicReport {\r\n calculateParameters(parameters: IDRParameter[], settingParameters: IDRParameter[]) {\r\n if (parameters && parameters.length > 0) {\r\n return parameters.map(x => {\r\n let foundParameter = settingParameters && settingParameters.find(y => y.key == x.key)\r\n let value\r\n switch (x.type) {\r\n case 'guid':\r\n if (foundParameter?.value === 'currentCompany')\r\n value = Store.getters['appContext/getCompany'].id\r\n if (foundParameter?.value === 'currentFiscalPeriod')\r\n value = Store.getters['appContext/getFiscalPeriod'].id\r\n break\r\n case 'currentCompany':\r\n value = Store.getters['appContext/getCompany'].id\r\n break\r\n case 'currentFiscalPeriod':\r\n value = Store.getters['appContext/getFiscalPeriod'].id\r\n break\r\n case 'smartDate':\r\n value = this.calculateSmartDate(x.smartDate)\r\n break\r\n case 'currentDate':\r\n value = new Date()\r\n break\r\n default:\r\n value = x.value || foundParameter?.value\r\n break\r\n }\r\n\r\n return { ...x, value: value }\r\n })\r\n } else return []\r\n }\r\n\r\n calculateSmartDate(smartDateObj: TDRParameterSmartDate) {\r\n let timeDictionary: Record = {\r\n day: 'days',\r\n week: 'weeks',\r\n month: 'months',\r\n year: 'years',\r\n }\r\n if (smartDateObj) {\r\n let faNow: Moment = moment().locale('fa')\r\n let faDateDirection: Moment\r\n if (smartDateObj?.direction == 'future')\r\n faDateDirection = faNow.add(smartDateObj.count, timeDictionary[smartDateObj.type])\r\n else\r\n faDateDirection = faNow.subtract(smartDateObj.count, timeDictionary[smartDateObj.type])\r\n\r\n let targetFaDate\r\n if (smartDateObj.startOrEnd == 'start') targetFaDate = faDateDirection.startOf(smartDateObj.type).format('YYYY/MM/DD')\r\n else targetFaDate = faDateDirection.endOf(smartDateObj.type).format('YYYY/MM/DD')\r\n let targetEnDate = moment.from(targetFaDate, 'fa', 'YYYY/MM/DD').format('YYYY/MM/DD')\r\n return targetEnDate\r\n }\r\n }\r\n\r\n callReportsDynamicApi(queryDesignerObject: IQueryDesignerData, reportData: IDynamicReport) {\r\n return post(Endpoints.getUrl('reportsDynamic.execute'), { queryDesigner: queryDesignerObject }).then((executeResult: IExecutionRequestResult) => {\r\n return {\r\n name: reportData.name,\r\n id: reportData.id,\r\n executeResult: executeResult.data\r\n }\r\n\r\n })\r\n .catch((e: any) => {\r\n throw e\r\n })\r\n }\r\n\r\n getDynamicReport(reportId: string) {\r\n return post(Endpoints.getUrl(\"reportsDynamic.get\"), { id: reportId })\r\n }\r\n\r\n fillParameters(parameters: IDRParameter[], _this: any): Promise {\r\n return new Promise((resolve, reject) => {\r\n\r\n let resultParameters: IDRParameter[] = []\r\n\r\n const autoParametersTypes = ['smartDate', 'currentDate', 'currentCompany', 'currentFiscalPeriod']\r\n const allParametersAreAuto = parameters.every(parameter => autoParametersTypes.includes(parameter.type))\r\n\r\n if (parameters && parameters.length > 0 && !allParametersAreAuto) {\r\n _this.showModal({\r\n component: ReportParameters,\r\n data: parameters,\r\n options: {\r\n autoFields: autoParametersTypes\r\n }\r\n }).then((resultParameters: IDRParameter[]) => {\r\n const calculatedParams = this.calculateParameters(parameters, resultParameters)\r\n resolve(calculatedParams)\r\n }).catch((err: any) => err)\r\n }\r\n else {\r\n const calculatedParams = this.calculateParameters(parameters, resultParameters)\r\n resolve(calculatedParams)\r\n }\r\n })\r\n }\r\n\r\n getAndExecuteDynamicReport(reportId: string, _this: any) {\r\n return new Promise((resolve, reject) => {\r\n this.getDynamicReport(reportId).then((res: { data: IDynamicReport }) => {\r\n this.executeDynamicReport(res.data, _this).then((result) => {\r\n resolve(result)\r\n }).catch((err) => reject(err))\r\n }).catch((err: any) => {\r\n console.log(err)\r\n })\r\n })\r\n }\r\n\r\n async executeDynamicReport(reportData: IDynamicReport, _this: any) {\r\n let queryDesignerObject = JSON.parse(reportData.queryDesignerJson) as IQueryDesignerData\r\n try {\r\n const resultParameters = await this.fillParameters(queryDesignerObject.parameters, _this)\r\n queryDesignerObject.parameters = resultParameters\r\n }\r\n catch (e) {\r\n throw new Error('Report execution failed. Error:\"Parameters\"')\r\n }\r\n\r\n let wait = _this.$wait(_this.$el)\r\n try {\r\n const reportResult = await this.callReportsDynamicApi(queryDesignerObject, reportData)\r\n wait.end()\r\n return reportResult\r\n }\r\n catch {\r\n wait.end()\r\n throw new Error('Report execution failed. Error: \"Server Execution\"')\r\n }\r\n }\r\n\r\n launchDynamicReport(reportId: string, _this: any) {\r\n this.getDynamicReport(reportId).then((res: { data: IDynamicReport }) => {\r\n this.executeDynamicReport(res.data, _this).then((executionResult) => {\r\n this.showReportDataInModal(executionResult, _this)\r\n })\r\n }).catch((err: any) => {\r\n console.log(err)\r\n })\r\n }\r\n\r\n showReportDataInModal(dynamicReportData: { name: string, id: string, executeResult: IReportExecuteResult }, _this: any) {\r\n setTimeout(() => {\r\n _this.showModal({\r\n component: DynamicReportViewer,\r\n data: dynamicReportData\r\n }).then(() => { }).catch(() => { })\r\n }, 350)\r\n }\r\n}\r\n\r\nconst dynamicReportInstance = new DynamicReport()\r\n\r\nexport { DynamicReport }\r\nexport default dynamicReportInstance","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./product-list.vue?vue&type=template&id=6c1263ed\"\nimport script from \"./product-list.vue?vue&type=script&lang=js\"\nexport * from \"./product-list.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-product-group.vue?vue&type=template&id=a4c0e7a0\"\nimport script from \"./dropdown-product-group.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-product-group.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
resolve(x)\" :tabindex=\"101\" ref=\"table\">\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./product-floating-jsons-view.vue?vue&type=template&id=9367f566\"\nimport script from \"./product-floating-jsons-view.vue?vue&type=script&lang=js\"\nexport * from \"./product-floating-jsons-view.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\r\n\t\t selectedItem = rowData\" tabindex=\"101\" ref=\"table\" startup class=\"h-100 \">\r\n\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./center-selector.vue?vue&type=template&id=41327f7e\"\nimport script from \"./center-selector.vue?vue&type=script&lang=js\"\nexport * from \"./center-selector.vue?vue&type=script&lang=js\"\n\nimport \"./center-selector.vue?vue&type=style&index=0&id=41327f7e&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./google-signin-button.vue?vue&type=template&id=318724e3\"\nimport script from \"./google-signin-button.vue?vue&type=script&lang=js\"\nexport * from \"./google-signin-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"nk-card form-container m-2 d-flex flex-column\",\n ref: \"parent\"\n}\nconst _hoisted_2 = { class: \"row mb-3\" }\nconst _hoisted_3 = { class: \"col-sm-12 col-md-12 col-lg-12\" }\nconst _hoisted_4 = { class: \"col-sm-12 col-md-12 col-lg-12\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_nk_input = _resolveComponent(\"nk-input\")!\n const _component_nk_col_form_group = _resolveComponent(\"nk-col-form-group\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n class: \"\",\n policyClaims: ``,\n tabindex: \"101\",\n startup: \"\"\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('salary.variable.salary-item-variable')\n }, null, 8, [\"title\"]),\n _createVNode(_component_nk_badge_item, {\n type: \"edition\",\n modelValue: _ctx.settings.mode === _ctx.FORM_MODES.READONLY ? _ctx.FORM_MODES.READONLY : (_ctx.isEmpty(_ctx.localData.id) ? 'new' : 'edit')\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.variable.title') + ':',\n labelSizes: { sm: 12, md: 2 },\n dataSizes: { sm: 12, md: 10 },\n labelAligns: { sm: 'right', md: 'left', lg: 'left' }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n class: \"\",\n modelValue: _ctx.localData.title,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.localData.title) = $event)),\n options: _ctx.localOptions.title,\n tabindex: 106\n }, null, 8, [\"modelValue\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.variable.value') + ':',\n labelSizes: { sm: 12, md: 2 },\n dataSizes: { sm: 12, md: 10 },\n labelAligns: { sm: 'right', md: 'left', lg: 'left' }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n class: \"\",\n modelValue: _ctx.localData.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.localData.value) = $event)),\n options: _ctx.localOptions.value,\n tabindex: 107\n }, null, 8, [\"modelValue\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ])\n ], 512)\n ]),\n _: 1\n }))\n}","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n","import { Guid, IBaseModel } from '@/interfaces/base'\r\nimport emptyId from '@/statics/empty-id'\r\n\r\nexport class SalaryVariable implements IBaseModel {\r\n\tid: Guid = emptyId\r\n\ttitle: string | null = null\r\n\tvalue: number = 0\r\n}","import { render } from \"./modify-variable.vue?vue&type=template&id=7cb0de15&ts=true\"\nimport script from \"./modify-variable.vue?vue&type=script&lang=ts\"\nexport * from \"./modify-variable.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import NProgress from 'nprogress/nprogress'\r\nimport { markRaw, defineAsyncComponent } from 'vue'\r\n\r\nNProgress.configure({ showSpinner: true })\r\n\r\nconst lazy = (path) => {\r\n const AsyncComp = defineAsyncComponent({\r\n loader: () => import(`~/views/${path}`),\r\n onError: (err) => console.log(err)\r\n })\r\n NProgress.done()\r\n return markRaw(AsyncComp)\r\n}\r\n\r\nexport const routes = [\r\n { id: 'home', component: lazy('home/home-page'), menu: 'nav.home', sticky: true, startup: true, icon: 'home' },\r\n {\r\n id: 'accounting',\r\n menu: 'nav.accounting',\r\n icon: 'calculator-alt',\r\n commercialAccess: 'System',\r\n items: [\r\n {\r\n id: 'accounting-base',\r\n menu: 'nav.base',\r\n icon: 'layer-plus',\r\n items: [\r\n { id: 'accounts', component: lazy('accounts/account-list'), addToFavorites: true, menu: 'nav.accounts', icon: 'abacus', policyToken: 'Accounting_Account_Management', helpTag: 'Accounts', passive: false },\r\n { id: 'centers', component: lazy('floating-centers/list'), addToFavorites: true, menu: 'nav.centers', icon: 'project-diagram', policyToken: 'Accounting_FloatingCenters_Management', helpTag: 'FloatingCenters', passive: false },\r\n {\r\n id: 'floating-center-groups',\r\n menu: 'nav.dynamic-center.title',\r\n icon: 'universal-access',\r\n commercialAccess: 'System',\r\n items: [\r\n { id: 'person', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Person' }, menu: 'nav.dynamic-center.groups.person', icon: 'user', policyToken: 'Accounting_FloatingCenterGroups_Person' },\r\n { id: 'company', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Company' }, menu: 'nav.dynamic-center.groups.company', icon: 'building', policyToken: 'Accounting_FloatingCenterGroups_Company' },\r\n { id: 'project', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Project' }, menu: 'nav.dynamic-center.groups.project', icon: 'tasks-alt', policyToken: 'Accounting_FloatingCenterGroups_Project' },\r\n { id: 'department', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Department' }, menu: 'nav.dynamic-center.groups.department', icon: 'building', policyToken: 'Accounting_FloatingCenterGroups_Department' },\r\n { id: 'credits-lc', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'CreditsLc' }, menu: 'nav.dynamic-center.groups.credits-lc', icon: 'file-alt', policyToken: 'Accounting_FloatingCenterGroups_CreditsLc' },\r\n { id: 'orders', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Orders' }, menu: 'nav.dynamic-center.groups.orders', icon: 'truck-loading', policyToken: 'Accounting_FloatingCenterGroups_Orders' },\r\n { id: 'sale-contracts', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'SaleContracts' }, menu: 'nav.dynamic-center.groups.sale-contracts', icon: 'file-signature', policyToken: 'Accounting_FloatingCenterGroups_SaleContracts' },\r\n { id: 'purchase-contracts', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'PurchaseContracts' }, menu: 'nav.dynamic-center.groups.purchase-contracts', icon: 'file-signature', policyToken: 'Accounting_FloatingCenterGroups_PurchaseContracts' },\r\n { id: 'product', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Product' }, menu: 'nav.dynamic-center.groups.product', icon: 'box', policyToken: 'Accounting_FloatingCenterGroups_Product' },\r\n { id: 'product-category', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'ProductCategory' }, menu: 'nav.dynamic-center.groups.product-category', icon: 'boxes-alt', policyToken: 'Accounting_FloatingCenterGroups_ProductCategory' },\r\n { id: 'warehouse', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Warehouse' }, menu: 'nav.dynamic-center.groups.warehouse', icon: 'warehouse-alt', policyToken: 'Accounting_FloatingCenterGroups_Warehouse' },\r\n { id: 'cost-center', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'CostCenter' }, menu: 'nav.dynamic-center.groups.cost-center', icon: 'shopping-bag', policyToken: 'Accounting_FloatingCenterGroups_CostCenter' },\r\n { id: 'service', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Service' }, menu: 'nav.dynamic-center.groups.service', icon: 'hand-holding-magic', policyToken: 'Accounting_FloatingCenterGroups_Service' },\r\n { id: 'facilities', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Facilities' }, menu: 'nav.dynamic-center.groups.facilities', icon: 'hand-receiving', policyToken: 'Accounting_FloatingCenterGroups_Facilities' },\r\n { id: 'personel', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Personel' }, menu: 'nav.dynamic-center.groups.personel', icon: 'clipboard-user', policyToken: 'Accounting_FloatingCenterGroups_Personel' },\r\n { id: 'bank', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Bank' }, menu: 'nav.dynamic-center.groups.bank', icon: 'university', policyToken: 'Accounting_FloatingCenterGroups_Bank' },\r\n { id: 'cash', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Cash' }, menu: 'nav.dynamic-center.groups.cash', icon: 'university', policyToken: 'Accounting_FloatingCenterGroups_Cash' },\r\n { id: 'other', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Other' }, menu: 'nav.dynamic-center.groups.other', icon: 'ellipsis-h-alt', policyToken: 'Accounting_FloatingCenterGroups_Other' }\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n id: 'document',\r\n menu: 'nav.document',\r\n icon: 'file-alt',\r\n items: [\r\n { id: 'document-issue', menu: 'nav.document-issue', icon: 'file-alt', component: lazy('documents/document-single'), addToFavorites: true, allowMultiple: true, policyToken: 'Accounting_Document_Management', cachable: true, helpTag: 'Document' },\r\n { id: 'document-list', menu: 'nav.document-list', icon: 'list-ul', component: lazy('documents/document-selector'), allowMultiple: true, policyToken: 'Accounting_Document_List' },\r\n { id: 'document-opertaion', menu: 'nav.document-operation', icon: 'file-signature', component: lazy('documents/document-operation-list'), allowMultiple: true, policyToken: 'Accounting_Document_Operation' },\r\n { id: 'document-sorting', menu: 'nav.document-sorting', icon: 'sort-amount-up', component: lazy('documents/document-sorting.vue'), allowMultiple: true, policyToken: 'Accounting_Accounting_DocumentSorting' },\r\n { id: 'ledger', component: lazy('reports/ledger'), menu: 'nav.reports.ledger', icon: 'book', addToHome: true, policyToken: 'Report_Ledger_Management' },\r\n { id: 'document-merge', menu: 'nav.document-merge', icon: 'merge', component: lazy('documents/document-merge'), allowMultiple: true, policyToken: 'Accounting_Document_Merge' },\r\n ]\r\n },\r\n {\r\n id: 'reports',\r\n menu: 'nav.reports.reports',\r\n icon: 'chart-pie',\r\n items: [\r\n { id: 'general-journal', component: lazy('reports/general-journal'), menu: 'nav.reports.general-journal', icon: 'newspaper', policyToken: 'Report_journal_Management' },\r\n { id: 'trial-balance', component: lazy('reports/trial-balance'), menu: 'nav.reports.trial-balance', icon: 'history', policyToken: 'Report_TrialBalance_Management' },\r\n { id: 'account-crawling', component: lazy('reports/account-crawling'), menu: 'nav.reports.account-crawling', icon: 'history', policyToken: 'Report_Crawling_Management', allowMultiple: true },\r\n { id: 'account-crawling-matrix', component: lazy('reports/account-crawling-matrix'), menu: 'nav.reports.account-crawling-matrix', icon: 'history', policyToken: 'Report_Crawling_Management' },\r\n { id: 'turn-over', component: lazy('reports/turn-over'), menu: 'nav.reports.turn-over', icon: 'file-chart-line', policyToken: 'Report_TurnOver_Management', allowMultiple: true },\r\n { id: 'statement-of-financial', component: lazy('reports/statement-of-financial'), menu: 'nav.reports.statement-of-financial', icon: 'file-chart-line', policyToken: 'Report_StatementOfFinancial_Management' },\r\n { id: 'account-cascade', component: lazy('reports/account-cascade'), menu: 'nav.reports.account-cascade', icon: 'file-chart-line', policyToken: 'Report_StatementOfFinancial_Management' },\r\n { id: 'income-statement', component: lazy('reports/income-statement'), menu: 'nav.reports.income-statement', icon: 'file-chart-line', policyToken: 'Report_IncomeStatement_Management' },\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n id: 'treasury',\r\n menu: 'nav.treasury',\r\n icon: 'treasure-chest',\r\n commercialAccess: 'Treasury',\r\n items: [\r\n {\r\n id: 'trs.definitions',\r\n menu: 'nav.definitions',\r\n icon: 'layer-plus',\r\n items: [\r\n { id: 'bank', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Bank' }, menu: 'nav.dynamic-center.groups.bank', icon: 'university', policyToken: 'Accounting_FloatingCenterGroups_Bank' },\r\n { id: 'cash', component: lazy('floating-centers/dynamic-list'), options: { centerGroup: 'Cash' }, menu: 'nav.dynamic-center.groups.cash', icon: 'university', policyToken: 'Accounting_FloatingCenterGroups_Cash' },\r\n ]\r\n },\r\n {\r\n id: 'trs.cheque',\r\n menu: 'nav.cheque',\r\n icon: 'money-check-alt',\r\n items: [\r\n { id: 'cheque-modify', component: lazy('treasury/cheque-modify'), menu: 'nav.cheque-modify', icon: 'money-check-alt', policyToken: 'Treasury_ChequeBunch_Management' },\r\n { id: 'cheque-operation-list', component: lazy('treasury/cheque-operation-list'), addToFavorites: true, menu: 'nav.cheque.operation-list', icon: 'file-signature', policyToken: 'Treasury_ChequeOperation_Management' },\r\n { id: 'cheque-sell', component: lazy('treasury/cheque-sell'), menu: 'nav.cheque-sell', icon: 'file-invoice-dollar', policyToken: 'Treasury_SoldCheque_Management' }\r\n ]\r\n },\r\n {\r\n id: 'trs-receives',\r\n menu: 'nav.receives',\r\n icon: 'hand-holding-usd',\r\n items: [\r\n { id: 'receive-single', component: lazy('treasury/receive.vue'), addToFavorites: true, menu: 'nav.trans.rec.single-rec', icon: 'file-medical', cachable: true },\r\n { id: 'receive-hybrid', component: lazy('treasury/receive-hybrid'), menu: 'nav.trans.rec.hybrid', icon: 'files-medical', policyToken: 'Treasury_ReceiveHybrid_Management', cachable: true },\r\n ]\r\n },\r\n {\r\n id: 'trs-payments',\r\n menu: 'nav.payments',\r\n icon: 'money-bill-wave',\r\n items: [\r\n { id: 'payment-single', component: lazy('treasury/payment'), addToFavorites: true, menu: 'nav.trans.pay.single-pay', icon: 'file-medical', cachable: true },\r\n { id: 'payment-hybrid', component: lazy('treasury/payment-hybrid'), menu: 'nav.trans.pay.hybrid', icon: 'files-medical', policyToken: 'Treasury_PaymentHybrid_Management', cachable: true },\r\n ]\r\n },\r\n {\r\n id: 'transfers',\r\n menu: 'nav.trans.transfer',\r\n icon: 'exchange',\r\n items: [\r\n { id: 'transfer', component: lazy('treasury/transfer.vue'), menu: 'nav.trans.transfer', icon: 'exchange', policyToken: 'Treasury_Transfer_Management', cachable: true },\r\n { id: 'transfer-list', component: lazy('treasury/transfer-list.vue'), menu: 'nav.trans.transfer-list', icon: 'list-ul', policyToken: 'Treasury_Transfer_List' }\r\n ]\r\n },\r\n {\r\n id: 'reports',\r\n menu: 'nav.reports.reports',\r\n icon: 'chart-pie',\r\n items: [\r\n { id: 'receives-list', component: lazy('treasury/receives-list.vue'), menu: 'nav.trans.rec.list', icon: 'list-ul', policyToken: 'Treasury_Treasury_ReceivesList' },\r\n { id: 'payments-list', component: lazy('treasury/payments-list.vue'), menu: 'nav.trans.pay.list', icon: 'list-ul', policyToken: 'Treasury_Treasury_PaymentsList' }\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n {\r\n id: 'warehouse-product',\r\n menu: 'nav.warehouse-product',\r\n icon: 'warehouse-alt',\r\n commercialAccess: ['Sale', 'Warehouse'],\r\n items: [\r\n {\r\n id: 'warehouse-product-base',\r\n menu: 'nav.base',\r\n icon: 'layer-plus',\r\n items: [\r\n { id: 'product-warehouse', component: lazy('sale/warehouse/warehouse'), menu: 'nav.trans.warehouse', icon: 'warehouse-alt', policyToken: 'Warehouse_ProductWarehouse_Management', commercialAccess: 'Warehouse' },\r\n { id: 'product-modify', component: lazy('sale/products/product-modify'), addToFavorites: true, menu: 'nav.trans.product-modify', icon: 'plus-hexagon', policyToken: \"Product_Product_Add\", cachable: true, commercialAccess: ['Sale', 'Warehouse'] },\r\n { id: 'product-price-level', component: lazy('sale/products/product-price-level'), menu: 'nav.trans.product-price-level', icon: 'list-ul', policyToken: 'Product_ProductPriceLevel_Management', commercialAccess: ['Sale', 'Warehouse'] },\r\n { id: 'product-floating-list', component: lazy('sale/products/product-floating-list'), menu: 'nav.trans.product-floating-list', icon: 'list-ul', policyToken: 'Product_ProductFloating_Management', commercialAccess: ['Sale', 'Warehouse'] },\r\n { id: 'product-classification-list', component: lazy('sale/products/product-classification-list'), menu: 'nav.trans.product-classification-list', icon: 'books', policyToken: 'Product_ProductClassification_Management', commercialAccess: ['Sale', 'Warehouse'] },\r\n ]\r\n },\r\n {\r\n id: 'warehouse-receipt', menu: 'nav.warehouse-receipt', icon: 'receipt', commercialAccess: 'Warehouse',\r\n items: [\r\n { id: 'warehouse-receipt-buy', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'receipt', group: 'BuyReceipt' }, addToFavorites: true, menu: 'nav.warehouse-receipt-buy', icon: 'plus-hexagon', policyToken: \"Warehouse_Receipt_BuyReceipt\", commercialAccess: 'Warehouse' },\r\n { id: 'warehouse-receipt-sell-return', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'receipt', group: 'SaleReturnReceipt' }, addToFavorites: true, menu: 'nav.warehouse-receipt-sell-return', icon: 'plus-hexagon', policyToken: \"Warehouse_Receipt_SaleReturnReceipt\", commercialAccess: 'Warehouse' },\r\n { id: 'warehouse-receipt-production', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'receipt', group: 'ProductionReceipt' }, addToFavorites: true, menu: 'nav.warehouse-receipt-production', icon: 'plus-hexagon', policyToken: \"Warehouse_Receipt_ProductionReceipt\", commercialAccess: 'Warehouse' },\r\n { id: 'warehouse-receipt-lending', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'receipt', group: 'BorrowProductReceipt' }, addToFavorites: true, menu: 'nav.warehouse-receipt-lending', icon: 'plus-hexagon', policyToken: \"Warehouse_Receipt_BorrowProductReceipt\", commercialAccess: 'Warehouse' },\r\n { id: 'warehouse-receipt-production-return', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'receipt', group: 'ReturnProductionReceipt' }, addToFavorites: true, menu: 'nav.warehouse-receipt-production-return', icon: 'plus-hexagon', policyToken: \"Warehouse_Receipt_ReturnProductionReceipt\", commercialAccess: 'Warehouse' },\r\n ]\r\n },\r\n {\r\n id: 'warehouse-hawala', menu: 'nav.warehouse-hawala', icon: 'envelope-open-dollar', commercialAccess: 'Warehouse',\r\n items: [\r\n { id: 'warehouse-hawala-sell', menu: 'nav.warehouse-hawala-sell', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'hawala', group: 'SaleHawala' }, addToFavorites: true, icon: 'hexagon-minus', policyToken: \"Warehouse_Hawala_SellHawala\", commercialAccess: 'Warehouse' },\r\n { id: 'warehouse-hawala-buy-return', menu: 'nav.warehouse-hawala-buy-return', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'hawala', group: 'BuyReturnHawala' }, addToFavorites: true, icon: 'hexagon-minus', policyToken: \"Warehouse_Hawala_BuyReturnHawala\", commercialAccess: 'Warehouse' },\r\n { id: 'warehouse-hawala-project-consumption', menu: 'nav.warehouse-hawala-project-consumption', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'hawala', group: 'ConsumeHawala' }, addToFavorites: true, icon: 'hexagon-minus', policyToken: \"Warehouse_Hawala_ConsumeHawala\", commercialAccess: 'Warehouse' },\r\n { id: 'warehouse-hawala-send-to-production', menu: 'nav.warehouse-hawala-send-to-production', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'hawala', group: 'ProductionCenterHawala' }, addToFavorites: true, icon: 'hexagon-minus', policyToken: \"Warehouse_Hawala_ProductionCenterHawala\", commercialAccess: 'Warehouse' },\r\n { id: 'warehouse-hawala-lending', menu: 'nav.warehouse-hawala-lending', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'hawala', group: 'BorrowProductHawala' }, addToFavorites: true, icon: 'hexagon-minus', policyToken: \"Warehouse_Hawala_BorrowProductHawala\", commercialAccess: 'Warehouse' },\r\n { id: 'warehouse-hawala-send-as-sample', menu: 'nav.warehouse-hawala-send-as-sample', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'hawala', group: 'ProductSampleCenterHawala' }, addToFavorites: true, icon: 'hexagon-minus', policyToken: \"Warehouse_Hawala_ProductSampleCenterHawala\", commercialAccess: 'Warehouse' },\r\n\r\n ]\r\n },\r\n {\r\n id: 'warehouse-category', menu: 'nav.warehouse', icon: 'warehouse-alt', commercialAccess: 'Warehouse',\r\n items: [\r\n { id: 'warehouse-transfer-list', component: lazy('sale/warehouse/transfer/warehouse-transfer-list'), menu: 'nav.warehouse-transfer-list', icon: 'exchange-alt', addToHome: false, policyToken: 'Warehouse_WarehouseTransfer_Management', commercialAccess: 'Warehouse' },\r\n { id: 'hawala-document-form-modify', component: lazy('sale/warehouse/hawala-document-form-modify'), menu: 'nav.hawala-document-form', icon: 'file-invoice-dollar', policyToken: 'Warehouse_HawalaDocumentForm_Management', commercialAccess: 'Warehouse' },\r\n { id: 'warehouse-taking', component: lazy('sale/warehouse/warehouse-taking-modify'), menu: 'nav.warehouse-taking', icon: 'cubes', addToHome: false, policyToken: 'Warehouse_WarehouseTaking_Management', commercialAccess: 'Warehouse' },\r\n ]\r\n },\r\n {\r\n id: 'manufacture',\r\n menu: 'nav.trans.manufacture',\r\n icon: 'conveyor-belt-boxes',\r\n items: [\r\n { id: 'product-convert', component: lazy('sale/products/convert/product-convert'), menu: 'nav.trans.product-convert', icon: 'cart-flatbed-boxes', policyToken: 'Product_ProductConvert_Management', commercialAccess: 'Warehouse' },\r\n { id: 'product-convert-formula', component: lazy('sale/products/convert/product-convert-formula'), menu: 'nav.trans.product-convert-formula', icon: 'function', policyToken: 'Product_ProductConvertFormula_Management', commercialAccess: 'Warehouse' },\r\n ]\r\n },\r\n // { id: 'measureunits', component: lazy('sale/products/measureunit-list'), menu: 'nav.trans.measureunit-list', icon: 'ruler-triangle', policyToken: 'Product_ProductMeasureunit_Management', commercialAccess: ['Sale', 'Warehouse'] },\r\n // { id: 'product-price-group-list', component: lazy('sale/products/product-price-group-list'), menu: 'nav.trans.product-price-group-list', icon: 'file-alt', policyToken: 'Product_ProductPriceGroup_Management'. commercialAccess: ['Sale', 'Warehouse'] },\r\n // { id: 'product-group-list', component: lazy('sale/products/product-group-list'), menu: 'nav.trans.product-group-list', icon: 'boxes-alt', policyToken: 'Product_ProductGroup_Management', commercialAccess: ['Sale', 'Warehouse'] },\r\n { id: 'product-price-announce-list', component: lazy('sale/products/product-price-announce-list'), menu: 'nav.trans.product-price-announce-list', icon: 'list-ul', policyToken: 'Product_PriceAnnounce_Management', commercialAccess: ['Sale', 'Warehouse'] },\r\n {\r\n id: 'reports',\r\n menu: 'nav.reports.reports',\r\n icon: 'chart-pie',\r\n items: [\r\n { id: 'product-list', component: lazy('sale/products/product-list'), menu: 'nav.trans.product-list', icon: 'list-ul', policyToken: 'Product_Product_Management', commercialAccess: ['Sale', 'Warehouse'] },\r\n { id: 'warehouse-receipt-list', component: lazy('sale/warehouse/receipt-hawala-list'), options: { type: 'receipt' }, menu: 'nav.warehouse-receipt-list', icon: 'list-ul', policyToken: 'Warehouse_Receipt_Management', commercialAccess: 'Warehouse' },\r\n { id: 'warehouse-hawala-list', component: lazy('sale/warehouse/receipt-hawala-list'), options: { type: 'hawala' }, menu: 'nav.warehouse-hawala-list', icon: 'list-ul', policyToken: 'Warehouse_Hawala_Management', commercialAccess: 'Warehouse' },\r\n { id: 'product-cardex', component: lazy('reports/product-cardex'), menu: 'nav.reports.product-cardex', options: { reportType: 'Warehouse' }, icon: 'file-chart-line', policyToken: 'Report_ProductCardex_Management', commercialAccess: ['Sale', 'Warehouse'], allowMultiple: true },\r\n { id: 'receipt-hawala-trace', component: lazy('reports/receipt-hawala-factor-trace'), menu: 'nav.reports.receipt-hawala-trace', options: { type: 'receiptHawala' }, icon: 'list-ul', policyToken: 'Report_ReceiptWithdrawTrace_Management', commercialAccess: ['Sale', 'Warehouse'], allowMultiple: true },\r\n { id: 'product-order-point', component: lazy('reports/product-order-points'), menu: 'nav.reports.product-order-point', icon: 'file-chart-line', policyToken: 'Report_ProductOrderPoint_Management' },\r\n { id: 'product-count-crawling', component: lazy('reports/product-count-crawling'), menu: 'nav.reports.product-count-crawling', icon: 'file-chart-line' },\r\n { id: 'sale-crawling', component: lazy('reports/sale-crawling'), menu: 'nav.reports.sale-crawling', icon: 'cart-shopping', policyToken: 'Report_SaleCrawling_Management' },\r\n { id: 'product-list-with-price', component: lazy('sale/products/product-list-with-price'), menu: 'nav.reports.product-list-with-price', icon: 'list-ul', policyToken: 'Product_ProductWithPrice_Management', commercialAccess: ['Sale', 'Warehouse'] },\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n id: 'purchase-preparation',\r\n menu: 'nav.purchase-preparation',\r\n icon: 'shopping-cart',\r\n commercialAccess: 'Sale',\r\n items: [\r\n { id: 'factor-modify-purchase', component: lazy('sale/factors/factor-modify'), options: { type: 'Buy' }, addToFavorites: true, menu: 'nav.trans.sell.buy-factor', icon: 'cart-arrow-down', policyToken: 'SaleBuy_FactorBuy_Management', cachable: true, allowMultiple: true },\r\n { id: 'factor-modify-buyReturn', component: lazy('sale/factors/factor-modify'), options: { type: 'BuyReturn' }, menu: 'nav.trans.sell.buy-return-factor', icon: 'undo-alt', policyToken: 'SaleBuy_FactorBuyReturn_Management', cachable: true, allowMultiple: true },\r\n { id: 'product-request-list', component: lazy('sale/products/request/list'), menu: 'nav.trans.product-request-list', icon: 'hand-holding', policyToken: 'Preparation_ProductRequest_Management' },\r\n { id: 'buy-order-list', component: lazy('sale/products/buy-order/list'), menu: 'nav.trans.buy-order-list', icon: 'shopping-cart', policyToken: 'Preparation_BuyOrder_Management' },\r\n ]\r\n },\r\n {\r\n id: 'sale',\r\n menu: 'nav.sell',\r\n icon: 'cash-register',\r\n commercialAccess: 'Sale',\r\n items: [\r\n { id: 'factor-bunch', component: lazy('sale/factors/factor-bunch'), menu: 'nav.trans.factor-bunch', icon: 'layer-group', policyToken: 'SaleBuy_FactorBunch_Management' },\r\n { id: 'factor-modify-sales', component: lazy('sale/factors/factor-modify'), addToFavorites: true, options: { type: 'Sale' }, menu: 'nav.trans.sell.sell-factor', icon: 'hand-holding-box', allowMultiple: true, policyToken: 'SaleBuy_FactorSale_Management', cachable: true },\r\n { id: 'factor-modify-salesReturn', component: lazy('sale/factors/factor-modify'), options: { type: 'SaleReturn' }, menu: 'nav.trans.sell.sale-return-factor', icon: 'undo-alt', allowMultiple: true, policyToken: 'SaleBuy_FactorSaleReturn_Management', cachable: true },\r\n { id: 'factor-modify-proforma', component: lazy('sale/factors/factor-modify'), options: { type: 'Proforma' }, menu: 'nav.trans.sell.proforma', icon: 'file-invoice', policyToken: 'SaleBuy_FactorProforma_Management', cachable: true, allowMultiple: true },\r\n {\r\n id: 'factor-list',\r\n menu: 'nav.reports.reports',\r\n icon: 'list-alt',\r\n items: [\r\n { id: 'factor-list-buy', component: lazy('sale/factors/factor-list'), options: { type: 'Buy' }, menu: 'nav.trans.factor-list.purchase', icon: 'hand-holding-box', policyToken: 'SaleBuy_FactorBuy_Management' },\r\n { id: 'factor-list-sale', component: lazy('sale/factors/factor-list'), options: { type: 'Sale' }, menu: 'nav.trans.factor-list.sales', icon: 'cart-arrow-down', policyToken: 'SaleBuy_FactorSale_Management' },\r\n { id: 'factor-list-salesReturn', component: lazy('sale/factors/factor-list'), options: { type: 'SaleReturn' }, menu: 'nav.trans.factor-list.sales-return', icon: 'undo-alt', policyToken: 'SaleBuy_FactorSaleReturn_Management' },\r\n { id: 'factor-list-buyReturn', component: lazy('sale/factors/factor-list'), options: { type: 'BuyReturn' }, menu: 'nav.trans.factor-list.purchase-return', icon: 'undo-alt', policyToken: 'SaleBuy_FactorBuyReturn_Management' },\r\n { id: 'factor-list-proforma', component: lazy('sale/factors/factor-list'), options: { type: 'Proforma' }, menu: 'nav.trans.factor-list.proforma', icon: 'file-invoice', policyToken: 'SaleBuy_FactorProforma_Management' },\r\n { id: 'moadian-factor-list', component: lazy('sale/factors/moadian/moadian-factor-list'), menu: 'nav.trans.factor-list.moadian', icon: 'file-invoice', policyToken: 'SaleBuy_Moadian_Management' },\r\n { id: 'factor-trace', component: lazy('reports/receipt-hawala-factor-trace'), menu: 'nav.reports.factor-trace', options: { type: 'factor' }, icon: 'list-ul', policyToken: 'Report_FactorTrace_Management', commercialAccess: ['Sale', 'Warehouse'], allowMultiple: true },\r\n { id: 'sale-product-cardex', component: lazy('reports/product-cardex'), menu: 'nav.reports.product-cardex', options: { reportType: 'Factor' }, icon: 'file-chart-line', policyToken: 'Report_ProductCardex_Management', commercialAccess: ['Sale', 'Warehouse'], allowMultiple: true },\r\n { id: 'product-count-crawling', component: lazy('reports/product-count-crawling'), menu: 'nav.reports.product-count-crawling', icon: 'file-chart-line' },\r\n { id: 'sale-crawling', component: lazy('reports/sale-crawling'), menu: 'nav.reports.sale-crawling', icon: 'cart-shopping', policyToken: 'Report_SaleCrawling_Management' },\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n id: 'assets',\r\n menu: 'nav.assets.assets',\r\n icon: 'box-dollar',\r\n commercialAccess: 'Assets',\r\n items: [\r\n { id: 'assets-group', component: lazy('assets/assets-group.vue'), menu: 'nav.assets.assets-group', policyToken: 'Assets_AssetsGroup_Management', icon: 'circle-dollar-to-slot' },\r\n { id: 'assets-location', component: lazy('assets/assets-location.vue'), menu: 'nav.assets.assets-location', policyToken: 'Assets_AssetsLocation_Management', icon: 'map-location' },\r\n { id: 'assets-acquisition', component: lazy('assets/assets-acquisition.vue'), menu: 'nav.assets.assets-acquisition', policyToken: 'Assets_AssetAcquisition_Management', icon: 'inbox-in' },\r\n { id: 'assets-calculation', component: lazy('assets/assets-calculation.vue'), menu: 'nav.assets.assets-calculation', policyToken: 'Assets_AssetCalculation_Management', icon: 'abacus', },\r\n { id: 'assets-sale', component: lazy('assets/assets-sale.vue'), menu: 'nav.assets.assets-sale', icon: 'money-check-dollar', isDisabled: true },\r\n {\r\n id: 'assets-list',\r\n menu: 'nav.reports.reports',\r\n icon: 'list-alt',\r\n items: [\r\n { id: 'assets-acquisition-list', component: lazy('assets/assets-acquisition-list.vue'), menu: 'nav.assets.assets-acquisition-list', policyToken: 'Assets_AssetAcquisition_List', icon: 'list-ul', options: { isDetailViewMode: true } }\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n id: 'salary',\r\n menu: 'nav.salary',\r\n icon: 'hands-holding-dollar',\r\n commercialAccess: 'Salary',\r\n items: [\r\n { id: 'salary-dashboard', component: lazy('salary/salary-dashboard'), menu: 'nav.trans.salary-dashboard', icon: 'fa-solid fa-grid-horizontal', policyToken: 'Salary_SalaryDashboard_Management', allowMultiple: true },\r\n { id: 'preview-periods-modify', component: lazy('salary/salary-period/preview-periods'), menu: 'nav.trans.preview-periods', icon: 'fa-regular fa-calendar-days', policyToken: 'Salary_SalaryPeriod_Management' },\r\n {\r\n id: 'salary-base',\r\n menu: 'nav.base',\r\n icon: 'layer-plus',\r\n items: [\r\n { id: 'workshop-modify', component: lazy('salary/workshop/workshop-modify'), menu: 'nav.trans.workshop', icon: 'industry-alt', policyToken: 'Salary_Workshop_Management' },\r\n { id: 'personnel-modify', component: lazy('salary/personnel/personnel-modify'), menu: 'nav.trans.personnel', icon: 'fa-regular fa-file-user', policyToken: 'Salary_Personnel_Management', allowMultiple: true },\r\n { id: 'salary-items', component: lazy('salary/salary-item/salary-item-list'), menu: 'nav.trans.salary-items', icon: 'list-ul', policyToken: 'Salary_SalaryItem_Management' },\r\n { id: 'severance-tables', component: lazy('salary/severance-table/severance-table-list'), menu: 'nav.trans.severance-tables', icon: 'fa-duotone fa-table-tree', policyToken: 'Salary_SeveranceTable_Management' },\r\n { id: 'tax-tables', component: lazy('salary/tax-table/tax-table-list'), menu: 'nav.trans.tax-tables', icon: 'fa-duotone fa-gavel', policyToken: 'Salary_TaxTable_Management' }\r\n ]\r\n },\r\n { id: 'bank-payment-announces', component: lazy('salary/bank-payment-announcement/bank-payment-list'), menu: 'nav.trans.bank-payment-announces', icon: 'fa-solid fa-money-check-dollar', policyToken: 'Salary_BankPaymentAnnounce_Management', allowMultiple: false, hidden: true }\r\n // { id: 'modify-item', component: lazy('salary/salary-item/salary-item-modify'), menu: 'nav.trans.modify-item', icon: 'fa-regular fa-cheese', policyToken: 'Salary_SalaryItem_Management' },\r\n ]\r\n },\r\n {\r\n id: 'reports',\r\n menu: 'nav.reports.reports',\r\n icon: 'chart-pie',\r\n commercialAccess: 'System',\r\n items: [\r\n { id: 'dynamic-report-list', addToFavorites: true, component: lazy('reports/dynamic-report-list'), menu: 'nav.reports.dynamic-report-list', icon: 'file-chart-line' },\r\n { id: 'custom-account-crawling-viewer', component: lazy('reports/components/viewer'), menu: 'nav.reports.dynamic-report-list', icon: 'file-chart-line', hidden: true }\r\n ]\r\n },\r\n {\r\n id: 'general',\r\n menu: 'nav.general',\r\n icon: 'desktop',\r\n commercialAccess: 'System',\r\n items: [\r\n { id: 'fiscal-period', component: lazy('fiscal-periods/fiscal-period-list'), menu: 'nav.fiscal-period', icon: 'calendar-week', policyToken: 'General_FiscalPeriod_List' },\r\n { id: 'auto-accounts-modify', component: lazy('accounts/auto-accounts-modify'), menu: 'nav.trans.setting.auto-accounts-modify', icon: 'magic', policyToken: 'Accounting_Account_AutoModify' },\r\n {\r\n id: 'opening-operation',\r\n menu: 'nav.opening-operation',\r\n icon: 'files-medical',\r\n items: [\r\n { id: 'opening-document', menu: 'nav.opening-document', icon: 'file-alt', component: lazy('documents/document-single'), options: { docGroup: 'Opening_Account' }, allowMultiple: false, addToHome: true, policyToken: 'Accounting_Opening_Document', cachable: true },\r\n { id: 'opening-product-stock', menu: 'nav.opening-product-stock', icon: 'boxes-stacked', component: lazy('sale/warehouse/receipt-hawala-modify'), options: { type: 'receipt', group: 'OpeningProductStock', formType: 'OpeningProductStock' }, allowMultiple: false, addToHome: true, policyToken: 'Accounting_Opening_ProductStock', commercialAccess: 'Warehouse' },\r\n { id: 'opening-receive-cheques', menu: 'nav.opening-receive-cheques', icon: 'money-check-dollar-pen', component: lazy('treasury/receive-hybrid'), options: { formType: 'Opening' }, allowMultiple: false, addToHome: true, policyToken: 'Accounting_Opening_ReceiveCheque' },\r\n { id: 'opening-payment-cheques', menu: 'nav.opening-payment-cheques', icon: 'money-check-dollar-pen', component: lazy('treasury/payment-hybrid'), options: { formType: 'Opening' }, allowMultiple: false, addToHome: true, policyToken: 'Accounting_Opening_PaymentCheque' },\r\n { id: 'assets-acquisition-opening', component: lazy('assets/assets-acquisition.vue'), options: { type: 'Opening' }, menu: 'nav.assets.assets-acquisition-opening', icon: 'inbox-in' },\r\n ],\r\n },\r\n { id: 'closing-document', menu: 'nav.closing-document', icon: 'close', component: lazy('documents/closing-document.vue'), policyToken: 'Accounting_Closing_Document' },\r\n {\r\n id: 'setting',\r\n menu: 'nav.setting',\r\n icon: 'cog',\r\n items: [\r\n { id: 'settings-general', component: lazy('settings/settings-general'), menu: 'nav.trans.setting.settings-general', icon: 'calculator', policyToken: 'Settings_Accounting_Accounting' },\r\n { id: 'settings-accounting', component: lazy('settings/settings-accounting'), menu: 'nav.trans.setting.settings-accounting', icon: 'calculator-alt', commercialAccess: 'System', policyToken: 'Settings_Accounting_Accounting' },\r\n { id: 'settings-treasury', component: lazy('settings/settings-treasury'), menu: 'nav.trans.setting.settings-treasury', icon: 'treasure-chest', commercialAccess: 'Treasury', policyToken: 'Settings_Treasury_Treasury' },\r\n { id: 'settings-sale', component: lazy('settings/settings-sale'), menu: 'nav.trans.setting.settings-sale', icon: 'cash-register', commercialAccess: ['Sale', 'Warehouse'], policyToken: 'Settings_SaleBuy_SaleBuy' },\r\n { id: 'settings-salary', component: lazy('settings/settings-salary'), menu: 'nav.trans.setting.settings-salary', icon: 'hands-holding-dollar', commercialAccess: 'Salary', policyToken: 'Settings_Salary_Salary' },\r\n { id: 'settings-moadian', component: lazy('settings/settings-moadian'), menu: 'nav.trans.setting.settings-moadian', icon: 'fa-duotone fa-landmark', commercialAccess: 'Sale', policyToken: 'Settings_Moadian_Moadian' },\r\n { id: 'settings-api', component: lazy('settings/settings-api'), menu: 'nav.trans.setting.settings-api', icon: 'plug', commercialAccess: 'System', policyToken: 'Settings_Api_Management' },\r\n { id: 'settings-assets', component: lazy('settings/settings-assets'), menu: 'nav.trans.setting.settings-assets', icon: 'box-dollar', commercialAccess: 'Assets', policyToken: 'Settings_Assets_Management' },\r\n ]\r\n },\r\n {\r\n id: 'user-management',\r\n menu: 'nav.user-management',\r\n icon: 'users',\r\n items: [\r\n { id: 'user-list', addToFavorites: true, component: lazy('useraccount/user-list'), menu: 'nav.trans.user-management.user-list', icon: 'poll-people', policyToken: 'General_User_Management' },\r\n { id: 'operation-roles', component: lazy('operation-roles/operation-role-list'), menu: 'nav.trans.user-management.operation-role-list', icon: 'users-crown', policyToken: 'General_Role_Management' }\r\n ]\r\n },\r\n\r\n { id: 'backupRestore', component: lazy('backupRestore/backupRestoreManagement'), menu: 'nav.trans.backup-and-restore', icon: 'fad fa-window-restore', policyToken: 'General_BackupAndRestore_Management' },\r\n { id: 'currency-rate', component: lazy('currency/currency-rates'), menu: 'nav.trans.currency-rates', icon: 'dollar-sign', policyToken: 'Accounting_CurrencyRate_Management' }\r\n ]\r\n },\r\n { id: 'bigtable', component: lazy('demo/bigtable'), menu: 'nav.trans.bigtable', icon: 'file-alt', hidden: true },\r\n { id: 'filter-preview', component: lazy('demo/FilterPreview'), menu: 'nav.trans.filter-preview', icon: 'filter', hidden: true },\r\n { id: 'version-detail', component: lazy('version/details'), menu: 'nav.version-details', icon: 'filter', hidden: true },\r\n { id: 'profile', component: lazy('profile/profile'), menu: 'nav.profile', hidden: true, allowMultiple: true },\r\n]\r\n\r\nexport const findRoute = (path) => {\r\n try {\r\n const pathItems = path.split('.')\r\n const firstItem = pathItems.shift()\r\n let targetRoute = routes.find(route => route.id === firstItem)\r\n\r\n for (let item of pathItems) {\r\n targetRoute = targetRoute.items?.find(route => route.id === item)\r\n }\r\n\r\n targetRoute = _.cloneDeep(targetRoute)\r\n targetRoute.component = markRaw(targetRoute.component)\r\n\r\n return targetRoute\r\n }\r\n catch {\r\n throw new Error(\"Route path is incorrect\")\r\n }\r\n}","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t

\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=5c067172\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/install.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 61509,\n\t\"./ar-dz\": 41488,\n\t\"./ar-dz.js\": 41488,\n\t\"./ar-kw\": 58676,\n\t\"./ar-kw.js\": 58676,\n\t\"./ar-ly\": 42353,\n\t\"./ar-ly.js\": 42353,\n\t\"./ar-ma\": 24496,\n\t\"./ar-ma.js\": 24496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 82682,\n\t\"./ar-sa.js\": 82682,\n\t\"./ar-tn\": 89756,\n\t\"./ar-tn.js\": 89756,\n\t\"./ar.js\": 61509,\n\t\"./az\": 95533,\n\t\"./az.js\": 95533,\n\t\"./be\": 28959,\n\t\"./be.js\": 28959,\n\t\"./bg\": 47777,\n\t\"./bg.js\": 47777,\n\t\"./bm\": 54903,\n\t\"./bm.js\": 54903,\n\t\"./bn\": 61290,\n\t\"./bn-bd\": 17357,\n\t\"./bn-bd.js\": 17357,\n\t\"./bn.js\": 61290,\n\t\"./bo\": 31545,\n\t\"./bo.js\": 31545,\n\t\"./br\": 11470,\n\t\"./br.js\": 11470,\n\t\"./bs\": 44429,\n\t\"./bs.js\": 44429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 56464,\n\t\"./cs.js\": 56464,\n\t\"./cv\": 73635,\n\t\"./cv.js\": 73635,\n\t\"./cy\": 64226,\n\t\"./cy.js\": 64226,\n\t\"./da\": 93601,\n\t\"./da.js\": 93601,\n\t\"./de\": 77853,\n\t\"./de-at\": 26111,\n\t\"./de-at.js\": 26111,\n\t\"./de-ch\": 54697,\n\t\"./de-ch.js\": 54697,\n\t\"./de.js\": 77853,\n\t\"./dv\": 60708,\n\t\"./dv.js\": 60708,\n\t\"./el\": 54691,\n\t\"./el.js\": 54691,\n\t\"./en-au\": 53872,\n\t\"./en-au.js\": 53872,\n\t\"./en-ca\": 28298,\n\t\"./en-ca.js\": 28298,\n\t\"./en-gb\": 56195,\n\t\"./en-gb.js\": 56195,\n\t\"./en-ie\": 66584,\n\t\"./en-ie.js\": 66584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 79402,\n\t\"./en-nz.js\": 79402,\n\t\"./en-sg\": 43004,\n\t\"./en-sg.js\": 43004,\n\t\"./eo\": 32934,\n\t\"./eo.js\": 32934,\n\t\"./es\": 97650,\n\t\"./es-do\": 20838,\n\t\"./es-do.js\": 20838,\n\t\"./es-mx\": 17730,\n\t\"./es-mx.js\": 17730,\n\t\"./es-us\": 56575,\n\t\"./es-us.js\": 56575,\n\t\"./es.js\": 97650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 90527,\n\t\"./fi.js\": 90527,\n\t\"./fil\": 95995,\n\t\"./fil.js\": 95995,\n\t\"./fo\": 52477,\n\t\"./fo.js\": 52477,\n\t\"./fr\": 85498,\n\t\"./fr-ca\": 26435,\n\t\"./fr-ca.js\": 26435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 85498,\n\t\"./fy\": 37071,\n\t\"./fy.js\": 37071,\n\t\"./ga\": 41734,\n\t\"./ga.js\": 41734,\n\t\"./gd\": 70217,\n\t\"./gd.js\": 70217,\n\t\"./gl\": 77329,\n\t\"./gl.js\": 77329,\n\t\"./gom-deva\": 32124,\n\t\"./gom-deva.js\": 32124,\n\t\"./gom-latn\": 93383,\n\t\"./gom-latn.js\": 93383,\n\t\"./gu\": 95050,\n\t\"./gu.js\": 95050,\n\t\"./he\": 11713,\n\t\"./he.js\": 11713,\n\t\"./hi\": 43861,\n\t\"./hi.js\": 43861,\n\t\"./hr\": 26308,\n\t\"./hr.js\": 26308,\n\t\"./hu\": 90609,\n\t\"./hu.js\": 90609,\n\t\"./hy-am\": 17160,\n\t\"./hy-am.js\": 17160,\n\t\"./id\": 74063,\n\t\"./id.js\": 74063,\n\t\"./is\": 89374,\n\t\"./is.js\": 89374,\n\t\"./it\": 88383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 88383,\n\t\"./ja\": 23827,\n\t\"./ja.js\": 23827,\n\t\"./jv\": 89722,\n\t\"./jv.js\": 89722,\n\t\"./ka\": 41794,\n\t\"./ka.js\": 41794,\n\t\"./kk\": 27088,\n\t\"./kk.js\": 27088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 84451,\n\t\"./kn.js\": 84451,\n\t\"./ko\": 63164,\n\t\"./ko.js\": 63164,\n\t\"./ku\": 98174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 98174,\n\t\"./ky\": 78474,\n\t\"./ky.js\": 78474,\n\t\"./lb\": 79680,\n\t\"./lb.js\": 79680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 45766,\n\t\"./lt.js\": 45766,\n\t\"./lv\": 69532,\n\t\"./lv.js\": 69532,\n\t\"./me\": 58076,\n\t\"./me.js\": 58076,\n\t\"./mi\": 41848,\n\t\"./mi.js\": 41848,\n\t\"./mk\": 30306,\n\t\"./mk.js\": 30306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 99053,\n\t\"./mn.js\": 99053,\n\t\"./mr\": 86169,\n\t\"./mr.js\": 86169,\n\t\"./ms\": 73386,\n\t\"./ms-my\": 92297,\n\t\"./ms-my.js\": 92297,\n\t\"./ms.js\": 73386,\n\t\"./mt\": 77075,\n\t\"./mt.js\": 77075,\n\t\"./my\": 72264,\n\t\"./my.js\": 72264,\n\t\"./nb\": 22274,\n\t\"./nb.js\": 22274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 92572,\n\t\"./nl-be\": 43784,\n\t\"./nl-be.js\": 43784,\n\t\"./nl.js\": 92572,\n\t\"./nn\": 54566,\n\t\"./nn.js\": 54566,\n\t\"./oc-lnc\": 69330,\n\t\"./oc-lnc.js\": 69330,\n\t\"./pa-in\": 29849,\n\t\"./pa-in.js\": 29849,\n\t\"./pl\": 94418,\n\t\"./pl.js\": 94418,\n\t\"./pt\": 79834,\n\t\"./pt-br\": 48303,\n\t\"./pt-br.js\": 48303,\n\t\"./pt.js\": 79834,\n\t\"./ro\": 24457,\n\t\"./ro.js\": 24457,\n\t\"./ru\": 82271,\n\t\"./ru.js\": 82271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 33478,\n\t\"./se.js\": 33478,\n\t\"./si\": 17538,\n\t\"./si.js\": 17538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 46637,\n\t\"./sl.js\": 46637,\n\t\"./sq\": 86794,\n\t\"./sq.js\": 86794,\n\t\"./sr\": 45719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 45719,\n\t\"./ss\": 56000,\n\t\"./ss.js\": 56000,\n\t\"./sv\": 41011,\n\t\"./sv.js\": 41011,\n\t\"./sw\": 40748,\n\t\"./sw.js\": 40748,\n\t\"./ta\": 11025,\n\t\"./ta.js\": 11025,\n\t\"./te\": 11885,\n\t\"./te.js\": 11885,\n\t\"./tet\": 28861,\n\t\"./tet.js\": 28861,\n\t\"./tg\": 86571,\n\t\"./tg.js\": 86571,\n\t\"./th\": 55802,\n\t\"./th.js\": 55802,\n\t\"./tk\": 59527,\n\t\"./tk.js\": 59527,\n\t\"./tl-ph\": 29231,\n\t\"./tl-ph.js\": 29231,\n\t\"./tlh\": 31052,\n\t\"./tlh.js\": 31052,\n\t\"./tr\": 85096,\n\t\"./tr.js\": 85096,\n\t\"./tzl\": 79846,\n\t\"./tzl.js\": 79846,\n\t\"./tzm\": 81765,\n\t\"./tzm-latn\": 97711,\n\t\"./tzm-latn.js\": 97711,\n\t\"./tzm.js\": 81765,\n\t\"./ug-cn\": 48414,\n\t\"./ug-cn.js\": 48414,\n\t\"./uk\": 16618,\n\t\"./uk.js\": 16618,\n\t\"./ur\": 57777,\n\t\"./ur.js\": 57777,\n\t\"./uz\": 57609,\n\t\"./uz-latn\": 72475,\n\t\"./uz-latn.js\": 72475,\n\t\"./uz.js\": 57609,\n\t\"./vi\": 21135,\n\t\"./vi.js\": 21135,\n\t\"./x-pseudo\": 64051,\n\t\"./x-pseudo.js\": 64051,\n\t\"./yo\": 82218,\n\t\"./yo.js\": 82218,\n\t\"./zh-cn\": 52648,\n\t\"./zh-cn.js\": 52648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 31541,\n\t\"./zh-mo.js\": 31541,\n\t\"./zh-tw\": 50304,\n\t\"./zh-tw.js\": 50304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\t
{{ $t('list.empty') }}
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./nikan-list.vue?vue&type=template&id=a798f67c&scoped=true\"\nimport script from \"./nikan-list.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-list.vue?vue&type=script&lang=js\"\n\nimport \"./nikan-list.vue?vue&type=style&index=0&id=a798f67c&scoped=true&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a798f67c\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, vShow as _vShow, withDirectives as _withDirectives, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"nk-card h-100 d-flex flex-column\",\n ref: \"parent\"\n}\nconst _hoisted_2 = { class: \"d-flex pr-5 pt-2\" }\nconst _hoisted_3 = { class: \"col-sm-6 col-md-6 col-lg-4\" }\nconst _hoisted_4 = { class: \"col-sm-6 col-md-6 col-lg-4 align-content-start\" }\nconst _hoisted_5 = { class: \"d-inline-flex\" }\nconst _hoisted_6 = { class: \"d-flex px-1\" }\nconst _hoisted_7 = { class: \"pl-2\" }\nconst _hoisted_8 = { class: \"d-flex px-1\" }\nconst _hoisted_9 = { class: \"pl-2\" }\nconst _hoisted_10 = { class: \"flex-grow-1 overflow-auto\" }\nconst _hoisted_11 = { class: \"d-inline-flex align-items-center\" }\nconst _hoisted_12 = { class: \"ml-2\" }\nconst _hoisted_13 = { class: \"rotate bgPrimary-light-fade text-dark text-extra-bold\" }\nconst _hoisted_14 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_dropdown = _resolveComponent(\"nk-dropdown\")!\n const _component_nk_col_form_group = _resolveComponent(\"nk-col-form-group\")!\n const _component_nk_checkbox = _resolveComponent(\"nk-checkbox\")!\n const _component_month_period_card = _resolveComponent(\"month-period-card\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n policyClaims: \"Salary_SalaryPeriod_Management\",\n tabindex: \"100\",\n startup: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.filter-salary-period') + ' :',\n labelSizes: { sm: 12, md: 3 },\n dataSizes: { sm: 12, md: 9 },\n labelAligns: { sm: 'right', md: 'right', lg: 'right' }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n class: \"form-container\",\n options: _ctx.filterOptions.month,\n \"model-value\": _ctx.filterValue.month,\n tabindex: 102,\n data: _ctx.filterMonthData,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = (data) => _ctx.filterChanged('month', data))\n }, null, 8, [\"options\", \"model-value\", \"data\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"label\", _hoisted_7, _toDisplayString(_ctx.$t('salary.primary')), 1),\n _createVNode(_component_nk_checkbox, {\n type: \"checkbox\",\n checked: _ctx.filterValue.primary,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = (data) => _ctx.filterChanged('primary', data)),\n tabindex: 104\n }, null, 8, [\"checked\"])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.$t('salary.virtual')), 1),\n _createVNode(_component_nk_checkbox, {\n type: \"checkbox\",\n checked: _ctx.filterValue.virtual,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = (data) => _ctx.filterChanged('virtual', data)),\n tabindex: 106\n }, null, 8, [\"checked\"])\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.filterExistingPeriods, (period) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: period.pMonthName + period.subPeriods.length,\n class: \"pt-3\"\n }, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, _toDisplayString(period.pMonthName), 1)\n ]),\n _createVNode(_component_month_period_card, {\n isModal: _ctx.isModal,\n data: period.filteredSubPeriods,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = (subPeriod) => _ctx.changeSelectedPeriod(subPeriod)),\n onResetPeriods: _ctx.getPeriods,\n options: { ..._ctx.monthPeriodCardOptions, period, insertPeriodFunc: (subPeriod) => _ctx.insertPeriod(period, subPeriod), isModal: _ctx.isModal }\n }, null, 8, [\"isModal\", \"data\", \"onResetPeriods\", \"options\"]),\n _withDirectives(_createElementVNode(\"div\", {\n class: \"rotate mr-2 cursor-pointer apposite-reduce bgPrimary-light-fade text-extra-bold\",\n onClick: () => _ctx.insertPeriod(period)\n }, _cache[4] || (_cache[4] = [\n _createElementVNode(\"i\", { class: \"fa-solid fa-plus\" }, null, -1)\n ]), 8, _hoisted_14), [\n [_vShow, !_ctx.isModal]\n ])\n ])\n ]))\n }), 128))\n ])\n ], 512)\n ]),\n _: 1\n }))\n}","\r\n\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t filterChanged('month', data)\">\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t filterChanged('primary', data)\" :tabindex=\"104\" />\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t filterChanged('virtual', data)\" :tabindex=\"106\" />\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
{{ period.pMonthName }}
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
changeSelectedPeriod(subPeriod)\" @reset-periods=\"getPeriods\" :options=\"{ ...monthPeriodCardOptions, period, insertPeriodFunc: (subPeriod: SubPeriod) => insertPeriod(period, subPeriod), isModal }\">\r\n\t\t\t\t\t\t
insertPeriod(period)\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./period-selector.vue?vue&type=template&id=1b1d43cf&scoped=true&ts=true\"\nimport script from \"./period-selector.vue?vue&type=script&lang=ts\"\nexport * from \"./period-selector.vue?vue&type=script&lang=ts\"\n\nimport \"./period-selector.vue?vue&type=style&index=0&id=1b1d43cf&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1b1d43cf\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"h-100 d-flex flex-column form-container overflow-auto\" }\nconst _hoisted_2 = { class: \"h-grow-lock pt-3\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_ag_grid = _resolveComponent(\"ag-grid\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n \"body-class\": 'nk-page-body-without-scroll',\n commercialAccess: \"Salary\",\n policyClaims: ['Salary_Personnel_Management']\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.PersonnelList')\n }, null, 8, [\"title\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(), _createBlock(_component_ag_grid, {\n options: _ctx.componentOptions.tableOption,\n data: _ctx.personnelList,\n modelValue: _ctx.selectedRow,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedRow) = $event)),\n ref: \"personnelList\",\n key: _ctx.tableKey,\n tabindex: \"101\",\n startup: \"\",\n class: \"nk-card\",\n onPreSelectedRowData: _cache[1] || (_cache[1] = (data) => _ctx.selectedRow = data),\n onRow_dbClicked: _ctx.rowDbClicked\n }, null, 8, [\"options\", \"data\", \"modelValue\", \"onRow_dbClicked\"]))\n ])\n ])\n ]),\n _: 1\n }))\n}","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
selectedRow = data\" @row_dbClicked=\"rowDbClicked\">\r\n
\r\n
\r\n \r\n\r\n\r\n","import { render } from \"./personnel-selector.vue?vue&type=template&id=c9b14484&ts=true\"\nimport script from \"./personnel-selector.vue?vue&type=script&lang=ts\"\nexport * from \"./personnel-selector.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./settings-sale.vue?vue&type=template&id=38feb9b1\"\nimport script from \"./settings-sale.vue?vue&type=script&lang=js\"\nexport * from \"./settings-sale.vue?vue&type=script&lang=js\"\n\nimport \"./settings-sale.vue?vue&type=style&index=0&id=38feb9b1&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { i18nInstance } from '~/plugins/localization'\r\nimport _ from 'lodash'\r\nimport { toInt, toFloat } from '../plugins/force-to-number.js'\r\n\r\nexport const isEmpty = (value) => {\r\n if (value == null ||\r\n value === 0 ||\r\n value === 0.0 ||\r\n value === '0.0000' ||\r\n value === '0' ||\r\n value === '00000000-0000-0000-0000-000000000000' ||\r\n value === '0001-01-01T00:00:00' ||\r\n value.toString().trim() === '' ||\r\n (Array.isArray(value) && value.length === 0)) {\r\n return true\r\n }\r\n\r\n return false\r\n}\r\n\r\nexport class Validator {\r\n error(name) {\r\n return i18nInstance.global.t('msg.invalidValue', [name])\r\n }\r\n}\r\n\r\nexport class VRequired extends Validator {\r\n test(value) {\r\n if (isEmpty(value)) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n\r\n error(name) {\r\n return i18nInstance.global.t('msg.required', [name])\r\n }\r\n}\r\n\r\nexport class VRequiredIf extends VRequired {\r\n constructor(prop) {\r\n super()\r\n this.prop = prop\r\n }\r\n\r\n test(value, obj) {\r\n var mustHasValue = false\r\n\r\n if (obj != null && !isEmpty(obj[this.prop])) {\r\n mustHasValue = true\r\n }\r\n\r\n if (mustHasValue && isEmpty(value)) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n}\r\n\r\nexport class VRequiredIfEmpty extends VRequired {\r\n constructor(prop) {\r\n super()\r\n this.prop = prop\r\n }\r\n\r\n test(value, obj) {\r\n var mustHasValue = false\r\n\r\n if (obj == null || isEmpty(obj[this.prop])) {\r\n mustHasValue = true\r\n }\r\n\r\n if (mustHasValue && isEmpty(value)) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n}\r\n\r\nexport class VRequiredIfValue extends VRequired {\r\n constructor(prop, expect) {\r\n super()\r\n this.prop = prop\r\n this.expect = expect\r\n }\r\n\r\n test(value, obj) {\r\n var mustHasValue = false\r\n\r\n if (obj != null && ((_.isFunction(this.expect) && this.expect(obj[this.prop], obj) === true) || obj[this.prop] === this.expect)) {\r\n mustHasValue = true\r\n }\r\n\r\n if (mustHasValue && isEmpty(value)) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n}\r\n\r\nexport class VEmptyIf extends Validator {\r\n constructor(prop) {\r\n super()\r\n this.prop = prop\r\n }\r\n\r\n test(value, obj) {\r\n if (value == null) {\r\n return true\r\n }\r\n\r\n var mustEmpty = false\r\n\r\n if (obj != null && !isEmpty(obj[this.prop])) {\r\n mustEmpty = true\r\n }\r\n\r\n if (mustEmpty && !isEmpty(value)) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n\r\n error(name) {\r\n return i18nInstance.global.t('msg.must-be-empty', [name])\r\n }\r\n}\r\n\r\nexport class VGreaterThan extends Validator {\r\n constructor(min, nullable) {\r\n super()\r\n this.min = min\r\n this.nullable = nullable === true\r\n }\r\n\r\n test(value) {\r\n if (value == null) {\r\n return this.nullable\r\n }\r\n\r\n let val = value\r\n if (_.isString(val)) {\r\n if (val.indexOf('.') > -1) {\r\n val = toFloat(val)\r\n } else {\r\n val = toInt(val)\r\n }\r\n }\r\n\r\n if (!_.isNumber(val)) {\r\n return false\r\n }\r\n\r\n if (val <= this.min) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n}\r\n\r\nexport class VLessThan extends Validator {\r\n constructor(max, nullable) {\r\n super()\r\n this.max = max\r\n this.nullable = nullable === true\r\n }\r\n\r\n test(value) {\r\n if (value == null) {\r\n return this.nullable\r\n }\r\n\r\n if (!_.isNumber(value)) {\r\n return false\r\n }\r\n\r\n if (value >= this.max) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n}\r\n\r\nexport class VIranNationalCode extends Validator {\r\n test(value) {\r\n if (isEmpty(value)) {\r\n return true\r\n }\r\n\r\n let val = value\r\n\r\n if (!_.isString(value)) {\r\n val = _.toString(value)\r\n }\r\n\r\n if (!/^\\d{10}$/.test(val)) {\r\n return false\r\n }\r\n\r\n let check = parseInt(val[9])\r\n let sum = 0\r\n for (let i = 0; i < 9; ++i) {\r\n sum += parseInt(val[i]) * (10 - i)\r\n }\r\n sum %= 11\r\n\r\n return (sum < 2 && check === sum) || (sum >= 2 && check + sum === 11)\r\n }\r\n}\r\n\r\nexport class VIranPostalCode extends Validator {\r\n test(value) {\r\n if (isEmpty(value)) {\r\n return true\r\n }\r\n\r\n let val = value\r\n\r\n if (!_.isString(value)) {\r\n val = _.toString(value)\r\n }\r\n\r\n return /\\b(?!(\\d)\\1{3})[13-9]{4}[1346-9][013-9]{5}\\b/.test(val)\r\n }\r\n}\r\n\r\nexport class VEmail extends Validator {\r\n test(value) {\r\n if (isEmpty(value)) {\r\n return true\r\n }\r\n\r\n value = value.toString().toLowerCase()\r\n\r\n let rejex = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/\r\n return rejex.test(value)\r\n }\r\n}\r\n\r\nexport class VRegex extends Validator {\r\n constructor(regex){\r\n super()\r\n this.regex = regex\r\n }\r\n\r\n test(value) {\r\n if (isEmpty(value)) {\r\n return true\r\n }\r\n\r\n return this.regex.test(value)\r\n }\r\n}\r\n\r\nexport class VEqual extends Validator {\r\n constructor(prop) {\r\n super()\r\n this.prop = prop\r\n }\r\n\r\n test(value, obj) {\r\n if (isEmpty(obj)) {\r\n return isEmpty(value)\r\n }\r\n\r\n let propValue = obj[this.prop]\r\n\r\n // we don't use isEmpty because (0 != null) or ('' != undefined)\r\n if (propValue == null && value == null) {\r\n return true\r\n }\r\n\r\n return _.isEqual(value, propValue)\r\n }\r\n\r\n error(name, other) {\r\n return i18nInstance.global.t('msg.must-be-equal', [name, other])\r\n }\r\n}\r\n\r\nexport class VLength extends Validator {\r\n constructor(min, max, options) {\r\n super()\r\n this.options = _.extend({ trim: true }, options)\r\n this.min = min > 0 ? min : null\r\n this.max = max > 0 ? max : null\r\n }\r\n\r\n test(value) {\r\n if (isEmpty(value)) {\r\n return true\r\n }\r\n\r\n let str = value.toString()\r\n\r\n if (this.options.trim === true) {\r\n str = str.trim()\r\n }\r\n\r\n let len = str.length\r\n\r\n if (len < this.min) {\r\n return false\r\n }\r\n\r\n if (len <= this.max || this.max == null) {\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n\r\n error(name) {\r\n if (this.min === this.max) {\r\n return i18nInstance.global.t('msg.length', [name])\r\n }\r\n\r\n if (this.min <= 0 && this.max > -1) {\r\n return i18nInstance.global.t('msg.max-length', [name])\r\n }\r\n\r\n if (this.min > 0 && this.max === -1) {\r\n return i18nInstance.global.t('msg.min-length', [name])\r\n }\r\n\r\n return i18nInstance.global.t('msg.length.must-be-between', [name, this.min, this.max])\r\n }\r\n}\r\n\r\nexport class VCustom extends Validator {\r\n constructor(validator, errorGenerator) {\r\n super()\r\n this.validator = validator\r\n this.errorGenerator = errorGenerator\r\n }\r\n\r\n test(value, obj) {\r\n return this.validator(value, obj)\r\n }\r\n\r\n error(name, obj) {\r\n if (this.errorGenerator && _.isFunction(this.errorGenerator)) {\r\n return this.errorGenerator(name, obj)\r\n } else {\r\n return super.error(name)\r\n }\r\n }\r\n}\r\n\r\nexport class Checker {\r\n constructor(nameResolver) {\r\n this.errors = []\r\n this.nameResolver = nameResolver || (n => n)\r\n }\r\n\r\n test(dataModel, validatorModel) {\r\n this.errors = []\r\n this._testCol(null, null, validatorModel, dataModel)\r\n return this.errors\r\n }\r\n\r\n _testCol(key, value, validators, dataModel) {\r\n if (key && Array.isArray(validators)) {\r\n let vs = validators.filter(v => v instanceof Validator)\r\n for (let v of vs) {\r\n if (!v.test(value, dataModel)) {\r\n const error = this.nameResolver(key)\r\n this.errors.push({\r\n key,\r\n error: !_.isString(error) && _.has(error, 'message') ? _.get(error, 'message') : v.error(error, this.nameResolver(v.prop))\r\n })\r\n break\r\n }\r\n }\r\n } else {\r\n let props = Object.getOwnPropertyNames(validators).filter(n => n !== '__ob__')\r\n for (let prop of props) {\r\n let d = _.get(dataModel, prop)\r\n let v = _.get(validators, prop)\r\n this._testCol(prop, d, v, dataModel)\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class MetaDataChecker {\r\n test(metaDataModel, validatorModel) {\r\n this.errors = []\r\n\r\n const convertedData = {}\r\n const fieldNames = {}\r\n\r\n for (let metaData of metaDataModel) {\r\n if (metaData.metaDataSchema.systemField) {\r\n convertedData[metaData.metaDataSchema.systemField] = metaData.value\r\n fieldNames[metaData.metaDataSchema.systemField] = metaData.metaDataSchema.name\r\n }\r\n }\r\n \r\n for(let key in validatorModel){ // cleanup validator from validator items that not exists in metaDataModel\r\n if(!(key in convertedData))\r\n delete validatorModel[key];\r\n }\r\n if (Object.keys(convertedData).length > 0 && Object.keys(validatorModel).length > 0) {\r\n const checker = new Checker((field) => {\r\n return fieldNames[field]\r\n })\r\n return checker.test(convertedData, validatorModel)\r\n }\r\n else {\r\n return []\r\n }\r\n }\r\n}\r\n\r\nexport default function () {\r\n var arr = []\r\n if (arguments.length === 0) {\r\n return arr\r\n }\r\n\r\n let unique = [...new Set(arguments)]\r\n\r\n for (var i = 0; i < unique.length; i++) {\r\n var name = arguments[i]\r\n\r\n if (_.isFunction(name)) {\r\n name = name()\r\n }\r\n\r\n if (name instanceof Validator) {\r\n arr.push(name)\r\n } else if (_.isString(name)) {\r\n switch (name) {\r\n case 'required':\r\n arr.push(new VRequired())\r\n break\r\n case 'ir-national-code':\r\n arr.push(new VIranNationalCode())\r\n break\r\n case 'ir-postal-code':\r\n arr.push(new VIranPostalCode())\r\n break\r\n case 'email':\r\n arr.push(new VEmail())\r\n break\r\n }\r\n }\r\n }\r\n\r\n return arr\r\n}\r\n","\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-product-floatings.vue?vue&type=template&id=1070ffd6\"\nimport script from \"./dropdown-product-floatings.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-product-floatings.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t
{{ $t('sale.factor.f.base') }} :\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./source-preview-label.vue?vue&type=template&id=186be967&scoped=true\"\nimport script from \"./source-preview-label.vue?vue&type=script&lang=js\"\nexport * from \"./source-preview-label.vue?vue&type=script&lang=js\"\n\nimport \"./source-preview-label.vue?vue&type=style&index=0&id=186be967&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-186be967\"]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n","import { render } from \"./nikan-label.vue?vue&type=template&id=6f760fa9\"\nimport script from \"./nikan-label.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-label.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t

\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./launcher.vue?vue&type=template&id=7f710d8c\"\nimport script from \"./launcher.vue?vue&type=script&lang=js\"\nexport * from \"./launcher.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/install.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\t\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./frequent-descriptions-modify.vue?vue&type=template&id=0a32786e\"\nimport script from \"./frequent-descriptions-modify.vue?vue&type=script&lang=js\"\nexport * from \"./frequent-descriptions-modify.vue?vue&type=script&lang=js\"\n\nimport \"./frequent-descriptions-modify.vue?vue&type=style&index=0&id=0a32786e&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./frequent-descriptions-input.vue?vue&type=template&id=44d9f046\"\nimport script from \"./frequent-descriptions-input.vue?vue&type=script&lang=js\"\nexport * from \"./frequent-descriptions-input.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./measureunit-list.vue?vue&type=template&id=2ded18de\"\nimport script from \"./measureunit-list.vue?vue&type=script&lang=js\"\nexport * from \"./measureunit-list.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export enum SalaryItemDataTypes {\r\n\tNumerical = 'Numerical',\r\n\tString = 'String',\r\n\tMoney = 'Money',\r\n\tDate = 'Date',\r\n\tTime = 'Time'\r\n}\r\n\r\nexport enum SalaryItemFillTypes {\r\n\tMonthly = 'Monthly',\r\n\tYearly = 'Yearly',\r\n\tEndYear = 'EndYear',\r\n}\r\n\r\nexport enum SalaryItemTypes {\r\n\tFunctional = 'Functional',\r\n\tSalary = 'Salary',\r\n\tDeductions = 'Deductions',\r\n\tPrivilege = 'Privilege'\r\n}\r\n\r\nexport enum SalaryItemActionTypes {\r\n\tSingle = 'Single',\r\n\tComputational = 'Computational',\r\n\tDisplay = 'Display'\r\n}\r\n\r\nexport enum PersonnelGenderTypes {\r\n\tUnknown = 'Unknown',\r\n\tMale = 'Male',\r\n\tFemale = 'Female'\r\n}\r\n\r\nexport enum PersonnelMarriageTypes {\r\n\tUnknown = 'Unknown',\r\n\tSingle = 'Single',\r\n\tMarried = 'Married',\r\n\tMoayal = 'Moayal'\r\n}\r\n\r\nexport enum PersonnelMilitaryStatusTypes {\r\n\tUnknown = 'Unknown',\r\n\tUndone = 'Undone',\r\n\tDone = 'Done',\r\n\tExemption = 'Exemption'\r\n}\r\n\r\nexport enum PersonnelSacrificeStatusTypes {\r\n\tNotHaving = 'NotHaving',\r\n\tDevotee = 'Devotee',\r\n\tMartyrSon = 'MartyrSon',\r\n\tReleasedCaptive = 'ReleasedCaptive',\r\n\tArmedForces = 'ArmedForces',\r\n\tForeigners = 'Foreigners',\r\n\tTaxAvoidance = 'TaxAvoidance',\r\n\tSubjectEmploymentLaw = 'SubjectEmploymentLaw',\r\n\tRazmande12AtLeast = 'Razmande12AtLeast',\r\n\tSubjectArticle25 = 'SubjectArticle25'\r\n}\r\n\r\nexport enum PersonnelEducationalStatusTypes {\r\n\tLowDiploma = 'LowDiploma',\r\n\tDiploma = 'Diploma',\r\n\tAssociateDegree = 'AssociateDegree',\r\n\tBachelors = 'Bachelors',\r\n\tMasters = 'Masters',\r\n\tDoctorate = 'Doctorate',\r\n\tPostDoctoral = 'PostDoctoral'\r\n}\r\n\r\nexport enum InsuranceTypes {\r\n\tNotInsurance = 'NotInsurance',\r\n\tNormal = 'Normal',\r\n\tUnEmploymentInsurance = 'UnEmploymentInsurance',\r\n\tEmployerExemptWithUnEmployee = 'EmployerExemptWithUnEmployee',\r\n\tEmployerExemptWithoutUnEmployee = 'EmployerExemptWithoutUnEmployee',\r\n\tEmployerAndPersonnelExemptWithUnEmployee = 'EmployerAndPersonnelExemptWithUnEmployee',\r\n\tEmployerAndPersonnelExemptWithoutUnEmployee = 'EmployerAndPersonnelExemptWithoutUnEmployee',\r\n\tPersonnelExempt = 'PersonnelExempt',\r\n\tArticleOfLaw80_90 = 'ArticleOfLaw80_90',\r\n\tArticleOfLaw80_80 = 'ArticleOfLaw80_80',\r\n\tArticleOfLaw80_70 = 'ArticleOfLaw80_70',\r\n\tArticleOfLaw80_60 = 'ArticleOfLaw80_60',\r\n\tArticleOfLaw80_50 = 'ArticleOfLaw80_50',\r\n\tArticleOfLaw80_40 = 'ArticleOfLaw80_40',\r\n\tArticleOfLaw80_30 = 'ArticleOfLaw80_30',\r\n}\r\n\r\nexport enum InsuranceBaseTypes {\r\n\tHealthService = 'HealthService',\r\n\tTamin = 'Tamin',\r\n\tHealthInsurance = 'HealthInsurance',\r\n\tOther = 'Other',\r\n\tNotHaving = 'NotHaving'\r\n}\r\n\r\nexport enum PersonnelEmploymentAsTypes {\r\n\tDaily = 'Daily',\r\n\tHourly = 'Hourly'\r\n}\r\n\r\nexport enum PersonnelEmploymentTypes {\r\n\tContractual = 'Contractual',\r\n\tCorporate = 'Corporate',\r\n\tOfficial = 'Official',\r\n\tTreaty = 'Treaty',\r\n\tAgent = 'Agent',\r\n\tFee = 'Fee',\r\n\tBuyService = 'BuyService',\r\n\tHourly = 'Hourly',\r\n\tDaily = 'Daily',\r\n\tOfficialTest = 'OfficialTest',\r\n\tSeasonalOfficial = 'SeasonalOfficial',\r\n\tOther = 'Other',\r\n}\r\n\r\nexport enum ContractTypes {\r\n\tFullTime = 'FullTime',\r\n\tPartTime = 'PartTime',\r\n\tHourly = 'Hourly',\r\n\tTreaty = 'Treaty',\r\n\tTemporary = 'Temporary'\r\n}\r\n\r\nexport enum LoanInstallmentStatusTypes {\r\n\tDeducted = 'Deducted',\r\n\tNotDeducted = 'NotDeducted',\r\n}\r\n\r\nexport enum SavingBoxTransactionStatusType {\r\n\tDecrease = 'Decrease',\r\n\tIncrease = 'Increase'\r\n}\r\n\r\nexport enum ExcelTypes {\r\n\tInsuranceDBF = 'InsuranceDBF'\r\n}\r\n\r\nexport enum ExportTypes {\r\n\tInsuranceDBF = 'InsuranceDBF',\r\n\tFinanceFile = 'FinanceFile'\r\n}\r\n\r\n\r\nexport enum DBFTypes {\r\n\tInsurance = 'Insurance',\r\n\tFinance = 'Finance'\r\n}\r\n\r\nexport enum FinancePaymentWays {\r\n\tPersonalCheque = 'PersonalCheque',\r\n\tCreditCard = 'CreditCard',\r\n\tBankTransfer = 'BankTransfer',\r\n\tBankDraft = 'BankDraft',\r\n\tGuaranteedCheque = 'GuaranteedCheque',\r\n\tCash = 'Cash',\r\n\tTreasury = 'Treasury',\r\n\tWithoutPayment = 'WithoutPayment'\r\n}\r\n\r\nexport enum FinanceBankCodes {\r\n\tAnsar = 'Ansar',\r\n\tToseeTaavon = 'ToseeTaavon',\r\n\tMarkaziIran = 'MarkaziIran',\r\n\tShahr = 'Shahr',\r\n\tDey = 'Dey',\r\n\tToseeSaderatIran = 'ToseeSaderatIran',\r\n\tEghtesadNovin = 'EghtesadNovin',\r\n\tGharzolhasneMehrIran = 'GharzolhasneMehrIran',\r\n\tHekmatIranian = 'HekmatIranian',\r\n\tSanatVaMadan = 'SanatVaMadan',\r\n\tKarafarin = 'Karafarin',\r\n\tKeshavarzi = 'Keshavarzi',\r\n\tMaskan = 'Maskan',\r\n\tMellat = 'Mellat',\r\n\tMeliIran = 'MeliIran',\r\n\tParsian = 'Parsian',\r\n\tPasargad = 'Pasargad',\r\n\tPostBank = 'PostBank',\r\n\tRefahKargaran = 'RefahKargaran',\r\n\tSaderat = 'Saderat',\r\n\tSaman = 'Saman',\r\n\tSarmaye = 'Sarmaye',\r\n\tSepah = 'Sepah',\r\n\tSina = 'Sina',\r\n\tTat = 'Tat',\r\n\tTejarat = 'Tejarat',\r\n\tGardeshgari = 'Gardeshgari',\r\n\tResalat = 'Resalat'\r\n}\r\nexport enum MoadianBrokers {\r\n\tTaxPanel = 'TaxPanel'\r\n}\r\n\r\nexport enum FieldExportTypes {\r\n\tSum = 'Sum',\r\n\tCount = 'Count'\r\n}","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./multi-currency-cell-view.vue?vue&type=template&id=20c2d48f\"\nimport script from \"./multi-currency-cell-view.vue?vue&type=script&lang=js\"\nexport * from \"./multi-currency-cell-view.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{{ $t('notification.not-found-any') }}\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n","import { render } from \"./notifications.vue?vue&type=template&id=12504a1c\"\nimport script from \"./notifications.vue?vue&type=script&lang=js\"\nexport * from \"./notifications.vue?vue&type=script&lang=js\"\n\nimport \"./notifications.vue?vue&type=style&index=0&id=12504a1c&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import app from '~/plugins/vue-instance'\r\nimport $ from 'jquery'\r\nimport _ from 'lodash'\r\nimport { globalLogger } from '~/plugins/logger'\r\n\r\nconst focusNextElement = (sender, tabindex, direction) => {\r\n\tif ($(sender).parents('[tabscope]').length === 0) {\r\n\t\tglobalLogger.error('Tabscope not found. Tabindex broke.')\r\n\t\treturn\r\n\t}\r\n\r\n\tvar host = _.head($(sender).parents('[tabscope]:not([disabled])'))\r\n\tif (!host) {\r\n\t\treturn\r\n\t}\r\n\r\n\tlet $host = $(host)\r\n\r\n\tvar els = Array.from($host.find(`[tabindex]:visible:not([disabled])`))\r\n\tels = els.filter(item => $(item).parents('[disabled]').length === 0)\r\n\tels = els.filter(item => parseInt(item.attributes.tabindex.value, 10) > 0)\r\n\tels = els.filter(item => _.head($(item).parents('[tabscope]')) === host)\r\n\r\n\tdo {\r\n\t\tvar FindNext = (ti) => {\r\n\t\t\tvar arr = []\r\n\t\t\tfor (var i = 0; i < els.length; i++) {\r\n\t\t\t\tvar x = els[i]\r\n\t\t\t\tif (parseInt(x.attributes.tabindex.value, 10) === ti) {\r\n\t\t\t\t\tarr.push(x)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn arr\r\n\t\t}\r\n\t\tvar MinTabIndex = () => {\r\n\t\t\tif (els.length === 0) {\r\n\t\t\t\treturn 0\r\n\t\t\t}\r\n\r\n\t\t\tlet min = els.reduce((min, current) => {\r\n\t\t\t\tlet m = min.attributes ? parseInt(min.attributes.tabindex.value, 10) : min\r\n\t\t\t\tlet v = parseInt(current.attributes.tabindex.value, 10)\r\n\r\n\t\t\t\t// we exclude element with tabindex<=0\r\n\t\t\t\tif (m <= 0) return v\r\n\t\t\t\tif (v <= 0) return m\r\n\r\n\t\t\t\tlet r = m < v ? m : v\r\n\t\t\t\treturn r > 0 ? r : current\r\n\t\t\t})\r\n\r\n\t\t\treturn _.isNumber(min) ? min : 0\r\n\t\t}\r\n\t\tvar MaxTabIndex = () => {\r\n\t\t\tif (els.length === 0) {\r\n\t\t\t\treturn 0\r\n\t\t\t}\r\n\r\n\t\t\tlet max = els.reduce((max, current) => {\r\n\t\t\t\tlet m = max.attributes ? parseInt(max.attributes.tabindex.value, 10) : max\r\n\t\t\t\tlet v = parseInt(current.attributes.tabindex.value, 10)\r\n\r\n\t\t\t\t// we exclude element with tabindex<=0\r\n\t\t\t\tif (m <= 0) return v\r\n\t\t\t\tif (v <= 0) return m\r\n\r\n\t\t\t\tlet r = m > v ? m : v\r\n\t\t\t\treturn r > 0 ? r : current\r\n\t\t\t})\r\n\r\n\t\t\treturn _.isNumber(max) ? max : 0\r\n\t\t}\r\n\r\n\t\tif (tabindex === 0) {\r\n\t\t\ttabindex = direction === 'down' ? MinTabIndex() : MaxTabIndex()\r\n\t\t}\r\n\r\n\t\tvar next = FindNext(tabindex)\r\n\t\tif (next.length === 0) {\r\n\t\t\tlet minTabindex = MinTabIndex()\r\n\t\t\tlet maxTabindex = MaxTabIndex()\r\n\r\n\t\t\tif (direction === 'down') {\r\n\t\t\t\twhile (++tabindex <= maxTabindex) {\r\n\t\t\t\t\tnext = FindNext(tabindex)\r\n\t\t\t\t\tif (next.length > 0) {\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (next.length === 0) {\r\n\t\t\t\t\tnext = FindNext(minTabindex)\r\n\t\t\t\t}\r\n\t\t\t} else if (direction === 'up') {\r\n\t\t\t\twhile (--tabindex > minTabindex) {\r\n\t\t\t\t\tnext = FindNext(tabindex)\r\n\t\t\t\t\tif (next.length > 0) {\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (next.length === 0) {\r\n\t\t\t\t\tnext = FindNext(maxTabindex)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (next.length === 0) {\r\n\t\t\tbreak\r\n\t\t}\r\n\r\n\t\tvar found = false\r\n\r\n\t\tfor (var i = 0; i < next.length; i++) {\r\n\t\t\tvar $el = $(next[i])\r\n\t\t\tvar otherHost = $el.parents('[tabscope]').first()\r\n\t\t\tif (otherHost[0] !== host) {\r\n\t\t\t\tvar index = els.indexOf($el)\r\n\t\t\t\tels.splice(index, 1)\r\n\t\t\t} else {\r\n\t\t\t\tvar $parentTabIndex = $el.parents('[tabindex]')\r\n\t\t\t\tif ($parentTabIndex.length > 0) {\r\n\t\t\t\t\t$parentTabIndex = $parentTabIndex.first()\r\n\t\t\t\t\tlet tabIndexValue = $parentTabIndex.attr('tabindex')\r\n\t\t\t\t\tif ($parentTabIndex.index(host) === -1 && $parentTabIndex.find('[tabscope]').index(host) === -1 && tabIndexValue && tabIndexValue !== '0') {\r\n\t\t\t\t\t\tconsole.groupCollapsed('TabIndex')\r\n\t\t\t\t\t\tconsole.warn('An element with tabindex attribute needs an immediate tabscope')\r\n\t\t\t\t\t\tconsole.log('Parent TabIndex:')\r\n\t\t\t\t\t\tconsole.log($parentTabIndex)\r\n\t\t\t\t\t\tconsole.log('Child TabIndex:')\r\n\t\t\t\t\t\tconsole.log($el)\r\n\t\t\t\t\t\tconsole.groupEnd()\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$el.focus()\r\n\t\t\t\tfound = true\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t}\r\n\t} while (!found)\r\n\r\n\treturn found\r\n}\r\nconst Next = (sender, e) => {\r\n\tif ($(sender).parents('[ag-grid]').length || $(sender).find('[ag-grid]').length) return true\r\n\tif (sender.getAttribute('is-open')) return true\r\n\r\n\te.preventDefault()\r\n\tvar tabindex = $(sender).attr('tabindex')\r\n\tif (typeof tabindex !== 'undefined' && !isNaN(tabindex)) {\r\n\t\ttabindex = parseInt(tabindex, 10)\r\n\t\tif (tabindex === 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\ttabindex += 1\r\n\t\treturn focusNextElement(sender, tabindex, 'down')\r\n\t}\r\n}\r\nconst Previous = (sender, e) => {\r\n\tif ($(sender).parents('[ag-grid]').length) return true\r\n\r\n\te.preventDefault()\r\n\r\n\tvar tabindex = $(sender).attr('tabindex')\r\n\tif (typeof tabindex !== 'undefined' && !isNaN(tabindex)) {\r\n\t\ttabindex = parseInt(tabindex, 10)\r\n\t\tif (tabindex === 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\ttabindex -= 1\r\n\t\treturn focusNextElement(sender, tabindex, 'up')\r\n\t}\r\n}\r\n\r\nclass TabOrderFunctions {\r\n\tsubscribeKeys(keyPrepend, _vm) {\r\n\t\tvar tabindexes = $(_vm.$el).find('[tabindex]')\r\n\t\tvar tabscopes = $(_vm.$el).find('[tabscope]')\r\n\t\tapp.$keyHandler.Subscribe({\r\n\t\t\tname: keyPrepend + '-taborder-next',\r\n\t\t\tkeyCode: [9, 13, 40], // 9:tab 13:enter 40:arrow-down\r\n\t\t\tctrlKey: false,\r\n\t\t\tel: tabindexes,\r\n\t\t\tcontext: this,\r\n\t\t\thandler: Next\r\n\t\t}) // taborder-next\r\n\r\n\t\tapp.$keyHandler.Subscribe({\r\n\t\t\tname: keyPrepend + '-taborder-previous',\r\n\t\t\tkeyCode: 38, // 38:arrow-up\r\n\t\t\tctrlKey: false,\r\n\t\t\tel: tabindexes,\r\n\t\t\tcontext: this,\r\n\t\t\thandler: Previous\r\n\t\t}) // taborder-previous\r\n\r\n\t\tapp.$keyHandler.Subscribe({\r\n\t\t\tname: keyPrepend + '-taborder-previous-shift',\r\n\t\t\tkeyCode: 9, // 9:tab\r\n\t\t\tshiftKey: true,\r\n\t\t\tel: tabindexes,\r\n\t\t\tcontext: this,\r\n\t\t\thandler: Previous\r\n\t\t}) // taborder-previous-shift\r\n\r\n\t\tapp.$keyHandler.Subscribe({\r\n\t\t\tname: keyPrepend + '-taborder-ctrl-enter-tabscope',\r\n\t\t\tkeyCode: [9, 13], // 9:tab 13:enter\r\n\t\t\tctrlKey: true,\r\n\t\t\tel: tabscopes,\r\n\t\t\tcontext: this,\r\n\t\t\thandler: function (sender, e) {\r\n\t\t\t\te.preventDefault()\r\n\r\n\t\t\t\tvar $scope = $(sender)\r\n\t\t\t\tvar tabItems = $scope.find('[tabindex]:visible')\r\n\r\n\t\t\t\ttabItems = tabItems.map(function (index, item) {\r\n\t\t\t\t\tvar val = item.attributes.tabindex.value\r\n\t\t\t\t\tif (typeof val === 'undefined' || val === '') {\r\n\t\t\t\t\t\tval = '0'\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttabindex: parseInt(val, 10),\r\n\t\t\t\t\t\tel: item\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\ttabItems = tabItems.filter((i, x) => x.tabindex > 0)\r\n\r\n\t\t\t\tif (tabItems.length > 0) {\r\n\t\t\t\t\tvar min = tabItems[0]\r\n\r\n\t\t\t\t\tfor (var i = 1; i < tabItems.length; i++) {\r\n\t\t\t\t\t\tif (tabItems[i].tabindex < min.tabindex) {\r\n\t\t\t\t\t\t\tmin.el = tabItems[i].el\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (min.el != null) {\r\n\t\t\t\t\t\t$(min.el).focus()\r\n\t\t\t\t\t\treturn true\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}) // taborder-ctrl-enter-tabscope\r\n\r\n\t\tapp.$keyHandler.Subscribe({\r\n\t\t\tname: keyPrepend + '-taborder-ctrl-exit-tabindex',\r\n\t\t\tkeyCode: 13, // 13:enter\r\n\t\t\tctrlKey: true,\r\n\t\t\tshiftKey: true,\r\n\t\t\tel: tabindexes,\r\n\t\t\tcontext: this,\r\n\t\t\thandler: function (sender, e) {\r\n\t\t\t\te.preventDefault()\r\n\r\n\t\t\t\tvar $scope = $(sender).parents('[tabscope]')\r\n\r\n\t\t\t\tif ($scope.length > 0) {\r\n\t\t\t\t\t$scope[0].focus()\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}) // taborder-ctrl-exit-tabindex\r\n\t}\r\n\r\n\tupdateDisableds() {\r\n\t\tconst cssClass = 'auto-disabled'\r\n\t\tconst attrName = 'disabled'\r\n\t\t$(`.${cssClass}`).removeAttr(attrName).removeClass(cssClass)\r\n\r\n\t\tvar disableds = $(`[${attrName}]`)\r\n\t\tvar inputs = disableds.find(`input:not([${attrName}]), textarea:not([${attrName}]), button:not([${attrName}])`)\r\n\r\n\t\tinputs.each(function (index, el) {\r\n\t\t\tif ($(el).parents('.nk-dialog').length === 0) {\r\n\t\t\t\t$(el).attr(attrName, attrName).addClass(cssClass)\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n\r\nconst TabOrder = new TabOrderFunctions()\r\nexport default TabOrder\r\n\r\nexport {Next}\r\n","import _ from 'lodash'\r\n\r\nclass ShortcutProvider {\r\n constructor() {\r\n this._collection = {\r\n 'new': { keyCode: 78, altKey: true }, // 78:n\r\n 'add': { keyCode: 45, ctrlKey: true }, // 45:insert\r\n 'edit': { keyCode: 32, ctrlKey: true }, // 32:space\r\n 'delete': { keyCode: 46, shiftKey: true }, // 46:delete\r\n 'help': { keyCode: 112 }, // 112:F1\r\n 'favorite-tabs': { keyCode: 113 }, // 113:F2\r\n 'search': { keyCode: 114 }, // 114:F3\r\n 'save': { keyCode: 83, ctrlKey: true }, // 83:s\r\n 'save-new': { keyCode: 83, shiftKey: true, ctrlKey: true }, // 83:s\r\n 'temp-save': { keyCode: 83, shiftKey: true }, // 83:s\r\n 'save-print': { keyCode: 80, shiftKey: true }, // 80:p\r\n 'print': { keyCode: 80, ctrlKey: true }, // 80:p\r\n 'excel': { keyCode: 88, altKey: true }, // 88:x\r\n 'insert': { keyCode: 45, ctrlKey: true }, // 45:insert\r\n 'enter-only': { keyCode: 13 }, // 13:enter\r\n 'select': { keyCode: 83, shiftKey: true }, // 13:enter\r\n 'enter': { keyCode: 13, ctrlKey: true }, // 13:enter\r\n 'exit': { keyCode: 27 }, // 27:Esc\r\n 'view-document': { keyCode: 114 }, // 114:F3\r\n 'close-tab': { keyCode: 192, ctrlKey: true }, // 192:`\r\n 'settings': { keyCode: 123, ctrlKey: true }, // 123:F12\r\n 'copy': { keyCode: 67, ctrlKey: true, altKey: false, shiftKey: false }, // 67:C\r\n 'duplicate': { keyCode: 68, ctrlKey: true, altKey: false, shiftKey: false }, // 100:d\r\n 'change-log': { keyCode: 76, ctrlKey: true, altKey: false, shiftKey: false }, // 76:L\r\n 'attachment': { keyCode: 84, altKey: true },// 84:T\r\n 'ctrl-insert': { keyCode: 45, ctrlKey: true }, // 45:insert\r\n 'ctrl-arrow-right': { keyCode: 39, ctrlKey: true }, // 45:insert\r\n 'ctrl-arrow-left': { keyCode: 37, ctrlKey: true }, // 45:insert\r\n 'snapshot': { keyCode: 81, ctrlKey: true, altKey: true, }, // 81:D\r\n\r\n 'install': {\r\n 'done': { keyCode: 83, ctrlKey: true, shiftKey: true }, // 83:s\r\n 'next': { keyCode: 33 }, // 33: page up\r\n 'prev': { keyCode: 34 } // 34: page down\r\n },\r\n\r\n 'dialog': {\r\n 'ok': { keyCode: [13, 32] }, // 13:enter & 32:space\r\n 'cancel': { keyCode: 27 }, // 27:escape\r\n 'yes': { keyCode: 13 }, // 13:enter\r\n 'yesAs': { keyCode: 13, ctrlKey: true }, // 13:enter\r\n 'no': { keyCode: 27 }, // 27:escape\r\n 'return': { keyCode: 27 } // 27:escape\r\n },\r\n\r\n 'fiscal': {\r\n 'grid-enter': { keyCode: [37, 13] }, // 37:left arrow //13:enter\r\n 'grid-up': { keyCode: 38 }, // 38:up arrow\r\n 'grid-down': { keyCode: 40 }, // 40:down arrow\r\n 'exit-grid': { keyCode: [39, 27] }, // 39:right arrow //27:Esc\r\n 'access-manager': { keyCode: [113], ctrlKey: true } // 113:F2\r\n },\r\n\r\n 'account': {\r\n 'account-ltc': { keyCode: 114 }, // 114:F3\r\n 'account-information': { keyCode: 113, ctrlKey: true }, // 113:F2\r\n 'ignore-changes': { keyCode: 112 }, // 112:F1\r\n 'delete': { keyCode: 46, shiftKey: false, ctrlKey: true, } // 46:delete\r\n },\r\n\r\n 'center': {\r\n 'center-information': { keyCode: 113, ctrlKey: true }, // 113:F2\r\n 'ignore-changes': { keyCode: 112 } // 112:F1\r\n },\r\n\r\n 'document': {\r\n 'save-memo': { keyCode: 83, ctrlKey: true, shiftKey: true }, // 83:s\r\n 'ignore-changes': { keyCode: 112 }, // 112:F1\r\n 'copy-value': { keyCode: 68, ctrlKey: true, altKey: false, shiftKey: true }, // 68:D\r\n 'balance-table': { keyCode: 13, ctrlKey: true, altKey: true, shiftKey: false }, // 13:enter\r\n 'delete': { keyCode: 46, ctrlKey: false, altKey: false, shiftKey: true }, // 46:delete\r\n },\r\n 'factor': {\r\n 'balance-operation': { keyCode: 13, ctrlKey: true, altKey: false, shiftKey: false }, // 13:enter\r\n 'fetch-suggestion-price': { keyCode: 69, ctrlKey: true, altKey: false, shiftKey: false } // 69:E\r\n },\r\n\r\n 'table': {\r\n 'insert-new-row': { keyCode: 45, ctrlKey: true }, // 45:insert\r\n 'full-screen': { keyCode: 70, altKey: true }, // 70:f\r\n 'insert-new-row-at-end': { keyCode: 45, ctrlKey: true, shiftKey: true }, // 45:insert\r\n 'delete-row': { keyCode: 46, ctrlKey: true }, // 46:delete\r\n 'copy': { keyCode: 67, altKey: true }, // 67:C\r\n 'templates-save-new': { keyCode: 83, ctrlKey: true, shiftKey: true }, // 83:S\r\n 'templates-select': { keyCode: 13, ctrlKey: true }, // 13:enter\r\n 'new-row': { keyCode: 40 },// 40:arrow-down\r\n 'move-up': { keyCode: 38, altKey: true },// 38:arrow-up\r\n 'move-down': { keyCode: 40, altKey: true },// 40:arrow-down\r\n 'ctrl-move-up': { keyCode: 38, ctrlKey: true },// 38:arrow-up\r\n 'ctrl-move-down': { keyCode: 40, ctrlKey: true },// 40:arrow-down\r\n 'sum-till-current-row': { keyCode: 83, altKey: true },// 83:C\r\n },\r\n\r\n 'ag-grid': {\r\n 'copy-to-all-rows': { keyCode: 68, ctrlKey: true, shiftKey: true, altKey: false },// D:68\r\n 'copy-to-empty-rows': { keyCode: 68, ctrlKey: true, altKey: true, shiftKey: false },// D:68\r\n 'copy-to-next-row': { keyCode: 68, ctrlKey: true, altKey: false, shiftKey: false },// D:68\r\n 'clear-current-row': { keyCode: 69, ctrlKey: true, altKey: false, shiftKey: false },// E:69\r\n 'clear-current-column': { keyCode: 69, ctrlKey: true, altKey: true, shiftKey: false },// E:69\r\n 'copy-to-current-row-cells': { keyCode: 71, ctrlKey: true, altKey: false, shiftKey: false },// G:71\r\n 'copy-to-empty-current-row-cells': { keyCode: 71, ctrlKey: true, altKey: true, shiftKey: false }// G:71\r\n },\r\n\r\n 'treasury': {\r\n 'create-cheque': { keyCode: 112 }, // 112:F1\r\n 'create-items': { keyCode: 113, ctrlKey: true }, // 113:F2\r\n 'item-trace': { keyCode: 114 }, // 114:F3\r\n 'change-state': { keyCode: 115 }, // 115:F4\r\n 'delete-cheque': { keyCode: 46, ctrlKey: false, shiftKey: true }, // 46:delete\r\n 'delete-last-trace': { keyCode: 46, ctrlKey: false, shiftKey: true }, // 46:delete\r\n 'cheque-modify': { keyCode: 113, ctrlKey: true }, // 113:F2\r\n 'ignore-changes': { keyCode: 112 }, // 112:F1\r\n 'attachments': { keyCode: 115 }, // 115:F4\r\n 'state-1': { keyCode: 49, ctrlKey: true }, // 49:1\r\n 'state-2': { keyCode: 50, ctrlKey: true }, // 50:2\r\n 'state-3': { keyCode: 51, ctrlKey: true }, // 51:3\r\n 'state-4': { keyCode: 52, ctrlKey: true }, // 52:4\r\n 'state-5': { keyCode: 53, ctrlKey: true }, // 53:5\r\n 'state-6': { keyCode: 54, ctrlKey: true }, // 54:6\r\n 'state-7': { keyCode: 55, ctrlKey: true }, // 55:7\r\n 'state-8': { keyCode: 56, ctrlKey: true }, // 55:8\r\n 'state-9': { keyCode: 57, ctrlKey: true }, // 55:9\r\n 'create-cheque-items': { keyCode: 32, ctrlKey: true }, // 32:SPACE\r\n },\r\n\r\n 'sale': {\r\n 'attachments-transaction': { keyCode: 112, ctrlKey: true }, // 112:F1\r\n 'attachments-factor': { keyCode: 113, ctrlKey: true }, // 113:F2\r\n 'attachments': { keyCode: 113, ctrlKey: true }, // 113:F2\r\n 'fill-accepted': { keyCode: 13, ctrlKey: true, altKey: false, shiftKey: false }, // 13:enter\r\n 'fill-accepted-all': { keyCode: 13, ctrlKey: true, altKey: true, shiftKey: false }, // 13:enter\r\n 'add-from-pda': { keyCode: 115 }, // 115:F4,\r\n 'show-related-hawala': { keyCode: 116 }, // 116:F5\r\n 'show-related-receipt': { keyCode: 117 } // 116:F7\r\n },\r\n\r\n 'input': {\r\n '3zero': { keyCode: 107 }, // 107:+\r\n '2zero': { keyCode: 109 }, // 109:-\r\n 'selectAll': { keyCode: [97, 65, 222], ctrlKey: true }, // 97:a\r\n 'copy': { keyCode: [99, 67, 224], ctrlKey: true }, // 99:c\r\n 'paste': { keyCode: [118, 86], ctrlKey: true }, // 118:v\r\n 'cut': { keyCode: 88, ctrlKey: true }, // 88:x\r\n 'right': { keyCode: 39 }, // 37:right arrow\r\n 'left': { keyCode: 37 }, // 37:left arrow\r\n },\r\n\r\n 'textarea': {\r\n 'left': { keyCode: 37 }, // 37:left arrow\r\n 'up': { keyCode: 38 }, // 38:up arrow\r\n 'down': { keyCode: 40 }, // 40:down arrow\r\n 'selectAll': { keyCode: [97, 65, 222], ctrlKey: true }, // 97:a\r\n 'nextTab': { keyCode: 13, shiftKey: true }, // 13:enter\r\n 'cut': { keyCode: 88, ctrlKey: true }, // 88:x\r\n }\r\n }\r\n }\r\n\r\n find(key, group) {\r\n var scg = this._collection\r\n\r\n if (typeof group !== 'undefined') {\r\n scg = this._collection[group]\r\n if (typeof scg === 'undefined') {\r\n throw new Error(`shortcut group '${group}' not found`)\r\n }\r\n }\r\n\r\n var defaultSc = {\r\n ctrlKey: false,\r\n shiftKey: false,\r\n altKey: false\r\n }\r\n\r\n var sc = scg[key]\r\n if (typeof sc === 'undefined') {\r\n throw new Error(`shortcut ${key} not found in group '${group}'`)\r\n }\r\n\r\n sc = _.extend(defaultSc, sc)\r\n return sc\r\n }\r\n\r\n display(key, group) {\r\n const shortcut = this.find(key, group)\r\n\r\n var arr = []\r\n\r\n if (shortcut.keyCode > 0) {\r\n if (shortcut.ctrlKey === true) {\r\n arr.push('Ctrl')\r\n }\r\n if (shortcut.shiftKey === true) {\r\n arr.push('Shift')\r\n }\r\n if (shortcut.altKey === true) {\r\n arr.push('Alt')\r\n }\r\n\r\n var key = shortcut.keyCode\r\n var keyChar = String.fromKeyCode(key)\r\n keyChar = keyChar || ''\r\n\r\n arr.push(keyChar)\r\n return arr.join(' + ')\r\n } else {\r\n return ''\r\n }\r\n }\r\n}\r\n\r\nexport default new ShortcutProvider()\r\n","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"nk-card h-100 d-flex flex-column container-fluid form-container\" }\nconst _hoisted_2 = { class: \"row no-gutters\" }\nconst _hoisted_3 = { class: \"col-12 col-sm-4 p-0\" }\nconst _hoisted_4 = { class: \"col-12 col-sm-4 p-0\" }\nconst _hoisted_5 = { class: \"col-12 col-sm-4 text-left p-0\" }\nconst _hoisted_6 = { class: \"my-4 flex-grow-1\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"d-flex align-items-center justify-content-end\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_dropdown_account = _resolveComponent(\"nk-dropdown-account\")!\n const _component_nk_col_form_group = _resolveComponent(\"nk-col-form-group\")!\n const _component_nk_button = _resolveComponent(\"nk-button\")!\n const _component_ag_grid = _resolveComponent(\"ag-grid\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"System\",\n policyClaims: ['Accounting_Document_ChangeDocumentsAccount'],\n tabindex: \"101\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('account.change-documents-account.source-account') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown_account, {\n modelValue: _ctx.selectedSourceAccount,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedSourceAccount) = $event)),\n options: _ctx.dropdownSourceAccountOptions,\n disabled: _ctx.formLocked,\n tabindex: 101\n }, null, 8, [\"modelValue\", \"options\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('account.change-documents-account.target-account') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown_account, {\n modelValue: _ctx.selectedTargetAccount,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.selectedTargetAccount) = $event)),\n options: _ctx.dropdownTargetAccountOptions,\n disabled: _ctx.formLocked,\n tabindex: 102\n }, null, 8, [\"modelValue\", \"options\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_nk_button, {\n class: _normalizeClass([\"send-file-button\", { 'disabled': _ctx.formLocked }]),\n options: _ctx.pageButtons.checkAccountsButton,\n onClick: _ctx.checkAccounts,\n disabled: _ctx.formLocked,\n tabindex: 103\n }, null, 8, [\"class\", \"options\", \"onClick\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_ag_grid, {\n options: _ctx.documentListOptions,\n data: _ctx.documentItems,\n modelValue: _ctx.selectedRows,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.selectedRows) = $event)),\n tabindex: \"101\"\n }, null, 8, [\"options\", \"data\", \"modelValue\"])\n ]),\n (_ctx.documentItems.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createVNode(_component_nk_button, {\n class: _normalizeClass([\"send-file-button\", { 'disabled': _ctx.selectedRows.length === 0 }]),\n disabled: _ctx.selectedRows.length === 0,\n options: _ctx.pageButtons.changeAccountsButton,\n onClick: _ctx.changeAccounts,\n tabindex: 104\n }, null, 8, [\"class\", \"disabled\", \"options\", \"onClick\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n }))\n}","\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
0\">\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n\r\n","import { render } from \"./change-documents-account.vue?vue&type=template&id=7f282f5a&ts=true\"\nimport script from \"./change-documents-account.vue?vue&type=script&lang=ts\"\nexport * from \"./change-documents-account.vue?vue&type=script&lang=ts\"\n\nimport \"./change-documents-account.vue?vue&type=style&index=0&id=7f282f5a&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./document-selector.vue?vue&type=template&id=75c4f322\"\nimport script from \"./document-selector.vue?vue&type=script&lang=js\"\nexport * from \"./document-selector.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const KEYS = {\r\n Set: 'setItem',\r\n Remove: 'removeItem',\r\n ClearAll: 'clearAll',\r\n Clear: 'clear'\r\n}\r\n\r\nconst now = () => ((new Date()).getTime() / 1000 | 0)\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n cache_objects: []\r\n },\r\n mutations: {\r\n [KEYS.Set](state, obj) {\r\n state.cache_objects.tryRemove(obj, (other, me) => me.key === other.key)\r\n state.cache_objects.push(obj)\r\n },\r\n\r\n [KEYS.Remove](state, key) {\r\n state.cache_objects.tryRemove({ key }, (other, me) => me.key === other.key)\r\n },\r\n\r\n [KEYS.Clear](state, pattern) {\r\n var reserved = [...state.cache_objects]\r\n\r\n for (var i = reserved.length - 1; i >= 0; i--) {\r\n if (reserved[i].key.startsWith(pattern)) {\r\n reserved.splice(i, 1)\r\n }\r\n }\r\n\r\n state.cache_objects = reserved\r\n },\r\n\r\n [KEYS.ClearAll](state) {\r\n state.cache_objects = []\r\n }\r\n },\r\n actions: {\r\n set({ commit }, newObj) {\r\n if (newObj == null) {\r\n return\r\n }\r\n\r\n var key = newObj.key\r\n var value = newObj.value\r\n var seconds = newObj.seconds\r\n\r\n if (key == null || key === '') {\r\n throw new Error('cache key is required')\r\n }\r\n\r\n if (value == null) {\r\n commit(KEYS.Remove, key)\r\n return\r\n }\r\n\r\n if (seconds === 0) {\r\n seconds = (365 * 24 * 60 * 60 * 1e3) // 1y\r\n }\r\n\r\n if (seconds == null) {\r\n seconds = (24 * 60 * 60 * 1e3) // 24h\r\n }\r\n\r\n var expiresAt = new Date()\r\n seconds = expiresAt.getSeconds() + seconds\r\n expiresAt.setSeconds(seconds)\r\n\r\n var obj = {\r\n key,\r\n value,\r\n expiresAt: expiresAt.getTime()\r\n }\r\n\r\n commit(KEYS.Set, obj)\r\n },\r\n\r\n get({ commit, getters }, key) {\r\n return getters.cache_get(key)\r\n },\r\n\r\n remove({ commit }, key) {\r\n if (key == null || key === '') {\r\n throw new Error('cache key is required')\r\n }\r\n\r\n commit(KEYS.Remove, key)\r\n },\r\n\r\n clear({ commit }, pattern) {\r\n if (pattern == null || pattern === '') {\r\n commit(KEYS.ClearAll)\r\n return\r\n }\r\n\r\n commit(KEYS.Clear, pattern)\r\n }\r\n },\r\n getters: {\r\n cache_items: state => {\r\n return state.cache_objects.filter(x => x.expiresAt >= now())\r\n },\r\n cache_expiredItems: state => {\r\n return state.cache_objects.filter(x => x.expiresAt < now())\r\n },\r\n cache_get: state => key => {\r\n if (key == null || key === '') {\r\n return\r\n }\r\n\r\n var obj = state.cache_objects.filter(x => x.key === key && x.expiresAt >= now())\r\n if (obj.length === 0) {\r\n return\r\n }\r\n\r\n return obj[0].value\r\n }\r\n }\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport emptyId from '~/statics/empty-id'\r\n\r\nconst KEYS = {\r\n Set: 'set',\r\n Clear: 'clear',\r\n Update: 'update'\r\n}\r\n\r\nexport const mutations = {\r\n [KEYS.Set](state, list) {\r\n if (list && Array.isArray(list)) {\r\n state.accounts = list\r\n } else {\r\n state.accounts = []\r\n }\r\n },\r\n\r\n [KEYS.Clear](state) {\r\n state.accounts = []\r\n },\r\n [KEYS.Update](state, list) {\r\n for (let account of list) {\r\n let index = state.accounts.findIndex(c => c.id === account.id)\r\n\r\n if (index > -1)\r\n state.accounts.splice(index, 1, account)\r\n }\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n accounts: []\r\n },\r\n mutations,\r\n actions: {\r\n async refresh({ dispatch, commit, state, rootGetters }, options) {\r\n options = _.extend({ force: false }, options)\r\n\r\n var key = 'accounts'\r\n\r\n // if (options.force !== true) {\r\n // var cached = await dispatch('cache/get', key, { root: true })\r\n\r\n // if (cached != null) {\r\n // commit(KEYS.Set, cached)\r\n // return\r\n // }\r\n // }\r\n\r\n let data = {\r\n fiscalPeriodId: rootGetters['useraccount/currentUserDetails'].fiscalId\r\n }\r\n var result = await post(Endpoints.getUrl('accounts.list'), data, null, { preventConcurrent: false })\r\n if (result.success) {\r\n // var cacheObj = {\r\n // key,\r\n // seconds: 24 * 60 * 60,\r\n // value: result.data.items\r\n // }\r\n\r\n // dispatch('cache/set', cacheObj, { root: true })\r\n // commit(KEYS.Set, cacheObj.value)\r\n commit(KEYS.Set, result.data.items)\r\n }\r\n },\r\n\r\n set({ commit }, list) {\r\n commit(KEYS.Set, list)\r\n },\r\n\r\n clear({ commit }) {\r\n commit(KEYS.Clear)\r\n },\r\n },\r\n getters: {\r\n all: state => {\r\n return state.accounts\r\n },\r\n getByCode: state => code => {\r\n return state.accounts.filter(item => item.accountingCode === code)\r\n },\r\n getById: state => id => {\r\n return state.accounts.find(x => x.id === id)\r\n },\r\n getByIds: state => ids => {\r\n return state.accounts.filter(x => (ids || []).indexOf(x.id) > -1)\r\n },\r\n leaves: state => {\r\n return state.accounts.filter(item => item.hasChild === false)\r\n },\r\n getMaxCentersLevel: state => {\r\n return Math.max(Math.max(...state.accounts.map(o => o.maxCenterLevel)), 1)\r\n },\r\n parents: (state, getters) => accountId => {\r\n let account = getters.getById(accountId)\r\n if (account == null) {\r\n return null\r\n }\r\n\r\n let list = []\r\n const addParent = item => {\r\n if (item.parent && item.parent.id !== emptyId) {\r\n let parent = getters.getById(item.parent.id)\r\n if (parent) {\r\n list.push(parent.id)\r\n addParent(parent)\r\n }\r\n }\r\n }\r\n\r\n addParent(account)\r\n return list\r\n },\r\n getParentByLevel: (state, getters) => (accountId, level) => {\r\n let account = getters.getById(accountId)\r\n if (account == null) {\r\n return null\r\n }\r\n\r\n let list = []\r\n const addParent = item => {\r\n if (item.parent) {\r\n let parent = getters.getById(item.parent.id)\r\n if (parent) {\r\n list.push(parent)\r\n addParent(parent)\r\n }\r\n }\r\n }\r\n\r\n addParent(account)\r\n return list.find(x => x.level === level)\r\n },\r\n children: (state, getters) => (accountId, takeIds = true) => {\r\n let list = []\r\n const addChildren = id => {\r\n let account = getters.getById(id)\r\n if (account) {\r\n for (let child of state.accounts.filter(x => x.parent && x.parent.id === account.id)) {\r\n list.push(child)\r\n addChildren(child.id)\r\n }\r\n }\r\n }\r\n\r\n addChildren(accountId)\r\n\r\n if (takeIds) {\r\n list = list.map(x => x.id)\r\n list = list.reduce((arr, id) => {\r\n if (arr.indexOf(id) === -1) {\r\n arr.push(id)\r\n }\r\n return arr\r\n }, [])\r\n }\r\n\r\n return list\r\n },\r\n isInChildrenTree: (state, getters) => (accountId, scanAccountId) => {\r\n let children = getters['children'](scanAccountId)\r\n if (children != null) {\r\n children.splice(0, 0, scanAccountId)\r\n return children.findIndex(x => x === accountId) > -1\r\n } else {\r\n return false\r\n }\r\n }\r\n }\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\n\r\nconst KEYS = {\r\n SetItems: 'set_items',\r\n Clear: 'clear'\r\n}\r\n\r\nexport const state = {\r\n autoAccounts: [],\r\n types: [],\r\n autoFloatingCenters: []\r\n}\r\nexport const mutations = {\r\n [KEYS.SetItems](state, data) {\r\n if (data && data.autoAccounts && Array.isArray(data.autoAccounts)) {\r\n state.autoAccounts = data.autoAccounts\r\n } else {\r\n state.autoAccounts = []\r\n }\r\n\r\n if (data && data.autoFloatingCenters && Array.isArray(data.autoFloatingCenters)) {\r\n state.autoFloatingCenters = data.autoFloatingCenters\r\n } else {\r\n state.autoFloatingCenters = []\r\n }\r\n },\r\n\r\n [KEYS.Clear](state) {\r\n state.autoAccounts = []\r\n }\r\n}\r\nexport const actions = {\r\n async refresh({ dispatch, commit, state, rootGetters }, options) {\r\n options = _.extend({ force: false }, options)\r\n\r\n var key = 'auto.accounts'\r\n\r\n if (options.force !== true) {\r\n var cached = await dispatch('cache/get', key, { root: true })\r\n\r\n const autoAccounts = cached.autoAccounts.map((autoAccount) => {\r\n\r\n if (autoAccount.hasChild) {\r\n autoAccount.selectableAccounts = rootGetters['accounts/children'](autoAccount.id, false).filter(account => !account.hasChild)\r\n }\r\n\r\n return autoAccount\r\n })\r\n\r\n cached.autoAccounts = autoAccounts\r\n\r\n if (cached != null) {\r\n commit(KEYS.SetItems, cached)\r\n return\r\n }\r\n }\r\n\r\n var result = await post(Endpoints.getUrl('accounts.auto.listOfMine'), null)\r\n if (result.success) {\r\n var cacheObj = {\r\n key,\r\n seconds: 24 * 60 * 60,\r\n autoAccounts: result.data.items,\r\n autoFloatingCenters: result.data.autoFloatingCenters\r\n }\r\n\r\n const autoAccounts = cacheObj.autoAccounts.map((autoAccount) => {\r\n\r\n if (autoAccount.hasChild) {\r\n autoAccount.selectableAccounts = rootGetters['accounts/children'](autoAccount.id, false).filter(account => !account.hasChild)\r\n }\r\n\r\n return autoAccount\r\n })\r\n\r\n cacheObj.autoAccounts = autoAccounts\r\n\r\n dispatch('cache/set', cacheObj, { root: true })\r\n commit(KEYS.SetItems, cacheObj)\r\n }\r\n },\r\n\r\n set({ commit }, list) {\r\n commit(KEYS.SetItems, list)\r\n },\r\n\r\n clear({ commit }) {\r\n commit(KEYS.Clear)\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.autoAccounts\r\n },\r\n getItemsByKey: (state, getters, rootState, rootGetters) => (key, includeSelectable = true) => {\r\n let items = state.autoAccounts.filter(item => item.autoAccountTypeKey === key && item.autoAccountUserId === rootGetters['appContext/getUser'].id)\r\n if (items.length === 0) {\r\n items = state.autoAccounts.filter(item => item.autoAccountTypeKey === key && !item.autoAccountUserId)\r\n }\r\n\r\n const selectableItems = []\r\n\r\n items.forEach((x) => {\r\n if (x.hasChild && includeSelectable) {\r\n x.selectableAccounts.forEach((acc) => {\r\n const originalAccount = rootGetters['accounts/getById'](acc.id)\r\n acc.balance = originalAccount?.balance\r\n acc.accountNature = originalAccount?.accountNature\r\n acc.totalCredit = originalAccount?.totalCredit\r\n acc.totalDebit = originalAccount?.totalDebit\r\n acc.maxCenterLevel = originalAccount?.maxCenterLevel\r\n selectableItems.push(acc)\r\n })\r\n }\r\n else {\r\n const originalAccount = rootGetters['accounts/getById'](x.id)\r\n x.balance = originalAccount?.balance\r\n x.accountNature = originalAccount?.accountNature\r\n x.totalCredit = originalAccount?.totalCredit\r\n x.totalDebit = originalAccount?.totalDebit\r\n x.maxCenterLevel = originalAccount?.maxCenterLevel\r\n selectableItems.push(x)\r\n }\r\n })\r\n\r\n return selectableItems\r\n },\r\n getFloatingCentersByAutoKey: (state, getters, rootState, rootGetters) => keys => {\r\n return state.autoFloatingCenters.filter(item => keys.indexOf(item.autoAccountType.key) > -1 && item.user.id === rootGetters['appContext/getUser'].id)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport emptyId from '~/statics/empty-id'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport { globalLogger } from '~/plugins/logger'\r\n\r\nconst KEYS = {\r\n Prepare: 'prepare',\r\n Add: 'add',\r\n SetAsDeleted: 'setAsDeleted',\r\n SetAsUpdated: 'setAsUpdated',\r\n Clear: 'clear',\r\n Commit: 'commit'\r\n}\r\n\r\nexport const mutations = {\r\n [KEYS.Prepare](state, list) {\r\n if (list == null || !Array.isArray(list)) {\r\n return\r\n }\r\n\r\n state.states = [...list]\r\n },\r\n\r\n [KEYS.Add](state, list) {\r\n if (list == null || !Array.isArray(list)) {\r\n return\r\n }\r\n var createds = list.filter(item => item.rowState === 'new' && item.id === emptyId)\r\n let mode = window.innerWidth < 768 ? 1 : 2\r\n for (var i = 0; i < createds.length; i++) {\r\n createds[i].mode = mode\r\n }\r\n state.states = state.states.concat(createds)\r\n },\r\n\r\n [KEYS.SetAsDeleted](state, list) {\r\n if (list == null || !Array.isArray(list)) {\r\n return\r\n }\r\n\r\n for (let value of state.states) {\r\n if (list.findIndex(d => d.rowState === 'deleted' && d.id === value.id) > -1) {\r\n value.rowState = 'deleted'\r\n }\r\n }\r\n },\r\n\r\n [KEYS.SetAsUpdated](state, list) {\r\n if (list == null || !Array.isArray(list)) {\r\n return\r\n }\r\n\r\n var updateds = list.filter(item => item.rowState === 'changed' && item.id !== emptyId)\r\n _.remove(state.states, item => updateds.findIndex(updated => updated.id === item.id) > -1)\r\n\r\n state.states = state.states.concat(updateds)\r\n },\r\n\r\n [KEYS.Commit](state) {\r\n let last = state.states.length - 1\r\n for (var i = last; i >= 0; i--) {\r\n let item = state.states[i]\r\n if (item.rowState === 'deleted' || item.rowState === 'new') {\r\n state.states.splice(i, 1)\r\n } else if (item.rowState === 'changed') {\r\n item.rowState = 'unchanged'\r\n }\r\n }\r\n },\r\n\r\n [KEYS.Clear](state) {\r\n state.states = []\r\n }\r\n}\r\n\r\nexport const actions = {\r\n refresh({ state, commit }, options) {\r\n return new Promise((resolve, reject) => {\r\n options = _.merge({ force: false }, options)\r\n\r\n if (options.force !== true) {\r\n if (state.items.length) {\r\n resolve(state.items)\r\n return\r\n }\r\n }\r\n\r\n let params = {}\r\n\r\n let mode = ''\r\n if (window.innerWidth < 768)\r\n mode = 1 // 1 is mobile\r\n else\r\n mode = 2 // 2 is desktop\r\n\r\n params = { mode: mode }\r\n\r\n post(Endpoints.getUrl('general.appStates.list'), params, null, { preventConcurrent: false })\r\n .then(result => {\r\n if (result.success) {\r\n let items = result.data.items.map(item => {\r\n return _.merge(item, {\r\n value: typeof item.value == 'object' ? item.value : JSON.parse(item.value)\r\n })\r\n })\r\n commit(KEYS.Prepare, items)\r\n resolve(items)\r\n }\r\n })\r\n .catch(error => reject(error))\r\n })\r\n },\r\n\r\n sync({ dispatch, commit, state, getters }) {\r\n if (getters.isDirty === true) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n const fetch = async () => {\r\n commit(KEYS.Commit)\r\n await dispatch('refresh', { force: true })\r\n globalLogger.log('app state sync completed')\r\n }\r\n\r\n var items = state.states.filter(x => x.rowState !== 'unchanged')\r\n if (items.length > 0) {\r\n return post(Endpoints.getUrl('general.appStates.modify'), { items }, null, { preventConcurrent: false })\r\n .then(() => fetch())\r\n .then(resolve)\r\n .catch(reject)\r\n } else {\r\n fetch()\r\n .then(resolve)\r\n .catch(reject)\r\n }\r\n } catch (e) {\r\n globalLogger.error('unable to complete app state sync with server')\r\n }\r\n })\r\n } else {\r\n return Promise.resolve()\r\n }\r\n },\r\n\r\n modify({ commit }, list) {\r\n commit(KEYS.Add, list)\r\n commit(KEYS.SetAsDeleted, list)\r\n commit(KEYS.SetAsUpdated, list)\r\n },\r\n\r\n clear({ commit }) {\r\n commit(KEYS.Clear)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n states: []\r\n },\r\n mutations,\r\n actions,\r\n getters: {\r\n all: state => {\r\n return state.states\r\n },\r\n getByKey: state => key => {\r\n return state.states.filter(item => item?.key === key)\r\n },\r\n getActiveByKey: (state, getters) => key => {\r\n return getters.getByKey(key)\r\n .find(item => item.isActive)\r\n },\r\n isDirty: state => {\r\n return state.states.filter(item => item.rowState !== 'unchanged').length > 0\r\n }\r\n }\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport { commit } from 'lodash/seq'\r\nimport { NotifyCenterUpdateStatus } from '@/enums/system'\r\n\r\nconst KEYS = {\r\n Prepare: 'PREPARE',\r\n Clear: 'CLEAR',\r\n Update: 'UPDATE',\r\n ModifyBalances: 'ModifyBalances',\r\n SetStatus: 'SETSTATUS',\r\n AddOrModified: NotifyCenterUpdateStatus.AddOrModified,\r\n Added: NotifyCenterUpdateStatus.Added,\r\n Deleted: NotifyCenterUpdateStatus.Deleted,\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n count: 0,\r\n serverSide: false,\r\n centers: [],\r\n },\r\n mutations: {\r\n [KEYS.Prepare](state, list) {\r\n if (list && Array.isArray(list)) {\r\n state.centers = list\r\n } else {\r\n state.centers = []\r\n }\r\n },\r\n\r\n [KEYS.Clear](state) {\r\n state.centers = []\r\n },\r\n [KEYS.Update](state, list) {\r\n for (let center of list) {\r\n let index = state.centers.findIndex(c => c.id === center.id)\r\n\r\n if (index > -1)\r\n state.centers.splice(index, 1, center)\r\n }\r\n },\r\n [KEYS.SetStatus](state, count) {\r\n state.count = count\r\n state.serverSide = count > 1000\r\n },\r\n [KEYS.ModifyBalances](state, list) {\r\n for (let newCenter of list) {\r\n let index = state.centers.findIndex(c => c.id === newCenter.floatingCenterId)\r\n if (index > -1) {\r\n const floatingCenter = { ...state.centers[index], ...newCenter }\r\n state.centers.splice(index, 1, floatingCenter)\r\n }\r\n }\r\n },\r\n [KEYS.AddOrModified](state, floatingCenter) {\r\n if (!floatingCenter)\r\n return\r\n let index = state.centers.findIndex(c => c.id === floatingCenter.id)\r\n if (index > -1) {\r\n state.centers.splice(index, 1, floatingCenter)\r\n } else {\r\n state.centers.push(floatingCenter)\r\n const center = state.centers.find(x => x.id === floatingCenter.id)\r\n const foundParent = state.centers.find(x => x.id === center?.parent?.id)\r\n if (foundParent)\r\n foundParent.hasChild = true\r\n }\r\n },\r\n [KEYS.Deleted](state, floatingCenterId) {\r\n let index = state.centers.findIndex(c => c.id === floatingCenterId)\r\n if (index > -1) {\r\n const center = state.centers.find(x => x.id === floatingCenterId)\r\n state.centers.splice(index, 1)\r\n if (center.parent) {\r\n const parentsChild = state.centers.filter(x => x.parent && x.parent.id === center.parent.id)\r\n if (!parentsChild.length) {\r\n const parent = state.centers.find(x => x.id === center.parent.id)\r\n parent.hasChild = false\r\n }\r\n }\r\n }\r\n },\r\n },\r\n actions: {\r\n async setStatus({ dispatch, commit, state }, count) {\r\n commit(KEYS.SetStatus, count)\r\n },\r\n async refresh({ dispatch, commit, state }, options) {\r\n if (state.serverSide && !options.ignoreServerSide)\r\n return\r\n\r\n options = _.extend({ force: false }, options)\r\n\r\n var key = 'floating-centers'\r\n\r\n // if (options.force !== true) {\r\n // var cached = await dispatch('cache/get', key, { root: true })\r\n\r\n // if (cached != null) {\r\n // commit(KEYS.Prepare, cached)\r\n // return\r\n // }\r\n // }\r\n\r\n const api = () => post(Endpoints.getUrl('floatingCenters.list'), { includeAccounts: true, }, null, { preventConcurrent: false })\r\n .then(result => {\r\n if (result.success) {\r\n if (!state.serverSide)\r\n commit(KEYS.Prepare, result.data.items)\r\n return result.data.items\r\n }\r\n })\r\n if (options.force) {\r\n return await api()\r\n } else {\r\n return state.centers\r\n }\r\n },\r\n getCentersByAccountIdAndItsParents({ state, getters, rootGetters }, obj) {\r\n let parents = rootGetters['accounts/parents'](obj.accountId)\r\n if (parents == null) {\r\n return\r\n }\r\n\r\n parents.splice(0, 0, obj.accountId)\r\n let centers = []\r\n for (let p of parents) {\r\n centers.push(...getters['getCentersByAccountId'](p, obj.centerLevel))\r\n }\r\n return centers\r\n },\r\n getCentersByCenterLevel({ state, getters, rootGetters }, level) {\r\n if (level === 0) return state.centers\r\n return state.centers.filter(x => x.relatedAccountsByLevel.some(y => y.centerLevel === level))\r\n\r\n },\r\n async getMaxCentersLevelByAccountId({ state, getters, rootGetters }, accountId) {\r\n let parents = rootGetters['accounts/parents'](accountId)\r\n if (parents == null) {\r\n return\r\n }\r\n\r\n parents.splice(0, 0, accountId)\r\n let centers = []\r\n for (let p of parents) {\r\n centers.push(...getters['getCentersByAccountId'](p))\r\n }\r\n centers = centers.filter(x => !x.hasChild)\r\n let max = 1\r\n for (var i = 0; i < centers.length; i++) {\r\n for (var j = 0; j < centers[i].relatedAccountsByLevel.length; j++) {\r\n if (centers[i].relatedAccountsByLevel[j].accountId === accountId) {\r\n max = Math.max(centers[i].relatedAccountsByLevel[j].centerLevel || 1, max)\r\n }\r\n }\r\n }\r\n return max\r\n },\r\n async getMaxCentersLevel({ state, getters, rootGetters }) {\r\n let max = rootGetters['accounts/getMaxCentersLevel']\r\n return max\r\n // let centers = getters['all']\r\n // centers = centers.filter(x => !x.hasChild)\r\n // let max = 1\r\n // for (var i = 0; i < centers.length; i++) {\r\n // for (var j = 0; j < centers[i].relatedAccountsByLevel.length; j++) {\r\n // max = Math.max(centers[i].relatedAccountsByLevel[j].centerLevel, max)\r\n // }\r\n // }\r\n // return max\r\n },\r\n clear({ commit }) {\r\n commit(KEYS.Clear)\r\n },\r\n modifyCenters({ state, getters, rootGetters, commit }, centers) {\r\n commit(KEYS.ModifyBalances, centers)\r\n },\r\n updateCenters({ state, getters, rootGetters, commit }, data) {\r\n if (state.serverSide)\r\n return\r\n if (data.status === KEYS.Deleted) {\r\n commit(KEYS.Deleted, data.floatingCenterId)\r\n }\r\n else {\r\n return post(Endpoints.getUrl('floatingCenters.get'), { id: data.floatingCenterId, includeRelatedAccounts: true }, null, { preventConcurrent: false })\r\n .then(result => {\r\n if (result.success) {\r\n commit(KEYS.AddOrModified, result.data)\r\n }\r\n })\r\n }\r\n }\r\n },\r\n getters: {\r\n all: state => {\r\n return state.centers\r\n },\r\n leaves: state => {\r\n return state.centers.filter(item => item.hasChild === false)\r\n },\r\n getById: (state, getters, rootState, rootGetters) => async (centerId, preventConcurrent = true) => {\r\n if (getters.isServerSide)\r\n return (await post(Endpoints.getUrl('floatingCenters.get'), { id: centerId }, null, { preventConcurrent: preventConcurrent })).data\r\n else\r\n return _.head(state.centers.filter(x => x.id === centerId))\r\n },\r\n getCentersByAccountId: state => (accountId, centerLevel) => {\r\n return state.centers.filter(x => x.relatedAccountIds.some(y => y === accountId) && (!centerLevel || (x.relatedAccountsByLevel.some(y => y.accountId === accountId && y.centerLevel === centerLevel))))\r\n },\r\n getCenterLevelOfAccount: state => (centerId, accountId) => {\r\n return _.head(state.centers.filter(x => x.id === centerId))?.relatedAccountsByLevel?.find(x => x.accountId === accountId)?.centerLevel || 0\r\n },\r\n leavesByGroup: (state, getters) => groupKey => {\r\n return getters['leaves'].filter(x => x.group === groupKey)\r\n },\r\n allFilteredByGroup: (state, getters) => groupKey => {\r\n return state.centers.filter(x => x.group === groupKey)\r\n },\r\n getCenterProfile: (state, getters) => center => {\r\n if (center?.imageUrl)\r\n return center.imageUrl\r\n else if (center && center.group && center.group != 0)\r\n return require(`~/assets/Avatars/${center.group}.svg`)\r\n else\r\n return null\r\n },\r\n getMaxCentersLevelByAccountId: (state, getters, rootState, rootGetters) => accountId => {\r\n return rootGetters['accounts/getById'](accountId)?.maxCenterLevel || 1\r\n },\r\n getMaxCenterTreeLevel: state => {\r\n return _.maxBy(state.centers, 'level')?.level || 0\r\n },\r\n getMetaDatasByCenterId: (state, getters, rootState, rootGetters) => async (centerId, preventConcurrent = true) => {\r\n let center\r\n if (getters.isServerSide)\r\n center = await getters.getById(centerId, preventConcurrent)\r\n else\r\n center = state.centers.find(x => x.id === centerId)\r\n\r\n if (!center)\r\n throw Error(`Center not found`)\r\n\r\n const schemas = rootGetters['metadata/schemas']\r\n var metaDatas = {}\r\n\r\n for (let schema of schemas) {\r\n if (schema.subject.split('_')[1] === center.group)\r\n metaDatas[schema.name] = center.metaDatas.find(x => x.metaDataSchema.id === schema.id)?.value\r\n }\r\n\r\n return metaDatas\r\n },\r\n isServerSide: (state) => {\r\n return state.serverSide\r\n },\r\n }\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nconst UNCHANGED = 'unchanged'\r\n\r\nconst Keys = {\r\n ADD_CATEGORIES: 'add_categories',\r\n SET_ALL_AS_UNCHANGED: 'set_all_as_unchanged',\r\n CLEAR: 'clear'\r\n}\r\n\r\nexport const state = {\r\n categories: []\r\n}\r\nexport const mutations = {\r\n [Keys.ADD_CATEGORIES](state, categories) {\r\n if (!categories || !categories.length) {\r\n return\r\n }\r\n\r\n state.categories = categories\r\n },\r\n\r\n [Keys.SET_ALL_AS_UNCHANGED](state) {\r\n for (let cat of state.categories) {\r\n cat.rowState = UNCHANGED\r\n }\r\n },\r\n\r\n [Keys.CLEAR](state) {\r\n state.categories = []\r\n }\r\n}\r\nexport const actions = {\r\n async refresh({ dispatch, commit, state }, options) {\r\n options = _.extend({ force: false }, options)\r\n\r\n // clear\r\n commit(Keys.CLEAR)\r\n\r\n var key = 'data-categories'\r\n\r\n if (options.force !== true) {\r\n var cached = await dispatch('cache/get', key, { root: true })\r\n if (cached != null) {\r\n commit(Keys.ADD_CATEGORIES, cached)\r\n return\r\n }\r\n }\r\n\r\n var result = await post(Endpoints.getUrl('floatingCenterCategory.search'), {})\r\n if (result.success) {\r\n var cacheObj = {\r\n key,\r\n seconds: 24 * 60 * 60,\r\n value: result.data.items\r\n }\r\n\r\n dispatch('cache/set', cacheObj, { root: true })\r\n commit(Keys.ADD_CATEGORIES, cacheObj.value)\r\n }\r\n },\r\n\r\n async modify({ dispatch, commit, state }, categories) {\r\n // categories = categories.filter(x => x.rowState !== UNCHANGED)\r\n\r\n let result = await post(Endpoints.getUrl('floatingCenterCategory.modify'), { items: categories })\r\n if (result.success) {\r\n commit(Keys.SET_ALL_AS_UNCHANGED)\r\n dispatch('socket/broadcastRefresh', 'Categories', { root: true })\r\n }\r\n },\r\n\r\n clear({ commit }) {\r\n commit(Keys.CLEAR)\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.categories\r\n },\r\n allInType: state => type => {\r\n return state.categories.filter(x => x.type === type)\r\n },\r\n getById: state => id => {\r\n return _.head(state.categories.filter(x => x.id === id))\r\n },\r\n derties: state => {\r\n return state.categories.filter(item => item.rowState !== UNCHANGED)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport { i18nInstance } from '~/plugins/localization'\r\nconst setUserAccountDetails = (dispatch, payload) => {\r\n dispatch('useraccount/applyDetails', {\r\n fiscalId: payload.fiscalPeriod.id,\r\n companyId: payload.company.id,\r\n customerId: (payload.customer || {}).id\r\n }, { root: true })\r\n}\r\n\r\nconst KEYS = {\r\n Prepare: 'prepare',\r\n SetFiscalPeriod: 'set-fiscal-period',\r\n SetWorkshop: 'set-workshop',\r\n SetSalaryPeriod: 'set-salary-period'\r\n}\r\nconst state = {\r\n user: {\r\n id: 0,\r\n name: '...',\r\n operationClaims: []\r\n },\r\n company: {\r\n id: 0,\r\n name: '...',\r\n currency: {\r\n id: 0,\r\n name: '...'\r\n }\r\n },\r\n fiscalPeriod: {\r\n id: 0,\r\n name: '...'\r\n },\r\n customer: {\r\n id: 0,\r\n name: '...'\r\n },\r\n commercialAccess: {\r\n customerInformation: {},\r\n modules: []\r\n },\r\n salaryPeriod: {\r\n isLocked: true,\r\n isMain: true,\r\n displayName: \"...\",\r\n id: 0,\r\n date: null,\r\n },\r\n workshop: {\r\n id: 0,\r\n name: '...'\r\n },\r\n clientDifferenceDateTimeByServer: null\r\n}\r\n\r\nexport const mutations = {\r\n [KEYS.Prepare](state, context) {\r\n if (context == null) {\r\n return\r\n }\r\n state.user = context.user\r\n state.company = context.company\r\n state.customer = context.customer\r\n state.fiscalPeriod = context.fiscalPeriod\r\n state.commercialAccess = context.commercialAccess\r\n state.workshop = context.workshop\r\n state.salaryPeriod = context.salaryPeriod\r\n state.clientDifferenceDateTimeByServer = context.clientDifferenceDateTimeByServer\r\n },\r\n [KEYS.SetFiscalPeriod](state, fiscal) {\r\n state.fiscalPeriod = fiscal\r\n },\r\n [KEYS.SetSalaryPeriod](state, salaryPeriod) {\r\n state.salaryPeriod = salaryPeriod\r\n },\r\n [KEYS.SetWorkshop](state, workshop) {\r\n state.workshop = workshop\r\n }\r\n}\r\n\r\nexport const actions = {\r\n async refresh({ dispatch, commit, state }, options) {\r\n options = _.extend({ force: false }, options)\r\n\r\n var key = 'app.context'\r\n\r\n if (options.force !== true) {\r\n var cached = await dispatch('cache/get', key, { root: true })\r\n\r\n if (cached != null) {\r\n cached = _.extend({\r\n user: {},\r\n company: {},\r\n fiscalPeriod: {},\r\n customer: {},\r\n commercialAccess: {},\r\n workshop: {},\r\n salaryPeriod: {}\r\n }, cached)\r\n commit(KEYS.Prepare, cached)\r\n setUserAccountDetails(dispatch, cached)\r\n return\r\n }\r\n }\r\n\r\n var result = await post(Endpoints.getUrl('general.statusBar'), null, null, { ignoreCommercialAccess: true })\r\n if (result.success) {\r\n let d = _.omitBy(result.data, _.isNull)\r\n d = _.extend({\r\n user: {},\r\n company: {},\r\n fiscalPeriod: {},\r\n customer: {},\r\n commercialAccess: {},\r\n workshop: {},\r\n salaryPeriod: {},\r\n clientDifferenceDateTimeByServer: new Date(d.serverDateTime) - new Date()\r\n }, d)\r\n\r\n var cacheObj = {\r\n key,\r\n seconds: 24 * 60 * 60,\r\n value: d\r\n }\r\n\r\n dispatch('cache/set', cacheObj, { root: true })\r\n commit(KEYS.Prepare, cacheObj.value)\r\n setUserAccountDetails(dispatch, cacheObj.value)\r\n }\r\n },\r\n async setFiscalPeriod({ dispatch, commit, state }, fiscal) {\r\n var result = await post(Endpoints.getUrl('user.RefreshToken'), { fiscalPeriodId: fiscal.id })\r\n if (result.success) {\r\n commit(KEYS.SetFiscalPeriod, fiscal)\r\n\r\n let payload = {\r\n user: result.data,\r\n fiscalId: result.data.additionalData['NIKAN_APP_FISCAL'],\r\n companyId: result.data.additionalData['NIKAN_APP_COMPANY'],\r\n workshopId: result.data.additionalData['NIKAN_APP_WORKSHOP'],\r\n salaryPeriodId: result.data.additionalData['NIKAN_APP_SALARYPERIOD'],\r\n }\r\n dispatch('useraccount/clearAll', null, { root: true })\r\n dispatch('useraccount/applyDetails', payload, { root: true })\r\n\r\n // let res = await dispatch('refresh', { force: true })\r\n return ''\r\n } else {\r\n throw new Error('unable to change fiscal-period')\r\n }\r\n },\r\n async setWorkshop({ dispatch, commit }, workshop) {\r\n var result = await post(Endpoints.getUrl('user.RefreshToken'), { workshopId: workshop.id })\r\n if (result.success) {\r\n commit(KEYS.SetWorkshop, workshop)\r\n\r\n let payload = {\r\n user: result.data,\r\n fiscalId: result.data.additionalData['NIKAN_APP_FISCAL'],\r\n companyId: result.data.additionalData['NIKAN_APP_COMPANY'],\r\n workshopId: result.data.additionalData['NIKAN_APP_WORKSHOP'],\r\n salaryPeriodId: result.data.additionalData['NIKAN_APP_SALARYPERIOD'],\r\n }\r\n dispatch('useraccount/clearAll', { root: true })\r\n dispatch('useraccount/applyDetails', payload, { root: true })\r\n\r\n // let res = await dispatch('refresh', { force: true })\r\n return ''\r\n } else {\r\n throw new Error('unable to change fiscal-period')\r\n }\r\n },\r\n async setSalaryPeriod({ dispatch, commit }, salaryPeriod) {\r\n var result = await post(Endpoints.getUrl('user.RefreshToken'), { salaryPeriodId: salaryPeriod.id })\r\n if (result.success) {\r\n commit(KEYS.SetSalaryPeriod, salaryPeriod)\r\n\r\n let payload = {\r\n user: result.data,\r\n fiscalId: result.data.additionalData['NIKAN_APP_FISCAL'],\r\n companyId: result.data.additionalData['NIKAN_APP_COMPANY'],\r\n workshopId: result.data.additionalData['NIKAN_APP_WORKSHOP'],\r\n salaryPeriodId: result.data.additionalData['NIKAN_APP_SALARYPERIOD'],\r\n }\r\n dispatch('useraccount/clearAll', { root: true })\r\n dispatch('useraccount/applyDetails', payload, { root: true })\r\n\r\n // let res = await dispatch('refresh', { force: true })\r\n return ''\r\n } else {\r\n throw new Error('unable to change fiscal-period')\r\n }\r\n }\r\n}\r\nexport const getters = {\r\n getClientDifferenceDateTimeByServer: state => state.clientDifferenceDateTimeByServer,\r\n getUser: state => state.user,\r\n getCompany: state => state.company,\r\n getCommercialAccess: state => state.commercialAccess,\r\n getCurrent: state => state.company.currency,\r\n getFiscalPeriod: state => state.fiscalPeriod,\r\n getWorkshop: state => state.workshop,\r\n getSalaryPeriod: state => state.salaryPeriod,\r\n userHasPermission: state => token => {\r\n if (state.customer.userId === state.user.id) return true // user is owner\r\n //sa\r\n return state.user.operationClaims.some(t => t.key.toLowerCase() === token.toLowerCase())\r\n // return state.user.operationClaims.map(x => x.key).filter(t => t.toLowerCase() === token.toLowerCase()).length > 0\r\n },\r\n checkCommercialAccess: state => token => {\r\n if (_.isString(token) && !token.length || !state.commercialAccess.modules)\r\n return true\r\n\r\n if (Array.isArray(token))\r\n return state.commercialAccess.modules.some(x => token.includes(x.typeKey) && x.isActive)\r\n\r\n return state.commercialAccess.modules.filter(x => x.typeKey === token && x.isActive).length > 0\r\n },\r\n checkCommercialAccessDetailed: (state, getters) => token => {\r\n if (_.isString(token) && !token.length)\r\n return {\r\n value: true,\r\n type: 'Active',\r\n }\r\n\r\n const checkAccess = (tk) => {\r\n\r\n const module = state.commercialAccess.modules.find(x => x.typeKey === tk)\r\n\r\n if (!module)\r\n return {\r\n value: false,\r\n type: 'InvalidToken',\r\n message: i18nInstance.global.t('commercialAccess.invalid-token', { token: tk }),\r\n }\r\n\r\n if (getters.checkCommercialAccess(module.typeKey))\r\n return {\r\n value: true,\r\n type: 'Active',\r\n typeName: module.typeName,\r\n message: i18nInstance.global.t('commercialAccess.plan-has-access', { typeName: module.typeName }),\r\n }\r\n else if (module.startDate && !module.isActive)\r\n return {\r\n value: false,\r\n type: 'Expired',\r\n typeName: module.typeName,\r\n message: i18nInstance.global.t('commercialAccess.plan-expired', { typeName: module.typeName }),\r\n }\r\n return {\r\n value: false,\r\n type: 'NotPurchased',\r\n typeName: module.typeName,\r\n message: i18nInstance.global.t('commercialAccess.plan-not-purchased', { typeName: module.typeName }),\r\n }\r\n }\r\n\r\n if (Array.isArray(token)) {\r\n const res = token.map(x => checkAccess(x))\r\n const typeNames = res.map(x => x.typeName)\r\n\r\n if (res.some(x => x.value))\r\n return {\r\n value: true,\r\n type: 'Active',\r\n typeName: typeNames,\r\n message: i18nInstance.global.t('commercialAccess.plan-has-access'),\r\n }\r\n\r\n return {\r\n value: false,\r\n type: 'AtleastOneModuleRequired',\r\n typeName: typeNames,\r\n message: i18nInstance.global.t('commercialAccess.at-least-one-module-requried', { typeNames: typeNames }),\r\n }\r\n }\r\n\r\n return checkAccess(token)\r\n },\r\n\r\n checkAccessAccountBalanceObserve: (state, getters) => {\r\n return getters.userHasPermission('Accounting_Account_WatchBalance')\r\n },\r\n checkAccessFloatingCentersBalanceObserve: (state, getters) => {\r\n return getters.userHasPermission('Accounting_FloatingCenters_WatchBalance')\r\n },\r\n checkAccessProductBalanceObserve: (state, getters) => {\r\n return getters.userHasPermission('Product_Product_WatchBalance')\r\n },\r\n checkAccessChequeOperationAmountAndPriceObserve: (state, getters) => {\r\n return getters.userHasPermission('Treasury_ChequeOperation_WatchAmountAndPrice')\r\n },\r\n checkAccessSaleBuyFactorListObserveFinancialColumn: (state, getters) => {\r\n return getters.userHasPermission('SaleBuy_FactorList_ObserveFinancialColumn')\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nconst KEYS = {\r\n SetForms: 'set_forms',\r\n SetSystemForms: 'set_system_forms',\r\n Clear: 'clear'\r\n}\r\n\r\nexport const state = {\r\n forms: [],\r\n systemForms: []\r\n}\r\nexport const mutations = {\r\n [KEYS.SetForms](state, list) {\r\n if (list && Array.isArray(list)) {\r\n state.forms = list\r\n } else {\r\n state.forms = []\r\n }\r\n },\r\n [KEYS.SetSystemForms](state, list) {\r\n if (list && Array.isArray(list)) {\r\n state.systemForms = list\r\n } else {\r\n state.systemForms = []\r\n }\r\n },\r\n\r\n\r\n [KEYS.Clear](state) {\r\n state.forms = []\r\n }\r\n}\r\nexport const actions = {\r\n async refresh({ dispatch, commit, state }, options) {\r\n options = _.extend({ force: false }, options)\r\n\r\n var key = 'forms.with.auto-account-types'\r\n\r\n if (options.force !== true) {\r\n var cached = await dispatch('cache/get', key, { root: true })\r\n if (cached != null) {\r\n commit(KEYS.SetForms, cached)\r\n return\r\n }\r\n }\r\n\r\n var result = await post(Endpoints.getUrl('general.forms'))\r\n if (result.success) {\r\n var cacheObj = {\r\n key,\r\n seconds: 24 * 60 * 60,\r\n value: result.data.items\r\n }\r\n\r\n dispatch('cache/set', cacheObj, { root: true })\r\n commit(KEYS.SetForms, cacheObj.value)\r\n }\r\n },\r\n\r\n async refreshSystemForms({ dispatch, commit, state }, options) {\r\n options = _.extend({ force: false }, options)\r\n\r\n var key = 'forms.system-forms'\r\n\r\n if (options.force !== true) {\r\n var cached = await dispatch('cache/get', key, { root: true })\r\n if (cached != null) {\r\n commit(KEYS.SetSystemForms, cached)\r\n return\r\n }\r\n }\r\n\r\n var result = await post(Endpoints.getUrl('general.system-forms'))\r\n if (result.success) {\r\n var cacheObj = {\r\n key,\r\n seconds: 24 * 60 * 60,\r\n value: result.data.items\r\n }\r\n\r\n dispatch('cache/set', cacheObj, { root: true })\r\n commit(KEYS.SetSystemForms, cacheObj.value)\r\n }\r\n },\r\n\r\n set({ commit }, list) {\r\n commit(KEYS.SetForms, list)\r\n },\r\n\r\n clear({ commit }) {\r\n commit(KEYS.Clear)\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.forms\r\n },\r\n findFormByKey: state => key => {\r\n return _.head(state.forms.filter(item => item.key === key))\r\n },\r\n findSystemFormByKey: state => name => {\r\n return _.head(state.systemForms.filter(item => item.name === name))\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import _ from 'lodash'\r\n\r\nexport const keys = {\r\n tableConfigs: {\r\n add: 'TABLE_CONFIG_ADD'\r\n },\r\n tables: {\r\n add: 'TABLES_ADD',\r\n addRange: 'TABLES_ADDRANGE',\r\n remove: 'TABLES_REMOVE',\r\n clear: 'TABLES_CLEAR'\r\n },\r\n objects: {\r\n add: 'OBJECTS_ADD',\r\n remove: 'OBJECTS_REMOVE',\r\n clear: 'OBJECTS_CLEAR'\r\n }\r\n}\r\nexport const state = {\r\n tableConfigs: [],\r\n tables: [],\r\n objects: []\r\n}\r\nexport const mutations = {\r\n [keys.tableConfigs.add](state, table) {\r\n let foundTable = _.head(state.tables.filter(x => x.stateUID === table.stateUID))\r\n if (!foundTable) {\r\n foundTable = _.extend({\r\n stateUID: null,\r\n row_IDKey: 'id',\r\n items: []\r\n }, table)\r\n\r\n state.tables.push(foundTable)\r\n } else {\r\n foundTable = _.extend(foundTable, table)\r\n }\r\n },\r\n\r\n [keys.tables.add](state, { stateUID, item }) {\r\n const table = _.head(state.tables.filter(x => x.stateUID === stateUID))\r\n if (table) {\r\n for (let i = 0; i < table.items.length; i++) {\r\n if (_.get(table.items[i], table.row_IDKey) === _.get(item, table.row_IDKey)) {\r\n // already added\r\n return\r\n }\r\n }\r\n\r\n table.items.push(item)\r\n } else {\r\n console.warn(`ERROR: TABLE NOT FOUND. Unable to add item to table '${stateUID}'.`, item)\r\n }\r\n },\r\n [keys.tables.addRange](state, { stateUID, items }) {\r\n const table = _.head(state.tables.filter(x => x.stateUID === stateUID))\r\n if (table) {\r\n const idKey = table.row_IDKey\r\n const addedItems = table.items.filter(current => items.findIndex(item => current[idKey] === item[idKey]) > -1)\r\n const newItems = items.filter(y => addedItems.findIndex(x => x[idKey] === y[idKey]) === -1)\r\n\r\n table.items.push(...newItems)\r\n } else {\r\n console.warn(`ERROR: TABLE NOT FOUND. Unable to add items to table '${stateUID}'.`)\r\n }\r\n },\r\n [keys.tables.remove](state, { stateUID, item }) {\r\n const table = _.head(state.tables.filter(x => x.stateUID === stateUID))\r\n if (table) {\r\n const index = table.items.indexOf(item)\r\n if (index > -1) {\r\n table.items.splice(index, 1)\r\n } else {\r\n console.warn(`ERROR: TABLE NOT FOUND. Unable to delete item from table '${stateUID}'.`, item)\r\n }\r\n }\r\n },\r\n [keys.tables.clear](state, stateUID) {\r\n const table = _.head(state.tables.filter(x => x.stateUID === stateUID))\r\n if (table) {\r\n table.items = []\r\n } else {\r\n console.warn(`ERROR: TABLE NOT FOUND. Unable to clear the table '${stateUID}'.`)\r\n }\r\n },\r\n\r\n [keys.objects.add](state, { key, value }) {\r\n const found = state.objects.filter(x => x.key === key)\r\n for (let i = 0; i < found.length; i++) {\r\n state.objects.splice(i, 1)\r\n }\r\n\r\n state.objects.push({ key, value })\r\n },\r\n [keys.objects.remove](state, key) {\r\n const found = state.objects.filter(x => x.key === key)\r\n for (let i = 0; i < found.length; i++) {\r\n state.objects.splice(i, 1)\r\n }\r\n },\r\n [keys.objects.clear](state) {\r\n state.objects = []\r\n }\r\n}\r\nexport const actions = {\r\n configTable({ commit }, table) {\r\n commit(keys.tableConfigs.add, table)\r\n },\r\n\r\n addTableItem({ commit }, { stateUID, items }) {\r\n commit(keys.tables.add, { stateUID, items })\r\n },\r\n addTableItemRange({ commit }, { stateUID, items }) {\r\n commit(keys.tables.addRange, { stateUID, items: items })\r\n },\r\n removeItemFromTable({ commit }, { stateUID, item }) {\r\n commit(keys.tables.remove, { stateUID, item })\r\n },\r\n clearItemsInTable({ commit }, stateUID) {\r\n commit(keys.tables.clear, stateUID)\r\n },\r\n\r\n addObject({ commit }, { key, value }) {\r\n commit(keys.objects.add, { key, value })\r\n },\r\n removeObject({ commit }, key) {\r\n commit(keys.objects.remove, key)\r\n },\r\n clearObjects({ commit }) {\r\n commit(keys.objects.clear)\r\n }\r\n}\r\nexport const getters = {\r\n getItemsInTable: state => stateUID => (_.head(state.tables.filter(x => x.stateUID === stateUID)) || {}).items,\r\n getObject: state => key => _.head(state.objects.filter(x => x.key === key)),\r\n clipboard: state => {\r\n const tableConfigs = state.tableConfigs.map(item => ({ type: 'tableConfig', item }))\r\n const tables = state.tables.map(item => ({ type: 'table', item }))\r\n const objects = state.objects.map(item => ({ type: 'object', item }))\r\n\r\n return [...tableConfigs, ...tables, ...objects]\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nconst UNCHANGED = 'unchanged'\r\n\r\nconst Keys = {\r\n ADD_BANKS: 'add_banks',\r\n SET_ALL_AS_UNCHANGED: 'set_all_as_unchanged',\r\n CLEAR: 'clear'\r\n}\r\n\r\nexport const state = {\r\n banks: []\r\n}\r\nexport const mutations = {\r\n [Keys.ADD_BANKS](state, banks) {\r\n if (!banks || !banks.length) {\r\n return\r\n }\r\n\r\n state.banks = banks\r\n },\r\n\r\n [Keys.SET_ALL_AS_UNCHANGED](state) {\r\n for (let bank of state.banks) {\r\n bank.rowState = UNCHANGED\r\n }\r\n },\r\n\r\n [Keys.CLEAR](state) {\r\n state.banks = []\r\n }\r\n}\r\nexport const actions = {\r\n async refresh({ dispatch, commit, state }, options) {\r\n options = _.extend({ force: false }, options)\r\n\r\n // clear\r\n commit(Keys.CLEAR)\r\n\r\n var key = 'data-banks'\r\n\r\n if (options.force !== true) {\r\n var cached = await dispatch('cache/get', key, { root: true })\r\n if (cached != null) {\r\n commit(Keys.ADD_BANKS, cached)\r\n return\r\n }\r\n }\r\n\r\n var result = await post(Endpoints.getUrl('bank.list'))\r\n if (result.success) {\r\n var cacheObj = {\r\n key,\r\n seconds: 24 * 60 * 60,\r\n value: result.data.items\r\n }\r\n\r\n dispatch('cache/set', cacheObj, { root: true })\r\n commit(Keys.ADD_BANKS, cacheObj.value)\r\n }\r\n },\r\n\r\n async modify({ dispatch, commit, state }, banks) {\r\n commit(Keys.ADD_BANKS, banks)\r\n\r\n let updates = state.banks.filter(x => x.rowState !== UNCHANGED).map(x=>{\r\n delete x.code\r\n return{\r\n ...x\r\n }\r\n })\r\n let result = await post(Endpoints.getUrl('bank.modify'), { items: updates })\r\n if (result.success) {\r\n commit(Keys.SET_ALL_AS_UNCHANGED)\r\n dispatch('socket/broadcastRefresh', 'Bank', { root: true })\r\n }\r\n },\r\n\r\n clear({ commit }) {\r\n commit(Keys.CLEAR)\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.banks\r\n },\r\n getById: state => id => {\r\n return _.head(state.banks.filter(x => x.id === id))\r\n },\r\n derties: state => {\r\n return state.banks.filter(item => item.rowState !== UNCHANGED)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { getAxios } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport qs from 'querystring'\r\n\r\nexport const KEYS = {\r\n CLEAR: 'CLEAR_USER_AUTH',\r\n CLEARALL: 'CLEAR_ALL',\r\n CLEARCUSTOMER: 'CLEAR_CUSTOMER',\r\n SET: 'SET_USER_AUTH',\r\n ADD_FISCAL: 'setUserCurrentFiscal',\r\n ADD_COMPANY: 'setUserCurrentCompany',\r\n ADD_CUSTOMER: 'setUserCurrentCustomer',\r\n ADD_CUSTOMERCODE: 'setUserCurrentCustomerCode',\r\n ADD_REVIEWMODEDATA: 'setReviewModeData',\r\n ADD_WORKSHOP: 'setUserCurrentWorkshop',\r\n ADD_SALARYPERIOD: 'setUserCurrentSalaryPeriod',\r\n}\r\n\r\nexport const state = {\r\n user: null,\r\n fiscalId: null,\r\n companyId: null,\r\n customerId: null,\r\n customerCode: null,\r\n reviewModeData: null,\r\n workshopId: null,\r\n salaryPeriodId: null,\r\n}\r\n\r\nexport const mutations = {\r\n [KEYS.CLEAR](state) {\r\n state.user = null\r\n },\r\n\r\n [KEYS.CLEARALL](state) {\r\n state.user = null\r\n state.fiscalId = null\r\n state.companyId = null\r\n state.customerId = null\r\n state.workshopId = null\r\n state.salaryPeriodId = null\r\n },\r\n\r\n [KEYS.CLEARCUSTOMER](state) {\r\n state.customerCode = null\r\n },\r\n\r\n [KEYS.SET](state, user) {\r\n state.user = user\r\n },\r\n\r\n [KEYS.ADD_FISCAL](state, id) {\r\n state.fiscalId = id\r\n },\r\n [KEYS.ADD_COMPANY](state, id) {\r\n state.companyId = id\r\n },\r\n [KEYS.ADD_CUSTOMER](state, id) {\r\n state.customerId = id\r\n },\r\n [KEYS.ADD_CUSTOMERCODE](state, code) {\r\n state.customerCode = code\r\n },\r\n [KEYS.ADD_REVIEWMODEDATA](state, mode) {\r\n state.reviewModeData = mode\r\n },\r\n [KEYS.ADD_WORKSHOP](state, id) {\r\n state.workshopId = id\r\n },\r\n [KEYS.ADD_SALARYPERIOD](state, id) {\r\n state.salaryPeriodId = id\r\n },\r\n}\r\n\r\nexport const remote = {\r\n login(payload, state) {\r\n let url = Endpoints.getUrl('token').address\r\n\r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n }\r\n }\r\n\r\n if (payload.fiscalId != null) config.headers['NIKAN_APP_FISCAL'] = payload.fiscalId\r\n if (payload.companyId != null) config.headers['NIKAN_APP_COMPANY'] = payload.companyId\r\n if (payload.customerId != null) config.headers['NIKAN_APP_CUSTOMER'] = payload.customerId\r\n if (payload.workshopId != null) config.headers['NIKAN_APP_WORKSHOP'] = payload.workshopId\r\n if (payload.salaryPeriodId != null) config.headers['NIKAN_APP_SALARYPERIOD'] = payload.salaryPeriodId\r\n config.headers['CCODE'] = state.customerCode\r\n\r\n return getAxios()\r\n .post(url, qs.stringify(payload), config)\r\n .then(result => {\r\n return result.data\r\n })\r\n }\r\n}\r\n\r\nexport const actions = {\r\n authenticateUser({ state, commit }, payload) {\r\n if (payload.username && payload.password || (payload.username && payload.username.startsWith('googletoken='))) {\r\n return remote.login(payload, state)\r\n .then(result => {\r\n commit(KEYS.SET, result)\r\n let adds = result.additional_data || {}\r\n\r\n commit(KEYS.ADD_FISCAL, adds['NIKAN_APP_FISCAL'])\r\n commit(KEYS.ADD_COMPANY, adds['NIKAN_APP_COMPANY'])\r\n commit(KEYS.ADD_CUSTOMER, adds['NIKAN_APP_CUSTOMER'])\r\n commit(KEYS.ADD_WORKSHOP, adds['NIKAN_APP_WORKSHOP'])\r\n commit(KEYS.ADD_SALARYPERIOD, adds['NIKAN_APP_SALARYPERIOD'])\r\n return result\r\n })\r\n } else {\r\n return Promise.reject(new Error('IncompleteFields'))\r\n }\r\n },\r\n clearUser({ commit }) {\r\n commit(KEYS.CLEAR)\r\n },\r\n clearAll({ commit }) {\r\n commit(KEYS.CLEARALL)\r\n },\r\n clearCustomer({ commit }) {\r\n commit(KEYS.CLEARCUSTOMER)\r\n },\r\n applyDetails({ commit }, payload) {\r\n let { user, fiscalId, companyId, customerId, customerCode, reviewModeData, workshopId, salaryPeriodId } = payload\r\n\r\n if (user)\r\n commit(KEYS.SET, user)\r\n if (fiscalId)\r\n commit(KEYS.ADD_FISCAL, fiscalId)\r\n if (companyId)\r\n commit(KEYS.ADD_COMPANY, companyId)\r\n if (customerId)\r\n commit(KEYS.ADD_CUSTOMER, customerId)\r\n if (customerCode)\r\n commit(KEYS.ADD_CUSTOMERCODE, customerCode)\r\n if (reviewModeData)\r\n commit(KEYS.ADD_REVIEWMODEDATA, reviewModeData)\r\n if (workshopId)\r\n commit(KEYS.ADD_WORKSHOP, workshopId)\r\n if (salaryPeriodId)\r\n commit(KEYS.ADD_SALARYPERIOD, salaryPeriodId)\r\n },\r\n makeReviewModeDataEmpty({ commit }) {\r\n commit(KEYS.ADD_REVIEWMODEDATA, null)\r\n },\r\n refresh({ commit }, payload) {\r\n commit(KEYS.SET, payload.user)\r\n commit(KEYS.ADD_FISCAL, payload.fiscalId)\r\n }\r\n}\r\n\r\nexport const getters = {\r\n currentUser: state => state.user,\r\n currentUserDetails: state => {\r\n return {\r\n user: state.user,\r\n fiscalId: state.fiscalId,\r\n fiscalPeriodId: state.fiscalId,\r\n companyId: state.companyId,\r\n customerId: state.customerId,\r\n customerCode: state.customerCode,\r\n reviewModeData: state.reviewModeData,\r\n workshopId: state.workshopId,\r\n salaryPeriodId: state.salaryPeriodId,\r\n }\r\n },\r\n reviewModeData: state => state.reviewModeData,\r\n hasFiscal: state => state.user != null && state.fiscalId != null,\r\n hasCompany: state => state.user != null && state.companyId != null,\r\n hasCustomer: state => state.user != null && state.customerId != null,\r\n hasWorkshop: state => state.user != null && state.workshopId != null,\r\n hasSalaryPeriod: state => state.user != null && state.salaryPeriodId != null\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport _ from 'lodash'\r\n\r\nconst KEYS = {\r\n REPLACE_ALL: 'replaceAll'\r\n}\r\n\r\nexport const state = {\r\n items: [],\r\n todayRates: []\r\n}\r\n\r\nexport const mutations = {\r\n [KEYS.REPLACE_ALL](state, items) {\r\n state.items = [].concat(items)\r\n }\r\n}\r\n\r\nexport const actions = {\r\n refresh({ state, commit }, options) {\r\n return new Promise((resolve, reject) => {\r\n options = _.merge({ force: false }, options)\r\n\r\n if (options.force !== true) {\r\n if (state.items.length) {\r\n resolve(state.items)\r\n return\r\n }\r\n }\r\n\r\n post(Endpoints.getUrl('companies.getCurrencies'), { preventConcurrent: false })\r\n .then(result => {\r\n if (result.success) {\r\n commit(KEYS.REPLACE_ALL, result.data.items)\r\n resolve(result.data)\r\n }\r\n })\r\n .catch(error => reject(error))\r\n })\r\n },\r\n refreshTodayRates({ state, commit }) {\r\n post(Endpoints.getUrl('general.get-today'), null, null, { preventConcurrent: false })\r\n .then(today => {\r\n var request = {\r\n date: `${today.data.gregorianYear}-${today.data.gregorianMonth}-${today.data.gregorianDay}`\r\n }\r\n post(Endpoints.getUrl('currencyRate.list'), request, null, { preventConcurrent: false })\r\n .then(result => {\r\n state.todayRates = result.data.items\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport const getters = {\r\n companyCurrencies: state => state.items,\r\n todayRates: state => state.todayRates,\r\n hasMultiCurrency: state => state.items.filter((x) => x.isEnabled).length > 1,\r\n getCurrency: state => (id) => {\r\n return state.items.find(x => x.id === id)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nconst Keys = {\r\n SET: 'set_props',\r\n CLEAR: 'clear_all'\r\n}\r\n\r\nexport const state = {\r\n properties: []\r\n}\r\nexport const mutations = {\r\n [Keys.SET](state, items) {\r\n state.properties = [].concat(items)\r\n },\r\n\r\n [Keys.CLEAR](state) {\r\n state.properties = []\r\n }\r\n}\r\nexport const actions = {\r\n refresh({ commit }, options) {\r\n options = _.extend({ force: false }, options)\r\n\r\n return post(Endpoints.getUrl('general.getAllProperties'))\r\n .then(result => {\r\n commit(Keys.SET, result.data.items)\r\n })\r\n },\r\n clear({ commit }) {\r\n commit(Keys.CLEAR)\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.properties\r\n },\r\n getById: state => id => {\r\n return _.head(state.properties.filter(x => x.id === id))\r\n },\r\n getByKey: state => key => {\r\n return _.head(state.properties.filter(x => x.key === key))\r\n },\r\n getByName: state => name => {\r\n return _.head(state.properties.filter(x => x.name === name))\r\n },\r\n getByGroup: state => groupName => {\r\n return state.properties.filter(x => x.group === groupName)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nconst Keys = {\r\n SET: 'set_items',\r\n CLEAR: 'clear_all'\r\n}\r\n\r\nexport const state = {\r\n floatings: []\r\n}\r\nexport const mutations = {\r\n [Keys.SET](state, items) {\r\n state.floatings = [].concat(items)\r\n },\r\n\r\n [Keys.CLEAR](state) {\r\n state.floatings = []\r\n }\r\n}\r\nexport const actions = {\r\n refresh({ commit }, options) {\r\n options = _.extend({ force: false }, options)\r\n\r\n return post(Endpoints.getUrl('sale.product.floating.list'))\r\n .then(result => {\r\n commit(Keys.SET, result.data.items)\r\n })\r\n },\r\n clear({ commit }) {\r\n commit(Keys.CLEAR)\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.floatings.filter(x => x.isEnabled === true)\r\n },\r\n selectiveValue: state => {\r\n return state.floatings.filter(x => x.valueType === 'Selective')\r\n },\r\n allWithDisableds: state => id => {\r\n return state.floatings\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nconst UNCHANGED = 'unchanged'\r\n\r\nconst Keys = {\r\n ADD_WAREHOUSES: 'add_warehouses',\r\n SET_ALL_AS_UNCHANGED: 'set_all_as_unchanged',\r\n CLEAR: 'clear'\r\n}\r\n\r\nexport const state = {\r\n warehouses: []\r\n}\r\nexport const mutations = {\r\n [Keys.ADD_WAREHOUSES](state, warehouses) {\r\n if (!warehouses || !warehouses.length) {\r\n return\r\n }\r\n\r\n state.warehouses = warehouses\r\n },\r\n\r\n [Keys.SET_ALL_AS_UNCHANGED](state) {\r\n for (warehouse in state.warehouse) {\r\n warehouse.rowState = UNCHANGED\r\n }\r\n },\r\n\r\n [Keys.CLEAR](state) {\r\n state.warehouses = []\r\n }\r\n}\r\nexport const actions = {\r\n async refresh({ dispatch, commit, state }, options) {\r\n options = _.extend({ force: false }, options)\r\n\r\n // clear\r\n commit(Keys.CLEAR)\r\n\r\n var key = 'data-warehouses'\r\n\r\n if (options.force !== true) {\r\n var cached = await dispatch('cache/get', key, { root: true })\r\n if (cached != null) {\r\n commit(Keys.ADD_WAREHOUSES, cached)\r\n return\r\n }\r\n }\r\n\r\n var result = await post(Endpoints.getUrl('sale.warehouse.list'))\r\n if (result.success) {\r\n var cacheObj = {\r\n key,\r\n seconds: 24 * 60 * 60,\r\n value: result.data.items\r\n }\r\n\r\n dispatch('cache/set', cacheObj, { root: true })\r\n commit(Keys.ADD_WAREHOUSES, cacheObj.value)\r\n }\r\n },\r\n\r\n async modify({ dispatch, commit, state }, warehouses) {\r\n warehouses = warehouses.filter(x => x.rowState !== UNCHANGED)\r\n commit(Keys.ADD_WAREHOUSES, warehouses)\r\n\r\n let updateds = state.warehouses.filter(x => x.rowState !== UNCHANGED)\r\n let result = await post(Endpoints.getUrl('sale.warehouse.modify'), { items: updateds })\r\n if (result.success) {\r\n commit(Keys.SET_ALL_AS_UNCHANGED)\r\n dispatch('socket/broadcastRefresh', 'Warehouses', { root: true })\r\n }\r\n },\r\n\r\n clear({ commit }) {\r\n commit(Keys.CLEAR)\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.warehouses\r\n },\r\n getById: state => id => {\r\n return _.head(state.warehouses.filter(x => x.id === id))\r\n },\r\n derties: state => {\r\n return state.warehouses.filter(item => item.rowState !== UNCHANGED)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nconst UNCHANGED = 'unchanged'\r\n\r\nexport const state = {\r\n fiscalPeriods: []\r\n}\r\nexport const mutations = {\r\n prepare(state, list) {\r\n if (list && Array.isArray(list)) {\r\n state.fiscalPeriods = list\r\n } else {\r\n state.fiscalPeriods = []\r\n }\r\n },\r\n clear(state) {\r\n state.fiscalPeriods = []\r\n }\r\n}\r\nexport const actions = {\r\n async refresh({ dispatch, commit, state }, options) {\r\n options = _.merge({ force: false }, options)\r\n\r\n // clear\r\n commit('clear')\r\n\r\n var result = await post(Endpoints.getUrl('fiscalPeriod.listAll'))\r\n if (result.success) {\r\n commit('prepare', result.data.items)\r\n }\r\n },\r\n\r\n clear({ commit }) {\r\n commit('clear')\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.fiscalPeriods\r\n },\r\n getById: state => id => {\r\n return _.head(state.fiscalPeriods.filter(x => x.id === id))\r\n },\r\n getByCompanyId: (state, getters, rootState, rootGetters) => companyId => {\r\n if (!companyId)\r\n companyId = rootGetters['appContext/getCompany'].id\r\n\r\n return state.fiscalPeriods.filter(x => x.companyId === companyId)\r\n },\r\n derties: state => {\r\n return state.fiscalPeriods.filter(item => item.rowState !== UNCHANGED)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nconst KEYS = {\r\n SetFormItems: 'setFormItems',\r\n AddItemToForm: 'addItemToForm',\r\n DeleteFormItem: 'deleteFormItem',\r\n}\r\nconst state = {\r\n forms: []\r\n}\r\n\r\nexport const mutations = {\r\n [KEYS.SetFormItems](state, data) {\r\n state.forms[data.form] = data.items\r\n },\r\n [KEYS.AddItemToForm](state, params) {\r\n const { form, newItem } = params\r\n let index = state.forms[form].findIndex(x => x.id === newItem.id)\r\n if (index > -1) {\r\n state.forms[form][index] = newItem\r\n }\r\n else {\r\n state.forms[form].push(newItem)\r\n }\r\n },\r\n [KEYS.DeleteFormItem](state, params) {\r\n const { form, printId } = params\r\n state.forms[form] = state.forms[form].filter(x => x.id !== printId)\r\n },\r\n}\r\n\r\nexport const actions = {\r\n async getByForm({ dispatch, commit, state }, options) {\r\n options.force = !!options.force\r\n if (state.forms[options.form] && !options.force) {\r\n return state.forms[options.form]\r\n }\r\n var result = await post(Endpoints.getUrl('print.list'), { form: options.form }, null, { preventConcurrent: false })\r\n if (result.success) {\r\n commit(KEYS.SetFormItems, { form: options.form, items: result.data.items })\r\n }\r\n return state.forms[options.form]\r\n },\r\n async getPrintById({ dispatch, commit, state }, params) {\r\n const { printId, form } = params\r\n if (state.forms[form])\r\n var foundPrint = state.forms[form].find(x => x.id === printId)\r\n // else {\r\n // dispatch('getByForm')({form,force:true})\r\n // }\r\n\r\n if (foundPrint && foundPrint.options)\r\n return foundPrint\r\n else {\r\n var result = await post(Endpoints.getUrl('print.get'), { id: printId }, null, { preventConcurrent: false })\r\n if (result.success) {\r\n const printData = result.data\r\n\r\n if (foundPrint) {\r\n printData.canDelete = foundPrint.canDelete\r\n printData.canEdit = foundPrint.canEdit\r\n }\r\n\r\n commit(KEYS.AddItemToForm, { ...params, newItem: printData })\r\n\r\n return result.data\r\n }\r\n }\r\n },\r\n deletePrintItem({ dispatch, commit, state }, params) {\r\n\r\n commit(KEYS.DeleteFormItem, params)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport _ from 'lodash'\r\n\r\n\r\nexport const state = {\r\n frequentDescriptionsList: [],\r\n fetched: false\r\n}\r\n\r\nexport const mutations = {\r\n set(state, frequentDescriptionsList) {\r\n state.frequentDescriptionsList = [].concat(frequentDescriptionsList)\r\n state.fetched = true\r\n },\r\n}\r\n\r\nexport const actions = {\r\n async refresh({ state, commit }, options) {\r\n options = _.merge({ force: false }, options)\r\n if (options.force || !state.fetched) {\r\n state.fetched = true\r\n await post(Endpoints.getUrl('frequentDescriptions.list'), null, null, { preventCuncurrent: true })\r\n .then(data => {\r\n commit('set', data.data.items)\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport const getters = {\r\n all: state => {\r\n return state.frequentDescriptionsList\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport _ from 'lodash'\r\n\r\n\r\nexport const state = {\r\n changelogs: []\r\n}\r\n\r\nexport const mutations = {\r\n fetchChangelogs(state, changelogs) {\r\n state.changelogs = changelogs\r\n },\r\n}\r\n\r\nexport const actions = {\r\n async fetchChangelogs({ commit }, options) {\r\n\r\n let request = {\r\n entityId: options.entityId,\r\n entityType: options.entityType,\r\n userId: options.userId,\r\n }\r\n\r\n if (options.companyId) {\r\n request.companyId = options.companyId\r\n }\r\n\r\n if (options.startDate) {\r\n request.startDate = options.startDate\r\n }\r\n\r\n if (options.endDate) {\r\n request.endDate = options.endDate\r\n }\r\n\r\n if (options.dateRange) {\r\n request.dateRange = options.dateRange\r\n }\r\n\r\n await post(Endpoints.getUrl('changelog.list'), request)\r\n .then(changelogs => {\r\n commit('fetchChangelogs', changelogs.data.items)\r\n }).catch((err) => console.log(err))\r\n },\r\n}\r\n\r\nexport const getters = {\r\n changelogs: state => {\r\n\r\n return state.changelogs\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nconst UNCHANGED = 'unchanged'\r\n\r\nconst Keys = {\r\n ADD_SCHEMAS: 'add_schemas',\r\n SET_ALL_AS_UNCHANGED: 'set_all_as_unchanged',\r\n CLEAR: 'clear'\r\n}\r\n\r\nexport const state = {\r\n schemas: []\r\n}\r\nexport const mutations = {\r\n [Keys.ADD_SCHEMAS](state, schemas) {\r\n if (!schemas || !schemas.length) {\r\n return\r\n }\r\n\r\n state.schemas = schemas\r\n },\r\n\r\n [Keys.SET_ALL_AS_UNCHANGED](state) {\r\n for (let schema of state.schemas) {\r\n schema.rowState = UNCHANGED\r\n }\r\n },\r\n\r\n [Keys.CLEAR](state) {\r\n state.schemas = []\r\n }\r\n}\r\nexport const actions = {\r\n async getBySubject({ dispatch, commit, state }, subject) {\r\n if (state.schemas.length == 0) {\r\n await dispatch('refresh', { force: true })\r\n }\r\n\r\n return state.schemas.filter(item => item.subject === subject)\r\n },\r\n\r\n async refresh({ dispatch, commit, state }, options) {\r\n options = _.extend({ force: false }, options)\r\n\r\n // clear\r\n commit(Keys.CLEAR)\r\n\r\n var key = 'data-metaDataSchemas'\r\n\r\n if (options.force !== true) {\r\n var cached = await dispatch('cache/get', key, { root: true })\r\n if (cached != null) {\r\n commit(Keys.ADD_SCHEMAS, cached)\r\n return\r\n }\r\n }\r\n\r\n var result = await post(Endpoints.getUrl('metadata.list'), null, null, { preventConcurrent: false })\r\n if (result.success) {\r\n var cacheObj = {\r\n key,\r\n seconds: 24 * 60 * 60,\r\n value: result.data.items\r\n }\r\n\r\n dispatch('cache/set', cacheObj, { root: true })\r\n commit(Keys.ADD_SCHEMAS, cacheObj.value)\r\n }\r\n },\r\n\r\n async modify({ dispatch, commit, state }, schemas) {\r\n let result = await post(Endpoints.getUrl('metadata.modify'), { items: schemas })\r\n if (result.success) {\r\n await dispatch('refresh', { force: true })\r\n }\r\n },\r\n\r\n clear({ commit }) {\r\n commit(Keys.CLEAR)\r\n }\r\n}\r\nexport const getters = {\r\n schemas: state => {\r\n return state.schemas\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import _ from 'lodash'\r\n\r\nconst Keys = {\r\n ADD: 'add',\r\n REMOVE: 'remove'\r\n}\r\n\r\nexport const state = {\r\n requests: []\r\n}\r\nexport const mutations = {\r\n [Keys.ADD](state, url) {\r\n let index = state.requests.indexOf(url)\r\n if (index > -1)\r\n return\r\n state.requests.push(url)\r\n },\r\n\r\n [Keys.REMOVE](state, url) {\r\n if (state.requests.indexOf(url) > -1)\r\n state.requests.splice(state.requests.indexOf(url), 1)\r\n }\r\n}\r\nexport const actions = {\r\n add({ commit }, url) {\r\n commit(Keys.ADD, url)\r\n },\r\n\r\n remove({ commit }, url) {\r\n commit(Keys.REMOVE, url)\r\n }\r\n}\r\nexport const getters = {\r\n get: state => url => {\r\n for (let index = 0; index < state.requests.length; index++) {\r\n if (state.requests[index] == url)\r\n return state.requests[index]\r\n }\r\n return null\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport _ from 'lodash'\r\n\r\n\r\nexport const state = {\r\n items: [],\r\n fetched: false\r\n}\r\n\r\nexport const mutations = {\r\n set(state, items) {\r\n state.items = [].concat(items)\r\n state.fetched = true\r\n },\r\n}\r\n\r\nexport const actions = {\r\n async refresh({ state, commit }, options) {\r\n options = _.merge({ force: false }, options)\r\n if (options.force || !state.fetched) {\r\n await post(Endpoints.getUrl('sale.product.price.level.get-list-dynamic'))\r\n .then(data => {\r\n commit('set', data.data.items)\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport const getters = {\r\n all: state => {\r\n return state.items\r\n },\r\n byId: state => id => {\r\n return state.items.find(item => item.id === id)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport _ from 'lodash'\r\n\r\n\r\nexport const state = {\r\n items: [],\r\n fetched: false\r\n}\r\n\r\nexport const mutations = {\r\n set(state, items) {\r\n state.items = [].concat(items)\r\n state.fetched = true\r\n },\r\n}\r\n\r\nexport const actions = {\r\n async refresh({ state, commit }, options) {\r\n options = _.merge({ force: false }, options)\r\n if (options.force || !state.fetched) {\r\n await post(Endpoints.getUrl('measureunit.get-list-dynamic'))\r\n .then(data => {\r\n commit('set', data.data.items)\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport const getters = {\r\n all: state => {\r\n return state.items\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport _ from 'lodash'\r\n\r\n\r\nexport const state = {\r\n items: [],\r\n fetched: false\r\n}\r\n\r\nexport const mutations = {\r\n set(state, items) {\r\n state.items = [].concat(items)\r\n state.fetched = true\r\n },\r\n}\r\n\r\nexport const actions = {\r\n async refresh({ state, commit }, options) {\r\n options = _.merge({ force: false }, options)\r\n if (options.force || !state.fetched) {\r\n await post(Endpoints.getUrl('sale.product.group.get-list'))\r\n .then(data => {\r\n commit('set', data.data.items)\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport const getters = {\r\n all: state => {\r\n return state.items\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport _ from 'lodash'\r\n\r\n\r\nexport const state = {\r\n items: [],\r\n fetched: false\r\n}\r\n\r\nexport const mutations = {\r\n set(state, items) {\r\n state.items = [].concat(items)\r\n state.fetched = true\r\n },\r\n}\r\n\r\nexport const actions = {\r\n async refresh({ state, commit }, options) {\r\n options = _.merge({ force: false }, options)\r\n if (options.force || !state.fetched) {\r\n await post(Endpoints.getUrl('sale.product.price.group.get-list'))\r\n .then(data => {\r\n commit('set', data.data.items)\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport const getters = {\r\n all: state => {\r\n return state.items\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import isEqual from 'lodash/isEqual'\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n codes: []\r\n },\r\n mutations: {\r\n itemNotExist(state, payload) {\r\n let index = state.codes.findIndex(x => x.form == payload.form && x.code == payload.code && isEqual(x.additionalBroadcastFields, payload.additionalBroadcastFields))\r\n if (index === -1) {\r\n state.codes.push(payload)\r\n }\r\n },\r\n itemExist(state, payload) {\r\n let index = state.codes.findIndex(x => x.form == payload.form && x.code == payload.code && isEqual(x.additionalBroadcastFields, payload.additionalBroadcastFields))\r\n if (index > -1) {\r\n state.codes.splice(index, 1)\r\n }\r\n },\r\n },\r\n actions: {\r\n clearFormCodes({ dispatch, commit, state, }) {\r\n state.codes = []\r\n },\r\n clearFormCodeByKey(state, key) {\r\n state.codes, findIndex(x => isEqual(x, key))\r\n }\r\n },\r\n getters: {\r\n isCodeInNotFoundArray: state => (form, code, additionalBroadcastFields) => {\r\n\r\n if (typeof code !== 'string')\r\n code = String(code)\r\n return state.codes.findIndex(x => x.form == form && x.code == code && isEqual(x.additionalBroadcastFields, additionalBroadcastFields)) > -1\r\n },\r\n },\r\n}","import Socket from '~/plugins/signalr'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n },\r\n actions: {\r\n broadcastItemNotExist({ dispatch, commit, state, rootGetters }, data) {\r\n Socket.invoke('BroadcastItemNotExist', data.form, data.code, data.additionalBroadcastFields || {}, rootGetters['useraccount/currentUserDetails'].fiscalId)\r\n .then(response => { }).catch(err => { console.log('BroadcastItemNotExist error:', err) })\r\n },\r\n broadcastItemExist({ dispatch, commit, state, rootGetters }, data) {\r\n return Socket.invoke('BroadcastItemExist', data.form, data.code, data.additionalBroadcastFields || {}, rootGetters['useraccount/currentUserDetails'].fiscalId)\r\n .catch(err => { console.log('BroadcastItemExist error:', err) })\r\n },\r\n broadcastRefresh({ dispatch, commit, state, rootGetters }, type) {\r\n Socket.invoke('BroadcastRefresh', type, rootGetters['useraccount/currentUserDetails'].fiscalId)\r\n .then(response => { }).catch(err => { console.log('BroadcastRefresh error:', err) })\r\n }\r\n }\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport _ from 'lodash'\r\n\r\n\r\nexport const state = {\r\n items: [],\r\n fetched: false\r\n}\r\n\r\nexport const mutations = {\r\n set(state, items) {\r\n state.items = [].concat(items)\r\n state.fetched = true\r\n },\r\n}\r\n\r\nexport const actions = {\r\n async refresh({ state, commit }, options) {\r\n options = _.merge({ force: false }, options)\r\n if (options.force || !state.fetched) {\r\n await post(Endpoints.getUrl('productClassification.list'))\r\n .then(data => {\r\n commit('set', data.data.items)\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport const getters = {\r\n all: state => {\r\n return state.items\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport _ from 'lodash'\r\n\r\n\r\nexport const state = {\r\n items: [],\r\n fetched: false\r\n}\r\n\r\nexport const mutations = {\r\n set(state, items) {\r\n state.items = [].concat(items)\r\n state.fetched = true\r\n },\r\n}\r\n\r\nexport const actions = {\r\n async refresh({ state, commit }, options) {\r\n options = _.merge({ force: false }, options)\r\n if (options.force || !state.fetched) {\r\n await post(Endpoints.getUrl('sale.factor.bunch.list'), {\r\n factorType: options.factorType,\r\n isActive: options.isActive,\r\n })\r\n .then(data => {\r\n commit('set', data.data.items)\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport const getters = {\r\n all: state => {\r\n return state.items\r\n },\r\n getByType: state => type => {\r\n return state.items.filter(x => x.factorType === type && x.isActive)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","export const state = {\r\n reportParameters: [],\r\n entitiesStructure:[]\r\n}\r\nexport const mutations = {\r\n removeParameter(state, payload) {\r\n let findIndex = state.reportParameters.findIndex(\r\n (p) => p.key === payload.key\r\n );\r\n if (findIndex > -1) \r\n state.reportParameters.splice(findIndex, 1);\r\n },\r\n saveOrUpdateParameter(state, payload) {\r\n let findIndex = state.reportParameters.findIndex(\r\n (p) => p.key === payload.key\r\n );\r\n if (findIndex > -1) \r\n state.reportParameters[findIndex] = payload\r\n else\r\n state.reportParameters.push(payload)\r\n },\r\n setReportParameters(state, payload) {\r\n state.reportParameters = payload\r\n },\r\n setEntitiesStructure(state, payload) {\r\n state.entitiesStructure = payload\r\n }\r\n}\r\nexport const actions = {\r\n removeParameter({ commit }, payload) {\r\n commit('removeParameter', payload)\r\n },\r\n saveOrUpdateParameter({commit}, payload){\r\n commit('saveOrUpdateParameter', payload)\r\n },\r\n setReportParameters({commit}, payload){\r\n commit('setReportParameters', payload)\r\n },\r\n setEntitiesStructure({commit}, payload){\r\n commit('setEntitiesStructure', payload)\r\n }\r\n}\r\nexport const getters = {\r\n entitiesStructure: state => {\r\n return state.entitiesStructure\r\n },\r\n reportParameters: state => {\r\n return state.reportParameters\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\n\r\nconst Keys = {\r\n ADD_USERS: 'add_users',\r\n CLEAR: 'clear'\r\n}\r\n\r\nexport const state = {\r\n onlineUsersGUID: []\r\n}\r\nexport const mutations = {\r\n [Keys.ADD_USERS](state, users) {\r\n if (!users || !users.length) {\r\n return\r\n }\r\n\r\n state.onlineUsersGUID = users\r\n },\r\n\r\n\r\n [Keys.CLEAR](state) {\r\n state.onlineUsersGUID = []\r\n }\r\n}\r\nexport const actions = {\r\n async refresh({ dispatch, commit, state }){\r\n let onlineUserIdList =await post(Endpoints.getUrl('user.online-list'), { },null,{preventConcurrent:false})\r\n // console.log('onlineUserIdList',onlineUserIdList)\r\n if(onlineUserIdList.success)\r\n commit(Keys.ADD_USERS,onlineUserIdList.data)\r\n },\r\n async getOnlineUserDetail({ dispatch, commit, state }, userIds) {\r\n\r\n // clear\r\n // commit(Keys.CLEAR)\r\n\r\n // var key = 'data-banks'\r\n\r\n // if (options.force !== true) {\r\n // var cached = await dispatch('cache/get', key, { root: true })\r\n // if (cached != null) {\r\n // commit(Keys.ADD_USERS, cached)\r\n // return\r\n // }\r\n // }\r\n\r\n // var result = await post(Endpoints.getUrl('bank.list'))\r\n\r\n let usersWithDetails =await post(Endpoints.getUrl('user.list'), { },null,{preventConcurrent:false})\r\n\r\n\r\n\r\n\r\n if (usersWithDetails.success) {\r\n // var cacheObj = {\r\n // key,\r\n // seconds: 24 * 60 * 60,\r\n // value: result.data.items\r\n // }\r\n //\r\n // dispatch('cache/set', cacheObj, { root: true })\r\n return usersWithDetails.data.items.filter(x=>state.onlineUsersGUID.some(y=>y==x.id))\r\n }\r\n },\r\n\r\n updateOnlineUsers({ commit },users) {\r\n commit(Keys.ADD_USERS,users)\r\n },\r\n clear({ commit }) {\r\n commit(Keys.CLEAR)\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.onlineUsersGUID\r\n },\r\n getById: state => id => {\r\n return state.onlineUsersGUID.find(x => x === id)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\nimport {convertDateToFromNow,convertDate} from '~/plugins/nikan-mixins'\r\nimport _ from \"lodash\";\r\n\r\nconst Keys = {\r\n ADD_NOTIFICATION: 'add_notification',\r\n ADD_NOTIFICATIONS: 'add_notifications',\r\n ADD_Users: 'add_users',\r\n UPDATE_NOTIFICATIONToSeen: 'update_notificationToSeen',\r\n REPLACE_NOTIFICATION: 'replace_notification',\r\n CLEAR: 'clear'\r\n}\r\n\r\nexport const state = {\r\n notifications: [],\r\n users: []\r\n}\r\nexport const mutations = {\r\n [Keys.ADD_NOTIFICATION](state, notification) {\r\n if (typeof notification == 'object') {\r\n state.notifications.push(notification)\r\n }\r\n },\r\n [Keys.ADD_NOTIFICATIONS](state, notifications) {\r\n if (Array.isArray(notifications)) {\r\n state.notifications = notifications.concat(state.notifications)\r\n }\r\n },\r\n [Keys.ADD_Users](state, users) {\r\n if (Array.isArray(users)) {\r\n state.users = users\r\n }\r\n\r\n },\r\n [Keys.UPDATE_NOTIFICATIONToSeen](state, notificationId) {\r\n state.notifications[state.notifications.findIndex(x => x.id == notificationId)].isSeen = true\r\n\r\n },\r\n [Keys.REPLACE_NOTIFICATION](state, notifications) {\r\n if (!notifications || !notifications.length) {\r\n return\r\n }\r\n state.notifications = notifications\r\n },\r\n\r\n\r\n [Keys.CLEAR](state) {\r\n state.notifications = []\r\n }\r\n}\r\nexport const actions = {\r\n async refresh({dispatch, commit, state}) {\r\n let notifications = await post(Endpoints.getUrl('notification.get'), {\"lastCount\": 10}, null, {preventConcurrent: false})\r\n if (notifications.success)\r\n dispatch('addNotifications', notifications.data.items)\r\n },\r\n makeNotificationSeen({dispatch, commit, state}, notificationIds) {\r\n if (notificationIds && notificationIds.length) {\r\n notificationIds.forEach(y => {\r\n commit(Keys.UPDATE_NOTIFICATIONToSeen, y)\r\n })\r\n return post(Endpoints.getUrl('notification.seen'), {notificationIds: notificationIds}, null, {preventConcurrent: false})\r\n }\r\n },\r\n addNotifications({dispatch, commit, state}, rowNotifications) {\r\n const icon = (part) => {\r\n switch (part) {\r\n case 'ReceiptHawala ':\r\n return \"fa-file\"\r\n case 'Factor':\r\n return \"fa-file\"\r\n case 'Chat':\r\n return \"fa-message\"\r\n case 4:\r\n return \"fa-message\"\r\n default:\r\n return \"\"\r\n }\r\n }\r\n if (Array.isArray(rowNotifications)) {\r\n let temp = rowNotifications.map(x => ({\r\n ...x,\r\n icon: icon(x.part),\r\n fromNow: convertDateToFromNow(x.date),\r\n faDate: convertDate(x.date),\r\n senderUser: state.users.find(y => y.id == x.senderUserId)\r\n })).sort((a, b) => {\r\n return new Date(b.date).getTime() - new Date(a.date).getTime();\r\n })\r\n commit(Keys.ADD_NOTIFICATIONS, temp)\r\n\r\n }\r\n\r\n\r\n },\r\n async getUsersForNotification({dispatch, commit, state}) {\r\n\r\n let usersWithDetails = await post(Endpoints.getUrl('user.list'), {}, null, {preventConcurrent: false})\r\n\r\n if (usersWithDetails.success) {\r\n commit(Keys.ADD_Users, usersWithDetails.data.items)\r\n return usersWithDetails.data.items\r\n }\r\n },\r\n\r\n async sendNotification({}, parentThis, senderId, receiverId) {\r\n const validateInputs = () => {\r\n let errors = []\r\n\r\n if (parentThis.localData.note.required && _.isEmpty(parentThis.localData.note.value))\r\n errors.push({\r\n key: '',\r\n error: parentThis.$t('msg.required', [parentThis.localData.note.name])\r\n })\r\n\r\n\r\n parentThis.validationToast(errors)\r\n return errors.length === 0\r\n }\r\n\r\n\r\n let url = Endpoints.getUrl('notification.create')\r\n\r\n\r\n let data = {\r\n \"notification\": {\r\n \"senderUserId\": parentThis.userDetail.id,\r\n \"reciverUserId\": parentThis.settings.receiverUser.id,\r\n \"description\": parentThis.localData.note.value,\r\n // \"tag\":'5dd1c9af-2b33-ed11-8c6d-20689d8178e6',\r\n \"part\": 'Chat' //1 reciptHavale 2factor 3chat 4info\r\n }\r\n }\r\n\r\n if (validateInputs()) {\r\n let wait = parentThis.$wait(parentThis.grandParent)\r\n await post(url, data)\r\n .then((response) => {\r\n wait.end()\r\n parentThis.$toast(parentThis.$t('notification.create-successful'), {type: 'success'})\r\n parentThis.resolve(response)\r\n })\r\n .catch(() => {\r\n wait.end()\r\n // this.$toast(this.$t('note.modify-fail'))\r\n })\r\n }\r\n },\r\n\r\n\r\n addNotification({dispatch, commit, state}, notification) {\r\n dispatch('addNotifications', [notification])\r\n },\r\n clear({commit}) {\r\n commit(Keys.CLEAR)\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.notifications\r\n },\r\n hasUnseen: state => {\r\n return state.notifications.some(x => !x.isSeen)\r\n },\r\n unseen: state => {\r\n return state.notifications.filter(x => !x.isSeen)\r\n },\r\n getById: state => id => {\r\n return state.notifications.find(x => x.id === id)\r\n }\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","export default {\r\n namespaced: true,\r\n state: {\r\n tabs: [],\r\n tab: null\r\n },\r\n mutations: {\r\n addTabToRecentTabs(state, tab) {\r\n tab.buttons = []\r\n\r\n state.tab = tab\r\n\r\n var index = state.tabs.findIndex(x => tab.id.includes(x.id)) // preventing allowMultiple tabs\r\n if (index === -1)\r\n state.tabs.push(tab)\r\n },\r\n },\r\n getters: {\r\n isTabInRecentTabs: state => (id) => {\r\n return state.codes.findIndex(x => x.id === id) > -1\r\n },\r\n getRecentTabs: state => {\r\n return state.tabs\r\n },\r\n getCurrentTab: state => {\r\n return state.tab\r\n }\r\n },\r\n}","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nexport const state = {\r\n workshops: []\r\n}\r\nexport const mutations = {\r\n prepare(state, list) {\r\n if (list && Array.isArray(list)) {\r\n state.workshops = list\r\n } else {\r\n state.workshops = []\r\n }\r\n },\r\n clear(state) {\r\n state.workshops = []\r\n }\r\n}\r\nexport const actions = {\r\n async refresh({ dispatch, commit, state }, options) {\r\n options = _.merge({ force: false }, options)\r\n\r\n // clear\r\n commit('clear')\r\n\r\n var result = await post(Endpoints.getUrl('workshop.list'))\r\n if (result.success) {\r\n commit('prepare', result.data.items)\r\n }\r\n },\r\n\r\n clear({ commit }) {\r\n commit('clear')\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.workshops\r\n },\r\n getById: state => id => {\r\n return _.head(state.workshops.filter(x => x.id === id))\r\n },\r\n getActives: state => {\r\n return state.workshops.filter(x => x.isActive)\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { post } from '~/plugins/nikan-api'\r\nimport _ from 'lodash'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nexport const state = {\r\n salaryPeriods: []\r\n}\r\nexport const mutations = {\r\n prepare(state, list) {\r\n if (list && Array.isArray(list)) {\r\n state.salaryPeriods = list\r\n } else {\r\n state.salaryPeriods = []\r\n }\r\n },\r\n clear(state) {\r\n state.salaryPeriods = []\r\n }\r\n}\r\nexport const actions = {\r\n async refresh({ dispatch, commit, state }, options) {\r\n options = _.merge({ force: false }, options)\r\n\r\n // clear\r\n commit('clear')\r\n\r\n var result = await post(Endpoints.getUrl('salaryPeriod.list'))\r\n if (result.success) {\r\n commit('prepare', result.data.items)\r\n }\r\n },\r\n\r\n clear({ commit }) {\r\n commit('clear')\r\n }\r\n}\r\nexport const getters = {\r\n all: state => {\r\n return state.salaryPeriods\r\n },\r\n getById: state => id => {\r\n return _.head(state.salaryPeriods.filter(x => x.id === id))\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","import { createStore } from 'vuex'\r\nimport VuexPersistence from 'vuex-persist'\r\nimport Cache from './cache.js'\r\nimport Accounts from './accounts.js'\r\nimport AutoAccounts from './auto-accounts.js'\r\nimport AppStates from './app-states.js'\r\nimport FloatingCenters from './floating-centers'\r\nimport FloatingCenterCategories from './floating-center-category'\r\nimport AppContext from './app-context'\r\nimport Forms from './forms'\r\nimport Clipboard from './clipboard'\r\nimport banks from './banks'\r\nimport UserAccounts from './useraccount'\r\nimport Currencies from './currencies'\r\nimport Properties from './properties'\r\nimport ProductFloatings from './product-floatings'\r\nimport Warehouses from './warehouses'\r\nimport FiscalPeriods from './fiscal-periods.js'\r\nimport ClientPrint from './client-print'\r\nimport FrequentDescriptions from './frequent-descriptions'\r\nimport ChangeLog from './change-log'\r\nimport MetaData from './meta-data'\r\nimport ConcurrentRequests from './concurrent-requests'\r\nimport ProductPriceLevels from './product-price-levels'\r\nimport ProductMeasureUnits from './product-measure-units'\r\nimport ProductGroups from './product-groups'\r\nimport ProductPriceGroups from './product-price-groups'\r\nimport FormCodes from './form-codes'\r\nimport Socket from './socket'\r\nimport ProductClassifications from './product-classifications'\r\nimport FactorBunches from './factor-bunches.js'\r\nimport QueryDesigner from './query-designer.js'\r\nimport OnlineUsers from './onlineUsers'\r\nimport Notifications from './notification'\r\nimport TabHistory from './tab-history'\r\nimport Workshops from './workshops'\r\nimport SalaryPeriods from './salary-periods'\r\n\r\nconst vuexLocal = new VuexPersistence({\r\n key: 'nikan-data',\r\n storage: window.localStorage,\r\n modules: ['cache', 'currencies', 'i18n', 'properties', 'productFloatings', 'AppStates']\r\n})\r\n\r\nconst vuexLocalAppStates = new VuexPersistence({\r\n key: 'nikan-app-states',\r\n storage: window.localStorage,\r\n modules: ['appStates']\r\n})\r\n\r\nconst vuexLocalUser = new VuexPersistence({\r\n key: 'nikan-user',\r\n storage: window.localStorage,\r\n modules: ['useraccount']\r\n})\r\n\r\n// TYPES\r\nconst MODAL_SHOW = 'MODAL.SHOW'\r\nconst MODAL_CLOSE = 'MODAL.CLOSE'\r\nconst UID = 'GLOBAL.UID'\r\nconst DIALOG_SHOW = 'DIALOG.SHOW'\r\nconst DIALOG_CLOSE = 'DIALOG.CLOSE'\r\nconst DIALOG_CLOSE_All = 'DIALOG.CLOSEAll'\r\nconst MODAL_CLOSE_All = 'MODAL.CLOSEALL'\r\nconst MENU_SOW = 'MENU.SHOW'\r\n\r\n// STATE\r\nconst state = {\r\n modals: [],\r\n messages: [],\r\n lastId: 0,\r\n menuStatus: true,\r\n}\r\n\r\n// MUTATIONS\r\nconst mutations = {\r\n [MENU_SOW](state, status) {\r\n state.menuStatus = status\r\n },\r\n [MODAL_SHOW](state, modal) {\r\n state.modals.push(modal)\r\n },\r\n [MODAL_CLOSE](state) {\r\n state.modals.pop()\r\n },\r\n [UID](state) {\r\n state.lastId += 1\r\n },\r\n [DIALOG_SHOW](state, message) {\r\n state.messages.push(message)\r\n },\r\n [DIALOG_CLOSE](state) {\r\n state.messages.shift()\r\n },\r\n [DIALOG_CLOSE_All](state) {\r\n state.messages = []\r\n },\r\n [MODAL_CLOSE_All](state) {\r\n state.modals = []\r\n }\r\n}\r\n\r\n// ACTIONS\r\nconst actions = ({\r\n hide_show({ commit }, status) {\r\n commit(MENU_SOW, status)\r\n },\r\n addModal({ commit, state }, modal) {\r\n let uniqueUIDS = state.modals.map(x => x.component.modal.stateUID)\r\n if (uniqueUIDS.indexOf(modal.component.modal.stateUID) === -1)\r\n commit(MODAL_SHOW, modal)\r\n },\r\n removeModal({ commit }) {\r\n commit(MODAL_CLOSE)\r\n },\r\n incrementUID({ commit, state }, callback) {\r\n commit(UID)\r\n if (callback) {\r\n callback(state.lastId)\r\n }\r\n },\r\n addMessage({ commit }, message) {\r\n commit(DIALOG_SHOW, message)\r\n },\r\n removeMessage({ commit }) {\r\n commit(DIALOG_CLOSE)\r\n },\r\n removeAllMessage({ commit }) {\r\n commit(DIALOG_CLOSE_All)\r\n },\r\n removeAllModals({ commit }) {\r\n commit(MODAL_CLOSE_All)\r\n }\r\n})\r\n\r\nconst getters = {\r\n menuStatus: state => {\r\n return state.menuStatus\r\n },\r\n}\r\n\r\nconst modules = {\r\n cache: Cache,\r\n accounts: Accounts,\r\n autoAccounts: AutoAccounts,\r\n appStates: AppStates,\r\n floatingCenters: FloatingCenters,\r\n forms: Forms,\r\n appContext: AppContext,\r\n clipboard: Clipboard,\r\n floatingCenterCategories: FloatingCenterCategories,\r\n banks: banks,\r\n useraccount: UserAccounts,\r\n currencies: Currencies,\r\n properties: Properties,\r\n productFloatings: ProductFloatings,\r\n warehouses: Warehouses,\r\n fiscalPeriods: FiscalPeriods,\r\n clientprint: ClientPrint,\r\n frequentdescriptions: FrequentDescriptions,\r\n changelog: ChangeLog,\r\n metadata: MetaData,\r\n concurrentRequests: ConcurrentRequests,\r\n productPriceLevels: ProductPriceLevels,\r\n productMeasureUnits: ProductMeasureUnits,\r\n productGroups: ProductGroups,\r\n productPriceGroups: ProductPriceGroups,\r\n formCodes: FormCodes,\r\n socket: Socket,\r\n productClassifications: ProductClassifications,\r\n factorBunches: FactorBunches,\r\n queryDesigner: QueryDesigner,\r\n onlineUsers: OnlineUsers,\r\n notifications: Notifications,\r\n tabHistory: TabHistory,\r\n workshops: Workshops,\r\n salaryPeriods: SalaryPeriods\r\n}\r\n\r\nconst Store = createStore({\r\n state,\r\n mutations,\r\n actions,\r\n modules,\r\n getters,\r\n plugins: [vuexLocal.plugin, vuexLocalUser.plugin, vuexLocalAppStates.plugin]\r\n})\r\n\r\nexport default Store\r\n","\r\n\t\r\n\t\t
{{ $t('trs.related-factor-attachments.no-attachment') }}\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t
0\" :options=\"componentOptions.tableOptions\" :data=\"attachments\" @preSelectedRowData=\"(data) => selectedRow = data\" :tabindex=\"tabindex + 4\" ref=\"table\" startup>\r\n\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./related-factor-attachments.vue?vue&type=template&id=335b0ac7\"\nimport script from \"./related-factor-attachments.vue?vue&type=script&lang=js\"\nexport * from \"./related-factor-attachments.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t favTabsVisible = val\" />\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t buttonsChanged(tab, buttons)\" @title-changed=\"(title) => titleChanged(tab, title)\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
checkVersion(true)\">{{ backVersion + '.' + frontVersion }}
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
{ fiscalSelectorVisible = !fiscalSelectorVisible }\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{{ fiscalPeriod.name }}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
{{ company.name }}
\r\n\t\t\t\t\t\t\t
{{ company.currency ? company.currency.name : '' }}
\r\n\t\t\t\t\t\t\t
{{ dateTime }}
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
{ workshopSelectorVisible = !workshopSelectorVisible }\">\r\n\t\t\t\t\t\t\t\t\t\t
{ workshopSelectorVisible = !workshopSelectorVisible }\">\r\n\t\t\t\t\t\t\t\t\t\t\t{{ $t('salary.workshop.title') }}: {{ getWorkshop.name ? getWorkshop.name : '---' }}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t {{ $t('salary.salary-period') }}: \r\n\t\t\t\t\t\t\t\t\t\t {{ periodDate }} \r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
{{ unseenNotification.length }}
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\t
tab.id === currentTab)?.helpTag || ''\" v-model:visible=\"helpSidebarIsFocus\" />\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t \r\n\r\n\r\n\r\n","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./cache-cleaner.vue?vue&type=template&id=064a6d14\"\nimport script from \"./cache-cleaner.vue?vue&type=script&lang=js\"\nexport * from \"./cache-cleaner.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
F2\r\n\t\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./favorite-tabs.vue?vue&type=template&id=1dd78f3a\"\nimport script from \"./favorite-tabs.vue?vue&type=script&lang=js\"\nexport * from \"./favorite-tabs.vue?vue&type=script&lang=js\"\n\nimport \"./favorite-tabs.vue?vue&type=style&index=0&id=1dd78f3a&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./help-sidebar.vue?vue&type=template&id=789ea5de\"\nimport script from \"./help-sidebar.vue?vue&type=script&lang=js\"\nexport * from \"./help-sidebar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t
\r\n\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{{ $t('grid.nodata') }}\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
x.module)\" :key=\"index\">\r\n\t\t\t\t\t\t
{{ $t(`enum-items.NikanSystems.${system}`) }}\r\n\t\t\t\t\t\t
x.entityType)\" :key=\"index\">\r\n\t\t\t\t\t\t\t
{{ $t(`general-search.entityTypes.${entityType}`) }}\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
{{ row.title }}\r\n\t\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","\r\n \r\n
\r\n
\r\n {{ $t('document.f.document-code') }}:\r\n {{ documentData?.code }}\r\n
\r\n\r\n
\r\n {{ $t('document.f.date') }}:\r\n {{ convertDate(documentData?.date, false) }}\r\n
\r\n\r\n
\r\n\r\n
\r\n {{ $t('document.f.description') }}:\r\n {{ documentData?.description }}\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n رد | \r\n {{ $t('document.f.account') }} | \r\n \r\n {{ $t('document.f.center') }} {{ index + 1 }} | \r\n \r\n {{ $t('document.f.description') }} | \r\n {{ $t('document.f.creditor') }} | \r\n {{ $t('document.f.debtor') }} | \r\n
\r\n \r\n \r\n \r\n {{ detail.displayOrder }} | \r\n {{ detail.account?.name }} ({{ detail.account?.code }}) | \r\n \r\n {{ detail.centers[center - 1] ? `${detail.centers[center - 1].name} (${detail.centers[center - 1].accountingCode})` : `` }} | \r\n \r\n {{ detail.description }} | \r\n {{ monify(detail.currencyValues[0].credit) }} | \r\n {{ monify(detail.currencyValues[0].debit) }} | \r\n
\r\n \r\n \r\n \r\n جمع: | \r\n {{ monify(documentData?.sumCredits) }} | \r\n {{ monify(documentData?.sumDebits) }} | \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","import { render } from \"./document-preview-minimal.vue?vue&type=template&id=1a7e9796\"\nimport script from \"./document-preview-minimal.vue?vue&type=script&lang=js\"\nexport * from \"./document-preview-minimal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./general-search-dropdown.vue?vue&type=template&id=42dc9941\"\nimport script from \"./general-search-dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./general-search-dropdown.vue?vue&type=script&lang=js\"\n\nimport \"./general-search-dropdown.vue?vue&type=style&index=0&id=42dc9941&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./_layout-app.vue?vue&type=template&id=42110cf2\"\nimport script from \"./_layout-app.vue?vue&type=script&lang=js\"\nexport * from \"./_layout-app.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/site.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{{ $t('sale.product.f.isSerialized') + ':' }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{{ $t('sale.product.f.isTaxAndTollFree') + ':' }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{ $t('sale.product.order-point-hint') }}
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
{{ $t('sale.product.m.no-additional-field-found') }}
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./product-modify.vue?vue&type=template&id=36bf33fa\"\nimport script from \"./product-modify.vue?vue&type=script&lang=js\"\nexport * from \"./product-modify.vue?vue&type=script&lang=js\"\n\nimport \"./product-modify.vue?vue&type=style&index=0&id=36bf33fa&lang=less\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-account.vue?vue&type=template&id=54ab157f\"\nimport script from \"./dropdown-account.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-account.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var map = {\n\t\"./error.json\": 1463,\n\t\"./info.json\": 26731,\n\t\"./success.json\": 14678,\n\t\"./warning.json\": 15981\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 48812;","\r\n\t\r\n\t\t\r\n\r\n\t\r\n\t\r\n\t\t

\r\n\t\t
{{ $t('policy.token-expired') }}
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./password-recovery.vue?vue&type=template&id=72f4f408\"\nimport script from \"./password-recovery.vue?vue&type=script&lang=js\"\nexport * from \"./password-recovery.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/login.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export const toInt = (str) => {\r\n if (!str || !str.toString().length) {\r\n return 0\r\n }\r\n\r\n str = str.toString()\r\n\r\n let filtered = ''\r\n for (let c of str) {\r\n if (!isNaN(c)) {\r\n filtered += c\r\n }\r\n }\r\n\r\n if (filtered.length === 0) {\r\n return 0\r\n }\r\n\r\n return parseInt(filtered, 10)\r\n}\r\nexport const truncate = (number, decimals = 1) => {\r\n let z = (10 * decimals || 0) || 1\r\n return Math.floor(number * z) / z\r\n}\r\nexport const rnd = (number, decimals = 1) => {\r\n let z = (10 * decimals || 0) || 1\r\n return Math.round(number * z) / z\r\n}\r\nexport const toFloat = (str) => {\r\n if (!str || !str.toString().length) {\r\n return 0.0\r\n }\r\n\r\n str = str.toString()\r\n\r\n let filtered = ''\r\n for (let c of str) {\r\n if (!isNaN(c) || c === '.') {\r\n filtered += c\r\n }\r\n }\r\n\r\n let firstDotIndex = filtered.indexOf('.')\r\n let lastDotIndex = filtered.lastIndexOf('.')\r\n\r\n if (firstDotIndex > -1 && firstDotIndex !== lastDotIndex) {\r\n let temp = ''\r\n for (let i = 0; i < filtered.length; i++) {\r\n if (filtered[i] !== '.' || i === lastDotIndex) {\r\n temp += filtered[i]\r\n }\r\n }\r\n\r\n filtered = temp\r\n }\r\n\r\n if (filtered.length === 0) {\r\n return 0\r\n }\r\n\r\n return parseFloat(filtered)\r\n}\r\n\r\nexport default toInt\r\n","import * as SR from '@microsoft/signalr'\r\nimport { useToast } from 'vue-toastification'\r\nimport { i18nInstance } from './localization'\r\nimport store from '~/store'\r\n\r\nif (!SR)\r\n throw new Error('[Vue-SignalR] Cannot locate signalr-client')\r\n\r\nconst EventEmitter = require('events')\r\n\r\nconst defaultOptions = {\r\n log: false,\r\n}\r\n\r\nclass SocketConnection extends EventEmitter {\r\n constructor(connection) {\r\n super()\r\n\r\n this.connection = connection\r\n this.listened = []\r\n this.socket = false\r\n\r\n this.toSend = []\r\n\r\n this.offline = false\r\n this._isMounted = false\r\n\r\n this.toast = {\r\n displayed: false,\r\n instance: null,\r\n options: {\r\n id: 'socket_toast',\r\n position: 'bottom-center',\r\n type: 'info',\r\n rtl: true,\r\n timeout: false,\r\n closeOnClick: false,\r\n closeButton: false,\r\n pauseOnHover: true,\r\n showCloseButtonOnHover: false,\r\n // container: asyncGetContainer,\r\n newestOnTop: true,\r\n maxToasts: 1,\r\n transition: 'Vue-Toastification__fade',\r\n draggable: false,\r\n pauseOnFocusLoss: true,\r\n hideProgressBar: false,\r\n toastClassName: [],\r\n bodyClassName: [],\r\n onMounted: undefined,\r\n },\r\n }\r\n\r\n this.toast.instance = useToast(this.toast.options)\r\n }\r\n listenedItems() {\r\n return this.listened\r\n }\r\n\r\n async _initialize(connection = '') {\r\n const con = connection || this.connection\r\n\r\n try {\r\n const socket = new SR.HubConnectionBuilder()\r\n .withUrl(con)\r\n .withAutomaticReconnect()\r\n .build()\r\n\r\n socket.connection.onclose = async (error) => {\r\n if (this._isMounted) {\r\n if (this.options.log) console.log('Reconnecting...')\r\n\r\n this.displayErrorToast()\r\n this.socket = false\r\n store.dispatch('formCodes/clearFormCodes')\r\n\r\n /* eslint-disable no-underscore-dangle */\r\n await this._initialize(con)\r\n this.emit('reconnect')\r\n }\r\n }\r\n\r\n await socket.start()\r\n\r\n this.dismissErrorToast()\r\n this.socket = socket\r\n this._isMounted = true\r\n store.dispatch('formCodes/clearFormCodes')\r\n\r\n this.emit('init')\r\n } catch (error) {\r\n if (this.options.log) console.log('Error, reconnecting...')\r\n\r\n this.displayErrorToast()\r\n\r\n setTimeout(() => {\r\n this._initialize(con)\r\n }, 1000)\r\n }\r\n }\r\n\r\n async start(options = {}) {\r\n this.options = Object.assign(defaultOptions, options)\r\n\r\n await this._initialize()\r\n }\r\n\r\n async stop() {\r\n this._isMounted = false\r\n\r\n await this.socket.stop()\r\n }\r\n\r\n async authenticate(accessToken, userId, companyId, customerCode, options = {}) {\r\n this.connection = `${this.connection}?authorization=${accessToken}&userId=${userId}&companyId=${companyId}&customerCode=${customerCode}`\r\n\r\n /* eslint-disable no-underscore-dangle */\r\n await this.start(options)\r\n }\r\n\r\n listen(method) {\r\n if (this.offline) return\r\n\r\n if (this.listened.some(v => v === method)) return\r\n this.listened.push(method)\r\n\r\n this.on('init', () => {\r\n this.socket.on(method, (data) => {\r\n if (this.options.log) console.log({ type: 'receive', method, data })\r\n\r\n this.emit(method, data)\r\n })\r\n })\r\n }\r\n\r\n send(methodName, ...args) {\r\n if (this.options.log) console.log({ type: 'send', methodName, args })\r\n if (this.offline) return\r\n\r\n if (this.socket) {\r\n this.socket.send(methodName, ...args)\r\n return\r\n }\r\n\r\n this.once('init', () => this.socket.send(methodName, ...args))\r\n }\r\n\r\n async invoke(methodName, ...args) {\r\n if (this.options.log) console.log({ type: 'invoke', methodName, args })\r\n if (this.offline) return false\r\n\r\n if (this.socket) {\r\n return this.socket.invoke(methodName, ...args)\r\n }\r\n\r\n return new Promise(async resolve =>\r\n this.once('init', () =>\r\n resolve(this.socket.invoke(methodName, ...args))))\r\n }\r\n\r\n displayErrorToast() {\r\n if (!this.toast.displayed) {\r\n this.toast.instance.error(i18nInstance.global.t('connection-lost'), this.toast.options)\r\n this.toast.displayed = true\r\n }\r\n }\r\n\r\n dismissErrorToast() {\r\n if (this.toast.displayed) {\r\n this.toast.instance.update(this.toast.options.id, { options: { type: 'success', timeout: 1000 }, content: i18nInstance.global.t('connected') })\r\n this.toast.displayed = false\r\n }\r\n }\r\n\r\n}\r\n\r\nconst socketInstance = new SocketConnection('/NikanHub')\r\n\r\nexport default socketInstance\r\n","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t selectedItem = rowData\" tabindex=\"101\" ref=\"table\" startup class=\"h-100 nk-card\">\r\n\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./account-selector.vue?vue&type=template&id=970b8586\"\nimport script from \"./account-selector.vue?vue&type=script&lang=js\"\nexport * from \"./account-selector.vue?vue&type=script&lang=js\"\n\nimport \"./account-selector.vue?vue&type=style&index=0&id=970b8586&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t activeIndex = index\" :active-index=\"componentActiveIndex\" @rendered=\"selectorRendered\" @update:modelValue=\"selectedItemChanged\" @enter-pressed=\"enterPressed\" @buttons-changed=\"buttonsChanged\" @title-changed=\"titleChanged\" @reject=\"rejected\" ref=\"comp\">\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
0\">\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n","import { render } from \"./dropdown.vue?vue&type=template&id=c2d4cdd6\"\nimport script from \"./dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{{ $t(dropdownSelectedItem.length.toString().toLocaleDigits()) + $t('item-selected') }}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./multichoice2.vue?vue&type=template&id=bd5b0f50\"\nimport script from \"./multichoice2.vue?vue&type=script&lang=js\"\nexport * from \"./multichoice2.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/multichoice.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-flex flex-column h-100\" }\nconst _hoisted_2 = { class: \"row main-details-section\" }\nconst _hoisted_3 = { class: \"col-12 col-lg-8\" }\nconst _hoisted_4 = { class: \"row\" }\nconst _hoisted_5 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_6 = { class: \"row\" }\nconst _hoisted_7 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_8 = { class: \"row\" }\nconst _hoisted_9 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_10 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_11 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_12 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_13 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_14 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_15 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_16 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_17 = { class: \"row\" }\nconst _hoisted_18 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_19 = { class: \"row\" }\nconst _hoisted_20 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_21 = { class: \"col-12 col-sm-6\" }\nconst _hoisted_22 = { class: \"col-12 col-lg-4\" }\nconst _hoisted_23 = { class: \"image-container col-6\" }\nconst _hoisted_24 = { class: \"row\" }\nconst _hoisted_25 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_26 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_27 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_28 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_29 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_30 = {\n class: \"col-12 col-lg-8\",\n style: {\"padding-right\":\"9px\"}\n}\nconst _hoisted_31 = {\n class: \"col-12 col-lg-8\",\n style: {\"padding-right\":\"9px\"}\n}\nconst _hoisted_32 = {\n class: \"col-12 col-lg-8\",\n style: {\"padding-right\":\"9px\"}\n}\nconst _hoisted_33 = { class: \"row\" }\nconst _hoisted_34 = { class: \"col-12 col-sm-6 col-lg-8\" }\nconst _hoisted_35 = { class: \"col-12 col-sm-6 col-lg-8\" }\nconst _hoisted_36 = { class: \"col-12 col-sm-6 col-lg-8\" }\nconst _hoisted_37 = { class: \"col-12 col-sm-6 col-lg-8\" }\nconst _hoisted_38 = { class: \"col-12 col-sm-6 col-lg-8\" }\nconst _hoisted_39 = { class: \"row\" }\nconst _hoisted_40 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_41 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_42 = { class: \"row\" }\nconst _hoisted_43 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_44 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_45 = { class: \"row\" }\nconst _hoisted_46 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_47 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_48 = { class: \"row nk-seprator\" }\nconst _hoisted_49 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_50 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_51 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_52 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_53 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_54 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_55 = { class: \"col-12 col-sm-6 col-lg-6\" }\nconst _hoisted_56 = { class: \"row flex-row-reverse\" }\nconst _hoisted_57 = { class: \"col-10 px-2\" }\nconst _hoisted_58 = { class: \"col-12 col-sm-6 col-lg-6\" }\nconst _hoisted_59 = { class: \"row flex-row-reverse\" }\nconst _hoisted_60 = { class: \"col-10 px-2\" }\nconst _hoisted_61 = { class: \"row\" }\nconst _hoisted_62 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_63 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_64 = { class: \"d-flex\" }\nconst _hoisted_65 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_66 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_67 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_68 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_69 = { class: \"col-12 col-sm-6 col-lg-4\" }\nconst _hoisted_70 = { class: \"col-12 col-sm-9 col-lg-6\" }\nconst _hoisted_71 = { class: \"row flex-row-reverse\" }\nconst _hoisted_72 = { class: \"col-10 px-2\" }\nconst _hoisted_73 = {\n key: 0,\n class: \"row w-100 h-100 justify-content-center align-items-center flex-column gap-10\"\n}\nconst _hoisted_74 = { class: \"bold-title\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_switch = _resolveComponent(\"nk-switch\")!\n const _component_nk_col_form_group = _resolveComponent(\"nk-col-form-group\")!\n const _component_nk_input = _resolveComponent(\"nk-input\")!\n const _component_nk_date = _resolveComponent(\"nk-date\")!\n const _component_nk_dropdown = _resolveComponent(\"nk-dropdown\")!\n const _component_nk_image_uploader = _resolveComponent(\"nk-image-uploader\")!\n const _component_nk_multichoice2 = _resolveComponent(\"nk-multichoice2\")!\n const _component_nk_stab = _resolveComponent(\"nk-stab\")!\n const _component_nk_dropdown_bank = _resolveComponent(\"nk-dropdown-bank\")!\n const _component_nk_dropdown_center = _resolveComponent(\"nk-dropdown-center\")!\n const _component_nk_checkbox = _resolveComponent(\"nk-checkbox\")!\n const _component_nk_button = _resolveComponent(\"nk-button\")!\n const _component_nk_metadata = _resolveComponent(\"nk-metadata\")!\n const _component_nk_stabs = _resolveComponent(\"nk-stabs\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.isActive') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_switch, {\n modelValue: _ctx.localData.isActive,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.localData.isActive) = $event)),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) && _ctx.grandParentType() === 'modal' ? true : null,\n tabindex: 101\n }, null, 8, [\"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.code') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.code,\n modelValue: _ctx.localData.code,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.localData.code) = $event)),\n tabindex: 102,\n onBlur: _ctx.codeBlur,\n ref: \"inputCode\",\n onSearchClick: _ctx.allPersonnel,\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) && _ctx.grandParentType() === 'modal' ? true : null,\n startup: \"\"\n }, null, 8, [\"options\", \"modelValue\", \"onBlur\", \"onSearchClick\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.firstName') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.firstName,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.localData.firstName) = $event)),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null,\n tabindex: 103\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.lastName') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.lastName,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.localData.lastName) = $event)),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null,\n tabindex: 104\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.fatherName') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.fatherName,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.localData.fatherName) = $event)),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null,\n tabindex: 105\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.nationalCode') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.stringNumber,\n modelValue: _ctx.localData.nationalCode,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.localData.nationalCode) = $event)),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null,\n tabindex: 106,\n maxlength: 10\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.idNumber') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.stringNumber,\n modelValue: _ctx.localData.idNumber,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.localData.idNumber) = $event)),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null,\n tabindex: 107\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.issuePlace') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.issuePlace,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.localData.issuePlace) = $event)),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null,\n tabindex: 108\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.birthDate') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_date, {\n modelValue: _ctx.localData.birthDate,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.localData.birthDate) = $event)),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null,\n tabindex: 109\n }, null, 8, [\"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.birthPlace') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.birthPlace,\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => ((_ctx.localData.birthPlace) = $event)),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null,\n tabindex: 110\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"div\", _hoisted_18, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.gender') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.gender,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.localData.gender) = $event)),\n data: _ctx.genderTypes,\n options: _ctx.componentOptions.selector('GenderTypes'),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null,\n tabindex: 111\n }, null, 8, [\"modelValue\", \"data\", \"options\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.nationality') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.nationality,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.localData.nationality) = $event)),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null,\n tabindex: 112\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.religion') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.religion,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.localData.religion) = $event)),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null,\n tabindex: 113\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_22, [\n _createElementVNode(\"div\", _hoisted_23, [\n _createVNode(_component_nk_image_uploader, {\n ref: \"imageUploader\",\n options: _ctx.componentOptions.imageUploader,\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null\n }, null, 8, [\"options\", \"disabled\"])\n ])\n ])\n ])\n ]),\n _createVNode(_component_nk_stabs, {\n class: \"mt-5 flex-grow-1\",\n activeTab: _ctx.activeTab,\n tabindex: 100,\n scrollable: true,\n onActiveTabChanged: _cache[51] || (_cache[51] = (tab) => _ctx.tabChanged(tab))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_stab, {\n id: 'contact-info',\n name: _ctx.$t('salary.personnel.t.contact-info'),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.postalCode') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.stringNumber,\n modelValue: _ctx.localData.postalCode,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = ($event: any) => ((_ctx.localData.postalCode) = $event)),\n tabindex: 115,\n maxlength: 10\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.phone') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.stringNumber,\n modelValue: _ctx.localData.phone,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((_ctx.localData.phone) = $event)),\n tabindex: 116\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_27, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.mobile1') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.stringNumber,\n modelValue: _ctx.localData.mobile1,\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = ($event: any) => ((_ctx.localData.mobile1) = $event)),\n tabindex: 117\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_28, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.mobile2') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.stringNumber,\n modelValue: _ctx.localData.mobile2,\n \"onUpdate:modelValue\": _cache[16] || (_cache[16] = ($event: any) => ((_ctx.localData.mobile2) = $event)),\n tabindex: 118\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.email') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.email,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = ($event: any) => ((_ctx.localData.email) = $event)),\n tabindex: 119\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_30, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.address') + ':',\n labelSizes: { sm: 2 },\n dataSizes: { sm: 10 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.address,\n \"onUpdate:modelValue\": _cache[18] || (_cache[18] = ($event: any) => ((_ctx.localData.address) = $event)),\n tabindex: 120\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_31, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.description') + ':',\n labelSizes: { sm: 2 },\n dataSizes: { sm: 10 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.description,\n \"onUpdate:modelValue\": _cache[19] || (_cache[19] = ($event: any) => ((_ctx.localData.description) = $event)),\n tabindex: 121\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_32, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.group') + ':',\n labelSizes: { sm: 2 },\n dataSizes: { sm: 10 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_multichoice2, {\n modelValue: _ctx.localData.personnelCategories,\n \"onUpdate:modelValue\": _cache[20] || (_cache[20] = ($event: any) => ((_ctx.localData.personnelCategories) = $event)),\n data: _ctx.personnelCategoriesList,\n ref: \"personnelCategory\",\n options: _ctx.componentOptions.categories,\n tabindex: 122,\n class: \"w-100\"\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"name\", \"disabled\"]),\n _createVNode(_component_nk_stab, {\n id: 'document-account',\n name: _ctx.$t('salary.personnel.t.document-account'),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_33, [\n _createElementVNode(\"div\", _hoisted_34, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.bank') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown_bank, {\n modelValue: _ctx.localData.bank,\n \"onUpdate:modelValue\": _cache[21] || (_cache[21] = ($event: any) => ((_ctx.localData.bank) = $event)),\n tabindex: 123\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_35, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.bankAccountNumber') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.bankAccountNumber,\n \"onUpdate:modelValue\": _cache[22] || (_cache[22] = ($event: any) => ((_ctx.localData.bankAccountNumber) = $event)),\n tabindex: 124\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_36, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.bankCardNumber') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.stringNumber,\n modelValue: _ctx.localData.bankCardNumber,\n \"onUpdate:modelValue\": _cache[23] || (_cache[23] = ($event: any) => ((_ctx.localData.bankCardNumber) = $event)),\n tabindex: 125,\n maxlength: 16\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_37, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.bankShabaNumber') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.shabaNumber,\n modelValue: _ctx.localData.bankShabaNumber,\n \"onUpdate:modelValue\": _cache[24] || (_cache[24] = ($event: any) => ((_ctx.localData.bankShabaNumber) = $event)),\n tabindex: 126,\n maxlength: 24\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _cache[52] || (_cache[52] = _createElementVNode(\"div\", { class: \"w-100\" }, null, -1)),\n _createElementVNode(\"div\", _hoisted_38, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.floatingCenter') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown_center, {\n modelValue: _ctx.localData.floatingCenter,\n \"onUpdate:modelValue\": _cache[25] || (_cache[25] = ($event: any) => ((_ctx.localData.floatingCenter) = $event)),\n options: _ctx.componentOptions.personnel,\n tabindex: 127\n }, null, 8, [\"modelValue\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"name\", \"disabled\"]),\n (!_ctx.settings.hideContractTabs)\n ? (_openBlock(), _createBlock(_component_nk_stab, {\n key: 0,\n id: 'contract-info',\n name: _ctx.$t('salary.personnel.t.contract-info'),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_39, [\n _createElementVNode(\"div\", _hoisted_40, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.marriage') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.contract.marriage,\n \"onUpdate:modelValue\": [\n _cache[26] || (_cache[26] = ($event: any) => ((_ctx.localData.contract.marriage) = $event)),\n _cache[27] || (_cache[27] = (val) => _ctx.marriageTypeChanged(val))\n ],\n data: _ctx.marriageTypes,\n options: _ctx.componentOptions.selector('MarriageTypes'),\n tabindex: 128\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_41, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.childrenCount') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.number,\n modelValue: _ctx.localData.contract.childrenCount,\n \"onUpdate:modelValue\": _cache[28] || (_cache[28] = ($event: any) => ((_ctx.localData.contract.childrenCount) = $event)),\n disabled: _ctx.localData.contract.marriage === _ctx.PersonnelMarriageTypes.Single,\n tabindex: 129\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_42, [\n _createElementVNode(\"div\", _hoisted_43, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.militaryStatus') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.contract.militaryStatus,\n \"onUpdate:modelValue\": _cache[29] || (_cache[29] = ($event: any) => ((_ctx.localData.contract.militaryStatus) = $event)),\n data: _ctx.militaryTypes,\n options: _ctx.componentOptions.selector('MilitaryStatuses'),\n tabindex: 130\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_44, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.sacrificeStatus') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.contract.sacrificeStatus,\n \"onUpdate:modelValue\": _cache[30] || (_cache[30] = ($event: any) => ((_ctx.localData.contract.sacrificeStatus) = $event)),\n data: _ctx.sacrificeTypes,\n options: _ctx.componentOptions.selector('SacrificeStatuses'),\n tabindex: 131\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_45, [\n _createElementVNode(\"div\", _hoisted_46, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.educationalStatus') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.contract.educationalStatus,\n \"onUpdate:modelValue\": _cache[31] || (_cache[31] = ($event: any) => ((_ctx.localData.contract.educationalStatus) = $event)),\n data: _ctx.educationTypes,\n options: _ctx.componentOptions.selector('EducationalStatuses'),\n tabindex: 132\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_47, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.educationalField') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.contract.educationalField,\n \"onUpdate:modelValue\": _cache[32] || (_cache[32] = ($event: any) => ((_ctx.localData.contract.educationalField) = $event)),\n tabindex: 133\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"name\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (!_ctx.settings.hideContractTabs)\n ? (_openBlock(), _createBlock(_component_nk_stab, {\n key: 1,\n id: 'insurance-tax',\n name: _ctx.$t('salary.personnel.t.insurance-tax'),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_48, [\n _createElementVNode(\"div\", _hoisted_49, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.insuranceBaseType') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.contract.insuranceBaseType,\n \"onUpdate:modelValue\": _cache[33] || (_cache[33] = ($event: any) => ((_ctx.localData.contract.insuranceBaseType) = $event)),\n data: _ctx.insuranceBaseTypes,\n options: _ctx.componentOptions.selector('InsuranceBaseTypes'),\n tabindex: 134\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_50, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.insuranceType') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.contract.insuranceType,\n \"onUpdate:modelValue\": _cache[34] || (_cache[34] = ($event: any) => ((_ctx.localData.contract.insuranceType) = $event)),\n data: _ctx.insuranceTypes,\n options: _ctx.componentOptions.selector('InsuranceTypes'),\n tabindex: 135\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_51, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.insuranceNumber') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.string,\n modelValue: _ctx.localData.contract.insuranceNumber,\n \"onUpdate:modelValue\": _cache[35] || (_cache[35] = ($event: any) => ((_ctx.localData.contract.insuranceNumber) = $event)),\n tabindex: 136\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_52, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.personnel.f.jobCode') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.contract.jobCode,\n \"onUpdate:modelValue\": _cache[36] || (_cache[36] = ($event: any) => ((_ctx.localData.contract.jobCode) = $event)),\n options: _ctx.componentOptions.jobCode,\n data: _ctx.jobCodes,\n tabindex: 137,\n ref: \"jobCode\"\n }, null, 8, [\"modelValue\", \"options\", \"data\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_53, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.insuranceStartDate') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_date, {\n modelValue: _ctx.localData.contract.insuranceStartDate,\n \"onUpdate:modelValue\": _cache[37] || (_cache[37] = ($event: any) => ((_ctx.localData.contract.insuranceStartDate) = $event)),\n options: _ctx.componentOptions.date,\n tabindex: 138\n }, null, 8, [\"modelValue\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_54, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.insuranceLeaveDate') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_date, {\n modelValue: _ctx.localData.contract.insuranceLeaveDate,\n \"onUpdate:modelValue\": _cache[38] || (_cache[38] = ($event: any) => ((_ctx.localData.contract.insuranceLeaveDate) = $event)),\n options: _ctx.componentOptions.date,\n tabindex: 139\n }, null, 8, [\"modelValue\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _cache[53] || (_cache[53] = _createElementVNode(\"div\", { class: \"w-100\" }, null, -1)),\n _createElementVNode(\"div\", _hoisted_55, [\n _createElementVNode(\"div\", _hoisted_56, [\n _createElementVNode(\"div\", _hoisted_57, [\n _createVNode(_component_nk_checkbox, {\n type: \"checkbox\",\n options: { title: _ctx.$t('salary.contract.f.exportableInInsuranceDisket') },\n modelValue: _ctx.localData.contract.exportableInInsuranceDisket,\n \"onUpdate:modelValue\": _cache[39] || (_cache[39] = ($event: any) => ((_ctx.localData.contract.exportableInInsuranceDisket) = $event)),\n tabindex: 140\n }, null, 8, [\"options\", \"modelValue\"])\n ])\n ])\n ]),\n _cache[54] || (_cache[54] = _createElementVNode(\"div\", { class: \"w-100\" }, null, -1)),\n _createElementVNode(\"div\", _hoisted_58, [\n _createElementVNode(\"div\", _hoisted_59, [\n _createElementVNode(\"div\", _hoisted_60, [\n _createVNode(_component_nk_checkbox, {\n type: \"checkbox\",\n options: { title: _ctx.$t('salary.contract.f.includeHardJob') },\n modelValue: _ctx.localData.contract.insuranceIncludeHardJob,\n \"onUpdate:modelValue\": _cache[40] || (_cache[40] = ($event: any) => ((_ctx.localData.contract.insuranceIncludeHardJob) = $event)),\n tabindex: 141\n }, null, 8, [\"options\", \"modelValue\"])\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_61, [\n _createElementVNode(\"div\", _hoisted_62, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.workplaceStatus') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.contract.workplaceStatus,\n \"onUpdate:modelValue\": [\n _cache[41] || (_cache[41] = ($event: any) => ((_ctx.localData.contract.workplaceStatus) = $event)),\n _cache[42] || (_cache[42] = (item) => _ctx.setTaxFreePercent(item?.taxFreePercent || 0))\n ],\n data: _ctx.workplaceStatus,\n options: _ctx.componentOptions.workplaceStatus,\n tabindex: 142,\n ref: \"workplaceStatus\"\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_63, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.taxFreeAmount') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_64, [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.number,\n modelValue: _ctx.localData.contract.taxFreeAmount,\n \"onUpdate:modelValue\": _cache[43] || (_cache[43] = ($event: any) => ((_ctx.localData.contract.taxFreeAmount) = $event)),\n tabindex: 143\n }, null, 8, [\"options\", \"modelValue\"]),\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.taxFreePercentage,\n modelValue: _ctx.localData.contract.taxFreePercentage,\n \"onUpdate:modelValue\": _cache[44] || (_cache[44] = ($event: any) => ((_ctx.localData.contract.taxFreePercentage) = $event)),\n tabindex: 144\n }, null, 8, [\"options\", \"modelValue\"])\n ])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_65, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.jobField') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.contract.jobField,\n \"onUpdate:modelValue\": _cache[45] || (_cache[45] = ($event: any) => ((_ctx.localData.contract.jobField) = $event)),\n data: _ctx.jobFields,\n options: _ctx.componentOptions.jobField,\n ref: \"jobField\",\n tabindex: 147\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _cache[55] || (_cache[55] = _createElementVNode(\"div\", { class: \"w-100\" }, null, -1)),\n _createElementVNode(\"div\", _hoisted_66, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.taxStartDate') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_date, {\n modelValue: _ctx.localData.contract.taxStartDate,\n \"onUpdate:modelValue\": _cache[46] || (_cache[46] = ($event: any) => ((_ctx.localData.contract.taxStartDate) = $event)),\n options: _ctx.componentOptions.date,\n tabindex: 149\n }, null, 8, [\"modelValue\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_67, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.taxEndDate') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_date, {\n modelValue: _ctx.localData.contract.taxEndDate,\n \"onUpdate:modelValue\": _cache[47] || (_cache[47] = ($event: any) => ((_ctx.localData.contract.taxEndDate) = $event)),\n options: _ctx.componentOptions.date,\n tabindex: 151\n }, null, 8, [\"modelValue\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_68, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.cooperateType') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 },\n ref: \"cooperateType\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.contract.cooperateType,\n \"onUpdate:modelValue\": _cache[48] || (_cache[48] = ($event: any) => ((_ctx.localData.contract.cooperateType) = $event)),\n data: _ctx.cooperateTypes,\n options: _ctx.componentOptions.cooperateType,\n tabindex: 153\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_69, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.contract.f.position') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.contract.position,\n \"onUpdate:modelValue\": _cache[49] || (_cache[49] = ($event: any) => ((_ctx.localData.contract.position) = $event)),\n data: _ctx.positions,\n options: _ctx.componentOptions.position,\n ref: \"position\",\n tabindex: 155\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _cache[56] || (_cache[56] = _createElementVNode(\"div\", { class: \"w-100\" }, null, -1)),\n _createElementVNode(\"div\", _hoisted_70, [\n _createElementVNode(\"div\", _hoisted_71, [\n _createElementVNode(\"div\", _hoisted_72, [\n _createVNode(_component_nk_checkbox, {\n type: \"checkbox\",\n options: { title: _ctx.$t('salary.contract.f.exportableInTaxDisket') },\n modelValue: _ctx.localData.contract.exportableInTaxDisket,\n \"onUpdate:modelValue\": _cache[50] || (_cache[50] = ($event: any) => ((_ctx.localData.contract.exportableInTaxDisket) = $event)),\n tabindex: 157\n }, null, 8, [\"options\", \"modelValue\"])\n ])\n ])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"name\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (!_ctx.settings.hideContractTabs)\n ? (_openBlock(), _createBlock(_component_nk_stab, {\n key: 2,\n id: 'additional-fields',\n name: _ctx.$t('salary.personnel.t.additional-fields'),\n disabled: [_ctx.FormModes.READONLY].includes(_ctx.settings.mode) ? true : null\n }, {\n default: _withCtx(() => [\n (_ctx.$refs.metaDataList && (_ctx.$refs.metaDataList as any).metaDatas.length === 0 && [_ctx.FormModes.EDITABLE].includes(_ctx.settings.mode))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_73, [\n _createElementVNode(\"div\", _hoisted_74, _toDisplayString(_ctx.$t('salary.personnel.m.no-additional-field-found')), 1),\n _createVNode(_component_nk_button, {\n class: \"mb-4\",\n onClick: _ctx.metaDataModal,\n options: _ctx.componentOptions.addMetaDataButton\n }, null, 8, [\"onClick\", \"options\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_nk_metadata, {\n ref: \"metaDataList\",\n tabindex: 157,\n options: _ctx.getMetaDataListOptions\n }, null, 8, [\"options\"])\n ]),\n _: 1\n }, 8, [\"name\", \"disabled\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"activeTab\"])\n ]))\n}","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\t
tabChanged(tab)\">\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t marriageTypeChanged(val)\" :tabindex=\"128\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t setTaxFreePercent(item?.taxFreePercent || 0)\" :data=\"workplaceStatus\" :options=\"componentOptions.workplaceStatus\" :tabindex=\"142\" ref=\"workplaceStatus\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
{{ $t('salary.personnel.m.no-additional-field-found') }}
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"nk-card h-100 d-flex flex-column\",\n startup: \"\"\n}\nconst _hoisted_2 = { class: \"h-grow-lock\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_nk_table = _resolveComponent(\"nk-table\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: ['Salary'],\n class: \"\",\n policyClaims: \"Salary_CooperateType_Management\"\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.CooperateType')\n }, null, 8, [\"title\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_nk_table, {\n modelValue: _ctx.selectedRow,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedRow) = $event)),\n onDataChanged: _ctx.dataChanged,\n data: _ctx.cooperateTypes,\n options: _ctx.tableOptions,\n ref: \"cooperateTypes\",\n tabindex: \"101\",\n onRow_dbClicked: _ctx.rowDbClicked\n }, null, 8, [\"modelValue\", \"onDataChanged\", \"data\", \"options\", \"onRow_dbClicked\"])\n ])\n ])\n ]),\n _: 1\n }))\n}","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./cooperate-type-selector.vue?vue&type=template&id=9e057f7a&ts=true\"\nimport script from \"./cooperate-type-selector.vue?vue&type=script&lang=ts\"\nexport * from \"./cooperate-type-selector.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"nk-card h-100 d-flex flex-column\",\n startup: \"\"\n}\nconst _hoisted_2 = { class: \"h-grow-lock\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_nk_table = _resolveComponent(\"nk-table\")!\n const _component_download_excel = _resolveComponent(\"download-excel\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n class: \"job-code\",\n policyClaims: \"Salary_JobCode_Management\"\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.JobCode')\n }, null, 8, [\"title\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_nk_table, {\n modelValue: _ctx.selectedRow,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedRow) = $event)),\n onDataChanged: _ctx.dataChanged,\n data: _ctx.jobCodes,\n options: _ctx.tableOptions,\n ref: \"jobCodeList\",\n tabindex: \"101\",\n onRow_dbClicked: _ctx.rowDbClicked\n }, null, 8, [\"modelValue\", \"onDataChanged\", \"data\", \"options\", \"onRow_dbClicked\"])\n ])\n ]),\n _createVNode(_component_download_excel, {\n ref: \"exportExcel\",\n class: \"btn btn-default d-none\",\n data: _ctx.jobCodes,\n fields: _ctx.exportExcelFields(),\n worksheet: _ctx.$t('forms.JobCode'),\n type: \"xlsx\",\n name: `${_ctx.$t('forms.JobCode')}.xls`\n }, null, 8, [\"data\", \"fields\", \"worksheet\", \"name\"]),\n _createElementVNode(\"input\", {\n type: \"file\",\n ref: \"excelFileInput\",\n class: \"d-none\",\n onChange: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.changeInputExcelFile && _ctx.changeInputExcelFile(...args))),\n accept: \".xlsx,.xls\"\n }, null, 544)\n ]),\n _: 1\n }))\n}","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { render } from \"./job-code-selector.vue?vue&type=template&id=76c39c54&ts=true\"\nimport script from \"./job-code-selector.vue?vue&type=script&lang=ts\"\nexport * from \"./job-code-selector.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"nk-card h-100 d-flex flex-column\",\n startup: \"\"\n}\nconst _hoisted_2 = { class: \"h-grow-lock\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_nk_table = _resolveComponent(\"nk-table\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n class: \"workplace-status\",\n policyClaims: \"Salary_WorkPlaceStatus_Management\"\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.WorkPlaceStatus')\n }, null, 8, [\"title\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_nk_table, {\n modelValue: _ctx.selectedRow,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedRow) = $event)),\n onDataChanged: _ctx.dataChanged,\n data: _ctx.workplaceStatuses,\n options: _ctx.tableOptions,\n ref: \"workplaceStatusList\",\n tabindex: \"101\",\n onRow_dbClicked: _ctx.rowDbClicked\n }, null, 8, [\"modelValue\", \"onDataChanged\", \"data\", \"options\", \"onRow_dbClicked\"])\n ])\n ])\n ]),\n _: 1\n }))\n}","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { render } from \"./workplace-status-selector.vue?vue&type=template&id=9b966c0e&ts=true\"\nimport script from \"./workplace-status-selector.vue?vue&type=script&lang=ts\"\nexport * from \"./workplace-status-selector.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"nk-card h-100 d-flex flex-column\",\n startup: \"\"\n}\nconst _hoisted_2 = { class: \"h-grow-lock\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_nk_table = _resolveComponent(\"nk-table\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n class: \"job-field\",\n policyClaims: \"Salary_JobField_Management\"\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.JobField')\n }, null, 8, [\"title\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_nk_table, {\n modelValue: _ctx.selectedRow,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedRow) = $event)),\n onDataChanged: _ctx.dataChanged,\n data: _ctx.jobFields,\n options: _ctx.tableOptions,\n ref: \"jobFieldList\",\n tabindex: \"101\",\n onRow_dbClicked: _ctx.rowDbClicked\n }, null, 8, [\"modelValue\", \"onDataChanged\", \"data\", \"options\", \"onRow_dbClicked\"])\n ])\n ])\n ]),\n _: 1\n }))\n}","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { Guid, IBaseModel } from '~/interfaces/base'\r\n\r\nexport class JobField implements IBaseModel {\r\n id!: Guid\r\n name!: string\r\n code!: string\r\n}","import { render } from \"./job-field-selector.vue?vue&type=template&id=5a1d7d71&ts=true\"\nimport script from \"./job-field-selector.vue?vue&type=script&lang=ts\"\nexport * from \"./job-field-selector.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"nk-card h-100 d-flex flex-column\",\n startup: \"\"\n}\nconst _hoisted_2 = { class: \"h-grow-lock\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_nk_table = _resolveComponent(\"nk-table\")!\n const _component_download_excel = _resolveComponent(\"download-excel\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n class: \"position-code\",\n policyClaims: \"Salary_Position_Management\"\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.Position')\n }, null, 8, [\"title\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_nk_table, {\n modelValue: _ctx.selectedRow,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedRow) = $event)),\n onDataChanged: _ctx.dataChanged,\n data: _ctx.positions,\n options: _ctx.tableOptions,\n ref: \"positionList\",\n tabindex: \"101\",\n onRow_dbClicked: _ctx.rowDbClicked\n }, null, 8, [\"modelValue\", \"onDataChanged\", \"data\", \"options\", \"onRow_dbClicked\"])\n ])\n ]),\n _createVNode(_component_download_excel, {\n ref: \"exportExcel\",\n class: \"btn btn-default d-none\",\n data: _ctx.positions,\n fields: _ctx.exportExcelFields(),\n worksheet: _ctx.$t('forms.Positions'),\n type: \"xlsx\",\n name: `${_ctx.$t('forms.Position')}.xls`\n }, null, 8, [\"data\", \"fields\", \"worksheet\", \"name\"]),\n _createElementVNode(\"input\", {\n type: \"file\",\n ref: \"excelFileInput\",\n class: \"d-none\",\n onChange: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.changeInputExcelFile && _ctx.changeInputExcelFile(...args))),\n accept: \".xlsx,.xls\"\n }, null, 544)\n ]),\n _: 1\n }))\n}","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { Guid, IBaseModel, Code } from '~/interfaces/base'\r\nimport { BaseState } from '~/classes/system/grid'\r\nimport emptyId from '~/statics/empty-id'\r\nimport { RowStates } from '~/enums/system'\r\n\r\nexport class Position implements BaseState {\r\n id: Guid\r\n rowState: RowStates\r\n title: string\r\n socialSecurityCode?: string\r\n financeDepartmentCode?: string\r\n\r\n constructor() {\r\n this.id = emptyId\r\n this.title = ''\r\n this.rowState = RowStates.New\r\n }\r\n}","import { render } from \"./position-selector.vue?vue&type=template&id=411b2d3f&ts=true\"\nimport script from \"./position-selector.vue?vue&type=script&lang=ts\"\nexport * from \"./position-selector.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./personnel-info.vue?vue&type=template&id=4c8d4973&ts=true\"\nimport script from \"./personnel-info.vue?vue&type=script&lang=ts\"\nexport * from \"./personnel-info.vue?vue&type=script&lang=ts\"\n\nimport \"./personnel-info.vue?vue&type=style&index=0&id=4c8d4973&lang=less\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ $t('install.m.RequireEnLetterOrDigit') }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ $t('install.m.PasswordTooShort') }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ $t('install.m.useSymbol') }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ $t('install.m.useUpperCase') }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ $t('install.m.confirmPassword') }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./user-modify.vue?vue&type=template&id=6966b490\"\nimport script from \"./user-modify.vue?vue&type=script&lang=js\"\nexport * from \"./user-modify.vue?vue&type=script&lang=js\"\n\nimport \"./user-modify.vue?vue&type=style&index=0&id=6966b490&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./boolean-label.vue?vue&type=template&id=2b4ea3ec\"\nimport script from \"./boolean-label.vue?vue&type=script&lang=js\"\nexport * from \"./boolean-label.vue?vue&type=script&lang=js\"\n\nimport \"./boolean-label.vue?vue&type=style&index=0&id=2b4ea3ec&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t{{ settings.icon2 }}\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./nikan-input.vue?vue&type=template&id=16b58f03\"\nimport script from \"./nikan-input.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-input.vue?vue&type=script&lang=js\"\n\nimport \"./nikan-input.vue?vue&type=style&index=0&id=16b58f03&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-flex flex-column h-100\" }\nconst _hoisted_2 = { class: \"nk-card h-100\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_ag_grid = _resolveComponent(\"ag-grid\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n policyClaims: \"Salary_SalaryItem_Management\",\n tabindex: \"101\",\n startup: \"\"\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.SalaryItems')\n }, null, 8, [\"title\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_ag_grid, {\n ref: \"table\",\n options: _ctx.tableOption,\n data: _ctx.items,\n modelValue: _ctx.selectedRows,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedRows) = $event)),\n onPreSelectedRowData: _cache[1] || (_cache[1] = (data) => _ctx.selectedRow = data),\n tabindex: \"105\",\n startup: \"\"\n }, null, 8, [\"options\", \"data\", \"modelValue\"])\n ])\n ])\n ]),\n _: 1\n }))\n}","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
selectedRow = data\" tabindex=\"105\" startup>\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./system-salary-item-list.vue?vue&type=template&id=2fda9436&ts=true\"\nimport script from \"./system-salary-item-list.vue?vue&type=script&lang=ts\"\nexport * from \"./system-salary-item-list.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./nikan-date.vue?vue&type=template&id=7761b0b0\"\nimport script from \"./nikan-date.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-date.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, createCommentVNode as _createCommentVNode, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-flex flex-column h-100\" }\nconst _hoisted_2 = { class: \"steps nk-card\" }\nconst _hoisted_3 = [\"onClick\"]\nconst _hoisted_4 = { class: \"d-none d-lg-block step-title\" }\nconst _hoisted_5 = { class: \"steps-content nk-card mt-3 flex-grow-1 h-100\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"prepare-step\"\n}\nconst _hoisted_7 = { class: \"prepare-step-container\" }\nconst _hoisted_8 = { class: \"operations\" }\nconst _hoisted_9 = { class: \"d-flex justify-content-center\" }\nconst _hoisted_10 = {\n class: \"p-1 bg-white nk-border-radius\",\n style: {\"font-size\":\"15px\",\"position\":\"relative\",\"top\":\"67px\",\"left\":\"79px\",\"height\":\"23px\"}\n}\nconst _hoisted_11 = {\n class: \"text-center primary\",\n style: {\"margin-top\":\"25px\"}\n}\nconst _hoisted_12 = { class: \"font-weight-bold mt-5\" }\nconst _hoisted_13 = { class: \"font-weight-bold\" }\nconst _hoisted_14 = { class: \"nk-bg-lightWarning nk-border-lightWarning nk-border-radius mt-4 p-3\" }\nconst _hoisted_15 = { class: \"d-flex mb-2\" }\nconst _hoisted_16 = { class: \"nk-color-lightWarning\" }\nconst _hoisted_17 = { class: \"d-flex mb-2\" }\nconst _hoisted_18 = { class: \"mr-2\" }\nconst _hoisted_19 = { class: \"d-flex\" }\nconst _hoisted_20 = { class: \"mr-2\" }\nconst _hoisted_21 = {\n key: 1,\n class: \"prepare-step\"\n}\nconst _hoisted_22 = { class: \"prepare-step-container\" }\nconst _hoisted_23 = { class: \"operations\" }\nconst _hoisted_24 = { class: \"form-container\" }\nconst _hoisted_25 = {\n class: \"text-center primary mb-5\",\n style: {\"margin-top\":\"25px\"}\n}\nconst _hoisted_26 = { class: \"w-100\" }\nconst _hoisted_27 = { class: \"w-100 mb-5\" }\nconst _hoisted_28 = { key: 0 }\nconst _hoisted_29 = { class: \"\" }\nconst _hoisted_30 = {\n key: 2,\n class: \"h-100\"\n}\nconst _hoisted_31 = {\n key: 3,\n class: \"prepare-step\"\n}\nconst _hoisted_32 = { class: \"prepare-step-container\" }\nconst _hoisted_33 = { class: \"operations\" }\nconst _hoisted_34 = { class: \"mb-5\" }\nconst _hoisted_35 = {\n class: \"text-center primary\",\n style: {\"margin-top\":\"10px\"}\n}\nconst _hoisted_36 = { class: \"px-3\" }\nconst _hoisted_37 = { class: \"d-inline-flex w-100\" }\nconst _hoisted_38 = {\n class: \"gray-text\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_39 = {\n class: \"\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_40 = { class: \"d-inline-flex w-100\" }\nconst _hoisted_41 = {\n class: \"gray-text\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_42 = {\n class: \"\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_43 = { class: \"d-inline-flex w-100\" }\nconst _hoisted_44 = {\n class: \"gray-text\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_45 = {\n class: \"\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_46 = { class: \"d-inline-flex w-100\" }\nconst _hoisted_47 = {\n class: \"gray-text\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_48 = {\n class: \"\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_49 = { class: \"d-inline-flex w-100\" }\nconst _hoisted_50 = {\n class: \"gray-text\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_51 = {\n class: \"\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_52 = { class: \"d-inline-flex w-100\" }\nconst _hoisted_53 = {\n class: \"gray-text\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_54 = {\n class: \"\",\n style: {\"white-space\":\"nowrap\"}\n}\nconst _hoisted_55 = { class: \"nk-bg-lightWarning nk-border-lightWarning nk-border-radius mt-4 p-3\" }\nconst _hoisted_56 = { class: \"d-flex mb-2\" }\nconst _hoisted_57 = { class: \"nk-color-lightWarning\" }\nconst _hoisted_58 = { class: \"d-flex mb-2\" }\nconst _hoisted_59 = { class: \"mr-2\" }\nconst _hoisted_60 = { class: \"d-flex\" }\nconst _hoisted_61 = { class: \"mr-2\" }\nconst _hoisted_62 = { class: \"d-flex mb-4\" }\nconst _hoisted_63 = { class: \"mr-2\" }\nconst _hoisted_64 = { class: \"step-buttons mt-3\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_icon = _resolveComponent(\"icon\")!\n const _component_nk_dropdown = _resolveComponent(\"nk-dropdown\")!\n const _component_nk_col_form_group = _resolveComponent(\"nk-col-form-group\")!\n const _component_nk_checkbox = _resolveComponent(\"nk-checkbox\")!\n const _component_ag_grid = _resolveComponent(\"ag-grid\")!\n const _component_nk_button = _resolveComponent(\"nk-button\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"System\",\n policyClaims: \"Salary_SalaryPeriod_Copy\",\n class: \"\"\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"accounting\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.CopySalaryPeriod')\n }, null, 8, [\"title\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.values(_ctx.stepKeys), (step) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"step\",\n onClick: ($event: any) => (_ctx.stepClicked(step))\n }, [\n _createVNode(_component_icon, {\n class: _normalizeClass([{ 'step-unlocked': step.resultStatus === _ctx.Status.Success, 'step-active': _ctx.activeStep.key === step.key }, \"step-icon\"]),\n title: step.displayName,\n name: step.icon\n }, null, 8, [\"class\", \"title\", \"name\"]),\n _createElementVNode(\"div\", _hoisted_4, _toDisplayString(step.displayName), 1)\n ], 8, _hoisted_3))\n }), 256))\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.activeStep.key === _ctx.stepKeys.beginning.key)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_icon, {\n style: {\"font-size\":\"75px\"},\n name: \"fa-solid fa-calendar-days\",\n class: \"primary\"\n }),\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_icon, {\n name: \"copy\",\n class: \"primary\"\n })\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"h4\", _hoisted_11, _toDisplayString(_ctx.$t('salary.period-copy.copy-period-title')), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", _hoisted_12, _toDisplayString(_ctx.$t('salary.period-copy.copy-period-welcome')), 1),\n _createElementVNode(\"p\", _hoisted_13, _toDisplayString(_ctx.$t('salary.period-copy.copy-period-explaining')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_icon, {\n style: {\"font-size\":\"17px\"},\n name: \"warning\",\n class: \"text-warning ml-2\"\n }),\n _createElementVNode(\"label\", _hoisted_16, _toDisplayString(_ctx.$t('salary.period-copy.attention')), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_17, [\n _cache[8] || (_cache[8] = _createTextVNode(\" • \")),\n _createElementVNode(\"div\", _hoisted_18, _toDisplayString(_ctx.$t('salary.period-copy.exit-warning')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _cache[9] || (_cache[9] = _createTextVNode(\" • \")),\n _createElementVNode(\"div\", _hoisted_20, _toDisplayString(_ctx.$t('salary.period-copy.current-period-data-editing-warning')), 1)\n ])\n ])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.activeStep.key === _ctx.stepKeys.selectReference.key)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [\n _createElementVNode(\"div\", _hoisted_22, [\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"h4\", _hoisted_25, _toDisplayString(_ctx.$t('salary.period-copy.select-reference')), 1),\n _createElementVNode(\"div\", _hoisted_26, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.period-copy.fiscal-period') + ':',\n labelSizes: { sm: 3, md: 3 },\n labelAligns: { sm: 'right', md: 'right', lg: 'right' },\n dataSizes: { sm: 9, md: 9 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.selectedResourceFiscalPeriod,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event: any) => ((_ctx.localData.selectedResourceFiscalPeriod) = $event)),\n _ctx.getSalaryPeriods\n ],\n data: _ctx.fiscalPeriods(),\n options: _ctx.componentOptions.dropFiscalPeriods,\n tabindex: 100,\n ref: \"fiscalPeriods\"\n }, null, 8, [\"modelValue\", \"data\", \"options\", \"onUpdate:modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_27, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.period-copy.salary-period') + ':',\n labelSizes: { sm: 3, md: 3 },\n labelAligns: { sm: 'right', md: 'right', lg: 'right' },\n dataSizes: { sm: 9, md: 9 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.selectedResourceSalaryPeriod,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.localData.selectedResourceSalaryPeriod) = $event)),\n data: _ctx.salaryPeriods,\n options: _ctx.componentOptions.dropFiscalPeriods,\n tabindex: 100,\n ref: \"fiscalPeriods\"\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n (_ctx.localData.selectedResourceSalaryPeriod)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_28, [\n _createElementVNode(\"label\", _hoisted_29, _toDisplayString(_ctx.$t('salary.period-copy.from-salary-period-copy-these', { name: _ctx.localData.selectedResourceSalaryPeriod.displayName })), 1),\n _createVNode(_component_nk_checkbox, {\n class: \"\",\n type: \"checkbox\",\n tabindex: 200,\n options: _ctx.componentOptions.helperTableChb,\n modelValue: _ctx.localData.copyHelper,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.localData.copyHelper) = $event))\n }, null, 8, [\"options\", \"modelValue\"]),\n _createVNode(_component_nk_checkbox, {\n class: \"\",\n type: \"checkbox\",\n tabindex: 202,\n options: _ctx.componentOptions.settingChb,\n modelValue: _ctx.localData.copySettings,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.localData.copySettings) = $event))\n }, null, 8, [\"options\", \"modelValue\"]),\n _createVNode(_component_nk_checkbox, {\n class: \"\",\n type: \"checkbox\",\n tabindex: 204,\n options: _ctx.componentOptions.usageChb,\n modelValue: _ctx.localData.copyUsage,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.localData.copyUsage) = $event))\n }, null, 8, [\"options\", \"modelValue\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.activeStep.key === _ctx.stepKeys.personnelList.key)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_30, [\n _createVNode(_component_ag_grid, {\n options: _ctx.componentOptions.personnelTable,\n data: _ctx.contracts,\n modelValue: _ctx.localData.selectedContracts,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.localData.selectedContracts) = $event)),\n onDestroyed: _cache[6] || (_cache[6] = () => _ctx.contracts = []),\n ref: \"table\"\n }, null, 8, [\"options\", \"data\", \"modelValue\"])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.activeStep.key === _ctx.stepKeys.review.key)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_31, [\n _createElementVNode(\"div\", _hoisted_32, [\n _createElementVNode(\"div\", _hoisted_33, [\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"h4\", _hoisted_35, _toDisplayString(_ctx.$t('salary.period-copy.steps.Review')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_36, [\n _createElementVNode(\"div\", _hoisted_37, [\n _createElementVNode(\"label\", _hoisted_38, _toDisplayString(_ctx.$t('salary.period-copy.start-period')), 1),\n _cache[10] || (_cache[10] = _createElementVNode(\"hr\", {\n class: \"w-100 gray-text\",\n style: {\"border-top\":\"1px dashed lightgray\"}\n }, null, -1)),\n _createElementVNode(\"label\", _hoisted_39, _toDisplayString(_ctx.localData.selectedResourceSalaryPeriod?.displayName), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_40, [\n _createElementVNode(\"label\", _hoisted_41, _toDisplayString(_ctx.$t('salary.period-copy.destination-period')), 1),\n _cache[11] || (_cache[11] = _createElementVNode(\"hr\", {\n class: \"w-100 gray-text\",\n style: {\"border-top\":\"1px dashed lightgray\"}\n }, null, -1)),\n _createElementVNode(\"label\", _hoisted_42, _toDisplayString(_ctx.getSalaryPeriod.displayName), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_43, [\n _createElementVNode(\"label\", _hoisted_44, _toDisplayString(_ctx.$t('salary.period-copy.personnel-count')), 1),\n _cache[12] || (_cache[12] = _createElementVNode(\"hr\", {\n class: \"w-100 gray-text\",\n style: {\"border-top\":\"1px dashed lightgray\"}\n }, null, -1)),\n _createElementVNode(\"label\", _hoisted_45, _toDisplayString(_ctx.localData.selectedContracts.length), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_46, [\n _createElementVNode(\"label\", _hoisted_47, _toDisplayString(_ctx.$t('salary.period-copy.copy-monthly-usage')), 1),\n _cache[13] || (_cache[13] = _createElementVNode(\"hr\", {\n class: \"w-100 gray-text\",\n style: {\"border-top\":\"1px dashed lightgray\"}\n }, null, -1)),\n _createElementVNode(\"label\", _hoisted_48, _toDisplayString(_ctx.$t(`boolean-yes-no.${_ctx.localData.copyUsage}`)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_49, [\n _createElementVNode(\"label\", _hoisted_50, _toDisplayString(_ctx.$t('salary.period-copy.copy-contract-tables')), 1),\n _cache[14] || (_cache[14] = _createElementVNode(\"hr\", {\n class: \"w-100 gray-text\",\n style: {\"border-top\":\"1px dashed lightgray\"}\n }, null, -1)),\n _createElementVNode(\"label\", _hoisted_51, _toDisplayString(_ctx.$t(`boolean-yes-no.${_ctx.localData.copyHelper}`)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_52, [\n _createElementVNode(\"label\", _hoisted_53, _toDisplayString(_ctx.$t('salary.period-copy.copy-settings')), 1),\n _cache[15] || (_cache[15] = _createElementVNode(\"hr\", {\n class: \"w-100 gray-text\",\n style: {\"border-top\":\"1px dashed lightgray\"}\n }, null, -1)),\n _createElementVNode(\"label\", _hoisted_54, _toDisplayString(_ctx.$t(`boolean-yes-no.${_ctx.localData.copySettings}`)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_55, [\n _createElementVNode(\"div\", _hoisted_56, [\n _createVNode(_component_icon, {\n style: {\"font-size\":\"17px\"},\n name: \"warning\",\n class: \"text-warning ml-2\"\n }),\n _createElementVNode(\"label\", _hoisted_57, _toDisplayString(_ctx.$t('salary.period-copy.attention')), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_58, [\n _cache[16] || (_cache[16] = _createTextVNode(\" • \")),\n _createElementVNode(\"div\", _hoisted_59, _toDisplayString(_ctx.$t('salary.period-copy.replace-duplicate-personnel')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_60, [\n _cache[17] || (_cache[17] = _createTextVNode(\" • \")),\n _createElementVNode(\"div\", _hoisted_61, _toDisplayString(_ctx.$t('salary.period-copy.replace-contract-table')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_62, [\n _cache[18] || (_cache[18] = _createTextVNode(\" • \")),\n _createElementVNode(\"div\", _hoisted_63, _toDisplayString(_ctx.$t('salary.period-copy.replace-settings')), 1)\n ]),\n _createVNode(_component_nk_checkbox, {\n class: \"\",\n type: \"checkbox\",\n tabindex: 400,\n options: _ctx.componentOptions.textApproval,\n modelValue: _ctx.localData.textApproval,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.localData.textApproval) = $event))\n }, null, 8, [\"options\", \"modelValue\"])\n ])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_64, [\n _createVNode(_component_nk_button, {\n class: \"step-button\",\n options: _ctx.componentOptions.nextButton,\n onClick: _ctx.nextButtonClicked,\n tabindex: 201\n }, null, 8, [\"options\", \"onClick\"]),\n (_ctx.activeStep.index > 0)\n ? (_openBlock(), _createBlock(_component_nk_button, {\n key: 0,\n class: \"step-button\",\n options: _ctx.componentOptions.prevButton,\n onClick: _ctx.prevButtonClicked,\n tabindex: 202\n }, null, 8, [\"options\", \"onClick\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _: 1\n }))\n}","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
{{ step.displayName }}
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
{{ $t('salary.period-copy.copy-period-title') }}
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
{{ $t('salary.period-copy.copy-period-welcome') }}
\r\n\t\t\t\t\t\t\t\t
{{ $t('salary.period-copy.copy-period-explaining') }}
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t•\r\n\t\t\t\t\t\t\t\t\t\t
{{ $t('salary.period-copy.exit-warning') }}
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t•\r\n\t\t\t\t\t\t\t\t\t\t
{{ $t('salary.period-copy.current-period-data-editing-warning') }}
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
contracts = []\" ref=\"table\">\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
{{ $t('salary.period-copy.steps.Review') }}
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t•\r\n\t\t\t\t\t\t\t\t\t\t
{{ $t('salary.period-copy.replace-duplicate-personnel') }}
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t•\r\n\t\t\t\t\t\t\t\t\t\t
{{ $t('salary.period-copy.replace-contract-table') }}
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t•\r\n\t\t\t\t\t\t\t\t\t\t
{{ $t('salary.period-copy.replace-settings') }}
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\r\n\t\t\t\t
\r\n\r\n\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t 0\" class=\"step-button\" :options=\"componentOptions.prevButton\" @click=\"prevButtonClicked\" :tabindex=\"202\">\r\n\t\t\t\t\r\n\t\t\t
\r\n\r\n\t\t
\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./copy-period.vue?vue&type=template&id=45704c17&scoped=true&ts=true\"\nimport script from \"./copy-period.vue?vue&type=script&lang=ts\"\nexport * from \"./copy-period.vue?vue&type=script&lang=ts\"\n\nimport \"./copy-period.vue?vue&type=style&index=0&id=45704c17&lang=less&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-45704c17\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, vShow as _vShow, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"container-fluid h-100\" }\nconst _hoisted_2 = { class: \"row flex-row-reverse h-100 form-container\" }\nconst _hoisted_3 = { class: \"w-100\" }\nconst _hoisted_4 = { class: \"row\" }\nconst _hoisted_5 = { class: \"col-12\" }\nconst _hoisted_6 = { class: \"row\" }\nconst _hoisted_7 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_8 = { class: \"row\" }\nconst _hoisted_9 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_10 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_11 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_12 = { class: \"row\" }\nconst _hoisted_13 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_14 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_15 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_16 = { class: \"row\" }\nconst _hoisted_17 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_18 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_19 = {\n key: 0,\n class: \"col-12 col-sm-4\"\n}\nconst _hoisted_20 = { class: \"row\" }\nconst _hoisted_21 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_22 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_23 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_24 = { class: \"d-flex\" }\nconst _hoisted_25 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_26 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_27 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_28 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_29 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_30 = { class: \"nk-card\" }\nconst _hoisted_31 = { class: \"row mt-1\" }\nconst _hoisted_32 = { class: \"col-12 col-sm-3\" }\nconst _hoisted_33 = { class: \"grid-wrapper nk-border-radius-extra nk-bg-gray p-3 px-3 pt-3 mb-2\" }\nconst _hoisted_34 = {\n column: \"2\",\n row: \"1\",\n class: \"parentheses\"\n}\nconst _hoisted_35 = { class: \"nk-bg-gray p-2 text-center nk-border-radius-extra pb-4\" }\nconst _hoisted_36 = { class: \"font-weight-bold font-medium\" }\nconst _hoisted_37 = {\n class: \"y-overflow-auto\",\n style: {\"height\":\"95px\"}\n}\nconst _hoisted_38 = {\n class: \"bg-white nk-border-radius w-100 pl-1 pr-2 mb-1\",\n style: {\"border-radius\":\"7px\"}\n}\nconst _hoisted_39 = { class: \"d-flex justify-content-between cursor-pointer\" }\nconst _hoisted_40 = [\"onClick\"]\nconst _hoisted_41 = { class: \"col-12 col-sm-9 pr-1\" }\nconst _hoisted_42 = {\n class: \"border nk-border-radius-extra w-100 mb-1\",\n style: {}\n}\nconst _hoisted_43 = { class: \"row no-gutters mt-2\" }\nconst _hoisted_44 = { class: \"col-12 col-sm-8\" }\nconst _hoisted_45 = {\n class: \"nk-bg-gray p-2 text-center nk-border-radius-extra d-flex flex-column ml-2 h-100\",\n style: {}\n}\nconst _hoisted_46 = { class: \"font-weight-bold font-medium\" }\nconst _hoisted_47 = { class: \"col-12 col-sm-4\" }\nconst _hoisted_48 = { class: \"nk-bg-gray p-2 text-center nk-border-radius-extra pb-4 mb-1\" }\nconst _hoisted_49 = { class: \"d-flex justify-content-between px-2\" }\nconst _hoisted_50 = {\n class: \"font-weight-bold font-medium\",\n style: {\"margin-right\":\"40%\"}\n}\nconst _hoisted_51 = {\n class: \"y-overflow-auto\",\n style: {\"height\":\"90px\"}\n}\nconst _hoisted_52 = {\n class: \"bg-white nk-border-radius w-100 px-2 mb-1\",\n style: {\"border-radius\":\"7px\"}\n}\nconst _hoisted_53 = [\"onClick\"]\nconst _hoisted_54 = { class: \"d-flex justify-content-between cursor-pointer w-75\" }\nconst _hoisted_55 = { class: \"font-weight-light font-weight-bolder\" }\nconst _hoisted_56 = { class: \"font-weight-light\" }\nconst _hoisted_57 = {\n tabindex: \"0\",\n class: \"text-left group-buttons\"\n}\nconst _hoisted_58 = {\n key: 0,\n class: \"bg-white nk-border-radius w-100 px-2 mb-1 text-center font-weight-light\"\n}\nconst _hoisted_59 = { class: \"nk-bg-gray p-2 text-center nk-border-radius-extra pb-4\" }\nconst _hoisted_60 = { class: \"font-weight-bold font-medium\" }\nconst _hoisted_61 = {\n class: \"y-overflow-auto\",\n style: {\"height\":\"90px\"}\n}\nconst _hoisted_62 = {\n class: \"bg-white nk-border-radius w-100 pl-1 pr-2 mb-1\",\n style: {\"border-radius\":\"7px\"}\n}\nconst _hoisted_63 = [\"onClick\"]\nconst _hoisted_64 = { class: \"font-weight-light font-weight-bolder\" }\nconst _hoisted_65 = { class: \"font-weight-light\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_nk_switch = _resolveComponent(\"nk-switch\")!\n const _component_nk_col_form_group = _resolveComponent(\"nk-col-form-group\")!\n const _component_nk_input = _resolveComponent(\"nk-input\")!\n const _component_nk_dropdown = _resolveComponent(\"nk-dropdown\")!\n const _component_nk_date = _resolveComponent(\"nk-date\")!\n const _component_nk_dropdown_account = _resolveComponent(\"nk-dropdown-account\")!\n const _component_nk_checkbox = _resolveComponent(\"nk-checkbox\")!\n const _component_nk_stab = _resolveComponent(\"nk-stab\")!\n const _component_nk_stabs = _resolveComponent(\"nk-stabs\")!\n const _component_Editor = _resolveComponent(\"Editor\")!\n const _component_ag_grid = _resolveComponent(\"ag-grid\")!\n const _component_icon = _resolveComponent(\"icon\")!\n const _component_nk_button = _resolveComponent(\"nk-button\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n policyClaims: { or: [`Salary_SalaryItem_Add`, `Salary_SalaryItem_Edit`] },\n \"body-class\": \"d-flex flex-column\",\n buttons: Object.values(_ctx.bottomButtons)\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"Salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.salaryItem')\n }, null, 8, [\"title\"]),\n _createVNode(_component_nk_badge_item, {\n type: \"edition\",\n modelValue: _ctx.settings.mode === _ctx.FORM_MODES.READONLY ? _ctx.FORM_MODES.READONLY : (_ctx.isEmpty(_ctx.localData.id) ? 'new' : 'edit')\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_nk_stabs, {\n class: \"nk-card\",\n activeTab: 'item-info',\n tabindex: 100,\n scrollable: true\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_stab, {\n id: 'item-info',\n name: _ctx.$t('salary.item-information')\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.active') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_switch, {\n modelValue: _ctx.localData.isActive,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.localData.isActive) = $event)),\n tabindex: 101\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.item-code') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.code,\n modelValue: _ctx.localData.code,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.localData.code) = $event)),\n tabindex: 102,\n onBlur: _ctx.onBlurCode,\n ref: \"inputCode\",\n onSearchClick: _ctx.allItems,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode\n }, null, 8, [\"options\", \"modelValue\", \"onBlur\", \"onSearchClick\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.item-name') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.name,\n modelValue: _ctx.localData.name,\n \"onUpdate:modelValue\": [\n _cache[2] || (_cache[2] = ($event: any) => ((_ctx.localData.name) = $event)),\n _cache[3] || (_cache[3] = (val) => { if (_ctx.retrieveIsEmpty()) _ctx.localData.displayName = val })\n ],\n tabindex: 103,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode,\n startup: \"\"\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.display-name') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.displayName,\n modelValue: _ctx.localData.displayName,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.localData.displayName) = $event)),\n tabindex: 104,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.data-type') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.selectedDataType,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.localData.selectedDataType) = $event)),\n data: _ctx.dataTypes,\n options: _ctx.componentOptions.dataType,\n tabindex: 106,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode\n }, null, 8, [\"modelValue\", \"data\", \"options\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.function-type') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.selectedFunctionType,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.localData.selectedFunctionType) = $event)),\n data: _ctx.filteredFunctionTypes,\n options: _ctx.componentOptions.functionType,\n tabindex: 107,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode\n }, null, 8, [\"modelValue\", \"data\", \"options\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.data-entry') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.selectedDataEntry,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.localData.selectedDataEntry) = $event)),\n data: _ctx.entryTypes,\n options: _ctx.componentOptions.dataEntry,\n tabindex: 108,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode\n }, null, 8, [\"modelValue\", \"data\", \"options\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", _hoisted_17, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.item-type') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.selectedItemType,\n \"onUpdate:modelValue\": [\n _cache[8] || (_cache[8] = ($event: any) => ((_ctx.localData.selectedItemType) = $event)),\n _cache[9] || (_cache[9] = ($event: any) => (_ctx.ignoreNonPrivilegeCalcChanged(false)))\n ],\n data: _ctx.itemTypes,\n options: _ctx.componentOptions.itemType,\n tabindex: 110,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode\n }, null, 8, [\"modelValue\", \"data\", \"options\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_18, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.default-value') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n (!_ctx.localData.selectedDataType || _ctx.localData.selectedDataType?.id !== _ctx.SalaryItemDataTypes.Date)\n ? (_openBlock(), _createBlock(_component_nk_input, {\n key: 0,\n options: _ctx.localData.selectedDataType?.id === _ctx.SalaryItemDataTypes.Time ? _ctx.componentOptions.defaultValueTime : _ctx.componentOptions.defaultValue,\n modelValue: _ctx.localData.defaultValue,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.localData.defaultValue) = $event)),\n tabindex: 111,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.localData.selectedDataType?.id === _ctx.SalaryItemDataTypes.Date)\n ? (_openBlock(), _createBlock(_component_nk_date, {\n key: 1,\n ref: \"docDate\",\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode ? true : null,\n options: _ctx.componentOptions.defaultValueDate,\n modelValue: _ctx.localData.defaultValue,\n \"onUpdate:modelValue\": _cache[11] || (_cache[11] = ($event: any) => ((_ctx.localData.defaultValue) = $event)),\n tabindex: 111\n }, null, 8, [\"disabled\", \"options\", \"modelValue\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n (_ctx.localData.selectedDataType && ![_ctx.SalaryItemDataTypes.Date, _ctx.SalaryItemDataTypes.String].some((x) => _ctx.localData.selectedDataType?.id === x))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.max-value') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n (_ctx.localData.selectedDataType.id === _ctx.SalaryItemDataTypes.Time)\n ? (_openBlock(), _createBlock(_component_nk_input, {\n key: 0,\n options: _ctx.componentOptions.defaultValueTime,\n modelValue: _ctx.timeMaxValue,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.timeMaxValue) = $event)),\n tabindex: 112,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"]))\n : (_openBlock(), _createBlock(_component_nk_input, {\n key: 1,\n options: _ctx.componentOptions.maxValue,\n modelValue: _ctx.localData.maxValue,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = ($event: any) => ((_ctx.localData.maxValue) = $event)),\n tabindex: 112,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"]))\n ]),\n _: 1\n }, 8, [\"label\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _cache[41] || (_cache[41] = _createElementVNode(\"div\", { class: \"row\" }, null, -1)),\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.account') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown_account, {\n modelValue: _ctx.localData.selectedAccount,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((_ctx.localData.selectedAccount) = $event)),\n options: _ctx.componentOptions.account,\n tabindex: 113,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode\n }, null, 8, [\"modelValue\", \"options\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_22, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.include-insurance') + ':',\n labelSizes: { sm: 10 },\n dataSizes: { sm: 2 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_checkbox, {\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[15] || (_cache[15] = (val) => { _ctx.localData.includeInsurance = val; _ctx.ignoreNonPrivilegeCalcChanged(false) }),\n checked: _ctx.localData.includeInsurance,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode,\n tabindex: 114\n }, null, 8, [\"checked\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_23, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.include-tax') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_24, [\n _createVNode(_component_nk_checkbox, {\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[16] || (_cache[16] = (val) => { _ctx.localData.includeTax = val; _ctx.ignoreNonPrivilegeCalcChanged(false) }),\n checked: _ctx.localData.includeTax,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode,\n tabindex: 115\n }, null, 8, [\"checked\", \"disabled\"]),\n _withDirectives(_createElementVNode(\"label\", {\n class: \"mt-1\",\n style: {\"text-align\":\"center\"}\n }, _toDisplayString('( ' + _ctx.$t('salary.item.decrease-tax') + ' )'), 513), [\n [_vShow, _ctx.localData.selectedItemType?.id === 'Deductions']\n ])\n ])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.resultFunction') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_dropdown, {\n modelValue: _ctx.localData.resultFunctionCode,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = ($event: any) => ((_ctx.localData.resultFunctionCode) = $event)),\n data: _ctx.resultMethods,\n options: _ctx.componentOptions.resultMethods,\n tabindex: 116\n }, null, 8, [\"modelValue\", \"data\", \"options\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.continuous') + ':',\n labelSizes: { sm: 10 },\n dataSizes: { sm: 2 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_checkbox, {\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[18] || (_cache[18] = (val) => _ctx.localData.continuous = val),\n checked: _ctx.localData.continuous,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode,\n tabindex: 117\n }, null, 8, [\"checked\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_27, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.nonCash') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_checkbox, {\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[19] || (_cache[19] = (val) => _ctx.localData.nonCash = val),\n checked: _ctx.localData.nonCash,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode,\n tabindex: 118\n }, null, 8, [\"checked\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_28, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.orderIndex') + ':',\n labelSizes: { sm: 4 },\n dataSizes: { sm: 8 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_input, {\n options: _ctx.componentOptions.number,\n modelValue: _ctx.localData.orderIndex,\n \"onUpdate:modelValue\": _cache[20] || (_cache[20] = ($event: any) => ((_ctx.localData.orderIndex) = $event)),\n tabindex: 119,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode,\n tabIndex: 119\n }, null, 8, [\"options\", \"modelValue\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_29, [\n _createVNode(_component_nk_col_form_group, {\n label: _ctx.$t('salary.item.ignoreNonPrivilegeCalc') + ':',\n labelSizes: { sm: 10 },\n dataSizes: { sm: 2 }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_checkbox, {\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[21] || (_cache[21] = (val) => _ctx.ignoreNonPrivilegeCalcChanged(val)),\n checked: _ctx.localData.ignoreNonPrivilegeCalc,\n disabled: _ctx.FORM_MODES.READONLY === _ctx.settings.mode,\n tabIndex: 120\n }, null, 8, [\"checked\", \"disabled\"])\n ]),\n _: 1\n }, 8, [\"label\"])\n ], 512), [\n [_vShow, _ctx.localData.type === _ctx.SalaryItemTypes.Privilege]\n ])\n ])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"name\"])\n ]),\n _: 1\n }),\n _withDirectives(_createElementVNode(\"div\", _hoisted_30, [\n _createVNode(_component_nk_stabs, {\n activeTab: 'define-function',\n scrollable: false,\n tabindex: 0\n }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_stab, {\n id: 'define-function',\n name: _ctx.$t('salary.item.define-function')\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"div\", _hoisted_32, [\n _createElementVNode(\"div\", _hoisted_33, [\n _createElementVNode(\"div\", {\n onClick: _cache[22] || (_cache[22] = ($event: any) => (_ctx.addToEditor('/'))),\n column: \"4\",\n row: \"1\",\n class: \"operator\"\n }, \"÷\"),\n _createElementVNode(\"div\", {\n onClick: _cache[23] || (_cache[23] = ($event: any) => (_ctx.addToEditor('number', '3'))),\n column: \"3\",\n row: \"1\"\n }, \"3\"),\n _createElementVNode(\"div\", {\n onClick: _cache[24] || (_cache[24] = ($event: any) => (_ctx.addToEditor('number', '2'))),\n column: \"2\",\n row: \"1\"\n }, \"2\"),\n _createElementVNode(\"div\", {\n onClick: _cache[25] || (_cache[25] = ($event: any) => (_ctx.addToEditor('number', '1'))),\n column: \"1\",\n row: \"1\"\n }, \"1\"),\n _createElementVNode(\"div\", {\n onClick: _cache[26] || (_cache[26] = ($event: any) => (_ctx.addToEditor('*'))),\n column: \"4\",\n row: \"1\",\n class: \"operator\"\n }, \"x\"),\n _createElementVNode(\"div\", {\n onClick: _cache[27] || (_cache[27] = ($event: any) => (_ctx.addToEditor('number', '6'))),\n column: \"3\",\n row: \"1\"\n }, \"6\"),\n _createElementVNode(\"div\", {\n onClick: _cache[28] || (_cache[28] = ($event: any) => (_ctx.addToEditor('number', '5'))),\n column: \"2\",\n row: \"1\"\n }, \"5\"),\n _createElementVNode(\"div\", {\n onClick: _cache[29] || (_cache[29] = ($event: any) => (_ctx.addToEditor('number', '4'))),\n column: \"1\",\n row: \"1\"\n }, \"4\"),\n _createElementVNode(\"div\", {\n onClick: _cache[30] || (_cache[30] = ($event: any) => (_ctx.addToEditor('-'))),\n column: \"4\",\n row: \"1\",\n class: \"operator\"\n }, \"-\"),\n _createElementVNode(\"div\", {\n onClick: _cache[31] || (_cache[31] = ($event: any) => (_ctx.addToEditor('number', '9'))),\n column: \"3\",\n row: \"1\"\n }, \"9\"),\n _createElementVNode(\"div\", {\n onClick: _cache[32] || (_cache[32] = ($event: any) => (_ctx.addToEditor('number', '8'))),\n column: \"2\",\n row: \"1\"\n }, \"8\"),\n _createElementVNode(\"div\", {\n onClick: _cache[33] || (_cache[33] = ($event: any) => (_ctx.addToEditor('number', '7'))),\n column: \"1\",\n row: \"1\"\n }, \"7\"),\n _createElementVNode(\"div\", {\n onClick: _cache[34] || (_cache[34] = ($event: any) => (_ctx.addToEditor('+'))),\n column: \"4\",\n row: \"1\",\n class: \"operator\"\n }, \"+\"),\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"div\", {\n onClick: _cache[35] || (_cache[35] = ($event: any) => (_ctx.addToEditor(')'))),\n class: \"parentheses w-50\"\n }, \"(\"),\n _createElementVNode(\"div\", {\n onClick: _cache[36] || (_cache[36] = ($event: any) => (_ctx.addToEditor('('))),\n class: \"parentheses w-50\"\n }, \")\")\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[37] || (_cache[37] = ($event: any) => (_ctx.addToEditor('number', '0'))),\n column: \"3\",\n row: \"1\"\n }, \"0\"),\n _createElementVNode(\"div\", {\n onClick: _cache[38] || (_cache[38] = ($event: any) => (_ctx.addToEditor('number', '.'))),\n column: \"1\",\n row: \"1\",\n class: \"text-large\"\n }, \".\")\n ]),\n _createElementVNode(\"div\", _hoisted_35, [\n _createElementVNode(\"label\", _hoisted_36, _toDisplayString(_ctx.$t('salary.item.contract-fields')), 1),\n _createElementVNode(\"div\", _hoisted_37, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.contractFields, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_38, [\n _createElementVNode(\"div\", _hoisted_39, [\n _createElementVNode(\"label\", {\n onClick: ($event: any) => (_ctx.addToEditor('contractField', { displayName: item.pName, field: item.name })),\n class: \"font-weight-light font-weight-bolder\"\n }, _toDisplayString(item.pName), 9, _hoisted_40)\n ])\n ]))\n }), 256))\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_41, [\n _createElementVNode(\"div\", _hoisted_42, [\n _createVNode(_component_Editor, {\n expression: _ctx.localData.jsonFormula,\n ref: \"editor\"\n }, null, 8, [\"expression\"])\n ]),\n _createElementVNode(\"div\", _hoisted_43, [\n _createElementVNode(\"div\", _hoisted_44, [\n _createElementVNode(\"div\", _hoisted_45, [\n _createElementVNode(\"label\", _hoisted_46, _toDisplayString(_ctx.$t('salary.item.salary-items')), 1),\n _createVNode(_component_ag_grid, {\n class: \"flex-grow-1\",\n options: _ctx.tableOption,\n data: _ctx.itemsWithoutCurrent,\n modelValue: _ctx.selectedRow,\n \"onUpdate:modelValue\": _cache[39] || (_cache[39] = ($event: any) => ((_ctx.selectedRow) = $event)),\n onRow_dbClicked: _cache[40] || (_cache[40] = (val) => _ctx.addToEditor('salaryItem', { title: val.name, code: val.id }))\n }, null, 8, [\"options\", \"data\", \"modelValue\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_47, [\n _createElementVNode(\"div\", _hoisted_48, [\n _createElementVNode(\"div\", _hoisted_49, [\n _createElementVNode(\"label\", _hoisted_50, _toDisplayString(_ctx.$t('salary.item.variables')), 1),\n _createVNode(_component_icon, {\n class: \"pt-2 cursor-pointer\",\n icon: \"plus\",\n group: \"solid\",\n onClick: _ctx.modifyVariable\n }, null, 8, [\"onClick\"])\n ]),\n _createElementVNode(\"div\", _hoisted_51, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.variables, (variable) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_52, [\n _createElementVNode(\"div\", {\n class: \"d-flex justify-content-between pt-1\",\n onClick: ($event: any) => (_ctx.addToEditor('variable', { displayName: variable.title, code: variable.id }))\n }, [\n _createElementVNode(\"div\", _hoisted_54, [\n _createElementVNode(\"label\", _hoisted_55, _toDisplayString(variable.title), 1),\n _createElementVNode(\"label\", _hoisted_56, _toDisplayString(_ctx.$t('salary.variable.value') + ' : ' + variable.value), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_57, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.variableButtons, (button) => {\n return (_openBlock(), _createBlock(_component_nk_button, {\n class: _normalizeClass([button.class, \"\"]),\n onClick: () => button.handler(variable),\n onSubmit: button.handler,\n options: button.options\n }, null, 8, [\"class\", \"onClick\", \"onSubmit\", \"options\"]))\n }), 256))\n ])\n ], 8, _hoisted_53)\n ]))\n }), 256)),\n (!_ctx.variables.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_58, _toDisplayString(_ctx.$t('notifications.not-found-any')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_59, [\n _createElementVNode(\"label\", _hoisted_60, _toDisplayString(_ctx.$t('salary.item.functions')), 1),\n _createElementVNode(\"div\", _hoisted_61, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.functions, (func) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_62, [\n _createElementVNode(\"div\", {\n onClick: ($event: any) => (_ctx.addToEditor('function', { displayName: func.pName, func: func.name, min: func.minArg, max: func.maxArg })),\n class: \"d-flex flex-nowrap justify-content-between x-overflow-auto cursor-pointer\"\n }, [\n _createElementVNode(\"label\", _hoisted_64, _toDisplayString(func.pName), 1),\n _createElementVNode(\"label\", _hoisted_65, _toDisplayString(func.argument), 1)\n ], 8, _hoisted_63)\n ]))\n }), 256))\n ])\n ])\n ])\n ])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"name\"])\n ]),\n _: 1\n })\n ], 512), [\n [_vShow, _ctx.localData.selectedFunctionType?.id === _ctx.SalaryItemActionTypes.Computational]\n ])\n ])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"buttons\"]))\n}","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t { if (retrieveIsEmpty()) localData.displayName = val }\" :tabindex=\"103\" :disabled=\"FORM_MODES.READONLY === settings.mode\" startup>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
localData.selectedDataType?.id === x)\" class=\"col-12 col-sm-4\">\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t { localData.includeInsurance = val; ignoreNonPrivilegeCalcChanged(false) }\" :checked=\"localData.includeInsurance\" :disabled=\"FORM_MODES.READONLY === settings.mode\" :tabindex=\"114\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t { localData.includeTax = val; ignoreNonPrivilegeCalcChanged(false) }\" :checked=\"localData.includeTax\" :disabled=\"FORM_MODES.READONLY === settings.mode\" :tabindex=\"115\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t localData.continuous = val\" :checked=\"localData.continuous\" :disabled=\"FORM_MODES.READONLY === settings.mode\" :tabindex=\"117\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t localData.nonCash = val\" :checked=\"localData.nonCash\" :disabled=\"FORM_MODES.READONLY === settings.mode\" :tabindex=\"118\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t ignoreNonPrivilegeCalcChanged(val)\" :checked=\"localData.ignoreNonPrivilegeCalc\" :disabled=\"FORM_MODES.READONLY === settings.mode\" :tabIndex=\"120\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
÷
\r\n\t\t\t\t\t\t\t\t\t\t\t
3
\r\n\t\t\t\t\t\t\t\t\t\t\t
2
\r\n\t\t\t\t\t\t\t\t\t\t\t
1
\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t
x
\r\n\t\t\t\t\t\t\t\t\t\t\t
6
\r\n\t\t\t\t\t\t\t\t\t\t\t
5
\r\n\t\t\t\t\t\t\t\t\t\t\t
4
\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t
-
\r\n\t\t\t\t\t\t\t\t\t\t\t
9
\r\n\t\t\t\t\t\t\t\t\t\t\t
8
\r\n\t\t\t\t\t\t\t\t\t\t\t
7
\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t
+
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
(
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
)
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
0
\r\n\t\t\t\t\t\t\t\t\t\t\t
.
\r\n\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
addToEditor('salaryItem', { title: val.name, code: val.id })\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t button.handler(variable)\" @submit=\"button.handler\" :options=\"button.options\" class=\"\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{{ $t('notifications.not-found-any') }}
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n\r\n","import { Guid, IBaseModel } from '@/interfaces/base'\r\nimport emptyId from '@/statics/empty-id'\r\nimport { i18nInstance } from '@/plugins/localization'\r\n\r\nexport class Function implements IBaseModel {\r\n\r\n\tid: Guid = emptyId\r\n\tname!: string\r\n\tmaxArg!: number\r\n\tminArg!: number\r\n\r\n}\r\n\r\nexport class ConvFunction extends Function {\r\n\tpName!: string\r\n\targument!: string\r\n\r\n\tconstructor(init?: Partial) {\r\n\t\tsuper()\r\n\t\tObject.assign(this, init)\r\n\t\t// @ts-ignore\r\n\t\tif (this.name) this.pName = i18nInstance.global.t(`salary.item.function-names.${this.name}`)\r\n\t\tif (this.maxArg && this.minArg) this.argument = i18nInstance.global.t('salary.item.function-argument', { maxArg: this.maxArg, minArg: this.minArg })\r\n\t}\r\n\r\n}","import { render } from \"./salary-item-modify.vue?vue&type=template&id=ee9c96f4&scoped=true&ts=true\"\nimport script from \"./salary-item-modify.vue?vue&type=script&lang=ts\"\nexport * from \"./salary-item-modify.vue?vue&type=script&lang=ts\"\n\nimport \"./salary-item-modify.vue?vue&type=style&index=0&id=ee9c96f4&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ee9c96f4\"]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./product-price-group-modify.vue?vue&type=template&id=7e52479a\"\nimport script from \"./product-price-group-modify.vue?vue&type=script&lang=js\"\nexport * from \"./product-price-group-modify.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./auto-account-selector.vue?vue&type=template&id=d046cb26\"\nimport script from \"./auto-account-selector.vue?vue&type=script&lang=js\"\nexport * from \"./auto-account-selector.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\r\n\t\t\t{{ settings.title }}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./input-button.vue?vue&type=template&id=b8a6549c\"\nimport script from \"./input-button.vue?vue&type=script&lang=js\"\nexport * from \"./input-button.vue?vue&type=script&lang=js\"\n\nimport \"./input-button.vue?vue&type=style&index=0&id=b8a6549c&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
-1 ? 'active' : '']\">\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{{ $t(`import-from-excel-map.steps.${step}.description`) }}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
-1 ? 'active' : '']\">\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{ $t('download-sample-file') }}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t
{{ $t('uploader.choose-file') }}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
![\"\"]()
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
{{ selectedFile.name }}
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
{{ progress.toString().toLocaleDigits() + '%' }}
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
{{ $t('import-from-excel-map.sys-fields') }}
\r\n\t\t\t\t\t\t\t\t\t{{ $t('import-from-excel-map.file-fields') }}
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
0 && currentSubject !== sortedSchemas[index - 1].subject.split('_')[1].toLowerCase()\">\r\n\t\t\t\t\t\t\t\t\t{{ $t(`FloatingCenterGroups.${currentSubject}`) }}\r\n\t\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{{ $t('import-from-excel-map.metadata') }}\r\n\t\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{{ $t('salary.item.salary-items') }}\r\n\t\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{{ $t('import-from-excel-map.save-success') }}\r\n\t\t\t\t\t\t\t\t{{ $t('import-from-excel-map.result-codes', { type: this.$t(`import-from-excel-map.types.${this.settings.type.toLowerCase()}`) }) }}: {{ resultCodes }}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{{ $t('import-from-excel-map.save-failed') }}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
{{ $t('import-from-excel-map.save-failed-body') }}
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./import-from-excel-map.vue?vue&type=template&id=23364982\"\nimport script from \"./import-from-excel-map.vue?vue&type=script&lang=js\"\nexport * from \"./import-from-excel-map.vue?vue&type=script&lang=js\"\n\nimport \"./import-from-excel-map.vue?vue&type=style&index=0&id=23364982&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Guid, IBaseModel, Money } from '@/interfaces/base'\r\nimport { SalaryPeriod } from './salary-period'\r\nimport { Workshop } from './workshop'\r\nimport { Personnel } from './personnel'\r\nimport { JobGroup } from './job-group'\r\nimport { JobField } from './job-field'\r\nimport { ContractTypes, InsuranceTypes, InsuranceBaseTypes, PersonnelEducationalStatusTypes, PersonnelEmploymentAsTypes, PersonnelEmploymentTypes, PersonnelMarriageTypes, PersonnelMilitaryStatusTypes, PersonnelSacrificeStatusTypes } from '@/enums/salary'\r\nimport emptyId from '@/statics/empty-id'\r\nimport { ContractSalaryItem } from './contract-salary-item'\r\nimport { CooperateType } from '@/classes/salary/cooperate-type'\r\nimport { JobCode } from './job-code'\r\nimport { WorkPlaceStatus } from './workplace-status'\r\nimport { TaxCalculationTableHeader } from './tax-calculation-table'\r\nimport { Position } from './position'\r\n\r\nexport class Contract implements IBaseModel {\r\n id: Guid\r\n salaryPeriodId: Guid\r\n number!: number\r\n workshopId: Guid\r\n PersonnelId: Guid\r\n calculated: boolean\r\n position!: Position\r\n marriage: PersonnelMarriageTypes\r\n childrenCount!: number\r\n militaryStatus!: PersonnelMilitaryStatusTypes\r\n sacrificeStatus!: PersonnelSacrificeStatusTypes\r\n educationalStatus: PersonnelEducationalStatusTypes\r\n educationalField!: string\r\n insuranceType!: InsuranceTypes\r\n insuranceBaseType!: InsuranceBaseTypes\r\n insuranceNumber!: string\r\n jobCode: JobCode | null\r\n insuranceStartDate!: Date | null\r\n insuranceLeaveDate!: Date | null\r\n insuranceIncludeHardJob: boolean\r\n exportableInInsuranceDisket!: boolean\r\n workplaceStatus: WorkPlaceStatus | null\r\n taxFreeAmount: Money\r\n taxFreePercentage: number\r\n taxStartDate?: Date | null\r\n taxEndDate!: Date | null\r\n cooperateType!: CooperateType\r\n exportableInTaxDisket: boolean\r\n jobGroupId!: Guid\r\n baseOfDailyYears: Money | number\r\n yearsOfExperience: number\r\n severancesGroup: number\r\n employmentAs!: PersonnelEmploymentAsTypes\r\n dailyFee: Money | number\r\n employmentType!: PersonnelEmploymentTypes\r\n contractType!: ContractTypes\r\n jobFieldId!: Guid\r\n jobCodeInMinistry!: string\r\n workingPlace!: string\r\n date!: Date | null\r\n startDate!: Date | null\r\n endDate!: Date | null\r\n descriptionRelatedToSalaryItems!: string\r\n insurancableSum!: Money\r\n taxableSum!: Money\r\n insurance!: Money\r\n tax!: Money\r\n incrementalSum!: Money\r\n decrementalSum!: Money\r\n payable!: Money\r\n isLock: boolean\r\n salaryPeriod!: SalaryPeriod\r\n workshop!: Workshop\r\n personnel!: Personnel\r\n jobGroup!: JobGroup | null\r\n jobField!: JobField\r\n contractSalaryItems!: ContractSalaryItem[] // type may change to ContractSalaryItem\r\n taxCalculationTableHeader: TaxCalculationTableHeader | null\r\n contractMetaData!: ContractMetaData\r\n\r\n constructor() {\r\n this.id = emptyId\r\n this.salaryPeriodId = ''\r\n this.workshopId = emptyId\r\n this.PersonnelId = emptyId\r\n this.calculated = false\r\n this.marriage = PersonnelMarriageTypes.Single\r\n this.educationalStatus = PersonnelEducationalStatusTypes.Bachelors\r\n this.sacrificeStatus = PersonnelSacrificeStatusTypes.NotHaving\r\n this.jobCode = new JobCode()\r\n this.workplaceStatus = new WorkPlaceStatus()\r\n this.insuranceIncludeHardJob = false\r\n this.exportableInTaxDisket = false\r\n this.taxFreeAmount = '0'\r\n this.taxFreePercentage = 0\r\n this.exportableInTaxDisket = false\r\n this.dailyFee = 0\r\n this.baseOfDailyYears = 0\r\n this.yearsOfExperience = 0\r\n this.severancesGroup = 0\r\n this.insuranceStartDate = null\r\n this.insuranceLeaveDate = null\r\n this.taxStartDate = null\r\n this.taxEndDate = null\r\n this.startDate = null\r\n this.endDate = null\r\n this.employmentAs = PersonnelEmploymentAsTypes.Daily\r\n this.employmentType = PersonnelEmploymentTypes.Other\r\n this.jobCode = null\r\n this.jobGroup = null\r\n this.workplaceStatus = null\r\n this.taxCalculationTableHeader = null\r\n this.isLock = false\r\n }\r\n}\r\n\r\nexport class ContractMetaData {\r\n sumReducingSalaryItems!: number\r\n freeTaxWorkshop!: number\r\n taxPrimitive!: number\r\n sumPresentAmount!: number\r\n sumUnEmploymentInsurance!: number\r\n sumEmployerInsurance!: number\r\n sumMonthlyWage!: number\r\n sumWorkingDays!: number\r\n overtimeSalary!: number\r\n cashAndContinuous!: number\r\n cashAndContinuousNotTaxable!: number\r\n notCashAndContinuous!: number\r\n cashAndNotContinuous!: number\r\n cashAndNotContinuousWithoutTaxable!: number\r\n notCashAndNotContinuous!: number\r\n sumReducingTaxSalaryItems!: number\r\n presentTax!: number\r\n}","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t

\r\n\t\t\t\t
{{ $t('intro.loading') }}
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
{{ $t('intro.loading-error') }}
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import Endpoints from '@nikan/endpoints'\r\n\r\nexport default () => {\r\n\tEndpoints.addModule('/api/', [\r\n\t\t{ name: 'token', address: 'token' }\r\n\t])\r\n\tEndpoints.addModule('/api/v1.0/system/', [\r\n\t\t{ name: 'general.version', address: 'global/version' },\r\n\t\t{ name: 'general.statusBar', address: 'global/StatusBarInfo' },\r\n\t\t{ name: 'general.dataCount', address: 'global/GetDataInformation' },\r\n\r\n\t\t{ name: 'general.appStates.list', address: 'AppState/List' },\r\n\t\t{ name: 'general.appStates.modify', address: 'AppState/Modify' },\r\n\t\t{ name: 'general.clearServerCache', address: 'AppState/Clear' },\r\n\r\n\t\t{ name: 'general.get-today', address: 'general/GetToday' },\r\n\t\t{ name: 'general.generateKey', address: 'general/GenerateKey' },\r\n\t\t{ name: 'download.download', address: file => 'Download/Download?fileName=' + file },\r\n\t\t{ name: 'download.convertHtmlToPDF', address: file => 'Download/ConvertHtmlToPDF' },\r\n\r\n\t\t// general-search\r\n\t\t{ name: 'general-search.list', address: 'generalsearch/get' },\r\n\r\n\t\t// profile reports\r\n\t\t{ name: 'profile-reports.list', address: 'ProfileReport/List' },\r\n\t\t{ name: 'profile-reports.create', address: 'ProfileReport/Create' },\r\n\t\t{ name: 'profile-reports.delete', address: 'ProfileReport/Delete' },\r\n\t\t{ name: 'profile-reports.edit', address: 'ProfileReport/Edit' },\r\n\t\t{ name: 'profile-reports.getByKey', address: 'ProfileReport/GetByKey' },\r\n\r\n\t\t// form\r\n\t\t{ name: 'general.forms', address: 'FormAutoAccountType/ListFormsWithAutoAccountTypes' },\r\n\t\t{ name: 'general.system-forms', address: 'Form/ListDynamic' },\r\n\r\n\t\t// excel operation\r\n\t\t{ name: 'excel.getHeaders', address: 'ExcelOperation/GetHeaders' },\r\n\r\n\t\t{ name: 'system.excel.getFields', address: 'ExcelOperation/GetFields' },\r\n\t\t{ name: 'system.excel.import', address: 'ExcelOperation/Import' },\r\n\t\t{ name: 'system.download.export', address: 'Download/Export' },\r\n\r\n\t\t// demo\r\n\t\t{ name: 'demo.bidata', address: 'home/bigdata' },\r\n\t\t{ name: 'demo.bidata2', address: 'home/bigdata2' },\r\n\r\n\t\t// User\r\n\t\t{ name: 'user.RefreshToken', address: 'user/RefreshToken' },\r\n\t\t{ name: 'user.list-dynamic', address: 'user/ListDynamic' },\r\n\t\t{ name: 'user.list', address: 'user/List' },\r\n\t\t{ name: 'user.getProfile', address: 'user/getProfile' },\r\n\t\t{ name: 'user.get-id', address: id => 'user/get?id=' + id },\r\n\t\t{ name: 'user.get', address: id => 'user/get' },\r\n\t\t{ name: 'user.create', address: 'user/create' },\r\n\t\t{ name: 'user.update', address: 'user/update' },\r\n\t\t{ name: 'user.delete', address: 'user/delete' },\r\n\t\t{ name: 'user.roleList', address: 'user/ListRoles' },\r\n\t\t{ name: 'user.logout-log', address: 'user/UserLogoutLog' },\r\n\t\t{ name: 'user.online-list', address: 'User/OnlineUsers' },\r\n\r\n\t\t// accounts\r\n\t\t{ name: 'accounts.list', address: 'account/list' },\r\n\t\t{ name: 'accounts.delete', address: id => 'account/delete/' + id },\r\n\t\t{ name: 'accounts.getByCode', address: 'account/getEditModel' },\r\n\r\n\t\t{ name: 'accounts.create', address: 'account/create' },\r\n\t\t{ name: 'accounts.update', address: 'account/update' },\r\n\t\t{ name: 'accounts.groups', address: 'account/groups' },\r\n\t\t{ name: 'accounts.types', address: 'account/types' },\r\n\t\t{ name: 'accounts.natures', address: 'account/natures' },\r\n\t\t{ name: 'accounts.linktoCenters', address: 'account/modifyLinkedFloatingCenters' },\r\n\t\t{ name: 'accounts.centersLinkedToAccount', address: 'account/getLinkedFloatingCenters' },\r\n\t\t{ name: 'accounts.copyFromOtherFiscalPeriod', address: 'account/CopyFromOtherFiscalPeriod' },\r\n\t\t{ name: 'accounts.copyFromOtherCompany', address: 'account/copyFromOtherCompany' },\r\n\t\t{ name: 'accounts.copyDefaultSystemAccounts', address: 'account/copyDefaultSystemAccounts' },\r\n\t\t{ name: 'accounts.copyDefaultSystemAccounts', address: 'account/copyDefaultSystemAccounts' },\r\n\t\t{ name: 'accounts.validateInStart', address: 'account/ValidateInStart' },\r\n\t\t{ name: 'accounts.checkCompanyHasAccount', address: 'account/CheckCompanyHasAccount' },\r\n\r\n\t\t// auto accounts\r\n\t\t{ name: 'accounts.auto.list', address: 'AutoAccount/List' },\r\n\t\t{ name: 'accounts.auto.listOfMine', address: 'AutoAccount/ListByUserId' },\r\n\t\t{ name: 'accounts.auto.types', address: 'AutoAccountType/ListDynamic' },\r\n\t\t{ name: 'accounts.auto.modify', address: 'AutoAccount/Modify' },\r\n\r\n\t\t// Companies\r\n\t\t{ name: 'companies.list', address: 'company/list' },\r\n\t\t{ name: 'companies.get', address: id => 'company/get' },\r\n\t\t{ name: 'companies.create', address: 'company/create' },\r\n\t\t{ name: 'companies.update', address: 'company/update' },\r\n\t\t{ name: 'companies.delete', address: id => 'company/delete/' + id },\r\n\t\t{ name: 'companies.types', address: 'company/types' },\r\n\t\t{ name: 'companies.nationalities', address: 'company/nationalities' },\r\n\t\t{ name: 'companies.getCurrencies', address: 'company/listCurrencies' },\r\n\r\n\t\t// Floating Centers\r\n\t\t{ name: 'floatingCenters.list', address: 'FloatingCenter/List' },\r\n\t\t{ name: 'floatingCenters.get', address: 'FloatingCenter/Get' },\r\n\t\t{ name: 'floatingCenters.get-edit-model', address: 'FloatingCenter/GetEditModel' },\r\n\t\t{ name: 'floatingCenters.create', address: 'FloatingCenter/Create' },\r\n\t\t{ name: 'floatingCenters.update', address: 'FloatingCenter/Update' },\r\n\t\t{ name: 'floatingCenters.delete', address: 'FloatingCenter/Delete' },\r\n\t\t{ name: 'floatingCenters.validateInStart', address: 'FloatingCenter/ValidateInStart' },\r\n\t\t{ name: 'floatingCenters.link-accounts', address: 'FloatingCenter/ModifyFloatingCenterAccounts' },\r\n\t\t{ name: 'floatingCenters.pageList', address: 'FloatingCenter/PagedList' },\r\n\t\t{ name: 'floatingCenters.pagedSearch', address: 'FloatingCenter/PagedSearch' },\r\n\r\n\r\n\t\t// dashboard\r\n\t\t{ name: 'documentDetails.list', address: 'Dashboard/GetDocumentStatistics' },\r\n\t\t{ name: 'camercialAccess.get', address: 'Dashboard/GetCommercialAccess' },\r\n\r\n\t\t// floatingCenterCategories\r\n\t\t{ name: 'floatingCenterCategory.search', address: 'FloatingCenterCategory/ListDynamic' },\r\n\t\t{ name: 'floatingCenterCategory.modify', address: 'FloatingCenterCategory/Modify' },\r\n\r\n\t\t// bank\r\n\t\t{ name: 'bank.list', address: 'Bank/ListDynamic' },\r\n\t\t{ name: 'bank.modify', address: 'Bank/Modify' },\r\n\r\n\t\t// documentTypes\r\n\t\t{ name: 'documentTypes.list', address: 'DocumentType/ListDynamic' },\r\n\r\n\t\t// install\r\n\t\t{ name: 'install.install', address: 'install/install' },\r\n\t\t{ name: 'install.getStatus', address: 'install/getStatus' },\r\n\t\t{ name: 'install.checkCommercialAccess', address: 'install/CheckCommercialAccess' },\r\n\r\n\t\t// launch\r\n\t\t{ name: 'launcher.status', address: 'launcher/status' },\r\n\t\t{ name: 'launcher.migration', address: 'launcher/migration' },\r\n\r\n\r\n\t\t// Login\r\n\t\t{ name: 'user.sendRecoveryEmail', address: 'user/SendRecoveryPasswordEmail' },\r\n\t\t{ name: 'user.ValidateResetToken', address: 'user/ValidateResetPasswordToken' },\r\n\t\t{ name: 'user.ResetPasswordByEmail', address: 'user/ResetPasswordByEmail' },\r\n\r\n\r\n\t\t// General\r\n\t\t{ name: 'general.readresourcefile', address: id => 'global/readresourcefile/' + id },\r\n\t\t{ name: 'general.dataChanges', address: date => 'global/data-changes/' + date },\r\n\t\t{ name: 'general.getAllProperties', address: 'property/listDynamic' },\r\n\t\t{ name: 'general.get-today', address: 'general/GetToday' },\r\n\r\n\t\t// MetaData\r\n\t\t{ name: 'metadata.modify', address: id => 'MetaData/Modify' },\r\n\t\t{ name: 'metadata.listDynamic', address: 'MetaData/ListDynamic' },\r\n\t\t{ name: 'metadata.list', address: 'MetaData/List' },\r\n\r\n\t\t// demo\r\n\t\t{ name: 'demo.bidata', address: 'home/bigdata' },\r\n\t\t{ name: 'demo.bidata2', address: 'home/bigdata2' },\r\n\r\n\t\t// floatingCenters\r\n\t\t// { name: 'floatingCenters.listWithAccounts', address: 'floatingcenter/list-with-accounts' },\r\n\t\t{ name: 'floatingCenters.getById', address: id => 'FloatingCenter/get/' + id },\r\n\t\t{ name: 'floatingCenters.search', address: 'FloatingCenter/search' },\r\n\t\t{ name: 'floatingCenters.groups', address: 'floatingcenter/groups' },\r\n\r\n\t\t// documents\r\n\t\t{ name: 'documents.list', address: 'document/List' },\r\n\t\t{ name: 'documents.listDynamic', address: 'document/ListDynamic' },\r\n\t\t{ name: 'documents.list-for-selector', address: 'document/ListForSelector' },\r\n\t\t{ name: 'documents.details', address: 'document/doc-details' },\r\n\t\t{ name: 'documents.get', address: 'document/get' },\r\n\t\t{ name: 'documents.fullData', address: 'document/fullData' },\r\n\t\t{ name: 'documents.navigate', address: 'document/navigate' },\r\n\t\t{ name: 'documents.create', address: 'document/create' },\r\n\t\t{ name: 'documents.createOpening', address: 'document/createOpening' },\r\n\t\t{ name: 'documents.update', address: 'document/Update' },\r\n\t\t{ name: 'documents.delete', address: 'document/Delete' },\r\n\t\t{ name: 'documents.get-last-document-code', address: 'document/GetLastDocumentCode' },\r\n\t\t{ name: 'documents.operation', address: 'Document/ChangeTypeOfDocuments' },\r\n\t\t{ name: 'documents.sorting', address: 'Document/DocumentSorting' },\r\n\t\t{ name: 'documents.get-document-ref', address: 'Document/GetDocumentRef' },\r\n\t\t{ name: 'documents.merge', address: 'Document/Merge' },\r\n\t\t{ name: 'documents.list-by-account-for-change-account', address: 'Document/ListByAccountForChangeAccount' },\r\n\t\t{ name: 'documents.change-document-account', address: 'Document/ChangeDocumentAccount' },\r\n\r\n\r\n\t\t// documentTypes\r\n\t\t{ name: 'documentTypes.list', address: 'documentType/listDynamic' },\r\n\t\t{ name: 'documentTypes.modify', address: 'documentType/modify' },\r\n\r\n\t\t// fiscal\r\n\t\t{ name: 'fiscalPeriod.listAll', address: 'fiscalPeriod/listAll/' },\r\n\t\t{ name: 'fiscalPeriod.list', address: 'fiscalPeriod/list/' },\r\n\t\t{ name: 'fiscalPeriod.get', address: id => 'fiscalPeriod/get' },\r\n\t\t{ name: 'fiscalPeriod.create', address: 'fiscalPeriod/create' },\r\n\t\t{ name: 'fiscalPeriod.update', address: 'fiscalPeriod/update' },\r\n\t\t{ name: 'fiscalPeriod.delete', address: id => 'fiscalPeriod/delete/' + id },\r\n\t\t{ name: 'companies.fiscalPeriod.setDefault', address: id => 'company/fiscal/set-default/' + id },\r\n\r\n\t\t// units\r\n\t\t{ name: 'units.search', address: 'unit/search' },\r\n\r\n\t\t// currency\r\n\t\t{ name: 'systemCurrency.list', address: 'systemCurrency/listDynamic' },\r\n\r\n\t\t// currencyRate\r\n\t\t{ name: 'currencyRate.list', address: 'currencyRate/list' },\r\n\t\t{ name: 'currencyRate.modify', address: 'currencyRate/modify' },\r\n\r\n\t\t// city\r\n\t\t{ name: 'city.list', address: 'city/listDynamic' },\r\n\t\t{ name: 'city.modify', address: 'city/Modify' },\r\n\r\n\t\t// taxOffice\r\n\t\t{ name: 'taxOffice.list', address: 'taxOffice/listDynamic' },\r\n\t\t{ name: 'taxOffice.modify', address: 'taxOffice/Modify' },\r\n\r\n\t\t// taxZone\r\n\t\t{ name: 'taxZone.list', address: 'taxZone/listDynamic' },\r\n\t\t{ name: 'taxZone.modify', address: 'taxZone/Modify' },\r\n\r\n\t\t// settings\r\n\t\t{ name: 'settings.get', address: 'setting/GetAccountingSettings' },\r\n\t\t{ name: 'settings.modify', address: 'setting/ModifyAccountingSettings' },\r\n\t\t{ name: 'settings.reset', address: 'setting/ResetAccountingSettings' },\r\n\t\t{ name: 'api-settings.get', address: 'Setting/GetApiSettings' },\r\n\t\t{ name: 'api-settings.modify', address: 'Setting/ModifyApiSettings' },\r\n\r\n\t\t// report\r\n\t\t{ name: 'customAccountCrawling.create', address: 'report/CreateCustomCrawlingReport' },\r\n\t\t{ name: 'customAccountCrawling.update', address: 'report/UpdateCustomCrawlingReport' },\r\n\t\t{ name: 'customAccountCrawling.delete', address: 'report/DeleteCustomCrawlingReport' },\r\n\t\t{ name: 'customAccountCrawling.list', address: 'report/GetCustomCrawlingReportList' },\r\n\t\t{ name: 'customAccountCrawling.get', address: 'report/GetCustomCrawlingReport' },\r\n\t\t{ name: 'customAccountCrawling.execute', address: 'report/ExecuteCustomCrawlingReport' },\r\n\t\t{ name: 'reports.account-crawling', address: 'report/account-crawling' },\r\n\t\t{ name: 'reports.account-cardx', address: 'report/account-cardx' },\r\n\t\t{ name: 'reports.get', address: 'report/get' },\r\n\t\t{ name: 'reportsCategory.list', address: 'reportCategory/list' },\r\n\t\t{ name: 'reportsCategory.get', address: 'reportCategory/get' },\r\n\t\t{ name: 'reportsCategory.create', address: 'reportCategory/create' },\r\n\t\t{ name: 'reportsCategory.update', address: 'reportCategory/update' },\r\n\t\t{ name: 'reportsCategory.delete', address: 'reportCategory/delete' },\r\n\t\t{ name: 'reportsDynamic.create', address: 'report/createDynamicReport' },\r\n\t\t{ name: 'reportsDynamic.update', address: 'report/updateDynamicReport' },\r\n\t\t{ name: 'reportsDynamic.delete', address: 'report/deleteDynamicReport' },\r\n\t\t{ name: 'reportsDynamic.get', address: 'report/getDynamicReport' },\r\n\t\t{ name: 'reportsDynamic.list', address: 'report/getDynamicReportList' },\r\n\t\t{ name: 'reportsDynamic.execute', address: 'report/executeDynamicReport' },\r\n\t\t{ name: 'ledger.calculate', address: 'ledger/Calculate' },\r\n\t\t{ name: 'ledger.delete', address: 'ledger/Delete' },\r\n\t\t{ name: 'ledger.get', address: 'ledger/Get' },\r\n\t\t{ name: 'ledger.list', address: 'ledger/List' },\r\n\r\n\r\n\t\t// EntityStructure\r\n\t\t{ name: 'entityStructure.get', address: 'EntityStructure/Get' },\r\n\t\t{ name: 'entityStructure.getEnumItems', address: 'EntityStructure/GetEnumItems' },\r\n\r\n\r\n\t\t{ name: 'measureunit.get-list-dynamic', address: 'MeasureUnit/ListDynamic' },\r\n\t\t{ name: 'measureunit.get-single-dynamic', address: 'MeasureUnit/GetDynamic' },\r\n\t\t{ name: 'measureunit.modify', address: 'MeasureUnit/Modify' },\r\n\t\t{ name: 'measureunit.moadianUnitList', address: 'MeasureUnit/MoadianUnitList' },\r\n\r\n\t\t// OperationRole\r\n\t\t{ name: 'operationRole.list', address: 'operationRole/List' },\r\n\t\t{ name: 'operationRole.create', address: 'operationRole/Create' },\r\n\t\t{ name: 'operationRole.update', address: 'operationRole/Update' },\r\n\t\t{ name: 'operationRole.delete', address: 'operationRole/Delete' },\r\n\t\t{ name: 'operationClaim.list', address: 'OperationClaim/List' },\r\n\r\n\t\t// AccessControl\r\n\t\t{ name: 'accessControl.modify', address: 'AccessControl/Modify' },\r\n\t\t{ name: 'accessControl.get-list', address: 'UserDataAccessControl/List' },\r\n\r\n\t\t// Print\r\n\t\t{ name: 'print.variables-list', address: 'Print/PrintVariableList' },\r\n\t\t{ name: 'print.variables-modify', address: 'Print/ModifyVariables' },\r\n\t\t{ name: 'print.list', address: 'Print/List' },\r\n\t\t{ name: 'print.get', address: 'Print/Get' },\r\n\t\t{ name: 'print.delete', address: 'Print/Delete' },\r\n\t\t{ name: 'print.create', address: 'Print/Create' },\r\n\t\t{ name: 'print.update', address: 'Print/Update' },\r\n\t\t{ name: 'print.setDefault', address: 'Print/SetDefault' },\r\n\r\n\t\t// Frequent Descriptions\r\n\t\t{ name: 'frequentDescriptions.list', address: 'FrequentDescription/List' },\r\n\t\t{ name: 'frequentDescriptions.modify', address: 'FrequentDescription/Modify' },\r\n\r\n\t\t// Attachments\r\n\t\t{ name: 'attachments.list', address: 'Attachment/List' },\r\n\t\t{ name: 'attachments.create', address: 'Attachment/Create' },\r\n\t\t{ name: 'attachments.download', address: 'Download/DownloadAttachment' },\r\n\t\t{ name: 'attachments.delete', address: 'Attachment/Delete' },\r\n\r\n\t\t// Change Log\r\n\t\t{ name: 'changelog.list', address: 'ChangeLog/List' },\r\n\r\n\r\n\t\t// note\r\n\t\t{ name: 'note.modify', address: 'Note/Modify' },\r\n\t\t{ name: 'note.get', address: 'Note/Get' },\r\n\t\t{ name: 'note.delete', address: 'Note/Delete' },\r\n\r\n\t\t// backup and restore\r\n\t\t{ name: 'backupRestore.list', address: 'BackupAndRestore/List' },\r\n\t\t{ name: 'backupRestore.backup', address: 'BackupAndRestore/Backup' },\r\n\t\t{ name: 'backupRestore.restore', address: 'BackupAndRestore/Restore' },\r\n\t\t{ name: 'backupRestore.getInfo', address: 'BackupAndRestore/GetInfo' },\r\n\t\t{ name: 'backupRestore.restoreLogs', address: 'BackupAndRestore/RestoreLogs' },\r\n\r\n\t\t// notification\r\n\t\t{ name: 'notification.create', address: 'Notification/Create' },\r\n\t\t{ name: 'notification.seen', address: 'Notification/Seen' },\r\n\t\t{ name: 'notification.delete', address: 'Notification/Delete' },\r\n\t\t{ name: 'notification.Get', address: 'Notification/Get' },\r\n\r\n\t\t// Closing\r\n\t\t{ name: 'closing.checkDocumentsIsSorted', address: 'Closing/CheckDocumentsIsSorted' },\r\n\t\t{ name: 'closing.checkDocumentsIsAccepted', address: 'Closing/CheckDocumentsIsAccepted' },\r\n\t\t{ name: 'closing.closeAccounts', address: 'Closing/CloseAccounts' },\r\n\t\t{ name: 'closing.transferProfitDamageRemain', address: 'Closing/TransferProfitDamageRemain' },\r\n\t\t{ name: 'closing.delete', address: 'Closing/Delete' },\r\n\t])\r\n\r\n\tEndpoints.addModule('/api/v1.0/sale/', [\r\n\t\t// moadian\r\n\t\t{ name: 'sale.moadian.getAllMemory', address: 'Moadian/GetAllMemory', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.modifySettings', address: 'Moadian/ModifySettings', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.getSettings', address: 'Moadian/GetSettings', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.convert', address: 'Moadian/Convert', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.getNumber', address: 'Moadian/GetNumber', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.setNumbers', address: 'Moadian/SetNumbers', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.list', address: 'Moadian/List', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.send', address: 'Moadian/Send', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.bulkSend', address: 'Moadian/BulkSend', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.status', address: 'Moadian/Status', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.changeSubject', address: 'Moadian/ChangeSubject', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.changeType', address: 'Moadian/ChangeInvoiceType', commercialAccess: ['Sale'] },\r\n\t\t{ name: 'sale.moadian.delete', address: 'Moadian/Delete', commercialAccess: ['Sale'] },\r\n\r\n\t\t// excel operation\r\n\t\t{ name: 'sale.excel.getFields', address: 'ExcelOperation/GetFields', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.excel.import', address: 'ExcelOperation/Import', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.download.export', address: 'Download/Export', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\t\t// FactorAttachedPayment\r\n\t\t{ name: 'sale.factor.attach.get-list-dynamic', address: 'FactorAttachedPayment/ListDynamic' },\r\n\t\t{ name: 'sale.factor.attach.get-single-dynamic', address: 'FactorAttachedPayment/GetDynamic' },\r\n\t\t{ name: 'sale.factor.attach.get-attachable-factors', address: 'FactorAttachedPayment/GetAttachableFactors' },\r\n\t\t{ name: 'sale.factor.attach.get-attachable-transactions', address: 'FactorAttachedPayment/GetAttachableTransactions' },\r\n\t\t{ name: 'sale.factor.attach.get-factor-attached-payments-byEntityId', address: 'FactorAttachedPayment/GetFactorAttachedPaymentListByEntityId' },\r\n\t\t{ name: 'sale.factor.attach.modify', address: 'FactorAttachedPayment/ModifyFactorPaymentAttaches' },\r\n\t\t{ name: 'sale.factor.attach-by-transaction.modify', address: 'FactorAttachedPayment/ModifyFactorsPaymentAttaches' },\r\n\r\n\t\t// FactorBunch\r\n\t\t{ name: 'sale.factor.bunch.list', address: 'FactorBunch/List' },\r\n\t\t{ name: 'sale.factor.bunch.get-list-dynamic', address: 'FactorBunch/ListDynamic' },\r\n\t\t{ name: 'sale.factor.bunch.get-single-dynamic', address: 'FactorBunch/GetDynamic' },\r\n\t\t{ name: 'sale.factor.bunch.modify', address: 'FactorBunch/Modify' },\r\n\t\t{ name: 'sale.factor.bunch.get-last-code', address: 'FactorBunch/LastCode' },\r\n\r\n\t\t// Factor\r\n\t\t{ name: 'sale.factor.get-list-dynamic', address: 'Factor/ListDynamic' },\r\n\t\t{ name: 'sale.factor.get-single-dynamic', address: 'Factor/GetDynamic' },\r\n\t\t{ name: 'sale.factor.get-list', address: 'Factor/List' },\r\n\t\t{ name: 'sale.factor.get-full-data', address: 'Factor/FullData' },\r\n\t\t{ name: 'sale.factor.get-single', address: 'Factor/Get' },\r\n\t\t{ name: 'sale.factor.get-unit-prices', address: 'Factor/GetUnitPrices' },\r\n\t\t{ name: 'sale.factor.change-factory-state', address: 'Factor/ChangeFactorState' },\r\n\t\t{ name: 'sale.factor.cancellation-factor', address: 'Factor/CancelationFactor' },\r\n\t\t{ name: 'sale.factor.get-floating-center-extra-data', address: 'Factor/GetFloatingCenterExtraData' },\r\n\t\t{ name: 'sale.factor.change-state', address: 'Factor/ChangeState' },\r\n\t\t{ name: 'sale.factor.create', address: 'Factor/Create' },\r\n\t\t{ name: 'sale.factor.update', address: 'Factor/Update' },\r\n\t\t{ name: 'sale.factor.delete', address: 'Factor/Delete' },\r\n\t\t{ name: 'sale.factor.navigate', address: 'Factor/Navigate' },\r\n\t\t{ name: 'sale.factor.get-receipt-hawala-information', address: 'Factor/GetReceiptHawalaInformation' },\r\n\t\t{ name: 'sale.factor.trace', address: 'Factor/Trace' },\r\n\t\t{ name: 'sale.factor.batch-change-factor-bunch', address: 'Factor/BatchChangeFactorBunch' },\r\n\t\t{ name: 'sale.factor.batch-delete', address: 'Factor/BatchDelete' },\r\n\t\t{ name: 'sale.factor.change-document-account', address: 'Factor/ChangeDocumentAccount' },\r\n\r\n\r\n\t\t// ProductBarcode\r\n\t\t{ name: 'sale.product.barcode.get-list', address: 'ProductBarcode/List', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\t\t// Product\r\n\t\t{ name: 'sale.product.get-list-for-factor', address: 'Product/ListForFactor', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.get-integrated-list-for-factor', address: 'Product/IntegratedListForFactor', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.get-list', address: 'Product/List', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.get-list-dynamic', address: 'Product/ListDynamic', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.get-single-dynamic', address: 'Product/GetDynamic', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.list', address: 'Product/List', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.get', address: 'Product/Get', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.create', address: 'Product/Create', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.update', address: 'Product/Update', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.delete', address: 'Product/Delete', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.bulkDelete', address: 'Product/BulkDelete', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.navigate', address: 'Product/Navigate', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.get-product-stock', address: 'Product/GetProductStock', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.get-product-warehouse-stock', address: 'Product/GetProductStockOnWarehouse', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'sale.product.get-last-price', address: 'Product/GetLastPrice', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.get-last-sale-and-buy-price', address: 'Product/GetLastSaleAndBuyPrice' },\r\n\t\t{ name: 'sale.product.get-order-points', address: 'Product/GetOrderPoints', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.get-product-stock-price', address: 'Product/GetProductsStockPrice', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.get-multiple-product-stock-price', address: 'Product/GetMultipleProductStockPrice', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\r\n\t\t// ProductFloating\r\n\t\t{ name: 'sale.product.floating.get-list-dynamic', address: 'ProductFloating/ListDynamic', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.floating.list', address: 'ProductFloating/List', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.floating.get', address: 'ProductFloating/Get', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.floating.create', address: 'ProductFloating/Create', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.floating.update', address: 'ProductFloating/Update', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.floating.delete', address: 'ProductFloating/Delete', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\t\t// ProductFloatingValue\r\n\t\t{ name: 'sale.product.floating.value.list', address: 'ProductFloatingValue/List', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\t\t// ProductGroup\r\n\t\t{ name: 'sale.product.group.get-list', address: 'ProductGroup/List', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.group.get-single', address: 'ProductGroup/Get', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.group.create', address: 'ProductGroup/Create', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.group.update', address: 'ProductGroup/Update', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.group.delete', address: 'ProductGroup/Delete', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\t\t// ProductOperator\r\n\t\t{ name: 'sale.product.operator.get-list', address: 'ProductOperator/List', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\t\t// ProductPrice\r\n\t\t{ name: 'sale.product.price.get-list', address: 'ProductPrice/List', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\t\t// ProductPriceGroup\r\n\t\t{ name: 'sale.product.price.group.get-list', address: 'ProductPriceGroup/List', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.price.group.get-single', address: 'ProductPriceGroup/Get', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.price.group.create', address: 'ProductPriceGroup/Create', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.price.group.update', address: 'ProductPriceGroup/Update', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.price.group.delete', address: 'ProductPriceGroup/Delete', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\t\t// ProductPriceLevel\r\n\t\t{ name: 'sale.product.price.level.get-list-dynamic', address: 'ProductPriceLevel/ListDynamic', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.price.level.get-single-dynamic', address: 'ProductPriceLevel/GetDynamic', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.product.price.level.modify', address: 'ProductPriceLevel/Modify', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\t\t// ProductUnit\r\n\t\t{ name: 'sale.product.unit.get-list', address: 'ProductUnit/List', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\t\t// Warehouse\r\n\t\t{ name: 'sale.warehouse.list', address: 'Warehouse/List', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'sale.warehouse.get', address: 'Warehouse/Get', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'sale.warehouse.modify', address: 'Warehouse/Modify', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'sale.warehouse.get-products-stock', address: 'Warehouse/GetProductsStock', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'sale.warehouse.create', address: 'Warehouse/Create', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'sale.warehouse.update', address: 'Warehouse/Update', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'sale.warehouse.delete', address: 'Warehouse/Delete', commercialAccess: 'Warehouse' },\r\n\r\n\t\t// WarehouseTransfer\r\n\t\t{ name: 'warehouseTransfer.list', address: 'WarehouseTransfer/List', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'warehouseTransfer.get', address: 'WarehouseTransfer/Get', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'warehouseTransfer.create', address: 'WarehouseTransfer/Create', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'warehouseTransfer.update', address: 'WarehouseTransfer/Update', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'warehouseTransfer.delete', address: 'WarehouseTransfer/Delete', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'warehouseTransfer.confirm', address: 'WarehouseTransfer/Confirm', commercialAccess: 'Warehouse' },\r\n\r\n\t\t// WarehouseTaking\r\n\t\t{ name: 'warehouseTaking.list', address: 'warehouseTaking/List', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'warehouseTaking.get', address: 'warehouseTaking/Get', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'warehouseTaking.create', address: 'warehouseTaking/Create', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'warehouseTaking.update', address: 'warehouseTaking/Update', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'warehouseTaking.delete', address: 'warehouseTaking/Delete', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'warehouseTaking.navigate', address: 'warehouseTaking/Navigate', commercialAccess: 'Warehouse' },\r\n\r\n\t\t// WarehouseTakingPDA\r\n\t\t{ name: 'pda.list', address: 'warehouseTakingPDA/List', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'pda.get', address: 'warehouseTakingPDA/Get', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'pda.create', address: 'warehouseTakingPDA/Create', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'pda.update', address: 'warehouseTakingPDA/Update', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'pda.delete', address: 'warehouseTakingPDA/Delete', commercialAccess: 'Warehouse' },\r\n\r\n\t\t// Settings\r\n\t\t{ name: 'sale.settings.get', address: 'SaleSetting/GetSettings', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'sale.settings.modify', address: 'SaleSetting/ModifySettings' },\r\n\t\t{ name: 'sale.reports.get', address: 'report/get', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\r\n\t\t// Product Classifications\r\n\t\t{ name: 'productClassification.list', address: 'ProductClassification/List', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'productClassification.create', address: 'ProductClassification/Create', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'productClassification.delete', address: 'ProductClassification/Delete', commercialAccess: ['Sale', 'Warehouse'] },\r\n\t\t{ name: 'productClassification.update', address: 'ProductClassification/Update', commercialAccess: ['Sale', 'Warehouse'] },\r\n\r\n\t\t// Product Request\r\n\t\t{ name: 'ProductRequest.list', address: 'ProductRequest/List' },\r\n\t\t{ name: 'ProductRequest.create', address: 'ProductRequest/Create' },\r\n\t\t{ name: 'ProductRequest.delete', address: 'ProductRequest/Delete' },\r\n\t\t{ name: 'ProductRequest.update', address: 'ProductRequest/Update' },\r\n\t\t{ name: 'ProductRequest.confirm', address: 'ProductRequest/Confirmation' },\r\n\t\t{ name: 'ProductRequest.get', address: 'ProductRequest/Get' },\r\n\r\n\t\t// Product Convert Formula\r\n\t\t{ name: 'ProductConvertFormula.create', address: 'ProductConvertFormula/Create' },\r\n\t\t{ name: 'ProductConvertFormula.update', address: 'ProductConvertFormula/Update' },\r\n\t\t{ name: 'ProductConvertFormula.delete', address: 'ProductConvertFormula/Delete' },\r\n\t\t{ name: 'ProductConvertFormula.list', address: 'ProductConvertFormula/List' },\r\n\t\t{ name: 'ProductConvertFormula.get', address: 'ProductConvertFormula/Get' },\r\n\t\t{ name: 'ProductConvertFormula.navigate', address: 'ProductConvertFormula/Navigate' },\r\n\r\n\t\t// Product Convert\r\n\t\t{ name: 'ProductConvert.create', address: 'ProductConvert/Create' },\r\n\t\t{ name: 'ProductConvert.update', address: 'ProductConvert/Update' },\r\n\t\t{ name: 'ProductConvert.delete', address: 'ProductConvert/Delete' },\r\n\t\t{ name: 'ProductConvert.list', address: 'ProductConvert/List' },\r\n\t\t{ name: 'ProductConvert.get', address: 'ProductConvert/Get' },\r\n\t\t{ name: 'ProductConvert.navigate', address: 'ProductConvert/Navigate' },\r\n\r\n\t\t// Buy Order\r\n\t\t{ name: 'buyOrder.list', address: 'BuyOrder/List' },\r\n\t\t{ name: 'buyOrder.create', address: 'BuyOrder/Create' },\r\n\t\t{ name: 'buyOrder.delete', address: 'BuyOrder/Delete' },\r\n\t\t{ name: 'buyOrder.update', address: 'BuyOrder/Update' },\r\n\t\t{ name: 'buyOrder.confirm', address: 'BuyOrder/Confirmation' },\r\n\t\t{ name: 'buyOrder.get', address: 'BuyOrder/Get' },\r\n\r\n\t\t// Warehouse Receipt Hawala\r\n\t\t{ name: 'receiptHawala.get', address: 'WarehouseReceiptHawala/Get', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'receiptHawala.create', address: 'WarehouseReceiptHawala/Create', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'receiptHawala.update', address: 'WarehouseReceiptHawala/Update', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'receiptHawala.delete', address: 'WarehouseReceiptHawala/Delete', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'receiptHawala.list', address: 'WarehouseReceiptHawala/list', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'receiptHawala.navigate', address: 'WarehouseReceiptHawala/Navigate', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'receiptHawala.fullData', address: 'WarehouseReceiptHawala/FullData', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'receiptHawala.getFactorInformation', address: 'WarehouseReceiptHawala/GetFactorInformation', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'receiptHawala.change-receipt-document-account', address: 'WarehouseReceiptHawala/ChangeReceiptDocumentAccount', commercialAccess: 'Warehouse' },\r\n\r\n\t\t// Hawala Document Form\r\n\t\t{ name: 'hawalaDocumentForm.get', address: 'HawalaDocumentForm/Get', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'hawalaDocumentForm.create', address: 'HawalaDocumentForm/Create', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'hawalaDocumentForm.delete', address: 'HawalaDocumentForm/Delete', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'hawalaDocumentForm.list', address: 'HawalaDocumentForm/List', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'hawalaDocumentForm.getStartDate', address: 'HawalaDocumentForm/GetStartDate', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'hawalaDocumentForm.navigate', address: 'HawalaDocumentForm/Navigate', commercialAccess: 'Warehouse' },\r\n\t\t{ name: 'hawalaDocumentForm.change-document-account', address: 'HawalaDocumentForm/ChangeDocumentAccount', commercialAccess: 'Warehouse' },\r\n\r\n\t\t// Closing\r\n\t\t{ name: 'closing.checkAllHawalaHaveDocument', address: 'Closing/CheckAllHawalaHaveDocument' },\r\n\t\t{ name: 'closing.checkAllSaleFactorHaveHawala', address: 'Closing/CheckAllSaleFactorHaveHawala' },\r\n\r\n\t\t// Product Price Announce\r\n\t\t{ name: 'productPriceAnnounce.create', address: 'ProductPriceAnnounce/Create' },\r\n\t\t{ name: 'productPriceAnnounce.delete', address: 'ProductPriceAnnounce/Delete' },\r\n\t\t{ name: 'productPriceAnnounce.get', address: 'ProductPriceAnnounce/Get' },\r\n\t\t{ name: 'productPriceAnnounce.list', address: 'ProductPriceAnnounce/List' },\r\n\r\n\t])\r\n\tEndpoints.addModule('/api/v1.0/treasury/', [\r\n\t\t// cheque\r\n\t\t{ name: 'cheque.list', address: 'Cheque/list' },\r\n\t\t{ name: 'cheque.itemsList', address: 'Cheque/getAllChequeItems' },\r\n\t\t{ name: 'cheque.get', address: 'cheque/get' },\r\n\t\t{ name: 'cheque.modify', address: 'cheque/modify' },\r\n\t\t{ name: 'cheque.delete', address: id => 'cheque/delete/' + id },\r\n\t\t{ name: 'cheque.navigate', address: 'cheque/navigate' },\r\n\t\t{ name: 'cheque.trace', address: 'chequeTrace/list' },\r\n\t\t{ name: 'cheque.docOfChequeTrace', address: 'chequeTrace/getDocument' },\r\n\t\t{ name: 'cheque.revert', address: 'chequeTrace/revert' },\r\n\r\n\t\t// ChequeLocation\r\n\t\t{ name: 'chequeLocation.list', address: 'chequeLocation/list' },\r\n\t\t{ name: 'chequeLocation.modify', address: 'chequeLocation/modify' },\r\n\r\n\t\t// ChequeTraceReason\r\n\t\t{ name: 'chequeTraceReason.list', address: 'chequeTraceReason/list' },\r\n\t\t{ name: 'chequeTraceReason.modify', address: 'chequeTraceReason/modify' },\r\n\r\n\t\t// transaction\r\n\t\t{ name: 'transaction.list', address: 'transaction/list' },\r\n\t\t{ name: 'transaction.get', address: 'transaction/getByCodeWithDefaultValueOnNullResult' },\r\n\t\t{ name: 'transaction.generalGet', address: 'transaction/get' },\r\n\t\t{ name: 'transaction.create', address: 'transaction/create' },\r\n\t\t{ name: 'transaction.update', address: 'transaction/update' },\r\n\t\t{ name: 'transaction.delete', address: id => 'transaction/delete/' + id },\r\n\t\t{ name: 'transaction.hybrid.get', address: 'transactionHybrid/get' },\r\n\t\t{ name: 'transaction.hybrid.list', address: 'transactionHybrid/list' },\r\n\t\t{ name: 'transaction.hybrid.create', address: 'transactionHybrid/create' },\r\n\t\t{ name: 'transaction.hybrid.update', address: 'transactionHybrid/update' },\r\n\t\t{ name: 'transaction.hybrid.delete', address: id => 'transactionHybrid/delete/' + id },\r\n\t\t{ name: 'transaction.hybrid.navigate', address: id => 'transactionHybrid/navigate/' + id },\r\n\t\t{ name: 'transaction.chequeOperation', address: 'chequeOperation/changeChequeState' },\r\n\t\t{ name: 'transaction.navigate', address: 'transaction/navigate' },\r\n\t\t{ name: 'transaction.get-last-code', address: 'transaction/GetLastCode' },\r\n\t\t{ name: 'transaction.change-document-account', address: 'transaction/ChangeDocumentAccount' },\r\n\r\n\t\t// transfer\r\n\t\t{ name: 'transfer.list', address: 'transfer/list' },\r\n\t\t{ name: 'transfer.get', address: 'transfer/get' },\r\n\t\t{ name: 'transfer.create', address: 'transfer/create' },\r\n\t\t{ name: 'transfer.update', address: 'transfer/update' },\r\n\t\t{ name: 'transfer.delete', address: id => 'transfer/delete/' + id },\r\n\t\t{ name: 'transfer.navigate', address: 'transfer/navigate' },\r\n\t\t{ name: 'transfer.change-document-account', address: 'transfer/ChangeDocumentAccount' },\r\n\r\n\t\t// settings\r\n\t\t{ name: 'treasury.settings-get', address: 'Setting/GetSettings' },\r\n\t\t{ name: 'treasury.settings-modify', address: 'Setting/ModifySettings' },\r\n\r\n\t\t// excel operation\r\n\t\t{ name: 'treasury.excel.getFields', address: 'ExcelOperation/GetFields' },\r\n\t\t{ name: 'treasury.excel.import', address: 'ExcelOperation/Import' },\r\n\t\t{ name: 'treasury.download.export', address: 'Download/Export' }\r\n\r\n\t])\r\n\tEndpoints.addModule('/api/v1.0/salary/', [\r\n\t\t// Checkout\r\n\t\t{ name: 'checkout.get', address: 'Checkout/getInfo' },\r\n\t\t{ name: 'checkout.create', address: 'Checkout/Create' },\r\n\t\t{ name: 'checkout.delete', address: 'Checkout/Delete' },\r\n\t\t{ name: 'checkout.list', address: 'Checkout/List' },\r\n\r\n\r\n\t\t// Report\r\n\t\t{ name: 'report.financeSummeryListReport', address: 'Report/FinanceSummaryListReport' },\r\n\t\t{ name: 'report.getTotalIncomeReport', address: 'Report/GetTotalIncomeReport' },\r\n\t\t{ name: 'report.getPersonnelTotalIncomeReport', address: 'Report/GetPersonnelTotalIncomeReport' },\r\n\t\t{ name: 'salary.report.get', address: 'Report/Get' },\r\n\r\n\t\t// BankPaymentAnnounce\r\n\t\t{ name: 'bankPaymentAnnounce.get', address: 'BankPaymentAnnounce/Get' },\r\n\t\t{ name: 'bankPaymentAnnounce.list', address: 'BankPaymentAnnounce/List' },\r\n\t\t{ name: 'bankPaymentAnnounce.detail', address: 'BankPaymentAnnounce/Detail' },\r\n\t\t{ name: 'bankPaymentAnnounce.create', address: 'BankPaymentAnnounce/Create' },\r\n\t\t{ name: 'bankPaymentAnnounce.delete', address: 'BankPaymentAnnounce/Delete' },\r\n\r\n\t\t// CooperateType\r\n\t\t{ name: 'cooperateType.listDynamic', address: 'CooperateType/ListDynamic' },\r\n\t\t{ name: 'cooperateType.modify', address: 'CooperateType/modify' },\r\n\r\n\t\t// SalaryItemVariable\r\n\t\t{ name: 'salaryItemVariable.create', address: 'SalaryItemVariable/Create' },\r\n\t\t{ name: 'salaryItemVariable.update', address: 'SalaryItemVariable/Update' },\r\n\t\t{ name: 'salaryItemVariable.delete', address: 'SalaryItemVariable/Delete' },\r\n\t\t{ name: 'salaryItemVariable.get', address: 'SalaryItemVariable/Get' },\r\n\t\t{ name: 'salaryItemVariable.list', address: 'SalaryItemVariable/List' },\r\n\r\n\t\t// SalaryItem\r\n\t\t{ name: 'salaryItem.create', address: 'SalaryItem/Create' },\r\n\t\t{ name: 'salaryItem.get', address: 'SalaryItem/Get' },\r\n\t\t{ name: 'salaryItem.list', address: 'SalaryItem/List' },\r\n\t\t{ name: 'salaryItem.systemSalaryItemList', address: 'SalaryItem/SystemSalaryItemList' },\r\n\t\t{ name: 'salaryItem.copySystemSalaryItems', address: 'SalaryItem/CopySystemSalaryItems' },\r\n\t\t{ name: 'salaryItem.update', address: 'SalaryItem/Update' },\r\n\t\t{ name: 'salaryItem.functionList', address: 'SalaryItem/FunctionList' },\r\n\t\t{ name: 'salaryItem.delete', address: 'SalaryItem/Delete' },\r\n\t\t{ name: 'salaryItem.navigate', address: 'SalaryItem/Navigate' },\r\n\t\t{ name: 'salaryItem.resultFunctionList', address: 'SalaryItem/ResultFunctionList' },\r\n\t\t{ name: 'salaryItem.getUsedContract', address: 'SalaryItem/GetUsedContract' },\r\n\t\t{ name: 'salaryItem.getDependency', address: 'SalaryItem/GetDependency' },\r\n\r\n\t\t// SalaryPeriod\r\n\t\t{ name: 'salaryPeriod.list', address: 'SalaryPeriod/List' },\r\n\t\t{ name: 'salaryPeriod.create', address: 'SalaryPeriod/Create' },\r\n\t\t{ name: 'salaryPeriod.edit', address: 'SalaryPeriod/Update' },\r\n\t\t{ name: 'salaryPeriod.delete', address: 'SalaryPeriod/Delete' },\r\n\t\t{ name: 'salaryPeriod.setPassword', address: 'SalaryPeriod/SetPassword' },\r\n\t\t{ name: 'salaryPeriod.changePassword', address: 'SalaryPeriod/ChangePassword' },\r\n\t\t{ name: 'salaryPeriod.get', address: 'SalaryPeriod/Get' },\r\n\t\t{ name: 'salaryPeriod.lock', address: 'SalaryPeriod/Lock' },\r\n\t\t{ name: 'salaryPeriod.copy', address: 'SalaryPeriod/Copy' },\r\n\t\t{ name: 'salaryPeriod.matchedPeriods', address: 'SalaryPeriod/MatchedSalaryPeriods' },\r\n\r\n\t\t// Workshop\r\n\t\t{ name: 'workshop.list', address: 'Workshop/GetAll' },\r\n\t\t{ name: 'workshop.get', address: 'Workshop/get' },\r\n\t\t{ name: 'workshop.navigate', address: 'Workshop/Navigate' },\r\n\t\t{ name: 'workshop.create', address: 'Workshop/Create' },\r\n\t\t{ name: 'workshop.update', address: 'Workshop/Update' },\r\n\t\t{ name: 'workshop.delete', address: 'Workshop/Delete' },\r\n\r\n\t\t// TaxCalculationTable\r\n\t\t{ name: 'taxCalculationTable.list', address: 'TaxCalculationTableHeader/List' },\r\n\t\t{ name: 'taxCalculationTable.get', address: 'TaxCalculationTableHeader/GetDynamic' },\r\n\t\t{ name: 'taxCalculationTable.modify', address: 'TaxCalculationTableHeader/Modify' },\r\n\t\t{ name: 'taxCalculationTable.systemList', address: 'TaxCalculationTableHeader/SystemList' },\r\n\r\n\t\t// TaminBranch\r\n\t\t{ name: 'taminBranch.listDynamic', address: 'TaminBranch/ListDynamic' },\r\n\t\t{ name: 'taminBranch.modify', address: 'TaminBranch/Modify' },\r\n\r\n\t\t// Personnel\r\n\t\t{ name: 'personnel.create', address: 'Personnel/create' },\r\n\t\t{ name: 'personnel.update', address: 'Personnel/update' },\r\n\t\t{ name: 'personnel.delete', address: 'Personnel/delete' },\r\n\t\t{ name: 'personnel.get', address: 'Personnel/get' },\r\n\t\t{ name: 'personnel.navigate', address: 'Personnel/navigate' },\r\n\t\t{ name: 'personnel.list', address: 'Personnel/List' },\r\n\t\t{ name: 'personnel.updateCode', address: 'Personnel/UpdateCode' },\r\n\r\n\t\t// Contract\r\n\t\t{ name: 'contract.get', address: 'Contract/Get' },\r\n\t\t{ name: 'contract.delete', address: 'Contract/delete' },\r\n\t\t{ name: 'contract.bulkModifySalaryItems', address: 'Contract/BulkModifySalaryItems' },\r\n\t\t{ name: 'contract.update', address: 'Contract/Update' },\r\n\t\t{ name: 'contract.list', address: 'Contract/List' },\r\n\t\t{ name: 'contract.getContractFields', address: 'Contract/GetContractFields' },\r\n\t\t{ name: 'contract.resetContracts', address: 'Contract/ResetContracts' },\r\n\t\t{ name: 'contract.fullData', address: 'Contract/FullData' },\r\n\t\t{ name: 'contract.lock', address: 'Contract/Lock' },\r\n\t\t{ name: 'contract.logs', address: 'Contract/Logs' },\r\n\r\n\t\t// Loan\r\n\t\t{ name: 'loan.modify', address: 'Loan/Modify' },\r\n\t\t{ name: 'loan.listDynamic', address: 'Loan/ListDynamic' },\r\n\t\t{ name: 'loan.list', address: 'Loan/List' },\r\n\t\t{ name: 'loan.getDynamic', address: 'Loan/GetDynamic' },\r\n\r\n\t\t// PersonelLoan\r\n\t\t{ name: 'personelLoan.list', address: 'PersonelLoan/List' },\r\n\t\t{ name: 'personelLoan.get', address: 'PersonelLoan/Get' },\r\n\t\t{ name: 'personelLoan.create', address: 'PersonelLoan/Create' },\r\n\t\t{ name: 'personelLoan.update', address: 'PersonelLoan/Edit' },\r\n\t\t{ name: 'personelLoan.delete', address: 'PersonelLoan/Delete' },\r\n\t\t{ name: 'personelLoan.installments', address: 'PersonelLoan/Installments' },\r\n\r\n\t\t// PersonnelCategory\r\n\t\t{ name: 'personnelCategory.modify', address: 'PersonnelCategory/modify' },\r\n\t\t{ name: 'personnelCategory.list', address: 'PersonnelCategory/list' },\r\n\r\n\t\t// PersonnelLend\r\n\t\t{ name: 'personnelLend.modify', address: 'Lend/Modify' },\r\n\t\t{ name: 'personnelLend.list', address: 'Lend/List' },\r\n\t\t{ name: 'personnelLend.listDynamic', address: 'Lend/ListDynamic' },\r\n\r\n\t\t// SalaryCalculator\r\n\t\t{ name: 'salaryCalculator.calculate', address: 'SalaryCalculator/Calculate' },\r\n\t\t{ name: 'salaryCalculator.check-error', address: 'SalaryCalculator/CheckError' },\r\n\r\n\t\t// Settings\r\n\t\t{ name: 'salary.settings-get', address: 'Setting/GetSettings' },\r\n\t\t{ name: 'salary.settings-modify', address: 'Setting/ModifySettings' },\r\n\t\t{ name: 'payslip-settings.get', address: 'Setting/GetPaySlipSettings' },\r\n\t\t{ name: 'payslip-settings.modify', address: 'Setting/ModifyPaySlipSettings' },\r\n\r\n\t\t// SavingBox\r\n\t\t{ name: 'savingBox.listDynamic', address: 'SavingBox/ListDynamic' },\r\n\t\t{ name: 'savingBox.list', address: 'SavingBox/List' },\r\n\t\t{ name: 'savingBox.modify', address: 'SavingBox/Modify' },\r\n\r\n\t\t// Workshop Insurance\r\n\t\t{ name: 'workshopInsurance.listDynamic', address: 'InsuranceType/ListDynamic' },\r\n\t\t{ name: 'workshopInsurance.getDynamic', address: 'InsuranceType/GetDynamic' },\r\n\t\t{ name: 'workshopInsurance.modify', address: 'InsuranceType/Modify' },\r\n\r\n\t\t// Job Code\r\n\t\t{ name: 'jobCode.listDynamic', address: 'JobCode/ListDynamic' },\r\n\t\t{ name: 'jobCode.getDynamic', address: 'JobCode/GetDynamic' },\r\n\t\t{ name: 'jobCode.modify', address: 'JobCode/Modify' },\r\n\r\n\t\t// Workplace Status\r\n\t\t{ name: 'workplaceStatus.listDynamic', address: 'WorkPlaceStatus/ListDynamic' },\r\n\t\t{ name: 'workplaceStatus.getDynamic', address: 'WorkPlaceStatus/GetDynamic' },\r\n\t\t{ name: 'workplaceStatus.modify', address: 'WorkPlaceStatus/Modify' },\r\n\r\n\t\t// JobGroup\r\n\t\t{ name: 'jobGroup.listDynamic', address: 'JobGroup/ListDynamic' },\r\n\t\t{ name: 'jobGroup.list', address: 'JobGroup/List' },\r\n\t\t{ name: 'jobGroup.modify', address: 'JobGroup/Modify' },\r\n\r\n\t\t// JobField\r\n\t\t{ name: 'jobField.listDynamic', address: 'JobField/ListDynamic' },\r\n\t\t{ name: 'jobField.list', address: 'JobField/List' },\r\n\t\t{ name: 'jobField.modify', address: 'JobField/Modify' },\r\n\r\n\t\t{ name: 'salaryDashboard.getFilterableColumns', address: 'Dashboard/GetFilterableColumns' },\r\n\r\n\t\t// Contract Salary Item\r\n\t\t{ name: 'contractSalaryItem.list', address: 'ContractSalaryItem/List' },\r\n\t\t{ name: 'contractSalaryItem.setValue', address: 'ContractSalaryItem/SetValue' },\r\n\r\n\t\t// PersonnelSavingBox\r\n\t\t{ name: 'personnelSavingBox.list', address: 'PersonnelSavingBox/List' },\r\n\t\t{ name: 'personnelSavingBox.get', address: 'PersonnelSavingBox/Get' },\r\n\t\t{ name: 'personnelSavingBox.create', address: 'PersonnelSavingBox/Create' },\r\n\t\t{ name: 'personnelSavingBox.update', address: 'PersonnelSavingBox/Update' },\r\n\t\t{ name: 'personnelSavingBox.delete', address: 'PersonnelSavingBox/Delete' },\r\n\r\n\t\t// SavingBoxTransaction\r\n\t\t{ name: 'savingBoxTransaction.get', address: 'SavingBoxTransaction/Get' },\r\n\t\t{ name: 'savingBoxTransaction.list', address: 'SavingBoxTransaction/List' },\r\n\t\t{ name: 'savingBoxTransaction.create', address: 'SavingBoxTransaction/Create' },\r\n\t\t{ name: 'savingBoxTransaction.delete', address: 'SavingBoxTransaction/Delete' },\r\n\r\n\t\t// excel operation\r\n\t\t{ name: 'salary.excel.getFields', address: 'ExcelOperation/GetFields' },\r\n\t\t{ name: 'salary.excel.import', address: 'ExcelOperation/Import' },\r\n\r\n\t\t// dbf operation\r\n\t\t{ name: 'dbf.read', address: 'DBFOperation/Read' },\r\n\t\t{ name: 'dbf.check', address: 'DBFOperation/Check' },\r\n\r\n\t\t// dbf history\r\n\t\t{ name: 'dbfHistory.list', address: 'DBFHistory/List' },\r\n\r\n\t\t// download export\r\n\t\t{ name: 'salary.export', address: 'Export/Export' },\r\n\t\t{ name: 'download.export', address: 'Download/Export' },\r\n\r\n\t\t// Position\r\n\t\t{ name: 'position.listDynamic', address: 'Position/ListDynamic' },\r\n\t\t{ name: 'position.getDynamic', address: 'Position/GetDynamic' },\r\n\t\t{ name: 'position.modify', address: 'Position/Modify' },\r\n\r\n\t\t// File Export Design\r\n\t\t{ name: 'fileExportDesign.get', address: 'FileExportDesign/Get' },\r\n\t\t{ name: 'fileExportDesign.list', address: 'FileExportDesign/List' },\r\n\t\t{ name: 'fileExportDesign.create', address: 'FileExportDesign/Create' },\r\n\t\t{ name: 'fileExportDesign.update', address: 'FileExportDesign/Update' },\r\n\t\t{ name: 'fileExportDesign.delete', address: 'FileExportDesign/Delete' },\r\n\r\n\t\t// severance\r\n\t\t{ name: 'severanceTable.list', address: 'Severance/List' },\r\n\t\t{ name: 'severanceTable.get', address: 'Severance/GetDynamic' },\r\n\t\t{ name: 'severanceTable.modify', address: 'Severance/Modify' },\r\n\t\t{ name: 'severanceTable.systemList', address: 'Severance/SystemList' },\r\n\r\n\t\t// AnnualTaxTable\r\n\t\t{ name: 'annualTaxTable.modify', address: 'AnnualTaxTable/Modify' },\r\n\t\t{ name: 'annualTaxTable.list', address: 'AnnualTaxTable/List' },\r\n\r\n\t\t// Payslip Panel\r\n\t\t{ name: 'payslipPanel.send', address: 'PayslipPanel/Send' },\r\n\t\t{ name: 'payslipPanel.resetPassword', address: 'PayslipPanel/ResetPassword' },\r\n\r\n\t\t// Document\r\n\t\t{ name: 'salary.document.create', address: 'Document/Create' },\r\n\t\t{ name: 'salary.document.delete', address: 'Document/Delete' },\r\n\t\t{ name: 'salary.document.contractsInDocument', address: 'Document/ContractsInDocument' },\r\n\t\t{ name: 'salary.document.changeDocumentAccount', address: 'Document/ChangeDocumentAccount' },\r\n\r\n\r\n\t])\r\n\tEndpoints.addModule('/api/v1.0/assets/', [\r\n\t\t{ name: 'assetGroup.list', address: 'AssetGroup/List' },\r\n\t\t{ name: 'assetGroup.create', address: 'AssetGroup/Create' },\r\n\t\t{ name: 'assetGroup.delete', address: 'AssetGroup/Delete' },\r\n\t\t{ name: 'assetGroup.update', address: 'AssetGroup/Update' },\r\n\r\n\r\n\t\t{ name: 'assetLocation.list', address: 'AssetLocation/List' },\r\n\t\t{ name: 'assetLocation.create', address: 'AssetLocation/Create' },\r\n\t\t{ name: 'assetLocation.delete', address: 'AssetLocation/Delete' },\r\n\t\t{ name: 'assetLocation.update', address: 'AssetLocation/Update' },\r\n\r\n\r\n\t\t{ name: 'assetAcquisition.list', address: 'AssetAcquisition/List' },\r\n\t\t{ name: 'assetAcquisition.create', address: 'AssetAcquisition/Create' },\r\n\t\t{ name: 'assetAcquisition.delete', address: 'AssetAcquisition/Delete' },\r\n\t\t{ name: 'assetAcquisition.update', address: 'AssetAcquisition/Update' },\r\n\t\t{ name: 'assetAcquisition.get', address: 'AssetAcquisition/Get' },\r\n\t\t{ name: 'assetAcquisition.navigate', address: 'AssetAcquisition/Navigate' },\r\n\t\t{ name: 'assetAcquisition.change-document-account', address: 'AssetAcquisition/ChangeDocumentAccount' },\r\n\r\n\t\t// Settings\r\n\t\t{ name: 'assets.settings.get', address: 'Setting/GetSettings' },\r\n\t\t{ name: 'assets.settings.modify', address: 'Setting/ModifySettings' },\r\n\r\n\t\t// AssetsCalculation\r\n\t\t{ name: 'assetsCalculation.calculate', address: 'AssetCalculation/Calculate' },\r\n\t\t{ name: 'assetsCalculation.delete', address: 'AssetCalculation/Delete' },\r\n\t\t{ name: 'assetsCalculation.get', address: 'AssetCalculation/Get' },\r\n\t\t{ name: 'assetsCalculation.getComputableAssetList', address: 'AssetCalculation/GetComputableAssetList' },\r\n\t\t{ name: 'assetsCalculation.navigate', address: 'AssetCalculation/Navigate' },\r\n\t\t{ name: 'assetsCalculation.getAssetCalculationDetail', address: 'AssetCalculation/GetAssetCalculationDetail' },\r\n\r\n\t])\r\n}\r\n","class WindowsManager {\r\n constructor() {\r\n this._LOCALSTORAGE_TIMESTAMP_KEY = 'WINDOW_VALIDATION_TIMESTAMP'\r\n this._LOCALSTORAGE_KEY = 'LIVE_WINDOW'\r\n }\r\n getWindowFromLocalStorage(wId) {\r\n let item = localStorage.getItem(this._LOCALSTORAGE_KEY + '_' + wId)\r\n return item ? JSON.parse(item) : null\r\n }\r\n setWindowToLocalStorage(window, wId) {\r\n localStorage.setItem(this._LOCALSTORAGE_KEY + '_' + wId, window)\r\n }\r\n removeWindowFromLocalStorage(wId) {\r\n localStorage.removeItem(this._LOCALSTORAGE_KEY + '_' + wId)\r\n }\r\n setTimestampToLocalStorage(timestamp) {\r\n localStorage.setItem(this._LOCALSTORAGE_TIMESTAMP_KEY, timestamp)\r\n }\r\n getTimestampFromLocalStorage() {\r\n return localStorage.getItem(this._LOCALSTORAGE_TIMESTAMP_KEY)\r\n }\r\n setOnBeforeWindowsCloseEvent(wId) {\r\n window.onbeforeunload = (event) => {\r\n this.removeWindowFromLocalStorage(wId)\r\n this.setTimestampToLocalStorage(Date.now())\r\n\r\n if (process.env.NODE_ENV === 'production' && !window.bypassCloseConfirmation) { // only add before reload listener on production \r\n var confirmationMessage = \"آیا از بسته شدن مرورگر مطمئن هستید؟\";\r\n (event || window.event).returnValue = confirmationMessage //Gecko + IE\r\n return confirmationMessage\r\n }\r\n return void(0)\r\n }\r\n }\r\n initWindowsManager(wId) {\r\n return new Promise((resolve, reject) => {\r\n\r\n this.setOnBeforeWindowsCloseEvent(wId)\r\n\r\n this.setLiveKey()\r\n\r\n this.makeAliveWindowLocalStorage(wId)\r\n\r\n window.addEventListener('storage', (e) => {\r\n if (e.key == \"live-key\") {\r\n // Listen if anybody else is opening the app!\r\n this.makeAliveWindowLocalStorage(wId)\r\n }\r\n }, false)\r\n\r\n this.redirectToLoginIfRequired(resolve)\r\n })\r\n }\r\n redirectToLoginIfRequired(resolve) {\r\n const getWindowKeyItems = () => {\r\n let keys = []\r\n for (var i = 0, len = localStorage.length; i < len; ++i) {\r\n let key = localStorage.key(i)\r\n if (key.indexOf(this._LOCALSTORAGE_KEY) > -1)\r\n keys.push(key)\r\n }\r\n return keys\r\n }\r\n setTimeout(() => {\r\n let liveKey = localStorage.getItem('live-key')\r\n let windowKeys = getWindowKeyItems()\r\n for (var key of windowKeys) {\r\n let item = JSON.parse(localStorage.getItem(key))\r\n if (item.liveKey != liveKey)\r\n localStorage.removeItem(key)\r\n }\r\n windowKeys = getWindowKeyItems()\r\n let lastTimestamp = this.getTimestampFromLocalStorage()\r\n if (windowKeys.length <= 1 && (!lastTimestamp || (Date.now() / 1000) - (lastTimestamp / 1000) > 60)) {\r\n if (localStorage.getItem('nikan-user'))\r\n store.dispatch('useraccount/clearUser')\r\n }\r\n resolve()\r\n }, 2000)\r\n }\r\n makeAliveWindowLocalStorage(wId) {\r\n let liveKey = localStorage.getItem('live-key')\r\n var win = this.getWindowFromLocalStorage(wId)\r\n if (win) {\r\n win.liveKey = liveKey\r\n } else {\r\n win = {\r\n liveKey: liveKey\r\n }\r\n }\r\n this.setWindowToLocalStorage(JSON.stringify(win), wId)\r\n }\r\n setLiveKey() {\r\n localStorage.setItem('live-key', Date.now().toString())\r\n return localStorage.getItem('live-key')\r\n }\r\n}\r\n\r\nimport store from '../store'\r\n\r\nconst windowsManager = new WindowsManager()\r\nexport default windowsManager","import { render } from \"./App.vue?vue&type=template&id=768484d6&scoped=true\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/intro.less?vue&type=style&index=0&id=768484d6&lang=less&scoped=true&external\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-768484d6\"]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./company-fiscal.vue?vue&type=template&id=ca292670\"\nimport script from \"./company-fiscal.vue?vue&type=script&lang=js\"\nexport * from \"./company-fiscal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
{{ $t('empty-items') }}
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
tagClicked(e, i)\">\r\n\t\t\t\t\t
removeTag(opt)\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./nikan-multichoice.vue?vue&type=template&id=990b2190\"\nimport script from \"./nikan-multichoice.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-multichoice.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Guid, IBaseModel, TNikanDate } from '~/interfaces/base'\r\nimport emptyId from '@/statics/empty-id'\r\n\r\nexport class SalaryPeriod implements IBaseModel {\r\n\tid: Guid\r\n\tfiscalPeriodId: Guid\r\n\tdate!: string\r\n\tisLocked: boolean\r\n\tisMain: boolean\r\n\tdisplayName: string\r\n\tcanUse: boolean\r\n\r\n\tconstructor(id: Guid = emptyId, fiscalPeriodId: Guid = emptyId, date: TNikanDate | string = '', isLocked: boolean = false, isMain: boolean = false, displayName: string = '', canUse: boolean = false) {\r\n\t\tthis.id = id\r\n\t\tthis.fiscalPeriodId = fiscalPeriodId\r\n\t\tthis.date = date\r\n\t\tthis.isLocked = isLocked\r\n\t\tthis.isMain = isMain\r\n\t\tthis.displayName = displayName\r\n\t\tthis.canUse = canUse\r\n\t}\r\n}\r\n\r\nexport class SubPeriod extends SalaryPeriod {\r\n\tselected: boolean = false\r\n}\r\n\r\nexport class SelectedPastPeriod extends SubPeriod {\r\n\tname: string | null = null\r\n}\r\n\r\nexport class ConvertedSalaryPeriod {\r\n\tpMonthName!: string\r\n\tpYear!: string\r\n\tpMonth!: string\r\n\tdate!: string\r\n\tcanUse!: boolean\r\n\tyear!: string\r\n\tmonth!: string\r\n\tsubPeriods: SubPeriod[] = []\r\n\tfilteredSubPeriods: SubPeriod[] = []\r\n}\r\n\r\nexport class CreateMonth extends ConvertedSalaryPeriod {\r\n\tname: string | null = null\r\n}\r\n\r\nexport class CreatePeriodOptions {\r\n\tmonths: ConvertedSalaryPeriod[] = [new ConvertedSalaryPeriod()]\r\n\tsubPeriod = new SubPeriod()\r\n\tselectedMonth = new ConvertedSalaryPeriod()\r\n\tgetMonths() {\r\n\r\n\t}\r\n}\r\n\r\nexport class CreatePeriodType {\r\n\tisMain = false\r\n\tname!: string\r\n}\r\n\r\nexport class CreatePeriodValue {\r\n\tselectedMonth = new CreateMonth()\r\n\tselectedType = new CreatePeriodType()\r\n\tselectedPastMonth = new ConvertedSalaryPeriod()\r\n\tselectedPastDisplayName = new SelectedPastPeriod()\r\n\tdisplayName!: string | null\r\n\ttableCopy = false\r\n\tcontractCopy = false\r\n\tsalaryItemCopy = false\r\n\tcopySettings = false\r\n}\r\n\r\nexport class MonthPeriodCardOptions {\r\n\ttitle!: string\r\n\tperiod = new ConvertedSalaryPeriod()\r\n\r\n\tinsertPeriodFunc(subPeriod: SubPeriod): void { }\r\n}\r\n\r\nexport interface IStringMap {\r\n\t[key: string]: T\r\n}","\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { render } from \"./showDescriptionComp.vue?vue&type=template&id=077fbdb9\"\nimport script from \"./showDescriptionComp.vue?vue&type=script&lang=js\"\nexport * from \"./showDescriptionComp.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
selectedRow = rowData\" :data=\"fiscals\" :key=\"fiscals.length\" v-model=\"selectedRow\" ref=\"fiscalsList\" tabindex=\"101\" startup @row_dbClicked=\"rowDbClicked\">\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./fiscal-selector-old.vue?vue&type=template&id=66a7353e\"\nimport script from \"./fiscal-selector-old.vue?vue&type=script&lang=js\"\nexport * from \"./fiscal-selector-old.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./columns-visibility.vue?vue&type=template&id=2b03218c\"\nimport script from \"./columns-visibility.vue?vue&type=script&lang=js\"\nexport * from \"./columns-visibility.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const id = '00000000-0000-0000-0000-000000000000'\r\nexport default id\r\n","//@ts-ignore\r\nimport anime from 'animejs/lib/anime.es.js'\r\nimport Merge from 'lodash/merge'\r\nimport INikanAnimation, { INikanAnimationOptions } from '~/interfaces/plugins/anime'\r\n\r\nclass NikanAnimation implements INikanAnimation {\r\n\r\n private instance: any\r\n private baseMessage: string = '[Nikan Animation]'\r\n\r\n targets: any\r\n path: string | undefined\r\n\r\n options: INikanAnimationOptions = {\r\n autoplay: false\r\n }\r\n\r\n constructor(targets: any, options: INikanAnimationOptions, path?: string) {\r\n this.targets = targets\r\n this.options = Merge(this.options, options)\r\n this.path = path\r\n this.createInstance()\r\n }\r\n\r\n createInstance(): void {\r\n const mergedOptions = Merge({ targets: this.targets }, this.options)\r\n this.instance = anime(mergedOptions)\r\n }\r\n\r\n returnInsntace(): object {\r\n return this.instance\r\n }\r\n\r\n seek(timeStamp: number): void {\r\n this.instance.seek(timeStamp)\r\n }\r\n\r\n reverse(): void {\r\n this.instance.reverse()\r\n }\r\n\r\n restart(): void {\r\n this.instance.restart()\r\n }\r\n\r\n stop(): void {\r\n if (this.options.autoplay)\r\n throw new Error(`${this.baseMessage} Autoplay must be off!`)\r\n\r\n this.instance.stop()\r\n }\r\n\r\n play(): void {\r\n if (this.options.autoplay)\r\n throw new Error(`${this.baseMessage} Autoplay must be off!`)\r\n\r\n this.instance.play()\r\n }\r\n\r\n remove(targets: any): void {\r\n this.instance.remove(targets)\r\n }\r\n\r\n get(target: string, propertyName: string, unit: string): object {\r\n return this.instance.get(target, propertyName, unit)\r\n }\r\n\r\n set(targets: any, options: object): void {\r\n this.instance.set(targets, options)\r\n }\r\n\r\n running(): object[] {\r\n return this.instance.running\r\n }\r\n\r\n update(instance: object = this.instance): any {\r\n this.instance.update()\r\n }\r\n}\r\n\r\nexport default NikanAnimation\r\n","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
{{ $t('operationRole.m.select-related-claims') }}:
\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t { selectAllToggler(val) }\" style=\"display:inline-block;margin-right:10px;\">\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{{ $t(\"operationRole.select-role-for-show-claims\") }}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
x.name)\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t treeItemChanged(val)\" ref=\"tree\" />\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./access-control-tree.vue?vue&type=template&id=40efaedc&scoped=true\"\nimport script from \"./access-control-tree.vue?vue&type=script&lang=js\"\nexport * from \"./access-control-tree.vue?vue&type=script&lang=js\"\n\nimport \"./access-control-tree.vue?vue&type=style&index=0&id=40efaedc&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-40efaedc\"]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./product-group-modify.vue?vue&type=template&id=2667b2be\"\nimport script from \"./product-group-modify.vue?vue&type=script&lang=js\"\nexport * from \"./product-group-modify.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Toast, { useToast } from 'vue-toastification'\r\n\r\nconst toastOptions = {\r\n position: 'bottom-left',\r\n type: 'info',\r\n rtl: true,\r\n timeout: 5000,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n showCloseButtonOnHover: true,\r\n // container: asyncGetContainer,\r\n newestOnTop: true,\r\n maxToasts: 9,\r\n transition: 'Vue-Toastification__fade',\r\n draggable: true,\r\n pauseOnFocusLoss: true,\r\n hideProgressBar: false,\r\n toastClassName: [],\r\n bodyClassName: [],\r\n onMounted: undefined,\r\n}\r\n\r\nconst toastInstance = useToast(toastOptions)\r\n\r\nexport { toastInstance, toastOptions }\r\nexport default Toast","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
!settings.autoFields.includes(field.type))\" :key=\"i\">\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./report-parameters.vue?vue&type=template&id=42786932\"\nimport script from \"./report-parameters.vue?vue&type=script&lang=js\"\nexport * from \"./report-parameters.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","export const base64 = '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AAcAPQj7/7n//wBI//EFjQWvAiYAFvEAAAcAPQQO/+X////1//EFHgWqAiYAFxAAAAcAPQOe/+D////g//EFzAWrAiYAGPYAAAcAPQOL/+H//wBi//EGTwWsAiYAGQgAAAcAPQQ2/+L//wBa/dcE5QbeAiYAGgoAAAcAPQM+ART////c//ED9wWYAiYAG/EAAAcAPQJm/87////0//EFHwWgAiYAHAgAAAcAPQKm/9b//wBP/QkFfQW4AiYAHQkAAAcAPQLJ/+7////j//EEiAYzAgYAHvcA////6P/xBO4GOwIGAB/+AP//AED/8QexBmgCJgA55gAABwA9BiEAnv///+X/8QOaBnICJgA3+wAABwA9AgkAqP///+r/8QRgBY8CJgA4/gAABwA9AjH/xf//AFP/8QhaBY4CJgA6/QAABwA9Bkz/xP//AED/8QexBwQCJgA55gAABwA/BhEALP///+X/8QOaBxcCJgA3+wAABwA/AhYAP////+r/8QRgBkwCJgA4/gAABwA/AjD/dP//AFP/8QhaBk0CJgA6/QAABwA/Bk//df///+X/8QOaBjsCJgA3+wAABwA+AfkAef///+r/8QRgBXcCJgA4/gAABwA+AiT/tf//AF/92AXFBVUCJgA7BQAABwA+BDj/k///AFX92AaBBVICJgA8+wAABwA+BDb/kP///+f/8QJmBXMCJgBy+wAABwA9AW//qf///+v/8QMvBRkCJgBz/wAABwA9AYr/T///AGD91wW9A5sCJgBZCAAABwA9A1H90f//AFz91wamA5cCJgBaAgAABwA9A1D9zf//AEH/8QOPBEMCBgAq8QD//wBB//EDjwcvAiYAKvEAAAMBPwG1/1L//wA6//EE+gdzAiYALfwAAAMBPwJ5/5b//wBf/dgDhgYNAiYALuUAAAcAawG//hz//wCH/dgEZQYVAiYALwwAAAcAawIY/iT////n//ECZgMyAgYAcvsA////6//xAy8CpQIGAHP/AP///+z92QMaAzICJgB0AgAABwB6Aab/l////+791QQ7AqUCJgB1AgAABwB6Adb/k///AFz8MwXuA2QCJgAwAgAABwB6A0z98f//AFr8EQcOAoECJgAxAAAABwB6A2T9z///AFz9yQXuA2QCBgAwAgD////s/eADGgMyAiYAdAIAAAcAegGb/57////u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AGUAYgBGAG4AIABNAGUAZABpAHUAbQA6AFYAZQByAHMAaQBvAG4AIAAzAC4AMAAwAFYAZQByAHMAaQBvAG4AIAAzAC4AMAAwADsARABlAGMAZQBtAGIAZQByACAAMQA0ACwAIAAyADAAMQA4ADsARgBvAG4AdABDAHIAZQBhAHQAbwByACAAMQAxAC4ANQAuADAALgAyADQAMgAyACAANgA0AC0AYgBpAHQASQBSAEEATgBZAGUAawBhAG4AVwBlAGIARgBuAC0ATQBlAGQAaQB1AG0ASQBSAEEATgBZAGUAawBhAG4AIABpAHMAIABhACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIAB3AHcAdwAuAGYAbwBuAHQAaQByAGEAbgAuAGMAbwBtACAAKABNAG8AcwBsAGUAbQAgAEUAYgByAGEAaABpAG0AaQApAC4AVABvACAAdQBzAGUAIAB0AGgAaQBzACAAZgBvAG4AdAAsACAAaQB0ACAAaQBzACAAbgBlAGMAZQBzAHMAYQByAHkAIAB0AG8AIABvAGIAdABhAGkAbgAgAHQAaABlACAAbABpAGMAZQBuAHMAZQAgAGYAcgBvAG0AIAB3AHcAdwAuAGYAbwBuAHQAaQByAGEAbgAuAGMAbwBtAG0AbwBzAGwAZQBtAGUAYgByAGEAaABpAG0AaQAuAGMAbwBtAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABjACkAIAAyADAAMQA5ACAAYgB5ACAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGYAbwBuAHQAaQByAGEAbgAuAGMAbwBtACAAQQBsAGwAIABSAGkAZwBoAHQAcwAgAFIAZQBzAGUAcgB2AGUAZAAuAGYAbwBuAHQAaQByAHIAYQBuAC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAHMAAgAAAAAAAPzgAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAIIAAABAgACAAMBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI/AkACQQJCAkMCRAJFAkYCRwJIAkkABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCjAIQAhQC9AJYA6ACGAI4AiwCdAKkApAJKAIoA2gCDAJMA8gDzAI0AlwCIAMMA3gDxAJ4AqgD1APQA9gCiAK0AyQDHAK4AYgBjAJAAZADLAGUAyADKAM8AzADNAM4A6QBmANMA0ADRAK8AZwDwAJEA1gDUANUAaADrAO0AiQBqAGkAawBtAGwAbgCgAG8AcQBwAHIAcwB1AHQAdgB3AOoAeAB6AHkAewB9AHwAuAChAH8AfgCAAIEA7ADuALoETlVMTAd1bmkwNjIxB3VuaTA2MjcMdW5pMDYyNy5maW5hB3VuaTA2MkQMdW5pMDYyRC5pbml0DHVuaTA2MkQubWVkaQx1bmkwNjJELmZpbmEHdW5pMDYyRgd1bmkwNjMxDHVuaTA2MzEuZmluYQd1bmkwNjMzDHVuaTA2MzMuaW5pdAx1bmkwNjMzLm1lZGkMdW5pMDYzMy5maW5hB3VuaTA2MzUMdW5pMDYzNS5pbml0DHVuaTA2MzUubWVkaQx1bmkwNjM1LmZpbmEHdW5pMDYzNwx1bmkwNjM3LmluaXQMdW5pMDYzNy5tZWRpDHVuaTA2MzcuZmluYQd1bmkwNjM5DHVuaTA2MzkuaW5pdAx1bmkwNjM5Lm1lZGkMdW5pMDYzOS5maW5hDHVuaTA2NDMuaW5pdAx1bmkwNjQzLm1lZGkHdW5pMDY0Mwx1bmkwNjQzLmZpbmEHdW5pMDY0NAx1bmkwNjQ0LmluaXQMdW5pMDY0NC5tZWRpDHVuaTA2NDQuZmluYQd1bmkwNjQ1DHVuaTA2NDUuaW5pdAx1bmkwNjQ1Lm1lZGkMdW5pMDY0NS5maW5hB3VuaTA2NDcMdW5pMDY0Ny5pbml0DHVuaTA2NDcubWVkaQx1bmkwNjQ3LmZpbmEHdW5pMDY0OAx1bmkwNjQ4LmZpbmEHdW5pMDY0OQx1bmkwNjQ5LmZpbmEQdW5pMDY0NDA2MjcuaXNvbBB1bmkwNjQ0MDYyNy5maW5hB3VuaTA2NDAHdW5pMDY2RQx1bmkwNjZFLmZpbmEMdW5pMDY2Ri5pbml0DHVuaTA2NkYubWVkaRBmZWhfZG90bGVzcy5pc29sDHVuaTA2QTEuZmluYQd1bmkwNjZGDHVuaTA2NkYuZmluYQxvbmVkb3QuYWJvdmUNdHdvZG90cy5hYm92ZQ90aHJlZWRvdHMuYWJvdmUPdGhyZWVkb3RzLmJlbG93B3VuaTA2NjAHdW5pMDY2MQd1bmkwNjYyB3VuaTA2NjMHdW5pMDY2NAd1bmkwNjY1B3VuaTA2NjYHdW5pMDY2Nwd1bmkwNjY4B3VuaTA2NjkHdW5pMDZGNAd1bmkwNkY1B3VuaTA2RjYMdW5pMDZDMS5pbml0DHVuaTA2QzEubWVkaQd1bmkwNkJFB3VuaTA2RDIMdW5pMDZEMi5maW5hB3VuaTA2QTkMdW5pMDZBOS5maW5hB3VuaTA2QUYMdW5pMDZBRi5pbml0DHVuaTA2QUYubWVkaQx1bmkwNkFGLmZpbmEHdW5pMDZCQQx1bmkwNkJBLmZpbmEHdW5pMDY2QQd1bmkwNjFGB3VuaTA2MEMHdW5pMDYxQgd1bmkwNjZCB3VuaTA2NkMHdW5pMDY2RAd1bmkwNjRCB3VuaTA2NEQHdW5pMDY0RQd1bmkwNjRGB3VuaTA2NEMHdW5pMDY1MAd1bmkwNjUxB3VuaTA2NTIHdW5pMDY1Mwd1bmkwNjU0B3VuaTA2NTUHdW5pMDY3MAd1bmkwNjU2B3VuaTA2MTUMdW5pMDYyRi5maW5hBXdhc2xhDHVuaTA2NkUuaW5pdAx1bmkwNjZFLm1lZGkUYmVoX2RvdGxlc3NfYWx0LmluaXQUYmVoX2RvdGxlc3NfYWx0Lm1lZGkMdW5pMDZDMS5maW5hB3VuaTA2ODYMdW5pMDY4Ni5maW5hDG9uZWRvdC5iZWxvdw10d29kb3RzLmJlbG93DWFsZWZfYWx0Lmlzb2wNYWxlZl9hbHQuZmluYQd1bmkwNjIzDHVuaTA2MjMuZmluYQd1bmkwNjI1DHVuaTA2MjUuZmluYQd1bmkwNjIyDHVuaTA2MjIuZmluYQd1bmkwNjcxDHVuaTA2NzEuZmluYQd1bmkwNjI4DHVuaTA2MjguaW5pdAx1bmkwNjI4Lm1lZGkMdW5pMDYyOC5maW5hB3VuaTA2N0UMdW5pMDY3RS5maW5hDHVuaTA2N0UuaW5pdAx1bmkwNjdFLm1lZGkHdW5pMDYyQQx1bmkwNjJBLmluaXQMdW5pMDYyQS5tZWRpDHVuaTA2MkEuZmluYQd1bmkwNjJCDHVuaTA2MkIuaW5pdAx1bmkwNjJCLm1lZGkMdW5pMDYyQi5maW5hB3VuaTA2NzkMdW5pMDY3OS5pbml0DHVuaTA2NzkubWVkaQx1bmkwNjc5LmZpbmEHdW5pMDYyOQx1bmkwNjI5LmZpbmEMdW5pMDY4Ni5pbml0DHVuaTA2ODYubWVkaQd1bmkwNjJDDHVuaTA2MkMuaW5pdAx1bmkwNjJDLm1lZGkMdW5pMDYyQy5maW5hB3VuaTA2MkUMdW5pMDYyRS5pbml0DHVuaTA2MkUubWVkaQx1bmkwNjJFLmZpbmEHdW5pMDYzMAx1bmkwNjMwLmZpbmEHdW5pMDY4OAx1bmkwNjg4LmZpbmEHdW5pMDYzMgx1bmkwNjMyLmZpbmEHdW5pMDY5MQx1bmkwNjkxLmZpbmEHdW5pMDY5OAx1bmkwNjk4LmZpbmEHdW5pMDYzNAx1bmkwNjM0LmluaXQMdW5pMDYzNC5tZWRpDHVuaTA2MzQuZmluYQd1bmkwNjM2DHVuaTA2MzYuaW5pdAx1bmkwNjM2Lm1lZGkMdW5pMDYzNi5maW5hB3VuaTA2MzgMdW5pMDYzOC5pbml0DHVuaTA2MzgubWVkaQx1bmkwNjM4LmZpbmEHdW5pMDYzQQx1bmkwNjNBLmluaXQMdW5pMDYzQS5tZWRpDHVuaTA2M0EuZmluYQx1bmkwNkE5LmluaXQMdW5pMDZBOS5tZWRpB3VuaTA2NDEMdW5pMDY0MS5pbml0DHVuaTA2NDEubWVkaQx1bmkwNjQxLmZpbmEIdmVoLmlzb2wIdmVoLmluaXQIdmVoLm1lZGkIdmVoLmZpbmEMdW5pMDY0Mi5pbml0DHVuaTA2NDIubWVkaQd1bmkwNjQyDHVuaTA2NDIuZmluYQx1bmkwNjQ2LmluaXQMdW5pMDY0Ni5tZWRpB3VuaTA2NDYMdW5pMDY0Ni5maW5hB3VuaTA2RDUHdW5pMDZDMAx1bmkwNkMwLmZpbmEHdW5pMDYyNAx1bmkwNjI0LmZpbmEMdW5pMDY0OS5pbml0DHVuaTA2NDkubWVkaQx1bmkwNjRBLmluaXQMdW5pMDY0QS5tZWRpB3VuaTA2NEEMdW5pMDY0QS5maW5hB3VuaTA2Q0MMdW5pMDZDQy5pbml0DHVuaTA2Q0MubWVkaQx1bmkwNkNDLmZpbmEHdW5pMDZEMwx1bmkwNkQzLmZpbmEHdW5pMDYyNgx1bmkwNjI2LmluaXQMdW5pMDYyNi5tZWRpDHVuaTA2MjYuZmluYRB1bmkwNjQ0MDYyMy5pc29sEHVuaTA2NDQwNjIzLmZpbmEQdW5pMDY0NDA2MjUuaXNvbBB1bmkwNjQ0MDYyNS5maW5hEHVuaTA2NDQwNjIyLmlzb2wQdW5pMDY0NDA2MjIuZmluYRB1bmkwNjQ0MDY3MS5pc29sEHVuaTA2NDQwNjcxLmZpbmELaGVoX2FlLmZpbmEHdW5pMDZDMgx1bmkwNkMyLmZpbmEHdW5pMDZDMQd1bmkwNkMzDHVuaTA2QzMuZmluYQx1bmkwNkJFLmZpbmEMdW5pMDZCRS5pbml0DHVuaTA2QkUubWVkaQd1bmkwNkYwB3VuaTA2RjEHdW5pMDZGMgd1bmkwNkYzB3VuaTA2RjkHdW5pMDZGNwd1bmkwNkY4DHVuaTA2RjQudXJkdQx1bmkwNkY3LnVyZHULZmF0aGF0YW5fMDELZGFtbWF0YW5fMDELa2FzcmF0YW5fMDEIZmF0aGFfMDEIZGFtbWFfMDEIa2FzcmFfMDEJc2hhZGRhXzAxCHN1a3VuXzAxDEdodW5uYV9hYm92ZQt1bmkwNjUxMDY0Qwt1bmkwNjUxMDY0RAt1bmkwNjUxMDY0Qgt1bmkwNjUxMDY0RQt1bmkwNjUxMDY0Rgt1bmkwNjUxMDY1MAd1bmlGQzYzC3VuaTA2NTQwNjRCC3VuaTA2NTQwNjRFC3VuaTA2NTQwNjRDC3VuaTA2NTQwNjRGC3VuaTA2NTQwNjUyC3VuaTA2NTUwNjREC3VuaTA2NTUwNjUwB3VuaTA2OTIMdW5pMDY5Mi5maW5hB3VuaTA2OTUMdW5pMDY5NS5maW5hDHVuaTA2QTQuZmluYQx1bmkwNkE0LmluaXQMdW5pMDZBNC5tZWRpB3VuaTA2QTgMdW5pMDZBOC5maW5hB3VuaTA2QUEMdW5pMDZBQS5maW5hDHVuaTA2QUEuaW5pdAx1bmkwNkFBLm1lZGkHdW5pMDZCNQx1bmkwNkI1LmZpbmEMdW5pMDZCNS5pbml0DHVuaTA2QjUubWVkaRB1bmkwNjQ0MDY3NS5pc29sEHVuaTA2NDQwNjc1LmZpbmEQdW5pMDZCNTA2MjcuaXNvbBB1bmkwNkI1MDYyNy5maW5hBWFsbGFoBXJpeWFsB3VuaTA2NUEHdW5pMDY1Qg1zbWFsbHYuYXJhYmljEWNpcmN1bWZsZXguYXJhYmljB3VuaTA2QTQHdW5pMDZDNgx1bmkwNkM2LmZpbmEMdW5pMDZDRS5pbml0DHVuaTA2Q0UubWVkaQd1bmkwNkNFDHVuaTA2Q0UuZmluYQd1bmkwNjBECnBhdGFoLndpZGUHdW5pRkQzRQd1bmlGRDNGDGhhaF9hbHQuaXNvbAxoYWhfYWx0LmZpbmEFc2FyeWEIZGlhZ29uYWwHdW5pMjVDQwRaV1NQB3VuaTIwMEMHdW5pMjAwRAd1bmkyMDBFB3VuaTIwMEYOdGhpbl9oYWly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AO0AAgEoAS0ACgAfAAABUAABAVYAAAFQAAABUAAAAVAAAQFWAAABXAAAAWIAAAFoAAABaAABAW4AAAF0AAEBegAAAYAAAAFoAAABhgAAAYwAAAGSAAABXAAAAVwAAAGYAAABXAAAAWgAAAFoAAABaAAAAWgAAAGeAAEBpAABAaQAAAGqAAABsAAQACIALAA2AEAASgBUAF4AaAByAHwAhgCQAJoApACuAMAAAgEWARwBIgEoAAIBDAEkASoBMAACASwBMgE4AT4AAgE6AUABRgFMAAIA7gEGAQwBSAACAUQBSgFQAVYAAgFSAVgBXgFkAAIBYAFmAWwBcgACAW4BdAF6AYAAAgF8AYIBiAGOAAIBigGQAZYBnAACAZgBngGkAaoAAgGmAawBsgG4AAIBtAG6AQABwAAEAbwBwgHIAc4B1AHaAdQB2gAEAc4B1AHaAeAB5gHsAfIB+AABAAAGQAABAAD/BgABAAAGcgABAAAGfAABAAAGGAABAAD/iAABAAAGaAABAAD+cAAB/+IEpgABAAEGcgABASIEkgAB/7AGcgABANwFZAAB/9oGGAABABD/iAABAAAD/AABAAAEOAABBCQGpAABA+j/iAABASwF3AABAUD/iAABA+j/YAABASwFtAABASz/YAABBJwGpAABBGD/YAABAXwINAABAaT/YAABBHgGpAABBDz/YAABAVgINAABAYD/YAABAfT9RAABBCgGpAABBIz/YAABATAFtAABAgz9lAABBCQHCAABA4T/YAABASwHbAABAUD/TAABBCQG1gABA8r/YAABASwHCAABASL/iAABBK4GpAABBF7/dAABAbYHbAABAcr/YAABBLgGpAABBLj/YAABAcAHbAABAfz/TAABBMwHCAABA6D/YAABANAGaAABAVz/YAABBMgHCAABBAD/dAABAMwGQAABAWz/YAABBEAINAABA7T/dAABATQFtAABAUj/YAABBDwINAABBAD/YAABAUT/YAABCHAFeAABB6j/OAABBYwIIAABBTz/TAABAeAEYAABAjD/YAABC4YEiAABCyz9lAABCOoEiAABCHr9gAABBk4GuAABBhj9lAABAlgEsAABApT9WAABAAwAQAABAHQA2gACAAgAYgBiAAAAZABmAAEAaABrAAQAbQBtAAgAbwBvAAkAcQBxAAoBCQEUAAsBLgEvABcAAgAIAGIAYgAAAGQAZgABAGgAawAEAG0AbQAIAG8AbwAJAHEAcQAKAQkBFAALAS4BLwAXABkAAACaAAAAmgAAAKAAAACaAAAApgAAAKwAAACyAAAAuAAAAL4AAADEAAAAygAAANAAAADWAAAA3AAAAKYAAACmAAAA4gAAAKYAAAC4AAAAuAAAALgAAAC4AAAA6AAAAO4AAAD0ABkAlACaAKAApgCsALIAmgC4AL4AxAC4AMoA0ADWANwA4gDoAO4A9AD6AQABAAEGADQANAABAAAGQAABAAAGDgABAAAGcgABAAAGfAABAAAFtAABAAAF3AABAAAGaAAB/+IEpgABAAAGGAABAGgGcgAB//8EkgABAAoGcgAB//IFZAABAB4F8AABAAAD/AABAAAEOAABAAAIZgABAAAH0AABAAAImAABAAAIygABAAAIXAABAAAIhAABAAAINAABAAAIcAAB/84H0AABAGgK3AAB//8IrAABAAoKeAABAAAJsAABAAAKyAAB//IIygABAAAKeAABAAAKAAABAAAI/AABAAAKvgABAB4KeAABAAwAHAABACwARgABAAYAYwBnAGwAbgEVARYAAQAGAGMAZwBsAG4BFQEWAAYAAAAoAAAAKAAAAC4AAAA0AAAAOgAAADoABgAmACwAMgA4AD4ARAABAAD/BgABAAD/iAABAAD+cAABABD/iAABAAD81gABAAD9vAABAAD9qAABAAD8kAABABD7tAABABD8kAABBkQABQAAAE0ApACkAOgA6ALQAwgDCACkAKQApANAA0ADCALQA3gDeANAA0AEBAQEBAQEBAQEBAQApALQBJYElgCkAKQApACkAKQApACkAKQApACkAKQApADoAOgEzgTOBM4EzgLQAwgDCACkAKQApANAA0AApACkAKQApALQBJYElgSWBJYApACkBAQEBAQEBAQEBAQEAtAEzgTOAOgA6ACkAAsAHP+c/5wALP9q/2oAMf8k/yQAUv8k/yQAvf+c/5wA2/8k/yQA3/8k/yQA4f8k/yQA5f8k/yQA9v9q/2oBOP8k/yQAUQAF/wb/BgAI/0L/QgAL/0L/QgAMAGQAZAANAGQAZAAO/0L/QgAP/0L/QgAS/0L/QgAT/0L/QgAW/0L/QgAX/0L/QgAb/0L/QgAe/wb/BgAg/wb/BgAj/wb/BgAm/0L/QgAn/0L/QgAq/0L/QgAr/0L/QgAy/wb/BgBT/wb/BgBV/wb/BgBW/wb/BgB7/wb/BgB9/wb/BgCB/wb/BgCD/wb/BgCF/0L/QgCJ/0L/QgCLAAoACgCN/0L/QgCR/0L/QgCV/0L/QgCZ/0L/QgCb/0L/QgCe/0L/QgCi/0L/QgCl/0L/QgCn/0L/QgCpAGQAZACqAGQAZACrAGQAZACsAGQAZACtAGQAZACuAGQAZACv/0L/QgCw/0L/QgCz/0L/QgC0/0L/QgC3/0L/QgC4/0L/QgC8/0L/QgC//wb/BgDB/0L/QgDC/0L/QgDJ/0L/QgDN/0L/QgDR/0L/QgDS/0L/QgDYAAoACgDdAAoACgDj/0L/QgDm/wb/BgDq/wb/BgDs/wb/BgDv/0L/QgDx/0L/QgDy/0L/QgD1/0L/QgEXAGQAZAEYAGQAZAEZAGQAZAEaAGQAZAEc/0L/QgEg/0L/QgEi/0L/QgEm/wb/BgEo/wb/BgEq/wb/BgEy/0L/QgE1AAoACgAJABz/av9qADH/av9qAFL/av9qAL3/av9qANv/av9qAN//av9qAOH/av9qAOX/av9qATj/av9qAAkAHP+w/7AAMf+c/5wAUv+c/5wAvf+w/7AA2/+c/5wA3/+c/5wA4f+c/5wA5f+c/5wBOP+c/5wACQAc/2r/agAx/tT+1ABS/tT+1AC9/2r/agDb/tT+1ADf/tT+1ADh/tT+1ADl/tT+1AE4/tT+1AAXAAwAMgAyACAAMgAyACIAMgAyACMAMgAyAC4AMgAyADIAMgAyAIYAMgAyAIsAMgAyAI4AMgAyAJIAMgAyAJYAMgAyAKkAMgAyAKsAMgAyAMEAMgAyAMIAMgAyAMUAMgAyAMYAMgAyAMkAMgAyAMsAMgAyAM0AMgAyAM8AMgAyANgAMgAyAN0AMgAyABgAHgCqAKoAIgBkAGQAIwBkAGQAMgBkAGQAUwCqAKoAVQCqAKoAVgCqAKoAjgBkAGQAkgBkAGQAqQBkAGQAqwBkAGQArQBkAGQAvwCqAKoAzQBkAGQA5gBkAGQA6ABkAGQA6gBkAGQA7ABkAGQBFwBkAGQBHABkAGQBJABkAGQBJgBkAGQBKABkAGQBKgBkAGQACQAc/5z/nAAx/yT/JABS/yT/JAC9/5z/nADb/yT/JADf/yT/JADh/yT/JADl/yT/JAE4/yT/JAA+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'\r\n","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./pdf-export-dialog.vue?vue&type=template&id=29b9e427\"\nimport script from \"./pdf-export-dialog.vue?vue&type=script&lang=js\"\nexport * from \"./pdf-export-dialog.vue?vue&type=script&lang=js\"\n\nimport \"./pdf-export-dialog.vue?vue&type=style&index=0&id=29b9e427&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./grid-exporter.vue?vue&type=template&id=782f1a0e\"\nimport script from \"./grid-exporter.vue?vue&type=script&lang=js\"\nexport * from \"./grid-exporter.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./review.vue?vue&type=template&id=500948d8\"\nimport script from \"./review.vue?vue&type=script&lang=js\"\nexport * from \"./review.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./frequent-descriptions-list.vue?vue&type=template&id=24d6cec4\"\nimport script from \"./frequent-descriptions-list.vue?vue&type=script&lang=js\"\nexport * from \"./frequent-descriptions-list.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"nk-card h-100 d-flex flex-column\",\n startup: \"\"\n}\nconst _hoisted_2 = { class: \"h-grow-lock\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_nk_table = _resolveComponent(\"nk-table\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: ['Salary'],\n class: \"personnel-category\",\n policyClaims: { or: ['Salary_PersonnelCategory_Management'] }\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.Personnel')\n }, null, 8, [\"title\"]),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.PersonnelCategory')\n }, null, 8, [\"title\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_nk_table, {\n modelValue: _ctx.selectedRow,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedRow) = $event)),\n data: _ctx.categories,\n options: _ctx.tableOptions,\n ref: \"categoriesList\",\n tabindex: \"101\",\n onRow_dbClicked: _ctx.rowDbClicked\n }, null, 8, [\"modelValue\", \"data\", \"options\", \"onRow_dbClicked\"])\n ])\n ])\n ]),\n _: 1\n }))\n}","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n@/classes/salary/personnel-category","import { Guid, IBaseModel } from '~/interfaces/base'\r\nimport emptyId from '@/statics/empty-id'\r\n\r\nexport class PersonnelCategory implements IBaseModel {\r\n id: Guid\r\n companyId: Guid\r\n name: string\r\n\r\n constructor() {\r\n this.id = emptyId\r\n this.name = ''\r\n this.companyId = emptyId\r\n }\r\n}","import { render } from \"./personnel-category-modify.vue?vue&type=template&id=55641e42&ts=true\"\nimport script from \"./personnel-category-modify.vue?vue&type=script&lang=ts\"\nexport * from \"./personnel-category-modify.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t selectedRow = val\" ref=\"productFloatingListTable\" startup tabindex=\"101\">\r\n\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./product-floating-list.vue?vue&type=template&id=1dc0f451\"\nimport script from \"./product-floating-list.vue?vue&type=script&lang=js\"\nexport * from \"./product-floating-list.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n","import { render } from \"./_layout-login.vue?vue&type=template&id=9b681226\"\nimport script from \"./_layout-login.vue?vue&type=script&lang=js\"\nexport * from \"./_layout-login.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./product-price-group-list.vue?vue&type=template&id=0b930f5b\"\nimport script from \"./product-price-group-list.vue?vue&type=script&lang=js\"\nexport * from \"./product-price-group-list.vue?vue&type=script&lang=js\"\n\nimport \"./product-price-group-list.vue?vue&type=style&index=0&id=0b930f5b&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { post } from '~/plugins/nikan-api'\r\nimport Endpoints from '@nikan/endpoints'\r\n\r\nexport const uploadHandler = (data, callback, url) => { // data => [type:Object]\r\n\r\n // Create Form Data\r\n let formData = new FormData()\r\n const fillForm = (data, prefix) => {\r\n Object.keys(data).forEach((item) => {\r\n if (!!data[item] && typeof data[item] === 'object' && !(data[item] instanceof File) || Array.isArray(data[item])) {\r\n fillForm(data[item], `${prefix}${item}.`)\r\n }\r\n else\r\n formData.append(`${prefix}${item}`, data[item])\r\n })\r\n }\r\n fillForm(data, '')\r\n // Post FormData to url\r\n return post(Endpoints.getUrl(url), formData, null, { onUploadProgress: callback })\r\n}\r\n\r\n\r\nexport const getUploadedFilesList = (url, entityType, entityId) => {\r\n return post(Endpoints.getUrl(url), { entityId: entityId, entityType: entityType })\r\n}\r\n\r\nexport const deleteUploadedFile = (url, entityId) => {\r\n return post(Endpoints.getUrl(url), { AttachmentId: entityId })\r\n}\r\n\r\nexport const downloadUploadedFile = (url, entityId, title) => {\r\n post(Endpoints.getUrl(url), { attachmentId: entityId, }).then((res) => {\r\n const url = window.URL.createObjectURL(\r\n new Blob([res.data], { type: res.headers['content-type'] })\r\n )\r\n const a = document.createElement('a')\r\n a.style.display = 'none'\r\n a.href = url\r\n console.log('res.headers', res.headers)\r\n console.log('url', url)\r\n // the filename you want\r\n a.download = (title || 'nikan') + (res.headers.extension || '')\r\n document.body.appendChild(a)\r\n a.click()\r\n window.URL.revokeObjectURL(url)\r\n })\r\n}\r\n\r\nexport default {\r\n uploadHandler,\r\n getUploadedFilesList,\r\n deleteUploadedFile,\r\n downloadUploadedFile\r\n}","import { resolveDynamicComponent as _resolveDynamicComponent, mergeProps as _mergeProps, openBlock as _openBlock, createBlock as _createBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"w-100 form-container no-outline\",\n id: _ctx.elementId\n }, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.component), _mergeProps({\n modelValue: _ctx.localModelValue,\n \"onUpdate:modelValue\": _ctx.setValue,\n options: _ctx.options,\n data: _ctx.data,\n ref: \"comp\"\n }, _ctx.componentProps), null, 16, [\"modelValue\", \"onUpdate:modelValue\", \"options\", \"data\"]))\n ], 8, _hoisted_1))\n}","\r\n\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./custom-generic.vue?vue&type=template&id=86eb3d74&ts=true\"\nimport script from \"./custom-generic.vue?vue&type=script&lang=ts\"\nexport * from \"./custom-generic.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var map = {\n\t\"./Bank.svg\": 43709,\n\t\"./Cash.svg\": 13238,\n\t\"./Company.svg\": 33604,\n\t\"./CostCenter.svg\": 11603,\n\t\"./CreditsLc.svg\": 60304,\n\t\"./Department.svg\": 70349,\n\t\"./Facilities.svg\": 28644,\n\t\"./Loan.svg\": 44993,\n\t\"./Mall.svg\": 97729,\n\t\"./Orders.svg\": 16084,\n\t\"./Other.svg\": 8247,\n\t\"./Person.svg\": 71736,\n\t\"./Personel.svg\": 32235,\n\t\"./Product.svg\": 39428,\n\t\"./ProductCategory.svg\": 22780,\n\t\"./Project.svg\": 45538,\n\t\"./PurchaseContracts.svg\": 34635,\n\t\"./SaleContracts.svg\": 31055,\n\t\"./Service.svg\": 13052,\n\t\"./Warehouse.svg\": 9740\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 83161;","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./ag-tree-buttons.vue?vue&type=template&id=13e46fda\"\nimport script from \"./ag-tree-buttons.vue?vue&type=script&lang=js\"\nexport * from \"./ag-tree-buttons.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./backupDetail.vue?vue&type=template&id=fba9776a\"\nimport script from \"./backupDetail.vue?vue&type=script&lang=js\"\nexport * from \"./backupDetail.vue?vue&type=script&lang=js\"\n\nimport \"./backupDetail.vue?vue&type=style&index=0&id=fba9776a&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n \r\n
selectedRow = rowData\" :data=\"workshops\" v-model=\"selectedRow\" ref=\"workshopList\" tabindex=\"101\" startup @row_dbClicked=\"rowDbClicked\">\r\n
\r\n\r\n\r\n\r\n","import { render } from \"./workshop-selector.vue?vue&type=template&id=706c385f\"\nimport script from \"./workshop-selector.vue?vue&type=script&lang=js\"\nexport * from \"./workshop-selector.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHistory } from 'vue-router'\r\n\r\nimport Login from '~/views/useraccount/login'\r\nimport Install from '~/views/install/index'\r\nimport Launcher from '~/views/launch/launcher'\r\nimport Migration from '~/views/launch/migration'\r\nimport Root from '~/views/shared/_layout-app'\r\nimport PasswordRecovery from '~/views/useraccount/password-recovery'\r\n\r\nexport const routes = [\r\n { path: '/', redirect: '/dashboard/home' },\r\n { path: '/dashboard', component: Root, name: 'home' },\r\n { path: '/dashboard/:page', component: Root, name: 'page' },\r\n { path: '/login', component: Login, name: 'login' },\r\n { path: '/install', component: Install, name: 'install' },\r\n { path: '/launch', component: Launcher, name: 'launcher' },\r\n { path: '/migration', component: Migration, name: 'migration' },\r\n { path: '/resetpassword', component: PasswordRecovery, name: 'recovery' },\r\n { path: '/:pathMatch(.*)*', redirect: '/dashboard/home' }\r\n]\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(),\r\n routes\r\n})\r\n\r\nrouter.beforeEach((to, from) => {\r\n if((from.name === 'launcher' || from.name === 'migration') && to.name === 'login')\r\n return false\r\n return true\r\n})\r\n\r\n// const originalPush = VueRouter.prototype.push\r\n// VueRouter.prototype.push = function push(location) {\r\n// return originalPush.call(this, location).catch(err => {\r\n// if (err.name !== 'NavigationDuplicated') throw err\r\n// })\r\n// }\r\n\r\nexport default router\r\n","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-product-measure-unit.vue?vue&type=template&id=51f2872a\"\nimport script from \"./dropdown-product-measure-unit.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-product-measure-unit.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { IAppTitle } from '~/interfaces/plugins/helper'\r\nimport { globalLogger } from '~/plugins/logger'\r\nimport * as XLSX from 'xlsx'\r\nimport { IStringMap } from '@/classes/salary/salary-period'\r\nimport { TYPE } from 'vue-toastification'\r\nimport Toast, { toastInstance, toastOptions } from '~/plugins/toast.js'\r\nimport i18n, { hotreload, i18nInstance } from '~/plugins/localization'\r\nimport jalaliMoment from 'jalali-moment'\r\n\r\nconst { title } = require('../../package')\r\n\r\nexport class AppTitle implements IAppTitle {\r\n\r\n\tprivate readonly defaultTitle: string = title\r\n\tduration: number\r\n\ttickTitle!: string\r\n\tintervalId?: number\r\n\r\n\tconstructor(tickTile: string, duration: number) {\r\n\t\tthis.setTickTitle(tickTile)\r\n\t\tthis.duration = duration\r\n\t}\r\n\r\n\tsetInterval(tickTitle: string = this.tickTitle, duration: number = this.duration): void {\r\n\r\n\t\tif (!this.tickTitle.length)\r\n\t\t\tglobalLogger.warn('tickTitle is Empty!')\r\n\r\n\t\tthis.intervalId = setInterval(() => {\r\n\t\t\tdocument.title = this.defaultTitle\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tdocument.title = tickTitle\r\n\t\t\t}, duration)\r\n\t\t}, duration * 2)\r\n\t}\r\n\r\n\tclearInterval(intervalId: number): void {\r\n\t\tclearInterval(intervalId)\r\n\t}\r\n\r\n\tsetTickTitle(tickTile: string = ''): void {\r\n\t\tthis.tickTitle = tickTile\r\n\t}\r\n\r\n\tgetIntervalId(): number | undefined {\r\n\t\treturn this.intervalId\r\n\t}\r\n\r\n\tchangeDuration(duration: number): void {\r\n\t\tthis.duration = duration\r\n\t}\r\n}\r\n\r\nexport const GlobalAppTitle = new AppTitle('', 1000)\r\n\r\nexport function calcNotTranslateTables(tableList: [any]): void {\r\n\tvar p = /^[\\u0600-\\u06FF\\s]+$/\r\n\tlet notTranslateArr: any[] = []\r\n\ttableList.forEach((x: any) => {\r\n\t\tif (!p.test(x.entityTitle[0])) notTranslateArr.push(x.entityType)\r\n\t\tx.columns.forEach((y: any) => {\r\n\t\t\tif (!p.test(y.title[0])) notTranslateArr.push(y.title)\r\n\t\t})\r\n\t})\r\n\tconsole.log('result', notTranslateArr)\r\n}\r\n\r\nexport function idGenerator(n: number = 5) {\r\n\treturn Math.random().toString(36).substr(2, n)\r\n}\r\n\r\nexport function generateUUID() {\r\n\tvar d = new Date().getTime()\r\n\tvar d2 = ((typeof performance !== 'undefined') && performance.now && (performance.now() * 1000)) || 0//Time in microseconds since page-load or 0 if unsupported\r\n\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n\t\tvar r = Math.random() * 16\r\n\t\tif (d > 0) {\r\n\t\t\tr = (d + r) % 16 | 0\r\n\t\t\td = Math.floor(d / 16)\r\n\t\t} else {\r\n\t\t\tr = (d2 + r) % 16 | 0\r\n\t\t\td2 = Math.floor(d2 / 16)\r\n\t\t}\r\n\t\treturn (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)\r\n\t})\r\n}\r\n\r\nexport function importExcel(event: any, colKeys: IStringMap): Promise {\r\n\treturn new Promise((resolve, reject) => {\r\n\r\n\t\tconst file = event.target.files[0]\r\n\t\tconst splitName = file.name.split('.')\r\n\t\tif (splitName[splitName.length - 1] === 'xlsx' || splitName[splitName.length - 1] === 'xls') {\r\n\t\t\tconst reader = new FileReader()\r\n\t\t\treader.onload = (e) => {\r\n\t\t\t\tif (e.target) {\r\n\t\t\t\t\t/* Parse data */\r\n\t\t\t\t\tconst bstr = e.target.result\r\n\t\t\t\t\tconst wb = XLSX.read(bstr, { type: 'binary' })\r\n\t\t\t\t\t/* Get first worksheet */\r\n\t\t\t\t\tconst wsname = wb.SheetNames[0]\r\n\t\t\t\t\tconst ws = wb.Sheets[wsname]\r\n\t\t\t\t\t/* Convert array of arrays */\r\n\t\t\t\t\tconst rows: any[] = XLSX.utils.sheet_to_json(ws, { header: 1 })\r\n\t\t\t\t\tconst bankPaymentObjIndex: any = {}\r\n\t\t\t\t\trows[0].forEach((x: string, ind: number) => {\r\n\t\t\t\t\t\tbankPaymentObjIndex[ind] = colKeys[x]\r\n\t\t\t\t\t})\r\n\t\t\t\t\tif (Object.values(bankPaymentObjIndex).some(x => !x)) {\r\n\t\t\t\t\t\ttoastInstance(i18nInstance.global.t('salary.bank-payment-announce.m.excel-column-not-exist'))\r\n\t\t\t\t\t\treject()\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst result = rows.reduce((a: any[], c: any[], ind: number) => {\r\n\t\t\t\t\t\tif (ind !== 0) {\r\n\t\t\t\t\t\t\ta.push(c.reduce((a2, c2, ind2) => {\r\n\t\t\t\t\t\t\t\tif (typeof bankPaymentObjIndex[ind2] === 'string') {\r\n\r\n\t\t\t\t\t\t\t\t\tconst splittedProp = bankPaymentObjIndex[ind2].split('.')\r\n\t\t\t\t\t\t\t\t\tsplittedProp.reduce((acc: any, key: string, index: number) => {\r\n\t\t\t\t\t\t\t\t\t\tif (index === splittedProp.length - 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t// Last key, assign the value\r\n\t\t\t\t\t\t\t\t\t\t\tacc[key] = c2\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t// Check if the key exists, if not, create an empty object\r\n\t\t\t\t\t\t\t\t\t\t\tacc[key] = acc[key] || {}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn acc[key] // Return the current object for the next iteration\r\n\t\t\t\t\t\t\t\t\t}, a2)\r\n\t\t\t\t\t\t\t\t} else\r\n\t\t\t\t\t\t\t\t\ta2[bankPaymentObjIndex[ind2]] = c2\r\n\t\t\t\t\t\t\t\treturn a2\r\n\t\t\t\t\t\t\t}, { id: idGenerator(10) }))\r\n\t\t\t\t\t\t\treturn a\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn a\r\n\t\t\t\t\t}, [])\r\n\t\t\t\t\tresolve(result.filter((x: any) => !(x.id && Object.keys(x).length === 1)))\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treader.readAsBinaryString(file)\r\n\t\t}\r\n\t\t// if (splitName[splitName.length - 1] === 'xlsx' || splitName[splitName.length - 1] === 'xls') {\r\n\t\t// readXlsxFile(event.target.files[0]).then((rows: any[]) => {\r\n\t\t//\r\n\t\t//\r\n\t\t// })\r\n\t\t// }\r\n\t\telse {\r\n\t\t\ttoastInstance(i18nInstance.global.t('salary.bank-payment-announce.m.not-supported-files'))\r\n\t\t\treject()\r\n\t\t}\r\n\t})\r\n\r\n}\r\n\r\nexport function smartUnit(uValue: any, unit: any, units: any[]) {\r\n\tfunction smartUnitByFloatRateValue(val: any, unit: any, units: any[]) {\r\n\t\tlet result = \"\"\r\n\t\tlet value = parseFloat(val) * parseFloat(unit.rate)\r\n\r\n\t\tif (units.length <= 1) {\r\n\t\t\treturn `${value} ${units[0].name}`\r\n\t\t}\r\n\r\n\t\tlet count = 0\r\n\t\tlet toFixedRoundedNumber = 0\r\n\t\tlet decimalPart = \"\"\r\n\t\tlet currentRate\r\n\t\tlet resultUnit: any = {}\r\n\t\tfor (var i = units.length - 1; i >= 0; i--) {\r\n\t\t\tif (units[i].rate >= unit.rate) {\r\n\t\t\t\tcurrentRate = parseFloat(units[i].rate)\r\n\t\t\t\tif (i != 0) {\r\n\t\t\t\t\tvar decimalParts = currentRate.toString().split(\".\")\r\n\t\t\t\t\tif (decimalParts.length > 1) {\r\n\t\t\t\t\t\tdecimalPart = decimalParts[1]\r\n\t\t\t\t\t\ttoFixedRoundedNumber = decimalPart.length\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tcount = Math.floor(value / currentRate)\r\n\t\t\t\tif (currentRate == 1) {\r\n\t\t\t\t\tcount = Number(value.toFixed(toFixedRoundedNumber))\r\n\t\t\t\t}\r\n\t\t\t\tif (count > 0) {\r\n\t\t\t\t\tif (result == \"\") {\r\n\t\t\t\t\t\tresult = `${Number(count.toFixed(toFixedRoundedNumber))} ${units[i].name}`\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresult += ` ${count} ${units[i].name}`\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tresultUnit.ucount = count\r\n\t\t\t\tresultUnit.name = units[i].name\r\n\t\t\t\tvalue = value - currentRate * count\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\tresultUnit.name == unit.name &&\r\n\t\t\tresultUnit.ucount == val &&\r\n\t\t\tunits.length > 1\r\n\t\t) {\r\n\t\t\tvalue = parseFloat(val) * parseFloat(unit.rate)\r\n\t\t\tunits = [units[0]]\r\n\t\t\treturn smartUnitByFloatRateValue(value, units[0], units)\r\n\t\t}\r\n\t\treturn result\r\n\t}\r\n\r\n\tfunction smartUnitByIntRateValue(val: any, unit: any, units: any[]) {\r\n\t\tlet result = \"\"\r\n\t\tlet value = parseInt(val) * parseInt(unit.rate)\r\n\r\n\t\tif (units.length <= 1) {\r\n\t\t\treturn `${value} ${units[0].name}`\r\n\t\t}\r\n\r\n\t\tlet count = 0\r\n\t\tlet resultUnit: any = {}\r\n\t\tfor (var i = units.length - 1; i >= 0; i--) {\r\n\t\t\tif (units[i].rate >= unit.rate) {\r\n\t\t\t\tcount = Math.floor(value / parseInt(units[i].rate))\r\n\t\t\t\tif (count > 0) {\r\n\t\t\t\t\tif (result == \"\") {\r\n\t\t\t\t\t\tresult = `${count} ${units[i].name}`\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresult += ` ${count} ${units[i].name}`\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresultUnit.ucount = count\r\n\t\t\t\t\tresultUnit.name = units[i].name\r\n\t\t\t\t}\r\n\t\t\t\tvalue = value - parseInt(units[i].rate) * count\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (\r\n\t\t\tresultUnit.name == unit.name &&\r\n\t\t\tresultUnit.ucount == val &&\r\n\t\t\tunits.length > 1\r\n\t\t) {\r\n\t\t\tvalue = parseInt(val) * parseInt(unit.rate)\r\n\t\t\tunits = [units[0]]\r\n\t\t\treturn smartUnitByIntRateValue(value, units[0], units)\r\n\t\t}\r\n\t\treturn result\r\n\t}\r\n\r\n\tlet hasFloatRate = false\r\n\tunits.forEach((item) => {\r\n\t\tconst rate = parseFloat(item.rate)\r\n\t\tif (!Number.isNaN(rate) && rate % 1 !== 0) {\r\n\t\t\thasFloatRate = true\r\n\t\t}\r\n\t})\r\n\r\n\tlet sortedUnits = []\r\n\tfor (var i = 0; i < units.length; i++) {\r\n\t\tif (hasFloatRate) {\r\n\t\t\tsortedUnits.push({\r\n\t\t\t\tname: units[i].name,\r\n\t\t\t\trate: parseFloat(units[i].rate),\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tsortedUnits.push({ name: units[i].name, rate: parseInt(units[i].rate) })\r\n\t\t}\r\n\t}\r\n\tsortedUnits.sort((a: any, b: any) => parseInt(a.rate) - parseInt(b.rate))\r\n\r\n\tif ((sortedUnits || []).length <= 1 || (unit.rate === sortedUnits[0].rate && uValue < sortedUnits[1].rate))\r\n\t\treturn ''\r\n\r\n\tif (hasFloatRate) {\r\n\t\treturn smartUnitByFloatRateValue(uValue, unit, sortedUnits)\r\n\t} else {\r\n\t\treturn smartUnitByIntRateValue(uValue, unit, sortedUnits)\r\n\t}\r\n}\r\n\r\n/// \r\n/// check id if it changed in data source\r\n/// !!remove property after checking ids\r\n/// \r\nexport function idCheckChanged(property: string, source1: any, source2: any) {\r\n\tconst selectProp = (source1: any, source2: any, props: string[]): any => {\r\n\t\t// debugger\r\n\t\tlet changed = false\r\n\r\n\t\tif (!source1 || !source2) return true\r\n\t\tif (Array.isArray(source1[props[0]])) {\r\n\t\t\tconst insideSource1 = source1[props[0]]\r\n\t\t\tconst insideSource2 = source2[props[0]]\r\n\t\t\tlet length = insideSource1.length\r\n\t\t\tchanged = insideSource1?.length !== insideSource2?.length\r\n\t\t\tif (!changed)\r\n\t\t\t\twhile (!changed && length) {\r\n\t\t\t\t\t// debugger\r\n\t\t\t\t\tif (props.length === 1) {\r\n\t\t\t\t\t\tchanged = insideSource1[length - 1]?.id !== insideSource2[length - 1]?.id\r\n\t\t\t\t\t\tdelete insideSource1[length - 1]\r\n\t\t\t\t\t\tdelete insideSource2[length - 1]\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tchanged = selectProp(insideSource1[length - 1], insideSource2[length - 1], props.slice(1, props.length))\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlength--\r\n\t\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (props.length === 1) {\r\n\t\t\t\tchanged = source1[props[0]]?.id !== source2[props[0]]?.id\r\n\t\t\t\tdelete source1[props[0]]\r\n\t\t\t\tdelete source2[props[0]]\r\n\t\t\t} else {\r\n\t\t\t\tchanged = selectProp(source1[props[0]], source2[props[0]], props.slice(1, props.length - 1))\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn changed\r\n\r\n\t}\r\n\r\n\tconst splitProperty = property.split('.')\r\n\r\n\treturn selectProp(source1, source2, splitProperty)\r\n}\r\n\r\nexport function changeTimeToNow(date: string) {\r\n\tlet momentDate = jalaliMoment(date, 'YYYY-MM-DDTHH:mm:ss')\r\n\r\n\tlet now = jalaliMoment()\r\n\r\n\tmomentDate.hour(now.hour())\r\n\tmomentDate.minute(now.minute())\r\n\tmomentDate.second(now.second())\r\n\r\n\treturn momentDate.format('YYYY-MM-DDTHH:mm:ss')\r\n}\r\n\r\n\r\n","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t

\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./migration.vue?vue&type=template&id=4329fe98\"\nimport script from \"./migration.vue?vue&type=script&lang=js\"\nexport * from \"./migration.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/install.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./small-checkbox.vue?vue&type=template&id=0186c2c7\"\nimport script from \"./small-checkbox.vue?vue&type=script&lang=js\"\nexport * from \"./small-checkbox.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./codings.vue?vue&type=template&id=2b014606\"\nimport script from \"./codings.vue?vue&type=script&lang=js\"\nexport * from \"./codings.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","class NikanLogger {\r\n constructor(level = 0, logOnBuild = false) {\r\n\r\n this.isDevBuild = !(process.env.NODE_ENV && process.env.NODE_ENV === 'production')\r\n\r\n this.base = {\r\n debug: '[LOGGER DEBUG]',\r\n log: '[LOGGER LOG]',\r\n warn: '[LOGGER WARN]',\r\n error: '[LOGGER ERROR]',\r\n info: '[LOGGER INFO]',\r\n force: '[LOGGER FORCE]',\r\n }\r\n\r\n this.level = level\r\n\r\n this.levels = Object.freeze({\r\n log: 0,\r\n debug: 1,\r\n info: 2,\r\n warn: 3,\r\n error: 4,\r\n off: 99\r\n })\r\n\r\n this.logOnBuild = logOnBuild\r\n }\r\n\r\n validate(level, force) {\r\n\r\n if (force)\r\n return true\r\n\r\n if (!this.isDevBuild && !this.logOnBuild)\r\n return false\r\n\r\n if (level < this.level)\r\n return false\r\n\r\n return true\r\n }\r\n\r\n time(func) {\r\n console.time()\r\n func()\r\n console.timeEnd()\r\n }\r\n\r\n debug(...messages) {\r\n if (this.validate(this.levels.debug))\r\n console.log(this.base.debug, ...messages)\r\n }\r\n\r\n log(...messages) {\r\n if (this.validate(this.levels.log))\r\n console.log(this.base.log, ...messages)\r\n }\r\n\r\n force(...messages) {\r\n console.log(this.base.force, ...messages)\r\n }\r\n\r\n warn(...messages) {\r\n if (this.validate(this.levels.warn))\r\n console.warn(this.base.warn, ...messages)\r\n }\r\n\r\n error(...messages) {\r\n if (this.validate(this.levels.error))\r\n console.error(this.base.error, ...messages)\r\n }\r\n\r\n info(...messages) {\r\n if (this.validate(this.levels.info))\r\n console.log(this.base.info, ...messages)\r\n }\r\n\r\n getCurrentLevel() {\r\n return this.level\r\n }\r\n\r\n setLevel(level) {\r\n this.level = level\r\n }\r\n\r\n clear() {\r\n console.clear()\r\n }\r\n\r\n customHandler(func, level = 0) {\r\n if (this.validate(level))\r\n func()\r\n }\r\n}\r\n\r\nconst globalLogger = new NikanLogger()\r\nexport { globalLogger }\r\nexport default NikanLogger","import { Guid, IBaseModel, Code } from '~/interfaces/base'\r\nimport emptyId from '~/statics/empty-id'\r\n\r\nexport class JobCode implements IBaseModel {\r\n id: Guid\r\n code: Code\r\n name: string\r\n\r\n constructor() {\r\n this.id = emptyId\r\n this.code = ''\r\n this.name = ''\r\n }\r\n}","\r\n\t\r\n\t\t
0 ? { maxHeight: maxHeight + 'px' } : ''\" :data-grid-id=\"gridId\" :class=\"{\r\n\t\t\t'nk-full-screen': fullScreenStatus,\r\n\t\t\t[`grid_${gridId}`]: true,\r\n\t\t\tgrid: true,\r\n\t\t\tltr: settings.ltr,\r\n\t\t\t'stop-user-select': stopUserSelectOnTable,\r\n\t\t\treadonly: !isEditable,\r\n\t\t}\">\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{{ $t(\"grid.loading\") }}\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./app-state-list.vue?vue&type=template&id=304f9973\"\nimport script from \"./app-state-list.vue?vue&type=script&lang=js\"\nexport * from \"./app-state-list.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\r\n\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./search-range.vue?vue&type=template&id=7c90b594\"\nimport script from \"./search-range.vue?vue&type=script&lang=js\"\nexport * from \"./search-range.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./filter-row.vue?vue&type=template&id=38883d92&scoped=true\"\nimport script from \"./filter-row.vue?vue&type=script&lang=js\"\nexport * from \"./filter-row.vue?vue&type=script&lang=js\"\n\nimport \"./filter-row.vue?vue&type=style&index=0&id=38883d92&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-38883d92\"]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\r\n\r\n\t
\r\n\r\n\r\n","import { render } from \"./grid-settings.vue?vue&type=template&id=6c587ff4\"\nimport script from \"./grid-settings.vue?vue&type=script&lang=js\"\nexport * from \"./grid-settings.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./grid-select-menu.vue?vue&type=template&id=461cf725\"\nimport script from \"./grid-select-menu.vue?vue&type=script&lang=js\"\nexport * from \"./grid-select-menu.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./aggregates.vue?vue&type=template&id=564ad462\"\nimport script from \"./aggregates.vue?vue&type=script&lang=js\"\nexport * from \"./aggregates.vue?vue&type=script&lang=js\"\n\nimport \"./aggregates.vue?vue&type=style&index=0&id=564ad462&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t 0,\r\n\t\t'grid-row-deleted': item.rowState === 'deleted',\r\n\t\t'grid-row-new': item.rowState === 'new',\r\n\t\t'grid-row-error': !item.$___valid,\r\n\t\t'grid-row-lock': item.$___locked,\r\n\t}\" :data-row=\"item.id\">\r\n\t\t $emit('data-changed', obj)\" @row_checkboxClicked=\"(obj) => $emit('row_checkboxClicked', obj)\" @focus_cellClicked=\"(obj) => $emit('focus_cellClicked', obj)\"\r\n\t\t\t@focus_cellClickedByCtrl=\"(obj) => $emit('focus_cellClickedByCtrl', obj)\" />\r\n\t
\r\n\r\n\r\n","\r\n\t\r\n\t\t\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t 0\" icon=\"edit\" />\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t \r\n\t\t \r\n\t | \r\n\r\n\t $emit('row_checkboxClicked', { e, item, index })\" style=\"\" data-distance=\"0\">\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t | \r\n\r\n\t -1,\r\n\t\t[getStyleRule(item, col)]: true\r\n\t}\" :style=\"'order: ' +\r\n\t\tcol.order +\r\n\t\t';' +\r\n\t\t(!col.visibility ? 'display: none' : 'display: table-cell')\r\n\t\t\" @click.exact=\"$emit('focus_cellClicked', { index, item, col })\" @click.ctrl=\"$emit('focus_cellClickedByCtrl', item)\" :tabindex=\"index !== activeRowIndex ||\r\n\t\t\t\t\t\t\t\t\t!col.isActive ||\r\n\t\t\t\t\t\t\t\t\t!colEditable\r\n\t\t\t\t\t\t\t\t\t? 0\r\n\t\t\t\t\t\t\t\t\t: null\r\n\t\t\t\t\t\t\t\t\t\" :data-distance=\"col.$___distance > -1 ? col.$___distance : null\">\r\n\t\t\r\n\t\t\t \r\n\t\t\t\t{{ String(index + 1).toLocaleDigits() }}\r\n\t\t\t \r\n\t\t \r\n\r\n\t\t\r\n\t\t\t col_setProp(item, col, val)\" v-on:focusout=\"$emit('cell_focused_out')\" :options=\"edit.options\" :tabindex=\"col.isActive ? 0 : ''\" class=\"grid-cell-content-editor\">\r\n\t\t \r\n\r\n\t\t\r\n\t\t\t \r\n\t\t\t\t {{ item[col.name] }} \r\n\t\t\t\t \r\n\t\t\t\t col_setProp(item, col, val)\" @click=\"componentClick\" class=\"grid-cell-content-view\" :class=\"col.cellClass\" :tabindex=\"0\">\r\n\t\t\t \r\n\t\t \r\n\t | \r\n\r\n\r\n","import { render } from \"./grid-cell.vue?vue&type=template&id=2e1d47aa\"\nimport script from \"./grid-cell.vue?vue&type=script&lang=js\"\nexport * from \"./grid-cell.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./lazy-row.vue?vue&type=template&id=0d4c0fec\"\nimport script from \"./lazy-row.vue?vue&type=script&lang=js\"\nexport * from \"./lazy-row.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./grid.vue?vue&type=template&id=9ca934ae\"\nimport script from \"./grid.vue?vue&type=script&lang=js\"\nexport * from \"./grid.vue?vue&type=script&lang=js\"\n\nimport \"~/styles/grid.less?vue&type=style&index=0&lang=less&external\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
activeTab = tabId\">\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./auto-accounts-modify.vue?vue&type=template&id=00b3ab1c\"\nimport script from \"./auto-accounts-modify.vue?vue&type=script&lang=js\"\nexport * from \"./auto-accounts-modify.vue?vue&type=script&lang=js\"\n\nimport \"./auto-accounts-modify.vue?vue&type=style&index=0&id=00b3ab1c&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./bank-selector.vue?vue&type=template&id=3cf94d48\"\nimport script from \"./bank-selector.vue?vue&type=script&lang=js\"\nexport * from \"./bank-selector.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./warehouse.vue?vue&type=template&id=aa53d0a6\"\nimport script from \"./warehouse.vue?vue&type=script&lang=js\"\nexport * from \"./warehouse.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./preview-container.vue?vue&type=template&id=0edcddfe\"\nimport script from \"./preview-container.vue?vue&type=script&lang=js\"\nexport * from \"./preview-container.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./product-classification-list.vue?vue&type=template&id=71422dd4\"\nimport script from \"./product-classification-list.vue?vue&type=script&lang=js\"\nexport * from \"./product-classification-list.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_dropdown = _resolveComponent(\"nk-dropdown\")!\n\n return (_openBlock(), _createBlock(_component_nk_dropdown, {\n modelValue: _ctx.dropdownValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.dropdownValue) = $event)),\n data: _ctx.dropdownData,\n options: _ctx.settings.dropdownOptions,\n disabled: _ctx.disabled ? true : null,\n ref: \"input\",\n tabindex: _ctx.tabindex\n }, null, 8, [\"modelValue\", \"data\", \"options\", \"disabled\", \"tabindex\"]))\n}","\r\n \r\n\r\n\r\n\r\n\r\n","import { render } from \"./dropdown-salary-item.vue?vue&type=template&id=429bee70&ts=true\"\nimport script from \"./dropdown-salary-item.vue?vue&type=script&lang=ts\"\nexport * from \"./dropdown-salary-item.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var map = {\n\t\"./Avatars/Bank.svg\": 43709,\n\t\"./Avatars/Cash.svg\": 13238,\n\t\"./Avatars/Company.svg\": 33604,\n\t\"./Avatars/CostCenter.svg\": 11603,\n\t\"./Avatars/CreditsLc.svg\": 60304,\n\t\"./Avatars/Department.svg\": 70349,\n\t\"./Avatars/Facilities.svg\": 28644,\n\t\"./Avatars/Loan.svg\": 44993,\n\t\"./Avatars/Mall.svg\": 97729,\n\t\"./Avatars/Orders.svg\": 16084,\n\t\"./Avatars/Other.svg\": 8247,\n\t\"./Avatars/Person.svg\": 71736,\n\t\"./Avatars/Personel.svg\": 32235,\n\t\"./Avatars/Product.svg\": 39428,\n\t\"./Avatars/ProductCategory.svg\": 22780,\n\t\"./Avatars/Project.svg\": 45538,\n\t\"./Avatars/PurchaseContracts.svg\": 34635,\n\t\"./Avatars/SaleContracts.svg\": 31055,\n\t\"./Avatars/Service.svg\": 13052,\n\t\"./Avatars/Warehouse.svg\": 9740,\n\t\"./access-denied.svg\": 42424,\n\t\"./icons/check-svgrepo-com.svg\": 14208,\n\t\"./login-welcome.svg\": 9702,\n\t\"./logout.svg\": 63180,\n\t\"./money.svg\": 30118,\n\t\"./person.svg\": 97597,\n\t\"./receipt.svg\": 26566,\n\t\"./select.svg\": 45910,\n\t\"./server-error.svg\": 90762,\n\t\"./token-expired.svg\": 79117\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 91980;","\r\n\t\r\n\t\t emitChanges(val)\" ref=\"treeItem\" />\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\t\r\n\t\t\r\n\t\t\t

\r\n\t\t\t
checkboxStateChanged(val)\" />\r\n\t\t\t{{ modelValue[this.text] }}\r\n\t\t \r\n\t\t\r\n\t\t\t treeItemDataChanged(val)\" @change=\"val => $emit('change', val)\" ref=\"treeChild\" />\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","\r\n\t\r\n\t\t

\r\n\t\t

\r\n\t
\r\n\r\n\r\n\r\n\r\n","import { render } from \"./Checkbox.vue?vue&type=template&id=8257c766&scoped=true\"\nimport script from \"./Checkbox.vue?vue&type=script&lang=js\"\nexport * from \"./Checkbox.vue?vue&type=script&lang=js\"\n\nimport \"./Checkbox.vue?vue&type=style&index=0&id=8257c766&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8257c766\"]])\n\nexport default __exports__","import { render } from \"./TreeItem.vue?vue&type=template&id=e1d6fafa&scoped=true\"\nimport script from \"./TreeItem.vue?vue&type=script&lang=js\"\nexport * from \"./TreeItem.vue?vue&type=script&lang=js\"\n\nimport \"./TreeItem.vue?vue&type=style&index=0&id=e1d6fafa&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e1d6fafa\"]])\n\nexport default __exports__","import { render } from \"./Tree.vue?vue&type=template&id=493bb8ea&scoped=true\"\nimport script from \"./Tree.vue?vue&type=script&lang=js\"\nexport * from \"./Tree.vue?vue&type=script&lang=js\"\n\nimport \"./Tree.vue?vue&type=style&index=0&id=493bb8ea&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-493bb8ea\"]])\n\nexport default __exports__","import App from '../views/App.vue'\r\nimport { createApp } from 'vue'\r\nconst app = createApp(App)\r\n\r\nexport default app","\r\n\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\r\n","import { render } from \"./dropdown-floating-center.vue?vue&type=template&id=1fc3eb97\"\nimport script from \"./dropdown-floating-center.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown-floating-center.vue?vue&type=script&lang=js\"\n\nimport \"./dropdown-floating-center.vue?vue&type=style&index=0&id=1fc3eb97&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_nk_badge_item = _resolveComponent(\"nk-badge-item\")!\n const _component_nk_badge = _resolveComponent(\"nk-badge\")!\n const _component_month_selector = _resolveComponent(\"month-selector\")!\n const _component_nk_page = _resolveComponent(\"nk-page\")!\n\n return (_openBlock(), _createBlock(_component_nk_page, {\n commercialAccess: \"Salary\",\n class: \"\",\n policyClaims: \"Salary_SalaryPeriod_Management\",\n buttons: Object.values(_ctx.bottomButtons),\n tabindex: \"101\",\n startup: \"\"\n }, {\n badges: _withCtx(() => [\n _createVNode(_component_nk_badge, { system: \"salary\" }, {\n default: _withCtx(() => [\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\"\n }),\n _createVNode(_component_nk_badge_item, {\n type: \"system\",\n modelValue: \"salary\",\n title: _ctx.$t('forms.SalaryPeriods')\n }, null, 8, [\"title\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createVNode(_component_month_selector, {\n ref: \"monthSelector\",\n options: _ctx.options,\n modelValue: _ctx.selectedPeriod,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedPeriod) = $event))\n }, null, 8, [\"options\", \"modelValue\"])\n ]),\n _: 1\n }, 8, [\"buttons\"]))\n}","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n","import { render } from \"./preview-periods.vue?vue&type=template&id=e8005efc&ts=true\"\nimport script from \"./preview-periods.vue?vue&type=script&lang=ts\"\nexport * from \"./preview-periods.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./ag-tree.vue?vue&type=template&id=3a81ae3c\"\nimport script from \"./ag-tree.vue?vue&type=script&lang=js\"\nexport * from \"./ag-tree.vue?vue&type=script&lang=js\"\n\nimport \"./ag-tree.vue?vue&type=style&index=0&id=3a81ae3c&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Guid, IBaseModel } from '~/interfaces/base'\r\nimport { SalaryItemDataTypes, SalaryItemActionTypes, SalaryItemFillTypes, SalaryItemTypes } from '~/enums/salary'\r\nimport { Personnel } from '@/classes/salary/personnel'\r\nimport emptyId from '@/statics/empty-id'\r\nimport { i18nInstance } from '@/plugins/localization'\r\nimport { BaseState } from '~/classes/system/grid'\r\nimport { RowStates } from '~/enums/system'\r\n\r\nexport class SalaryItem implements BaseState {\r\n\tconstructor() {\r\n\t}\r\n\r\n\tid: Guid = emptyId\r\n\tcompanyId!: Guid\r\n\tname!: string\r\n\tdisplayName!: string\r\n\taccountId!: Guid\r\n\tdataType!: SalaryItemDataTypes\r\n\tactionType!: SalaryItemActionTypes\r\n\tfillType!: SalaryItemFillTypes\r\n\ttype!: SalaryItemTypes\r\n\tformula!: string\r\n\tjsonFormula: any = null\r\n\tdefaultValue!: string | number\r\n\tmaxValue!: number\r\n\tincludeInsurance: boolean = false\r\n\tincludeTax: boolean = false\r\n\trowState!: RowStates\r\n\tisActive: boolean = true\r\n\tcode?: string\r\n\tresultFunctionCode?: number\r\n\tcontinuous: boolean = false\r\n\tnonCash: boolean = false\r\n\tusedSalaryItemIds!: string\r\n\tsystemKey!: string\r\n\torderIndex: number = 0\r\n\tignoreNonPrivilegeCalc: boolean = false\r\n}\r\n\r\nexport class MinimalSalaryItem implements IBaseModel {\r\n\tid: Guid\r\n\tname: string\r\n\tvalue: string\r\n\r\n\tconstructor() {\r\n\t\tthis.id = emptyId\r\n\t\tthis.name = ''\r\n\t\tthis.value = ''\r\n\t}\r\n}\r\n\r\nexport class SelectedDataType {\r\n\tconstructor(init?: Partial) {\r\n\t\tObject.assign(this, init)\r\n\t}\r\n\r\n\tid!: SalaryItemDataTypes\r\n\tname!: string\r\n}\r\n\r\nexport class SelectedDataEntry {\r\n\tconstructor(init?: Partial) {\r\n\t\tObject.assign(this, init)\r\n\t}\r\n\r\n\tid!: SalaryItemFillTypes\r\n\tname!: string\r\n\tclass!: string\r\n}\r\n\r\nexport class SelectedItemType {\r\n\tconstructor(init?: Partial) {\r\n\t\tObject.assign(this, init)\r\n\t}\r\n\r\n\tid!: SalaryItemTypes\r\n\tname!: string\r\n\tclass!: string\r\n}\r\n\r\nexport class SelectedFunctionType {\r\n\tconstructor(init?: Partial) {\r\n\t\tObject.assign(this, init)\r\n\t}\r\n\r\n\tid!: SalaryItemActionTypes\r\n\tname!: string\r\n\tclass!: string\r\n\ticon!: string\r\n}\r\n\r\nexport const itemTypes: SelectedItemType[] = [\r\n\t// @ts-ignore\r\n\t{ id: SalaryItemTypes.Deductions, name: i18nInstance.global.t('salary.item.deductions'), class: 'salary-item-light-yellow' },\r\n\t{ id: SalaryItemTypes.Privilege, name: i18nInstance.global.t('salary.item.privilege'), class: 'salary-item-light-green' },\r\n\t{ id: SalaryItemTypes.Salary, name: i18nInstance.global.t('salary.item.salary'), class: 'salary-item-light-red' },\r\n\t{ id: SalaryItemTypes.Functional, name: i18nInstance.global.t('salary.item.functional',), class: 'salary-item-light-purple' },\r\n]\r\nexport const entryTypes: SelectedDataEntry[] = [\r\n\t{ id: SalaryItemFillTypes.Monthly, name: i18nInstance.global.t('salary.item.monthly'), class: 'salary-item-green' },\r\n\t{ id: SalaryItemFillTypes.Yearly, name: i18nInstance.global.t('salary.item.yearly'), class: 'salary-item-pink' },\r\n\t{ id: SalaryItemFillTypes.EndYear, name: i18nInstance.global.t('salary.item.endYear'), class: 'salary-item-pink' },\r\n]\r\nexport const operationTypes: SelectedFunctionType[] = [\r\n\t{ id: SalaryItemActionTypes.Computational, name: i18nInstance.global.t('salary.item.computational'), class: 'salary-item-blue2', icon: 'fa-solid fa-calculator' },\r\n\t{ id: SalaryItemActionTypes.Display, name: i18nInstance.global.t('salary.item.display'), class: 'salary-item-purple', icon: 'fa-solid fa-eye' },\r\n\t{ id: SalaryItemActionTypes.Single, name: i18nInstance.global.t('salary.item.single'), class: 'salary-item-yellow', icon: 'fa-solid fa-keyboard' },\r\n]\r\nexport const dataTypes: SelectedDataType[] = [\r\n\t{ id: SalaryItemDataTypes.Date, name: i18nInstance.global.t('salary.item.date') },\r\n\t{ id: SalaryItemDataTypes.Money, name: i18nInstance.global.t('salary.item.money') },\r\n\t{ id: SalaryItemDataTypes.Numerical, name: i18nInstance.global.t('salary.item.numerical') },\r\n\t{ id: SalaryItemDataTypes.String, name: i18nInstance.global.t('salary.item.string') },\r\n\t{ id: SalaryItemDataTypes.Time, name: i18nInstance.global.t('salary.item.time') },\r\n]\r\n\r\nexport class ConvSalaryItem extends SalaryItem {\r\n\tsetParentVariables() {\r\n\t\tif (this._selectedDataType?.id) (this.dataType = this._selectedDataType.id)\r\n\t\tif (this._selectedFunctionType?.id) this.actionType = this._selectedFunctionType.id\r\n\t\tif (this._selectedDataEntry?.id) this.fillType = this._selectedDataEntry.id\r\n\t\tif (this._selectedItemType?.id) this.type = this._selectedItemType.id\r\n\t\tif (this._selectedAccount?.id) this.accountId = this._selectedAccount.id\r\n\t}\r\n\r\n\tconstructor(init?: Partial) {\r\n\t\tsuper()\r\n\t\tObject.assign(this, init)\r\n\t\tthis._selectedDataType = this.dataType ? dataTypes.find(x => x.id === this.dataType) : dataTypes[2]\r\n\t\tthis._selectedFunctionType = this.actionType ? operationTypes.find(x => x.id === this.actionType) : null\r\n\t\tthis._selectedItemType = this.type ? itemTypes.find(x => x.id === this.type) : null\r\n\t\tthis._selectedDataEntry = this.fillType ? entryTypes.find(x => x.id === this.fillType) : null\r\n\t\tthis._selectedAccount = this.accountId ? { id: this.accountId } : null\r\n\t\t//if (typeof this.jsonFormula === 'string') this.jsonFormula = this.jsonFormula\r\n\t}\r\n\r\n\tprivate _selectedDataType: SelectedDataType | null | undefined = null\r\n\tprivate _selectedFunctionType: SelectedFunctionType | null | undefined = null\r\n\tprivate _selectedItemType: SelectedItemType | null | undefined = null\r\n\tprivate _selectedDataEntry: SelectedDataEntry | null | undefined = null\r\n\tprivate _selectedAccount: any = null\r\n\r\n\tget selectedDataType() {\r\n\t\treturn this._selectedDataType\r\n\t}\r\n\r\n\tset selectedDataType(data: typeof this._selectedDataType) {\r\n\t\tthis._selectedDataType = data\r\n\t\tthis.setParentVariables()\r\n\t}\r\n\r\n\tget selectedFunctionType() {\r\n\t\treturn this._selectedFunctionType\r\n\t}\r\n\r\n\tset selectedFunctionType(data: typeof this._selectedFunctionType) {\r\n\t\tthis._selectedFunctionType = data\r\n\t\tthis.setParentVariables()\r\n\t}\r\n\r\n\tget selectedItemType() {\r\n\t\treturn this._selectedItemType\r\n\t}\r\n\r\n\tset selectedItemType(data: typeof this._selectedItemType) {\r\n\t\tthis._selectedItemType = data\r\n\t\tthis.setParentVariables()\r\n\t}\r\n\r\n\tget selectedDataEntry() {\r\n\t\treturn this._selectedDataEntry\r\n\t}\r\n\r\n\tset selectedDataEntry(data: typeof this._selectedDataEntry) {\r\n\t\tthis._selectedDataEntry = data\r\n\t\tthis.setParentVariables()\r\n\t}\r\n\r\n\tget selectedAccount() {\r\n\t\treturn this._selectedAccount\r\n\t}\r\n\r\n\tset selectedAccount(data: typeof this._selectedAccount) {\r\n\t\tthis._selectedAccount = data\r\n\t\tthis.setParentVariables()\r\n\t}\r\n}\r\n\r\nexport class PersonSalaryItems extends Personnel {\r\n\titems!: SalaryItem[]\r\n}","\r\n\t{{ localData }}\r\n\r\n\r\n\r\n\r\n","import { render } from \"./nk-tag.vue?vue&type=template&id=3aa81cd6\"\nimport script from \"./nk-tag.vue?vue&type=script&lang=js\"\nexport * from \"./nk-tag.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
{{ settings.data.name }}
\r\n\t\t
= 0 }]\">({{ $t('sale.factor.stock') }}: {{ settings.data.lastStockOnReceiptHawala != 0 ? checkProductBalanceAccess ? formatPrice(settings.data.lastStockOnReceiptHawala, false) : '---' : '-' }} )
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
{{ $t('sale.product.f.code') }}: {{ settings.data.code.toString().toLocaleDigits() }}
\r\n\t\t\t\t
{{ $t('sale.product.f.name') }}: {{ settings.data.name.toLocaleDigits() }}
\r\n\t\t\t\t
{{ $t('sale.product.f.stock-by-factor') }}: {{ settings.data.lastStockOnFactor }}
\r\n\t\t\t\t
{{ $t('sale.product.f.stock-by-warehouse') }}: {{ settings.data.lastStockOnReceiptHawala }}
\r\n\t\t\t\t
{{ $t(`sale.factor.last-${this.factorType.toLowerCase()}`) }}:
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./product-advance-name.vue?vue&type=template&id=3a57e26c\"\nimport script from \"./product-advance-name.vue?vue&type=script&lang=js\"\nexport * from \"./product-advance-name.vue?vue&type=script&lang=js\"\n\nimport \"./product-advance-name.vue?vue&type=style&index=0&id=3a57e26c&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./product-group-list.vue?vue&type=template&id=5fd393f5\"\nimport script from \"./product-group-list.vue?vue&type=script&lang=js\"\nexport * from \"./product-group-list.vue?vue&type=script&lang=js\"\n\nimport \"./product-group-list.vue?vue&type=style&index=0&id=5fd393f5&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { ISnapshot, ISnapshotState, ISnapshotData, ISanpshotInitializer, SnapshotTypes } from '~/interfaces/plugins/snapshot'\r\nimport Store from '../store'\r\nimport { globalLogger } from '~/plugins/logger'\r\nimport { toastInstance } from './toast'\r\nimport { i18nInstance } from './localization'\r\nimport emptyId from '~/statics/empty-id'\r\nimport { isEmpty } from '~/statics/validators'\r\n\r\nexport default class Snapshot implements ISnapshot {\r\n\r\n form: string\r\n state: ISnapshotState\r\n LOCALSTORAGEKEY: string\r\n retrieveData: () => any\r\n isDataChanged!: () => Promise\r\n CURRENTFISCALID: string\r\n CURRENTUSERID: string\r\n\r\n constructor(initializer: () => ISanpshotInitializer, intervalTimeInSeconds: any) {\r\n this.form = 'Empty Form'\r\n this.retrieveData = () => null\r\n this.LOCALSTORAGEKEY = 'nikan-snapshots'\r\n this.CURRENTFISCALID = emptyId\r\n this.CURRENTUSERID = emptyId\r\n\r\n this.state = {\r\n timeInSeconds: intervalTimeInSeconds,\r\n initialized: false,\r\n intervalId: 0,\r\n snapshotsTaken: 0\r\n }\r\n\r\n if (typeof initializer === 'function') {\r\n var init = initializer()\r\n\r\n if (init.form)\r\n this.form = init.form\r\n else\r\n throw new Error('Snapshot Initializer Requires a Form!')\r\n\r\n if (init.isDataChanged && typeof init.isDataChanged === 'function')\r\n this.isDataChanged = init.isDataChanged\r\n else\r\n throw new Error('Snapshot Initializer Requires a isDataChanged method!')\r\n\r\n\r\n if (init.retrieveData && typeof init.retrieveData === 'function') {\r\n this.retrieveData = init.retrieveData\r\n this.setInterval()\r\n }\r\n\r\n }\r\n }\r\n\r\n /**\r\n * takeSnapshot is run intervally by setInterval method and refrence to the parent class will be removed.\r\n * therefore instance should be passed as a parameter.\r\n */\r\n takeSnapshot(type: SnapshotTypes = SnapshotTypes.AUTOMATIC, that: ISnapshot = this): void {\r\n\r\n if (!that.state.initialized)\r\n throw new Error('Snapshot Is Not Initialized!')\r\n\r\n const take = () => {\r\n that.addToLocalStorage({ date: new Date().toISOString(), form: that.form, data: that.retrieveData(), type })\r\n that.state.snapshotsTaken += 1\r\n globalLogger.log(`${that.form} - ${type} - Snapshot Taken`)\r\n }\r\n\r\n if (type === SnapshotTypes.MANUAL)\r\n take()\r\n\r\n else\r\n that.isDataChanged()\r\n .then((isChanged: boolean) => {\r\n if (isChanged)\r\n take()\r\n else\r\n globalLogger.log(`${that.form} - ${type} - Data is not Changed!`)\r\n })\r\n }\r\n\r\n restoreSnapshot(type: SnapshotTypes = SnapshotTypes.AUTOMATIC) {\r\n const local = this.getLocalStorage()\r\n\r\n if (!this.state.initialized || !local.context.length) {\r\n // @ts-ignore\r\n return toastInstance(i18nInstance.global.t('snapshot.m.no-data'))\r\n }\r\n\r\n if (local.fiscalPeriodId !== this.CURRENTFISCALID) {\r\n globalLogger.error(`${this.form} - ${type} - Availabe Snapshot Isn't For This Fiscal`)\r\n // @ts-ignore\r\n toastInstance(i18nInstance.global.t('snapshot.m.is-not-for-this-fiscal'), { type: 'error' })\r\n return\r\n }\r\n\r\n if (local.userId !== this.CURRENTUSERID) {\r\n globalLogger.error(`${this.form} - ${type} - Availabe Snapshot Isn't For This User`)\r\n // @ts-ignore\r\n toastInstance(i18nInstance.global.t('snapshot.m.is-not-for-this-user'), { type: 'error' })\r\n return\r\n }\r\n\r\n const snapshot = local.context.find((x: ISnapshotData) => x.form === this.form && x.type === type)\r\n\r\n if (snapshot) {\r\n globalLogger.log(`${this.form} - ${type} - Snapshot Restored!`)\r\n // @ts-ignore\r\n toastInstance(i18nInstance.global.t('snapshot.m.restored'), { type: 'success' })\r\n return snapshot.data\r\n }\r\n else\r\n toastInstance(i18nInstance.global.t('snapshot.m.no-data'))\r\n\r\n }\r\n\r\n addToLocalStorage(data: ISnapshotData) {\r\n const local = this.getLocalStorage()\r\n var index = local.context.findIndex((x: ISnapshotData) => x.form === this.form && x.type === data.type)\r\n\r\n if (index > -1)\r\n local.context[index] = data\r\n else\r\n local.context.push(data)\r\n\r\n localStorage.setItem(this.LOCALSTORAGEKEY, JSON.stringify(local))\r\n }\r\n\r\n getLocalStorage(): any {\r\n const local = localStorage.getItem(this.LOCALSTORAGEKEY) || ''\r\n\r\n if (!local.length)\r\n return {\r\n userId: this.CURRENTUSERID,\r\n fiscalPeriodId: this.CURRENTFISCALID,\r\n context: []\r\n }\r\n\r\n return JSON.parse(local)\r\n }\r\n\r\n setInterval(): void {\r\n\r\n this.state.initialized = true\r\n this.CURRENTFISCALID = Store.getters['appContext/getFiscalPeriod'].id\r\n this.CURRENTUSERID = Store.getters['appContext/getUser'].id\r\n this.state.intervalId = setInterval(this.takeSnapshot, this.state.timeInSeconds * 1000, SnapshotTypes.AUTOMATIC, this)\r\n\r\n globalLogger.log(`${this.form} - Snapshot Initialized`)\r\n }\r\n\r\n tryFlush(userId: string, fiscalPeriodId: string): void {\r\n const local = this.getLocalStorage()\r\n if ((!isEmpty(local.userId) && local.userId !== userId) || (!isEmpty(local.fiscalPeriodId) && local.fiscalPeriodId !== fiscalPeriodId)) {\r\n localStorage.removeItem(this.LOCALSTORAGEKEY)\r\n globalLogger.log('Snapshot Flushed!')\r\n }\r\n }\r\n\r\n forceFlush() {\r\n globalLogger.log('Snapshot Force Flushed!')\r\n localStorage.removeItem(this.LOCALSTORAGEKEY)\r\n }\r\n\r\n getState(): ISnapshotState {\r\n return this.state\r\n }\r\n\r\n clearInterval(intervalId: number): void {\r\n globalLogger.log(`${this.form} Snapshot Interval Cleared!, Snapshots taken: ${this.state.snapshotsTaken}`)\r\n clearInterval(intervalId)\r\n }\r\n\r\n userHasSnapshot(type: SnapshotTypes): boolean {\r\n const local = this.getLocalStorage()\r\n\r\n if (this.state.initialized && local.context.length)\r\n if (local.userId === this.CURRENTUSERID && local.fiscalPeriodId === this.CURRENTFISCALID)\r\n if (local.context.findIndex((x: ISnapshotData) => x.form === this.form && x.type === type) > -1)\r\n return true\r\n\r\n return false\r\n }\r\n\r\n}","import $ from 'jquery'\r\nimport _ from 'lodash'\r\nimport { mapActions, mapState, mapGetters } from 'vuex'\r\nimport TabOrder from '../statics/taborder-functions'\r\nimport { toRaw, isReactive } from '@vue/reactivity'\r\nimport _Logger from './logger'\r\nimport Socket from './signalr'\r\nimport Nk_anime from \"@/plugins/anime\"\r\nimport Snapshot from '~/plugins/snapshot'\r\nimport jalaliMoment from 'jalali-moment'\r\n\r\nexport const convertDateByJalaliMoment = (date) => jalaliMoment(date, 'YYYY/MM/DD').locale('fa')\r\n\r\nexport const convertDate = (date, fullDate = true) => {\r\n if (fullDate)\r\n return new Date(date).toLocaleTimeString('fa-IR', { hour: 'numeric', minute: 'numeric' }).toString().toLocaleDigits() + ' ' + new Date(date).toLocaleDateString('fa-IR').toString().toLocaleDigits()\r\n else\r\n return new Date(date).toLocaleDateString('fa-IR').toString().toLocaleDigits()\r\n}\r\nexport const convertDateToFromNow = (date) => {\r\n let duration = ((new Date()).getTime() - (new Date(date)).getTime()) / 1000\r\n if (duration / 60 < 1) return 'همین الان'\r\n else if (duration > 60 && duration < 3600) return `${Math.floor(duration / 60) ? Math.floor(duration / 60) : 1} دقیقه پیش`\r\n else if (duration < 86400) return `${Math.floor(duration / 3600) ? Math.floor(duration / 3600) : 1} ساعت پیش`\r\n else if (duration < 604800) return `${Math.floor(duration / 86400) ? Math.floor(duration / 86400) : 1} روز پیش`\r\n else if (duration < 2419200) return `${Math.floor(duration / 604800) ? Math.floor(duration / 604800) : 1} هفته پیش`\r\n else return convertDate(date, false)\r\n}\r\nconst NikanMixin = {\r\n\r\n\r\n install(Vue, options) {\r\n Vue.mixin({\r\n emits: ['title-changed', 'buttons-changed', 'resolve', 'reject'],\r\n data() {\r\n return {\r\n localUID: 0,\r\n isShortcutVisible: false,\r\n grandParent: null,\r\n logger: new _Logger(),\r\n snapshotInstance: null,\r\n FORM_MODES: {\r\n EDITABLE: 'editable',\r\n READONLY: 'readonly'\r\n }\r\n }\r\n },\r\n computed: {\r\n ...mapState(['lastId']),\r\n ...mapGetters('useraccount', ['currentUserDetails']),\r\n ...mapGetters('properties', {\r\n 'getPropertiesByGroup': 'getByGroup'\r\n })\r\n },\r\n created() {\r\n if (this.$options.sockets) {\r\n const methods = Object.getOwnPropertyNames(this.$options.sockets)\r\n\r\n methods.forEach((method) => {\r\n if (Socket.listenedItems().indexOf(method) === -1) {\r\n Socket.listen(method)\r\n Socket.on(method, data => {\r\n return this.$options.sockets[method].call(this, data)\r\n })\r\n }\r\n })\r\n }\r\n\r\n if (this.$options.subscribe) {\r\n Socket.on('authenticated', () => {\r\n this.$options.subscribe.forEach((channel) => {\r\n Socket.invoke('join', channel)\r\n })\r\n })\r\n }\r\n\r\n this.snapshotInstance = new Snapshot(this.snapshot, 300)\r\n },\r\n beforeUnmount() {\r\n if (this.snapshotInstance.state.initialized)\r\n this.snapshotInstance.clearInterval(this.snapshotInstance.state.intervalId)\r\n },\r\n mounted() {\r\n this.grandParent = this.findGrandParent()\r\n this.defer(this.applySubscribeKeys, 5)\r\n TabOrder.updateDisableds()\r\n\r\n Vue.$nikan.calcAutoHeight(this.$el)\r\n this.setTestId()\r\n },\r\n updated() {\r\n Vue.$nikan.calcAutoHeight(this.$el)\r\n TabOrder.updateDisableds()\r\n },\r\n methods: {\r\n ...mapActions(['incrementUID']),\r\n uid() {\r\n if (this.localUID === 0 && this.$store != null) {\r\n this.incrementUID(id => {\r\n this.localUID = id\r\n })\r\n }\r\n\r\n return this.localUID\r\n },\r\n\r\n defer(func, wait) {\r\n var args = Array.from(arguments)\r\n if (args.length > 2) {\r\n args = _.drop(args, 2)\r\n } else {\r\n args = []\r\n }\r\n\r\n var that = this\r\n return setTimeout(() => {\r\n func.apply(that, args)\r\n }, wait)\r\n },\r\n // debounce(func, wait) {\r\n // return _.debounce(func, wait)\r\n // },\r\n throttle(func, wait) {\r\n return _.throttle(func, wait)\r\n },\r\n parentForShortKey() {\r\n return $(this.$el).parents('.parent-for-adding-short-keys')\r\n },\r\n findGrandParent() {\r\n var modal = $(this.$el).parents('.modal-item-locker')\r\n if (modal.length > 0) {\r\n return modal\r\n } else {\r\n var tab = $(this.$el).parents('.tabs-component-panel')\r\n if (tab.length > 0) {\r\n return tab\r\n }\r\n }\r\n\r\n return this.$parent\r\n },\r\n grandParentType() {\r\n if ($(this.$el).parents('.nm-dim-inner').length > 0) {\r\n return 'modal'\r\n } else {\r\n if ($(this.$el).parents('.tabs-component-panel').length > 0) {\r\n return 'tab'\r\n }\r\n }\r\n\r\n return 'unknown'\r\n },\r\n applySubscribeKeys() {\r\n if (typeof this.subscribeKeys === 'function') {\r\n this.subscribeKeys()\r\n }\r\n },\r\n isObject(obj) {\r\n return Object.prototype.toString.call(obj) === '[object Object]'\r\n },\r\n typeChecker(variable) {\r\n if (typeof (variable) === 'string') {\r\n return 'string'\r\n } else if (this.isObject(variable)) {\r\n return 'object'\r\n }\r\n return 'array'\r\n },\r\n idGenerator(n) {\r\n return Math.random().toString(36).substr(2, n)\r\n },\r\n getDaysBetween(startDate = new Date(), endDate = new Date()) {\r\n if (!(endDate instanceof Date)) endDate = new Date(endDate)\r\n if (!(startDate instanceof Date)) startDate = new Date(startDate)\r\n let difference = endDate.getTime() - startDate.getTime()\r\n return Math.abs(Math.round(difference / (1000 * 3600 * 24)))\r\n },\r\n validationToast(errors) {\r\n if (!errors.length) return\r\n let errorComputedText = ''\r\n errors.map(err => errorComputedText += err.error + '\\n')\r\n this.$toast(errorComputedText, { type: 'error', timeout: 10000, position: 'top-center' })\r\n },\r\n objGetKeyByValue(obj, value) {\r\n return Object.keys(obj).filter(key => obj[key] === value)[0]\r\n },\r\n findDiffrenceBetweenObjects(obj1, obj2) {\r\n let result = {\r\n result: 'same',\r\n fields: []\r\n }\r\n let objKeys = Object.keys(obj1)\r\n for (let key of objKeys) {\r\n\r\n if (!obj1.hasOwnProperty(key)) {\r\n result.result = 'different'\r\n result.fields.push(`${key} is not in obj1`)\r\n continue\r\n }\r\n\r\n if (!obj2.hasOwnProperty(key)) {\r\n result.result = 'different'\r\n result.fields.push(`${key} is not in obj2`)\r\n continue\r\n }\r\n\r\n if (!_.isEqual(obj1[key], obj2[key])) {\r\n result.result = 'different'\r\n result.fields.push(`${key} is not the same in obj1 and obj2`)\r\n continue\r\n }\r\n }\r\n return result\r\n },\r\n makeRawComponent(component) {\r\n if (isReactive(component))\r\n return toRaw(component)\r\n return component\r\n },\r\n routesAccessChecker(routes, parentToken) {\r\n return routes.map(route => {\r\n\r\n route.policyToken = _.isString(route.policyToken) ? [route.policyToken] : route.policyToken\r\n route.policyToken = route.policyToken || []\r\n\r\n if (route && route.items && route.items.length)\r\n this.routesAccessChecker(route.items, route.commercialAccess || parentToken)\r\n\r\n route.isDisabled = !this.$nikan.checkPermission(route.policyToken) || route.isDisabled\r\n route.hasCommercialAccess = true\r\n\r\n if (route.items && route.items.length)\r\n route.hasCommercialAccess = route.items.some(x => x.hasCommercialAccess)\r\n\r\n else {\r\n if (route.commercialAccess)\r\n route.hasCommercialAccess = this.$nikan.checkCommercialAccess(route.commercialAccess)\r\n\r\n else if (!route.commercialAccess && parentToken)\r\n route.hasCommercialAccess = this.$nikan.checkCommercialAccess(parentToken)\r\n }\r\n })\r\n },\r\n floatingCentersCellViewHtml(floatingCenters) {\r\n if (!floatingCenters || !floatingCenters.length)\r\n return ''\r\n\r\n let html = '`\r\n return html\r\n },\r\n setTestId() {\r\n if (process.env.NODE_ENV !== 'development')\r\n return\r\n for (let r in this.$refs) {\r\n const ref = this.$refs[r]\r\n if (Array.isArray(ref)) {\r\n let i = 1\r\n for (let t of ref) {\r\n if (t.$el && typeof t.$el.setAttribute === 'function') {\r\n t.$el.setAttribute('data-testid', r + i++)\r\n }\r\n }\r\n } else {\r\n if (ref.$el && typeof ref.$el.setAttribute === 'function') {\r\n ref.$el.setAttribute('data-testid', r)\r\n }\r\n }\r\n }\r\n },\r\n hideShortcuts() {\r\n $('.shortcut').attr('style', 'display: none !important')\r\n this.isShortcutVisible = false\r\n },\r\n displayShortcuts() {\r\n $('.shortcut').attr('style', 'display: block !important')\r\n this.isShortcutVisible = true\r\n },\r\n subscribeKeys() {\r\n this.$keyHandler.Subscribe({\r\n name: `shortcut-display`,\r\n keyCode: 18, // 18:Alt\r\n el: this.grandParent,\r\n context: this,\r\n handler: function (sender, e) {\r\n e.preventDefault()\r\n\r\n if (this.isShortcutVisible)\r\n this.hideShortcuts()\r\n\r\n else\r\n this.displayShortcuts()\r\n\r\n },\r\n })\r\n },\r\n convertDate(date, fullDate = true) {\r\n return convertDate(date, fullDate)\r\n },\r\n convertDateToFromNow(date) {\r\n return convertDateToFromNow(date)\r\n },\r\n ShowUpElementWithAnime(elementStatus, popupIdentifyClass, xDurationPixel = 70) {\r\n const anime = new Nk_anime(popupIdentifyClass, {\r\n translateX: xDurationPixel,\r\n translateY: 0,\r\n easing: 'linear',\r\n duration: 500,\r\n })\r\n const before_anime = new Nk_anime(popupIdentifyClass, {\r\n translateX: 0,\r\n // translateY: 80,\r\n easing: 'linear',\r\n duration: 500,\r\n })\r\n elementStatus ? anime.play() : before_anime.play()\r\n },\r\n vibrateElement(targetParentClass) {\r\n const anime = new Nk_anime(targetParentClass, {\r\n translateX: ['-.15rem', '.15rem'],\r\n duration: 75,\r\n direction: 'alternate',\r\n loop: 15,\r\n easing: 'easeInOutBack',\r\n })\r\n anime.play()\r\n },\r\n monify(x) {\r\n\r\n if (x !== 0 && !x)\r\n return ''\r\n\r\n var parts = x.toString().split(\".\")\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")\r\n\r\n if (parseInt(parts[1]) > 0)\r\n return parts.join(\".\")\r\n\r\n return parts[0]\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport default NikanMixin\r\n","\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t this.filterText = value\" />\r\n\r\n\t
\r\n\r\n\r\n","import { render } from \"./customPriceFilterComp.vue?vue&type=template&id=51937f2a\"\nimport script from \"./customPriceFilterComp.vue?vue&type=script&lang=js\"\nexport * from \"./customPriceFilterComp.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n","import { render } from \"./customPriceFloatingFilterComp.vue?vue&type=template&id=79431013\"\nimport script from \"./customPriceFloatingFilterComp.vue?vue&type=script&lang=js\"\nexport * from \"./customPriceFloatingFilterComp.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n","import { render } from \"./dateFilterComp.vue?vue&type=template&id=61b101bc\"\nimport script from \"./dateFilterComp.vue?vue&type=script&lang=js\"\nexport * from \"./dateFilterComp.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n \r\n\r\n\r\n","import { render } from \"./dateFloatingFilterComp.vue?vue&type=template&id=d78d5e30\"\nimport script from \"./dateFloatingFilterComp.vue?vue&type=script&lang=js\"\nexport * from \"./dateFloatingFilterComp.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { ColDef, TextMatcherParams } from 'ag-grid-community'\r\nimport CustomGeneric from './custom-components/custom-generic.vue'\r\nimport NikanInput from '../general/nikan-input.vue'\r\nimport jalaliMoment from 'jalali-moment'\r\nimport DropdownFloatingCenter from '../form/dropdown/dropdown-floating-center.vue'\r\nimport DropdownAccount from '../form/dropdown/dropdown-account.vue'\r\n// @ts-ignore\r\nimport { helpers } from \"@nikan/text-visualizer\"\r\nimport CustomPriceFilterComp from './filters/customPrice/customPriceFilterComp.vue'\r\nimport CustomPriceFloatingFilterComp from './filters/customPrice/customPriceFloatingFilterComp.vue'\r\nimport DateFilterComp from './filters/date/dateFilterComp.vue'\r\nimport DateFloatingFilterComp from './filters/date/dateFloatingFilterComp.vue'\r\nimport NikanDate from '../general/nikan-date.vue'\r\nimport FrequentDescriptionsInput from '../form/frequent-descriptions/frequent-descriptions-input.vue'\r\nimport MultiCurrencyCellView from '../form/multi-currency/multi-currency-cell-view.vue'\r\nimport MultiCurrencyCell from '../form/multi-currency/multi-currency-cell.vue'\r\nimport { IExtendedColDef } from './interfaces'\r\n\r\nconst priceReg = /^-?\\d+(?:[.,]\\d+)*$/\r\n\r\nconst convertDate = (date: any) => {\r\n if (date.value?.includes('0001-01-01')) return ''\r\n return date.value && jalaliMoment(date.value, 'YYYY-M-D ')\r\n .locale('fa')\r\n .format('YYYY/MM/DD')\r\n}\r\n\r\nconst convertDateTime = (date: any) => {\r\n if (date.value?.includes('0001-01-01')) return ''\r\n return date.value && jalaliMoment(date.value, 'YYYY-M-DTHH:mm')\r\n .locale('fa')\r\n .format('HH:mm YYYY/MM/DD')\r\n}\r\n\r\nconst tableDefaultDataTypes: { [key: string]: IExtendedColDef } = {\r\n string: {\r\n cellEditor: CustomGeneric,\r\n cellEditorParams: {\r\n generateProps: (params: any) => {\r\n return {\r\n component: NikanInput,\r\n modelValue: params.data[params.colDef.field],\r\n options: {\r\n mode: 'string',\r\n }\r\n }\r\n }\r\n },\r\n filter: 'agTextColumnFilter',\r\n },\r\n number: {\r\n cellEditor: CustomGeneric,\r\n cellDataType: 'number',\r\n cellEditorParams: {\r\n generateProps: (params: any) => {\r\n return {\r\n component: NikanInput,\r\n modelValue: params.data[params.colDef.field],\r\n options: {\r\n mode: 'integer',\r\n }\r\n }\r\n }\r\n },\r\n aggregateFunction: 'sum',\r\n filter: 'agNumberColumnFilter',\r\n },\r\n price: {\r\n valueFormatter: params => {\r\n return String(parseFloat(String(Math.abs(Number(params.value)))))\r\n },\r\n cellRenderer: (params: any) => {\r\n if (priceReg.exec(params.value))\r\n return helpers.formatPrice(Math.abs(params.value))\r\n else return params.value\r\n },\r\n comparator: (valueA, valueB, nodeA, nodeB) => {\r\n valueA = Number(valueA)\r\n valueB = Number(valueB)\r\n if (valueA == valueB) return 0\r\n return (valueA > valueB) ? 1 : -1\r\n },\r\n filter: CustomPriceFilterComp,\r\n floatingFilterComponent: CustomPriceFloatingFilterComp,\r\n cellEditor: CustomGeneric,\r\n cellEditorParams: {\r\n generateProps: (params: any) => {\r\n return {\r\n component: NikanInput,\r\n modelValue: params.data[params.colDef.field],\r\n options: {\r\n mode: 'price',\r\n },\r\n }\r\n }\r\n }\r\n },\r\n date: {\r\n filter: DateFilterComp,\r\n floatingFilterComponent: DateFloatingFilterComp,\r\n cellRenderer: (params: any) => convertDate(params),\r\n valueFormatter: (params: any) => convertDate(params),\r\n cellEditor: CustomGeneric,\r\n cellEditorParams: {\r\n generateProps: (params: any) => {\r\n return {\r\n component: NikanDate,\r\n modelValue: params.data[params.colDef.field],\r\n options: {\r\n pickerEnabled: true,\r\n stopOnEdges: true\r\n }\r\n }\r\n }\r\n },\r\n },\r\n dateTime: {\r\n filter: DateFilterComp,\r\n floatingFilterComponent: DateFloatingFilterComp,\r\n cellRenderer: (params: any) => convertDateTime(params),\r\n valueFormatter: (params) => convertDateTime(params),\r\n cellEditor: CustomGeneric,\r\n cellEditorParams: {\r\n generateProps: (params: any) => {\r\n return {\r\n component: NikanDate,\r\n modelValue: params.data[params.colDef.field],\r\n options: {\r\n pickerEnabled: true,\r\n stopOnEdges: true\r\n }\r\n }\r\n }\r\n },\r\n },\r\n account: {\r\n cellRenderer: (params: any) => {\r\n return params.value ? `${params.value.name} (${params.value.accountingCode})` : ''\r\n },\r\n cellEditor: CustomGeneric,\r\n cellEditorParams: {\r\n generateProps: (params: any) => {\r\n return {\r\n component: DropdownAccount,\r\n modelValue: params.data[params.colDef.field],\r\n options: {\r\n showSelectedBalance: false,\r\n }\r\n }\r\n }\r\n },\r\n filter: 'agTextColumnFilter',\r\n filterParams: {\r\n textMatcher: (params: TextMatcherParams) => {\r\n const text = params.colDef.cellRenderer({ ...params, value: params.data[params.colDef.field as string] })\r\n\r\n if (params.filterText == null) {\r\n return false\r\n }\r\n\r\n switch (params.filterOption) {\r\n case 'contains':\r\n return text.indexOf(params.filterText) >= 0\r\n case 'notContains':\r\n return text.indexOf(params.filterText) < 0\r\n case 'equals':\r\n return text === params.filterText\r\n case 'notEqual':\r\n return text != params.filterText\r\n case 'startsWith':\r\n return text.indexOf(params.filterText) === 0\r\n case 'endsWith':\r\n const index = text.lastIndexOf(params.filterText)\r\n return index >= 0 && index === (text.length - params.filterText.length)\r\n default:\r\n return false\r\n }\r\n }\r\n },\r\n comparator: (valueA, valueB, nodeA, nodeB) => {\r\n return (valueA?.name || '').localeCompare((valueB?.name || ''))\r\n },\r\n },\r\n center: {\r\n cellRenderer: (params: any) => {\r\n return params.value ? `${params.value.name} (${params.value.accountingCode})` : ''\r\n },\r\n cellEditor: CustomGeneric,\r\n cellEditorParams: {\r\n generateProps: (params: any) => {\r\n return {\r\n component: DropdownFloatingCenter,\r\n modelValue: params.data[params.colDef.field],\r\n options: {\r\n showSelectedBalance: false,\r\n }\r\n }\r\n }\r\n },\r\n filter: 'agTextColumnFilter',\r\n filterParams: {\r\n textMatcher: (params: TextMatcherParams) => {\r\n const text = params.colDef.cellRenderer({ ...params, value: params.data[params.colDef.field as string] })\r\n\r\n if (params.filterText == null) {\r\n return false\r\n }\r\n\r\n switch (params.filterOption) {\r\n case 'contains':\r\n return text.indexOf(params.filterText) >= 0\r\n case 'notContains':\r\n return text.indexOf(params.filterText) < 0\r\n case 'equals':\r\n return text === params.filterText\r\n case 'notEqual':\r\n return text != params.filterText\r\n case 'startsWith':\r\n return text.indexOf(params.filterText) === 0\r\n case 'endsWith':\r\n const index = text.lastIndexOf(params.filterText)\r\n return index >= 0 && index === (text.length - params.filterText.length)\r\n default:\r\n return false\r\n }\r\n }\r\n },\r\n comparator: (valueA, valueB, nodeA, nodeB) => {\r\n return (valueA?.name || '').localeCompare((valueB?.name || ''))\r\n },\r\n },\r\n description: {\r\n cellEditor: CustomGeneric,\r\n cellEditorParams: {\r\n generateProps: (params: any) => {\r\n return {\r\n component: FrequentDescriptionsInput,\r\n modelValue: params.data[params.colDef.field],\r\n }\r\n }\r\n },\r\n filter: 'agTextColumnFilter',\r\n },\r\n multiCurrency: {\r\n cellRenderer: MultiCurrencyCellView,\r\n cellEditor: CustomGeneric,\r\n cellEditorParams: {\r\n generateProps: (params: any) => {\r\n return {\r\n component: MultiCurrencyCell,\r\n modelValue: params.data[params.colDef.field],\r\n }\r\n }\r\n },\r\n valueFormatter: (params: any) => {\r\n const targetField = params.colDef.cellRendererParams?.options?.targetValuePropertyName\r\n const cellData = params.data[params.colDef.field]\r\n\r\n if (!targetField)\r\n return cellData\r\n\r\n return targetField === 'currency' ? cellData?.[0]?.[targetField]?.name || '' : cellData?.[0]?.[targetField]\r\n },\r\n filter: CustomPriceFilterComp,\r\n floatingFilterComponent: CustomPriceFloatingFilterComp,\r\n filterParams: {\r\n targetValue: (params: any, column: any) => {\r\n const targetField = column.cellRendererParams?.options?.targetValuePropertyName\r\n\r\n if (!targetField)\r\n return ''\r\n\r\n return params.data[column.field]?.[0]?.[targetField]\r\n }\r\n },\r\n },\r\n rowNumber: {\r\n sort: 'asc',\r\n suppressSizeToFit: true,\r\n lockPosition: 'right',\r\n aggregateFunction: (values) => {\r\n if (!values) return ''\r\n\r\n return `(${values.length})`\r\n },\r\n valueGetter: (params) => {\r\n if (params.data[params.colDef.field as any])\r\n return params.data[params.colDef.field as any]\r\n\r\n return params.data?.displayOrder ? params.data.displayOrder : (params.node?.rowIndex || 0) + 1\r\n },\r\n cellRenderer: (params: any) => {\r\n if (params.node.rowPinned)\r\n return params.value\r\n\r\n return ` ${params.value}
`\r\n }\r\n }\r\n}\r\n\r\nexport default tableDefaultDataTypes","import isPlainObject from 'lodash/isPlainObject'\r\nimport mapValues from 'lodash/mapValues'\r\nimport isArray from 'lodash/isArray'\r\nimport { IShortcutDefinition, TABLE_FIELD_PERFIX } from '../interfaces'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\nimport lodashSum from 'lodash/sum'\r\n\r\ntype plainObject = { [key: string]: any }\r\n\r\nexport function getEmptyStructure(obj: plainObject): plainObject {\r\n return mapValues(obj, (value) => {\r\n if (isArray(value)) {\r\n return [] // value.map(() => getEmptyStructure(value[0])) as typeof value\r\n } else if (isPlainObject(value)) {\r\n return getEmptyStructure(value)\r\n }\r\n return null as typeof value\r\n })\r\n}\r\n\r\nexport function removeTableFieldsFromData(data: plainObject) {\r\n const cloneData = cloneDeep(data)\r\n\r\n Object.keys(cloneData).forEach(field => {\r\n if (field.startsWith(TABLE_FIELD_PERFIX) || field === 'id' || field === 'displayOrder')\r\n delete cloneData[field]\r\n })\r\n\r\n return cloneData\r\n}\r\n\r\n//#region Aggregate Functions\r\nexport function sum(values: any) {\r\n return lodashSum(values)\r\n}\r\n\r\nexport function min(values: any) {\r\n return Math.min(values)\r\n}\r\n\r\nexport function max(values: any) {\r\n return Math.max(values)\r\n}\r\n\r\nexport function count(values: any) {\r\n return values.length\r\n}\r\n\r\nexport function avg(values: any) {\r\n return lodashSum(values) / values.length\r\n}\r\n//#endregion\r\n\r\nexport function shortcutDisplay(shortcut: IShortcutDefinition) {\r\n var arr = []\r\n\r\n if (shortcut.keyCode > 0) {\r\n if (shortcut.ctrlKey === true) {\r\n arr.push('Ctrl')\r\n }\r\n if (shortcut.shiftKey === true) {\r\n arr.push('Shift')\r\n }\r\n if (shortcut.altKey === true) {\r\n arr.push('Alt')\r\n }\r\n\r\n var key = shortcut.keyCode\r\n var keyChar = fromKeyCode(key)\r\n keyChar = keyChar || ''\r\n\r\n arr.push(keyChar)\r\n return arr.join(' + ')\r\n } else {\r\n return ''\r\n }\r\n}\r\n\r\nexport function fromKeyCode(keyCode: number): string {\r\n var arr = {\r\n 8: 'Backspace',\r\n 9: 'Tab',\r\n 13: 'Enter',\r\n 16: 'Shift',\r\n 17: 'Ctrl',\r\n 18: 'Alt',\r\n 19: 'Pause/Break',\r\n 20: 'Caps Lock',\r\n 27: 'Esc',\r\n 32: 'Space',\r\n 33: 'Page Up',\r\n 34: 'Page Down',\r\n 35: 'End',\r\n 36: 'Home',\r\n 37: 'Left',\r\n 38: 'Up',\r\n 39: 'Right',\r\n 40: 'Down',\r\n 45: 'Insert',\r\n 46: 'Delete',\r\n 48: '0',\r\n 49: '1',\r\n 50: '2',\r\n 51: '3',\r\n 52: '4',\r\n 53: '5',\r\n 54: '6',\r\n 55: '7',\r\n 56: '8',\r\n 57: '9',\r\n 65: 'A',\r\n 66: 'B',\r\n 67: 'C',\r\n 68: 'D',\r\n 69: 'E',\r\n 70: 'F',\r\n 71: 'G',\r\n 72: 'H',\r\n 73: 'I',\r\n 74: 'J',\r\n 75: 'K',\r\n 76: 'L',\r\n 77: 'M',\r\n 78: 'N',\r\n 79: 'O',\r\n 80: 'P',\r\n 81: 'Q',\r\n 82: 'R',\r\n 83: 'S',\r\n 84: 'T',\r\n 85: 'U',\r\n 86: 'V',\r\n 87: 'W',\r\n 88: 'X',\r\n 89: 'Y',\r\n 90: 'Z',\r\n 91: 'Windows',\r\n 93: 'Right Click',\r\n 96: 'Numpad 0',\r\n 97: 'Numpad 1',\r\n 98: 'Numpad 2',\r\n 99: 'Numpad 3',\r\n 100: 'Numpad 4',\r\n 101: 'Numpad 5',\r\n 102: 'Numpad 6',\r\n 103: 'Numpad 7',\r\n 104: 'Numpad 8',\r\n 105: 'Numpad 9',\r\n 106: 'Numpad *',\r\n 107: 'Numpad +',\r\n 109: 'Numpad -',\r\n 110: 'Numpad .',\r\n 111: 'Numpad /',\r\n 112: 'F1',\r\n 113: 'F2',\r\n 114: 'F3',\r\n 115: 'F4',\r\n 116: 'F5',\r\n 117: 'F6',\r\n 118: 'F7',\r\n 119: 'F8',\r\n 120: 'F9',\r\n 121: 'F10',\r\n 122: 'F11',\r\n 123: 'F12',\r\n 144: 'Num Lock',\r\n 145: 'Scroll Lock',\r\n 182: 'My Computer',\r\n 183: 'My Calculator',\r\n 186: ';',\r\n 187: '=',\r\n 188: ',',\r\n 189: '-',\r\n 190: '.',\r\n 191: '/',\r\n 192: '`',\r\n 219: '[',\r\n 220: '\\\\',\r\n 221: ']',\r\n 222: '\"'\r\n }\r\n\r\n return arr[keyCode as keyof typeof arr] || ''\r\n}","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n ref: \"grid_buttons\",\n class: \"grid-buttons d-flex text-right\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.tableButtons, (button) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(button.type), {\n key: button.id,\n class: _normalizeClass([button.class, \"m-1\"]),\n onClick: _ctx.buttonClicked,\n onSubmit: button.handler,\n options: button.options\n }, null, 40, [\"class\", \"onClick\", \"onSubmit\", \"options\"]))\n }), 128))\n ], 512))\n}","\r\n \r\n \r\n
\r\n\r\n","import { render } from \"./grid-buttons.vue?vue&type=template&id=864c6f4c&ts=true\"\nimport script from \"./grid-buttons.vue?vue&type=script&lang=ts\"\nexport * from \"./grid-buttons.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { AgGridVue } from \"ag-grid-vue3\"\r\n\timport { GridReadyEvent, IRowNode, CellKeyDownEvent, MenuItemDef } from 'ag-grid-enterprise'\r\n\timport \"ag-grid-community/styles/ag-grid.css\"\r\n\timport \"ag-grid-community/styles/ag-theme-quartz.css\"\r\n\timport { computed, onBeforeUnmount, onMounted, ref } from 'vue'\r\n\timport { LicenseManager } from 'ag-grid-enterprise'\r\n\timport tableDefaultDataTypes from './data-types'\r\n\timport { generateUUID, idGenerator } from '@/plugins/helper'\r\n\timport $sc from '~/plugins/shortcut.collection.js'\r\n\timport Merge from 'lodash/merge'\r\n\timport { i18nInstance } from '~/plugins/localization'\r\n\timport { avg, count, getEmptyStructure, max, min, removeTableFieldsFromData, shortcutDisplay, sum } from './plugins/utils'\r\n\timport { RowStates } from '@/enums/system'\r\n\timport { IActionDefinition, IAggregateFunc, IExtendedColDef, IExtendedGridApi, IExtendedGridOptions, IValidator, tableFields, TDefaultFields, TObjectWithFieldOf, TTargetRowIndex } from './interfaces'\r\n\timport sortBy from 'lodash/sortBy'\r\n\timport { toastInstance } from '@/plugins/toast'\r\n\timport { POSITION, TYPE } from 'vue-toastification'\r\n\timport CloneDeep from 'lodash/cloneDeep'\r\n\timport isEqual from 'lodash/isEqual'\r\n\timport fsJson from '~/assets/resources/fa.json'\r\n\timport GridButtons from './custom-components/grid-buttons.vue'\r\n\timport { useStore } from 'vuex'\r\n\timport emptyId from '~/statics/empty-id.js'\r\n\r\n\t\nexport default /*@__PURE__*/_defineComponent({\n __name: 'new-ag-grid',\n props: {\n data: {},\n columns: {},\n options: {},\n buttons: {},\n tabIndex: {},\n actions: {}\n },\n emits: ['update:modelValue', 'data-changed'],\n setup(__props: any, { expose: __expose, emit: __emit }) {\n\r\n\tLicenseManager.setLicenseKey(\"DownloadDevTools_COM_NDEwMjM0NTgwMDAwMA==59158b5225400879a12a96634544f5b6\")\r\n\r\n\tconst props = __props\r\n\r\n\tconst emit = __emit\r\n\r\n\tconst t = i18nInstance.global.t\r\n\r\n\tconst store = useStore()\r\n\r\n\tconst gridIsVisible = ref(false)\r\n\tlet gridSaveStateTimeout: number\r\n\r\n\tconst el = ref(null)\r\n\tconst tableButtons = ref([])\r\n\r\n\tconst gridApi = ref>()\r\n\tconst colDefs = ref[]>([])\r\n\tconst tableLocalData = ref([])\r\n\r\n\tconst pinnedBottomRow = ref([{}])\r\n\tconst aggregateColumns = ref>>({})\r\n\r\n\tlet tableValidatorsMap = new Map()\r\n\r\n\tconst addRowOnLoadTimeout = ref(null)\r\n\r\n\tconst SUPPRESSED_KEYS = ['Enter', 'Escape']\r\n\r\n\tconst gridOptions = ref>({\r\n\t\tgridId: '',\r\n\t\theaderHeight: 30,\r\n\t\tanimateRows: false,\r\n\t\tdefaultColDef: {\r\n\t\t\tsuppressKeyboardEvent: (params) => {\r\n\t\t\t\tif (params.event.key === 'Enter' && !params.editing && !params.event.shiftKey && !params.event.ctrlKey && !params.event.altKey)\r\n\t\t\t\t\treturn false\r\n\r\n\t\t\t\tif (SUPPRESSED_KEYS.includes(params.event.key)) {\r\n\t\t\t\t\tparams.event.preventDefault()\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\t\t\t\treturn false\r\n\t\t\t},\r\n\t\t\tcellStyle: {\r\n\t\t\t\talignItems: 'center',\r\n\t\t\t\tdisplay: 'flex'\r\n\t\t\t},\r\n\t\t\teditable: (params) => {\r\n\t\t\t\tif (!params.data) return false\r\n\r\n\t\t\t\tif (gridOptions.value.isEditable === false)\r\n\t\t\t\t\treturn false\r\n\r\n\t\t\t\tif (params.data[tableFields.id].indexOf('aggregate') > -1) return false\r\n\r\n\t\t\t\tif (params.data?.rowState === 'deleted') return false\r\n\r\n\t\t\t\tif (params.data?.[tableFields.isLocked]) return false\r\n\r\n\t\t\t\tlet canEdit = false\r\n\t\t\t\tconst colDef: IExtendedColDef = params.colDef as IExtendedColDef\r\n\r\n\t\t\t\tif (typeof colDef.isEditable === 'function')\r\n\t\t\t\t\tcanEdit = colDef.isEditable(params)\r\n\t\t\t\telse canEdit = !!colDef.isEditable\r\n\r\n\t\t\t\tif (!canEdit) return false\r\n\r\n\t\t\t\tif (typeof colDef.entering === 'function')\r\n\t\t\t\t\tcanEdit = colDef.entering(params.data as T)\r\n\t\t\t\telse if (!colDef.entering && colDef.entering !== false)\r\n\t\t\t\t\tcanEdit = true\r\n\t\t\t\telse canEdit = !!colDef.entering\r\n\r\n\t\t\t\treturn canEdit\r\n\r\n\t\t\t},\r\n\t\t\tcellClassRules: {\r\n\t\t\t\t'cell-invalid': (params) => params.data ? params.data[tableFields.invalidCells]?.includes(params.colDef.field || '') : false\r\n\t\t\t}\r\n\t\t},\r\n\t\tgetRowId: (params) => params.data[tableFields.id],\r\n\t\trowSelection: {\r\n\t\t\tmode: 'singleRow',\r\n\t\t\tcheckboxes: false,\r\n\t\t\tenableClickSelection: true,\r\n\t\t},\r\n\t\trowHeight: 30,\r\n\t\tstopEditingWhenCellsLoseFocus: false,\r\n\t\tlocaleText: fsJson['ag-grid-local'] as any,\r\n\t\trowClassRules: {\r\n\t\t\t'row-deleted': (params) => !!(params.data && params.data.rowState === RowStates.Deleted),\r\n\t\t\t'row-new': (params) => !!(params.data && params.data.rowState === RowStates.New),\r\n\t\t\t'row-changed': (params) => !!(params.data && params.data.rowState === RowStates.Changed),\r\n\t\t\t'row-invalid': (params) => !!(params.data && !params.data[tableFields.isValid]),\r\n\t\t\t'row-locked': (params) => {\r\n\t\t\t\tif (!params.data) return false\r\n\r\n\t\t\t\tif (gridOptions.value.rowIsLocked && gridOptions.value.rowIsLocked(params.data)) {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tparams.data![tableFields.isLocked] = true\r\n\t\t\t\t\t}, 100)\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tparams.data![tableFields.isLocked] = false\r\n\t\t\t\t}, 100)\r\n\t\t\t\treturn false\r\n\t\t\t},\r\n\t\t},\r\n\t\tsuppressPropertyNamesCheck: true,\r\n\t\tcanAddRow: true,\r\n\t\tdefaultExcelExportParams: {\r\n\t\t\tprocessCellCallback: (params) => {\r\n\t\t\t\tconst colDef = params.column?.getColDef()\r\n\r\n\r\n\t\t\t\tif (!colDef || !params.node) return params.value\r\n\r\n\t\t\t\tif (params.node?.data[tableFields.id].includes('aggregate'))\r\n\t\t\t\t\treturn ''\r\n\r\n\t\t\t\ttry {\r\n\r\n\t\t\t\t\tif (colDef.valueGetter && typeof colDef.valueGetter === 'function') {\r\n\t\t\t\t\t\treturn colDef.valueGetter({ ...params, data: params.node!.data, colDef, node: params.node!, getValue: () => params.value })\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (colDef.cellRenderer && typeof colDef.cellRenderer === 'function') {\r\n\t\t\t\t\t\treturn colDef.cellRenderer(params)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (colDef.valueFormatter && typeof colDef.valueFormatter === 'function') {\r\n\t\t\t\t\t\treturn params.formatValue(params.value)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn params.value\r\n\t\t\t\t}\r\n\t\t\t\tcatch {\r\n\t\t\t\t\treturn params.value\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tdefaultCsvExportParams: {\r\n\t\t\tprocessCellCallback: (params) => {\r\n\t\t\t\tconst colDef = params.column?.getColDef()\r\n\r\n\r\n\t\t\t\tif (!colDef || !params.node) return params.value\r\n\r\n\t\t\t\tif (params.node?.data[tableFields.id].includes('aggregate'))\r\n\t\t\t\t\treturn ''\r\n\r\n\t\t\t\ttry {\r\n\r\n\t\t\t\t\tif (colDef.valueGetter && typeof colDef.valueGetter === 'function') {\r\n\t\t\t\t\t\treturn colDef.valueGetter({ ...params, data: params.node!.data, colDef, node: params.node!, getValue: () => params.value })\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (colDef.cellRenderer && typeof colDef.cellRenderer === 'function') {\r\n\t\t\t\t\t\treturn colDef.cellRenderer(params)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (colDef.valueFormatter && typeof colDef.valueFormatter === 'function') {\r\n\t\t\t\t\t\treturn params.formatValue(params.value)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn params.value\r\n\t\t\t\t}\r\n\t\t\t\tcatch {\r\n\t\t\t\t\treturn params.value\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tonRowSelected(event) {\r\n\t\t\tif (event.node?.isSelected())\r\n\t\t\t\temit('update:modelValue', [event.data])\r\n\t\t},\r\n\t\tonCellValueChanged(params) {\r\n\t\t\tif (!isEqual(params.newValue, params.oldValue)) {\r\n\t\t\t\tcalculateAllAggregations()\r\n\t\t\t\temit('data-changed')\r\n\t\t\t}\r\n\t\t},\r\n\t\tonRowDataUpdated() {\r\n\t\t\tcalculateAllAggregations()\r\n\t\t},\r\n\t\tonCellKeyDown(params: CellKeyDownEvent) {\r\n\t\t\tif (!props.actions?.length)\r\n\t\t\t\treturn\r\n\r\n\t\t\tfor (let i = 0; i < props.actions?.length; i++) {\r\n\t\t\t\tconst action = props.actions[i]\r\n\t\t\t\tconst event = params.event as KeyboardEvent\r\n\t\t\t\tif (event && event.keyCode === action.shortcut.keyCode && event.shiftKey === action.shortcut.shiftKey && event.altKey === action.shortcut.altKey && event.ctrlKey === action.shortcut.ctrlKey) {\r\n\t\t\t\t\taction.handler(params.data, params.rowIndex, tableLocalData.value, params.column, params.api)\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t},\r\n\t\tfocusGridInnerElement(params) {\r\n\t\t\tif (gridOptions.value.isEditable) {\r\n\t\t\t\tfocusOnFirstEditableCellOfRow(0)\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t\treturn false\r\n\t\t},\r\n\t\tonColumnVisible() {\r\n\t\t\tsaveGridState()\r\n\t\t},\r\n\t\tonColumnResized() {\r\n\t\t\tsaveGridState()\r\n\t\t},\r\n\t\tonColumnMoved() {\r\n\t\t\tsaveGridState()\r\n\t\t},\r\n\t\tmaintainColumnOrder: true,\r\n\t\tsingleClickEdit: true,\r\n\t\tsuppressDragLeaveHidesColumns: true\r\n\t})\r\n\r\n\tconst getActiveState = computed(() => store.getters['appStates/getActiveByKey'](`grid__${props.options.gridId}`))\r\n\r\n\tonMounted(() => {\r\n\t\tprepareOptions(props.options)\r\n\t\tcomputeButtons(props.buttons)\r\n\t\tprepareColumns(props.columns)\r\n\t\tprepareData(props.data)\r\n\t\ttryGetGridState()\r\n\t\tprepareAggregationColumns()\r\n\t})\r\n\r\n\tonBeforeUnmount(() => {\r\n\t\tif (gridSaveStateTimeout)\r\n\t\t\tclearTimeout(gridSaveStateTimeout)\r\n\t})\r\n\r\n\tfunction onGridReady(params: GridReadyEvent) {\r\n\t\tgridApi.value = params.api\r\n\r\n\t\tgridApi.value!.validateRowData = validateRowData\r\n\t\tgridApi.value!.addNewRow = addNewRow\r\n\t\tgridApi.value!.tryDeleteLastEmptyRow = tryDeleteLastEmptyRow\r\n\t}\r\n\r\n\r\n\tfunction computeButtons(buttons = {}) {\r\n\t\tlet buttonsObj = Merge(getDefaultButtons(), buttons)\r\n\t\tlet buttonsArray: any[] = Object.values(buttonsObj) || []\r\n\r\n\t\tbuttonsArray.map((x => {\r\n\t\t\tx.id ? x.id : x.id = idGenerator(5)\r\n\t\t\tx.options.visible ? x.options.visible : true\r\n\t\t\tx.options.disabled ? x.options.disabled : false\r\n\t\t\treturn x\r\n\t\t}))\r\n\r\n\t\tbuttonsArray = buttonsArray.filter(x => x.options.visible !== false)\r\n\t\ttableButtons.value = buttonsArray.sort((a, b) => (a.displayOrder > b.displayOrder) ? 1 : -1)\r\n\t}\r\n\r\n\tfunction getDefaultButtons() {\r\n\t\treturn {\r\n\t\t\taddBtn: {\r\n\t\t\t\tid: idGenerator(5),\r\n\t\t\t\tdisplayOrder: 1,\r\n\t\t\t\tclass: \"mr-2 no-outline\",\r\n\t\t\t\ttype: 'nk-button',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisabled: gridOptions.value.isEditable === false,\r\n\t\t\t\t\tvisible: false,\r\n\t\t\t\t\tisDanger: false,\r\n\t\t\t\t\ttooltipEnabled: true,\r\n\t\t\t\t\thideTitle: true,\r\n\t\t\t\t\ticon: 'plus',\r\n\t\t\t\t\ttitle: t('table.buttons.add'),\r\n\t\t\t\t\tshortcut: $sc.find('insert-new-row', 'table'),\r\n\t\t\t\t\telement: () => el.value,\r\n\t\t\t\t\thideShortcut: true,\r\n\t\t\t\t\thandler: () => {\r\n\t\t\t\t\t\taddNewRow('active')\r\n\t\t\t\t\t},\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tduplicateBtn: {\r\n\t\t\t\tid: idGenerator(5),\r\n\t\t\t\tdisplayOrder: 2,\r\n\t\t\t\tclass: \"mr-2 no-outline\",\r\n\t\t\t\ttype: 'nk-button',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisabled: gridOptions.value.isEditable === false,\r\n\t\t\t\t\tvisible: false,\r\n\t\t\t\t\ticon: 'copy',\r\n\t\t\t\t\tisDanger: false,\r\n\t\t\t\t\ttooltipEnabled: true,\r\n\t\t\t\t\thideTitle: true,\r\n\t\t\t\t\ttitle: i18nInstance.global.t('table.buttons.copy'),\r\n\t\t\t\t\tshortcut: $sc.find('copy', 'table'),\r\n\t\t\t\t\telement: () => el.value,\r\n\t\t\t\t\thideShortcut: true,\r\n\t\t\t\t\thandler: () => copyRow(),\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tupBtn: {\r\n\t\t\t\tid: idGenerator(5),\r\n\t\t\t\tdisplayOrder: 3,\r\n\t\t\t\tclass: \"mr-2 no-outline\",\r\n\t\t\t\ttype: 'nk-button',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisabled: gridOptions.value.isEditable === false,\r\n\t\t\t\t\tvisible: false,\r\n\t\t\t\t\ticon: 'arrow-up',\r\n\t\t\t\t\tisDanger: false,\r\n\t\t\t\t\ttooltipEnabled: true,\r\n\t\t\t\t\thideTitle: true,\r\n\t\t\t\t\ttitle: i18nInstance.global.t('table.buttons.up'),\r\n\t\t\t\t\tshortcut: $sc.find('move-up', 'table'),\r\n\t\t\t\t\telement: () => el.value,\r\n\t\t\t\t\thideShortcut: true,\r\n\t\t\t\t\thandler: () => moveRow('up'),\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdownBtn: {\r\n\t\t\t\tid: idGenerator(5),\r\n\t\t\t\tdisplayOrder: 4,\r\n\t\t\t\tclass: \"mr-2 no-outline\",\r\n\t\t\t\ttype: 'nk-button',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisabled: gridOptions.value.isEditable === false,\r\n\t\t\t\t\tvisible: false,\r\n\t\t\t\t\ticon: 'arrow-down',\r\n\t\t\t\t\tisDanger: false,\r\n\t\t\t\t\ttooltipEnabled: true,\r\n\t\t\t\t\thideTitle: true,\r\n\t\t\t\t\ttitle: i18nInstance.global.t('table.buttons.down'),\r\n\t\t\t\t\tshortcut: $sc.find('move-down', 'table'),\r\n\t\t\t\t\telement: () => el.value,\r\n\t\t\t\t\thideShortcut: true,\r\n\t\t\t\t\thandler: () => moveRow('down'),\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdeleteBtn: {\r\n\t\t\t\tid: idGenerator(5),\r\n\t\t\t\tdisplayOrder: 6,\r\n\t\t\t\tclass: \"mr-2 no-outline\",\r\n\t\t\t\telement: () => el.value,\r\n\t\t\t\ttype: 'nk-button',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisabled: gridOptions.value.isEditable === false,\r\n\t\t\t\t\tvisible: false,\r\n\t\t\t\t\ticon: 'trash',\r\n\t\t\t\t\tisOutlineDanger: true,\r\n\t\t\t\t\ttooltipEnabled: true,\r\n\t\t\t\t\thideTitle: true,\r\n\t\t\t\t\ttitle: i18nInstance.global.t('table.buttons.delete'),\r\n\t\t\t\t\tshortcut: $sc.find('delete-row', 'table'),\r\n\t\t\t\t\telement: () => el.value,\r\n\t\t\t\t\thideShortcut: true,\r\n\t\t\t\t\thandler: () => deleteRow(),\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//#region Row Methods\r\n\tfunction updateRowData(newData: T[]) {\r\n\t\tgridApi.value?.applyTransaction({ update: newData })\r\n\r\n\t\tcalculateAllAggregations()\r\n\t}\r\n\r\n\tfunction getNewRowData() {\r\n\t\tconst emptyObject = gridOptions.value.prepareNewRow ? gridOptions.value.prepareNewRow() : getEmptyStructure(gridApi.value?.getDisplayedRowAtIndex(0)?.data as any) as T\r\n\r\n\t\treturn emptyObject\r\n\t}\r\n\r\n\tfunction addNewRow(targetIndex: TTargetRowIndex = 'end', focus: boolean = true, data?: T) {\r\n\t\tif (!gridApi.value) return\r\n\r\n\t\tconst row = data ? data : getNewRowData()\r\n\r\n\t\taddCustomFieldsToObject(row)\r\n\r\n\t\tconst index = getTargetIndex(targetIndex)\r\n\r\n\t\tif (!index && index !== 0) return\r\n\r\n\t\trow.displayOrder = index + 1\r\n\r\n\t\tconst updatedRows = getReorderedRows(index + 1)\r\n\r\n\t\tgridApi.value.applyTransaction({ add: [row], addIndex: index, update: updatedRows })\r\n\r\n\t\tif (focus)\r\n\t\t\tfocusOnFirstEditableCellOfRow(index)\r\n\t}\r\n\r\n\tfunction addMultipleNewRows(rowsData: T[], targetIndex: TTargetRowIndex = 'end', focus: boolean = true) {\r\n\t\tif (!gridApi.value) return\r\n\r\n\t\tconst index = getTargetIndex(targetIndex)\r\n\t\tif (!index && index !== 0) return\r\n\r\n\t\t// Prepare new rows with updated displayOrder\r\n\t\tconst newRows = rowsData.map((row, i) => {\r\n\t\t\tconst newRow = { ...row }\r\n\t\t\taddCustomFieldsToObject(newRow)\r\n\t\t\tnewRow.displayOrder = index + i + 1\r\n\t\t\treturn newRow\r\n\t\t})\r\n\r\n\t\t// Reorder existing rows\r\n\t\tconst updatedRows = getReorderedRows(index + 1, 'add', rowsData.length)\r\n\r\n\t\t// Apply transaction\r\n\t\tgridApi.value.applyTransaction({\r\n\t\t\tadd: newRows,\r\n\t\t\taddIndex: index,\r\n\t\t\tupdate: updatedRows\r\n\t\t})\r\n\r\n\t\t// Focus on the first editable cell of the first new row\r\n\t\tif (focus && rowsData.length > 0) {\r\n\t\t\tfocusOnFirstEditableCellOfRow(index)\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getReorderedRows(startIndex: number, type: 'add' | 'delete' = 'add', count: number = 1) {\r\n\t\tconst rowsData: T[] = []\r\n\t\tlet lastDisplayOrder = 0\r\n\r\n\t\tgridApi.value!.forEachNode((node) => {\r\n\t\t\tif (!node.data) return\r\n\r\n\t\t\tif (node.data.displayOrder >= startIndex) {\r\n\t\t\t\tnode.data.displayOrder += type === 'add' ? count : -Math.abs(count)\r\n\t\t\t\trowsData.push(node.data)\r\n\t\t\t}\r\n\r\n\t\t\tif (node.data.displayOrder > lastDisplayOrder)\r\n\t\t\t\tlastDisplayOrder = node.data.displayOrder\r\n\t\t})\r\n\r\n\t\treturn rowsData\r\n\t}\r\n\r\n\tfunction getTargetIndex(targetIndex: TTargetRowIndex = 'end'): number | null {\r\n\t\tif (targetIndex === 'end')\r\n\t\t\treturn tableLocalData.value.length\r\n\t\telse if (targetIndex === 'start')\r\n\t\t\treturn 0\r\n\t\telse if (targetIndex === 'active') {\r\n\t\t\tconst activeRow = gridApi.value?.getSelectedRows()[0]\r\n\r\n\t\t\tif (activeRow)\r\n\t\t\t\treturn activeRow.displayOrder\r\n\t\t\telse\r\n\t\t\t\treturn tableLocalData.value.length\r\n\t\t}\r\n\t\telse\r\n\t\t\treturn targetIndex\r\n\t}\r\n\r\n\tfunction getActiveRowIndex() {\r\n\t\tif (!gridApi.value) return -1\r\n\r\n\t\tconst activeNode = gridApi.value?.getSelectedNodes()[0]\r\n\r\n\t\treturn activeNode ? activeNode.rowIndex : -1\r\n\t}\r\n\r\n\tfunction deleteRow() {\r\n\t\tconst node = gridApi.value?.getSelectedNodes()[0]\r\n\t\tif (node)\r\n\t\t\tdeleteTargetRow(node)\r\n\t}\r\n\r\n\tfunction deleteTargetRow(node: IRowNode) {\r\n\t\tconst data = node.data\r\n\t\tif (!data || !gridApi.value) return\r\n\r\n\t\tif (gridOptions.value.prepareDeleteRow && !gridOptions.value.prepareDeleteRow(data)) return\r\n\r\n\t\tconst currentIndex = node.rowIndex\r\n\t\tconst isLastRow = currentIndex === gridApi.value.getDisplayedRowCount() - 1\r\n\r\n\t\t// UnDelete\r\n\t\tif (data.rowState === RowStates.Deleted) {\r\n\t\t\tdata.rowState = RowStates.Changed\r\n\t\t\tupdateRowData([data])\r\n\t\t}\r\n\r\n\t\t// Delete for Server\r\n\t\telse if ([RowStates.Changed, RowStates.Unchanged].includes(data.rowState) || !data.rowState) {\r\n\t\t\tdata.rowState = RowStates.Deleted\r\n\t\t\tupdateRowData([data])\r\n\t\t}\r\n\r\n\t\t// Delete For Client\r\n\t\telse {\r\n\t\t\tgridApi.value?.applyTransaction({\r\n\t\t\t\tremove: [data],\r\n\t\t\t\tupdate: getReorderedRows(data.displayOrder, 'delete')\r\n\t\t\t})\r\n\r\n\t\t\tif (gridApi.value.getDisplayedRowCount() > 0) {\r\n\t\t\t\tif (isLastRow) {\r\n\t\t\t\t\tconst newIndex = Math.max(0, currentIndex - 1)\r\n\t\t\t\t\tconst targetNode = gridApi.value?.getDisplayedRowAtIndex(newIndex)\r\n\t\t\t\t\ttargetNode?.setSelected(true, true)\r\n\t\t\t\t} else if (currentIndex !== null) {\r\n\t\t\t\t\tconst targetNode = gridApi.value?.getDisplayedRowAtIndex(currentIndex)\r\n\t\t\t\t\ttargetNode?.setSelected(true, true)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\temit('data-changed')\r\n\t}\r\n\r\n\tfunction moveRow(dir: 'up' | 'down') {\r\n\t\tif (!gridApi.value) return\r\n\r\n\t\tconst selectedNodes = gridApi.value.getSelectedNodes()\r\n\t\tif (selectedNodes.length !== 1) return\r\n\r\n\t\tconst currentNode = selectedNodes[0]\r\n\t\tconst currentRowIndex = currentNode.data?.displayOrder\r\n\t\tconst allRows: IRowNode[] = []\r\n\r\n\t\tif (!currentRowIndex) return\r\n\r\n\t\tgridApi.value.forEachNode((node) => allRows.push(node))\r\n\t\tconst targetRowIndex = dir === 'up' ? currentRowIndex - 1 : currentRowIndex + 1\r\n\r\n\t\tif (targetRowIndex < 1 || targetRowIndex > allRows.length) return\r\n\r\n\t\tconst targetNode = allRows.find(x => x.data.displayOrder === targetRowIndex)\r\n\r\n\t\tif (!targetNode) return\r\n\r\n\t\tconst tempOrder = currentNode.data!.displayOrder\r\n\t\tcurrentNode.data!.displayOrder = targetNode.data.displayOrder\r\n\t\tcurrentNode.data!.rowState = currentNode.data!.rowState === RowStates.Unchanged ? RowStates.Changed : currentNode.data!.rowState\r\n\t\ttargetNode.data.displayOrder = tempOrder\r\n\t\ttargetNode.data.rowState = targetNode.data!.rowState === RowStates.Unchanged ? RowStates.Changed : targetNode.data!.rowState\r\n\r\n\t\tgridApi.value.applyTransaction({ update: [currentNode.data, targetNode.data] })\r\n\r\n\t\tgridApi.value.deselectAll()\r\n\t\tgridApi.value.getRowNode(currentNode.id as string)!.setSelected(true)\r\n\t}\r\n\r\n\tfunction copyRow() {\r\n\t\tif (!gridApi.value) return\r\n\r\n\t\tconst selectedNodes = gridApi.value.getSelectedNodes()\r\n\t\tif (selectedNodes.length !== 1) return\r\n\r\n\t\tlet rowData = CloneDeep(selectedNodes[0].data) as T\r\n\r\n\t\tif (gridOptions.value.onCopyRow)\r\n\t\t\trowData = gridOptions.value.onCopyRow(rowData)\r\n\r\n\t\taddNewRow('end', true, rowData)\r\n\t}\r\n\r\n\tfunction addCustomFieldsToObject(rowData: T) {\r\n\t\trowData.rowState = RowStates.New\r\n\t\trowData[tableFields.id] = `grid__${generateUUID()}`\r\n\t\trowData[tableFields.isValid] = true\r\n\t\trowData[tableFields.invalidCells] = []\r\n\r\n\t\treturn rowData\r\n\t}\r\n\r\n\tfunction focusOnFirstEditableCellOfRow(rowIndex: number) {\r\n\t\tif (!gridApi.value) return\r\n\r\n\t\tconst allColumns = gridApi.value.getAllGridColumns()\r\n\r\n\t\tlet newColumnIndex = 0\r\n\t\tlet foundEditableCell = false\r\n\t\tlet node: IRowNode | null = null\r\n\r\n\t\t// Search for an editable cell in the specified row\r\n\t\twhile (!foundEditableCell) {\r\n\t\t\tconst rowNode = gridApi.value.getDisplayedRowAtIndex(rowIndex)\r\n\t\t\tconst targetColumn = allColumns[newColumnIndex]\r\n\r\n\t\t\tif (rowNode && targetColumn.isCellEditable(rowNode)) {\r\n\t\t\t\tfoundEditableCell = true\r\n\t\t\t\tnode = rowNode\r\n\t\t\t} else {\r\n\t\t\t\tnewColumnIndex += 1\r\n\r\n\t\t\t\t// Wrap within the row's columns if no editable cell is found\r\n\t\t\t\tif (newColumnIndex >= allColumns.length) return\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (foundEditableCell) {\r\n\t\t\tgridApi.value?.stopEditing()\r\n\t\t\tgridApi.value?.startEditingCell({\r\n\t\t\t\trowIndex: rowIndex,\r\n\t\t\t\tcolKey: allColumns[newColumnIndex].getId(),\r\n\t\t\t})\r\n\t\t\tnode?.setSelected(true, true)\r\n\t\t}\r\n\t}\r\n\r\n\tfunction tryDeleteLastEmptyRow() {\r\n\t\tif (!gridApi.value) return false\r\n\r\n\t\tconst editingCell = gridApi.value.getEditingCells()?.[0]\r\n\t\tgridApi.value.stopEditing()\r\n\r\n\t\tconst rowCount = gridApi.value.getDisplayedRowCount()\r\n\t\tif (rowCount === 0) return false\r\n\r\n\t\tconst lastRowNode = gridApi.value.getDisplayedRowAtIndex(rowCount - 1)\r\n\r\n\t\tif (!lastRowNode || !lastRowNode.data) return false\r\n\r\n\t\tconst emptyRow = getNewRowData()\r\n\r\n\t\tconst isEmpty = isEqual(removeTableFieldsFromData(lastRowNode.data), removeTableFieldsFromData(emptyRow))\r\n\r\n\t\tif (isEmpty)\r\n\t\t\tdeleteTargetRow(lastRowNode)\r\n\t\telse if (editingCell)\r\n\t\t\tgridApi.value.startEditingCell({\r\n\t\t\t\trowIndex: editingCell.rowIndex,\r\n\t\t\t\tcolKey: editingCell.column.getId()\r\n\t\t\t})\r\n\r\n\r\n\t\treturn isEmpty\r\n\t}\r\n\t//#endregion Row Methods\r\n\r\n\t//#region Validators\r\n\r\n\tfunction validateSelectedRow() {\r\n\t\tconst selectedNodes = gridApi.value!.getSelectedNodes()\r\n\t\tif (selectedNodes.length !== 1) return\r\n\r\n\t\tvalidateRowData(selectedNodes[0].data as T)\r\n\t}\r\n\r\n\tfunction validateAllRows() {\r\n\t\tif (!gridApi.value) return\r\n\r\n\t\tgridApi.value.stopEditing()\r\n\r\n\t\tconst rows: T[] = []\r\n\t\tconst errors: string[] = []\r\n\r\n\t\tgridApi.value.forEachNode((node) => {\r\n\t\t\tif (!node.data) return\r\n\r\n\t\t\tif (node.data?.rowState === RowStates.Deleted)\r\n\t\t\t\trows.push(node.data)\r\n\r\n\t\t\telse {\r\n\t\t\t\tconst validateObj = validateRowData(node.data, false)\r\n\t\t\t\trows.push(validateObj.row)\r\n\r\n\t\t\t\tif (validateObj.message)\r\n\t\t\t\t\terrors.push(validateObj.message)\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tif (errors.length)\r\n\t\t\ttoastInstance(errors.join('\\n'), { type: TYPE.ERROR, position: POSITION.TOP_CENTER })\r\n\r\n\r\n\t\tgridApi.value.applyTransaction({ update: rows })\r\n\r\n\t\treturn !errors.length\r\n\t}\r\n\r\n\tfunction validateRowData(row: T, apply: boolean = true, oldRow?: T) {\r\n\t\tlet isValid = true\r\n\t\tconst invalidCells: string[] = []\r\n\t\tlet errorsMessage: string[] = []\r\n\r\n\t\ttableValidatorsMap.forEach((validators, key) => {\r\n\t\t\tconst field = key.split('$')[0]\r\n\t\t\tconst headerName = key.split('$')[1]\r\n\r\n\t\t\tconst cellValue = row[field as keyof T]\r\n\r\n\t\t\tlet isCellValid = !validators.map(x => {\r\n\t\t\t\tconst testPassed = x.test(cellValue, row)\r\n\r\n\t\t\t\tif (!testPassed)\r\n\t\t\t\t\terrorsMessage.push(x.error(headerName ? headerName : field, row))\r\n\r\n\t\t\t\treturn testPassed\r\n\r\n\t\t\t}).some(x => x === false)\r\n\r\n\t\t\tif (!isCellValid) {\r\n\t\t\t\tinvalidCells.push(field)\r\n\t\t\t\tisValid = false\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tif (oldRow) {\r\n\t\t\toldRow[tableFields.invalidCells] = invalidCells\r\n\t\t\toldRow[tableFields.isValid] = isValid\r\n\t\t} else {\r\n\t\t\trow[tableFields.invalidCells] = invalidCells\r\n\t\t\trow[tableFields.isValid] = isValid\r\n\t\t}\r\n\r\n\t\tconst errorMessage = `در ردیف ${row.displayOrder}: \\n \\t${errorsMessage.join('\\n \\t')}`\r\n\r\n\t\tif (apply) {\r\n\t\t\tgridApi.value?.applyTransaction({ update: [oldRow ? oldRow : row] })\r\n\r\n\t\t\tif (errorsMessage.length)\r\n\t\t\t\ttoastInstance(errorMessage, { type: TYPE.ERROR, position: POSITION.TOP_CENTER })\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\trow: row,\r\n\t\t\tisValid: isValid,\r\n\t\t\tmessage: errorsMessage.length ? errorMessage : null\r\n\t\t}\r\n\t}\r\n\t//#endregion Validators\r\n\r\n\t//#region Table Methods\r\n\tfunction prepareData(data: T[]) {\r\n\t\tlet lastRowIndex = 0\r\n\r\n\t\tconst aggColNames = Object.keys(aggregateColumns.value)\r\n\t\tconst columnsData: any = {}\r\n\r\n\t\ttableLocalData.value = sortBy(data, 'displayOrder').map(row => {\r\n\t\t\tif (!row.rowState)\r\n\t\t\t\trow.rowState = RowStates.Unchanged\r\n\r\n\t\t\tlet nextIndex = lastRowIndex + 1\r\n\r\n\t\t\tif (row.displayOrder && row.displayOrder === nextIndex)\r\n\t\t\t\tlastRowIndex = row.displayOrder\r\n\t\t\telse {\r\n\t\t\t\trow.displayOrder = nextIndex\r\n\t\t\t\tlastRowIndex = nextIndex\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof row[tableFields.isValid] !== 'boolean')\r\n\t\t\t\trow[tableFields.isValid] = true\r\n\r\n\t\t\tif (!row[tableFields.id])\r\n\t\t\t\trow[tableFields.id] = `grid__${generateUUID()}`\r\n\r\n\t\t\trow[tableFields.invalidCells] = []\r\n\t\t\trow[tableFields.isLocked] = false\r\n\r\n\t\t\taggColNames.forEach(item => {\r\n\t\t\t\tif (columnsData[item])\r\n\t\t\t\t\tcolumnsData[item].push((row as any)[item])\r\n\r\n\t\t\t\telse\r\n\t\t\t\t\tcolumnsData[item] = [(row as any)[item]]\r\n\t\t\t})\r\n\r\n\t\t\treturn row\r\n\t\t})\r\n\r\n\r\n\t\tif (!data.length && gridOptions.value.canAddRow) {\r\n\t\t\tif (addRowOnLoadTimeout.value)\r\n\t\t\t\tclearTimeout(addRowOnLoadTimeout.value)\r\n\r\n\t\t\taddRowOnLoadTimeout.value = setTimeout(() => {\r\n\t\t\t\taddNewRow('end', false)\r\n\t\t\t\taddRowOnLoadTimeout.value = null\r\n\t\t\t}, 500)\r\n\r\n\t\t}\r\n\r\n\r\n\t\tconst aggregateRow: any = {}\r\n\t\taggColNames.forEach(item => {\r\n\t\t\taggregateRow[item] = aggregateColumns.value[item](columnsData[item])\r\n\t\t})\r\n\r\n\t\taggregateRow[tableFields.id] = `grid__${generateUUID()}_aggregate`\r\n\r\n\t\tpinnedBottomRow.value = [aggregateRow]\r\n\t}\r\n\r\n\tfunction prepareColumns(cols: IExtendedColDef[]) {\r\n\t\tgridIsVisible.value = false\r\n\r\n\t\tconst validators: [string, IValidator[]][] = []\r\n\t\tconst columns: IExtendedColDef[] = []\r\n\r\n\t\tfor (let i = 0; i < cols.length; i++) {\r\n\t\t\tconst column = cols[i]\r\n\r\n\t\t\tif (!column)\r\n\t\t\t\tcontinue\r\n\r\n\t\t\tcolumn.columnId = `col__${generateUUID()}`\r\n\r\n\t\t\tif (column.validators)\r\n\t\t\t\tvalidators.push([`${column.field || ''}$${column.headerName || ''}`, column.validators])\r\n\r\n\t\t\tcolumns.push(column)\r\n\t\t}\r\n\r\n\t\ttableValidatorsMap = new Map(validators)\r\n\t\tcolDefs.value = columns\r\n\r\n\t\tprepareAggregationColumns(columns)\r\n\r\n\t\ttryGetGridState()\r\n\t}\r\n\r\n\tfunction tryAddAggregationFunc(column: IExtendedColDef) {\r\n\t\tif (column.aggregateFunction && column.field) {\r\n\t\t\tlet func\r\n\r\n\t\t\tif (typeof column.aggregateFunction === 'string')\r\n\t\t\t\tswitch (column.aggregateFunction) {\r\n\t\t\t\t\tcase 'avg':\r\n\t\t\t\t\t\tfunc = avg\r\n\t\t\t\t\tcase 'count':\r\n\t\t\t\t\t\tfunc = count\r\n\t\t\t\t\tcase 'max':\r\n\t\t\t\t\t\tfunc = max\r\n\t\t\t\t\tcase 'min':\r\n\t\t\t\t\t\tfunc = min\r\n\t\t\t\t\tcase 'sum':\r\n\t\t\t\t\t\tfunc = sum\r\n\t\t\t\t}\r\n\r\n\t\t\telse\r\n\t\t\t\tfunc = column.aggregateFunction\r\n\r\n\t\t\taggregateColumns.value[column.field] = func\r\n\t\t}\r\n\t}\r\n\r\n\tfunction prepareAndCalculateAggregation() {\r\n\t\tprepareAggregationColumns()\r\n\t\tcalculateAllAggregations()\r\n\t}\r\n\r\n\tfunction prepareAggregationColumns(colDefs?: IExtendedColDef[]) {\r\n\t\tif (!gridApi.value && !colDefs) return\r\n\r\n\t\tconst columns = colDefs ? colDefs : gridApi.value?.getColumnDefs() || []\r\n\r\n\t\tfor (let i = 0; i < columns.length; i++) {\r\n\t\t\ttryAddAggregationFunc(columns[i])\r\n\t\t}\r\n\t}\r\n\r\n\tfunction calculateAllAggregations() {\r\n\t\tconst columnKeys = Object.keys(aggregateColumns.value) as (keyof T)[]\r\n\t\tconst columnsNodesData: TObjectWithFieldOf = {}\r\n\r\n\t\tgridApi.value?.forEachNodeAfterFilter(node => {\r\n\r\n\t\t\tif (node.data?.rowState !== RowStates.Deleted) {\r\n\r\n\t\t\t\tfor (let i = 0; i < columnKeys.length; i++) {\r\n\r\n\t\t\t\t\tif (columnsNodesData[columnKeys[i]])\r\n\t\t\t\t\t\tcolumnsNodesData[columnKeys[i]].push(node.data?.[columnKeys[i]])\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tcolumnsNodesData[columnKeys[i]] = [node.data?.[columnKeys[i]]]\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tconst aggregateRow: TObjectWithFieldOf = {}\r\n\t\tcolumnKeys.forEach(item => {\r\n\t\t\tif (columnsNodesData[item])\r\n\t\t\t\taggregateRow[item] = aggregateColumns.value[item](columnsNodesData[item])\r\n\t\t})\r\n\r\n\t\taggregateRow[tableFields.id] = `grid__${generateUUID()}_aggregate`\r\n\r\n\t\tpinnedBottomRow.value = [aggregateRow]\r\n\t}\r\n\r\n\tfunction getTableData(keepFocus: boolean = false, excludeLastRowIfEmpty: boolean = false) {\r\n\t\tif (!gridApi.value) return { data: [] }\r\n\r\n\t\tconst editingCell = gridApi.value.getEditingCells()?.[0]\r\n\r\n\t\tgridApi.value.stopEditing()\r\n\r\n\t\tconst allRows: T[] = []\r\n\t\tgridApi.value.forEachNode((node) => allRows.push(node.data as T))\r\n\r\n\t\tif (keepFocus && editingCell)\r\n\t\t\tgridApi.value.startEditingCell({\r\n\t\t\t\trowIndex: editingCell.rowIndex,\r\n\t\t\t\tcolKey: editingCell.column.getId()\r\n\t\t\t})\r\n\r\n\t\tif (excludeLastRowIfEmpty && allRows.length) {\r\n\t\t\tconst lastRow = allRows.at(-1) as T\r\n\r\n\t\t\tconst isEmpty = isEqual(removeTableFieldsFromData(lastRow), removeTableFieldsFromData(getNewRowData()))\r\n\r\n\t\t\tif (isEmpty)\r\n\t\t\t\tallRows.pop()\r\n\t\t}\r\n\r\n\r\n\t\treturn { data: CloneDeep(allRows) }\r\n\t}\r\n\r\n\tfunction commitChanges() {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\r\n\t\t\tlet shouldDeleteLastEmpties = true\r\n\t\t\twhile (shouldDeleteLastEmpties) {\r\n\t\t\t\tshouldDeleteLastEmpties = tryDeleteLastEmptyRow()\r\n\t\t\t}\r\n\r\n\t\t\tif (!validateAllRows()) {\r\n\t\t\t\treject()\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tresolve(getTableData(true)?.data)\r\n\t\t})\r\n\r\n\t}\r\n\r\n\tfunction prepareOptions(options: IExtendedGridOptions) {\r\n\t\tgridOptions.value.initialState = getActiveState.value\r\n\t\tgridOptions.value = Merge(gridOptions.value, options)\r\n\r\n\t\tcomputeButtons(props.buttons)\r\n\t}\r\n\r\n\tfunction getContextMenuItems(): (string | MenuItemDef)[] {\r\n\t\tconst customActions: MenuItemDef[] | undefined = props.actions?.map((act) => {\r\n\t\t\treturn {\r\n\t\t\t\tname: act.name,\r\n\t\t\t\tshortcut: shortcutDisplay(act.shortcut),\r\n\t\t\t\taction: (params) => {\r\n\t\t\t\t\tact.handler(params.node?.data, params.node?.rowIndex, tableLocalData.value, params.column, params.api)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\treturn [\r\n\t\t\t'cut',\r\n\t\t\t'copy',\r\n\t\t\t'copyWithHeaders',\r\n\t\t\t'separator',\r\n\t\t\t'export',\r\n\t\t\t'separator',\r\n\t\t\t...(customActions || [])\r\n\t\t] as (string | MenuItemDef)[]\r\n\t}\r\n\r\n\tfunction tryGetGridState() {\r\n\t\tif (getActiveState.value) {\r\n\t\t\tgridOptions.value.initialState = getActiveState.value.value\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tgridIsVisible.value = true\r\n\t\t}, 10)\r\n\t}\r\n\r\n\tfunction resetGridState() {\r\n\t\tlet currentState = getActiveState.value\r\n\r\n\t\tif (!currentState) return\r\n\r\n\t\tcurrentState.rowState = 'deleted'\r\n\r\n\t\tgridOptions.value.initialState = undefined\r\n\r\n\t\tstore.dispatch('appStates/modify', [currentState])\r\n\t\tstore.dispatch('appStates/sync').then(() => {\r\n\t\t\tprepareColumns(props.columns)\r\n\t\t})\r\n\t}\r\n\r\n\tfunction saveGridState(immediate: boolean = false) {\r\n\t\tif (gridSaveStateTimeout)\r\n\t\t\tclearTimeout(gridSaveStateTimeout)\r\n\r\n\t\tgridSaveStateTimeout = setTimeout(() => {\r\n\t\t\tlet currentState = getActiveState.value\r\n\t\t\tif (!currentState) {\r\n\t\t\t\tcurrentState = {\r\n\t\t\t\t\tid: emptyId,\r\n\t\t\t\t\tkey: `grid__${props.options.gridId}`,\r\n\t\t\t\t\tname: `grid__${props.options.gridId}`,\r\n\t\t\t\t\tisActive: true,\r\n\t\t\t\t\trowState: 'new',\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tcurrentState.rowState = 'changed'\r\n\t\t\t}\r\n\r\n\t\t\tcurrentState.value = gridApi.value?.getState()\r\n\r\n\t\t\tstore.dispatch('appStates/modify', [currentState])\r\n\t\t\tstore.dispatch('appStates/sync')\r\n\t\t}, immediate ? 0 : 5000)\r\n\r\n\t}\r\n\r\n\tfunction getMainMenuItems(): (MenuItemDef | string)[] {\r\n\t\treturn [\r\n\t\t\t'columnChooser',\r\n\t\t\t'separator',\r\n\t\t\t'pinSubMenu',\r\n\t\t\t'separator',\r\n\t\t\t'autoSizeThis',\r\n\t\t\t'autoSizeAll',\r\n\t\t\t'separator',\r\n\t\t\t{\r\n\t\t\t\tname: t('ag-grid-local.saveColumnsState'),\r\n\t\t\t\taction: () => saveGridState(true)\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: t('ag-grid-local.resetColumnsState'),\r\n\t\t\t\taction: resetGridState\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tfunction toggleColumnsVisibility(columnKeys: string[], isVisible: boolean) {\r\n\t\tif (!gridApi.value) return\r\n\r\n\t\tgridApi.value.setColumnsVisible(columnKeys, isVisible)\r\n\r\n\t\tcolumnKeys.forEach(columnField => {\r\n\t\t\tconst column = gridApi.value?.getColumnDef(columnField)\r\n\t\t\tif (column) {\r\n\t\t\t\tcolumn.suppressColumnsToolPanel = !isVisible\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tgridApi.value.refreshHeader()\r\n\t}\r\n\t//#endregion Table Methods\r\n\r\n\t//#region Expose\r\n\t__expose({\r\n\t\tgridApi,\r\n\t\tgetTableData,\r\n\t\tprepareData,\r\n\t\tcommitChanges,\r\n\t\tprepareColumns,\r\n\t\tprepareOptions,\r\n\t\tcomputeButtons,\r\n\t\taddNewRow,\r\n\t\taddMultipleNewRows,\r\n\t\tupdateRowData,\r\n\t\tdeleteRow,\r\n\t\tdeleteTargetRow,\r\n\t\tgetActiveRowIndex,\r\n\t\ttoggleColumnsVisibility,\r\n\t\ttryDeleteLastEmptyRow\r\n\t})\r\n\t//#endregion Expose\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n ref_key: \"el\",\n ref: el,\n class: \"h-100 d-flex flex-column\"\n }, [\n _createVNode(GridButtons, { tableButtons: tableButtons.value }, null, 8, [\"tableButtons\"]),\n (gridIsVisible.value)\n ? (_openBlock(), _createBlock(_unref(AgGridVue), {\n key: 0,\n columnDefs: colDefs.value,\n tabIndex: _ctx.tabIndex,\n onGridReady: onGridReady,\n gridOptions: gridOptions.value,\n columnTypes: _unref(tableDefaultDataTypes),\n modelValue: tableLocalData.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((tableLocalData).value = $event)),\n class: \"ag-theme-quartz flex-grow-1\",\n enableRtl: true,\n pinnedBottomRowData: pinnedBottomRow.value,\n getContextMenuItems: getContextMenuItems,\n getMainMenuItems: getMainMenuItems\n }, null, 8, [\"columnDefs\", \"tabIndex\", \"gridOptions\", \"columnTypes\", \"modelValue\", \"pinnedBottomRowData\"]))\n : _createCommentVNode(\"\", true)\n ], 512))\n}\n}\n\n})","\r\n\t\r\n\r\n","import script from \"./new-ag-grid.vue?vue&type=script&lang=ts&setup=true&generic=T%20extends%20TDefaultFields\"\nexport * from \"./new-ag-grid.vue?vue&type=script&lang=ts&setup=true&generic=T%20extends%20TDefaultFields\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\r\n\t
\r\n\r\n\r\n","import { render } from \"./nikan-switch.vue?vue&type=template&id=0bea01b0\"\nimport script from \"./nikan-switch.vue?vue&type=script&lang=js\"\nexport * from \"./nikan-switch.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\r\n\r\n\r\n","import { render } from \"./button.vue?vue&type=template&id=6c6e7b80\"\nimport script from \"./button.vue?vue&type=script&lang=js\"\nexport * from \"./button.vue?vue&type=script&lang=js\"\n\nimport \"./button.vue?vue&type=style&index=0&id=6c6e7b80&lang=less\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\r\n\t\t
\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./dynamic-report-viewer.vue?vue&type=template&id=43f79409\"\nimport script from \"./dynamic-report-viewer.vue?vue&type=script&lang=js\"\nexport * from \"./dynamic-report-viewer.vue?vue&type=script&lang=js\"\n\nimport \"./dynamic-report-viewer.vue?vue&type=style&index=0&id=43f79409&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var map = {\n\t\"./App\": [\n\t\t65257,\n\t\t9\n\t],\n\t\"./App.vue\": [\n\t\t65257,\n\t\t9\n\t],\n\t\"./accounts/account-list\": [\n\t\t67580,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t279,\n\t\t2888,\n\t\t6312\n\t],\n\t\"./accounts/account-list.vue\": [\n\t\t67580,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t279,\n\t\t2888,\n\t\t6312\n\t],\n\t\"./accounts/account-modify\": [\n\t\t40279,\n\t\t9,\n\t\t279,\n\t\t3623\n\t],\n\t\"./accounts/account-modify.vue\": [\n\t\t40279,\n\t\t9,\n\t\t279,\n\t\t3623\n\t],\n\t\"./accounts/account-selector\": [\n\t\t53158,\n\t\t9\n\t],\n\t\"./accounts/account-selector.vue\": [\n\t\t53158,\n\t\t9\n\t],\n\t\"./accounts/auto-accounts-modify\": [\n\t\t90598,\n\t\t9\n\t],\n\t\"./accounts/auto-accounts-modify.vue\": [\n\t\t90598,\n\t\t9\n\t],\n\t\"./accounts/link-to-centers\": [\n\t\t82888,\n\t\t9,\n\t\t2888,\n\t\t677\n\t],\n\t\"./accounts/link-to-centers.vue\": [\n\t\t82888,\n\t\t9,\n\t\t2888,\n\t\t677\n\t],\n\t\"./assets/assets-acquisition\": [\n\t\t29183,\n\t\t9,\n\t\t7269,\n\t\t8902\n\t],\n\t\"./assets/assets-acquisition-list\": [\n\t\t41899,\n\t\t9,\n\t\t7269,\n\t\t8902\n\t],\n\t\"./assets/assets-acquisition-list.vue\": [\n\t\t41899,\n\t\t9,\n\t\t7269,\n\t\t8902\n\t],\n\t\"./assets/assets-acquisition.vue\": [\n\t\t29183,\n\t\t9,\n\t\t7269,\n\t\t8902\n\t],\n\t\"./assets/assets-calculation\": [\n\t\t73013,\n\t\t9,\n\t\t7269,\n\t\t4978\n\t],\n\t\"./assets/assets-calculation.vue\": [\n\t\t73013,\n\t\t9,\n\t\t7269,\n\t\t4978\n\t],\n\t\"./assets/assets-group\": [\n\t\t54845,\n\t\t9,\n\t\t4845\n\t],\n\t\"./assets/assets-group.vue\": [\n\t\t54845,\n\t\t9,\n\t\t4845\n\t],\n\t\"./assets/assets-location\": [\n\t\t15009,\n\t\t9,\n\t\t5009\n\t],\n\t\"./assets/assets-location.vue\": [\n\t\t15009,\n\t\t9,\n\t\t5009\n\t],\n\t\"./backupRestore/RestoreLogs\": [\n\t\t4489,\n\t\t9,\n\t\t4489\n\t],\n\t\"./backupRestore/RestoreLogs.vue\": [\n\t\t4489,\n\t\t9,\n\t\t4489\n\t],\n\t\"./backupRestore/backupDetail\": [\n\t\t83725,\n\t\t9\n\t],\n\t\"./backupRestore/backupDetail.vue\": [\n\t\t83725,\n\t\t9\n\t],\n\t\"./backupRestore/backupRestoreManagement\": [\n\t\t61764,\n\t\t9,\n\t\t1764\n\t],\n\t\"./backupRestore/backupRestoreManagement.vue\": [\n\t\t61764,\n\t\t9,\n\t\t1764\n\t],\n\t\"./currency/currency-rates\": [\n\t\t9125,\n\t\t9,\n\t\t9125\n\t],\n\t\"./currency/currency-rates.vue\": [\n\t\t9125,\n\t\t9,\n\t\t9125\n\t],\n\t\"./demo/FilterPreview\": [\n\t\t47549,\n\t\t9,\n\t\t7549\n\t],\n\t\"./demo/FilterPreview.vue\": [\n\t\t47549,\n\t\t9,\n\t\t7549\n\t],\n\t\"./demo/bigtable\": [\n\t\t49429,\n\t\t9,\n\t\t5992,\n\t\t7467,\n\t\t8129\n\t],\n\t\"./demo/bigtable.vue\": [\n\t\t49429,\n\t\t9,\n\t\t5992,\n\t\t7467,\n\t\t8129\n\t],\n\t\"./demo/filterComp\": [\n\t\t84995,\n\t\t9,\n\t\t4995\n\t],\n\t\"./demo/filterComp.js\": [\n\t\t84995,\n\t\t9,\n\t\t4995\n\t],\n\t\"./demo/floatinDateComp\": [\n\t\t37604,\n\t\t9,\n\t\t7604\n\t],\n\t\"./demo/floatinDateComp.vue\": [\n\t\t37604,\n\t\t9,\n\t\t7604\n\t],\n\t\"./demo/floatingFilterComp\": [\n\t\t54389,\n\t\t9,\n\t\t4389\n\t],\n\t\"./demo/floatingFilterComp.js\": [\n\t\t54389,\n\t\t9,\n\t\t4389\n\t],\n\t\"./demo/local_fa_agGrid\": [\n\t\t35654,\n\t\t9,\n\t\t5654\n\t],\n\t\"./demo/local_fa_agGrid.js\": [\n\t\t35654,\n\t\t9,\n\t\t5654\n\t],\n\t\"./demo/nestedRowData\": [\n\t\t15243,\n\t\t3,\n\t\t5243\n\t],\n\t\"./demo/nestedRowData.json\": [\n\t\t15243,\n\t\t3,\n\t\t5243\n\t],\n\t\"./demo/totalAndSubTotal\": [\n\t\t35754,\n\t\t9,\n\t\t5754\n\t],\n\t\"./demo/totalAndSubTotal.vue\": [\n\t\t35754,\n\t\t9,\n\t\t5754\n\t],\n\t\"./documents/closing-document\": [\n\t\t26713,\n\t\t9,\n\t\t6713\n\t],\n\t\"./documents/closing-document.vue\": [\n\t\t26713,\n\t\t9,\n\t\t6713\n\t],\n\t\"./documents/closing-document/close-temporary-permanent-accounts\": [\n\t\t52082,\n\t\t9,\n\t\t2082\n\t],\n\t\"./documents/closing-document/close-temporary-permanent-accounts.vue\": [\n\t\t52082,\n\t\t9,\n\t\t2082\n\t],\n\t\"./documents/copy-from-document\": [\n\t\t75886,\n\t\t9,\n\t\t5886\n\t],\n\t\"./documents/copy-from-document.vue\": [\n\t\t75886,\n\t\t9,\n\t\t5886\n\t],\n\t\"./documents/document-merge\": [\n\t\t2432,\n\t\t9,\n\t\t2432\n\t],\n\t\"./documents/document-merge.vue\": [\n\t\t2432,\n\t\t9,\n\t\t2432\n\t],\n\t\"./documents/document-operation-list\": [\n\t\t17629,\n\t\t9,\n\t\t7629\n\t],\n\t\"./documents/document-operation-list.vue\": [\n\t\t17629,\n\t\t9,\n\t\t7629\n\t],\n\t\"./documents/document-preview\": [\n\t\t90108,\n\t\t9,\n\t\t108\n\t],\n\t\"./documents/document-preview.vue\": [\n\t\t90108,\n\t\t9,\n\t\t108\n\t],\n\t\"./documents/document-selector\": [\n\t\t44374,\n\t\t9\n\t],\n\t\"./documents/document-selector.vue\": [\n\t\t44374,\n\t\t9\n\t],\n\t\"./documents/document-single\": [\n\t\t1490,\n\t\t9\n\t],\n\t\"./documents/document-single.vue\": [\n\t\t1490,\n\t\t9\n\t],\n\t\"./documents/document-sorting\": [\n\t\t2906,\n\t\t9,\n\t\t2906\n\t],\n\t\"./documents/document-sorting.vue\": [\n\t\t2906,\n\t\t9,\n\t\t2906\n\t],\n\t\"./fiscal-periods/city-selector\": [\n\t\t75107,\n\t\t9,\n\t\t5107\n\t],\n\t\"./fiscal-periods/city-selector.vue\": [\n\t\t75107,\n\t\t9,\n\t\t5107\n\t],\n\t\"./fiscal-periods/company-modify\": [\n\t\t97576,\n\t\t9,\n\t\t7576,\n\t\t5357\n\t],\n\t\"./fiscal-periods/company-modify-old\": [\n\t\t7504,\n\t\t9,\n\t\t7504\n\t],\n\t\"./fiscal-periods/company-modify-old.vue\": [\n\t\t7504,\n\t\t9,\n\t\t7504\n\t],\n\t\"./fiscal-periods/company-modify.vue\": [\n\t\t97576,\n\t\t9,\n\t\t7576,\n\t\t5357\n\t],\n\t\"./fiscal-periods/company-selector\": [\n\t\t13345,\n\t\t9,\n\t\t3345\n\t],\n\t\"./fiscal-periods/company-selector.vue\": [\n\t\t13345,\n\t\t9,\n\t\t3345\n\t],\n\t\"./fiscal-periods/fiscal-period-list\": [\n\t\t56001,\n\t\t9,\n\t\t7576,\n\t\t3805\n\t],\n\t\"./fiscal-periods/fiscal-period-list.vue\": [\n\t\t56001,\n\t\t9,\n\t\t7576,\n\t\t3805\n\t],\n\t\"./fiscal-periods/fiscal-period-modify\": [\n\t\t14675,\n\t\t9,\n\t\t4675\n\t],\n\t\"./fiscal-periods/fiscal-period-modify.vue\": [\n\t\t14675,\n\t\t9,\n\t\t4675\n\t],\n\t\"./fiscal-periods/fiscal-selector\": [\n\t\t58119,\n\t\t9,\n\t\t8119\n\t],\n\t\"./fiscal-periods/fiscal-selector-old\": [\n\t\t67628,\n\t\t9\n\t],\n\t\"./fiscal-periods/fiscal-selector-old.vue\": [\n\t\t67628,\n\t\t9\n\t],\n\t\"./fiscal-periods/fiscal-selector.vue\": [\n\t\t58119,\n\t\t9,\n\t\t8119\n\t],\n\t\"./fiscal-periods/tax-office-selector\": [\n\t\t57848,\n\t\t9,\n\t\t7848\n\t],\n\t\"./fiscal-periods/tax-office-selector.vue\": [\n\t\t57848,\n\t\t9,\n\t\t7848\n\t],\n\t\"./fiscal-periods/tax-zone-selector\": [\n\t\t64889,\n\t\t9,\n\t\t4889\n\t],\n\t\"./fiscal-periods/tax-zone-selector.vue\": [\n\t\t64889,\n\t\t9,\n\t\t4889\n\t],\n\t\"./floating-centers/category-selector\": [\n\t\t899,\n\t\t9\n\t],\n\t\"./floating-centers/category-selector.vue\": [\n\t\t899,\n\t\t9\n\t],\n\t\"./floating-centers/center-selector\": [\n\t\t31574,\n\t\t9\n\t],\n\t\"./floating-centers/center-selector.vue\": [\n\t\t31574,\n\t\t9\n\t],\n\t\"./floating-centers/details\": [\n\t\t43621,\n\t\t9,\n\t\t3621\n\t],\n\t\"./floating-centers/details.vue\": [\n\t\t43621,\n\t\t9,\n\t\t3621\n\t],\n\t\"./floating-centers/dynamic-list\": [\n\t\t46877,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t2154\n\t],\n\t\"./floating-centers/dynamic-list.vue\": [\n\t\t46877,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t2154\n\t],\n\t\"./floating-centers/dynamic-modify\": [\n\t\t57889,\n\t\t9,\n\t\t7889,\n\t\t1506\n\t],\n\t\"./floating-centers/dynamic-modify.vue\": [\n\t\t57889,\n\t\t9,\n\t\t7889,\n\t\t1506\n\t],\n\t\"./floating-centers/list\": [\n\t\t81561,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t5881\n\t],\n\t\"./floating-centers/list.vue\": [\n\t\t81561,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t5881\n\t],\n\t\"./floating-centers/modify\": [\n\t\t12123,\n\t\t9\n\t],\n\t\"./floating-centers/modify.vue\": [\n\t\t12123,\n\t\t9\n\t],\n\t\"./home/home-page\": [\n\t\t90083,\n\t\t9,\n\t\t83\n\t],\n\t\"./home/home-page.vue\": [\n\t\t90083,\n\t\t9,\n\t\t83\n\t],\n\t\"./install\": [\n\t\t34418,\n\t\t9\n\t],\n\t\"./install/\": [\n\t\t34418,\n\t\t9\n\t],\n\t\"./install/admin-details\": [\n\t\t14728,\n\t\t9\n\t],\n\t\"./install/admin-details.vue\": [\n\t\t14728,\n\t\t9\n\t],\n\t\"./install/codings\": [\n\t\t85996,\n\t\t9\n\t],\n\t\"./install/codings.vue\": [\n\t\t85996,\n\t\t9\n\t],\n\t\"./install/company-fiscal\": [\n\t\t66369,\n\t\t9\n\t],\n\t\"./install/company-fiscal.vue\": [\n\t\t66369,\n\t\t9\n\t],\n\t\"./install/final\": [\n\t\t59368,\n\t\t9,\n\t\t9368\n\t],\n\t\"./install/final.vue\": [\n\t\t59368,\n\t\t9,\n\t\t9368\n\t],\n\t\"./install/index\": [\n\t\t34418,\n\t\t9\n\t],\n\t\"./install/index.vue\": [\n\t\t34418,\n\t\t9\n\t],\n\t\"./install/preparing\": [\n\t\t19733,\n\t\t9\n\t],\n\t\"./install/preparing.vue\": [\n\t\t19733,\n\t\t9\n\t],\n\t\"./install/review\": [\n\t\t75270,\n\t\t9\n\t],\n\t\"./install/review.vue\": [\n\t\t75270,\n\t\t9\n\t],\n\t\"./launch/launcher\": [\n\t\t41579,\n\t\t9\n\t],\n\t\"./launch/launcher.vue\": [\n\t\t41579,\n\t\t9\n\t],\n\t\"./launch/migration\": [\n\t\t85603,\n\t\t9\n\t],\n\t\"./launch/migration.vue\": [\n\t\t85603,\n\t\t9\n\t],\n\t\"./operation-roles/access-control\": [\n\t\t15545,\n\t\t9\n\t],\n\t\"./operation-roles/access-control-tree\": [\n\t\t69370,\n\t\t9\n\t],\n\t\"./operation-roles/access-control-tree.vue\": [\n\t\t69370,\n\t\t9\n\t],\n\t\"./operation-roles/access-control.vue\": [\n\t\t15545,\n\t\t9\n\t],\n\t\"./operation-roles/operation-modify\": [\n\t\t41480,\n\t\t9,\n\t\t1480\n\t],\n\t\"./operation-roles/operation-modify.vue\": [\n\t\t41480,\n\t\t9,\n\t\t1480\n\t],\n\t\"./operation-roles/operation-role-list\": [\n\t\t4921,\n\t\t9,\n\t\t4921\n\t],\n\t\"./operation-roles/operation-role-list.vue\": [\n\t\t4921,\n\t\t9,\n\t\t4921\n\t],\n\t\"./profile/profile\": [\n\t\t72839,\n\t\t9,\n\t\t2839\n\t],\n\t\"./profile/profile.vue\": [\n\t\t72839,\n\t\t9,\n\t\t2839\n\t],\n\t\"./reports/account-cardx\": [\n\t\t20028,\n\t\t9,\n\t\t2326,\n\t\t9005,\n\t\t158,\n\t\t6915\n\t],\n\t\"./reports/account-cardx.vue\": [\n\t\t20028,\n\t\t9,\n\t\t2326,\n\t\t9005,\n\t\t158,\n\t\t6915\n\t],\n\t\"./reports/account-cascade\": [\n\t\t92076,\n\t\t9,\n\t\t2326,\n\t\t2816\n\t],\n\t\"./reports/account-cascade.vue\": [\n\t\t92076,\n\t\t9,\n\t\t2326,\n\t\t2816\n\t],\n\t\"./reports/account-crawling\": [\n\t\t60158,\n\t\t9,\n\t\t2326,\n\t\t9005,\n\t\t158,\n\t\t958\n\t],\n\t\"./reports/account-crawling-matrix\": [\n\t\t79110,\n\t\t9,\n\t\t2326,\n\t\t2882\n\t],\n\t\"./reports/account-crawling-matrix.vue\": [\n\t\t79110,\n\t\t9,\n\t\t2326,\n\t\t2882\n\t],\n\t\"./reports/account-crawling.vue\": [\n\t\t60158,\n\t\t9,\n\t\t2326,\n\t\t9005,\n\t\t158,\n\t\t958\n\t],\n\t\"./reports/components/viewer\": [\n\t\t67544,\n\t\t9,\n\t\t7544\n\t],\n\t\"./reports/components/viewer.vue\": [\n\t\t67544,\n\t\t9,\n\t\t7544\n\t],\n\t\"./reports/crawling-turnover\": [\n\t\t5650,\n\t\t9,\n\t\t5650\n\t],\n\t\"./reports/crawling-turnover.vue\": [\n\t\t5650,\n\t\t9,\n\t\t5650\n\t],\n\t\"./reports/dynamic-report-builder\": [\n\t\t61096,\n\t\t9,\n\t\t1096,\n\t\t1004\n\t],\n\t\"./reports/dynamic-report-builder.vue\": [\n\t\t61096,\n\t\t9,\n\t\t1096,\n\t\t1004\n\t],\n\t\"./reports/dynamic-report-list\": [\n\t\t67714,\n\t\t9,\n\t\t1096,\n\t\t2585\n\t],\n\t\"./reports/dynamic-report-list.vue\": [\n\t\t67714,\n\t\t9,\n\t\t1096,\n\t\t2585\n\t],\n\t\"./reports/dynamic-report-viewer\": [\n\t\t99419,\n\t\t9\n\t],\n\t\"./reports/dynamic-report-viewer.vue\": [\n\t\t99419,\n\t\t9\n\t],\n\t\"./reports/general-journal\": [\n\t\t51159,\n\t\t9,\n\t\t2326,\n\t\t7015\n\t],\n\t\"./reports/general-journal.vue\": [\n\t\t51159,\n\t\t9,\n\t\t2326,\n\t\t7015\n\t],\n\t\"./reports/income-statement\": [\n\t\t33101,\n\t\t9,\n\t\t2326,\n\t\t5162,\n\t\t6637\n\t],\n\t\"./reports/income-statement.vue\": [\n\t\t33101,\n\t\t9,\n\t\t2326,\n\t\t5162,\n\t\t6637\n\t],\n\t\"./reports/ledger\": [\n\t\t90377,\n\t\t9,\n\t\t377\n\t],\n\t\"./reports/ledger.vue\": [\n\t\t90377,\n\t\t9,\n\t\t377\n\t],\n\t\"./reports/product-cardex\": [\n\t\t93432,\n\t\t9,\n\t\t2326,\n\t\t3432,\n\t\t9131\n\t],\n\t\"./reports/product-cardex.vue\": [\n\t\t93432,\n\t\t9,\n\t\t2326,\n\t\t3432,\n\t\t9131\n\t],\n\t\"./reports/product-count-crawling\": [\n\t\t93047,\n\t\t9,\n\t\t2326,\n\t\t6087\n\t],\n\t\"./reports/product-count-crawling.vue\": [\n\t\t93047,\n\t\t9,\n\t\t2326,\n\t\t6087\n\t],\n\t\"./reports/product-order-points\": [\n\t\t43869,\n\t\t9,\n\t\t2326,\n\t\t1069\n\t],\n\t\"./reports/product-order-points.vue\": [\n\t\t43869,\n\t\t9,\n\t\t2326,\n\t\t1069\n\t],\n\t\"./reports/receipt-hawala-factor-trace\": [\n\t\t11528,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7981,\n\t\t7958,\n\t\t5992,\n\t\t8222,\n\t\t3014,\n\t\t8619,\n\t\t9561,\n\t\t8448\n\t],\n\t\"./reports/receipt-hawala-factor-trace.vue\": [\n\t\t11528,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7981,\n\t\t7958,\n\t\t5992,\n\t\t8222,\n\t\t3014,\n\t\t8619,\n\t\t9561,\n\t\t8448\n\t],\n\t\"./reports/report-category-modify\": [\n\t\t47534,\n\t\t9,\n\t\t7534\n\t],\n\t\"./reports/report-category-modify.vue\": [\n\t\t47534,\n\t\t9,\n\t\t7534\n\t],\n\t\"./reports/report-parameters\": [\n\t\t72323,\n\t\t9\n\t],\n\t\"./reports/report-parameters.vue\": [\n\t\t72323,\n\t\t9\n\t],\n\t\"./reports/sale-crawling\": [\n\t\t50489,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7981,\n\t\t7958,\n\t\t5992,\n\t\t8222,\n\t\t3014,\n\t\t8619,\n\t\t9561,\n\t\t168\n\t],\n\t\"./reports/sale-crawling.vue\": [\n\t\t50489,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7981,\n\t\t7958,\n\t\t5992,\n\t\t8222,\n\t\t3014,\n\t\t8619,\n\t\t9561,\n\t\t168\n\t],\n\t\"./reports/statement-of-financial\": [\n\t\t37489,\n\t\t9,\n\t\t2326,\n\t\t5162,\n\t\t3841\n\t],\n\t\"./reports/statement-of-financial.vue\": [\n\t\t37489,\n\t\t9,\n\t\t2326,\n\t\t5162,\n\t\t3841\n\t],\n\t\"./reports/trial-balance\": [\n\t\t61086,\n\t\t9,\n\t\t2326,\n\t\t9005,\n\t\t4221\n\t],\n\t\"./reports/trial-balance.vue\": [\n\t\t61086,\n\t\t9,\n\t\t2326,\n\t\t9005,\n\t\t4221\n\t],\n\t\"./reports/turn-over\": [\n\t\t44161,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t5569\n\t],\n\t\"./reports/turn-over.vue\": [\n\t\t44161,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t5569\n\t],\n\t\"./salary/bank-payment-announcement/bank-payment-announcement-modify\": [\n\t\t50460,\n\t\t9,\n\t\t460,\n\t\t7473\n\t],\n\t\"./salary/bank-payment-announcement/bank-payment-announcement-modify.vue\": [\n\t\t50460,\n\t\t9,\n\t\t460,\n\t\t7473\n\t],\n\t\"./salary/bank-payment-announcement/bank-payment-list\": [\n\t\t98466,\n\t\t9,\n\t\t460,\n\t\t4164\n\t],\n\t\"./salary/bank-payment-announcement/bank-payment-list.vue\": [\n\t\t98466,\n\t\t9,\n\t\t460,\n\t\t4164\n\t],\n\t\"./salary/calculate-salary/contract-logs\": [\n\t\t19017,\n\t\t9,\n\t\t9017\n\t],\n\t\"./salary/calculate-salary/contract-logs.vue\": [\n\t\t19017,\n\t\t9,\n\t\t9017\n\t],\n\t\"./salary/calculate-salary/errors\": [\n\t\t4637,\n\t\t9,\n\t\t4637\n\t],\n\t\"./salary/calculate-salary/errors.vue\": [\n\t\t4637,\n\t\t9,\n\t\t4637\n\t],\n\t\"./salary/insurance/confirm-settings\": [\n\t\t75194,\n\t\t9,\n\t\t5194\n\t],\n\t\"./salary/insurance/confirm-settings.vue\": [\n\t\t75194,\n\t\t9,\n\t\t5194\n\t],\n\t\"./salary/insurance/create-dbf\": [\n\t\t37852,\n\t\t9,\n\t\t2326,\n\t\t5162,\n\t\t1557,\n\t\t7283\n\t],\n\t\"./salary/insurance/create-dbf.vue\": [\n\t\t37852,\n\t\t9,\n\t\t2326,\n\t\t5162,\n\t\t1557,\n\t\t7283\n\t],\n\t\"./salary/insurance/dbf-personnel-viewer\": [\n\t\t80173,\n\t\t9,\n\t\t173\n\t],\n\t\"./salary/insurance/dbf-personnel-viewer.vue\": [\n\t\t80173,\n\t\t9,\n\t\t173\n\t],\n\t\"./salary/insurance/dbf-workshop-viewer\": [\n\t\t48776,\n\t\t9,\n\t\t8776\n\t],\n\t\"./salary/insurance/dbf-workshop-viewer.vue\": [\n\t\t48776,\n\t\t9,\n\t\t8776\n\t],\n\t\"./salary/insurance/import-dbf\": [\n\t\t25112,\n\t\t9,\n\t\t5112\n\t],\n\t\"./salary/insurance/import-dbf.vue\": [\n\t\t25112,\n\t\t9,\n\t\t5112\n\t],\n\t\"./salary/loan/loan-modify\": [\n\t\t68237,\n\t\t9,\n\t\t8237\n\t],\n\t\"./salary/loan/loan-modify.vue\": [\n\t\t68237,\n\t\t9,\n\t\t8237\n\t],\n\t\"./salary/loan/personnel-lends-list\": [\n\t\t14175,\n\t\t9,\n\t\t4175\n\t],\n\t\"./salary/loan/personnel-lends-list.vue\": [\n\t\t14175,\n\t\t9,\n\t\t4175\n\t],\n\t\"./salary/loan/personnel-loan-modify\": [\n\t\t8932,\n\t\t9,\n\t\t8932\n\t],\n\t\"./salary/loan/personnel-loan-modify.vue\": [\n\t\t8932,\n\t\t9,\n\t\t8932\n\t],\n\t\"./salary/payslips/send-payslips\": [\n\t\t46,\n\t\t9,\n\t\t46\n\t],\n\t\"./salary/payslips/send-payslips.vue\": [\n\t\t46,\n\t\t9,\n\t\t46\n\t],\n\t\"./salary/personnel/personnel-category/personnel-category-modify\": [\n\t\t76933,\n\t\t9\n\t],\n\t\"./salary/personnel/personnel-category/personnel-category-modify.vue\": [\n\t\t76933,\n\t\t9\n\t],\n\t\"./salary/personnel/personnel-modify\": [\n\t\t81604,\n\t\t9,\n\t\t4994,\n\t\t8696,\n\t\t9048\n\t],\n\t\"./salary/personnel/personnel-modify.vue\": [\n\t\t81604,\n\t\t9,\n\t\t4994,\n\t\t8696,\n\t\t9048\n\t],\n\t\"./salary/reports/annual-insurance\": [\n\t\t22697,\n\t\t9,\n\t\t2697\n\t],\n\t\"./salary/reports/annual-insurance.vue\": [\n\t\t22697,\n\t\t9,\n\t\t2697\n\t],\n\t\"./salary/reports/annual-salaryItem\": [\n\t\t18041,\n\t\t9,\n\t\t8041\n\t],\n\t\"./salary/reports/annual-salaryItem.vue\": [\n\t\t18041,\n\t\t9,\n\t\t8041\n\t],\n\t\"./salary/reports/annual-tax\": [\n\t\t62298,\n\t\t9,\n\t\t2298\n\t],\n\t\"./salary/reports/annual-tax-attachment\": [\n\t\t40739,\n\t\t9,\n\t\t739\n\t],\n\t\"./salary/reports/annual-tax-attachment.vue\": [\n\t\t40739,\n\t\t9,\n\t\t739\n\t],\n\t\"./salary/reports/annual-tax.vue\": [\n\t\t62298,\n\t\t9,\n\t\t2298\n\t],\n\t\"./salary/reports/checkout-list\": [\n\t\t34308,\n\t\t9,\n\t\t4308\n\t],\n\t\"./salary/reports/checkout-list.vue\": [\n\t\t34308,\n\t\t9,\n\t\t4308\n\t],\n\t\"./salary/reports/present-severance-usedLeave\": [\n\t\t58922,\n\t\t9,\n\t\t8922\n\t],\n\t\"./salary/reports/present-severance-usedLeave.vue\": [\n\t\t58922,\n\t\t9,\n\t\t8922\n\t],\n\t\"./salary/reports/presents-list\": [\n\t\t63635,\n\t\t9,\n\t\t3635\n\t],\n\t\"./salary/reports/presents-list.vue\": [\n\t\t63635,\n\t\t9,\n\t\t3635\n\t],\n\t\"./salary/reports/salary-report-list\": [\n\t\t68793,\n\t\t9,\n\t\t2697,\n\t\t8793,\n\t\t7760\n\t],\n\t\"./salary/reports/salary-report-list.vue\": [\n\t\t68793,\n\t\t9,\n\t\t2697,\n\t\t8793,\n\t\t7760\n\t],\n\t\"./salary/reports/salary-summary\": [\n\t\t2545,\n\t\t9,\n\t\t2545\n\t],\n\t\"./salary/reports/salary-summary.vue\": [\n\t\t2545,\n\t\t9,\n\t\t2545\n\t],\n\t\"./salary/reports/tax-on-salary\": [\n\t\t55512,\n\t\t9,\n\t\t2326,\n\t\t5162,\n\t\t1557,\n\t\t2850\n\t],\n\t\"./salary/reports/tax-on-salary.vue\": [\n\t\t55512,\n\t\t9,\n\t\t2326,\n\t\t5162,\n\t\t1557,\n\t\t2850\n\t],\n\t\"./salary/reports/total-income-report\": [\n\t\t57137,\n\t\t9,\n\t\t7137\n\t],\n\t\"./salary/reports/total-income-report.vue\": [\n\t\t57137,\n\t\t9,\n\t\t7137\n\t],\n\t\"./salary/reports/working-day-and-leaves\": [\n\t\t75012,\n\t\t9,\n\t\t5012\n\t],\n\t\"./salary/reports/working-day-and-leaves.vue\": [\n\t\t75012,\n\t\t9,\n\t\t5012\n\t],\n\t\"./salary/salary-dashboard\": [\n\t\t44959,\n\t\t9,\n\t\t2326,\n\t\t5162,\n\t\t4994,\n\t\t5992,\n\t\t1557,\n\t\t460,\n\t\t8775,\n\t\t2697,\n\t\t8793,\n\t\t8696,\n\t\t1437,\n\t\t7283,\n\t\t7467,\n\t\t5876,\n\t\t8193\n\t],\n\t\"./salary/salary-dashboard.vue\": [\n\t\t44959,\n\t\t9,\n\t\t2326,\n\t\t5162,\n\t\t4994,\n\t\t5992,\n\t\t1557,\n\t\t460,\n\t\t8775,\n\t\t2697,\n\t\t8793,\n\t\t8696,\n\t\t1437,\n\t\t7283,\n\t\t7467,\n\t\t5876,\n\t\t8193\n\t],\n\t\"./salary/salary-document/salary-delete-document\": [\n\t\t99719,\n\t\t9,\n\t\t9719\n\t],\n\t\"./salary/salary-document/salary-delete-document.vue\": [\n\t\t99719,\n\t\t9,\n\t\t9719\n\t],\n\t\"./salary/salary-document/salary-document\": [\n\t\t53206,\n\t\t9,\n\t\t3206\n\t],\n\t\"./salary/salary-document/salary-document.vue\": [\n\t\t53206,\n\t\t9,\n\t\t3206\n\t],\n\t\"./salary/salary-item/modify-bulk-contract-salary-items-value\": [\n\t\t75876,\n\t\t9,\n\t\t5876,\n\t\t8788\n\t],\n\t\"./salary/salary-item/modify-bulk-contract-salary-items-value.vue\": [\n\t\t75876,\n\t\t9,\n\t\t5876,\n\t\t8788\n\t],\n\t\"./salary/salary-item/modify-variable\": [\n\t\t32399,\n\t\t9\n\t],\n\t\"./salary/salary-item/modify-variable.vue\": [\n\t\t32399,\n\t\t9\n\t],\n\t\"./salary/salary-item/salary-item-list\": [\n\t\t15573,\n\t\t9\n\t],\n\t\"./salary/salary-item/salary-item-list.vue\": [\n\t\t15573,\n\t\t9\n\t],\n\t\"./salary/salary-item/salary-item-modify\": [\n\t\t61787,\n\t\t9\n\t],\n\t\"./salary/salary-item/salary-item-modify.vue\": [\n\t\t61787,\n\t\t9\n\t],\n\t\"./salary/salary-item/system-salary-item-list\": [\n\t\t58326,\n\t\t9\n\t],\n\t\"./salary/salary-item/system-salary-item-list.vue\": [\n\t\t58326,\n\t\t9\n\t],\n\t\"./salary/salary-period/copy-period\": [\n\t\t59784,\n\t\t9\n\t],\n\t\"./salary/salary-period/copy-period.vue\": [\n\t\t59784,\n\t\t9\n\t],\n\t\"./salary/salary-period/period-card\": [\n\t\t21765,\n\t\t9\n\t],\n\t\"./salary/salary-period/period-card.vue\": [\n\t\t21765,\n\t\t9\n\t],\n\t\"./salary/salary-period/period-selector\": [\n\t\t36608,\n\t\t9\n\t],\n\t\"./salary/salary-period/period-selector.vue\": [\n\t\t36608,\n\t\t9\n\t],\n\t\"./salary/salary-period/preview-periods\": [\n\t\t94691,\n\t\t9\n\t],\n\t\"./salary/salary-period/preview-periods.vue\": [\n\t\t94691,\n\t\t9\n\t],\n\t\"./salary/salary-period/salary-period-modify\": [\n\t\t15460,\n\t\t9\n\t],\n\t\"./salary/salary-period/salary-period-modify.vue\": [\n\t\t15460,\n\t\t9\n\t],\n\t\"./salary/savings-box/personnel-saving-box-modify\": [\n\t\t57418,\n\t\t9,\n\t\t7418\n\t],\n\t\"./salary/savings-box/personnel-saving-box-modify.vue\": [\n\t\t57418,\n\t\t9,\n\t\t7418\n\t],\n\t\"./salary/savings-box/saving-box-modify\": [\n\t\t65394,\n\t\t9,\n\t\t5394\n\t],\n\t\"./salary/savings-box/saving-box-modify.vue\": [\n\t\t65394,\n\t\t9,\n\t\t5394\n\t],\n\t\"./salary/savings-box/saving-box-transaction-modify\": [\n\t\t54857,\n\t\t9,\n\t\t4857\n\t],\n\t\"./salary/savings-box/saving-box-transaction-modify.vue\": [\n\t\t54857,\n\t\t9,\n\t\t4857\n\t],\n\t\"./salary/settlement/settlement-list\": [\n\t\t44275,\n\t\t9,\n\t\t8775,\n\t\t3499\n\t],\n\t\"./salary/settlement/settlement-list.vue\": [\n\t\t44275,\n\t\t9,\n\t\t8775,\n\t\t3499\n\t],\n\t\"./salary/settlement/settlement-modify\": [\n\t\t38775,\n\t\t9,\n\t\t8775,\n\t\t281\n\t],\n\t\"./salary/settlement/settlement-modify.vue\": [\n\t\t38775,\n\t\t9,\n\t\t8775,\n\t\t281\n\t],\n\t\"./salary/severance-table/severance-table\": [\n\t\t70906,\n\t\t9,\n\t\t906\n\t],\n\t\"./salary/severance-table/severance-table-list\": [\n\t\t60656,\n\t\t9,\n\t\t656\n\t],\n\t\"./salary/severance-table/severance-table-list.vue\": [\n\t\t60656,\n\t\t9,\n\t\t656\n\t],\n\t\"./salary/severance-table/severance-table-modify\": [\n\t\t11832,\n\t\t9,\n\t\t1832\n\t],\n\t\"./salary/severance-table/severance-table-modify.vue\": [\n\t\t11832,\n\t\t9,\n\t\t1832\n\t],\n\t\"./salary/severance-table/severance-table.vue\": [\n\t\t70906,\n\t\t9,\n\t\t906\n\t],\n\t\"./salary/severance-table/system-severance-list\": [\n\t\t60796,\n\t\t9,\n\t\t796\n\t],\n\t\"./salary/severance-table/system-severance-list.vue\": [\n\t\t60796,\n\t\t9,\n\t\t796\n\t],\n\t\"./salary/tax-table/annual-tax-table-modify\": [\n\t\t91345,\n\t\t9,\n\t\t1345\n\t],\n\t\"./salary/tax-table/annual-tax-table-modify.vue\": [\n\t\t91345,\n\t\t9,\n\t\t1345\n\t],\n\t\"./salary/tax-table/system-tax-table-list\": [\n\t\t96253,\n\t\t9,\n\t\t6253\n\t],\n\t\"./salary/tax-table/system-tax-table-list.vue\": [\n\t\t96253,\n\t\t9,\n\t\t6253\n\t],\n\t\"./salary/tax-table/tax-table-list\": [\n\t\t94994,\n\t\t9,\n\t\t4994\n\t],\n\t\"./salary/tax-table/tax-table-list.vue\": [\n\t\t94994,\n\t\t9,\n\t\t4994\n\t],\n\t\"./salary/tax-table/tax-table-modify\": [\n\t\t3823,\n\t\t9,\n\t\t3823\n\t],\n\t\"./salary/tax-table/tax-table-modify.vue\": [\n\t\t3823,\n\t\t9,\n\t\t3823\n\t],\n\t\"./salary/workshop/workshop-list\": [\n\t\t54709,\n\t\t9,\n\t\t4709\n\t],\n\t\"./salary/workshop/workshop-list.vue\": [\n\t\t54709,\n\t\t9,\n\t\t4709\n\t],\n\t\"./salary/workshop/workshop-modify\": [\n\t\t9514,\n\t\t9,\n\t\t4994,\n\t\t9514\n\t],\n\t\"./salary/workshop/workshop-modify.vue\": [\n\t\t9514,\n\t\t9,\n\t\t4994,\n\t\t9514\n\t],\n\t\"./salary/workshop/workshop-selector\": [\n\t\t84290,\n\t\t9\n\t],\n\t\"./salary/workshop/workshop-selector.vue\": [\n\t\t84290,\n\t\t9\n\t],\n\t\"./sale/factors/factor-attachments-factor-list\": [\n\t\t22357,\n\t\t9\n\t],\n\t\"./sale/factors/factor-attachments-factor-list.vue\": [\n\t\t22357,\n\t\t9\n\t],\n\t\"./sale/factors/factor-attachments-factor-modify\": [\n\t\t64982,\n\t\t9,\n\t\t4982\n\t],\n\t\"./sale/factors/factor-attachments-factor-modify.vue\": [\n\t\t64982,\n\t\t9,\n\t\t4982\n\t],\n\t\"./sale/factors/factor-attachments-list\": [\n\t\t34912,\n\t\t9,\n\t\t7981,\n\t\t4912\n\t],\n\t\"./sale/factors/factor-attachments-list.vue\": [\n\t\t34912,\n\t\t9,\n\t\t7981,\n\t\t4912\n\t],\n\t\"./sale/factors/factor-attachments-transaction-list\": [\n\t\t31527,\n\t\t9,\n\t\t1527\n\t],\n\t\"./sale/factors/factor-attachments-transaction-list.vue\": [\n\t\t31527,\n\t\t9,\n\t\t1527\n\t],\n\t\"./sale/factors/factor-attachments-transaction-modify\": [\n\t\t57981,\n\t\t9,\n\t\t7981\n\t],\n\t\"./sale/factors/factor-attachments-transaction-modify.vue\": [\n\t\t57981,\n\t\t9,\n\t\t7981\n\t],\n\t\"./sale/factors/factor-bunch\": [\n\t\t5655,\n\t\t9\n\t],\n\t\"./sale/factors/factor-bunch.vue\": [\n\t\t5655,\n\t\t9\n\t],\n\t\"./sale/factors/factor-detail-operator\": [\n\t\t97849,\n\t\t9,\n\t\t7849\n\t],\n\t\"./sale/factors/factor-detail-operator.vue\": [\n\t\t97849,\n\t\t9,\n\t\t7849\n\t],\n\t\"./sale/factors/factor-detail-product-price\": [\n\t\t88123,\n\t\t9,\n\t\t8123\n\t],\n\t\"./sale/factors/factor-detail-product-price.vue\": [\n\t\t88123,\n\t\t9,\n\t\t8123\n\t],\n\t\"./sale/factors/factor-detail-select\": [\n\t\t78619,\n\t\t9,\n\t\t8619,\n\t\t7020\n\t],\n\t\"./sale/factors/factor-detail-select.vue\": [\n\t\t78619,\n\t\t9,\n\t\t8619,\n\t\t7020\n\t],\n\t\"./sale/factors/factor-detail-serial-buy\": [\n\t\t26018,\n\t\t9,\n\t\t6018\n\t],\n\t\"./sale/factors/factor-detail-serial-buy.vue\": [\n\t\t26018,\n\t\t9,\n\t\t6018\n\t],\n\t\"./sale/factors/factor-detail-warehouse\": [\n\t\t26452,\n\t\t9,\n\t\t6452\n\t],\n\t\"./sale/factors/factor-detail-warehouse.vue\": [\n\t\t26452,\n\t\t9,\n\t\t6452\n\t],\n\t\"./sale/factors/factor-list\": [\n\t\t39561,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7981,\n\t\t7958,\n\t\t5992,\n\t\t8222,\n\t\t3014,\n\t\t8619,\n\t\t9561,\n\t\t8448\n\t],\n\t\"./sale/factors/factor-list.vue\": [\n\t\t39561,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7981,\n\t\t7958,\n\t\t5992,\n\t\t8222,\n\t\t3014,\n\t\t8619,\n\t\t9561,\n\t\t8448\n\t],\n\t\"./sale/factors/factor-modify\": [\n\t\t59027,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7981,\n\t\t7958,\n\t\t5992,\n\t\t8222,\n\t\t3014,\n\t\t8619,\n\t\t9561,\n\t\t8448\n\t],\n\t\"./sale/factors/factor-modify.vue\": [\n\t\t59027,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7981,\n\t\t7958,\n\t\t5992,\n\t\t8222,\n\t\t3014,\n\t\t8619,\n\t\t9561,\n\t\t8448\n\t],\n\t\"./sale/factors/factor-productWarehouse-select\": [\n\t\t47533,\n\t\t9,\n\t\t7533,\n\t\t4758\n\t],\n\t\"./sale/factors/factor-productWarehouse-select.vue\": [\n\t\t47533,\n\t\t9,\n\t\t7533,\n\t\t4758\n\t],\n\t\"./sale/factors/factor-transaction\": [\n\t\t98222,\n\t\t9,\n\t\t7981,\n\t\t8222,\n\t\t2173\n\t],\n\t\"./sale/factors/factor-transaction-quick\": [\n\t\t3014,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t3014,\n\t\t6308\n\t],\n\t\"./sale/factors/factor-transaction-quick.vue\": [\n\t\t3014,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t3014,\n\t\t6308\n\t],\n\t\"./sale/factors/factor-transaction.vue\": [\n\t\t98222,\n\t\t9,\n\t\t7981,\n\t\t8222,\n\t\t2173\n\t],\n\t\"./sale/factors/moadian/date-selector\": [\n\t\t30209,\n\t\t9,\n\t\t209\n\t],\n\t\"./sale/factors/moadian/date-selector.vue\": [\n\t\t30209,\n\t\t9,\n\t\t209\n\t],\n\t\"./sale/factors/moadian/moadian-factor-list\": [\n\t\t92071,\n\t\t9,\n\t\t2071\n\t],\n\t\"./sale/factors/moadian/moadian-factor-list.vue\": [\n\t\t92071,\n\t\t9,\n\t\t2071\n\t],\n\t\"./sale/factors/moadian/preview-large-text\": [\n\t\t82894,\n\t\t9,\n\t\t2894\n\t],\n\t\"./sale/factors/moadian/preview-large-text.vue\": [\n\t\t82894,\n\t\t9,\n\t\t2894\n\t],\n\t\"./sale/factors/moadian/preview-moadian-errors\": [\n\t\t55252,\n\t\t9,\n\t\t5252\n\t],\n\t\"./sale/factors/moadian/preview-moadian-errors.vue\": [\n\t\t55252,\n\t\t9,\n\t\t5252\n\t],\n\t\"./sale/factors/moadian/start-number-modifier\": [\n\t\t89211,\n\t\t9,\n\t\t9211\n\t],\n\t\"./sale/factors/moadian/start-number-modifier.vue\": [\n\t\t89211,\n\t\t9,\n\t\t9211\n\t],\n\t\"./sale/factors/not-withdrew-return-list\": [\n\t\t70933,\n\t\t9,\n\t\t4340,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7958,\n\t\t6927\n\t],\n\t\"./sale/factors/not-withdrew-return-list.vue\": [\n\t\t70933,\n\t\t9,\n\t\t4340,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7958,\n\t\t6927\n\t],\n\t\"./sale/products/buy-order/accept\": [\n\t\t43757,\n\t\t9,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t1298,\n\t\t9627\n\t],\n\t\"./sale/products/buy-order/accept.vue\": [\n\t\t43757,\n\t\t9,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t1298,\n\t\t9627\n\t],\n\t\"./sale/products/buy-order/accepted-list\": [\n\t\t19055,\n\t\t9,\n\t\t1436\n\t],\n\t\"./sale/products/buy-order/accepted-list.vue\": [\n\t\t19055,\n\t\t9,\n\t\t1436\n\t],\n\t\"./sale/products/buy-order/list\": [\n\t\t38653,\n\t\t9,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t1298,\n\t\t5424\n\t],\n\t\"./sale/products/buy-order/list.vue\": [\n\t\t38653,\n\t\t9,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t1298,\n\t\t5424\n\t],\n\t\"./sale/products/buy-order/modify\": [\n\t\t57412,\n\t\t9,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t1298,\n\t\t1657\n\t],\n\t\"./sale/products/buy-order/modify.vue\": [\n\t\t57412,\n\t\t9,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t1298,\n\t\t1657\n\t],\n\t\"./sale/products/convert/product-convert\": [\n\t\t64902,\n\t\t9,\n\t\t4902\n\t],\n\t\"./sale/products/convert/product-convert-formula\": [\n\t\t16086,\n\t\t9,\n\t\t6086\n\t],\n\t\"./sale/products/convert/product-convert-formula-list\": [\n\t\t76823,\n\t\t9,\n\t\t6823\n\t],\n\t\"./sale/products/convert/product-convert-formula-list.vue\": [\n\t\t76823,\n\t\t9,\n\t\t6823\n\t],\n\t\"./sale/products/convert/product-convert-formula.vue\": [\n\t\t16086,\n\t\t9,\n\t\t6086\n\t],\n\t\"./sale/products/convert/product-convert-list\": [\n\t\t45973,\n\t\t9,\n\t\t5973\n\t],\n\t\"./sale/products/convert/product-convert-list.vue\": [\n\t\t45973,\n\t\t9,\n\t\t5973\n\t],\n\t\"./sale/products/convert/product-convert.vue\": [\n\t\t64902,\n\t\t9,\n\t\t4902\n\t],\n\t\"./sale/products/measureunit-list\": [\n\t\t42214,\n\t\t9\n\t],\n\t\"./sale/products/measureunit-list.vue\": [\n\t\t42214,\n\t\t9\n\t],\n\t\"./sale/products/product-classification-list\": [\n\t\t91518,\n\t\t9\n\t],\n\t\"./sale/products/product-classification-list.vue\": [\n\t\t91518,\n\t\t9\n\t],\n\t\"./sale/products/product-classification-modify\": [\n\t\t4806,\n\t\t9\n\t],\n\t\"./sale/products/product-classification-modify.vue\": [\n\t\t4806,\n\t\t9\n\t],\n\t\"./sale/products/product-floating-list\": [\n\t\t77021,\n\t\t9\n\t],\n\t\"./sale/products/product-floating-list.vue\": [\n\t\t77021,\n\t\t9\n\t],\n\t\"./sale/products/product-floating-modify\": [\n\t\t4213,\n\t\t9\n\t],\n\t\"./sale/products/product-floating-modify.vue\": [\n\t\t4213,\n\t\t9\n\t],\n\t\"./sale/products/product-group-list\": [\n\t\t98258,\n\t\t9\n\t],\n\t\"./sale/products/product-group-list.vue\": [\n\t\t98258,\n\t\t9\n\t],\n\t\"./sale/products/product-group-modify\": [\n\t\t70280,\n\t\t9\n\t],\n\t\"./sale/products/product-group-modify.vue\": [\n\t\t70280,\n\t\t9\n\t],\n\t\"./sale/products/product-import-errors\": [\n\t\t24377,\n\t\t9\n\t],\n\t\"./sale/products/product-import-errors.vue\": [\n\t\t24377,\n\t\t9\n\t],\n\t\"./sale/products/product-list\": [\n\t\t28323,\n\t\t9\n\t],\n\t\"./sale/products/product-list-by-floating\": [\n\t\t28590,\n\t\t9,\n\t\t8590,\n\t\t7007\n\t],\n\t\"./sale/products/product-list-by-floating.vue\": [\n\t\t28590,\n\t\t9,\n\t\t8590,\n\t\t7007\n\t],\n\t\"./sale/products/product-list-with-price\": [\n\t\t23355,\n\t\t9,\n\t\t3355\n\t],\n\t\"./sale/products/product-list-with-price.vue\": [\n\t\t23355,\n\t\t9,\n\t\t3355\n\t],\n\t\"./sale/products/product-list.vue\": [\n\t\t28323,\n\t\t9\n\t],\n\t\"./sale/products/product-modify\": [\n\t\t47546,\n\t\t9\n\t],\n\t\"./sale/products/product-modify.vue\": [\n\t\t47546,\n\t\t9\n\t],\n\t\"./sale/products/product-price-announce-list\": [\n\t\t93461,\n\t\t9,\n\t\t484,\n\t\t3192\n\t],\n\t\"./sale/products/product-price-announce-list.vue\": [\n\t\t93461,\n\t\t9,\n\t\t484,\n\t\t3192\n\t],\n\t\"./sale/products/product-price-announce-modify\": [\n\t\t10484,\n\t\t9,\n\t\t484,\n\t\t6644\n\t],\n\t\"./sale/products/product-price-announce-modify.vue\": [\n\t\t10484,\n\t\t9,\n\t\t484,\n\t\t6644\n\t],\n\t\"./sale/products/product-price-group-list\": [\n\t\t77664,\n\t\t9\n\t],\n\t\"./sale/products/product-price-group-list.vue\": [\n\t\t77664,\n\t\t9\n\t],\n\t\"./sale/products/product-price-group-modify\": [\n\t\t61844,\n\t\t9\n\t],\n\t\"./sale/products/product-price-group-modify.vue\": [\n\t\t61844,\n\t\t9\n\t],\n\t\"./sale/products/product-price-level\": [\n\t\t9959,\n\t\t9\n\t],\n\t\"./sale/products/product-price-level.vue\": [\n\t\t9959,\n\t\t9\n\t],\n\t\"./sale/products/request/accept\": [\n\t\t462,\n\t\t9,\n\t\t1428,\n\t\t462,\n\t\t4579\n\t],\n\t\"./sale/products/request/accept.vue\": [\n\t\t462,\n\t\t9,\n\t\t1428,\n\t\t462,\n\t\t4579\n\t],\n\t\"./sale/products/request/list\": [\n\t\t20312,\n\t\t9,\n\t\t1428,\n\t\t462,\n\t\t4352\n\t],\n\t\"./sale/products/request/list.vue\": [\n\t\t20312,\n\t\t9,\n\t\t1428,\n\t\t462,\n\t\t4352\n\t],\n\t\"./sale/products/request/modify\": [\n\t\t59849,\n\t\t9,\n\t\t1428,\n\t\t176\n\t],\n\t\"./sale/products/request/modify.vue\": [\n\t\t59849,\n\t\t9,\n\t\t1428,\n\t\t176\n\t],\n\t\"./sale/products/request/product-center-modify\": [\n\t\t14435,\n\t\t9\n\t],\n\t\"./sale/products/request/product-center-modify.vue\": [\n\t\t14435,\n\t\t9\n\t],\n\t\"./sale/products/request/selector\": [\n\t\t63352,\n\t\t9,\n\t\t3352\n\t],\n\t\"./sale/products/request/selector.vue\": [\n\t\t63352,\n\t\t9,\n\t\t3352\n\t],\n\t\"./sale/products/request/warehouse-list\": [\n\t\t75813,\n\t\t9,\n\t\t1428,\n\t\t974,\n\t\t3849\n\t],\n\t\"./sale/products/request/warehouse-list.vue\": [\n\t\t75813,\n\t\t9,\n\t\t1428,\n\t\t974,\n\t\t3849\n\t],\n\t\"./sale/warehouse/hawala-document-form-list\": [\n\t\t53852,\n\t\t9,\n\t\t3852\n\t],\n\t\"./sale/warehouse/hawala-document-form-list.vue\": [\n\t\t53852,\n\t\t9,\n\t\t3852\n\t],\n\t\"./sale/warehouse/hawala-document-form-modify\": [\n\t\t8086,\n\t\t9,\n\t\t8086\n\t],\n\t\"./sale/warehouse/hawala-document-form-modify.vue\": [\n\t\t8086,\n\t\t9,\n\t\t8086\n\t],\n\t\"./sale/warehouse/not-factored-list\": [\n\t\t95724,\n\t\t9,\n\t\t4340,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7958,\n\t\t9943\n\t],\n\t\"./sale/warehouse/not-factored-list.vue\": [\n\t\t95724,\n\t\t9,\n\t\t4340,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7958,\n\t\t9943\n\t],\n\t\"./sale/warehouse/quick-insert-product\": [\n\t\t36024,\n\t\t9,\n\t\t6024\n\t],\n\t\"./sale/warehouse/quick-insert-product.vue\": [\n\t\t36024,\n\t\t9,\n\t\t6024\n\t],\n\t\"./sale/warehouse/receipt-hawala-list\": [\n\t\t90272,\n\t\t9,\n\t\t4340,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7958,\n\t\t9943\n\t],\n\t\"./sale/warehouse/receipt-hawala-list.vue\": [\n\t\t90272,\n\t\t9,\n\t\t4340,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7958,\n\t\t9943\n\t],\n\t\"./sale/warehouse/receipt-hawala-modify\": [\n\t\t37958,\n\t\t9,\n\t\t4340,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7958,\n\t\t9943\n\t],\n\t\"./sale/warehouse/receipt-hawala-modify.vue\": [\n\t\t37958,\n\t\t9,\n\t\t4340,\n\t\t8590,\n\t\t1428,\n\t\t974,\n\t\t836,\n\t\t7533,\n\t\t7958,\n\t\t9943\n\t],\n\t\"./sale/warehouse/receipt-hawala-select\": [\n\t\t10836,\n\t\t9,\n\t\t836,\n\t\t9015\n\t],\n\t\"./sale/warehouse/receipt-hawala-select.vue\": [\n\t\t10836,\n\t\t9,\n\t\t836,\n\t\t9015\n\t],\n\t\"./sale/warehouse/transfer/warehouse-transfer-accept\": [\n\t\t18701,\n\t\t9,\n\t\t8590,\n\t\t4012,\n\t\t7838\n\t],\n\t\"./sale/warehouse/transfer/warehouse-transfer-accept.vue\": [\n\t\t18701,\n\t\t9,\n\t\t8590,\n\t\t4012,\n\t\t7838\n\t],\n\t\"./sale/warehouse/transfer/warehouse-transfer-list\": [\n\t\t72833,\n\t\t9,\n\t\t8590,\n\t\t4012,\n\t\t4946\n\t],\n\t\"./sale/warehouse/transfer/warehouse-transfer-list.vue\": [\n\t\t72833,\n\t\t9,\n\t\t8590,\n\t\t4012,\n\t\t4946\n\t],\n\t\"./sale/warehouse/transfer/warehouse-transfer-modify\": [\n\t\t68683,\n\t\t9,\n\t\t8590,\n\t\t4012,\n\t\t7156\n\t],\n\t\"./sale/warehouse/transfer/warehouse-transfer-modify.vue\": [\n\t\t68683,\n\t\t9,\n\t\t8590,\n\t\t4012,\n\t\t7156\n\t],\n\t\"./sale/warehouse/warehouse\": [\n\t\t90888,\n\t\t9\n\t],\n\t\"./sale/warehouse/warehouse-modify\": [\n\t\t5640,\n\t\t9\n\t],\n\t\"./sale/warehouse/warehouse-modify.vue\": [\n\t\t5640,\n\t\t9\n\t],\n\t\"./sale/warehouse/warehouse-taking-list\": [\n\t\t68850,\n\t\t9,\n\t\t8850\n\t],\n\t\"./sale/warehouse/warehouse-taking-list.vue\": [\n\t\t68850,\n\t\t9,\n\t\t8850\n\t],\n\t\"./sale/warehouse/warehouse-taking-modify\": [\n\t\t37928,\n\t\t9,\n\t\t8590,\n\t\t6584\n\t],\n\t\"./sale/warehouse/warehouse-taking-modify.vue\": [\n\t\t37928,\n\t\t9,\n\t\t8590,\n\t\t6584\n\t],\n\t\"./sale/warehouse/warehouse.vue\": [\n\t\t90888,\n\t\t9\n\t],\n\t\"./settings/settings-account\": [\n\t\t28197,\n\t\t9,\n\t\t8197\n\t],\n\t\"./settings/settings-account.vue\": [\n\t\t28197,\n\t\t9,\n\t\t8197\n\t],\n\t\"./settings/settings-accounting\": [\n\t\t97977,\n\t\t9,\n\t\t7977\n\t],\n\t\"./settings/settings-accounting.vue\": [\n\t\t97977,\n\t\t9,\n\t\t7977\n\t],\n\t\"./settings/settings-api\": [\n\t\t15598,\n\t\t9,\n\t\t5598\n\t],\n\t\"./settings/settings-api.vue\": [\n\t\t15598,\n\t\t9,\n\t\t5598\n\t],\n\t\"./settings/settings-assets\": [\n\t\t40668,\n\t\t9,\n\t\t668\n\t],\n\t\"./settings/settings-assets.vue\": [\n\t\t40668,\n\t\t9,\n\t\t668\n\t],\n\t\"./settings/settings-document\": [\n\t\t3524,\n\t\t9\n\t],\n\t\"./settings/settings-document.vue\": [\n\t\t3524,\n\t\t9\n\t],\n\t\"./settings/settings-fiscal-periods\": [\n\t\t64760,\n\t\t9,\n\t\t4760\n\t],\n\t\"./settings/settings-fiscal-periods.vue\": [\n\t\t64760,\n\t\t9,\n\t\t4760\n\t],\n\t\"./settings/settings-floating-centers\": [\n\t\t88447,\n\t\t9,\n\t\t8447\n\t],\n\t\"./settings/settings-floating-centers.vue\": [\n\t\t88447,\n\t\t9,\n\t\t8447\n\t],\n\t\"./settings/settings-general\": [\n\t\t35867,\n\t\t9,\n\t\t5867\n\t],\n\t\"./settings/settings-general.vue\": [\n\t\t35867,\n\t\t9,\n\t\t5867\n\t],\n\t\"./settings/settings-moadian\": [\n\t\t76386,\n\t\t9,\n\t\t6386\n\t],\n\t\"./settings/settings-moadian.vue\": [\n\t\t76386,\n\t\t9,\n\t\t6386\n\t],\n\t\"./settings/settings-salary\": [\n\t\t51437,\n\t\t9,\n\t\t1437\n\t],\n\t\"./settings/settings-salary.vue\": [\n\t\t51437,\n\t\t9,\n\t\t1437\n\t],\n\t\"./settings/settings-sale\": [\n\t\t39044,\n\t\t9\n\t],\n\t\"./settings/settings-sale.vue\": [\n\t\t39044,\n\t\t9\n\t],\n\t\"./settings/settings-treasury\": [\n\t\t49855,\n\t\t9,\n\t\t9855\n\t],\n\t\"./settings/settings-treasury.vue\": [\n\t\t49855,\n\t\t9,\n\t\t9855\n\t],\n\t\"./shared/_layout-app\": [\n\t\t47469,\n\t\t9\n\t],\n\t\"./shared/_layout-app.vue\": [\n\t\t47469,\n\t\t9\n\t],\n\t\"./shared/_layout-login\": [\n\t\t77349,\n\t\t9\n\t],\n\t\"./shared/_layout-login.vue\": [\n\t\t77349,\n\t\t9\n\t],\n\t\"./shared/notifications\": [\n\t\t43644,\n\t\t9\n\t],\n\t\"./shared/notifications.vue\": [\n\t\t43644,\n\t\t9\n\t],\n\t\"./shared/showDescriptionComp\": [\n\t\t66934,\n\t\t9\n\t],\n\t\"./shared/showDescriptionComp.vue\": [\n\t\t66934,\n\t\t9\n\t],\n\t\"./treasury/bank-selector\": [\n\t\t90611,\n\t\t9\n\t],\n\t\"./treasury/bank-selector.vue\": [\n\t\t90611,\n\t\t9\n\t],\n\t\"./treasury/cash-list\": [\n\t\t44210,\n\t\t9,\n\t\t4210\n\t],\n\t\"./treasury/cash-list.vue\": [\n\t\t44210,\n\t\t9,\n\t\t4210\n\t],\n\t\"./treasury/cheque-list\": [\n\t\t1291,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t6583\n\t],\n\t\"./treasury/cheque-list.vue\": [\n\t\t1291,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t6583\n\t],\n\t\"./treasury/cheque-modify\": [\n\t\t245,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t6583\n\t],\n\t\"./treasury/cheque-modify.vue\": [\n\t\t245,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t6583\n\t],\n\t\"./treasury/cheque-operation-list\": [\n\t\t62603,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t8125\n\t],\n\t\"./treasury/cheque-operation-list.vue\": [\n\t\t62603,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t8125\n\t],\n\t\"./treasury/cheque-operation-modify-batch\": [\n\t\t28515,\n\t\t9,\n\t\t8515\n\t],\n\t\"./treasury/cheque-operation-modify-batch.vue\": [\n\t\t28515,\n\t\t9,\n\t\t8515\n\t],\n\t\"./treasury/cheque-sell\": [\n\t\t67023,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t1745\n\t],\n\t\"./treasury/cheque-sell.vue\": [\n\t\t67023,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t1745\n\t],\n\t\"./treasury/cheque-trace\": [\n\t\t12238,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t6583\n\t],\n\t\"./treasury/cheque-trace.vue\": [\n\t\t12238,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t6583\n\t],\n\t\"./treasury/draft-list\": [\n\t\t86323,\n\t\t9,\n\t\t6323\n\t],\n\t\"./treasury/draft-list.vue\": [\n\t\t86323,\n\t\t9,\n\t\t6323\n\t],\n\t\"./treasury/payment\": [\n\t\t52840,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t9937,\n\t\t9612,\n\t\t1567\n\t],\n\t\"./treasury/payment-cheque-modify\": [\n\t\t59612,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t9612,\n\t\t2964\n\t],\n\t\"./treasury/payment-cheque-modify.vue\": [\n\t\t59612,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t9612,\n\t\t2964\n\t],\n\t\"./treasury/payment-cheque-sell-modify\": [\n\t\t74880,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t5122\n\t],\n\t\"./treasury/payment-cheque-sell-modify.vue\": [\n\t\t74880,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t5122\n\t],\n\t\"./treasury/payment-hybrid\": [\n\t\t49463,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t9463,\n\t\t6510\n\t],\n\t\"./treasury/payment-hybrid-list\": [\n\t\t47775,\n\t\t9,\n\t\t7775\n\t],\n\t\"./treasury/payment-hybrid-list.vue\": [\n\t\t47775,\n\t\t9,\n\t\t7775\n\t],\n\t\"./treasury/payment-hybrid.vue\": [\n\t\t49463,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t9463,\n\t\t6510\n\t],\n\t\"./treasury/payment.vue\": [\n\t\t52840,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t9937,\n\t\t9612,\n\t\t1567\n\t],\n\t\"./treasury/payments\": [\n\t\t9937,\n\t\t9,\n\t\t4340,\n\t\t9937,\n\t\t8228\n\t],\n\t\"./treasury/payments-list\": [\n\t\t34673,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t9937,\n\t\t9612,\n\t\t9463,\n\t\t9161\n\t],\n\t\"./treasury/payments-list.vue\": [\n\t\t34673,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t9937,\n\t\t9612,\n\t\t9463,\n\t\t9161\n\t],\n\t\"./treasury/payments.vue\": [\n\t\t9937,\n\t\t9,\n\t\t4340,\n\t\t9937,\n\t\t8228\n\t],\n\t\"./treasury/receive\": [\n\t\t52973,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8995,\n\t\t393,\n\t\t2133\n\t],\n\t\"./treasury/receive-cheque-list\": [\n\t\t30839,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t7993\n\t],\n\t\"./treasury/receive-cheque-list.vue\": [\n\t\t30839,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t245,\n\t\t7993\n\t],\n\t\"./treasury/receive-cheque-modify\": [\n\t\t88995,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8995,\n\t\t4400\n\t],\n\t\"./treasury/receive-cheque-modify.vue\": [\n\t\t88995,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8995,\n\t\t4400\n\t],\n\t\"./treasury/receive-hybrid\": [\n\t\t23798,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t3798,\n\t\t8316\n\t],\n\t\"./treasury/receive-hybrid.vue\": [\n\t\t23798,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t3798,\n\t\t8316\n\t],\n\t\"./treasury/receive.vue\": [\n\t\t52973,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8995,\n\t\t393,\n\t\t2133\n\t],\n\t\"./treasury/receives\": [\n\t\t70393,\n\t\t9,\n\t\t4340,\n\t\t393,\n\t\t1513\n\t],\n\t\"./treasury/receives-list\": [\n\t\t26675,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8995,\n\t\t393,\n\t\t3798,\n\t\t7532\n\t],\n\t\"./treasury/receives-list.vue\": [\n\t\t26675,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t8995,\n\t\t393,\n\t\t3798,\n\t\t7532\n\t],\n\t\"./treasury/receives.vue\": [\n\t\t70393,\n\t\t9,\n\t\t4340,\n\t\t393,\n\t\t1513\n\t],\n\t\"./treasury/transfer\": [\n\t\t86086,\n\t\t9,\n\t\t1835\n\t],\n\t\"./treasury/transfer-list\": [\n\t\t78408,\n\t\t9,\n\t\t1835\n\t],\n\t\"./treasury/transfer-list.vue\": [\n\t\t78408,\n\t\t9,\n\t\t1835\n\t],\n\t\"./treasury/transfer.vue\": [\n\t\t86086,\n\t\t9,\n\t\t1835\n\t],\n\t\"./treasury/treasuryPreview\": [\n\t\t92774,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t9937,\n\t\t8995,\n\t\t393,\n\t\t9612,\n\t\t2690\n\t],\n\t\"./treasury/treasuryPreview.vue\": [\n\t\t92774,\n\t\t9,\n\t\t2326,\n\t\t4161,\n\t\t7889,\n\t\t6877,\n\t\t8515,\n\t\t4340,\n\t\t245,\n\t\t9937,\n\t\t8995,\n\t\t393,\n\t\t9612,\n\t\t2690\n\t],\n\t\"./useraccount/login\": [\n\t\t22716,\n\t\t9\n\t],\n\t\"./useraccount/login.vue\": [\n\t\t22716,\n\t\t9\n\t],\n\t\"./useraccount/password-recovery\": [\n\t\t51034,\n\t\t9\n\t],\n\t\"./useraccount/password-recovery.vue\": [\n\t\t51034,\n\t\t9\n\t],\n\t\"./useraccount/user-list\": [\n\t\t71483,\n\t\t9,\n\t\t1483\n\t],\n\t\"./useraccount/user-list.vue\": [\n\t\t71483,\n\t\t9,\n\t\t1483\n\t],\n\t\"./useraccount/user-modify\": [\n\t\t56362,\n\t\t9\n\t],\n\t\"./useraccount/user-modify.vue\": [\n\t\t56362,\n\t\t9\n\t],\n\t\"./version/details\": [\n\t\t8777,\n\t\t9,\n\t\t8777\n\t],\n\t\"./version/details.vue\": [\n\t\t8777,\n\t\t9,\n\t\t8777\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__.t(id, ids[1] | 16)\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 99555;\nmodule.exports = webpackAsyncContext;","import { Guid, IBaseModel, Code } from '~/interfaces/base'\r\nimport emptyId from '~/statics/empty-id'\r\n\r\nexport class WorkPlaceStatus implements IBaseModel {\r\n id: Guid\r\n code: Code\r\n name: string\r\n taxFreePercent: number\r\n finanaceCode: string\r\n\r\n constructor() {\r\n this.id = emptyId\r\n this.code = ''\r\n this.name = ''\r\n this.taxFreePercent = 0\r\n this.finanaceCode = ''\r\n }\r\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"46\":\"ec1e336d\",\"75\":\"2739c406\",\"83\":\"4eca9e72\",\"108\":\"18defaf5\",\"158\":\"605fb4fe\",\"168\":\"89cf61d2\",\"173\":\"dd44e34b\",\"176\":\"7b7544fb\",\"209\":\"d7c5029a\",\"245\":\"2befcf23\",\"279\":\"596d4828\",\"281\":\"5e74ece9\",\"354\":\"d4cfe676\",\"377\":\"dfe1944d\",\"393\":\"454e6293\",\"460\":\"68e83ab1\",\"462\":\"773564fc\",\"484\":\"26e19e1a\",\"656\":\"827e1406\",\"668\":\"73e0628d\",\"739\":\"4a1dc6f6\",\"796\":\"edc4f597\",\"836\":\"8ceedb86\",\"906\":\"a99b5613\",\"974\":\"7410f3fc\",\"1069\":\"2ed8d822\",\"1096\":\"f176ed54\",\"1132\":\"07671b6a\",\"1298\":\"6addc5da\",\"1345\":\"e05a706f\",\"1428\":\"91551363\",\"1436\":\"706d3144\",\"1437\":\"27253c4a\",\"1480\":\"04a37107\",\"1483\":\"5bb489d7\",\"1513\":\"36b241ca\",\"1527\":\"cc82cb23\",\"1557\":\"3c3a14eb\",\"1567\":\"c58c09e8\",\"1657\":\"8742e349\",\"1745\":\"7f2a57be\",\"1764\":\"5820cb12\",\"1832\":\"72d55d22\",\"1835\":\"2744981a\",\"1986\":\"f342cdd4\",\"2071\":\"23cfc23d\",\"2082\":\"02e5d717\",\"2133\":\"57362e5c\",\"2200\":\"98284757\",\"2298\":\"8f4ac4e6\",\"2326\":\"204a7bc4\",\"2432\":\"c9bbd859\",\"2545\":\"83eba90b\",\"2585\":\"8727d14d\",\"2690\":\"27f6c3a8\",\"2697\":\"cb8c5ce1\",\"2816\":\"f29e1626\",\"2838\":\"a602a00d\",\"2839\":\"59f056c9\",\"2882\":\"d152d3a9\",\"2888\":\"052fef38\",\"2894\":\"c78e3f13\",\"2906\":\"7b33ad47\",\"3014\":\"e14811f9\",\"3122\":\"5546d51a\",\"3192\":\"d74f343d\",\"3206\":\"4398566a\",\"3345\":\"48368e4b\",\"3352\":\"59da5880\",\"3355\":\"fd1db758\",\"3385\":\"371fadbd\",\"3432\":\"4d04357d\",\"3436\":\"dcbc383a\",\"3499\":\"e63a9290\",\"3621\":\"01891d4a\",\"3635\":\"95f283f0\",\"3798\":\"86f30212\",\"3805\":\"914ccd57\",\"3823\":\"0cf66f21\",\"3841\":\"ce42b3ea\",\"3849\":\"2ffc5866\",\"3852\":\"1317504d\",\"4012\":\"72663c36\",\"4161\":\"448eafbf\",\"4164\":\"b31b80dd\",\"4175\":\"ba420262\",\"4210\":\"bebbfd52\",\"4221\":\"ff527760\",\"4308\":\"2e25d6a9\",\"4340\":\"3e5c758f\",\"4352\":\"aab128e7\",\"4389\":\"baeea1f1\",\"4489\":\"538e7081\",\"4637\":\"09a68b4f\",\"4675\":\"dcfb904c\",\"4709\":\"d84ddae9\",\"4758\":\"d9f9128c\",\"4760\":\"5514f0ce\",\"4845\":\"0249b4ca\",\"4857\":\"6f70c497\",\"4889\":\"2915eafd\",\"4902\":\"06d14629\",\"4912\":\"1f79653b\",\"4921\":\"7003b95e\",\"4946\":\"22395ae0\",\"4978\":\"c9a16ddd\",\"4982\":\"2d0eb1cf\",\"4994\":\"6d2e3366\",\"4995\":\"27870f89\",\"5009\":\"227b0db7\",\"5012\":\"696cbe28\",\"5107\":\"4e498943\",\"5112\":\"d7a3f39c\",\"5122\":\"0b0e77cf\",\"5162\":\"829352a4\",\"5194\":\"e031af5b\",\"5243\":\"dfc08574\",\"5252\":\"5b689f01\",\"5394\":\"f45b81d5\",\"5424\":\"069cdc7e\",\"5598\":\"e9026c8d\",\"5650\":\"f5daabc7\",\"5654\":\"68b1fcc6\",\"5754\":\"4cf59185\",\"5867\":\"34a9f776\",\"5876\":\"ee382743\",\"5881\":\"a28a11b1\",\"5886\":\"897e2ac4\",\"5973\":\"80efc001\",\"5992\":\"583f84cf\",\"6018\":\"c70d8566\",\"6024\":\"10dd45cb\",\"6086\":\"4d185dc0\",\"6087\":\"7760f51e\",\"6253\":\"25b39c8e\",\"6312\":\"725aaabb\",\"6323\":\"2c4e33b6\",\"6386\":\"9fd8f5f2\",\"6452\":\"47045bbe\",\"6584\":\"b9370227\",\"6637\":\"4cfb1f5d\",\"6713\":\"d3214b2a\",\"6823\":\"8acfa761\",\"6877\":\"2d7f6215\",\"6915\":\"fe98da6a\",\"6927\":\"69f7ea14\",\"7015\":\"a5bf1c92\",\"7020\":\"6bc22dcb\",\"7137\":\"3868948f\",\"7156\":\"78ac512e\",\"7269\":\"5ab2fff6\",\"7283\":\"3f427f5b\",\"7418\":\"72344fdd\",\"7467\":\"c27339ef\",\"7473\":\"deece24c\",\"7504\":\"a82d5bd5\",\"7532\":\"b99c8c36\",\"7533\":\"1698773b\",\"7534\":\"6d97d4bd\",\"7544\":\"57e57d5a\",\"7549\":\"06594310\",\"7576\":\"634c4af0\",\"7604\":\"f3b4e4b0\",\"7629\":\"49ec3b1a\",\"7775\":\"5db0df2f\",\"7838\":\"604f58dd\",\"7848\":\"f5f20e57\",\"7849\":\"736ad466\",\"7889\":\"9d5973ea\",\"7958\":\"e59f4a86\",\"7977\":\"3213cfa3\",\"7981\":\"9d96de11\",\"7993\":\"ccd75828\",\"8041\":\"650b1218\",\"8086\":\"7751bbb9\",\"8119\":\"d5ec7cea\",\"8123\":\"26383fa3\",\"8125\":\"b702f98c\",\"8129\":\"d77d2cc2\",\"8193\":\"91750a62\",\"8197\":\"a30f517c\",\"8222\":\"af470850\",\"8228\":\"2ea92845\",\"8237\":\"78cfca01\",\"8447\":\"8d3b06db\",\"8515\":\"9c14e2b4\",\"8590\":\"dbf1b165\",\"8619\":\"7095cff5\",\"8696\":\"f6544302\",\"8775\":\"f7b024ba\",\"8776\":\"d1c4f714\",\"8777\":\"180ac12c\",\"8788\":\"995fa11b\",\"8793\":\"11b156d3\",\"8850\":\"6985e076\",\"8862\":\"abeeb875\",\"8922\":\"26c5a570\",\"8932\":\"fe4eb15c\",\"8995\":\"91063afc\",\"9005\":\"0acc4385\",\"9015\":\"51d7d56b\",\"9017\":\"ad1ed0df\",\"9048\":\"bdfa742f\",\"9125\":\"7536bc56\",\"9161\":\"aa1e1ddd\",\"9211\":\"f8cfcdd3\",\"9368\":\"e637e44b\",\"9463\":\"2c8087a4\",\"9514\":\"a8a58487\",\"9561\":\"9ea1a571\",\"9612\":\"e523d170\",\"9627\":\"bb007bae\",\"9719\":\"a6743021\",\"9855\":\"3298aa13\",\"9937\":\"1608a1ab\",\"9943\":\"6a29648d\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"46\":\"df465941\",\"83\":\"b41e0880\",\"108\":\"968b046d\",\"168\":\"44ba11de\",\"176\":\"ac8121d8\",\"281\":\"19f184b9\",\"668\":\"df465941\",\"677\":\"6fc791f6\",\"958\":\"436b3ad9\",\"1004\":\"d3495ab0\",\"1069\":\"8f43c7dc\",\"1436\":\"28313954\",\"1480\":\"42c979c5\",\"1506\":\"72a879d3\",\"1513\":\"071a6d3f\",\"1567\":\"fff99688\",\"1657\":\"e36ee3a0\",\"1745\":\"c61878bf\",\"1764\":\"0c777aa7\",\"1835\":\"968b046d\",\"2071\":\"0a124650\",\"2133\":\"9fbbcf3e\",\"2154\":\"397f2f95\",\"2173\":\"9e15c4ee\",\"2432\":\"31556eed\",\"2545\":\"46142073\",\"2585\":\"d3495ab0\",\"2690\":\"481aee7d\",\"2816\":\"c92be429\",\"2839\":\"741fcb0d\",\"2850\":\"8c29b3de\",\"2882\":\"1b9aef4f\",\"2894\":\"ad50d6d3\",\"2964\":\"cb5f9231\",\"2971\":\"61a07d68\",\"3192\":\"6fa2a0ea\",\"3206\":\"c3cc48b1\",\"3352\":\"8114a1c2\",\"3385\":\"741fcb0d\",\"3436\":\"f9969f89\",\"3499\":\"19f184b9\",\"3621\":\"e6da2dc4\",\"3623\":\"0c296652\",\"3805\":\"857baba8\",\"3841\":\"6eb6067e\",\"3849\":\"8b1f9509\",\"4164\":\"91266d2a\",\"4221\":\"57827dd3\",\"4352\":\"958c316b\",\"4400\":\"ae297162\",\"4535\":\"96455430\",\"4579\":\"b40849ec\",\"4637\":\"8756c121\",\"4675\":\"2c64da83\",\"4758\":\"c8d5e3b6\",\"4912\":\"57f62ad7\",\"4921\":\"42c979c5\",\"4946\":\"5446d668\",\"4978\":\"2407d698\",\"5112\":\"2a099fb7\",\"5122\":\"89827cca\",\"5194\":\"5a880e1f\",\"5252\":\"40d52a86\",\"5357\":\"45cb1bb0\",\"5424\":\"ad96ba85\",\"5569\":\"808c671e\",\"5598\":\"df465941\",\"5650\":\"968b046d\",\"5881\":\"8c60041e\",\"5886\":\"9a5c0062\",\"6087\":\"91372c6d\",\"6308\":\"2b76fabb\",\"6312\":\"dcfa74e7\",\"6386\":\"448fe406\",\"6510\":\"44151214\",\"6583\":\"78783759\",\"6584\":\"d68c1a96\",\"6637\":\"af858f2f\",\"6644\":\"6fa2a0ea\",\"6713\":\"7dfd2839\",\"6915\":\"72016f5a\",\"6927\":\"9fc2bdd2\",\"7007\":\"d33783b2\",\"7015\":\"808c671e\",\"7020\":\"4d162ae3\",\"7156\":\"dbf6b417\",\"7283\":\"acdf5f05\",\"7473\":\"91266d2a\",\"7504\":\"ee25fb91\",\"7532\":\"96566ced\",\"7544\":\"a8cda2b7\",\"7629\":\"ead05249\",\"7760\":\"46142073\",\"7838\":\"4936978f\",\"7993\":\"87c723d2\",\"8086\":\"968b046d\",\"8125\":\"ccb392cf\",\"8129\":\"8e295772\",\"8193\":\"e792e5d1\",\"8228\":\"071a6d3f\",\"8316\":\"44151214\",\"8448\":\"546d9270\",\"8777\":\"6970ea20\",\"8788\":\"13cfc5f7\",\"8902\":\"fac9287c\",\"9015\":\"46472f82\",\"9017\":\"13cfc5f7\",\"9048\":\"acb9282b\",\"9131\":\"039e94d5\",\"9161\":\"506a6e83\",\"9627\":\"73b34c51\",\"9719\":\"df465941\",\"9943\":\"f73ad7e2\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"nikanweb-ui:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t3524: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"46\":1,\"83\":1,\"108\":1,\"168\":1,\"176\":1,\"281\":1,\"668\":1,\"677\":1,\"958\":1,\"1004\":1,\"1069\":1,\"1436\":1,\"1480\":1,\"1506\":1,\"1513\":1,\"1567\":1,\"1657\":1,\"1745\":1,\"1764\":1,\"1835\":1,\"2071\":1,\"2133\":1,\"2154\":1,\"2173\":1,\"2432\":1,\"2545\":1,\"2585\":1,\"2690\":1,\"2816\":1,\"2839\":1,\"2850\":1,\"2882\":1,\"2894\":1,\"2964\":1,\"2971\":1,\"3192\":1,\"3206\":1,\"3352\":1,\"3385\":1,\"3436\":1,\"3499\":1,\"3621\":1,\"3623\":1,\"3805\":1,\"3841\":1,\"3849\":1,\"4164\":1,\"4221\":1,\"4352\":1,\"4400\":1,\"4535\":1,\"4579\":1,\"4637\":1,\"4675\":1,\"4758\":1,\"4912\":1,\"4921\":1,\"4946\":1,\"4978\":1,\"5112\":1,\"5122\":1,\"5194\":1,\"5252\":1,\"5357\":1,\"5424\":1,\"5569\":1,\"5598\":1,\"5650\":1,\"5881\":1,\"5886\":1,\"6087\":1,\"6308\":1,\"6312\":1,\"6386\":1,\"6510\":1,\"6583\":1,\"6584\":1,\"6637\":1,\"6644\":1,\"6713\":1,\"6915\":1,\"6927\":1,\"7007\":1,\"7015\":1,\"7020\":1,\"7156\":1,\"7283\":1,\"7473\":1,\"7504\":1,\"7532\":1,\"7544\":1,\"7629\":1,\"7760\":1,\"7838\":1,\"7993\":1,\"8086\":1,\"8125\":1,\"8129\":1,\"8193\":1,\"8228\":1,\"8316\":1,\"8448\":1,\"8777\":1,\"8788\":1,\"8902\":1,\"9015\":1,\"9017\":1,\"9048\":1,\"9131\":1,\"9161\":1,\"9627\":1,\"9719\":1,\"9943\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3524: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(2(154|173|850|964|971)|4(400|535|579)|6(308|510|583|644|77)|8(316|448|902)|1004|1506|3623|5357|5569|7007|7760|9131|958)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknikanweb_ui\"] = self[\"webpackChunknikanweb_ui\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], () => (__webpack_require__(5721)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["class","_createBlock","_component_nk_page","commercialAccess","policyClaims","badges","_withCtx","_createVNode","_component_nk_badge","system","_createElementVNode","_hoisted_1","_hoisted_2","_component_nk_table","modelValue","$data","selectedRow","_cache","$event","onDataChanged","$options","dataChanged","data","categories","options","tableOptions","ref","tabindex","startup","onRow_dbClicked","rowDbClicked","_","modal","size","stateUID","props","type","Array","Object","_this","settings","title","localSelectedItem","activeRowDisabled","editable","this","$nikan","checkPermission","searchable","allowNewRow","alwaysEmit","buttons","addBtn","visible","deleteBtn","displayOrderEnabled","prepareNewRow","generateEmptyRow","defaultSortByCols","name","columns","$t","sortable","width","entering","pinned","pinnable","resizable","edit","component","Input","mode","validators","VRequired","view","useDefaultValue","pageButtons","saveButton","shortcut","$sc","find","icon","disabled","isPrimary","handle","button","page","e","save","then","res","formUtility","switchMode","$refs","catsList","table_Focused","defer","$el","focus","selectButton","selectable","$toast","resolve","computed","_objectSpread","mapGetters","category_all","category_type","_this2","cats","cloned","watch","immediate","deep","handler","val","created","mounted","buttonsArray","prepareWindow","methods","mapActions","category_modify","isTableChanged","datas","findIndex","rowState","code","companyId","emptyId","allowedOpenFactorsCount","allowedDailyFactorsCount","pendingChequesCount","pendingChequesAmount","bouncedChequesCount","bouncedChequesAmount","allowedFactorCheckoutDays","_this3","that","Promise","reject","commitChanges","errorRows","$","rowNumbers","map","x","i","rowNumber","join","dialog","body","message","Error","grandParentType","__exports__","render","id","style","key","concat","docGroup","GROUP_OPENING","additionalInfoObj","footerPageButtons","_component_nk_badge_item","_ctx","retreiveIsEmpty","_hoisted_3","_hoisted_4","_toDisplayString","docHeaderInfo","_hoisted_5","source","_hoisted_6","status","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_component_nk_col_form_group","label","labelSizes","sm","dataSizes","_component_nk_input","document","onSearchClick","allDocuments","onBlur","docCodeBlur","docCode","FORM_MODES","READONLY","includes","_hoisted_12","_component_nk_label","attachNumber","readonly","value","_createTextVNode","_hoisted_13","_component_nk_date","date","onDefaultValue","emitedDefaultDate","_hoisted_14","_hoisted_15","codeInSybsystem","_hoisted_16","codeInDay","_hoisted_17","codeInReports","_hoisted_18","_hoisted_19","_component_nk_descriptions_input","description","entityType","entityId","findSystemForm","entityTitle","_hoisted_20","_hoisted_21","_component_nk_info","text","_createCommentVNode","selectedAccountInfo","_createElementBlock","_hoisted_22","_hoisted_23","_Fragment","_renderList","parents","p","index","href","onClick","showTurnOver","level","length","_hoisted_25","accountingCode","toLocaleDigits","_hoisted_26","_hoisted_24","accountBalance","nature","accountNature","_hoisted_27","_component_NkGrid","selectDetailRow","details","gridOptions","tabIndex","actions","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","monify","documentAggregation","debit","_hoisted_34","_hoisted_35","_hoisted_36","credit","_hoisted_37","_hoisted_38","_normalizeClass","Math","abs","TYPE_SAVED","components","NkGrid","onCodeEnterPressed","min_centers_cols","tableToggler","originalDocument","isNew","enteringRow","hideFooterButtons","extendedColumnsEnabled","required","remoteSearch","placeholder","display","item","searchableFields","pickerEnabled","defaultValue","pickerCss","duplicateBtn","upBtn","downBtn","row","col","api","editingCell","getEditingCells","stopEditing","prevRow","colDef","field","applyTransaction","update","startEditingCell","rowIndex","colKey","column","getId","sumOtherRowsDebit","filter","tableFields","o","_o$currencyValues$","toFloat","currencyValues","sumOtherRowsCredit","_o$currencyValues$2","gridId","rowIsLocked","isReadOnly","createdByType","suppressHeaderMenuButton","suppressHeaderContextMenu","defaultColDef","floatingFilter","isEditable","onCopyRow","headerName","valueSetter","params","_params$newValue","_params$oldValue","newValue","oldValue","f","account","indexOf","VRequiredIfValue","maxCenterLevel","cellEditorParams","rowIdentifier","baseAccountId","node","centerLevel","selectorWidth","locateSelectorBasedOnDocument","showSelectedBalance","center1","_params$data","_params$data2","_params$data3","_params$data4","includePublic","cellRendererParams","targetValuePropertyName","isNameVisible","isEqual","reduce","debitCurrency","creditCurrency","VCustom","validateCurrencyValues","validateErrorGenerator","comparator","valueA","valueB","nodeA","nodeB","aggregateFunction","values","creditSum","SumBy","Number","debitSum","String","_params$data5","_params$data6","_params$data7","_params$data8","currencyCols","_row$currencyValues$","acceptsCurrency","currency","leaving","currencyRate","allZero","selectedAccount","allDocTypes","buttons_prev","loadIfPossible","direction","beginOfGroup","buttons_next","buttons_access_management","showModal","defineAsyncComponent","prefix","accessData","objectDescription","button_snapshot","fillData","fillDocument","snapshotInstance","button_change_log","getChangeLog","settings_button","trySaveDocument","clearForm","err","or","selfButton","items","deleteButton","showDeleteDialog","addButton","clearBoard","printButton","navMenuKey","form","getDataSources","print_dataSources","isDataChanged","copyButton","copy","attachmentButton","attachments","noteButton","note","previewButton","showPreviewSource","maxPrintCenterLevel","table","prepareData","splice","oldVal","getAllCurrencies","accountGetById","getParentByLevel","getCentersByAccountId","getFiscalPeriod","checkAccountBalanceAccess","_this$document","_this$document2","_this$document$system","_this$document3","_this$document4","sourceEntityType","toLowerCase","defaultDocType","sort2","TYPE_MEMO","tableOptionsComputed","EDITABLE","prepareDisabledGridButtons","obj","createdBy","lastModifiedBy","lastModified","defaultCurrency","isDefault","isEnabled","setParentPath","parent","push","docTypes","_this$document$type","reports","insert","_this$selectedAccount","balanceRestricted","parseInt","balance","_asyncToGenerator","_regeneratorRuntime","mark","_callee","formTitle","wrap","_context","prev","next","getDocValidationSettings","refreshSaveButtonItems","module","mapSettings","documentGroup","exportIds","calcAutoHeight","refreshTodayRates","getDocumentTypes","getMaxCentersLevel","getDocumentById","setCenterColumns","isEmpty","setCurrencyColumns","stop","getCentersByAccountIdAndItsParents","getMaxCentersLevelByAccountId","broadcastItemExist","broadcastRefresh","prepareAggregateDocumentData","_this4","prepareGroupedAccounts","_step","_iterator","_createForOfIteratorHelper","_loop","detail","kol","group","groupedAccount","s","n","done","fillDebits","groupAccount","sumDebits","debits","centers","detailPrice","rowType","apply","_toConsumableArray","_x$centers","_x$centers2","_x$centers3","_x$centers4","_x$centers5","_x$centers6","_x$centers7","_x$centers8","_x$centers9","_x$centers10","some","center2","center3","fillCredits","sumCredits","credits","_x$centers11","_x$centers12","_x$centers13","_x$centers14","_x$centers15","_x$centers16","_x$centers17","_x$centers18","_x$centers19","_x$centers20","setRowNumbers","_step2","_iterator2","_i","_groupedAccount","rows","_this5","clonedLocalData","getTableData","forEach","center","separatedCenters","aggregateDocumentData","aggregateDocumentDataMoein","translatedDataSetName","translatePrefix","converter","PrintDataConvertTypes","MAPPER","user","trackNumber","count","descriptionAlternative","snapshot","_this6","retrieveData","snap","setFormMode","arguments","undefined","editableState","prepareOptions","ignoreKeys","disabledButtons","btnKeys","keys","ignoreIndex","_this7","post","Endpoints","getUrl","preventConcurrent","result","requiredFields","JSON","parse","documentSettings","requiredFieldsJson","trackDate","sumOfRows","_this8","sumCredit","sumDebit","sliced","slice","activeRowIndex","parseFloat","toString","toPriceFormat","_this9","useToast","navigateOptions","forceLoad","getData","getDocumentByCode","changedFormAlert","navigate","NavigateToDocument","formType","originalData","searchCode","fiscalPeriodId","additionalBroadcastFields","keyword","_this10","_this11","documentHeaderId","printDefaultDesign","_loop2","showCentersTurnOver","_this12","autoClose","_this13","accounts","_this$settings$gridOp","companyCurrencyLength","currentDocumentHasCurrency","c","start","prepareColumns","_this14","l","max","createCol","_step3","_iterator3","startColIndex","_step4","_iterator4","omits","_this15","getDocument","response","request","prepareDocument","_this16","pageIndex","pageSize","wait","$wait","silent","end","j","navigationDirection","_this17","_callee2","simplifyDetail","clonedDocument","_iterator5","_step5","cloneOriginal","idControlProperties","changed","_context2","extractCentresFromCenterFields","replace","accountId","displayOrder","idCheckChanged","abrupt","getLastDocumentCode","_this18","_this19","_callee3","_context3","getTodaysDate","startDate","_this20","tryDeleteLastEmptyRow","addMultipleNewRows","_this21","_this22","NoteManger","_this23","DocsList","multiselection","findAccount","dd","console","log","act","_this24","error","isCancel","_this25","_callee4","subSystem","saveRes","_context4","sent","ensureAccountNatureIsValid","validateInputs","saveDocumentInServer","close","t0","_this26","_callee5","clone","_context5","prepareDocumentForSave","grandParent","DocumentHeader","savedDocumentNumber","_step6","_iterator6","_this27","invalidNatureRows","_loop3","tryPush","other","self","accountName","helpers","formatBalance","docType","_this28","checker","Checker","errors","test","nonBalance","validationToast","_this29","_callee6","_context6","downloadDocumentTypes","t1","cache_getOrSet","call","validateAccount","cvs","invalidValues","doubleFull","arr","vals","current","zeroFull","validateAcceptsCurrency","propName","addRow","_this30","preventDefault","lastItem","empty","row_tryAddEmpty","focus_scrollToActiveRow","focus_focusCurrentLocation","deleteRow","row_deleteSelectedRows","duplicateRows","_this31","deleteDocument","_this32","documentCode","DocumentHeaderId","button_array","_this33","PreviewContainer","sourceEntityId","subscribeKeys","$keyHandler","Subscribe","keyCode","el","context","sender","ctrlKey","TABLE_FIELD_PERFIX","isValid","invalidCells","isLocked","xs","_component_nk_dropdown","componentOptions","dateRange","selectedDateRange","dateRanges","endDate","_component_nk_button","btnLoad","getChangeLogList","_component_ag_grid","changeLogs","updateTable","tableData","ISO_DATE_REGEX1","ISO_DATE_REGEX2","show","masterDetail","isRowMaster","dataItem","hasDetails","rowGroupPanelShow","detailCellRendererParams","getDetailRowData","isArray","OriginalValue","CurrentValue","isFieldEmpty","originalValuesArray","currentValuesArray","originalValuesMap","keyBy","currentValuesMap","allNames","union","Name","Value","successCallback","detailGridOptions","columnDefs","contentType","valueFormatter","getReadableValue","nestedFieldName","rowSelection","cellRenderer","_unused","jalaliMoment","locale","format","_unused2","_typeof","changeLogsList","pagination","groupIncludeTotalFooter","enterToSelect","eowSelection","align","headerClass","cellClass","dt","Date","getHours","padStart","getMinutes","getSeconds","minWidth","singleClickEdit","nkButton","tooltipEnabled","hideTitle","agGridClickHandler","showChangeLogDetails","merge","getProperties","range","getChangelogs","found","ChangeLogDetails","json","userId","force","getPropertiesByGroup","SYSFIELDS_DISPLAYORDER","func","_len","args","_key","store","configTable","Store","dispatch","addTableItem","addTableItemRange","removeItemFromTable","clearItemsInTable","copyToClipboard","append","pureRecords","init_getPureRecords","localValue","pasteFromClipboard","itemsInClipboard","sec","filteredData","_defineProperty","KEYS","record","newObj","row_getClonedObjectAsNew","row_tryAddRecordAt","clearTableClipboard","selectInTable","value_removeAll","value_tryAdd","replaceInTable","deletedRows","clonedData","deleted","row_silentDeleteAt","maxIndex","pasteInTable","clipboard","clipboardStore","config","clipboardUtils","execute","d","from","cloneStructure","getKeys","cloneProperty","sourceValue","target","isEmptyObject","isEmptyProperty","prop","getScrollBarWidth","$outer","css","visibility","overflow","appendTo","widthWithScroll","outerWidth","remove","events","list","add","element","event","addEventListener","removeEventListener","clear","_createSlots","labelAligns","md","lg","_component_nk_switch","localData","keepCodeSerial","deleteDocumentByCreator","_component_nk_multichoice2","requiredFieldsSelectionChange","requiredFieldItems","taxCalculationSection","taxCalculationSectionItems","docTypeTableOptions","$props","fn","loadFromRemote","defaultData","remoteData","addDocTypeRow","deleteDocTypeRow","search","searchFields","systemDocType","Dropdown","getDataFromOptions","searchPrefix","systemDocTypes","useTranslate","BooleanLabel","btnAdd","btnDelete","saveDocumentSettingButton","saveSettings","localSettings","getSetting","getDocTypes","getSystemDocTypes","docTypeList","stringify","commitTableChanges","saveDocTypes","Items","cache_remove","periority","isDistinct","commitData","productValueType","valueTypeDropDownChanged","valueType","productDataType","dataType","productUniqueMode","uniqueMode","number","productFloatingValues","selectedItem","colIndicatorBarEnabled","row_ID","productFloatingId","aggregates","saveProductFloating","validateThenSave","get","set","floatingValuesTable","url","ProductFloating","input","pricingType","pricingTypes","dropdown","standardizable","activeAccountTypeRow","_component_nk_dropdown_account","dropdownAccount","ref_for","_component_nk_dropdown_center","getDropdownOptions","enableButton","b","cardStateHandler","deafult","propertiesByGroup","accountSelectorButton","loadOnMount","saveProductClassification","productClassification","loadAllIfBaseAccountIsEmpty","multiLineView","_component_nk_image","imageValue","image","_component_nk_popover","popover","phone","balancePlusText","advance","textColor","checkFloatingBalanceAccess","_$options$settings$da","address","formatPrice","totalDebit","totalCredit","factorType","innerHTML","lastFactor","showFloatingDetail","loadFloatingData","turnOver","height","defaultImage","contentElement","popContent","fillPhoneAndAddress","mapState","state","getCenterImage","getAccountsByIds","_this$options","_this$$props$params","assign","getType","relatedAccounts","relatedAccountIds","every","balanceType","price","tv","_center$metaDatas","metaDatas","meta","metaDataSchema","systemField","getElementsByTagName","force_dropdown_close","centerInfo","nodeData","parentData","CenterModify","closest","floatingCenterId","PersianDate","totalPayableAmount","centerInAllLevels","codeInput","nameInput","warehouseType","warehouseTypes","typeDropdown","_component_nk_stabs","activeTab","_component_nk_stab","productStockAccount","maxCentersLevel","floatingCenters","getCenterOptions","relatableProductsGroup","relatableProducts","usersPermissions","usersList","userOperations","prepareWarehouseDataForSave","productGroup","ProductGroupDropdown","hideParents","DropdownProduct","onChangeHandler","product","productbarcode","barcodes","displayFields","firstName","lastName","getUsersList","prepareWarehouseDataForLoad","warehouse","cloneDeep","usersTableData","permitUserWarehouses","operation","productTableData","productGroupTableData","assignableProductWarehouses","relatableProductGroups","relatableProduct","relatableProductsGroupTable","relatableProductsTable","usersPermissionsTable","warehouseId","linkNewCenterToAccount","includeAccounts","factorBunches","defualt","AccessControl","factorTypes","firstSerialNumber","lastSerialNumber","isActive","ignoreTax","BooleanView","useColors","Switch","all","factor","refreshFactorBunches","FormUtility","_classCallCheck","_createClass","toast","directionTranslator","i18nInstance","global","t","checkChangingCode","isChanged","localChangeFormAlert","toastInstance","configs","setTimeout","onCatch","exception","onSuccess","defaultToastConfigs","Merge","getters","splitter","differenceInMilliSecond","now","getDate","mm","getMonth","hh","minu","ss","yyyy","getFullYear","final","diff","toEnglishDigits","_columns","isAgGrid","currentPaymentHasCurrency","tableCols","retreiveCurrencyColsView","retreiveCurrencyColsEditable","agGridColumns","_x$currency","aggFunc","MultiCurrencyCellView","cellDataType","accountTheir","accountOur","MultiCurrencyCell","_FormUtility","_NikanApp","prototype","leading","trailing","callback","warn","promise","constructor","$root","removeClass","heightToBottom","claims","isObject","accessDeniedAnd","hasPermission","$store","accessDeniedOr","typeChecker","claim","claimsAnd","and","claimsOr","token","NikanApp","install","app","nikan","globalProperties","_NikanUI","init","layoutSections","fullHouseHeight","initUI","box","offset","marginTop","container","containerPadding","top","window","content","slimScroll","position","color","hide","resize","scrollable","jel","els","parentSelector","attr","parentHeight","detailsHeightSelector","padding","NikanUI","ui","$ui","NikanModalStorage","Vue","mixin","markRaw","globalLogger","__file","idGenerator","helpTag","checkDataChange","$emit","writeError","last","modals","tab","has","bind","incrementUID","addButtons","_NikanWait","defineProperty","loggingEnabled","focusedEl","reservedFocusedEl","_started","_destroyed","_ended","dimColor","unmount","_validate","focused","_a","_b","is","_c","hasClass","elExists","msg","_this_1","_log","_loadVm","Template","defineComponent","extends","default","bgColor","_d","fixed","Boolean","_e","div","createElement","_f","addClass","_g","_h","createApp","mount","_j","_catchFocus","_handleKeys","TabOrder","updateDisableds","removeAttr","_returnFocus","_destroy","NikanWait","_createNamespacedHelp","createNamespacedHelpers","NikanCache","cache_set","seconds","cache_clear","pattern","factory","_vm","cached","cache_get","userHasAccess","mini","hideIcon","_component_icon","_withModifiers","click","hideShortcuts","isWarning","isDanger","hideShortcut","shortcutDisplay","nonDividerButtons","commands","command","emits","shiftKey","altKey","policyToken","tooltip","parts","trim","callSubscribeKeys","checkUserPermission","sc","keyChar","fromKeyCode","setting","hasAccess","_x$shortcut","tabscope","lastMessage","dimClicked","_component_vue_draggable_resizable","w","h","left","y","onDragging","onDrag","onDragstop","onDragStop","lastMessageType","localButtons","closeButtonClicked","_component_nk_lottie","getLottieOptions","lastMessageButtonsClass","buttonClicked","progress","role","_normalizeStyle","progressPercent","messages","getActiveState","len","updated","dimBox","preparePosition","stateEnabled","currentState","windowWidth","parent_dragable","clientWidth","windowHeight","clientHeight","round","tmp","innerHeight","innerWidth","$target","stopShaking","incrementCounter","timer","clearInterval","styles","defaultOptions","animationData","require","loop","flag","_buttons","returnFocusToPage","closeModalInner","removeMessage","autoRemove","keyCodes","header","_resolveDynamicComponent","onButtonsChanged","buttonsChanged","onTitleChanged","onCloseButtonClicked","onResolve","resolved","onReject","rejected","opt","makeRawComponent","buts","_component_nk_check_permission","_component_nk_check_commercial_access","_renderSlot","$slots","additionalInfo","_component_nk_form_info","_component_nk_help","helpURL","_component_nk_bootstrap_wrapper","bodyClass","onResize","_component_nk_drop_button","onOptionsChanged","buttonOptionsChanged","_component_nk_snapshot_button","getDateTime","onHandlerClick","infoPanel","slideUp","hasHint","hasLabel","onFocus","children","slideToggle","gdate","toggleList","_component_List","onEnterPressed","tabClicked","listVisible","List","Function","prepareButtons","animeInstance","NikanAnimation","opacity","easing","duration","oldFocusedElement","multiSelection","SnapshotTypes","MANUAL","takeSnapshot","userHasSnapshot","restoreSnapshot","AUTOMATIC","play","activeElement","FormInfo","NikanHelp","SnapshotButton","tokens","src","_imports_0","alt","removeScroll","access","checkCommercialAccessDetailed","coverParent","upgradePlan","reNewPlan","checkCommercialAccess","open","process","breakpoint","_component_resize_observer","onNotify","ResizeObserver","currentBreakpoint","$nextTick","wrapper","imageSrc","accept","onChange","onFileChange","selectBtn","selectClicked","deleteClicked","imageName","showFileName","originalImage","maximumFileSize","files","toBase64","hasFile","getUploadImageData","getUploadImageDataBase64","base64","startsWith","substring","file","reader","FileReader","readAsDataURL","onload","onerror","valueChanged","radioClicked","theme","isChecked","checked","dropSettings","hideExport","hideImport","exportButton","exportToExcel","importButton","importFromExcel","prepareExcelButton","exportButtons","but","ids","urlGenerator","URL","createObjectURL","Blob","headers","a","download","extension","appendChild","revokeObjectURL","path","ImportFromExcelMap","_component_LottieAnimation","autoPlay","autoplay","speed","animationSpeed","LottieAnimation","getDefaultOptions","lottieAnimation","quality","pause","setDirection","setSpeed","destroy","_component_vue_recaptcha","loadRecaptchaScript","language","$i18n","sitekey","captchaSiteKey","onError","recaptchaError","onExpired","onVerify","recaptchaSuccess","VueRecaptcha","hasTitle","labelSizeClass","emphasize","onClickLabel","_component_nk_popper","popoverData","dataSizeClass","disabledAttr","createAttribute","attributes","setNamedItem","getNamedItem","removeNamedItem","isString","classes","sizes","aligns","onFocused","maxlength","inputValue","onInput","onChanged","ltr","autocomplete","small","emitInitValue","pauseGetValue","pVal","isRequired","cloneSettings","pureValue","select","emit","selectionStart","selectionEnd","selectedText","getSelection","navigator","writeText","dropdownSelectedItem","dropdownSelectedItemChanged","dropdownData","showEmptyLabel","selecteds","activeIndex","onItemClicked","removeItem","searchRequestFilter","onDropdownSearchRequestFilter","comparer","first","second","maxSelectedCount","emitAutoSize","emitSize","editHandler","dispatchEvent","Event","tag","tryRemove","refocusActiveSelected","refocusDropdown","drp","clearEditor","shift","stopPropagation","baseUrl","cleanOnMount","readOnlyDisplay","exceptPositions","relatedAccountId","baseAccountsArray","centersList","ready","findForm","getAutoAccountsItemsByKey","getAllCenters","getAllAccounts","isServerSide","sett","hasChild","formName","types","findAccountsByAutoKey","serverSideStatus","prepareCentersList","cleanValue","setComponentSettings","getCentersByCenterLevel","_accounts","promiseList","rId","bId","relatedAccountsByLevel","cleanedValue","v","findExactMatch","filtered","showCenterList","CenterList","filterType","selected","baseAccountIds","multichoice","setMergeItems","getSelectedItemsText","_this$settings$filter","_this$settings$filter2","selectorHeight","watchForSelectedChanges","paginationPageSize","checkboxes","headerCheckbox","rowModelType","serverInfo","manipulateResponse","rowData","rowCount","totalCount","finally","serverSideMetadata","payload","leaf","SchemaValues","serverSide","FloatingCenterAdvanceName","_params$data$parent","cellSelectionAggReport","sideBar","doubleClickedToSelect","checkSelectedOnModelValueChange","metDataField","fontSize","inputId","checkboxClicked","for","onElementFocused","itemIndex","getDebitCreditInputOptions","onDebitCreditValueChanged","onCurrencyChange","systemCurrencies","onCurrencyRateFocus","onCurrencyRateChanged","getInputOptions","onDCCurrencyValueChanged","isSignVisible","showOnlyDefaultCurrency","currencyOptions","decimals","inputClasses","getTodayRates","rowValue","focusRow","querySelector","currencyId","checkActiveRowIndex","r","icon2","company","calcDebitSource","calcCreditSource","toFixed","defaultFix","itemFix","rates","sort","rate","baseCurrency","when","handled","localModelValue","prepareCurrency","finalizedValue","_value$index$currency","inputs","IsDefault","IsEnabled","popoverTitle","popoverIcon","preventCloseDropdown","placement","eventBinded","toggler","trigger","html","on","popover_clicked","dropButtonSettings","stimulInstance","reportObject","eventHandlers","isBulk","Stimul","additionalData","showDesigner","showViewer","prepareReport","unmounted","oldForm","defaultPrint","setDropButtonSettings","refreshItems","printDefault","getByForm","getPrintById","deletePrintItem","modifyStates","syncStates","refreshStates","_handle","_x","_x2","_x3","buttonOptions","designJson","_handle3","preHandlerResult","preHandler","showStimulModal","_x7","_x8","_x9","_handler","setDefaultPrint","_handler2","editDesign","canEdit","copyDesign","accessManager","deleteDesign","canDelete","_handle2","_x4","_x5","_x6","upperCaseFirstLetter","claimPrefix","onSave","getPrintDesign","design","fileName","split","report","reportFile","saveToJsonString","saveDesign","printId","fixTypoIssues","StimulComponent","onSaveReport","onSaveAsReport","_callee7","_context7","printOptions","replaceAll","preventDuplicateNames","regex","baseName","findMaxIndice","str","curMatch","exec","indice","duplicateNames","newIndice","_callee8","_context8","print","skipLoadDataCheck","metaData","columnSize","getOptions","Integer","Float","refresh","getBySubject","csValues","subject","schemas","EmptyId","clicked","isDisabled","checkEnabled","identifier","_this$modelValue","isFunction","Get","selectAllCheckBox","_component_nk_checkbox","checkboxOptions","selectAllChecked","_component_nk_toggler","togglerOptions","deselectAll","selectAll","deselect","toSelect","iconComputed","requried","iconType","reviewModeData","returnToMainDBButtonOptions","returnToMainDB","makeReviewModeDataEmpty","clearUser","location","_gridMode","isInGrid","iconClass","hideTooltip","alertType","getContentFromOptions","getTarget","popperShow","modifiers","popperInstance","createPopper","popperBtn","animation","setOptions","enabled","settingsChanged","inputOptions","dropdownValue","dropdownOptions","showCategories","categorySelector","focusAndSelect","showProductPriceLevels","byId","refreshProductPriceLevels","productPriceLevel","showProductPriceGroups","refreshProductPriceGroups","productPriceGroup","showProductClassifications","refreshProductClassifications","ProductClassificationsList","excludeWarehouseIds","showWarehouses","warehouses","refreshWarehouses","isDisalbed","localIsDisabled","defaultFactorBunchId","ignoreDefaultFactorBunch","showFactorBunchList","appStateValue","getByType","setFactorBunchFromAppState","filterByDefaultFactorBunchId","_this$dropdownValue","_this$getActiveState","getSaleSettings","factorSettings","FactorBunchList","sidebarToggler","_component_sidebar_menu","menu","filteredRoutes","showOneChild","collapsed","hideToggle","rtl","onToggleCollapse","onItemClick","toggleCollapsed","userAccounts","customerCode","brandImageOptions","searchKeyword","isFocused","focusedItem","openedItem","hash","parentEl","SidebarMenu","routes","isOpening","filterChild","routesAccessChecker","isInChild","mi","keywords","isKeywordInText","route","_route$parentName","parentName","changeFormat","child","hasCommercialAccess","ch","prepareDynamicRoutes","preload","prepareDynamicReportRoutes","prepareCustomAccountCrawlingRoutes","dynamicReports","navKey","routeObj","dynamicReportInstance","launchDynamicReport","isDynamicRoute","findRoute","hidden","autoLoad","openInitTabs","currentHash","startups","directTab","query","$route","iterate","pageTitle","menuFocused","emitFocus","menuBlur","closeMenu","openedItemChanged","_step8","findInChildren","_step7","_iterator7","_iterator8","findParent","findIn","navItemAreEqual","searchInRoutesById","isOpen","isSelected","itemClicked","_component_nav_menu_item","onMenuClicked","childClicked","onOpenedItemChanged","possible","isChild","checkPosition","childrenList","boundingRect","getBoundingClientRect","ownerDocument","defaultView","pageYOffset","maxHeight","filteredItems","m","_component_nk_modal","onShowHelp","showHelp","uniqueKey","getUniqueKey","dir","handles","minw","minSize","minh","draggable","positionLast","active","modalSizeCss","menuStatus","onResizing","onResizestop","onResizStop","changeFullScreenModalStatus","_component_nk_print_button","_component_nk_excel_button","comClicked","titleChanged","onCustomRejectMsg","setCustomRejectMsg","SIZES","SM","MD","LG","FULLSCREEN","customRejectMsg","toUpperCase","comStateUID","comStateTitle","savePosition","focusStartup","modalItemLocker","menu_show","startupEl","_this$page","comp","onClose","eq","ReserveAt","tabs","sticky","closeTab","selectTab","isVisible","_component_context_menu","popperTarget","contextMenuItems","_component_menu_item","useUrlFragment","closeConfirm","activeTabHash","currentTab","clearTabs","cachedTabs","middleClick","which","cacheHandler","selectedTab","cachable","isCached","findTab","selectedTabHash","currentTabEl","$router","setTabVisible","array","emitRemove","selectPrevTab","newSelectedTab","isClosable","$parent","tabContent","tabContentRef","childClass","closable","keepCurrent","_tabs","tabsToKeep","activeTabs","_this$tabs","_this$tabs$","_this$tabs2","_this$tabs3","passive","suffix","tabKeys","tabId","selectedTabId","focusTab","tabItems","min","tabul","elFocused","enableSearch","searchKeywordChanged","_component_nk_sub_tree","filteredNodes","expands","expandeds","depth","onNodeSelected","onNodeStateChanged","onNodeDblClicked","maxScrollGodFather","searchTimeOut","defaults","treeNodes","rootId","baseLevel","maxLevel","defaultSortByFields","filterItem","searchResultText","noDataMessage","searchPlaceholder","nodeCustomClass","setTitle","onNodeClicked","onNodeAddClicked","onNodeEditClicked","onNodeDeleteClicked","selectedChild","searchText","searchMode","foundNodesNumber","expandLevel","searchKeywordLocal","disabledTree","selectNode","delayedInputSearchKeyword","words","getWords","fields","word","addParent","_node$parent","_x$parent","expandNode","collapseNode","canvas","calculateGodfatherMaxScroll","drawDisabledLayer","godfather","currentScrollTop","scrollTop","getChildren","parentId","treeHasChild","treeLevel","nodeToSelected","selectedWithMouse","switchState","autoSelected","scrollToNode","tree","clearTimeout","getParent","getParents","nextNodeInTree","levelmates","nextIndexParent","uppers","prevNodeInTree","lastChildOfPrev","logger","scrollTo","parentNode","foundNode","scrollIntoView","block","animate","scrollHeight","foundNodeAgain","_node$parent2","fatherChildParent","firstChild","mainElement","prevNode","firstParent","nextNode","nodeIsDeleteable","_component_nk_virtual_scroller","localHeight","randomId","visibleNodes","li","_ref","cssClass","onNodeClick","onDblclick","onNodeDblClick","onSelected","onNodeStateChangeClicked","deletePolicyClaims","addPolicyClaims","editPolicyClaims","buttonsWithPermission","treeCondition","filterExtends","nodes","calcChild","vNode","childLength","ceil","random","temp","visibilityChanged","trackPointer","popper","positionFixed","preventOverflow","boundariesElement","mouse","prevMouse","menuItems","targetEl","initPopper","mousedown","pageY","pageX","closeContextMenu","destoryPopper","off","subscribeExitKeys","right","bottom","reference","Popper","entry","enable","Unbind","beforeUnmount","iconClassNames","iconCss","systemBorder","navigateToHome","$openTab","badgeTitle","_component_draggable","filterGroups","onStart","drag","onEnd","dragEnded","removeGroup","operator","operatorChanged","_component_nk_filter_group","scheme","operatorVisible","removeButtonVisible","filterGroupRowChanged","addGroupButtonVisible","addGroup","onChangeItemInGroup","padEnd","_component_nk_filter_row","operatorEnabled","filterRowValueChanged","addFilter","emitRemoved","dataKeyChanged","schemeProperties","componentControl","localValueChanged","filterTypes","include","def","defaultInputOptions","defs","FilterTypesBy","validateFilterType","setInputAsChanged","selectedDataKey","names","getOwnPropertyNames","arrays","FilterControlInput","getComponent","getInputType","FilterRow","filterValues","counter","findFilterValueIndex","deletedValue","emitValue","added","newIndex","removed","oldIndex","moved","FilterGroup","findFilterGroupIndex","_component_DynamicScroller","lazyId","minItemSize","_component_DynamicScrollerItem","DynamicScroller","DynamicScrollerItem","foundStyle","querySelectorAll","onDrop","drop","onDragend","dragLeave","onDragover","onDragenter","alias","onDragstart","dragStart","titlePath","dateGrouping","_createStaticVNode","fromVariable","targetColumn","variableTargetColumns","ct","separator","reportColumns","aggregate","_component_Toggler","distinct","refreshIsActive","Toggler","variables","_this$variables$find","_this$localData$fromV","variableKey","dynamicValue","mapped","columnItemElement","dataTransfer","setData","setDragImage","offsetX","offsetY","draggedItemIndex","droppedElement","classList","filteredColumns","localDataSorts","lastOrder","maxItem","maxBy","order","selectedVariableItem","variableVisible","sortItemsByOrder","sortBy","resolveModifyVariable","resolvedVariable","localDataVariables","sortItem","sortItemElement","layerX","layerY","draggedItem","_component_report_parameters","cancel","smartDate","startOrEnd","enumItems","entitiesStructure","entity","removeParameter","saveOrUpdateParameter","confirm","localReportParameters","parameter","_component_report_parameter_item","onRemove","reportParameters","_this$localReportPara","news","enum","filteredEntitiesStructure","selectedEntity","nonCollectionColumns","isCollection","selectedItems","baseEntity","checkBoxChanged","_component_entity_column_selector","objectEntityType","onColumnChanged","onAddColumn","onRemoveColumn","aggregateChanged","collectionColumns","reversedTitlePath","reverse","findCol","currentEntityType","_this$selectedItems","cloneColumns","object","localColumns","_component_columns_table_row","columnChanged","onSwapItems","dragged","dropped","swapItems","limit","limitChanged","groupConditions","op","condition","removeCondition","_component_condition_group","conditions","_component_condition_single","addSingleCondition","addGroupCondition","substr","conditionTypes","_component_condition_value","conditionValue","conditionValueChanged","STRING_ITEMS","NUMBER_ITEMS","_this$fields","variableItems","reportParameterItems","entityFields","minDate","maxDate","defaultValueMode","stopOnEdges","pickerFocusable","iconPrefix","viewMode","stayOnError","validValueAttr","keyHandler","pickerShortcut","useIsoFormat","onclick","onblur","onchange","onfocus","ondblclick","onkeydown","onkeyup","onrightedge","onleftedge","latest_start","latest_end","latest_value","stopChangeOnValue","persianDatepicker","timePicker","observer","toolbox","calendarSwitch","onSelect","getValue","pdate","toLocaleDateString","extend","RegExp","minutes","hour","bindEvents","selectPartialText","fixSelection","updateGregorianValue","valid","check","That","picker","com","_component_GroupRadio","typeOptions","manualTypeOptions","enumItem","isDate","_component_date_picker","isBoolean","staticListItem","addStaticListItem","dropdownChanged","valueField","changeValue","displayField","GroupRadio","uniqueId","variable","_this$col","_this$col2","_this$col3","conditionModel","addToColumns","_component_variable_modify","onResolved","variableItem","staticValue","_component_QueryVisualizer","queryDesignerData","alert","toggleSection","_component_TabHost","entitiesActiveTab","onActiveTabChanged","entityTabChanged","_component_TabItem","_component_entity_selector","selectedEntityChanged","selectedEntityColumns","addColumn","removeColumn","_component_columns_table","_component_conditions","_component_sorts","sorts","_component_variables","bounding","indicator","offsetTop","offsetLeft","TabHost","TabItem","groupBys","_this$localData","isLeftSide","leftSidebar","toggle","leftHider","rightSidebar","rightHider","newTab","JsonExcel","Sorts","ColumnsTableRow","ReportHeader","ReportParameterItem","ReportParameters","EntitySelector","EntityColumnSelector","ColumnsTable","ConditionGroup","ConditionSingle","DatePicker","ConditionValue","Conditions","Variables","VariableModify","QueryVisualizer","FontAwesomeIcon","Button","InputButton","DropButton","Dialog","Popup","Page","CheckPermission","CheckCommercialAccess","Wrapper","vList","Image","ImageUploader","RadioButton","ExcelButton","Lottie","VueDraggableResizable","NikanRecaptcha","RowSeparator","ColFormGroup","Textarea","Label","MultiChoiceLagacy","MultiChoice","MultiChoiceFloatingCenter","MultiChoiceFloatingCenter2","MultiChoice2","checkbox","MultiCurrency","MultiCurrencyView","Popover","PrintButton","FrequentDescriptionsInput","ChangeLog","MetaDataList","RelatedFactorAttachments","TogglerGroup","Info","ReviewModeBar","WidgetError","WidgetDefaultSettings","DropdownAccount","DropdownCenter","DropdownCategory","DropdownBank","DropdownProductGroup","DropdownProductPriceLevel","DropdownProductClassifications","DropdownProductFloatings","DropdownProductPriceGroup","DropdownProductNeasureUnit","DropdownWarehouse","DropdownFactorBunch","DropdownSalaryItem","NavMenu","NavMenuItem","ModalHost","Modal","Tabs","Tab","STabs","STab","Tree","SubTree","Table","AgGrid","ContextMenu","MenuItem","MenuSplitter","BadgeHost","BadgeItem","FilterViewPort","virtualizer","definer","scrollLeft","rtlScrollType","focusListenersAttached","evt","evtMap","focusin","pageshow","blur","focusout","pagehide","className","onfocusin","onfocusout","onpageshow","onpagehide","oThis","_arguments","TypeError","AArgs","FToBind","FNOP","FBound","inArray","sumBy","cleaned","Set","castTo","getUnixTime","getTime","time","isNaN","nowPretty","year","month","day","HTMLElement","selector","originalFocusMethod","positionAt","pos","$parents","viewPort","originParentPosition","border","screenHeight","viewScreen","inBounds","point","getTargetPoint","fitInPort","inUpHalfBounds","elHeight","elTop","additionTop","elementScreen","fit","scroller","hasScroll","offsetHeight","$p","each","ppt","ppb","pbt","pbb","mergedHeight","marginBottom","minHeight","origScrollLeft","leftEdge","scrollWidth","scrollRight","preBind","$this","allEvents","currentBindings","unshift","pop","delCount","newSubStr","trimEnd2","lastIndex","lastIndexOf","toCamelCase","firstLetter","lowerCaseFirstLetter","charCodeZero","charCodeAt","toPersianDigits","charCodeZeroEn","fromCharCode","secondSection","firstSection","toCommaSeprator","toPascalCase","$1","$2","$3","emitter","mitt","$http","axios","$emitter","use","KeyHandler","Mixins","i18n","router","Toast","toastOptions","ComponentRegistrar","SalaryEditor","directive","ObserveVisibility","register","isReady","hotreload","_component_nk_multichoice","isEmptyExceptZero","computeContractSalaryItemValue","contractSalaryItem","finalValue","userManualValue","StimulCustomFunctions","functionName","functionDescription","returnType","returnDescription","paramsTypes","paramsNames","paramsDescriptions","num","textVisualizer","jDate","jYear","at","contractFullDataSchemaGenerator","contractIds","contractFullData","contract","contractFullDataSchema","severanceDetailAmount","severanceDailyAmount","baseOfDailyYears","calculated","childrenCount","dailyFee","educationalField","descriptionRelatedToSalaryItems","exportableInInsuranceDisket","exportableInTaxDisket","insuranceIncludeHardJob","insuranceLeaveDate","insuranceNumber","insuranceStartDate","jobCodeInMinistry","taxEndDate","taxStartDate","workingPlace","incrementalSum","decrementalSum","insurancableSum","insurance","tax","taxableSum","taxFreeAmount","payable","jobCode","jobField","jobGroup","workplaceStatus","taxCalculationTableHeader","yearsOfExperience","severancesGroup","employerInsurance","contractMetaData","sumEmployerInsurance","unEmploymentInsurance","sumUnEmploymentInsurance","contractType","cooperateType","educationalStatus","employmentAs","employmentType","insuranceType","insuranceBaseType","marriage","militaryStatus","sacrificeStatus","bank","bankAccountNumber","bankCardNumber","bankShabaNumber","birthDate","birthPlace","email","fatherName","floatingCenterName","floatingCenterCode","idNumber","issuePlace","mobile1","mobile2","nationalCode","nationality","postalCode","religion","gender","personnel","sumIgnoredPrivilege","salaryItemsList","OrderBy","contractSalaryItems","salaryItem","orderIndex","contractSalaryItemName","contractSalaryItemValue","SalaryItemTypes","salaryItems","personnelSchemaGenerator","personnels","Personnel","personnelCategories","savingBoxes","personnelLoans","personnelFiscalPeriods","contracts","Contract","imageUrl","modifyData","_component_nk_textarea","saveProductButton","saveNote","getNote","toLocaleTimeString","productPrices","_$data$localData$tran","IsPayment","transaction","method","double","attachedFactor","attachableFactorList","hint","factorHeader","totalUnpaid","attachableAmount","entityAttachedAmount","alwaysOpen","openFormOnTransactionSave","saveOpenTransactionModal","filterFloatingCenterIds","ignoreValidationsIfEmpty","checkItemsExist","isPayment","desc","theirFloatingCenters","sumAttachments","is_payment","amount","transaction_attachableAmount","factor_attachableAmount","changes","fillAttachedFactorData","saveAndResolve","FactorAttachmentsFactorList","factorAttachment","metaDataBtn","allCenters","centerCodeBlur","centerGroups","localCentergroup","parentChanged","allowParents","parentDropdownOptions","_component_nk_dropdown_category","floatingCenterCategory","category","_component_nk_dropdown_product_price_level","priceLevel","_component_nk_image_uploader","getProfile","linkedAccounts","_component_nk_metadata","metaDataListOptions","priceLabel","debtorReliability","creditorReliability","debtorReliabilityExcChange","creditorReliabilityExcChange","parentsData","addNewRowOnInit","itemSize","selectFromAccountList","allAcocunts","metaDataModal","originalCenter","saveCenterButton","changeCodeButton","UpdateCode","originalCode","saveAndNewCenterButton","metaDataValidators","Center_NationalCode","VIranNationalCode","metaDataList","allProperties","getAccountbyId","getCommercialAccess","centerPosition","prepareParentsData","parentAccountingCode","showIfRelatedAccountIsEmpty","excludeCenterIds","getCenterDetails","focusOnInput","related","relatedAccount","AccountList","CenterGroupDrp","MetaDataSchemaModify","loadBasedOnCodeInput","_this$originalCenter","newAccountingCode","newCenterParent","isCenterChanged","getAccountDetails","newAccountParent","centerParent","centerData","priceLevelId","trySaveLinkedAccounts","customerInformation","maxFlaotingLevel","accountLevels","imageFileBase64","imageUploader","floatingCenter","checkWarning","newId","success","metaDataChecker","MetaDataChecker","metaDataErrors","orig","loc","centerSelector","filterByGroup","cerror","downloadProperties","centerName","regx","resourceName","tname","showBanks","bank_all","bankSelector","prepareFilterObject","onDestroyWithText","fitToWidth","ProductAdvanceName","showProducts","showProductModify","productInfo","ProductModify","getProductByCode","productCode","ProductList","defaultObject","filters","includeFloatingJsons","AccountGroups","AccountTypes","AccountNatures","AccountGroupTypes","FloatingCenterGroups","IdentityTypes","NationalityTypes","FormModes","NavigationDirections","JalaliMonths","RowStates","DocumentClosingTypes","DocumentGroups","SystemDocumentTypes","SaleReportGroupType","ProductCountCrawlingType","FactorTypes","ReceiptHawalaGroups","CheckoutTypes","NorouzCalculationType","TaxPanelSettlementMethodTypes","TaxPanelPersonTypes","TaxPanelInvoiceSubjects","TaxPanelInvoiceAlgorithms","TaxPanelInvoiceTypes","TaxPanelInvoiceMoadianTypes","NotifyCenterUpdateStatus","fullScreenStatus","onMouseover","showSettingButton","onMouseleave","onSubmit","_component_ag_grid_vue","updateGrid","columnDefsForAg","suppressDragLeaveHidesColumns","autoGroupColumnDef","groupTotalRow","onSelectionChanged","headerHeight","floatingFiltersHeight","cacheBlockSize","rowHeight","cellSelection","onGridReady","localeText","localText","enableRtl","animateRows","paginationAutoPageSize","tooltipShowDelay","tooltipHideDelay","enableBrowserTooltips","defaultExcelExportParams","suppressColumnVirtualisation","suppressColumnVirtualization","rowClassRules","treeData","groupDefaultExpanded","getDataPath","getContextMenuItems","onRowGroupOpened","rowGroupOpened","onFirstDataRendered","firstDataRendered","onRowClicked","rowClickEventHandler","onCellSelectionChanged","onRangeSelectionChanged","onCellDoubleClicked","cellDoubleClicked","onCellClicked","cellClicked","onCellKeyDown","cellKeyPress","onSortChanged","onFilterChanged","onColumnVisible","onColumnDefsChanged","onColumnResized","onColumnMoved","onCellValueChanged","getRowClass","suppressRowHoverHighlight","columnHoverHighlight","stopEditingWhenCellsLoseFocus","groupDisplayType","getRowId","onStoreRefreshed","getServerSideGroupKey","isServerSideGroup","_component_grid_settings","settingButtonOptions","template","filterText","filterText2","selectedType","newFilterText","oldFilterText","filterChangedCallback","isFilterActive","handleSelectedOption","doesFilterPass","_this$selectedType","_this$selectedType2","valueGetter","jMoment","isSameOrAfter","isSameOrBefore","isNumeric","isFinite","getModel","setModel","model","myMethodForTakingValueFromFloatingFilter","currentValue","removeFilter","onInputBoxChanged","parentFilterInstance","instance","onParentModelChanged","parentModel","_this$params","valueFormatted","functions","equals","endWith","endsWith","startWith","timeout","filterParams","debounceMs","equal","graterThan","smallerThan","fontWeight","cellValue","beforeMount","footer","localOptions","_$data$localOptions","ind","filterRowChecked","aggregateRowChecked","permissions","gridSettings","prependTo","ColumnsVisibility","GridExporter","Icon","changeVisibility","templatesButtonClicked","filterRowVisibility","aggregateRowVisibility","LicenseManager","setLicenseKey","priceReg","constConvertedFiledInEmit","emitConverter","cellEditorsDic","nikanDate","textarea","regChecker","mobile","generalValidationFunctions","GRID_UUID","GRID_FULL_SCREEN","AgGridVue","DateFilterComponent","DateFloatingFilterComponent","customStringFloatingFilterComp","customStringFilterComp","customPriceFilterComp","customPriceFloatingFilterComp","totalAndSubTotal","GridSettings","beforeCreate","manipulateProp","serverSideDataSource","getRows","_this$serverInfo","pageNumber","endRow","combineWithAnd","filterModel","_params$request$filte","fetchedData","endpoint","manipulateRequest","fakeRes","firstResponse","_res$data","groupKeys","gridApi","paginationGoToPage","secondResponse","autoSizeAllColumns","allowFocus","setSelectedRows","fail","maxNumConditions","resizeObserver","lastObserverParentGridWidth","contentBoxSize","inlineSize","observe","agGridParent","hierarchy","disconnect","foundFullScreens","destroyed","hiddenValidationColumn","watchData","activeValidation","timeoutColumnDefs","timeoutColumnResized","rawId","activeStateIsExist","currentColumnDefs","originalColDefs","isGroupOpenByDefault","gridOptionIconEl","resizeTimeout","enableClickSelection","rowMultiSelectWithClick","enableSelectionWithoutKeys","timeoutForCallServer","toolPanels","labelDefault","labelKey","iconKey","toolPanel","maxWidth","toolPanelParams","suppressRowGroups","suppressValues","suppressPivots","suppressPivotMode","suppressColumnFilter","suppressColumnSelectAll","suppressColumnExpandAll","defaultToolPanel","fsJson","flex","enableCellChangeFlash","defaultToNothingSelected","autoConvertFormulas","processCellCallback","_params$node","columnApi","expandedNodes","Map","updateGridOptions","computeButtons","loadedNodes","forEachNode","setDataOnRow","rowsData","itemsToUpdate","forEachNodeAfterFilterAndSort","rowNode","rowNodeData","foundRow","redrawRows","setSettingButtonOptions","fullScreen","resetFactory","_this6$options$focusA","pinnedBottomData","generatePinnedBottomData","setGridOption","allowedSource","columnMoved","foundAffectedColDef","currInd","toIndex","columnResized","_val$column","actualWidth","suppressSizeToFit","columnVisible","_val$column2","saveState","syncFunction","mainAlgorithm","_val$column3","printParams","columnWidth","sheetName","elementCreator","styleClass","subMenu","action","exportDataAsCsv","exportDataAsExcel","onlySelectedAllPages","onlySelected","gotSelectedList","getSelectedRows","setSelected","optionItems","defaultItems","anime","Nk_anime","translateX","translateY","begin","gridSettingButton","before_anime","complete","selectedRowEmitter","_data","emmitConverters","displayWidth","totalColDefWidth","a2","c2","agState","setColumnWidth","allColIds","getAllDisplayedColumns","colId","autoSizeColumns","sizeColumnsToFit","calculatePinnedBottomData","generateUUID","columnsWithAggregation","_x$children","acc","curr","aggregateList","fillAggregateList","tempRowNode","valueFormatterResult","forEachNodeAfterFilter","foundField","calcResult","calculator","aggAmount","pinnedRowData","getAllGridColumns","selectedRows","_event$data","foundRowNode","getRowNode","rowAtIndex","getDisplayedRowAtIndex","currentCell","getFocusedCell","lastRowIndex","getDisplayedRowCount","clearFocusedCell","allCols","currentColIndex","foundNextCol","ensureIndexVisible","setFocusedCell","firstEditableCellInNextRow","allLeafChildren","setRowNodeExpanded","expanded","refreshCells","aggList","sum","numberCells","aggFuncFaName","cellRanges","getCellRanges","lbRangeCount","lbEagerSumum","lbAvg","lbMax","lbMin","lbCellCount","totalCells","extractNumberInCell","tempCol","startRow","rowPinned","getCellValue","lbEagerSum","getDefaultButtons","row_addRowAtEnd","up","down","transferBtn","transfer","row_deleteRow","isOutlineDanger","saveBtn","buttonsObj","findEditableColumn","startIndex","directionIsDown","rowsCount","getColumn","isCellEditable","focusedCell","isCurrent","targetRowIndex","_this$localModelValue","isDestroyed","isMultipleSelection","selectedIds","processNode","nodeId","_this20$columnDefs$","_this$gridApi$getDisp","_this$gridApi$getRowN","firstNodeId","clearCellSelection","rowColorChanger","rowValidationStateList","reducedList","rowStatus","setDataValue","validateRowData","notificationArray","generalValidation","childIndex","validationFunc","fucReturnMessage","validateAllData","totalNotificationArr","validationResult","getFilteredTableData","focusOnGrid","manipulateData","_this$currentColumnDe","_ref2","cloneProps","_options$columnDefs","serverSideDatasource","manipulateColDef","convertDate","_date$value","floatingFilterComponent","convertDateTime","keyCreator","NodeB","isDescending","lockPosition","cellEditor","cellHeight","formatValue","defaultValueSetter","validationText","lockVisible","yIndex","newDetailCellRendererParams","z","zIndex","_this$detailCellRende","foundCurrentState","foundSubColumnDefs","aIndex","bIndex","extractDataFuncForAgg","productFloatingsList","floating","decideComponentType","productFloatingJson","getComponentOptions","productCentersList","productId","productFloating","DropDown","usernameOptions","value_local","adminDetails","username","onOnChange","validateUsername","passwordOptions","password","validatePassword","showPassword","confirmPassword","emailOptions","validateEmail","passLength","passwordValidations","moreThan8Chars","useSymbol","useUpperCase","matchConfirm","usernameValidations","emailValidations","checkRequirements","emailRegex","match","togglePassword","toggleClass","getElementById","_component_nk_multi_currency","local_value","onValueChanged","customFunctions","createBaseDivsOnInit","Stimulsoft","currentUser","CONSTANTS","BASENAME","VIEWERDIVID","DESIGNERDIVID","STIMULCONTAINERID","states","divsAdded","createOptions","viewer","createViewer","designer","createDesigner","registerCustomFunctions","registerCustomFonts","createBaseDivs","viewerDiv","designerDiv","textAlign","viewerOptions","Viewer","StiViewerOptions","toolbar","printDestination","StiPrintDestination","Direct","appearance","scrollbarsMode","htmlRenderMode","Report","Export","StiHtmlExportMode","showDesignButton","showAboutButton","showSendEmailButton","defaultEmailAddress","defaultEmailSubject","defaultEmailMessage","exports","showExportToExcel","showExportToHtml","showExportToHtml5","showExportToImageSvg","showExportToOpenDocumentCalc","showExportToOpenDocumentWriter","showExportToText","designerOptions","Designer","StiDesignerOptions","fullScreenMode","allowChangeWindowTitle","showMathFormula","StiViewer","onDesignReport","StiDesigner","onExit","onCreateReport","async","addDataSources","functionSchema","functionList","Dictionary","StiFunctions","getFunctionsList","addFunction","Base","StiFontCollection","addOpentypeFontFile","_showViewer","onShowViewer","prepareBulkReport","renderHtml","_showDesigner","onShowDesigner","_prepareReport","StiReport","load","onPrepareReport","_prepareBulkReport","reportAll","bulkSource","dataSources","_dataSources","dataItemReport","isRendered","renderedPages","preparer","addDataSourcesToReport","renderAsync2","finish","_addDataSources","prepareDatasource","isEmptyReport","dataSources1","_args6","addBaseDataSources","_x10","_addDataSourcesToReport","dataSet","_args7","System","Data","DataSet","readJson","onAddDataSources","regData","dictionary","synchronize","_x11","_x12","ComapnyDataSource","city","taxZone","taxOffice","agentName","registrationNumber","economicalCode","telephone","calendar","FiscalPeriodDataSource","UserDataSource","phoneNumber","landLineNumber","userName","WorkshopDataSource","managerName","workshopNumberInTamin","workshopRow","taminBranch","insuranceTypeName","insuranceTypeCode","defaultBank","defaultTaxTable","SalaryPeriodDataSource","displayName","isMain","_prepareDatasource","dataSource","onPrepareDatasource","translate","DataPreparer","_x13","onDestroy","_getData","_callee9","_context9","METADATAS","METADATAS2","GENERALFILTERS","t2","t3","processMetaData","t4","processMetaData2","processGeneralFilters","mapper","displays","accountGroupsText","accountTypesText","accountNamesText","centerNamesText","balanceRangeStartAmount","balanceRangeEndAmount","balanceRangeStartRangeType","_row$balanceRangeStar","balanceRangeStart","rangeType","balanceRangeEndRangeType","_row$balanceRangeEnd","balanceRangeEnd","beforeBalance","startDocNumber","endDocNumber","fiscalPeriodsText","turnover","_processMetaData","_callee10","MetaDatas","_args10","_context10","centerId","newArray","_Object$keys","currentDisplay","base","kebabFunc","ofs","funcReturn","findPropertyBasedOnPath","splittedPath","matchBrackets","property","$setup","_resolveComponent","_openBlock","getPeriodId","monthOptions","monthValue","selectedMonth","months","getMonths","formMode","insertBtn","insertAndStayBtn","selectedMonthDrop","emitNullOnNotFound","CreateMonth","CreatePeriodType","selectedPastMonth","selectedPastDisplayName","SelectedPastPeriod","tableCopy","contractCopy","salaryItemCopy","copySettings","__awaiter","__assign","pastMonths","subPeriods","pYear","pMonthName","pastDescriptions","subPeriod","refreshSalaryPeriod","validation","payLoad","periodName","TYPE","SUCCESS","CreatePeriodValue","validationObj","_component_AccessControlTree","onOperationRolesChanged","onOperationRolesChange","privilegeTypes","toggleAllRoles","operationRolesByDedicates","dedicatedUser","privileges","operationRoleId","restrict","toggleSelection","AccessControlTree","allOperationRoles","saveAccessButton","getUserDataAccessList","operationRole","privilegeType","accessControls","operationRoles","accessControlTree","activeTypes","_activeTypes","ignoreEntityTypes","_activeTypes2","extraEntityTypes","ignoreSelected","removeOpposite","index2","allRolesSelected","footerButtons","tableOption","onPreSelectedRowData","showItem","salaryItemId","isCurrentPeriod","isModal","bottomButtons","topButtons","editButton","handlerBtnSelect","systemSalaryItemButton","showSystemSalaryItems","operationsButton","showUsageModal","showDependencyModal","filterButtonOptions","itemTypes","entryTypes","operationTypes","dataTypes","isSelectionMode","filterByTypes","filterByfillTypes","filterByActionTypes","excludeByIds","excludeDisabledItems","isMultiSelect","defaultCellClass","checkboxesEnabled","Tag","changeFormModeToSelection","deleteItem","requestOptions","selectRowCode","fillType","actionType","insertNew","modifyItem","INFO","SystemSalaryItemList","currentItems","SalaryItemContractsUsage","SalaryItemDependency","faJson","createI18n","warnHtmlInMessage","fa","readIconFromOptions","iconName","groupName","TaminBranch","removeButton","_this$settings$csValu","_this$settings$csValu2","systemFieldConnectCell","systemFields","addSystemFieldConnector","windowTitlePrefix","searchBarEnabled","moveRowUp","csValuesBtn","modifyCsValues","moveRowDown","isSystem","modifySchemas","schemaTable","CsValues","row_tryUpdateRecordAt","_component_small_checkbox","selectPeriod","canUse","lockButton","smallCheckbox","MonthPeriodCardOptions","period","lockPeriod","handlerBtnCopy","handlerBtnEdit","handlerBtnAccessClaim","handlerBtnDelete","getSalaryPeriod","deletePeriod","insertPeriodFunc","copyPeriod","selectedSourcePeriod","ERROR","attachableFactors","selectFactorAttachmentButton","attachmentsFactorList","FactorType","getAttachmentsFactorData","floatingCenterIds","_component_layout","_$data$nikanUser","autofocus","isCaptchaEnabled","_component_nk_recaptcha","loginRecaptchatoken","spinning","login","switchCard","changeCustomer","nikanUser","isSignInEnabled","_component_g_signin_button","googleSignInParams","onSignInSuccess","onSignInError","_imports_1","recoveryData","recoveryRecaptchatoken","recoverPassword","Layout","googleSignInButton","_JSON$parse","localStorage","getItem","useraccount","isTrue","clientId","inputType","clearCustomer","loginByGoogle","getAuthResponse","id_token","card","slideDown","phoneRegex","Email","RT","ignoreCommercialAccess","submit","authenticateUser","confetti","CURRENT_CULTURE","CURRENT_UI_CULTURE","getCurrentContext","getCurrentUser","getWorkshop","workshopId","salaryPeriodId","fiscalId","getCompany","getCustomerCode","logoutUser","redirectToLauncher","axiosInstance","getAxios","latestUser","interceptors","CUSER","CCODE","access_token","fetchRefreshToken","originalConfig","_currentUser","rs","qs","refreshToken","refresh_token","_retry","addCurrentLocaleToUrl","begins","decorateRequest","currentContext","contextValues","customerId","FormData","getErrorDetail","errorItem","operationClaimName","arg","lines","errorMessage","er","errorCode","isModernResponse","convertToOldSchema","succeeded","isUserUnauthorizeError","isLauncherError","_get","ex","messageTypeCode","messageType","rd","responseContent","isUserUnauthorize","isLaunchRequied","_getErrorDetail","_post","doPromise","onUploadProgress","responseType","_getErrorDetail2","warningTurn","exResolve","exReject","hasOwnProperty","_getAddress","getEndpointByUrl","_options","errorList","__spreadArray","DEFAULTPERSONIMAGE","DEFAULTPERSONIMAGE2","DEFAULTPRODUCTIMAGE","DEFAULTCOMPANYIMAGE","prepare","currentData","reviewComponent","PersonnelInfo","DocumentSingle","changedData","DynamicReport","parameters","settingParameters","foundParameter","calculateSmartDate","smartDateObj","timeDictionary","week","faNow","moment","faDateDirection","subtract","targetFaDate","startOf","endOf","targetEnDate","queryDesignerObject","reportData","queryDesigner","executeResult","reportId","resultParameters","autoParametersTypes","allParametersAreAuto","autoFields","calculatedParams","calculateParameters","getDynamicReport","executeDynamicReport","queryDesignerJson","fillParameters","callReportsDynamicApi","reportResult","executionResult","showReportDataInModal","dynamicReportData","DynamicReportViewer","refreshButton","_component_nk_radio","radioWarehouse","stockType","radioFactor","radioAll","productListSelectedRow","filteredProductList","StockTypes","ALL","FACTOR","WAREHOUSE","stateKey","allowMultiple","includeProductUnits","includeSalePoints","includePrices","includeBarcodes","productList","insertProductButton","showModifyProduct","getProductListData","editProductButton","deleteProductButton","showDeleteProductDialog","excelButton","successHandler","selectProductButton","productListTable","gParent","OldVal","getActiveStateByKey","lastStockOnFactor","kind","lastStockOnReceiptHawala","prepareStockType","_state$value","read","deleteProduct","Ids","nameAlternate","technicalNumber","trackingNumber","barcode","_row$barcodes","barcodeCode","codeType","showProductGroups","groups","refreshProductGroups","productFloatingJsons","NAME","productFloatingValue","selectedDataChanged","FILTERS","LEAVES","CUSTOM","selectCenterButton","center_leaves","center_all","computedFilteredItems","prepareTableOption","calcFilterItems","includeRelatedAccount","_data$value","filterByGroupIfPossible","gapi","client_id","auth2","attachClickHandler","signinBtn","googleUser","SalaryVariable","wait_1","salaryItemVariable","NProgress","showSpinner","lazy","AsyncComp","loader","addToFavorites","centerGroup","addToHome","reportType","isDetailViewMode","pathItems","firstItem","targetRoute","_targetRoute$items","_component_Layout","lockControls","isFirstStep","onPrevClicked","stepTitle","currentStep","environment","environmentChanged","isLastStep","installButtonOptions","onInstallClicked","isSending","nextButtonOptions","onNextClicked","_component_nk_dialog","dialogMessages","markRawComponent","_AdminDetailsStep","PreparingStep","AdminDetailsStep","_CodingsStep","CodingsStep","_CompanyFiscalStep","CompanyFiscalStep","_Review","Review","codings","fiscalPeriod","steps","prevButtonOptions","validateButtonOptions","currentUserDetails","useraccount_clearAll","onLockStepStateChanged","checkCustomerCode","getInstallStatus","getNextStepIndex","getPrevStepIndex","submitForm","onButtonShortcutClicked","wizard","coreIsInitialized","webpackContext","req","webpackContextResolve","__webpack_require__","isListEmpty","listFocused","localActiveIndex","currentToggle","toggleAll","changeCheckbox","seprator","selectItem","valueIndex","resetLocalActiveIndex","ID","localArray","findNextItem","nextIndex","findPrevItem","prevIndex","foundItem","currentStatus","$links","_component_month_period_card","filterOptions","filterValue","filterMonthData","filterChanged","primary","virtual","filterExistingPeriods","filteredSubPeriods","changeSelectedPeriod","onResetPeriods","getPeriods","monthPeriodCardOptions","insertPeriod","_withDirectives","_vShow","monthPeriodCard","currentSalaryPeriodObj","behavior","inline","periodItems","existingPeriods","getAllPeriods","setSalaryPeriod","manipulatePeriodData","currentFiscalPeriod","jalaliDateConverter","miladyDateConverter","diffMonth","convSalaryPeriod","ConvertedSalaryPeriod","pMonth","SubPeriod","createPeriod","lastActivePeriod","foundPeriod","foundNewPeriod","calcFilter","filterState","personnelList","tableKey","selectPersonnelButton","getPersonnelList","formManager","defaultFactorBunch","factorBunch","taxPercent","percent","tollPercent","autoFactorCode","allowOutOfDateFactor","allowNegativeSale","checkingSalePriceBaseOnBuyPrice","negativeInventoryCheckType","productSettings","orderedProductSearchPriorities","Field","moveUp","moveDown","SearchMethod","searchMethod","searchMethods","FindStop","float","saveSaleSettingsButton","getSettings","loadFactorBunches","settingSale","useFactorInventory","productSearchPrioritiesJson","currentIndex","dest","Priority","Validator","_Validator","_callSuper","_inherits","VRequiredIf","_VRequired","mustHasValue","VRequiredIfEmpty","_VRequired2","_VRequired3","expect","VGreaterThan","_Validator3","nullable","toInt","VLessThan","_Validator4","_Validator5","VIranPostalCode","_Validator6","VEmail","_Validator7","rejex","VRegex","_Validator8","_Validator11","validator","errorGenerator","_superPropGet","nameResolver","dataModel","validatorModel","_testCol","vs","metaDataModel","convertedData","fieldNames","unique","retrieveDropdownButtons","listButtonDisabled","addButtonDisabled","onAddFloatingHandler","clientSearch","showFloatingsList","toolip","showFloatingsAdd","floatingValue","productFloatingList","productFloatingsModify","displayText","previewSource","showEntityTypeInPopover","displayHtml","_$data$settings$popov","_this$params2","changedOption","translator","configTranslations","debtor","creditor","visualized","zeroString","customerCodeOptions","customerDetails","recaptchaToken","applyDetails","customerCodeChanged","dropDownData","dropDownText","frequentDescriptions","onInputTextChangeEmit","inputChanged","disable","addDescription","modalBtn","modifyModal","_component_FrequentDescriptionsList","FrequentDescriptionsList","addClicked","saveNewDescriptions","refreshFrequentDescription","frequentDescsList","newDescriptions","FrequentDescriptionsModify","hideEmptyMsg","enableInputTextChangeEmit","allFrequentDescriptions","frequentDescsDrp","typedText","measureUnits","moadianUnits","targetField","refreshProductMeasureUnits","measureunits","SalaryItemDataTypes","SalaryItemFillTypes","SalaryItemActionTypes","PersonnelGenderTypes","PersonnelMarriageTypes","PersonnelMilitaryStatusTypes","PersonnelSacrificeStatusTypes","PersonnelEducationalStatusTypes","InsuranceTypes","InsuranceBaseTypes","PersonnelEmploymentAsTypes","PersonnelEmploymentTypes","ContractTypes","LoanInstallmentStatusTypes","SavingBoxTransactionStatusType","ExcelTypes","ExportTypes","DBFTypes","FinancePaymentWays","FinanceBankCodes","MoadianBrokers","FieldExportTypes","_component_nk_multi_currency_view","makeAllSeen","notifications","isSeen","showDescription","part","getIcon","senderUser","faDate","fromNow","previewSourceNotification","fiscals","get_notifications","makeSeen","notification","previewCenter","previewModeAndEditing","focusNextElement","host","$host","FindNext","ti","MinTabIndex","MaxTabIndex","minTabindex","maxTabindex","otherHost","$parentTabIndex","tabIndexValue","groupCollapsed","groupEnd","Next","getAttribute","Previous","TabOrderFunctions","keyPrepend","tabindexes","tabscopes","$scope","attrName","disableds","ShortcutProvider","_collection","scg","defaultSc","selectedFiscal","fiscalPeriods","getDocumentsList","documents","selectedSourceAccount","dropdownSourceAccountOptions","formLocked","selectedTargetAccount","dropdownTargetAccountOptions","checkAccountsButton","checkAccounts","documentListOptions","documentItems","changeAccountsButton","changeAccounts","changeAccountRoutes","groupSelects","isRowSelectable","isSuccess","rowGroup","newAccountId","changeAccountsBasedOnEntityType","documentHeaderIds","DocumentAccounts","failed","groupedByEntityType","groupBy","processEntityTypePromises","entries","tableRendered","selectablePeriod","selectAsCopy","groupPrintButton","groupPrintDocument","selectDocumentButton","docsList","buttons_refresh","DocumentSettings","showModifyDocument","editDocumentButton","changeDocumentsAccountButton","ChangeDocumentsAccount","changeDocumentCode","_this$settings","_this$selectedRow","_this$selectedRow3","_this$selectedRow4","_this$selectedRow2","wait1","documentHeader","forceUpdateCode","Remove","ClearAll","Clear","namespaced","cache_objects","mutations","me","reserved","commit","expiresAt","setSeconds","_ref3","_ref4","cache_items","cache_expiredItems","Update","rootGetters","getByCode","getById","getByIds","leaves","takeIds","addChildren","isInChildrenTree","scanAccountId","SetItems","autoAccounts","autoFloatingCenters","cacheObj","_autoAccounts","root","autoAccount","selectableAccounts","getItemsByKey","rootState","includeSelectable","autoAccountTypeKey","autoAccountUserId","selectableItems","originalAccount","getFloatingCentersByAutoKey","autoAccountType","Prepare","Add","SetAsDeleted","SetAsUpdated","Commit","createds","updateds","sync","isDirty","fetch","modify","_ref5","getByKey","getActiveByKey","ModifyBalances","SetStatus","AddOrModified","Added","Deleted","newCenter","foundParent","_center$parent","parentsChild","setStatus","ignoreServerSide","_centers","_ref6","_ref7","modifyCenters","_ref8","updateCenters","_ref9","includeRelatedAccounts","_ref10","_args5","getCenterLevelOfAccount","_$head","leavesByGroup","groupKey","allFilteredByGroup","getCenterProfile","_rootGetters$accounts","getMaxCenterTreeLevel","_$maxBy","getMetaDatasByCenterId","_ref11","_center$metaDatas$fin","schema","delegateYield","UNCHANGED","Keys","ADD_CATEGORIES","SET_ALL_AS_UNCHANGED","CLEAR","cat","allInType","derties","setUserAccountDetails","customer","SetFiscalPeriod","SetWorkshop","SetSalaryPeriod","operationClaims","modules","salaryPeriod","workshop","clientDifferenceDateTimeByServer","fiscal","serverDateTime","setFiscalPeriod","setWorkshop","getClientDifferenceDateTimeByServer","getUser","getCurrent","userHasPermission","typeKey","checkAccess","tk","typeName","typeNames","checkAccessAccountBalanceObserve","checkAccessFloatingCentersBalanceObserve","checkAccessProductBalanceObserve","checkAccessChequeOperationAmountAndPriceObserve","checkAccessSaleBuyFactorListObserveFinancialColumn","SetForms","SetSystemForms","forms","systemForms","refreshSystemForms","findFormByKey","findSystemFormByKey","tableConfigs","tables","addRange","objects","foundTable","row_IDKey","_table$items","idKey","addedItems","newItems","_ref12","addObject","_ref13","_ref14","removeObject","_ref15","clearObjects","_ref16","getItemsInTable","getObject","ADD_BANKS","banks","updates","CLEARALL","CLEARCUSTOMER","SET","ADD_FISCAL","ADD_COMPANY","ADD_CUSTOMER","ADD_CUSTOMERCODE","ADD_REVIEWMODEDATA","ADD_WORKSHOP","ADD_SALARYPERIOD","_mutations","remote","adds","additional_data","clearAll","hasFiscal","hasCompany","hasCustomer","hasWorkshop","hasSalaryPeriod","REPLACE_ALL","todayRates","today","gregorianYear","gregorianMonth","gregorianDay","companyCurrencies","hasMultiCurrency","getCurrency","properties","getByName","getByGroup","floatings","selectiveValue","allWithDisableds","ADD_WAREHOUSES","getByCompanyId","SetFormItems","AddItemToForm","DeleteFormItem","newItem","foundPrint","printData","frequentDescriptionsList","fetched","preventCuncurrent","changelogs","fetchChangelogs","ADD_SCHEMAS","ADD","REMOVE","requests","codes","itemNotExist","itemExist","clearFormCodes","clearFormCodeByKey","isCodeInNotFoundArray","broadcastItemNotExist","Socket","invoke","setReportParameters","setEntitiesStructure","ADD_USERS","onlineUsersGUID","users","onlineUserIdList","getOnlineUserDetail","userIds","usersWithDetails","updateOnlineUsers","ADD_NOTIFICATION","ADD_NOTIFICATIONS","ADD_Users","UPDATE_NOTIFICATIONToSeen","REPLACE_NOTIFICATION","notificationId","makeNotificationSeen","notificationIds","addNotifications","rowNotifications","convertDateToFromNow","senderUserId","getUsersForNotification","sendNotification","parentThis","senderId","receiverId","_objectDestructuringEmpty","userDetail","receiverUser","addNotification","hasUnseen","unseen","addTabToRecentTabs","isTabInRecentTabs","getRecentTabs","getCurrentTab","workshops","getActives","salaryPeriods","vuexLocal","VuexPersistence","storage","vuexLocalAppStates","vuexLocalUser","MODAL_SHOW","MODAL_CLOSE","UID","DIALOG_SHOW","DIALOG_CLOSE","DIALOG_CLOSE_All","MODAL_CLOSE_All","MENU_SOW","lastId","hide_show","addModal","uniqueUIDS","removeModal","addMessage","removeAllMessage","removeAllModals","cache","Cache","Accounts","AutoAccounts","appStates","AppStates","FloatingCenters","Forms","appContext","AppContext","Clipboard","floatingCenterCategories","FloatingCenterCategories","UserAccounts","currencies","Currencies","Properties","productFloatings","ProductFloatings","Warehouses","FiscalPeriods","clientprint","ClientPrint","frequentdescriptions","FrequentDescriptions","changelog","metadata","MetaData","concurrentRequests","ConcurrentRequests","productPriceLevels","ProductPriceLevels","productMeasureUnits","ProductMeasureUnits","productGroups","ProductGroups","productPriceGroups","ProductPriceGroups","formCodes","FormCodes","socket","productClassifications","ProductClassifications","FactorBunches","QueryDesigner","onlineUsers","OnlineUsers","Notifications","tabHistory","TabHistory","Workshops","SalaryPeriods","createStore","plugins","plugin","pageType","addAttachment","btnEdit","deleteAttachment","editBtn","editAttachment","SourcePreviewLabel","_oldVal$transaction","_val$transaction","loadAttachments","FactorAttachmentsModify","entityDescription","entityTotalAmount","factorHeaderId","isInitial","_this$settings$transa","EntityIds","EntityType","attach","transactions","invalidRows","getAttachments","initTable","hamburgerToggler","_component_nav_menu","returnParent","onNavigate","onExecuteFunction","executeFunction","onFocusedItemChanged","focusedItemChanged","menuSelectedItem","menuFocusedItem","menuOpenedItem","menuHash","showNotificationPopup","unseenNotification","userImage","userImageOptions","userModify","userFullName","userLogout","userImageOptions2","helpSidebarIsFocus","_component_favorite_tabs","currentTabId","favTabsVisible","onVisibilityChanged","searchIconClicked","_component_nk_tabs","tabsKey","onRemoved","onCleared","tabs_cleared","activeTabChanged","_component_nk_tab","tabButtonsChanged","appRefreshClicked","checkVersion","backVersion","frontVersion","fiscalSelectorVisible","_component_nk_popup","fiscalPeriodSelectorOptions","selectedFiscalPeriodChanged","dateTime","showHideSalary","workshopSelectorVisible","workshopSelectorOptions","selectedWorkshopChanged","openMonthSelector","periodDate","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","notificationPopupOptions","notificationPopupStatus","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_component_HelpSidebar","_$data$tabs$find","_component_nk_general_search","_component_nk_modal_host","modalPages","windowIsFocus","_hoisted_51","_component_Tree","treeDirection","customFields","checkedColor","unCheckedColor","allAppStates","prepareAppStatesData","sortedAppStates","splittedItem","foundIndex","getLastLevelChecked","waitObj","tryRemoveKey","forceFlush","addToList","favoriteTabs","checkedTabs","recentTabs","maxHistories","slicedRecent","sidebarIsVisible","toggleSidebar","helpEndpoint","currentHelpTag","frameBorder","viewBox","searchVisible","loading","cx","cy","fill","displayTextChanged","clearSelection","searchResult","enterPressed","GroupBy","groupedBySystem","groupedByEntityTypes","rowClicked","loadExtraDetail","isLoading","isExpanded","_component_DocumentPreviewMinimal","detailId","_$data$documentData","documentData","_$data$documentData2","_$data$documentData3","_$data$documentData4","maxCenters","_$data$documentData5","_detail$account","_detail$account2","_$data$documentData6","colspan","_$data$documentData7","_$data$documentData8","_$data$documentData9","DocumentPreviewMinimal","selectorVisble","cacheData","documentId","loadDocument","isDetail","docId","requestData","searchType","navigateFunc","FavoriteTabs","GeneralSearch","HelpSidebar","monthSelector","initDataLoaded","Fiscals","WorkshopSelector","userImageUrl","get_unseenNotification","_this$getSalaryPeriod","searchInRoutItems","_this$$route$params","foundSalary","appIsReady","navMenu","u","NotificationComp","Reserve","windowFocusChangeCheck","close_all_dialogs","close_all_modals","bodyClicked","initData","splitBackVersions","versionDetailsJson","appBody","generalSearch","forceToShowTab","localAppVersion","setItem","foundVersion","currentBackVersion","currentFrontVersion","versions","ShowUpElementWithAnime","focusPage","getChildInstance","refresh_accounts","refresh_auto_accounts","refresh_appStates","refresh_floatingCenters","setFloatingCenterStatus","refresh_forms","refresh_system_forms","refresh_appContext","refresh_categories","refresh_banks","useraccount_clear","refresh_currencies","refresh_TodayRatesCurrencies","refresh_properties","refresh_product_floatings","refresh_warehouses","refresh_fiscalPeriods","refresh_frequent_descriptions","refresh_metaData","refresh_product_groups","refresh_product_measureUnits","refresh_product_priceLevels","refresh_userAccount","refresh_product_classifications","refresh_factor_bunches","refresh_notification","refresh_workshops","refresh_salaryPeriods","addNotificationToStore","mapMutations","update_accounts","update_floatingCenters","addOnlineUsers","selectedSalaryPeriodChanged","parentForAddingShortKey","routeDirectory","directory","instanceId","$els","$startup","$tabindexes","fiscalPart","workshopSelector","notificationPart","notificationPartSm","previewPart","favTabs","helpSidebar","helpToggler","cacheCleaner","forceEndWaiting","Options","getDataCount","floatingCentersCount","tryFlush","authenticate","fiscalName","bypassCloseConfirmation","reload","focusCurrentTab","needOldPassword","UserInfo","hideMenu","showMenu","unbind","sockets","nikanNotification","vibrateElement","centerChanges","notifyCenter","newAccount","refresh_centers","update_centers","allProducts","string","_component_nk_dropdown_product_group","_component_nk_dropdown_product_classification","classification","productKind","_component_nk_dropdown_warehouse","defaultWarehouse","moadianCode","isSerialized","taxChanged","isTaxFree","percentOptions","toll","units","showFloatingList","floatingsTableData","priceTableToggler","pricesTableData","prices","orderPointToggler","orderPointTableData","orderPoints","stocksTableData","stock","addMetaDataButton","productCardex","originalProduct","floatingTableToggler","getDefaultData","changeExperimenter","otherObj","getLastPrices","subSearchField","unit","unitTable","DropdownProductMeasureUnit","productCostFormulaItems","operatorFloatingCenter","autoGrowWidth","FloatingCenterMultichoice","temp_floatings","perc","aggregatesEnabled","getWarehouseStocks","fillStockData","getFactorStocks","showProductCardex","showCardex","SaleSettings","fillProduct","trySaveProduct","newProductButton","saveProduct","getProductFloatingList","getWarehousesList","registerTabOrders","appendWarehousesToOrderPointTable","getProductById","refreshProductFloatings","getProductFloatings","loadProductPriceLevels","createWarehouseColumns","barcodeTable","priceTable","floatingTable","formulas","Id","NavigateToProduct","isTollFree","ProductFloatingList","clonedPricesTableData","priceTableDataRow","lastBuy","lastBuyPrices","generateKeyFromValues","lastSale","lastSalePrices","lastBuyPrice","lastSalePrice","stockTable","stocks","finalData","floatingStocks","joinedFloatingNames","smartStocks","smartStock","smartText","appendPriceLevelsToTable","columnGenerator","SumProperty","_this$componentOption","replaceProductFloatingIdByProductFloatingObject","floatingsClone","createProductFloatingJsons","convertTableRowToNormalStructure","pfId","floatingsTableRow","getProductFloatingsIds","inputCode","localData_cloned","originalProduct_cloned","changed1","changed2","changed3","changed4","convertPriceTableToNormalStructure","convertOrderPointTableToNormalStructure","d2","performance","floor","prepareFloatingsTableData","preparePricesTableData","prepareOrderPointsTableData","floatingRow","pf","uid","localDataPrices","findPrice","preparePriceCols","priceTableData","k1","k2","localDataOrderPoints","findOrderPoint","prepareOrderPointCols","priceObject","originalPrice","deletedPrice","orderPointsTableData","orderPointTable","orderPointObject","originalOrderPoint","orderPoint","deletedOrderPoint","priceHelper","productPriceHelper","formulaTable","updateModelValue","isDisable","accessToSeeAmount","dropValueSetByAutoAccount","preventRecursive","changeValueStatus","isDebtor","filterByOpposites","isSensitiveToFormNameChange","accountOppositeSides","DebtorRemaining","CreditorRemaining","AlwaysDebtor","AlwaysCreditor","Undefined","account_leaves","account_all","localDisabled","autoAccountTypes","autoAccountTypeKeys","_this$localValue","findAndSetDropdownValueByForms","setDropdownData","findAccountsByKeys","_this$localValue2","_this2$localValue","getDropDownOptions","setDropdownValueByForm","targetAccounts","defaultAcc","defaultAccount","showAccounts","isTokenValid","validatePassowrd","recover","_component_router_link","to","validateToken","Token","wc","NewPassword","ConfirmNewPassword","truncate","firstDotIndex","lastDotIndex","SR","EventEmitter","SocketConnection","_EventEmitter","connection","listened","toSend","offline","_isMounted","displayed","closeOnClick","closeButton","pauseOnHover","showCloseButtonOnHover","newestOnTop","maxToasts","transition","pauseOnFocusLoss","hideProgressBar","toastClassName","bodyClassName","onMounted","_initialize2","con","_args2","withUrl","withAutomaticReconnect","build","onclose","displayErrorToast","_initialize","dismissErrorToast","_start","_args3","_stop","_authenticate","accessToken","methodName","_this$socket","send","once","_this4$socket","_invoke","_len2","_key2","_this$socket2","_this5$socket","socketInstance","selectAccountButton","loadAccountsList","setSelectedAccount","changeApplied","treeChanged","focusInput","onFocusout","focusOut","tooltipTitle","clearable","ancestorName","dropdownIsEmpty","togglerClicked","inputIsFocused","selectorShow","localComponent","focusAndSelectionAgGrid","selectedItemChanged","onActiveIndex","componentActiveIndex","onRendered","selectorRendered","allButtons","elementRect","pageXOffset","inputOpts","displayTextSetTimeout","userIsTyping","timeoutUserIsTyping","isEnterPressed","lowerCaseSearch","autoSelectWhenOneItemExist","componentButtons","retreivedDataFromServer","inputOldValue","selectorWait","lastSearchRequest","innerSet","lastSelectedItem","local_selector","itemDisplay","btn","agServerSideStatus","agGridSearch","serverSearch","_this$settings$compon","selectorId","searchTerm","input2","dontFocusOnDisable","getValidValue","arrowDownOnInput","focusComponent","getActiveIndex","defaultFindExactMatch","getInput","closeSelector","state_open","openSelector","state_close","api_backToLastSelectedItem","checkDropPosition","dropHeight","dropTop","dropRight","rect_selector","rect_nkPage","rect_bar","bar","spaceTop","spaceBottom","dropBottom","keepInputFocused","_this6$filteredItems","$bar","$selector","leftouts","rect","widthFromSettings","closeOnScroll","refocus","isSelector","isRoot","ignore","exist","cl","contains","refreshRemote","getDataFromUrl","resetComponentActiveIndex","_this9$settings","_this9$$refs$comp","inputsParent","rowIdentifierKey","getRequestData","getDataFromUrlWithSearch","setFoundItem","scannerMood","_this13$$parent","foundEvent","Handlers","_that$selectorWait","refreshServerSideTimeout","cloneFilter","refreshServerSide","purge","selectedItemsChanged","mergeItems","removeAllItems","_hoisted_52","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_61","_hoisted_62","_hoisted_63","_hoisted_64","_hoisted_65","_hoisted_66","_hoisted_67","_hoisted_68","_hoisted_69","_hoisted_70","_hoisted_71","_hoisted_72","_hoisted_73","_hoisted_74","_component_nk_dropdown_bank","codeBlur","allPersonnel","stringNumber","genderTypes","tabChanged","personnelCategoriesList","shabaNumber","hideContractTabs","marriageTypeChanged","marriageTypes","Single","militaryTypes","sacrificeTypes","educationTypes","insuranceBaseTypes","insuranceTypes","jobCodes","setTaxFreePercent","taxFreePercent","taxFreePercentage","jobFields","cooperateTypes","positions","getMetaDataListOptions","IsEmpty","loadCooperateTypes","taminBranchList","_component_download_excel","exportExcelFields","worksheet","changeInputExcelFile","importFromExcelBtn","exportToExcelBtn","JobCode","jobCodeList","loadJobCodes","excelFileInput","importExcel","errors_1","addError_1","rows_1","rowCodes_1","ProductImportErrors","exportExcel","generate","workplaceStatuses","WorkPlaceStatus","workplaceStatusList","loadWorkplaceStatus","workplaces","JobField","jobFieldList","loadJobFields","Position","New","positionList","loadPositions","socialSecurityCode","PersonnelCategoryModify","isPrepared","fillPersonnel","emptyValue","showWorkPlaceSelector","showJobCodeSelector","showPositionSelector","personnelCategory","personnelCategoryModify","money","fieldType","showCooperateType","banksDropdown","contractValidators","validatorRequiredIfInsuranceTypeIsSet","CloneDeep","getPersonnelById","getEssentialData","focusOnCode","showJobFieldSelector","JobFieldSelector","PositionSelector","NotInsurance","WorkPlaceStatusSelector","loadWorkPlaceStatuses","JobCodeSelector","getPersonnelCategories","getCooperateTypes","CooperateTypeSelector","personnelId","getPersonnel","retrieveIsEmpty","getPersonnelByCode","navigateToPersonnel","Extend","Contractual","PersonnelSelector","withEmit","IsEqual","withClearForm","emptyFields","contractChecker","loadPersonnel","prepareComponent","enOrDigits","NeedOldPassword","oldPassword","showPasswordValildators","expirationDate","selectedRoles","refreshOperationClaims","multiChoice","selectedClaimRow","claimTable","_component_nk_change_log","changeLog","userRoleNames","dedicateOperationAccesses","prepareLockedRow","isDedicate","addClaimRow","deleteClaimRow","operationClaim","reverseDir","translateSplitter","filterOperationClaims","allOperationClaims","toBeExcludeIds","getUserData","operationAccesses","loadAllOperationRoles","results","fetchedRoles","loadOperationClaims","appContextRefresh","_i2","_Object$keys2","stateSyncer","originalRoles","IncludeRoles","LoadRelatedData","includeDedicate","records","tabid","col_setActiveCol","row_tryAddEmptyAt","comment","_modelValue","isNumber","hasIcon","localMaxLength","onSearchButtonClicked","Types","STRING","PASSWORD","NUMBER","NEGATIVE_NUMBER","FLOAT","NEGATIVE_FLOAT","MONEY","NegativeMoney","CODE","PERCENT","STRING_NUMBER","INTEGER","NEGATIVE_INTEGER","Time","MAXINTVALUE","MININTVALUE","specialChars","Inputmask","definitionSymbol","inputmask","maskOptions","rightAlign","mask","allowMinus","digits","autoGroup","getMoneyMask","clearIncomplete","definitions","greedy","unmaskedvalue","_this$input$inputmask","_this$input","getMaskedValue","digitsOptional","shortcuts","clipboard_text","newStr","readText","hideDisabledCheckboxes","systemKey","nodesToSelect","setNodesSelected","usedSalaryItemIds","notUsedItems","used","systemSalaryItems","pickerClicked","searchBlur","nowFromServer","setDefault","renderMask","initValue","checkChanged","isOnYear","isOnMonth","selectPart","dv","fixValue","GetSyncedDateTimeByServer","validate","pickerConfig","getPicker","isPickerOpened","destroyPicker","parseDate","initialValue","initialValueType","togglePicker","destroyAllPickers","_id","removeData","$view","setDirty","isCompleted","disableErrorClass","completed","hasAttribute","gr","toCalendar","insertNum","setPartDefaultValue","isOnDay","phIndex","firstSep","lastSep","stay","isNumValid","fixDayBasedOnMonth","fix","createTextRange","collapse","moveStart","moveEnd","setSelectionRange","getPart","useMinDateAsDefault","minYear","origValue","reprValue","partLen","prevNum","getPartValidValue","n1","maxYear","days","inputString","jalali","jalaliPat","persianDateArray","pd","dirty","setChanged","jselector","origVal","stepKeys","step","stepClicked","resultStatus","Status","Success","activeStep","beginning","selectReference","selectedResourceFiscalPeriod","getSalaryPeriods","dropFiscalPeriods","selectedResourceSalaryPeriod","helperTableChb","copyHelper","settingChb","usageChb","copyUsage","personnelTable","selectedContracts","onDestroyed","review","textApproval","nextButton","nextButtonClicked","prevButton","prevButtonClicked","StepKeys","Step","resultMessage","Beginning","Pending","totalSteps","activeStepHandler","prepareStepCounter","unluckedSteps","lastStep","waiting","documentNumber","finishButton","SelectReference","PersonnelList","selectedFiscalPeriod","getContracts","stepResultHandler","refreshButtonHandler","runStepOperation","autoAccountButtonHandler","AutoAccountModify","filterByForm","stepOperation","updateCompKey","withinSteps","nextStep","previousStep","finishButtonClicked","_component_Editor","onBlurCode","allItems","selectedDataType","selectedFunctionType","filteredFunctionTypes","functionType","selectedDataEntry","dataEntry","selectedItemType","ignoreNonPrivilegeCalcChanged","itemType","defaultValueTime","defaultValueDate","timeMaxValue","maxValue","includeInsurance","includeTax","resultFunctionCode","resultMethods","continuous","nonCash","ignoreNonPrivilegeCalc","Privilege","addToEditor","contractFields","pName","expression","jsonFormula","itemsWithoutCurrent","modifyVariable","variableButtons","minArg","maxArg","argument","Computational","ConvFunction","_super","__extends","SalaryItem","Numerical","Money","fillLocalData","getResultFunctions","rootExpression","handlerBtnVariableEdit","handlerBtnVariableDelete","nkTag","ConvSalaryItem","maxValueDate","jsonValue","formula","getVariables","deleteVariable","charItems","editor","addMultiply","addDivide","addMinus","addPlus","addOpenPerantez","addClosePerantez","addNumber","addSalaryItem","addVariable","addContractField","getItemListData","Display","getFunctions","getContractFields","reset","trunc","toLocaleString","minimumIntegerDigits","closeWindow","getJsonValue","getFormatValue","salaryItemVariableId","navigateTo","salaryItemList","originalProductPrice","savePriceGroupButton","saveProductPriceGroup","saveAndNewProductPriceGroupButton","parentScope","fillNodes","getProductPriceGroupDetails","productPriceGroupName","productPriceGroupParent","productPriceGroupData","postData","productPriceGroupId","autoAccountsBtn","typeKeys","accountDropDownOptions","excludeTypes","isFormNameArray","saveSelectAccountButton","allForms","account_getById","prepareTypeKeys","toggleExpand","submitIcon","fadeOut","fadeIn","unlockedSteps","updateTypes","updateMode","validateStep","multiple","fileChanged","downloadSample","dragover","onDragleave","dragleave","inputClicked","selectedFile","sysCols","headersData","multichoiceOptions","fileCols","FLOATINGCENTER","sortedSchemas","currentSubject","CONTRACTSALARYITEM","isSaveSucceed","lottie","resultCodes","mapErrors","DEFAULTMAPINDEX","DOCUMENT","PRODUCT","PERSONNEL","fillSalaryItems","currentlySelectedFileCols","Monthly","tryMatchFields","foundExactCol","foundFileCols","createEmptyMap","prepareFileCols","animationManager","currentStepIndex","lastStepIndex","saveMap","formData","upload","goToNextStep","fetchSysFields","fetchFileFields","uploadHandler","excelFile","loaded","total","fileValidator","prepareDataForSave","collection","BarcodeValue","UnitCode","BarcodeType","UnitRate","UnitIsPerimary","MetaDataSchemaCode","MetaDataSchemaValue","SalaryItemKeys","SalaryItemCode","SalaryItemValue","dragarea","background","PersonnelId","Bachelors","NotHaving","Daily","Other","isLock","ContractMetaData","_component_nk_review_mode_bar","appLoaded","_component_router_view","addModule","WindowsManager","_LOCALSTORAGE_TIMESTAMP_KEY","_LOCALSTORAGE_KEY","wId","timestamp","onbeforeunload","removeWindowFromLocalStorage","setTimestampToLocalStorage","confirmationMessage","returnValue","setOnBeforeWindowsCloseEvent","setLiveKey","makeAliveWindowLocalStorage","redirectToLoginIfRequired","getWindowKeyItems","liveKey","windowKeys","lastTimestamp","getTimestampFromLocalStorage","win","getWindowFromLocalStorage","setWindowToLocalStorage","windowsManager","nextPage","windowId","PrepareEndpoints","initWindowsManager","lanuchRequired","customerCodeExist","migrationRequired","installed","loggedIn","currentRoute","_value","companyInput","fiscalPeriodInput","tagClicked","removeTag","calculateWidth","dropdownSearchRequestFilter","cloneOptions","mrg","pdg","$col","SalaryPeriod","CreatePeriodOptions","responseOptions","sendButton","onlyCurrentCopmany","excludeCurrentPeriod","selectPeriodButton","allFiscalPeriod","isZeroLength","_this$status$fiscalPe","targets","createInstance","mergedOptions","timeStamp","seek","restart","baseMessage","propertyName","running","_this$data","specialOperationRole","_this$data2","selectedOperationRole","operationRoleChange","searchQuery","searchQueryChanged","selectAllToggler","groupedClaims","_$data$selectedGroup","groupChanged","selectedGroup","extractGroup","routeGroupSelected","subGroups","subGroup","computedRoutes","treeOptions","treeItemChanged","getAllOperationClaims","getAllOperationRoles","_this2$data$operation","_this2$data$specialOp","refreshGroupedClaims","computeRouteClaims","claimCheckChange","recursiveStateChanger","treeItems","_item$items","_token$split","_token$split2","_slicedToArray","subgroupName","claimGroupObj","groupObj","claimsSubgroupObj","subgroup","claimObj","forceState","prepareTreeDataRecursive","tbs","parentToken","refreshTree","_this5$claims$i$key$s","_this5$claims$i$key$s2","mainGroupName","subGroupName","mainGroup","loadRelatedData","_this$selectedOperati","originalProductGroup","saveProductGroupButton","saveProductGroup","saveAndNewProductGroupButton","getProductGroupDetails","productGroupName","refresh_productGroups","productGroupParent","productGroupData","productGroupId","setTodayButton","setToday","enumsContainer","enumDropdown","currentDate","getSmartDate","numberInput","stringInput","isOutline","resolveData","newVal","currentCompany","currentFiscal","prepareEnumItems","enumTypes","allEnumItems","exportToCsv","exportToPdfDialog","paperSize","orientation","dataOptimizer","dataRow","exportHandler","csvStringBuilder","csvString","rowItem","colItem","encodeURIComponent","prepareDataTable","head","visibe","foot","ws","XLSX","aoa_to_sheet","wb","book_new","book_append_sheet","Workbook","RTL","setAttribute","PdfExportDialog","exportToPdf","dataTable","doc","jsPDF","hotfixes","compress","font","addFileToVFS","addFont","setFont","autoTable","showFoot","halign","headStyles","fillColor","footStyles","frequentDescriptionsTable","PersonnelCategory","loadCategories","saveCategories","categoriesList","rerenderGrid","newProductFloating","newProductFloatingButton","ProductsFloatingModify","editProductFloatingButton","editProductFloating","deleteProductFloatingButton","showDeleteProductFloatingDialog","productFloatings_all","deleteProductFloating","floatingInfo","_component_nk_tree","productPriceGroupTree","selectedProductPriceGroup","onSetSelected","setSelectedProductPriceGroup","addChildProductPriceGroup","editProductPriceGroup","deleteProductPriceGroup","productPriceGroupInfo","selectPriceGroupButton","treeview","insertPriceGroupButton","addRootProductPriceGroup","getProductPriceGroupData","refresh_productPriceGroups","productData","findMaxChildCode","centerCategory","addTreeNode","newNode","ProductPriceGroupModify","getParentNodeById","deleteProductPriceGroupConfirmed","siblings","searchInput","fillForm","File","getUploadedFilesList","deleteUploadedFile","AttachmentId","downloadUploadedFile","attachmentId","elementId","_mergeProps","setValue","componentProps","generateProps","getterConverter","focusOnComponent","originalValue","dataUpdated","getValueSetterProperties","getNewRowData","newRowData","handleCellLeaving","canLeave","isRowValid","navigateEditableCell","navigateVertically","navigateHorizontally","newRowIndex","canAddRow","getGridOption","addNewRow","foundEditableCell","firstEditableCol","getColumns","allColumns","newColumnIndex","_$data$settings","_$data$localData","deletePolicyClaimsState","_$data$settings2","addPolicyClaimsState","_$data$settings3","editPolicyClaimsState","_$data$backupDetail$c","backupDetail","backupDate","companyCount","userCount","companyList","_$data$backupDetail$c2","nikanFiscalPeriodInformations","lastDocCode","lastDocDate","restoreButton","restoreData","restoreAsReviewButton","getBackupInfo","reviewMode","activeWorkshops","redirect","Root","Login","Install","Launcher","Migration","PasswordRecovery","createRouter","history","createWebHistory","beforeEach","showProductMeasureUnits","hideManageMeasureUnits","AppTitle","tickTile","setTickTitle","tickTitle","intervalId","setInterval","defaultTitle","colKeys","splitName","bstr","wsname","SheetNames","Sheets","sheet_to_json","bankPaymentObjIndex_1","ind2","splittedProp_1","readAsBinaryString","smartUnit","uValue","smartUnitByFloatRateValue","currentRate","toFixedRoundedNumber","decimalPart","resultUnit","decimalParts","ucount","smartUnitByIntRateValue","hasFloatRate","sortedUnits","source1","source2","selectProp","insideSource1","insideSource2","splitProperty","changeTimeToNow","momentDate","minute","processing","updateState","NikanLogger","logOnBuild","isDevBuild","debug","info","levels","freeze","timeEnd","_console","_console2","_console3","_len3","_key3","_console4","_len4","_key4","_console5","_len5","_key5","_console6","_len6","_key6","stopUserSelectOnTable","computedButtons","templatesIsOpen","templatesOptions","templates_selectedChanged","templates_buttonClicked","pb","headerCategoryLength","row_headerCheckboxClicked","headerCheckboxValue","headerCategories","headerCategory","gridSettingsEnabled","_component_GridSettings","settingPermissions","onChangeVisibility","onAggregateRowVisibility","onFilterRowVisibility","onTemplatesButtonClicked","settingButtons","_component_GridSelectMenu","onRow_headerCheckboxClicked","onValue_addAll","menu_addAll","onValue_removeAll","menu_removeAll","onValue_reverse","value_reverse","sortState","minmaxStyle","$___distance","lock","locked","col_pin","col_isSortable","sort_toggle","droppable","searchedCols","removeAllFilter","_component_FilterRow","onRemoveGridFilter","onSelectFilterMode","selectFilterMode","onSearchBlur","onRemoveFilter","noDataClass","loading2","_component_LazyRow","isRowDisabled","onCell_mounted","cell_mounted","onCell_focused_out","nav_leavingCell","activeCol","row_dbClicked","alaki","checkLastItem","unrender","onRow_checkboxClicked","row_checkboxClicked","onFocus_cellClicked","focus_cellClicked","onFocus_cellClickedByCtrl","focus_cellClickedByCtrl","aggregatesPermission","_component_Aggregates","onAggregateSelected","aggregateSelected","toolbarEnabled","_component_nk_filter","filterScheme","filter_closeFilterPanel","filterControl","filterBoxVisible","pager","numbers","pager_itemClicked","onGridResized","changeActiveIndex","setAsActive","activeGridIndex","localTemplate","getStatesByKey","saveAs","tableSettings","getActiveStatesByKey","newData","changeActive","tmpl","setCurrentTemplate","filterRemovebtn","numberFilterModes","filterMode","stringFilterModes","dateFilterModes","isRange","readyDropDownData","translated","inputOption","dateInput","dateComponent","prepareDropdownData","selectedRange","searchRange","activeClassManager","dropdownItems","getElement","isRangeToggler","getLodash","_component_ColumnsVisibility","exportPermission","_component_GridExporter","_x$aggregates","value_addAll","aggregateBtn","agg","aggregateSelect","valueForSelecteds","defaut","selectedData","called","setDefaultAggregates","merged","defaultNumberAggregates","$___checked","$___dirtyCells","$___valid","$___locked","fixedMinHeight","shouldRender","_component_grid_cell","colEditable","col_isEditable","col_isInDirtyList","$___invalidCells","getStyleRule","col_isRowNumber","col_edit","col_getProp","col_setProp","col_view","componentClick","SYSFIELDS_PREFIX","SYSFIELDS_DIRTYCELLS","SYSFIELDS_LOCKED","_row$SYSFIELDS_DIRTYC","col_validateColConfig","cellStyleRule","onIdle","cb","requestIdleCallback","nextTick","gridCell","renderOnIdle","unrenderDelay","unrenderTimer","renderTimer","_useIntersectionObser","useIntersectionObserver","isIntersecting","rootMargin","SYSFIELDS_DROPZONE","SYSFIELDS_DRAGGABLE","SYSFIELDS_RESIZABLE","SYSFIELDS_VALID","SYSFIELDS_INVALIDCELLS","SYSFIELDS_ANGELS","SYSFIELDS_CHECKED","SYSFIELDS_SIZE","SYSFIELDS_INDEX","SYSFIELDS_DISTANCE","SYSFIELDS_ROWNUMBER","SYSFIELDS_ROWSTATE","SYSFIELDS_PAGE","ROW_NEW","ROW_CHANGED","ROW_UNCHANGED","ROW_DELETED","DIRECT_ROW_SELECTOR","Checkbox","Empty","Checked","Intermediate","GridSelectMenu","Aggregates","LazyRow","lastRowIndexClick","timeoutClickId","emitOnDbClick","paging","totalPages","preparePageRequest","_loading","prepareDeleteRow","prepareDataSourceModel","columnsVisibilityEnabled","aggregatesDefault","rowWidth","horizontalBoundery","disableAutoMoveFocusFirstCol","temporaryReadonly","errorCellNames","errorCellMessages","currentTemplate","cleanTable","tableIsFocusOut","clipboardMenuOpened","headCheckboxIcon","preservedValue","notFoundValueItems","originalBindData","newRowIdSequence","oldDataLength","scrollBarWidth","allItemsInClipboard","hasAggregatesPermission","hasExportPermission","nodata","aggregatesLength","aggRows","search_col","mergedSortableCols","sort_sortingCols","sorter","sort_multiple","tableWidth","getComputedStyle","flattedFilteredItems","endIndex","AppStateList","col_hasError","col_getCellUID","init_prepareSettings","init_cloneData","focus_scrollTop","g","table_OnFocusout","pager_move","pager_next","pager_prev","focus_activateFirstVisibleRow","templates_bodyClicked","enableAggregateRowByLength","loadGridStates","init_loadDataSource","focus_activateRowByValue","table_FocusCheck","templates_init","rowMounted","cellMounted","cleanedRow","insertIndex","value_add","init_footColsWidth","discardChanges","activeRow","row_isEmpty","ableToLeaveActiveCell","nav_leaveCell","validate_row","oldWidth","delayed","init_calculateRowWidth","init_prepareColumnsWidth","init_prepareFrozenCells","init_enableDropZones","init_enableDraggables","init_enableResizable","positionStart","getDefaultColumnsWidth","cell","cellStyle","autoCols","clientOffset","auto","autoColWidth","cs","paddingX","paddingLeft","paddingRight","borderX","borderLeftWidth","borderRightWidth","getAutoWidthColumns","getDefaultColumnsCount","defaultColumnsCount","col_sortCellsByOrder","borderLeft","getPropertyValue","borderRight","headCell","dropzone","interact","ondropactivate","ondragenter","draggableElement","relatedTarget","dropzoneElement","ondragleave","ondrop","draggedCellId","dropCellId","parentElement","dragIndex","dropIndex","cells","cellWidth","removeAttribute","ondropdeactivate","inertia","restrictRect","restriction","endOnly","autoScroll","onstart","onmove","dx","dy","webkitTransform","transform","onend","sizer","restrictSize","edges","restrictEdges","outer","widthDif","init_syncScrollbars","value_preserve","pager_getItems","valIsEmpty","row_NewID","row_getRowNumber","applyData","value_loadPreserved","focus_activeSelectedRow","col_applyAllAggregates","scrollToCell","focus_scrollToFirstCell","prepareDropdownFilterItems","stateTableSettings","editableChanged","init_prepareColumns","stateColumns","colState","orderCounter","defCol","autoGrowCurrentMinWidth","defAlignment","colOption","idCounter","columnId","nc","orig_width","col_extractWidth","basis","col_minmaxStyle","flexStyle","autoWidthColumns","hasAutoCol","gridMinbar","col_syncScrolls","init_refreshRowNumbers","fromRowNumber","sort_single","table_InnerFocused","focus_selectActiveRow","colIndex","focus_nextCell","nav_leaveRowCell","table_Clicked","row_prepareAutoResizeColumns","currentRow","$row","nav_getRowElement","col_prepareAutoResizeColumns","row_getEmptyObjectOf","areEqual","objectVal","otherVal","row_tryUnDeleteAt","row_deleteAt","focusFirstCol","validate_isCellValid","focus_nextCellWithDirection","focus_scrollPage","focus_scrollToActiveCol","row_addNewRow","focusNewRow","forceAdd","row_getEmptyObject","row_isLocked","row_isDeleted","search_isTableFiltered","newItemIndex","ignorePrepareNewRow","preparedNewRow","originalRow","value_emit","grid_buttons","extra","row_newRowsCount","value_switch","row_getFromOriginal","row_validationToast","col_reverseExtractWidth","col_getCell","$cell","col_rebindAutoResizeEvent","col_unbindAutoResizeColumns","$content","col_setWidth","targetComputedStyle","col_applyToColumn","frozenCells","col_applyAggregates","onlySelecteds","col_isInErrorList","col_isChanged","clonedRow","originalCell","clonedCell","experimenter","firstObject","otherObject","col_applyToColumnByColId","order1","order2","col_scrollTo","frozens","keepFrozens","backward","isRowIndicator","isFirstOrRow","distance","scrolled","ev","prevTop","prevLeft","preparing","transformed","colName","value_any","value_remove","checkeds","pure","validItem","value_indeterminate","value_snapshot","leave","nav_leavingRow","rowId","validate_isRowValid","cols","focus_selectCurrentLocation","focusSearchRow","dblClick","focus_setCurrentLocation","focus_setSilentCurrentLocation","insertRow","findRow","waitForRenderCell","rej","interval","focus_nextSearchCell","_this34","nextCol","$scroller","bodyContent","trans","middle","_this35","_this36","prevRowIndex","focus_cellDblClicked","_this37","hasData","_this38","cycled","ri","ci","allow","goNextRow","inRange","newItemAdded","focus_prevCell","search_pdate","search_number","search_text","search_array","_this39","convertDate2Persian","search_object","_this40","searchField","_this41","profix","tempTrans","_this42","_this43","search_keywordChanged","scroll","obj1","obj2","sort_number","sort_text","includeDefault","sortableCols","filter_init","_this44","filter_switchFilterPanel","filterPanel","filter_hasFilter","hasFilter","manual","_this45","pager_ensureNewRecords","pager_go","_this46","sets","_this47","hasDataSource","hasPreparePageResult","pager_prepare","pagingDecorated","itemsKey","objVal","srcVal","_this48","newRows","prepared","templates_generate","_this49","_this50","preperSearchHandle","filterRows","_this51","_this52","hideWait","_this53","buildTextFromData","tableCopyRowChecked","saveGridStates","aggregatesState","_this54","init_subscribeSearchKey","_this55","columnsSorting","_this62","_this56","nextRow","_this57","isEmptyRow","_this58","nextSelected","_this59","_this60","_this61","isInSearch","needsNextRow","rowIsValid","nextRowIndex","newColIndex","needsPrevRow","reverted","isDeleted","vm","selectedUser","formUserDropdown","selectedForm","formDropdown","grIndex","typesInActiveGroup","typeIndex","multiChoiceOptions","allAccounts","accountsWithType","accountsChangedInType","defaultAccounts","defaultAccountChanged","defaultAccountDropdown","defaultFloatingCenters","defaultFloatingCenterChanged","floatingCenterDropDown","defaultFormAutoAccountChanged","normalizedName","userEqual","hasUser","defaultFormAutoAccounts","saveAutoAccountButton","saveData","accountChildren","ft","filteredTypes","formAutoAccountTypeId","fetchData","getAllUsers","fc","showError","autoAccountItems","autoFloatingCenterItems","getSelectable","origins","autoAccountId","bankList","editableButtons","_format","bank_modify","preSelectedRowData","warehouseList","editProductWarehouse","WarehouseModify","warehouse_all","warehouse_modify","deleteWarehouse","delayForChildRender","entityTypeSupported","childRendered","Payment","Receive","Factor","Transfer","Payment_Hybrid","Receive_Hybrid","BuyOrder","ProductRequest","WarehouseReceiptHawala","AssetAcquisition","HawalaDocumentForm","preview_parent","decideSuitableComponent","prepareComponentOptions","splits","isPreview","productClassificationList","getProductClassificationList","newButton","newProductClassification","editProductClassification","productClassificationTable","_data$value2","_data$value3","_data$value4","_data$value5","_data$value6","_data$value7","_data$value8","_data$value9","refresh_productClassifications","productClassificationModify","deleteProductClassification","productClassificationId","showSalaryItemList","showSalaryItemModify","fetchSalaryItems","SalaryItemModify","SalaryItemList","showTable","_component_TreeItem","emitChanges","toggleCollapse","isCollapsed","_component_Checkbox","checkboxState","checkboxStateChanged","treeItemDataChanged","isHalf","lastLevelChildren","lastLevelItems","getComputeds","_item$_this$children","someVisible","halfChecked","someChecked","everyChecked","getLastLevelChildsFromThisSection","_item$_this5$children","countDifferentStates","dataState","rec","TreeItem","emitTreeData","treeInit","getField","isCustomFieldArray","changeAllItemsState","stateChanger","changeItemStateByKeyValue","foundedItem","foundedItemLevel","recursiveItemFinder","_item$fields$children","cloneData","addOrCheckStateFieldtoData","dataList","parentState","_dataList$i$fields$ch","getLastLevelItems","nextLevel","_item$_this5$settings","_item$_this6$settings","App","onSelectorOpened","accessShowCenterBalance","selectorLoading","selectorLoadingCounter","currentLinkedCenters","addCenterBtn","showCenterModify","listCenterBtn","computedGroup","_this$dropdownValue$r","setBaseAccountArray","setDefaultFloatingCenter","setDropDownOptions","hideDropDownBtn","calcDropdownData","clientSide","defaultCenters","_this$baseAccountsArr","findMetaData","metaDataField","foundData","loadOnlyLeafs","AutoAccountSelector","retreiveSelectedCenters","dataId","AccountId","updateBaseAccountId","_this$$refs$dropdown$","_this$$refs$dropdown$2","defaultCentersList","mergeValues","tamp","tryEmptyValue","_component_month_selector","selectedPeriod","grandPType","insertMonthBtn","insertBtnHandler","refreshBtn","existingMonths","onKeydown","_withKeys","agSearch","agSettings","selectedNode","nodeSelectedHandler","_this$agSettings","_this$agSettings2","_buttonsCellRendererP","agOptions","buttonsCellRendererParams","treeOperationFunctionAndPermissions","searchFocusTimeOut","updateSelected","suppressCount","watchDataHandler","grid","parentIdentifier","foundAllParent","currentNode","_foundParent$parent","_this$treeOperationFu","_this$treeOperationFu2","_this$treeOperationFu3","MinimalSalaryItem","SelectedDataType","SelectedDataEntry","SelectedItemType","SelectedFunctionType","Deductions","Salary","Functional","Yearly","EndYear","_selectedDataType","_selectedFunctionType","_selectedItemType","_selectedDataEntry","_selectedAccount","setParentVariables","PersonSalaryItems","checkProductBalanceAccess","showProductDetail","loadProductData","openProductCardex","warehouseStocks","curreny","_component_ag_tree","selectedProductGroup","setSelectedProductGroup","onRowDbClicked","nodeDbClicked","AgTree","AgTreeButtons","addChildProductGroup","editProductGroup","deleteProductGroup","productGroupTree","productGroupInfo","addProductGroupButton","addRootProductGroup","selectProductGroupButton","maxChildCode","getProductGroupData","nextChildCode","ProductGroupModify","deleteProductGroupConfirmed","Snapshot","initializer","intervalTimeInSeconds","LOCALSTORAGEKEY","CURRENTFISCALID","CURRENTUSERID","timeInSeconds","initialized","snapshotsTaken","take","addToLocalStorage","toISOString","local","getLocalStorage","fullDate","NikanMixin","localUID","isShortcutVisible","_Logger","listenedItems","listen","subscribe","channel","findGrandParent","applySubscribeKeys","setTestId","throttle","parentForShortKey","getDaysBetween","difference","errorComputedText","objGetKeyByValue","findDiffrenceBetweenObjects","objKeys","_objKeys","isReactive","toRaw","floatingCentersCellViewHtml","displayShortcuts","elementStatus","popupIdentifyClass","xDurationPixel","targetParentClass","targetValue","debounceTimeout","tableDefaultDataTypes","CustomGeneric","NikanInput","CustomPriceFilterComp","CustomPriceFloatingFilterComp","DateFilterComp","DateFloatingFilterComp","NikanDate","textMatcher","filterOption","localeCompare","DropdownFloatingCenter","multiCurrency","cellData","getEmptyStructure","mapValues","isPlainObject","removeTableFieldsFromData","lodashSum","avg","tableButtons","_defineComponent","__name","setup","__props","__expose","expose","__emit","gridSaveStateTimeout","useStore","gridIsVisible","colDefs","tableLocalData","pinnedBottomRow","aggregateColumns","tableValidatorsMap","addRowOnLoadTimeout","SUPPRESSED_KEYS","suppressKeyboardEvent","editing","alignItems","cellClassRules","Changed","suppressPropertyNamesCheck","getColDef","defaultCsvExportParams","onRowSelected","calculateAllAggregations","onRowDataUpdated","focusGridInnerElement","focusOnFirstEditableCellOfRow","saveGridState","maintainColumnOrder","copyRow","moveRow","updateRowData","emptyObject","targetIndex","addCustomFieldsToObject","getTargetIndex","updatedRows","getReorderedRows","addIndex","newRow","lastDisplayOrder","getActiveRowIndex","activeNode","getSelectedNodes","deleteTargetRow","isLastRow","Unchanged","targetNode","selectedNodes","currentRowIndex","allRows","tempOrder","lastRowNode","emptyRow","validateAllRows","validateObj","POSITION","TOP_CENTER","oldRow","errorsMessage","isCellValid","testPassed","aggColNames","columnsData","aggregateRow","prepareAggregationColumns","tryGetGridState","tryAddAggregationFunc","getColumnDefs","columnKeys","columnsNodesData","keepFocus","excludeLastRowIfEmpty","lastRow","shouldDeleteLastEmpties","initialState","customActions","resetGridState","getState","getMainMenuItems","toggleColumnsVisibility","setColumnsVisible","columnField","getColumnDef","suppressColumnsToolPanel","refreshHeader","onBeforeUnmount","ref_key","GridButtons","_unref","columnTypes","pinnedBottomRowData","_$props$options","_$props$options2","_$props$options3","_this$params$options","nextLineShortcut","disableStatus","badgeNumber","agGridOption","printColumnSettings","enumGroups","prepareEnums","rowNumberColumn","reportHeaders","translateEnum","headerType","getEnumNameByValue","enumGroup","_this$enumGroups$enum","webpackAsyncContext","finanaceCode","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","ns","create","definition","enumerable","chunkId","promises","miniCssF","globalThis","inProgress","dataWebpackPrefix","script","needAttach","scripts","charset","onScriptComplete","doneFns","removeChild","Symbol","toStringTag","nmd","paths","createStylesheet","fullhref","oldTag","linkTag","rel","nonce","onLinkComplete","errorType","realHref","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}