{"version":3,"sources":["webpack:///./src/components/journals/PlanCargoJournal/FilterDialog.vue?47c9","webpack:///./src/components/journals/PlanCargoJournal/FilterDialog.vue?409f","webpack:///./src/components/journals/PlanCargoJournal/FilterDialog.vue","webpack:///./src/components/journals/PlanCargoJournal/FilterDialog.vue?7dd5"],"names":["_hoisted_1","class","_hoisted_2","key","style","components","DxPopup","DxToolbarItem","DxScrollView","DxLoadPanel","DxTagBox","props","planId","required","isFilter","methods","getDataSource","array","paginate","pageSize","store","type","data","show","visible","this","popupVisible","changeFilterValues","onApply","filter","Object","entries","selectedValues","val","length","keys","$emit","resetFilter","onCancel","id","isFilterLoading","isFilterSelected","values","flat","getFilterValues","savedFilter","checkFilters","initialValues","updateFilterValues","state","cargoRollFilter","JSON","parse","properties","forEach","element","api","get","params","stringify","value","find","x","computed","valuesWasChanged","selectedValuesCopy","okButtonOptions","text","onClick","resetButtonOptions","cancelButtonOptions","__exports__","_ctx","_cache","$props","$setup","$data","$options","_component_DxTagBox","_component_DxLoadPanel","_component_DxScrollView","_component_DxToolbarItem","_component_DxPopup","$event","width","height","shading","resizeEnabled","title","default","property","name","dataSource","stylingMode","onValueChanged","_","options","widget","location","toolbar","disabled"],"mappings":"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","file":"js/chunk-cfe9d400.86b87c5a.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FilterDialog.vue?vue&type=style&index=0&id=4ceca0b6&lang=css\"","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createCommentVNode as _createCommentVNode, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"ModelField-label\" }\nconst _hoisted_2 = {\n key: 0,\n style: {\"color\":\"#f85c50\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DxTagBox = _resolveComponent(\"DxTagBox\")!\n const _component_DxLoadPanel = _resolveComponent(\"DxLoadPanel\")!\n const _component_DxScrollView = _resolveComponent(\"DxScrollView\")!\n const _component_DxToolbarItem = _resolveComponent(\"DxToolbarItem\")!\n const _component_DxPopup = _resolveComponent(\"DxPopup\")!\n\n return (_openBlock(), _createBlock(_component_DxPopup, {\n visible: _ctx.popupVisible,\n \"onUpdate:visible\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.popupVisible) = $event)),\n \"drag-enabled\": true,\n \"close-on-outside-click\": false,\n \"show-title\": true,\n width: 600,\n height: \"auto\",\n shading: true,\n resizeEnabled: true,\n title: \"Фильтр по свойствам рулонов\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_DxScrollView, {\n width: \"100%\",\n height: \"100%\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.properties, (property) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: property.id\n }, [\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(property.name), 1),\n _createVNode(_component_DxTagBox, {\n class: \"ModelField-controlTagBox\",\n dataSource: _ctx.getDataSource(property.values),\n \"display-expr\": \"valueDescription\",\n \"value-expr\": \"value\",\n value: _ctx.selectedValues[property.id],\n \"onUpdate:value\": ($event: any) => ((_ctx.selectedValues[property.id]) = $event),\n stylingMode: \"outlined\",\n \"search-enabled\": true,\n \"show-clear-button\": true,\n onValueChanged: ($event: any) => (_ctx.changeFilterValues(false, property.id))\n }, null, 8, [\"dataSource\", \"value\", \"onUpdate:value\", \"onValueChanged\"])\n ]))\n }), 128))\n ]),\n (!_ctx.valuesWasChanged)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, \" При применении фильтра по рулонам, табличные фильтры будут сброшены \"))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(_component_DxLoadPanel, {\n visible: _ctx.isFilterLoading,\n \"onUpdate:visible\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.isFilterLoading) = $event)),\n \"show-indicator\": true,\n \"show-pane\": true,\n shading: false,\n \"close-on-outside-click\": false\n }, null, 8, [\"visible\"])\n ]),\n _: 1\n }),\n _createVNode(_component_DxToolbarItem, {\n options: _ctx.okButtonOptions,\n widget: \"dxButton\",\n location: \"after\",\n toolbar: \"bottom\",\n disabled: _ctx.valuesWasChanged\n }, null, 8, [\"options\", \"disabled\"]),\n _createVNode(_component_DxToolbarItem, {\n options: _ctx.resetButtonOptions,\n widget: \"dxButton\",\n location: \"after\",\n toolbar: \"bottom\",\n disabled: !_ctx.isFilter\n }, null, 8, [\"options\", \"disabled\"]),\n _createVNode(_component_DxToolbarItem, {\n options: _ctx.cancelButtonOptions,\n widget: \"dxButton\",\n location: \"after\",\n toolbar: \"bottom\"\n }, null, 8, [\"options\"])\n ]),\n _: 1\n }, 8, [\"visible\"]))\n}","\r\nimport { DxPopup, DxToolbarItem } from \"devextreme-vue/popup\";\r\nimport { defineComponent } from \"vue\";\r\nimport { DxScrollView } from \"devextreme-vue/scroll-view\";\r\nimport { DxLoadPanel } from \"devextreme-vue/load-panel\";\r\nimport api from \"@/services/api\";\r\nimport DataSource from \"devextreme/data/data_source\";\r\nimport DxTagBox from \"devextreme-vue/tag-box\";\r\nimport store from \"@/store\";\r\n\r\nexport default defineComponent({\r\n components: {\r\n DxPopup,\r\n DxToolbarItem,\r\n DxScrollView,\r\n DxLoadPanel,\r\n DxTagBox,\r\n },\r\n props: {\r\n planId: { required: true },\r\n isFilter: { required: true },\r\n },\r\n methods: {\r\n getDataSource(array: any) {\r\n let data = new DataSource({\r\n paginate: true,\r\n pageSize: 10,\r\n store: {\r\n type: \"array\",\r\n data: array,\r\n },\r\n });\r\n return data;\r\n },\r\n show(visible: boolean) {\r\n if (visible == true) {\r\n this.popupVisible = true;\r\n this.changeFilterValues(true, null);\r\n } else {\r\n this.popupVisible = false;\r\n }\r\n },\r\n onApply(): void {\r\n this.show(false);\r\n let filter = {};\r\n for (const [key, val] of Object.entries(this.selectedValues)) {\r\n if ((val as any).length != 0) filter[key] = val;\r\n }\r\n if (Object.keys(filter).length != 0) {\r\n this.$emit(\"apply-filter\", filter);\r\n } else {\r\n this.resetFilter();\r\n }\r\n },\r\n onCancel(): void {\r\n this.show(false);\r\n },\r\n resetFilter(): void {\r\n this.show(false);\r\n this.selectedValues = {};\r\n this.$emit(\"reset-filter\");\r\n },\r\n\r\n async changeFilterValues(show: any, id: any) {\r\n if (!this.popupVisible) return;\r\n if (this.isFilterLoading) return;\r\n\r\n this.isFilterLoading = true;\r\n let isFilterSelected = false;\r\n\r\n if (Object.values(this.selectedValues).flat(1).length != 0)\r\n isFilterSelected = true;\r\n\r\n if (!isFilterSelected) {\r\n await this.getFilterValues();\r\n }\r\n\r\n let savedFilter = show ? this.checkFilters() : null;\r\n\r\n if (show) {\r\n this.initialValues = {};\r\n Object.keys(this.selectedValues).filter((key) => {\r\n if (this.selectedValues[key].length != 0) {\r\n this.initialValues[key] = this.selectedValues[key];\r\n }\r\n });\r\n }\r\n\r\n if (isFilterSelected || savedFilter) await this.updateFilterValues(id);\r\n\r\n this.isFilterLoading = false;\r\n },\r\n\r\n checkFilters() {\r\n let filter = (store as any).state.cargoRollFilter.cargoRollFilter[\r\n this.planId\r\n ];\r\n if (filter) {\r\n filter = JSON.parse(filter);\r\n this.properties.forEach((element: any) => {\r\n let key = element.id;\r\n if (key in filter) this.selectedValues[key] = filter[key];\r\n });\r\n }\r\n return filter;\r\n },\r\n\r\n async getFilterValues() {\r\n const { data } = await api.get(\"PlanCargoRoll/getFilterValues\", {\r\n params: {\r\n planId: this.planId,\r\n },\r\n });\r\n this.properties = data;\r\n },\r\n\r\n async updateFilterValues(id: any) {\r\n let values = {};\r\n for (const [key, val] of Object.entries(this.selectedValues)) {\r\n if ((val as any).length != 0) values[key] = val;\r\n }\r\n\r\n const { data } = await api.get(\"PlanCargoRoll/updateFilterValues\", {\r\n params: {\r\n planId: this.planId,\r\n values: JSON.stringify(values),\r\n },\r\n });\r\n\r\n (data as any).forEach((element: any) => {\r\n let value = [];\r\n if (element.id in this.selectedValues) {\r\n value = this.selectedValues[element.id];\r\n }\r\n if (element.id == id && value.length != 0) return;\r\n else\r\n this.properties.find((x: any) => x.id == element.id).values =\r\n element.values;\r\n });\r\n },\r\n },\r\n\r\n computed: {\r\n valuesWasChanged(): any {\r\n let selectedValuesCopy = {};\r\n Object.keys(this.selectedValues).filter((key) => {\r\n if (this.selectedValues[key].length != 0) {\r\n selectedValuesCopy[key] = this.selectedValues[key];\r\n }\r\n });\r\n return (\r\n JSON.stringify(this.initialValues) == JSON.stringify(selectedValuesCopy)\r\n );\r\n },\r\n },\r\n\r\n data() {\r\n return {\r\n initialValues: {},\r\n isFilterLoading: false,\r\n popupVisible: false,\r\n okButtonOptions: {\r\n text: \"Применить\",\r\n onClick: this.onApply,\r\n },\r\n resetButtonOptions: {\r\n text: \"Сбросить\",\r\n onClick: this.resetFilter,\r\n },\r\n cancelButtonOptions: {\r\n text: \"Отмена\",\r\n onClick: this.onCancel,\r\n },\r\n selectedValues: {},\r\n properties: [],\r\n };\r\n },\r\n});\r\n","import { render } from \"./FilterDialog.vue?vue&type=template&id=4ceca0b6&ts=true\"\nimport script from \"./FilterDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./FilterDialog.vue?vue&type=script&lang=ts\"\n\nimport \"./FilterDialog.vue?vue&type=style&index=0&id=4ceca0b6&lang=css\"\n\nimport exportComponent from \"C:\\\\BuildAgent\\\\work\\\\2f08168a1cda37d3\\\\Loading\\\\loading_ui\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"sourceRoot":""}