{"version":3,"sources":["webpack:///./src/components/date-filter/Tabs/WeeksTab.vue?d510","webpack:///./src/components/dropdown/BranchesDropdown.vue","webpack:///./src/components/dropdown/BranchesDropdown.vue?38cd","webpack:///./src/components/date-filter/DateFilter.vue?0169","webpack:///./src/components/Icons/ArrowUp.vue?cb77","webpack:///./src/components/Icons/ArrowUp.vue","webpack:///./src/components/Icons/ArrowUp.vue?4417","webpack:///./src/components/Icons/ArrowDown.vue?930a","webpack:///./src/components/Icons/ArrowDown.vue","webpack:///./src/components/Icons/ArrowDown.vue?b5ef","webpack:///./src/components/statistics/index-earnings.vue?a5b0","webpack:///./src/components/statistics/charts/ConsolidatedExpensesChart.vue?2374","webpack:///./src/components/statistics/earnings-charts/ExpensesDonutChart.vue?0a99","webpack:///./src/core/helpers/CurrencyFormat.ts","webpack:///./src/components/statistics/earnings-charts/ExpensesDonutChart.vue","webpack:///./src/components/statistics/earnings-charts/ExpensesDonutChart.vue?86c7","webpack:///./src/components/general/InfoPopup.vue?8434","webpack:///./src/components/Icons/CircleInfo.vue?3964","webpack:///./src/components/Icons/CircleInfo.vue","webpack:///./src/components/Icons/CircleInfo.vue?b2fc","webpack:///./src/components/general/InfoPopup.vue","webpack:///./src/components/general/InfoPopup.vue?7e5e","webpack:///./src/components/statistics/charts/ConsolidatedExpensesChart.vue","webpack:///./src/components/statistics/charts/ConsolidatedExpensesChart.vue?eee4","webpack:///./src/components/statistics/earnings-charts/ClientRevenueChart.vue?3322","webpack:///./src/components/statistics/earnings-charts/ClientRevenueChart.vue","webpack:///./src/components/statistics/earnings-charts/ClientRevenueChart.vue?5aa0","webpack:///./src/components/statistics/charts/RevenueChart.vue?3a73","webpack:///./src/components/statistics/earnings-charts/RevenueLineChart.vue","webpack:///./src/components/statistics/earnings-charts/RevenueLineChart.vue?a998","webpack:///./src/components/statistics/charts/RevenueChart.vue","webpack:///./src/components/statistics/charts/RevenueChart.vue?0952","webpack:///./src/components/statistics/misc/FiltersTab.vue?5678","webpack:///./src/components/date-filter/DateFilter.vue?5b7c","webpack:///./src/components/Icons/ElementPlusClearIcon.vue?7573","webpack:///./src/components/Icons/ElementPlusClearIcon.vue","webpack:///./src/components/Icons/ElementPlusClearIcon.vue?2bdb","webpack:///./src/components/date-filter/Tabs/YearsTab.vue?f0e6","webpack:///./src/components/date-filter/types.ts","webpack:///./src/components/date-filter/Tabs/YearsTab.vue","webpack:///./src/components/date-filter/Tabs/YearsTab.vue?461d","webpack:///./src/components/date-filter/RangeTabModes.ts","webpack:///./src/components/date-filter/Tabs/RangeTab.vue?d092","webpack:///./src/components/date-filter/Tabs/RangeTab.vue","webpack:///./src/components/date-filter/Tabs/RangeTab.vue?1817","webpack:///./src/components/date-filter/Tabs/MonthsTab.vue?3090","webpack:///./src/components/date-filter/Tabs/MonthsTab.vue","webpack:///./src/components/date-filter/Tabs/MonthsTab.vue?bb4b","webpack:///./src/components/date-filter/Tabs/WeeksTab.vue?2a6c","webpack:///./src/components/date-filter/Tabs/WeeksTab.vue","webpack:///./src/components/date-filter/Tabs/WeeksTab.vue?235a","webpack:///./src/components/date-filter/DateFilter.vue","webpack:///./src/components/date-filter/DateFilter.vue?b17e","webpack:///./src/components/statistics/misc/FiltersTab.vue","webpack:///./src/components/statistics/misc/FiltersTab.vue?8eaa","webpack:///./src/components/statistics/earnings-charts/ProfitMargin.vue?d7ba","webpack:///./src/components/statistics/earnings-charts/ProfitMargin.vue","webpack:///./src/components/statistics/earnings-charts/ProfitMargin.vue?9d35","webpack:///./src/components/statistics/index-earnings.vue","webpack:///./src/components/statistics/index-earnings.vue?aa7e","webpack:///./src/components/date-filter/Tabs/RangeTab.vue?5167","webpack:///./src/core/helpers/breadcrumb.ts"],"names":["value","clearable","size","filterable","placeholder","class","branches","item","key","id","label","name","methods","this","fetchBranches","computed","__exports__","render","_hoisted_1","_hoisted_2","xmlns","width","height","viewBox","version","stroke","fill","points","opacity","x","y","rx","d","_hoisted_3","_ctx","_cache","$props","$setup","$data","$options","transform","_component_StatisticsFilterTab","_component_RevenueChartIndex","_component_ConsolidatedExpensesChart","_component_ClientRevenueChart","_component_ProfitMarginByClient","onFilterChanged","handleChangeQuery","query","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_component_InfoPopup","_component_ExpensesDonutChart","text","data","loading","_component_apexchart","type","options","chart","series","formatCurrency","currencyCode","Error","Intl","NumberFormat","style","currency","currencyDisplay","format","props","Object","required","Boolean","setup","tooltip","formatter","val","plotOptions","pie","donut","labels","show","parsed","parseInt","isNaN","noData","salaries","push","additional_expenses","_component_CircleInfo","_component_el_tooltip","content","placement","effect","default","_","components","CircleInfo","String","InfoPopup","ExpensesDonutChart","globalQuery","fetchAtMount","store","start","end","setLoading","fetchChart","dispatch","then","catch","getters","dates","deep","startDate","endDate","state","chartData","setData","assign","keys","values","fetchClientRevenue","total","_component_BranchesDropdown","_component_RevenueLineChart","modelValue","branchId","$event","statistics","toolbar","dataLabels","enabled","curve","xaxis","categories","title","undefined","seriesIndex","BranchesDropdown","RevenueLineChart","fetchStatistics","_component_DateSelector","onRangeSelected","handleDateSelect","onCleared","ref","_component_ElementPlusClearIcon","_component_el_radio_button","_component_el_radio_group","_component_RangeTab","_component_WeeksTab","_component_MonthsTab","_component_YearsTab","_component_el_popover","readonly","onClick","handleClear","popoverKey","trigger","virtualRef","tab","onSelect","handleChangeValue","_component_VueDatePicker","yearRange","maxYear","inline","ActionRowSetup","onInternalModelChange","handleSelectDate","range","pickedDate","showNow","showPreview","showCancel","showSelect","emits","emit","datePicker","add","year","event","length","startOf","endOf","RangeTabModes","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_component_el_radio","_component_el_date_picker","onChange","handleChange","radioButtonMode","ONE_WEEK","ONE_MONTH","THREE_MONTHS","TWELVE_MONTHS","CUSTOM_RANGE","TODAY","THIS_WEEK","THIS_MONTH","THIS_YEAR","teleported","rangeModel","handleCustomRange","isValidRange","includes","customRange","now","subtract","setDefaultValue","month","startOfMonth","clone","endOfMonth","disableYearSelect","console","log","ElementPlusClearIcon","WeeksTab","MonthsTab","RangeTab","YearsTab","dateFormat","defaultValue","Number","popoverRef","rangeTab","hide","stopPropagation","DateSelector","filter","_component_el_empty","_component_router_link","_component_ArrowUpIcon","_component_ArrowDownIcon","_directive_loading","statisticData","description","index","src","logo","alt","client","to","company_id","current","trend","ArrowDownIcon","ArrowUpIcon","fetchStatistic","ProfitMarginByClient","ClientRevenueChart","StatisticsFilterTab","ConsolidatedExpensesChart","RevenueChartIndex","payload","setCurrentPageBreadcrumbs","pageTitle","breadcrumbs","SET_BREADCRUMB_ACTION","pageBreadcrumbPath","setCurrentPageTitle"],"mappings":"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","file":"js/chunk-f7af0972.4f7ca547.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WeeksTab.vue?vue&type=style&index=0&id=28142b7f&lang=css\"","\n\n","import { render } from \"./BranchesDropdown.vue?vue&type=template&id=fa09491e\"\nimport script from \"./BranchesDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./BranchesDropdown.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./DateFilter.vue?vue&type=style&index=0&id=2bb6b2c2&lang=css\"","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"svg-icon svg-icon-success svg-icon-2x\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\"\n}, [\n /*#__PURE__*/_createElementVNode(\"g\", {\n stroke: \"none\",\n \"stroke-width\": \"1\",\n fill: \"none\",\n \"fill-rule\": \"evenodd\"\n }, [\n /*#__PURE__*/_createElementVNode(\"polygon\", { points: \"0 0 24 0 24 24 0 24\" }),\n /*#__PURE__*/_createElementVNode(\"rect\", {\n fill: \"#000000\",\n opacity: \"0.3\",\n x: \"11\",\n y: \"5\",\n width: \"2\",\n height: \"14\",\n rx: \"1\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"M6.70710678,12.7071068 C6.31658249,13.0976311 5.68341751,13.0976311 5.29289322,12.7071068 C4.90236893,12.3165825 4.90236893,11.6834175 5.29289322,11.2928932 L11.2928932,5.29289322 C11.6714722,4.91431428 12.2810586,4.90106866 12.6757246,5.26284586 L18.6757246,10.7628459 C19.0828436,11.1360383 19.1103465,11.7686056 18.7371541,12.1757246 C18.3639617,12.5828436 17.7313944,12.6103465 17.3242754,12.2371541 L12.0300757,7.38413782 L6.70710678,12.7071068 Z\",\n fill: \"#000000\",\n \"fill-rule\": \"nonzero\"\n })\n ])\n], -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _hoisted_3))\n}","\nimport { defineComponent } from \"vue\";\nexport default defineComponent({\n name: \"arrow-up-icon\"\n});\n","import { render } from \"./ArrowUp.vue?vue&type=template&id=56ef0214&ts=true\"\nimport script from \"./ArrowUp.vue?vue&type=script&lang=ts\"\nexport * from \"./ArrowUp.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"svg-icon svg-icon-danger svg-icon-2x\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\"\n}, [\n /*#__PURE__*/_createElementVNode(\"g\", {\n stroke: \"none\",\n \"stroke-width\": \"1\",\n fill: \"none\",\n \"fill-rule\": \"evenodd\"\n }, [\n /*#__PURE__*/_createElementVNode(\"polygon\", { points: \"0 0 24 0 24 24 0 24\" }),\n /*#__PURE__*/_createElementVNode(\"rect\", {\n fill: \"#000000\",\n opacity: \"0.3\",\n x: \"11\",\n y: \"5\",\n width: \"2\",\n height: \"14\",\n rx: \"1\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"M6.70710678,18.7071068 C6.31658249,19.0976311 5.68341751,19.0976311 5.29289322,18.7071068 C4.90236893,18.3165825 4.90236893,17.6834175 5.29289322,17.2928932 L11.2928932,11.2928932 C11.6714722,10.9143143 12.2810586,10.9010687 12.6757246,11.2628459 L18.6757246,16.7628459 C19.0828436,17.1360383 19.1103465,17.7686056 18.7371541,18.1757246 C18.3639617,18.5828436 17.7313944,18.6103465 17.3242754,18.2371541 L12.0300757,13.3841378 L6.70710678,18.7071068 Z\",\n fill: \"#000000\",\n \"fill-rule\": \"nonzero\",\n transform: \"translate(12.000003, 14.999999) scale(1, -1) translate(-12.000003, -14.999999) \"\n })\n ])\n], -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _hoisted_3))\n}","\nimport { defineComponent } from \"vue\";\nexport default defineComponent({\n name: \"arrow-down-icon\"\n});\n","import { render } from \"./ArrowDown.vue?vue&type=template&id=15eae308&ts=true\"\nimport script from \"./ArrowDown.vue?vue&type=script&lang=ts\"\nexport * from \"./ArrowDown.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"w-100 d-flex flex-column\" }\nconst _hoisted_2 = { class: \"d-flex flex-column flex-xl-row\" }\nconst _hoisted_3 = { class: \"d-flex w-100 mt-5 flex-column flex-xl-row\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_StatisticsFilterTab = _resolveComponent(\"StatisticsFilterTab\")!\n const _component_RevenueChartIndex = _resolveComponent(\"RevenueChartIndex\")!\n const _component_ConsolidatedExpensesChart = _resolveComponent(\"ConsolidatedExpensesChart\")!\n const _component_ClientRevenueChart = _resolveComponent(\"ClientRevenueChart\")!\n const _component_ProfitMarginByClient = _resolveComponent(\"ProfitMarginByClient\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_StatisticsFilterTab, { onFilterChanged: _ctx.handleChangeQuery }, null, 8, [\"onFilterChanged\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_RevenueChartIndex, {\n \"global-query\": _ctx.query,\n class: \"w-100 mb-5 mb-md-0 me-0 me-xl-3\"\n }, null, 8, [\"global-query\"]),\n _createVNode(_component_ConsolidatedExpensesChart, {\n \"global-query\": _ctx.query,\n class: \"w-100 ms-0 ms-xl-3\"\n }, null, 8, [\"global-query\"])\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_ClientRevenueChart, {\n class: \"w-100 me-0 me-xl-3\",\n \"global-query\": _ctx.query\n }, null, 8, [\"global-query\"]),\n _createVNode(_component_ProfitMarginByClient, {\n class: \"w-100 ms-0 ms-xl-3\",\n \"global-query\": _ctx.query\n }, null, 8, [\"global-query\"])\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"card card-xl-stretch\" }\nconst _hoisted_2 = { class: \"card-header border-0 pt-5\" }\nconst _hoisted_3 = { class: \"d-flex justify-content-between align-items-center w-100\" }\nconst _hoisted_4 = { class: \"d-flex align-items-center\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"h3\", { class: \"card-title me-0 flex-column\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"card-label fw-bolder fs-3 mb-1\" }, \"Consolidated Expenses\")\n], -1)\nconst _hoisted_6 = { class: \"card-body py-0\" }\nconst _hoisted_7 = { class: \"d-flex flex-column\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_InfoPopup = _resolveComponent(\"InfoPopup\")!\n const _component_ExpensesDonutChart = _resolveComponent(\"ExpensesDonutChart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createVNode(_component_InfoPopup, { text: \"Payments made in other currencies will be converted to EUR for this report based on the current exchange rate.\" })\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_ExpensesDonutChart, {\n data: _ctx.data,\n loading: _ctx.loading\n }, null, 8, [\"data\", \"loading\"])\n ])\n ])\n ]))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_apexchart = _resolveComponent(\"apexchart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"mt-8\",\n key: _ctx.key\n }, [\n _createVNode(_component_apexchart, {\n type: \"donut\",\n height: \"300\",\n options: _ctx.chart.options,\n series: _ctx.chart.data\n }, null, 8, [\"options\", \"series\"])\n ]))\n}","export function formatCurrency(value: number, currencyCode: string): string {\n if(typeof value != \"number\" || !currencyCode) {\n throw new Error(\"Value and currency code are required\");\n }\n return new Intl.NumberFormat(\"en-GB\", {\n style: \"currency\",\n currency: currencyCode,\n currencyDisplay: \"narrowSymbol\"\n }).format(value);\n}","\nimport { defineComponent, PropType, reactive, ref, watch } from \"vue\";\nimport { formatCurrency } from \"@/core/helpers/CurrencyFormat\";\nexport interface ExpensesData {\n additional_expenses: number;\n salaries: number;\n}\n\nexport default defineComponent({\n name: \"expenses-donut-chart\",\n props: {\n data: {\n type: Object as PropType,\n required: true\n },\n loading: {\n type: Boolean as PropType,\n required: true\n }\n },\n setup: function(props) {\n const key = ref(0);\n const chart = reactive({\n options: {\n tooltip: {\n y: {\n formatter: function(val) {\n return formatCurrency(val, \"EUR\");\n }\n }\n },\n plotOptions: {\n pie: {\n donut: {\n labels: {\n show: true,\n value: {\n show: true,\n formatter: function(val) {\n const parsed = parseInt(val);\n return !isNaN(parsed)\n ? formatCurrency(parseInt(val), \"EUR\")\n : \"\";\n }\n }\n }\n }\n }\n },\n labels: [] as string[],\n noData: {\n text: \"No data...\"\n },\n chart: {\n width: 380,\n type: \"donut\"\n }\n },\n data: [0, 0]\n });\n\n watch(\n () => props.loading,\n () => {\n if (!props.loading) {\n const labels: string[] = [];\n const data: number[] = [];\n\n if (props.data.salaries != 0) {\n labels.push(\"Salaries\");\n data.push(props.data.salaries);\n }\n\n if (props.data.additional_expenses != 0) {\n labels.push(\"Additional expenses\");\n data.push(props.data.additional_expenses);\n }\n\n chart.options.labels = labels;\n chart.data = data;\n\n key.value++;\n }\n }\n );\n\n return {\n chart,\n key\n };\n }\n});\n","import { render } from \"./ExpensesDonutChart.vue?vue&type=template&id=5dd71d34&ts=true\"\nimport script from \"./ExpensesDonutChart.vue?vue&type=script&lang=ts\"\nexport * from \"./ExpensesDonutChart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/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_CircleInfo = _resolveComponent(\"CircleInfo\")!\n const _component_el_tooltip = _resolveComponent(\"el-tooltip\")!\n\n return (_openBlock(), _createBlock(_component_el_tooltip, {\n content: _ctx.text,\n placement: \"bottom\",\n effect: \"light\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_CircleInfo, { class: \"cursor-pointer\" })\n ]),\n _: 1\n }, 8, [\"content\"]))\n}","import { createElementVNode as _createElementVNode, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"svg-icon svg-icon-success svg-icon-2x\" }\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"\", 1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _hoisted_3))\n}","\nimport { defineComponent } from \"vue\";\nexport default defineComponent({\n name: \"circle-info\"\n});\n","import { render } from \"./CircleInfo.vue?vue&type=template&id=b1d80b80&ts=true\"\nimport script from \"./CircleInfo.vue?vue&type=script&lang=ts\"\nexport * from \"./CircleInfo.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent, PropType } from \"vue\";\nimport CircleInfo from \"@/components/Icons/CircleInfo.vue\";\nexport default defineComponent({\n name: \"info-popup\",\n components: { CircleInfo },\n props: {\n text: {\n type: String as PropType,\n default: () => \"Default content\"\n }\n },\n setup: function() {\n return {};\n }\n});\n","import { render } from \"./InfoPopup.vue?vue&type=template&id=160a5d97&ts=true\"\nimport script from \"./InfoPopup.vue?vue&type=script&lang=ts\"\nexport * from \"./InfoPopup.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport {\n computed,\n defineComponent,\n onMounted,\n onUnmounted,\n PropType,\n reactive,\n ref,\n watch\n} from \"vue\";\nimport { useStore } from \"vuex\";\nimport ExpensesDonutChart, {\n ExpensesData\n} from \"@/components/statistics/earnings-charts/ExpensesDonutChart.vue\";\nimport { EarningStatisticsQuery } from \"@/components/statistics/index-earnings.vue\";\nimport InfoPopup from \"@/components/general/InfoPopup.vue\";\nexport default defineComponent({\n name: \"consolidated-expenses-chart\",\n components: { InfoPopup, ExpensesDonutChart },\n props: {\n globalQuery: {\n type: Object as PropType,\n required: true\n },\n fetchAtMount: {\n type: Boolean as PropType,\n default: () => false\n }\n },\n setup: function(props) {\n const store = useStore();\n const loading = ref(false);\n\n const query = reactive({\n start: null as null | string,\n end: null as null | string\n });\n\n function setLoading(value: boolean): void {\n loading.value = value;\n }\n\n function fetchChart(): void {\n setLoading(true);\n store\n .dispatch(\"StatisticsModule/fetchConsolidatedExpenses\", query)\n .then(() => {\n setLoading(false);\n })\n .catch(() => {\n setLoading(false);\n });\n }\n\n const data = computed(\n (): ExpensesData => store.getters[\"StatisticsModule/consolidatedExpenses\"]\n );\n\n onMounted((): void => {\n if (props.fetchAtMount) {\n fetchChart();\n }\n });\n\n onUnmounted(() => {\n store.dispatch(\"StatisticsModule/clearConsolidatedExpenses\");\n });\n\n watch(\n () => props.globalQuery.dates,\n () => {\n query.start = props.globalQuery.dates\n ? props.globalQuery.dates.start\n : null;\n query.end = props.globalQuery.dates\n ? props.globalQuery.dates.end\n : null;\n },\n { deep: true }\n );\n\n watch(\n () => query,\n () => {\n fetchChart();\n },\n { deep: true }\n );\n\n return {\n loading,\n data\n };\n }\n});\n","import { render } from \"./ConsolidatedExpensesChart.vue?vue&type=template&id=c6e43448&ts=true\"\nimport script from \"./ConsolidatedExpensesChart.vue?vue&type=script&lang=ts\"\nexport * from \"./ConsolidatedExpensesChart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"card card-xl-stretch\" }\nconst _hoisted_2 = { class: \"card-header border-0 pt-5\" }\nconst _hoisted_3 = { class: \"d-flex justify-content-between align-items-center w-100\" }\nconst _hoisted_4 = { class: \"d-flex align-items-center\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"h3\", { class: \"card-title me-0 flex-column\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"card-label fw-bolder fs-3 mb-1\" }, \"Revenue by client\")\n], -1)\nconst _hoisted_6 = { class: \"card-body py-0 pb-5\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_InfoPopup = _resolveComponent(\"InfoPopup\")!\n const _component_apexchart = _resolveComponent(\"apexchart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createVNode(_component_InfoPopup, { text: \"Payments made in other currencies will be converted to EUR for this report based on the current exchange rate.\" })\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n (_openBlock(), _createElementBlock(\"div\", {\n id: \"chart mt-8\",\n key: _ctx.key\n }, [\n _createVNode(_component_apexchart, {\n type: \"pie\",\n height: \"350\",\n options: _ctx.chart.options,\n series: _ctx.chart.options.series\n }, null, 8, [\"options\", \"series\"])\n ]))\n ])\n ]))\n}","\nimport { EarningStatisticsQuery } from \"@/components/statistics/index-earnings.vue\";\nimport {\n computed,\n defineComponent,\n nextTick,\n onMounted,\n PropType,\n reactive,\n ref,\n watch\n} from \"vue\";\nimport { useStore } from \"vuex\";\nimport InfoPopup from \"@/components/general/InfoPopup.vue\";\nimport { formatCurrency } from \"@/core/helpers/CurrencyFormat\";\n\nexport default defineComponent({\n name: \"client-revenue-chart\",\n components: { InfoPopup },\n props: {\n globalQuery: {\n type: Object as PropType,\n required: true\n },\n fetchAtMount: {\n type: Boolean as PropType,\n default: () => false\n }\n },\n setup: function(props) {\n const store = useStore();\n const loading = ref(false);\n const key = ref(0);\n\n const query = reactive({\n startDate: null as string | null,\n endDate: null as string | null\n });\n\n function setLoading(state: boolean): void {\n loading.value = state;\n }\n\n const chartData = computed(\n () => store.getters[\"StatisticsModule/clientRevenue\"]\n );\n const chart = reactive({\n options: {\n tooltip: {\n y: {\n formatter: function(val) {\n return formatCurrency(val, \"EUR\");\n }\n }\n },\n labels: [] as string[],\n series: [],\n noData: {\n text: \"No data...\"\n },\n chart: {\n width: 380,\n type: \"pie\"\n }\n }\n });\n const setData = (): void => {\n Object.assign(chart.options.labels, Object.keys(chartData.value.data));\n chart.options.series = Object.values(chartData.value.data);\n };\n\n function fetchClientRevenue(): void {\n setLoading(true);\n store\n .dispatch(\"StatisticsModule/fetchClientRevenueStatistic\", query)\n .then(() => {\n if (chartData.value.total == 0) {\n chart.options.series = chart.options.labels = [];\n } else {\n setData();\n }\n key.value++;\n setLoading(false);\n })\n .catch(() => {\n setLoading(false);\n });\n }\n\n onMounted((): void => {\n if (props.fetchAtMount) {\n fetchClientRevenue();\n }\n });\n\n watch(\n props.globalQuery,\n () => {\n query.startDate = props.globalQuery.dates?.start ?? null;\n query.endDate = props.globalQuery.dates?.end ?? null;\n fetchClientRevenue();\n },\n { deep: true }\n );\n\n return {\n chartData,\n chart,\n key\n };\n }\n});\n","import { render } from \"./ClientRevenueChart.vue?vue&type=template&id=a8a01cd4&ts=true\"\nimport script from \"./ClientRevenueChart.vue?vue&type=script&lang=ts\"\nexport * from \"./ClientRevenueChart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"card card-xl-stretch\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-header border-0 pt-5\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-flex justify-content-between align-items-center w-100\" }, [\n /*#__PURE__*/_createElementVNode(\"h3\", { class: \"card-title align-items-be flex-column\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"card-label fw-bolder fs-3 mb-1\" }, \"Revenue Chart\")\n ])\n ])\n], -1)\nconst _hoisted_3 = { class: \"card-body py-0\" }\nconst _hoisted_4 = { class: \"d-flex flex-column\" }\nconst _hoisted_5 = { class: \"d-flex w-100\" }\nconst _hoisted_6 = { class: \"w-100 me-2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_BranchesDropdown = _resolveComponent(\"BranchesDropdown\")!\n const _component_RevenueLineChart = _resolveComponent(\"RevenueLineChart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_BranchesDropdown, {\n modelValue: _ctx.query.branchId,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.query.branchId) = $event))\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _createVNode(_component_RevenueLineChart, { data: _ctx.statistics }, null, 8, [\"data\"])\n ])\n ])\n ]))\n}","\n\n\n","import { render } from \"./RevenueLineChart.vue?vue&type=template&id=92ca0c10\"\nimport script from \"./RevenueLineChart.vue?vue&type=script&lang=js\"\nexport * from \"./RevenueLineChart.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport {\n computed,\n defineComponent,\n onMounted,\n PropType,\n reactive,\n ref,\n watch\n} from \"vue\";\nimport RevenueLineChart from \"@/components/statistics/earnings-charts/RevenueLineChart.vue\";\nimport { EarningStatisticsQuery } from \"@/components/statistics/index-earnings.vue\";\nimport BranchesDropdown from \"@/components/dropdown/BranchesDropdown.vue\";\nimport { useStore } from \"vuex\";\n\ninterface EarningsStatisticQueryParams {\n startDate: string | null;\n endDate: string | null;\n branchId: number | null;\n}\n\nexport default defineComponent({\n name: \"revenue-chart-index\",\n components: { BranchesDropdown, RevenueLineChart },\n props: {\n globalQuery: {\n type: Object as PropType,\n required: true\n },\n fetchAtMount: {\n type: Boolean as PropType,\n default: () => false\n }\n },\n setup: function(props) {\n const store = useStore();\n const loading = ref(false);\n const query = reactive({\n startDate: null,\n endDate: null,\n branchId: null\n });\n\n function setLoading(value: boolean): void {\n loading.value = value;\n }\n\n function fetchStatistics(): void {\n setLoading(true);\n store\n .dispatch(\"StatisticsModule/fetchEarningStatistics\", query)\n .then(() => {\n setLoading(false);\n })\n .catch(() => {\n setLoading(false);\n });\n }\n\n onMounted((): void => {\n if (props.fetchAtMount) {\n fetchStatistics();\n }\n });\n\n const statistics = computed(\n () => store.getters[\"StatisticsModule/earnings\"]\n );\n\n watch(\n () => props.globalQuery.dates,\n () => {\n query.startDate = props.globalQuery.dates\n ? props.globalQuery.dates.start\n : null;\n query.endDate = props.globalQuery.dates\n ? props.globalQuery.dates.end\n : null;\n },\n { deep: true }\n );\n\n watch(\n query,\n () => {\n fetchStatistics();\n },\n { deep: true }\n );\n\n return {\n statistics,\n query\n };\n }\n});\n","import { render } from \"./RevenueChart.vue?vue&type=template&id=0bbeb637&ts=true\"\nimport script from \"./RevenueChart.vue?vue&type=script&lang=ts\"\nexport * from \"./RevenueChart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"card card-xl-stretch mb-8 d-flex flex-column\" }\nconst _hoisted_2 = { class: \"card-body\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-flex flex-column align-items-start\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"card-label fw-bolder fs-3\" }, \"Filters\"),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-muted fw-bold fs-7\" }, \"Filter statistics\")\n], -1)\nconst _hoisted_4 = { class: \"d-flex mt-5\" }\nconst _hoisted_5 = { class: \"w-100 me-3\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"w-100 ms-3\" }, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DateSelector = _resolveComponent(\"DateSelector\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_DateSelector, {\n onRangeSelected: _ctx.handleDateSelect,\n onCleared: _cache[0] || (_cache[0] = ($event: any) => (_ctx.handleDateSelect(null)))\n }, null, 8, [\"onRangeSelected\"])\n ]),\n _hoisted_6\n ])\n ])\n ]))\n}","import { vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, withCtx as _withCtx, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n ref: \"virtualRef\",\n class: \"form-control user-select-none cursor-text form-control h-40px d-flex align-items-center position-relative\"\n}\nconst _hoisted_2 = { class: \"w-100\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"mt-5\" }, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ElementPlusClearIcon = _resolveComponent(\"ElementPlusClearIcon\")!\n const _component_el_radio_button = _resolveComponent(\"el-radio-button\")!\n const _component_el_radio_group = _resolveComponent(\"el-radio-group\")!\n const _component_RangeTab = _resolveComponent(\"RangeTab\")!\n const _component_WeeksTab = _resolveComponent(\"WeeksTab\")!\n const _component_MonthsTab = _resolveComponent(\"MonthsTab\")!\n const _component_YearsTab = _resolveComponent(\"YearsTab\")!\n const _component_el_popover = _resolveComponent(\"el-popover\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"input\", {\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.value) = $event)),\n readonly: \"\",\n placeholder: \"Select Dates\",\n type: \"text\",\n class: \"pt-1 w-100 pseudo-input fs-6 text-dark\"\n }, null, 512), [\n [_vModelText, _ctx.value]\n ]),\n (_ctx.value != '')\n ? (_openBlock(), _createBlock(_component_ElementPlusClearIcon, {\n key: 0,\n onClick: _ctx.handleClear,\n style: {\"right\":\"15px\"},\n class: _normalizeClass(\n `position-absolute cursor-pointer opacity-${\n _ctx.value == '' ? '0' : '25'\n } opacity-100-hover`\n )\n }, null, 8, [\"onClick\", \"class\"]))\n : _createCommentVNode(\"\", true)\n ], 512),\n (_openBlock(), _createBlock(_component_el_popover, {\n key: _ctx.popoverKey,\n ref: \"popoverRef\",\n trigger: \"click\",\n \"virtual-ref\": _ctx.virtualRef,\n class: \"w-100\",\n width: \"450\",\n \"virtual-triggering\": \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_el_radio_group, {\n modelValue: _ctx.tab,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.tab) = $event)),\n size: `medium`,\n class: \"w-100 d-flex\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_radio_button, { label: \"Range\" }),\n _createVNode(_component_el_radio_button, { label: \"Weeks\" }),\n _createVNode(_component_el_radio_button, { label: \"Months\" }),\n _createVNode(_component_el_radio_button, { label: \"Years\" })\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _hoisted_3,\n (_ctx.tab == 'Range')\n ? (_openBlock(), _createBlock(_component_RangeTab, {\n key: 0,\n ref: \"rangeTab\",\n onSelect: _ctx.handleChangeValue\n }, null, 8, [\"onSelect\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.tab == 'Weeks')\n ? (_openBlock(), _createBlock(_component_WeeksTab, {\n key: 1,\n onSelect: _ctx.handleChangeValue\n }, null, 8, [\"onSelect\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.tab == 'Months')\n ? (_openBlock(), _createBlock(_component_MonthsTab, {\n key: 2,\n onSelect: _ctx.handleChangeValue\n }, null, 8, [\"onSelect\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.tab == 'Years')\n ? (_openBlock(), _createBlock(_component_YearsTab, {\n key: 3,\n onSelect: _ctx.handleChangeValue\n }, null, 8, [\"onSelect\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n }, 8, [\"virtual-ref\"]))\n ], 64))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"icon\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M466.752 512l-90.496-90.496a32 32 0 0145.248-45.248L512 466.752l90.496-90.496a32 32 0 1145.248 45.248L557.248 512l90.496 90.496a32 32 0 11-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 01-45.248-45.248L466.752 512z\"\n}, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M512 896a384 384 0 100-768 384 384 0 000 768zm0 64a448 448 0 110-896 448 448 0 010 896z\"\n}, null, -1)\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}","\nimport { defineComponent } from \"vue\";\nexport default defineComponent({\n name: \"element-plus-clear-icon\",\n})\n","import { render } from \"./ElementPlusClearIcon.vue?vue&type=template&id=131bdf40&ts=true\"\nimport script from \"./ElementPlusClearIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./ElementPlusClearIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"w-100\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_VueDatePicker = _resolveComponent(\"VueDatePicker\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_VueDatePicker, {\n \"menu-class-name\": \"dp-custom-menu\",\n \"mode-height\": \"200\",\n yearRange: [2019, _ctx.maxYear],\n inline: true,\n \"action-row\": _ctx.ActionRowSetup,\n onInternalModelChange: _ctx.handleSelectDate,\n \"year-picker\": \"\",\n range: \"\",\n modelValue: _ctx.pickedDate,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.pickedDate) = $event))\n }, null, 8, [\"yearRange\", \"action-row\", \"onInternalModelChange\", \"modelValue\"])\n ]))\n}","export const ActionRowSetup = {\n showNow: false,\n showPreview: false,\n showCancel: false,\n showSelect: false\n};\nexport interface DateFilterSelectEvent {\n start: string;\n end: string;\n};","\nimport { ActionRowSetup } from \"@/components/date-filter/types\";\nimport { defineComponent, ref } from \"vue\";\nimport moment from \"moment\";\n\nexport default defineComponent({\n name: \"years-tab\",\n computed: {\n ActionRowSetup() {\n return ActionRowSetup;\n }\n },\n emits: [\"select\"],\n setup: function(props, { emit }) {\n const datePicker = ref();\n const pickedDate = ref();\n const maxYear = moment()\n .add(12, \"years\")\n .year();\n\n function handleSelectDate(event: Date[]): void {\n if (event && event.length == 2) {\n emit(\"select\", {\n start: moment(event[0]).startOf(\"year\"),\n end: moment(event[1]).endOf(\"year\")\n });\n }\n }\n\n return {\n handleSelectDate,\n datePicker,\n pickedDate,\n maxYear\n };\n }\n});\n","import { render } from \"./YearsTab.vue?vue&type=template&id=b06ced2a&ts=true\"\nimport script from \"./YearsTab.vue?vue&type=script&lang=ts\"\nexport * from \"./YearsTab.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export enum RangeTabModes {\n ONE_WEEK,\n ONE_MONTH,\n THREE_MONTHS,\n TWELVE_MONTHS,\n TODAY,\n THIS_WEEK,\n THIS_MONTH,\n THIS_YEAR,\n CUSTOM_RANGE\n}\n\nexport function isValidRange(value: number): boolean {\n return Object.values(RangeTabModes).includes(value);\n}","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0b955235\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"d-flex w-100 flex-column\" }\nconst _hoisted_2 = { class: \"d-flex w-100\" }\nconst _hoisted_3 = { class: \"d-flex flex-column w-50\" }\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"7 days\")\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"30 days\")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"90 days\")\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\"12 months\")\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"Custom range\")\nconst _hoisted_9 = { class: \"d-flex flex-column w-50\" }\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"Today\")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\"This week\")\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\"This month\")\nconst _hoisted_13 = /*#__PURE__*/_createTextVNode(\"This year\")\nconst _hoisted_14 = { key: 0 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_el_radio = _resolveComponent(\"el-radio\")!\n const _component_el_radio_group = _resolveComponent(\"el-radio-group\")!\n const _component_el_date_picker = _resolveComponent(\"el-date-picker\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_el_radio_group, {\n onChange: _ctx.handleChange,\n modelValue: _ctx.radioButtonMode,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.radioButtonMode) = $event)),\n class: \"w-100 mt-4\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_el_radio, {\n label: _ctx.RangeTabModes.ONE_WEEK,\n size: \"default\"\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_el_radio, {\n label: _ctx.RangeTabModes.ONE_MONTH,\n size: \"default\"\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_el_radio, {\n label: _ctx.RangeTabModes.THREE_MONTHS,\n size: \"default\"\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_el_radio, {\n label: _ctx.RangeTabModes.TWELVE_MONTHS,\n size: \"default\"\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_el_radio, {\n label: _ctx.RangeTabModes.CUSTOM_RANGE,\n size: \"default\"\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"label\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_el_radio, {\n label: _ctx.RangeTabModes.TODAY,\n size: \"default\"\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_el_radio, {\n label: _ctx.RangeTabModes.THIS_WEEK,\n size: \"default\"\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_el_radio, {\n label: _ctx.RangeTabModes.THIS_MONTH,\n size: \"default\"\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"label\"]),\n _createVNode(_component_el_radio, {\n label: _ctx.RangeTabModes.THIS_YEAR,\n size: \"default\"\n }, {\n default: _withCtx(() => [\n _hoisted_13\n ]),\n _: 1\n }, 8, [\"label\"])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"onChange\", \"modelValue\"]),\n (_ctx.customRange)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createVNode(_component_el_date_picker, {\n type: \"daterange\",\n class: \"w-300px\",\n teleported: false,\n modelValue: _ctx.rangeModel,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.rangeModel) = $event)),\n onChange: _ctx.handleCustomRange\n }, null, 8, [\"modelValue\", \"onChange\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}","\nimport { isValidRange, RangeTabModes } from \"@/components/date-filter/RangeTabModes\";\nimport { defineComponent, PropType, ref } from \"vue\";\nimport moment from \"moment\";\n\nexport default defineComponent({\n name: \"range-tab\",\n computed: {\n RangeTabModes() {\n return RangeTabModes;\n }\n },\n emits: [\"select\"],\n setup: function(props, { emit }) {\n const radioButtonMode = ref();\n const customRange = ref(false);\n const rangeModel = ref(null);\n\n function handleCustomRange(event: Date[]): void {\n emit(\"select\", {\n start: moment(event[0]),\n end: moment(event[1])\n });\n }\n\n function handleChange(): void {\n const now = moment();\n customRange.value = false;\n switch (radioButtonMode.value) {\n case RangeTabModes.ONE_WEEK:\n emit(\"select\", {\n start: now.subtract(1, \"week\"),\n end: moment()\n });\n break;\n case RangeTabModes.ONE_MONTH:\n emit(\"select\", {\n start: now.subtract(1, \"month\"),\n end: moment()\n });\n break;\n case RangeTabModes.THREE_MONTHS:\n emit(\"select\", {\n start: now.subtract(3, \"months\"),\n end: moment()\n });\n break;\n case RangeTabModes.TWELVE_MONTHS:\n emit(\"select\", {\n start: now.subtract(12, \"months\"),\n end: moment()\n });\n break;\n case RangeTabModes.CUSTOM_RANGE:\n rangeModel.value = null;\n customRange.value = true;\n break;\n case RangeTabModes.TODAY:\n emit(\"select\", {\n start: moment().startOf(\"day\"),\n end: moment().endOf(\"day\")\n });\n break;\n case RangeTabModes.THIS_WEEK:\n emit(\"select\", {\n start: moment().startOf(\"week\"),\n end: moment().endOf(\"week\")\n });\n break;\n case RangeTabModes.THIS_MONTH:\n emit(\"select\", {\n start: moment().startOf(\"month\"),\n end: moment().endOf(\"month\")\n });\n break;\n case RangeTabModes.THIS_YEAR:\n emit(\"select\", {\n start: moment().startOf(\"year\"),\n end: moment().endOf(\"year\")\n });\n break;\n }\n }\n\n function setDefaultValue(value: RangeTabModes): void {\n if (isValidRange(value)) {\n radioButtonMode.value = value;\n handleChange();\n }\n }\n\n return {\n handleCustomRange,\n setDefaultValue,\n radioButtonMode,\n handleChange,\n customRange,\n rangeModel\n };\n }\n});\n","import { render } from \"./RangeTab.vue?vue&type=template&id=0b955235&scoped=true&ts=true\"\nimport script from \"./RangeTab.vue?vue&type=script&lang=ts\"\nexport * from \"./RangeTab.vue?vue&type=script&lang=ts\"\n\nimport \"./RangeTab.vue?vue&type=style&index=0&id=0b955235&scoped=true&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0b955235\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-flex w-100 justify-content-center\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_VueDatePicker = _resolveComponent(\"VueDatePicker\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_VueDatePicker, {\n inline: true,\n \"menu-class-name\": \"dp-custom-menu\",\n \"mode-height\": \"200\",\n \"action-row\": _ctx.ActionRowSetup,\n \"month-picker\": \"\",\n onInternalModelChange: _ctx.handleSelectDate,\n modelValue: _ctx.pickedDate,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.pickedDate) = $event))\n }, null, 8, [\"action-row\", \"onInternalModelChange\", \"modelValue\"])\n ]))\n}","\nimport { ActionRowSetup } from \"@/components/date-filter/types\";\nimport { defineComponent, ref } from \"vue\";\nimport moment from \"moment/moment\";\n\nexport default defineComponent({\n name: \"months-tab\",\n computed: {\n ActionRowSetup() {\n return ActionRowSetup;\n }\n },\n emits: [\"select\"],\n setup: function(props, { emit }) {\n const pickedDate = ref();\n\n function handleSelectDate(event: Date): void {\n if (event) {\n const month = moment(event);\n const startOfMonth = month.clone().startOf(\"month\");\n const endOfMonth = month.clone().endOf(\"month\");\n emit(\"select\", {\n start: startOfMonth,\n end: endOfMonth\n });\n }\n }\n\n return {\n handleSelectDate,\n pickedDate\n };\n }\n});\n","import { render } from \"./MonthsTab.vue?vue&type=template&id=d2e2f49a&ts=true\"\nimport script from \"./MonthsTab.vue?vue&type=script&lang=ts\"\nexport * from \"./MonthsTab.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-flex w-100 justify-content-center\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_VueDatePicker = _resolveComponent(\"VueDatePicker\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_VueDatePicker, {\n \"week-picker\": \"\",\n \"action-row\": _ctx.ActionRowSetup,\n disableYearSelect: true,\n \"menu-class-name\": \"dp-custom-menu\",\n \"enable-time-picker\": false,\n inline: true,\n range: \"\",\n onInternalModelChange: _ctx.handleSelectDate,\n \"model-value\": _ctx.pickedDate\n }, null, 8, [\"action-row\", \"onInternalModelChange\", \"model-value\"]),\n _createTextVNode(\" \" + _toDisplayString(_ctx.pickedDate), 1)\n ]))\n}","\nimport { ActionRowSetup } from \"@/components/date-filter/types\";\nimport { defineComponent, ref, watch } from \"vue\";\nimport moment from \"moment\";\nexport default defineComponent({\n name: \"weeks-tab\",\n computed: {\n ActionRowSetup() {\n return ActionRowSetup;\n }\n },\n emits: [\"select\"],\n setup: function(props, { emit }) {\n const pickedDate = ref();\n\n function handleSelectDate(event: Date[]): void {\n if (event && event.length == 2) {\n emit(\"select\", {\n start: moment(event[0]),\n end: moment(event[1])\n });\n }\n }\n\n watch(\n () => pickedDate.value,\n () => {\n console.log(pickedDate.value);\n },\n { deep: true }\n );\n\n return {\n handleSelectDate,\n pickedDate\n };\n }\n});\n","import { render } from \"./WeeksTab.vue?vue&type=template&id=28142b7f&ts=true\"\nimport script from \"./WeeksTab.vue?vue&type=script&lang=ts\"\nexport * from \"./WeeksTab.vue?vue&type=script&lang=ts\"\n\nimport \"./WeeksTab.vue?vue&type=style&index=0&id=28142b7f&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport ElementPlusClearIcon from \"@/components/Icons/ElementPlusClearIcon.vue\";\nimport YearsTab from \"@/components/date-filter/Tabs/YearsTab.vue\";\nimport RangeTab from \"@/components/date-filter/Tabs/RangeTab.vue\";\nimport MonthsTab from \"@/components/date-filter/Tabs/MonthsTab.vue\";\nimport WeeksTab from \"@/components/date-filter/Tabs/WeeksTab.vue\";\nimport { defineComponent, onMounted, PropType, ref } from \"vue\";\nimport { Moment } from \"moment\";\nimport { RangeTabModes } from \"@/components/date-filter/RangeTabModes\";\n\nexport interface DateFilterSelectEvent {\n start: Moment;\n end: Moment;\n}\n\nexport default defineComponent({\n name: \"date-selector\",\n components: { ElementPlusClearIcon, WeeksTab, MonthsTab, RangeTab, YearsTab },\n emits: [\"range-selected\", \"cleared\"],\n props: {\n dateFormat: {\n type: String as PropType,\n default: () => \"DD/MM/YYYY\"\n },\n defaultValue: {\n type: Number as PropType,\n default: () => RangeTabModes.THIS_YEAR\n }\n },\n setup: function(props, { emit }) {\n const virtualRef = ref();\n const popoverRef = ref();\n const rangeTab = ref>();\n const tab = ref(\"Range\");\n const value = ref(\"\");\n const popoverKey = ref(0);\n\n function handleChangeValue(data: DateFilterSelectEvent): void {\n const start = data.start.format(props.dateFormat);\n const end = data.end.format(props.dateFormat);\n emit(\"range-selected\", {\n start: start,\n end: end\n });\n value.value = `${start} - ${end}`;\n popoverRef.value.hide();\n }\n\n onMounted((): void => {\n rangeTab.value?.setDefaultValue(RangeTabModes.THIS_YEAR);\n });\n\n function handleClear(event): void {\n event.stopPropagation();\n value.value = \"\";\n tab.value = \"Range\";\n popoverKey.value++;\n emit(\"cleared\");\n }\n\n return {\n handleChangeValue,\n handleClear,\n virtualRef,\n popoverRef,\n popoverKey,\n rangeTab,\n value,\n tab\n };\n }\n});\n","import { render } from \"./DateFilter.vue?vue&type=template&id=2bb6b2c2&ts=true\"\nimport script from \"./DateFilter.vue?vue&type=script&lang=ts\"\nexport * from \"./DateFilter.vue?vue&type=script&lang=ts\"\n\nimport \"./DateFilter.vue?vue&type=style&index=0&id=2bb6b2c2&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport type { DateFilterSelectEvent } from \"@/components/date-filter/types\";\nimport DateSelector from \"@/components/date-filter/DateFilter.vue\";\nimport { defineComponent, reactive, watch } from \"vue\";\n\nexport default defineComponent({\n name: \"statistics-filter-tab\",\n components: { DateSelector },\n emits: [\"filter-changed\"],\n setup: function(props, { emit }) {\n const filter = reactive({\n dates: null as null | DateFilterSelectEvent\n });\n\n function handleDateSelect(data: DateFilterSelectEvent | null): void {\n filter.dates = data;\n }\n\n watch(filter, () => {\n emit(\"filter-changed\", filter);\n }, { deep: true}\n );\n\n\n return {\n handleDateSelect,\n filter\n };\n }\n});\n","import { render } from \"./FiltersTab.vue?vue&type=template&id=5eaecceb&ts=true\"\nimport script from \"./FiltersTab.vue?vue&type=script&lang=ts\"\nexport * from \"./FiltersTab.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"card card-xl-stretch\" }\nconst _hoisted_2 = { class: \"card-body p-0\" }\nconst _hoisted_3 = { class: \"px-9 pt-7 d-flex flex-column card-rounded h-375px h-xl-275px pb-5 w-100 bg-primary\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-flex\" }, [\n /*#__PURE__*/_createElementVNode(\"h3\", { class: \"m-0 text-white fw-bold fs-3\" }, \"Profit margin by client\")\n], -1)\nconst _hoisted_5 = {\n class: \"bg-body shadow-sm card-rounded px-6 py-9\",\n style: {\"margin-top\":\"10px\"}\n}\nconst _hoisted_6 = {\n class: \"d-flex flex-column\",\n style: {\"grid-gap\":\"16px\"}\n}\nconst _hoisted_7 = { class: \"symbol symbol-45px me-5\" }\nconst _hoisted_8 = { class: \"symbol-label bg-lighten\" }\nconst _hoisted_9 = [\"src\"]\nconst _hoisted_10 = { class: \"d-flex align-items-center justify-content-between w-100\" }\nconst _hoisted_11 = { class: \"mb-1 pe-3 flex-grow-1\" }\nconst _hoisted_12 = {\n key: 1,\n class: \"cursor-pointer fs-5 text-gray-800 text-hover-primary fw-bold\"\n}\nconst _hoisted_13 = { class: \"text-gray-500 fw-semibold fs-7\" }\nconst _hoisted_14 = {\n key: 0,\n class: \"d-flex justify-content-end\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_el_empty = _resolveComponent(\"el-empty\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ArrowUpIcon = _resolveComponent(\"ArrowUpIcon\")!\n const _component_ArrowDownIcon = _resolveComponent(\"ArrowDownIcon\")!\n const _directive_loading = _resolveDirective(\"loading\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"div\", _hoisted_5, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (!Object.keys(_ctx.statisticData).length)\n ? (_openBlock(), _createBlock(_component_el_empty, {\n key: 0,\n description: \"No data for selected period\",\n \"image-size\": \"45\"\n }))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.statisticData, (item, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"d-flex align-items-center\",\n key: index\n }, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"span\", _hoisted_8, [\n (item.logo)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: item.logo,\n class: \"w-100 h-100\",\n alt: \"Company logo\"\n }, null, 8, _hoisted_9))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n (item.client != 'Others')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: `/client/${item.company_id}`,\n class: \"cursor-pointer fs-5 text-gray-800 text-hover-primary fw-bold\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.client), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_12, _toDisplayString(item.client), 1)),\n _createElementVNode(\"div\", _hoisted_13, _toDisplayString(item.current) + \" % \", 1)\n ]),\n (item.trend)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n (item.trend == 'up')\n ? (_openBlock(), _createBlock(_component_ArrowUpIcon, { key: 0 }))\n : (_openBlock(), _createBlock(_component_ArrowDownIcon, { key: 1 }))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ])), [\n [_directive_loading, _ctx.loading]\n ])\n ])\n ])\n ])\n ]))\n}","\nimport {\n computed,\n defineComponent,\n onMounted,\n onUnmounted,\n PropType,\n reactive,\n ref,\n watch\n} from \"vue\";\nimport { EarningStatisticsQuery } from \"@/components/statistics/index-earnings.vue\";\nimport { useStore } from \"vuex\";\nimport ArrowUpIcon from \"@/components/Icons/ArrowUp.vue\";\nimport ArrowDownIcon from \"@/components/Icons/ArrowDown.vue\";\n\nexport interface ClientProfitMargin {\n client: string;\n current: number;\n trend: \"up\" | \"down\" | null;\n logo?: undefined | string;\n company_id: number;\n}\n\nexport default defineComponent({\n name: \"profit-margin-by-client\",\n components: { ArrowDownIcon, ArrowUpIcon },\n props: {\n globalQuery: {\n type: Object as PropType,\n required: true\n },\n fetchAtMount: {\n type: Boolean as PropType,\n default: () => false\n }\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n\n function setLoading(state: boolean): void {\n loading.value = state;\n }\n\n const statisticData = computed(\n () => store.getters[\"StatisticsModule/marginByClient\"]\n );\n\n const query = reactive({\n startDate: null as string | null,\n endDate: null as string | null\n });\n\n function fetchStatistic(): void {\n setLoading(true);\n store\n .dispatch(\"StatisticsModule/fetchMarginByClient\", query)\n .then(() => {\n setLoading(false);\n })\n .catch(() => {\n setLoading(false);\n });\n }\n\n onMounted((): void => {\n if (props.fetchAtMount) {\n fetchStatistic();\n }\n });\n\n watch(\n props.globalQuery,\n () => {\n query.startDate = props.globalQuery.dates?.start ?? null;\n query.endDate = props.globalQuery.dates?.end ?? null;\n fetchStatistic();\n },\n { deep: true }\n );\n\n onUnmounted(() => {\n store.dispatch(\"StatisticsModule/clearMarginStats\");\n });\n\n return {\n fetchStatistic,\n statisticData,\n loading\n };\n }\n});\n","import { render } from \"./ProfitMargin.vue?vue&type=template&id=22f18bac&ts=true\"\nimport script from \"./ProfitMargin.vue?vue&type=script&lang=ts\"\nexport * from \"./ProfitMargin.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport ConsolidatedExpensesChart from \"@/components/statistics/charts/ConsolidatedExpensesChart.vue\";\nimport ClientRevenueChart from \"@/components/statistics/earnings-charts/ClientRevenueChart.vue\";\nimport RevenueChartIndex from \"@/components/statistics/charts/RevenueChart.vue\";\nimport StatisticsFilterTab from \"@/components/statistics/misc/FiltersTab.vue\";\nimport { DateFilterSelectEvent } from \"@/components/date-filter/types\";\nimport { setCurrentPageTitle } from \"@/core/helpers/breadcrumb\";\nimport { defineComponent, onMounted, ref } from \"vue\";\nimport ProfitMarginByClient from \"@/components/statistics/earnings-charts/ProfitMargin.vue\";\n\nexport interface EarningStatisticsQuery {\n dates: null | DateFilterSelectEvent;\n}\n\nexport default defineComponent({\n name: \"earnings-statistics-index\",\n components: {\n ProfitMarginByClient,\n ClientRevenueChart,\n StatisticsFilterTab,\n ConsolidatedExpensesChart,\n RevenueChartIndex\n },\n setup: function() {\n const query = ref({\n dates: null\n });\n\n onMounted(() => {\n setCurrentPageTitle(\"Earnings statistics\");\n });\n\n function handleChangeQuery(payload): void {\n Object.assign(query.value, payload);\n }\n\n return {\n handleChangeQuery,\n query\n };\n }\n});\n","import { render } from \"./index-earnings.vue?vue&type=template&id=6acf5198&ts=true\"\nimport script from \"./index-earnings.vue?vue&type=script&lang=ts\"\nexport * from \"./index-earnings.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./RangeTab.vue?vue&type=style&index=0&id=0b955235&scoped=true&lang=css\"","import store from \"@/store\";\r\nimport { Actions } from \"@/store/enums/StoreEnums\";\r\n\r\n/**\r\n * Sets current page breadcrumbs\r\n * @param {string} pageTitle Current page title\r\n * @param {Array} breadcrumbs Current page breadcrumbs\r\n */\r\nexport const setCurrentPageBreadcrumbs = (\r\n pageTitle: string,\r\n breadcrumbs: Array\r\n): void => {\r\n store.dispatch(Actions.SET_BREADCRUMB_ACTION, {\r\n title: pageTitle,\r\n pageBreadcrumbPath: breadcrumbs\r\n });\r\n};\r\n\r\n/**\r\n * Sets current page breadcrumbs\r\n * @param {string} title Current page title name\r\n */\r\nexport const setCurrentPageTitle = (title: string): void => {\r\n store.dispatch(Actions.SET_BREADCRUMB_ACTION, {\r\n title: title\r\n });\r\n};\r\n"],"sourceRoot":""}