{"version":3,"sources":["webpack:///./src/components/general/SelectMultipleChips.vue?070b","webpack:///./src/components/general/SelectMultipleChip.vue?d260","webpack:///./src/components/general/SelectMultipleChip.vue","webpack:///./src/components/general/SelectMultipleChip.vue?fc79","webpack:///./src/components/general/SelectMultipleChip.vue?a1ae","webpack:///./src/components/general/SelectMultipleChips.vue","webpack:///./src/components/general/SelectMultipleChips.vue?3894","webpack:///./src/components/general/SelectMultipleChips.vue?04a9","webpack:///./src/services/SubscriptionsService.ts","webpack:///./src/store/modules/adminSubscriptionCustomers.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./src/components/SubscriptionEditorModal.vue?4785","webpack:///./src/store/modules/adminSubscriptions.ts","webpack:///./src/store/modules/adminSubscriptionsHistory.ts","webpack:///./src/components/general/SelectMultipleChip.vue?fbe8","webpack:///./src/components/SubscriptionEditorQualityData.vue?1a25","webpack:///./src/models/ParameterPulpType.ts","webpack:///./src/models/Revolutions.ts","webpack:///./src/models/Subscriptions/SubscriptionQualityDataFrequency.ts","webpack:///./src/store/modules/adminSubscriptionQualityData.ts","webpack:///./src/store/modules/subscriptionQualityData.ts","webpack:///./src/components/SubscriptionEditorQualityData.vue","webpack:///./src/components/SubscriptionEditorQualityData.vue?2863","webpack:///./src/components/SubscriptionEditorQualityData.vue?54b0","webpack:///./src/components/SubscriptionEditorModal.vue?4d03","webpack:///./src/components/SubscriptionEditorModal.vue","webpack:///./src/components/SubscriptionEditorModal.vue?a6ba","webpack:///./src/components/SubscriptionEditorModal.vue?05fa","webpack:///./src/components/SubscriptionEditorQualityData.vue?d814","webpack:///./src/models/QualityData/PulpType.ts","webpack:///./src/services/AdminSubscriptionsService.ts","webpack:///./src/models/Subscriptions/SubscriptionType.ts","webpack:///./src/store/modules/subscriptions.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","allOption","disabled","doNotShowSelectedWhenDisabled","allSelected","on","onAllOptionClick","_e","_l","option","index","key","values","onOptionClick","staticRenderFns","staticClass","class","backgroundColor","onClick","_v","_s","text","selected","some","value","isSelected","$emit","required","default","component","$t","toString","theValues","val","selectedIndex","findIndex","splice","push","immediate","deep","components","SelectMultipleChip","SubscriptionsService","get","then","response","data","catch","error","Promise","reject","customerIds","model","post","id","put","subscriptionType","delete","type","subscriptionsService","AdminSubscriptionCustomersModule","common","getDataFor","payload","setLoading","setLoadingComplete","setLoadingError","userAzureAdId","hasFreshDataFor","resolve","item","currentlyLoadingPromise","isCurrentlyLoading","debugLog","loadingPromise","getUserCustomers","commitSetLoadingComplete","debugWarn","commitSetLoadingError","commitSetLoading","clearData","namespaced","name","dynamic","store","adminSubscriptionCustomersModule","_arrayWithoutHoles","arr","Array","isArray","arrayLikeToArray","_iterableToArray","iter","Symbol","iterator","Object","from","_nonIterableSpread","TypeError","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","AdminSubscriptionsModule","loading","search","setLoadedDate","clearLoadedDate","clearLoading","setLoadingPromise","loadingId","sortBy","sortAsc","pageIndex","pageSize","filterCustomerIds","sort","join","filterSubscriptionTypes","filterUserAzureAdIds","force","loadingPromiseForId","needToReLoad","commitClearData","getSubscriptions","results","commitSetData","commitSetLoadedDate","commitClearLoading","commitSetLoadingPromise","createSubscription","subscriptionInfoDetails","updateSubscription","subscriptionDetails","commitRemoveItemsForUserSubscription","userSubscriptionId","changeActiveStatusForSubscription","adminSubscriptionsModule","getId","AdminSubscriptionsHistoryModule","items","filter","startsWith","removeDataFor","getSubscriptionHistory","sendCopyOfQualityDataSubscriptionSendOut","userSubscriptionSendOutId","recipient","reSendQualityDataSubscriptionSendOut","setQualityDataSubscriptionSendOutHandledStatus","isHandled","adminSubscriptionsHistoryModule","ParameterPulpType","isLoading","errorLoading","errorNoProducts","frequency","frequencyOptions","canEdit","onFrequencyInput","enableForSpecificProductNames","productOptions","enableForAllMyProducts","onSelectedProducts","onAllProductsSelected","hasBothTypesOfProducts","enableForSpecificPaperParameterIds","paperParameterOptions","anySelectedPaperProduct","enableForAllMyPaperParameters","onSelectedPaperParameters","onAllPaperParametersSelected","pfiRevolutions","pfiRevolutionsSelectOptions","onPfiRevolutionsInput","enableForSpecificTextileParameterIds","textileParameterOptions","anySelectedTextileProduct","enableForAllMyTextileParameters","onSelectedTextileParameters","onAllTextileParametersSelected","domProps","listName","onListNameInput","Revolutions","SubscriptionQualityDataFrequency","Consoler","getSubscriptionQualityDataInfo","commitSetSearch","adminSubscriptionQualityDataModule","subscriptionQualityDataModule","Rev2K","Delivery","undefined","adminModeForUserAzureAdId","subscriptionQualityDataInfo","products","parameters","p","pulpType","PulpType","Composite","Paper","Textile","hasPaperProducts","hasTextileProducts","enableForSpecificProducts","enableForSpecificPaperParameters","predicted","relevantPaperParameters","map","productName","find","parameterId","relevantProducts","anySelectedPredictedParameter","length","enableForSpecificParameters","enabledForPaperPulp","enabledForTextilePulp","newName","oldName","subscriptionInfoSpecificPaperParameterIds","newId","oldId","subscriptionInfoSpecificTextileParameterIds","qualityData","possibleRevolutions","Set","reduce","a","b","i","has","revolutions","product","displayName","parameter","Invoice","label","subscriptionDefaultForType","productAvailable","parameterAvailable","dispatchMethod","dispatchLoad","enableForSpecificCustomerIds","$nextTick","finally","updateModel","event","target","anyPfiRevolutions","valid","anyChanges","createNotUpdate","DefaultPfiRevolutions","loadQualityDataInformationforCustomers","initializeDefaultSpecificParameterIds","filterValidSpecificProductsAndParameterIds","Modal","CustomersTreeSelect","TreeSelect","SelectMultipleChips","SelectBox","ref","scopedSlots","_u","fn","customers","onCustomersFilterSelect","onSubscriptionEditorQualityDataUpdate","proxy","$event","errorInvalid","errorSaving","directives","rawName","expression","saving","isSubscriptionTypeQualityData","qualityDataInfo","preventDefault","onSubmit","apply","arguments","onCancelClick","editableSubscriptionTypes","SubscriptionType","QualityData","CustomersRelevantForSubscriptionTypes","$refs","subscriptionEditorQualityData","Permissions","hasPermission","PermissionType","IsAllowedToEditSubscriptions","isCustomersRelevant","enableForAllMyCustomers","adminSubscriptionCustomers","userProfile","selectedCustomer","modal","showModal","loadCustomersForAdminModeUser","initialize","hideModal","customerId","c","subscriptions","dispatchCreate","dispatchUpdate","adminSubscriptions","every","customersChanged","SubscriptionEditorQualityData","AdminSubscriptionsService","params","adminSubscriptionsService","SubscriptionsModule","subscription","isExpanded","subscriptionInfoIndex","s","subscriptionInfoDetailsIndex","subscriptionId","commitSetSubscriptions","commitClearSubscriptions","commitUpdateSubscriptionInfoDetails","deleteSubscription","subscriptionInfo","commitDeleteSubscriptionInfoDetails","restoreSubscription","subscriptionsModule"],"mappings":"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","file":"js/admin~qdata~sustainability.bf815af5.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showAllOption)?_c('SelectMultipleChip',{attrs:{\"option\":_vm.allOption,\"disabled\":_vm.disabled,\"doNotShowSelectedWhenDisabled\":_vm.doNotShowSelectedWhenDisabled,\"selected\":_vm.allSelected},on:{\"click\":_vm.onAllOptionClick}}):_vm._e(),_vm._l((_vm.options),function(option,index){return _c('SelectMultipleChip',{key:index,attrs:{\"option\":option,\"values\":_vm.values,\"disabled\":_vm.disabled,\"doNotShowSelectedWhenDisabled\":_vm.doNotShowSelectedWhenDisabled,\"allSelected\":_vm.allSelected},on:{\"click\":_vm.onOptionClick}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"o-chip select-multiple-chip\",class:_vm.backgroundColor,attrs:{\"disabled\":_vm.disabled},on:{\"click\":_vm.onClick}},[_vm._v(\" \"+_vm._s(_vm.option.text)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { SelectMultipleChipOption } from './SelectMultipleChips.vue';\r\n\r\n@Component\r\nexport default class SelectMultipleChip extends Vue {\r\n @Prop({ required: true }) private option!: SelectMultipleChipOption;\r\n @Prop({ required: false, default: () => [] }) private values!: any[];\r\n @Prop({ required: false, default: () => false }) private disabled!: boolean;\r\n @Prop({ required: false, default: () => false })\r\n private doNotShowSelectedWhenDisabled!: boolean;\r\n @Prop({ required: false, default: () => false })\r\n private allSelected!: boolean;\r\n @Prop({ required: false, default: () => false })\r\n private selected!: boolean;\r\n\r\n private get isSelected(): boolean {\r\n return (\r\n this.selected || this.values.some((value) => value === this.option.value)\r\n );\r\n }\r\n\r\n private get backgroundColor(): string {\r\n if (this.disabled && this.doNotShowSelectedWhenDisabled) {\r\n return 'u-background-color-light-grey u-color-sodra-black-20';\r\n } else if (\r\n this.allSelected ||\r\n (this.isSelected && this.disabled && !this.doNotShowSelectedWhenDisabled)\r\n ) {\r\n return 'u-background-color-blue-20';\r\n } else if (this.isSelected) {\r\n return 'u-background-color-blue-50';\r\n } else {\r\n return 'u-background-color-light-grey';\r\n }\r\n }\r\n\r\n private onClick() {\r\n this.$emit('click', this.option);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectMultipleChip.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectMultipleChip.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SelectMultipleChip.vue?vue&type=template&id=7b94c178&scoped=true&\"\nimport script from \"./SelectMultipleChip.vue?vue&type=script&lang=ts&\"\nexport * from \"./SelectMultipleChip.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SelectMultipleChip.vue?vue&type=style&index=0&id=7b94c178&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b94c178\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport SelectMultipleChip from './SelectMultipleChip.vue';\r\n\r\nexport interface SelectMultipleChipOption {\r\n value: any;\r\n text: string;\r\n}\r\n\r\n@Component({\r\n components: {\r\n SelectMultipleChip,\r\n },\r\n})\r\nexport default class SelectMultipleChips extends Vue {\r\n @Prop({ required: true }) private values!: any[];\r\n @Prop({ required: true }) private options!: SelectMultipleChipOption[];\r\n @Prop({ required: false, default: () => false }) private disabled!: boolean;\r\n @Prop({ required: false, default: () => false })\r\n private doNotShowSelectedWhenDisabled!: boolean;\r\n @Prop({ required: false, default: () => false })\r\n private showAllOption!: boolean;\r\n @Prop({ required: false, default: () => false })\r\n private allSelected!: boolean;\r\n\r\n private theValues: any[] = [];\r\n\r\n private allOption: SelectMultipleChipOption = {\r\n value: 'SelectMultipleChipsAllValue',\r\n text: this.$t('selectMultipleChips.all').toString(),\r\n };\r\n\r\n private created(): void {\r\n this.theValues = this.values;\r\n }\r\n\r\n // Watch value change\r\n @Watch('values', { immediate: false, deep: true })\r\n private onValueChange(val: any[]) {\r\n this.theValues = val;\r\n }\r\n\r\n private onOptionClick(option: SelectMultipleChipOption) {\r\n const selectedIndex = this.theValues.findIndex(\r\n (value) => value === option.value\r\n );\r\n if (selectedIndex >= 0) {\r\n this.theValues.splice(selectedIndex, 1);\r\n } else {\r\n this.theValues.push(option.value);\r\n }\r\n\r\n this.$emit('selected', this.theValues);\r\n\r\n if (this.allSelected) {\r\n this.$emit('allSelected', !this.allSelected);\r\n }\r\n }\r\n\r\n private onAllOptionClick() {\r\n if (!this.allSelected) {\r\n this.$emit('selected', []);\r\n }\r\n\r\n this.$emit('allSelected', !this.allSelected);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectMultipleChips.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectMultipleChips.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SelectMultipleChips.vue?vue&type=template&id=e945729c&\"\nimport script from \"./SelectMultipleChips.vue?vue&type=script&lang=ts&\"\nexport * from \"./SelectMultipleChips.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { ChangeActiveStatusForSubscription } from '@/models/Subscriptions/ChangeActiveStatusForSubscription';\r\nimport { CreateOrUpdateSubscription } from '@/models/Subscriptions/CreateOrUpdateSubscription';\r\nimport { SubscriptionInfo } from '@/models/Subscriptions/SubscriptionInfo';\r\nimport { SubscriptionInfoDetails } from '@/models/Subscriptions/SubscriptionInfoDetails';\r\nimport { SubscriptionQualityDataInfo } from '@/models/Subscriptions/SubscriptionQualityDataInfo';\r\nimport { SubscriptionType } from '@/models/Subscriptions/SubscriptionType';\r\nimport { arrayParamsSerializer, BaseServiceDefinition } from './BaseService';\r\n\r\nclass SubscriptionsService extends BaseServiceDefinition {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async getSubscriptions(): Promise {\r\n return this.get('/api/v1/subscriptions')\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public getSubscriptionQualityDataInfo(\r\n customerIds: number[]\r\n ): Promise {\r\n return this.get(\r\n '/api/v1/subscriptions/qualityData',\r\n { customerIds },\r\n arrayParamsSerializer\r\n )\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async createSubscription(\r\n model: CreateOrUpdateSubscription\r\n ): Promise {\r\n return this.post('/api/v1/subscriptions', model)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async updateSubscription(\r\n id: number,\r\n model: CreateOrUpdateSubscription\r\n ): Promise {\r\n return this.put(`/api/v1/subscriptions/${id}`, model)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async restoreSubscription(\r\n id: number,\r\n model: SubscriptionInfo\r\n ): Promise {\r\n return this.put(`/api/v1/subscriptions/${id}/restore`, model).catch(\r\n (error) => {\r\n return Promise.reject(error);\r\n }\r\n );\r\n }\r\n\r\n public async changeActiveStatusForSubscription(\r\n id: number,\r\n model: ChangeActiveStatusForSubscription\r\n ): Promise {\r\n return this.put(`/api/v1/subscriptions/${id}/active`, model).catch(\r\n (error) => {\r\n return Promise.reject(error);\r\n }\r\n );\r\n }\r\n\r\n public async deleteSubscription(\r\n id: number,\r\n subscriptionType: SubscriptionType\r\n ): Promise {\r\n return this.delete(`/api/v1/subscriptions/${id}`, {\r\n type: subscriptionType,\r\n }).catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n}\r\n\r\nconst subscriptionsService: SubscriptionsService = new SubscriptionsService();\r\n\r\nexport default subscriptionsService;\r\n","import { Consoler } from '@/utils/Consoler';\r\nimport { store } from '@/store';\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport { CommonArrayStore } from '../commonArrayStore';\r\nimport { Customer } from '@/models/Customer';\r\nimport adminSubscriptionsService from '@/services/AdminSubscriptionsService';\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'adminSubscriptionCustomers',\r\n dynamic: true,\r\n store,\r\n})\r\nclass AdminSubscriptionCustomersModule extends VuexModule {\r\n private common = new CommonArrayStore(20); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get item() {\r\n return (id: string) => this.common.getDataFor(id);\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation private commitSetLoading(payload: {\r\n id: string;\r\n loadingPromise: Promise;\r\n clearData?: boolean;\r\n }) {\r\n this.common.setLoading(payload);\r\n }\r\n @Mutation private commitSetLoadingComplete(payload: {\r\n id: string;\r\n data: Customer[];\r\n }) {\r\n this.common.setLoadingComplete(payload);\r\n }\r\n @Mutation private commitSetLoadingError(payload: {\r\n id: string;\r\n error?: any;\r\n clearData?: boolean;\r\n }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(userAzureAdId: string): Promise {\r\n // If recently loaded, return\r\n if (this.common.hasFreshDataFor(userAzureAdId)) {\r\n return Promise.resolve(this.item(userAzureAdId)!);\r\n }\r\n\r\n const currentlyLoadingPromise =\r\n this.common.isCurrentlyLoading(userAzureAdId);\r\n if (currentlyLoadingPromise) {\r\n Consoler.debugLog(\r\n 'Already loading, waiting for existing load to finish',\r\n 'adminSubscriptionCustomers'\r\n );\r\n return currentlyLoadingPromise;\r\n }\r\n\r\n const loadingPromise = adminSubscriptionsService\r\n .getUserCustomers(userAzureAdId)\r\n .then((response) => {\r\n this.commitSetLoadingComplete({\r\n id: userAzureAdId,\r\n data: response,\r\n });\r\n Consoler.debugLog('Load adminSubscriptionCustomers success', response);\r\n return Promise.resolve(response);\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Load adminSubscriptionCustomers failed', error);\r\n this.commitSetLoadingError({ id: userAzureAdId, error });\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoading({\r\n id: userAzureAdId,\r\n loadingPromise,\r\n clearData: true,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n}\r\n\r\nexport const adminSubscriptionCustomersModule = getModule(\r\n AdminSubscriptionCustomersModule\r\n);\r\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscriptionEditorModal.vue?vue&type=style&index=0&id=76151e61&lang=scss&scoped=true&\"","import { CommonStore } from '@/store/common';\r\nimport { store } from '@/store';\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport adminSubscriptionsService from '@/services/AdminSubscriptionsService';\r\nimport { PaginatedResult } from '@/models/PaginatedResult{T}';\r\nimport { SubscriptionDetails } from '@/models/AdminSubscriptions/SubscriptionDetails';\r\nimport { SubscriptionType } from '@/models/Subscriptions/SubscriptionType';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { SubscriptionsSortBy } from '@/models/AdminSubscriptions/SubscriptionsSortBy';\r\nimport { CreateOrUpdateSubscription } from '@/models/Subscriptions/CreateOrUpdateSubscription';\r\nimport { ChangeActiveStatusForSubscription } from '@/models/Subscriptions/ChangeActiveStatusForSubscription';\r\nimport { adminSubscriptionsHistoryModule } from './adminSubscriptionsHistory';\r\nimport { AdminCreateOrUpdateSubscriptionForUser } from '@/models/AdminSubscriptions/AdminCreateOrUpdateSubscriptionForUser';\r\n\r\ninterface Search {\r\n sortBy: SubscriptionsSortBy;\r\n sortAsc: boolean;\r\n pageIndex: number;\r\n pageSize: number;\r\n filterCustomerIds: number[];\r\n filterSubscriptionTypes: SubscriptionType[];\r\n filterUserAzureAdIds: string[];\r\n results: PaginatedResult;\r\n}\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'adminSubscriptions',\r\n dynamic: true,\r\n store,\r\n})\r\nclass AdminSubscriptionsModule extends VuexModule {\r\n public search: Search | null = null;\r\n\r\n private common = new CommonStore(5); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get loading() {\r\n return this.common.loading;\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation public commitSetData(payload: Search) {\r\n this.search = payload;\r\n }\r\n\r\n @Mutation public commitClearData() {\r\n this.search = null;\r\n }\r\n\r\n // From common:\r\n @Mutation private commitSetLoadedDate() {\r\n this.common.setLoadedDate();\r\n }\r\n @Mutation private commitClearLoadedDate() {\r\n this.common.clearLoadedDate();\r\n }\r\n @Mutation private commitSetLoadingError(payload: { error: any }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n @Mutation private commitSetLoading() {\r\n this.common.setLoading();\r\n }\r\n @Mutation private commitClearLoading() {\r\n this.common.clearLoading();\r\n }\r\n @Mutation private commitSetLoadingPromise(payload: {\r\n loadingPromise: Promise;\r\n loadingPromiseForId: any;\r\n }) {\r\n this.common.setLoadingPromise(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(payload: {\r\n sortBy: SubscriptionsSortBy;\r\n sortAsc: boolean;\r\n pageIndex: number;\r\n pageSize: number;\r\n filterCustomerIds: number[];\r\n filterSubscriptionTypes: SubscriptionType[];\r\n filterUserAzureAdIds: string[];\r\n force?: boolean;\r\n }): Promise {\r\n const loadingId = `${payload.sortBy}|${payload.sortAsc}|${\r\n payload.pageIndex\r\n }|${payload.pageSize}|${payload.filterCustomerIds\r\n .sort()\r\n .join(',')}|${payload.filterSubscriptionTypes\r\n .sort()\r\n .join(',')}|${payload.filterUserAzureAdIds.sort().join(',')}\r\n }`;\r\n\r\n if (\r\n !payload.force &&\r\n this.search !== null &&\r\n this.loading.loadingPromiseForId === loadingId &&\r\n !this.common.needToReLoad()\r\n ) {\r\n return Promise.resolve();\r\n }\r\n\r\n if (this.common.isCurrentlyLoading(loadingId)) {\r\n return this.common.loading.loadingPromise;\r\n }\r\n\r\n this.commitSetLoading();\r\n this.commitClearData();\r\n\r\n const loadingPromise = adminSubscriptionsService\r\n .getSubscriptions(\r\n payload.sortBy,\r\n payload.sortAsc,\r\n payload.pageIndex,\r\n payload.pageSize,\r\n payload.filterCustomerIds,\r\n payload.filterSubscriptionTypes,\r\n payload.filterUserAzureAdIds\r\n )\r\n .then((response) => {\r\n const search: Search = {\r\n sortBy: payload.sortBy,\r\n sortAsc: payload.sortAsc,\r\n pageIndex: payload.pageIndex,\r\n pageSize: payload.pageSize,\r\n filterCustomerIds: payload.filterCustomerIds,\r\n filterSubscriptionTypes: payload.filterSubscriptionTypes,\r\n filterUserAzureAdIds: payload.filterUserAzureAdIds,\r\n results: response,\r\n };\r\n this.commitSetData(search);\r\n this.commitSetLoadedDate();\r\n this.commitClearLoading();\r\n Consoler.debugLog('Load adminSubscriptions success', response);\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Load adminSubscriptions failed', error);\r\n this.commitSetLoadingError({ error });\r\n\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoadingPromise({\r\n loadingPromise,\r\n loadingPromiseForId: loadingId,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n\r\n @Action\r\n public async dispatchCreate(payload: {\r\n model: AdminCreateOrUpdateSubscriptionForUser;\r\n }): Promise {\r\n Consoler.debugLog(payload.model);\r\n return adminSubscriptionsService\r\n .createSubscription(payload.model)\r\n .then((subscriptionInfoDetails) => {\r\n Consoler.debugLog(\r\n 'Create subscription success',\r\n subscriptionInfoDetails\r\n );\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Create subscription failed', error);\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n @Action\r\n public async dispatchUpdate(payload: {\r\n id: number;\r\n userAzureAdId: string;\r\n model: CreateOrUpdateSubscription;\r\n }): Promise {\r\n return adminSubscriptionsService\r\n .updateSubscription(payload.id, payload.userAzureAdId, payload.model)\r\n .then((subscriptionDetails) => {\r\n Consoler.debugLog('Update subscription success', subscriptionDetails);\r\n adminSubscriptionsHistoryModule.commitRemoveItemsForUserSubscription({\r\n userSubscriptionId: payload.id,\r\n });\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Update subscription failed', error);\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n @Action\r\n public async dispatchChangeActiveStatus(payload: {\r\n id: number;\r\n userAzureAdId: string;\r\n model: ChangeActiveStatusForSubscription;\r\n }): Promise {\r\n return adminSubscriptionsService\r\n .changeActiveStatusForSubscription(\r\n payload.id,\r\n payload.userAzureAdId,\r\n payload.model\r\n )\r\n .then(() => {\r\n Consoler.debugLog('Change active status for subscription success');\r\n adminSubscriptionsHistoryModule.commitRemoveItemsForUserSubscription({\r\n userSubscriptionId: payload.id,\r\n });\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn(\r\n 'Change active status for subscription failed',\r\n error\r\n );\r\n return Promise.reject(error);\r\n });\r\n }\r\n}\r\n\r\nexport const adminSubscriptionsModule = getModule(AdminSubscriptionsModule);\r\n","import { store } from '@/store';\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { CommonArrayStore } from '../commonArrayStore';\r\nimport adminSubscriptionsService from '@/services/AdminSubscriptionsService';\r\nimport { SubscriptionHistoryItem } from '@/models/AdminSubscriptions/SubscriptionHistoryItem';\r\nimport { SubscriptionHistorySortBy } from '@/models/AdminSubscriptions/SubscriptionHistorySortBy';\r\nimport { PaginatedResult } from '@/models/PaginatedResult{T}';\r\nimport { SubscriptionType } from '@/models/Subscriptions/SubscriptionType';\r\n\r\nexport interface SubscriptionsHistorySearch {\r\n userSubscriptionId: number;\r\n sortBy: SubscriptionHistorySortBy;\r\n sortAsc: boolean;\r\n pageIndex: number;\r\n pageSize: number;\r\n results: PaginatedResult;\r\n}\r\n\r\nfunction getId(\r\n userSubscriptionId: number,\r\n sortBy: SubscriptionHistorySortBy,\r\n sortAsc: boolean,\r\n pageIndex: number,\r\n pageSize: number\r\n) {\r\n return `${userSubscriptionId}|${sortBy}|${sortAsc}|${pageIndex}|${pageSize}`;\r\n}\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'adminSubscriptionsHistory',\r\n dynamic: true,\r\n store,\r\n})\r\nclass AdminSubscriptionsHistoryModule extends VuexModule {\r\n private common = new CommonArrayStore(5); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get item() {\r\n return (\r\n userSubscriptionId: number,\r\n sortBy: SubscriptionHistorySortBy,\r\n sortAsc: boolean,\r\n pageIndex: number,\r\n pageSize: number\r\n ) => {\r\n return this.common.getDataFor(\r\n getId(userSubscriptionId, sortBy, sortAsc, pageIndex, pageSize)\r\n );\r\n };\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation public commitRemoveItemsForUserSubscription(payload: {\r\n userSubscriptionId: number;\r\n }) {\r\n const items = this.common.items.filter((item) =>\r\n item.id.startsWith(`${payload.userSubscriptionId}|`)\r\n );\r\n\r\n for (const item of items) {\r\n this.common.removeDataFor(item.id);\r\n }\r\n }\r\n @Mutation private commitSetLoading(payload: {\r\n id: string;\r\n loadingPromise: Promise>;\r\n clearData?: boolean;\r\n }) {\r\n this.common.setLoading(payload);\r\n }\r\n @Mutation private commitSetLoadingComplete(payload: {\r\n id: string;\r\n data: SubscriptionsHistorySearch;\r\n }) {\r\n this.common.setLoadingComplete(payload);\r\n }\r\n @Mutation private commitSetLoadingError(payload: {\r\n id: string;\r\n error?: any;\r\n clearData?: boolean;\r\n }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(payload: {\r\n userSubscriptionId: number;\r\n userAzureAdId: string;\r\n sortBy: SubscriptionHistorySortBy;\r\n sortAsc: boolean;\r\n pageIndex: number;\r\n pageSize: number;\r\n }): Promise {\r\n const id = getId(\r\n payload.userSubscriptionId,\r\n payload.sortBy,\r\n payload.sortAsc,\r\n payload.pageIndex,\r\n payload.pageSize\r\n );\r\n\r\n // If recently loaded, return\r\n if (this.common.hasFreshDataFor(id)) {\r\n return Promise.resolve(\r\n this.item(\r\n payload.userSubscriptionId,\r\n payload.sortBy,\r\n payload.sortAsc,\r\n payload.pageIndex,\r\n payload.pageSize\r\n )!.results\r\n );\r\n }\r\n\r\n const currentlyLoadingPromise = this.common.isCurrentlyLoading(id);\r\n if (currentlyLoadingPromise) {\r\n Consoler.debugLog(\r\n 'Already loading, waiting for existing load to finish',\r\n 'adminSubscriptionsHistory',\r\n payload\r\n );\r\n return currentlyLoadingPromise;\r\n }\r\n\r\n const loadingPromise = adminSubscriptionsService\r\n .getSubscriptionHistory(\r\n payload.userSubscriptionId,\r\n payload.userAzureAdId,\r\n payload.sortBy,\r\n payload.sortAsc,\r\n payload.pageIndex,\r\n payload.pageSize\r\n )\r\n .then((response) => {\r\n const search: SubscriptionsHistorySearch = {\r\n userSubscriptionId: payload.userSubscriptionId,\r\n sortBy: payload.sortBy,\r\n sortAsc: payload.sortAsc,\r\n pageIndex: payload.pageIndex,\r\n pageSize: payload.pageSize,\r\n results: response,\r\n };\r\n\r\n this.commitSetLoadingComplete({\r\n id: id,\r\n data: search,\r\n });\r\n Consoler.debugLog(\r\n 'Load adminSubscriptionsHistory success',\r\n payload,\r\n response\r\n );\r\n return Promise.resolve(response);\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn(\r\n 'Load adminSubscriptionsHistory failed',\r\n payload,\r\n error\r\n );\r\n this.commitSetLoadingError({ id: id, error });\r\n\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoading({\r\n id: id,\r\n loadingPromise,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n\r\n @Action\r\n public async dispatchSendCopyOfQualityDataSubscriptionSendOut(payload: {\r\n userSubscriptionId: number;\r\n userSubscriptionSendOutId: number;\r\n userAzureAdId: string;\r\n subscriptionType: SubscriptionType;\r\n recipient: string;\r\n }): Promise {\r\n return adminSubscriptionsService\r\n .sendCopyOfQualityDataSubscriptionSendOut(\r\n payload.userSubscriptionId,\r\n payload.userSubscriptionSendOutId,\r\n payload.userAzureAdId,\r\n { type: payload.subscriptionType, recipient: payload.recipient }\r\n )\r\n .then(() => {\r\n Consoler.debugLog(\r\n 'Send copy of quality data subscription send out success'\r\n );\r\n this.commitRemoveItemsForUserSubscription({\r\n userSubscriptionId: payload.userSubscriptionId,\r\n });\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn(\r\n 'Send copy of quality data subscription send out failed',\r\n error\r\n );\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n @Action\r\n public async dispatchReSendQualityDataSubscriptionSendOut(payload: {\r\n userSubscriptionId: number;\r\n userSubscriptionSendOutId: number;\r\n userAzureAdId: string;\r\n subscriptionType: SubscriptionType;\r\n }): Promise {\r\n return adminSubscriptionsService\r\n .reSendQualityDataSubscriptionSendOut(\r\n payload.userSubscriptionId,\r\n payload.userSubscriptionSendOutId,\r\n payload.userAzureAdId,\r\n { type: payload.subscriptionType }\r\n )\r\n .then(() => {\r\n Consoler.debugLog('Re-send quality data subscription send out success');\r\n this.commitRemoveItemsForUserSubscription({\r\n userSubscriptionId: payload.userSubscriptionId,\r\n });\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn(\r\n 'Re-send quality data subscription send out failed',\r\n error\r\n );\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n @Action\r\n public async dispatchSetQualityDataSubscriptionSendOutHandledStatus(payload: {\r\n userSubscriptionId: number;\r\n userSubscriptionSendOutId: number;\r\n userAzureAdId: string;\r\n subscriptionType: SubscriptionType;\r\n isHandled: boolean;\r\n }): Promise {\r\n return adminSubscriptionsService\r\n .setQualityDataSubscriptionSendOutHandledStatus(\r\n payload.userSubscriptionId,\r\n payload.userSubscriptionSendOutId,\r\n payload.userAzureAdId,\r\n { type: payload.subscriptionType },\r\n payload.isHandled\r\n )\r\n .then(() => {\r\n Consoler.debugLog(\r\n 'Changing quality data subscription send out handled status success'\r\n );\r\n this.commitRemoveItemsForUserSubscription({\r\n userSubscriptionId: payload.userSubscriptionId,\r\n });\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn(\r\n 'Changing quality data subscription send out handled status failed',\r\n error\r\n );\r\n return Promise.reject(error);\r\n });\r\n }\r\n}\r\n\r\nexport const adminSubscriptionsHistoryModule = getModule(\r\n AdminSubscriptionsHistoryModule\r\n);\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectMultipleChip.vue?vue&type=style&index=0&id=7b94c178&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.errorLoading)?_c('div',{staticClass:\"c-alert c-alert--red mb-3\"},[_c('span',{staticClass:\"c-alert__text\"},[_vm._v(_vm._s(_vm.$t('subscriptionEditorQualityData.errorLoading'))+\" \")])]):_vm._e(),(_vm.errorNoProducts)?_c('div',{staticClass:\"c-alert c-alert--yellow mb-3\"},[_c('span',{staticClass:\"c-alert__text\"},[_vm._v(_vm._s(_vm.$t('subscriptionEditorQualityData.noProducts'))+\" \")])]):_vm._e(),(_vm.isLoading)?_c('div',{staticClass:\"d-flex align-items-center justify-content-center u-min-height-300\"},[_c('span',{staticClass:\"o-loader\"},[_vm._v(_vm._s(_vm.$t('subscriptionEditorQualityData.loadingData')))])]):_vm._e(),(!_vm.isLoading && !_vm.errorLoading && !_vm.errorNoProducts)?[_c('div',{staticClass:\"mb-2\"},[_c('label',{staticClass:\"o-label u-bold\"},[_vm._v(_vm._s(_vm.$t('subscriptionEditorQualityData.emailFrequency'))+\" \")]),_c('div',[_c('TreeSelect',{staticClass:\"subscription-frequency-tree-select tree-select--light-grey\",attrs:{\"value\":_vm.frequency,\"multiple\":false,\"options\":_vm.frequencyOptions,\"disabled\":!_vm.canEdit},on:{\"input\":_vm.onFrequencyInput}})],1)]),_c('div',{staticClass:\"mb-2\"},[_c('label',{staticClass:\"o-label u-bold\"},[_vm._v(_vm._s(_vm.$t('subscriptionEditorQualityData.products')))]),_c('SelectMultipleChips',{attrs:{\"values\":_vm.enableForSpecificProductNames,\"options\":_vm.productOptions,\"showAllOption\":true,\"allSelected\":_vm.enableForAllMyProducts,\"disabled\":!_vm.canEdit},on:{\"selected\":_vm.onSelectedProducts,\"allSelected\":_vm.onAllProductsSelected}})],1),(_vm.hasPaperProducts)?_c('div',{staticClass:\"mb-2\"},[_c('label',{staticClass:\"o-label u-bold\"},[_vm._v(_vm._s(_vm.$t( (\"subscriptionEditorQualityData.\" + (_vm.hasBothTypesOfProducts ? 'paperParameters' : 'parameters')) )))]),_c('SelectMultipleChips',{attrs:{\"values\":_vm.enableForSpecificPaperParameterIds,\"options\":_vm.paperParameterOptions,\"disabled\":!_vm.anySelectedPaperProduct || !_vm.canEdit,\"doNotShowSelectedWhenDisabled\":!_vm.anySelectedPaperProduct,\"showAllOption\":true,\"allSelected\":_vm.enableForAllMyPaperParameters},on:{\"selected\":_vm.onSelectedPaperParameters,\"allSelected\":_vm.onAllPaperParametersSelected}}),(_vm.hasPredictedParameter)?_c('p',{staticClass:\"t-body-regular-small mt-1 mb-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('subscriptionEditorQualityData.predictedParameter'))+\" \")]):_vm._e(),(_vm.anyPfiRevolutions)?_c('div',[_c('label',{staticClass:\"o-label u-bold\"},[_vm._v(_vm._s(_vm.$t('subscriptionEditorQualityData.pfi')))]),_c('SelectBox',{staticClass:\"o-select--light-grey\",attrs:{\"value\":_vm.pfiRevolutions,\"options\":_vm.pfiRevolutionsSelectOptions,\"disabled\":!_vm.canEdit},on:{\"input\":_vm.onPfiRevolutionsInput}})],1):_vm._e()],1):_vm._e(),(_vm.hasTextileProducts)?_c('div',{staticClass:\"mb-2\"},[_c('label',{staticClass:\"o-label u-bold\"},[_vm._v(_vm._s(_vm.$t( (\"subscriptionEditorQualityData.\" + (_vm.hasBothTypesOfProducts ? 'textileParameters' : 'parameters')) )))]),_c('SelectMultipleChips',{attrs:{\"values\":_vm.enableForSpecificTextileParameterIds,\"options\":_vm.textileParameterOptions,\"disabled\":!_vm.anySelectedTextileProduct || !_vm.canEdit,\"doNotShowSelectedWhenDisabled\":!_vm.anySelectedTextileProduct,\"showAllOption\":true,\"allSelected\":_vm.enableForAllMyTextileParameters},on:{\"selected\":_vm.onSelectedTextileParameters,\"allSelected\":_vm.onAllTextileParametersSelected}})],1):_vm._e(),_c('div',[_c('label',{staticClass:\"o-label u-bold\"},[_vm._v(_vm._s(_vm.$t('subscriptionEditorQualityData.name')))]),_c('div',[_c('input',{staticClass:\"subscription-name-input o-text-input o-text-input--light-grey u-full-width\",attrs:{\"type\":\"text\",\"required\":true,\"disabled\":!_vm.canEdit},domProps:{\"value\":_vm.listName},on:{\"input\":_vm.onListNameInput}})])])]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export enum ParameterPulpType {\r\n Paper = 'Paper',\r\n Textile = 'Textile',\r\n}\r\n","export enum Revolutions {\r\n Rev0 = 0,\r\n Rev1K = 1000,\r\n Rev2K = 2000,\r\n Rev3K = 3000,\r\n Rev4K = 4000,\r\n Rev9K = 9000,\r\n}\r\n","export enum SubscriptionQualityDataFrequency {\r\n Delivery = 'Delivery',\r\n Invoice = 'Invoice',\r\n}\r\n","import { CommonStore } from '@/store/common';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { store } from '@/store';\r\n\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport { SubscriptionQualityDataInfo } from '@/models/Subscriptions/SubscriptionQualityDataInfo';\r\nimport adminSubscriptionsService from '@/services/AdminSubscriptionsService';\r\n\r\nexport interface Search {\r\n userAzureAdId: string;\r\n customerIds: number[];\r\n data: SubscriptionQualityDataInfo;\r\n}\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'adminSubscriptionQualityData',\r\n dynamic: true,\r\n store,\r\n})\r\nclass AdminSubscriptionQualityDataModule extends VuexModule {\r\n public search: Search | null = null;\r\n\r\n private common = new CommonStore(20); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get loading() {\r\n return this.common.loading;\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation public commitSetSearch(payload: Search) {\r\n this.search = payload;\r\n }\r\n\r\n @Mutation public commitClearSearch() {\r\n this.search = null;\r\n }\r\n\r\n // From common:\r\n @Mutation private commitSetLoadedDate() {\r\n this.common.setLoadedDate();\r\n }\r\n @Mutation private commitClearLoadedDate() {\r\n this.common.clearLoadedDate();\r\n }\r\n @Mutation private commitSetLoadingError(payload: { error: any }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n @Mutation private commitSetLoading() {\r\n this.common.setLoading();\r\n }\r\n @Mutation private commitClearLoading() {\r\n this.common.clearLoading();\r\n }\r\n @Mutation private commitSetLoadingPromise(payload: {\r\n loadingPromise: Promise;\r\n loadingPromiseForId: any;\r\n }) {\r\n this.common.setLoadingPromise(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(payload: {\r\n userAzureAdId: string;\r\n customerIds: number[];\r\n }): Promise {\r\n const loadingId = `${payload.userAzureAdId}|${payload.customerIds\r\n .sort()\r\n .join(',')}`;\r\n\r\n if (\r\n this.search !== null &&\r\n this.common.loading.loadingPromiseForId === loadingId &&\r\n !this.common.needToReLoad()\r\n ) {\r\n return Promise.resolve();\r\n }\r\n\r\n if (this.common.isCurrentlyLoading(loadingId)) {\r\n Consoler.debugLog(\r\n 'Already loading, waiting for existing load to finish',\r\n 'adminSubscriptionQualityData'\r\n );\r\n return this.common.loading.loadingPromise;\r\n }\r\n\r\n this.commitSetLoading();\r\n\r\n const loadingPromise = adminSubscriptionsService\r\n .getSubscriptionQualityDataInfo(\r\n payload.userAzureAdId,\r\n payload.customerIds\r\n )\r\n .then((response) => {\r\n Consoler.debugLog(\r\n 'Load adminSubscriptionQualityData success',\r\n response\r\n );\r\n this.commitSetSearch({\r\n userAzureAdId: payload.userAzureAdId,\r\n customerIds: payload.customerIds,\r\n data: response,\r\n });\r\n this.commitSetLoadedDate();\r\n this.commitClearLoading();\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Load adminSubscriptionQualityData failed', error);\r\n this.commitSetLoadingError({ error });\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoadingPromise({\r\n loadingPromise,\r\n loadingPromiseForId: loadingId,\r\n });\r\n return loadingPromise;\r\n }\r\n}\r\n\r\nexport const adminSubscriptionQualityDataModule = getModule(\r\n AdminSubscriptionQualityDataModule\r\n);\r\n","import { CommonStore } from '@/store/common';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { store } from '@/store';\r\n\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport subscriptionsService from '@/services/SubscriptionsService';\r\nimport { SubscriptionQualityDataInfo } from '@/models/Subscriptions/SubscriptionQualityDataInfo';\r\n\r\nexport interface Search {\r\n customerIds: number[];\r\n data: SubscriptionQualityDataInfo;\r\n}\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'subscriptionQualityData',\r\n dynamic: true,\r\n store,\r\n})\r\nclass SubscriptionQualityDataModule extends VuexModule {\r\n public search: Search | null = null;\r\n\r\n private common = new CommonStore(20); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get loading() {\r\n return this.common.loading;\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation public commitSetSearch(payload: Search) {\r\n this.search = payload;\r\n }\r\n\r\n @Mutation public commitClearSearch() {\r\n this.search = null;\r\n }\r\n\r\n // From common:\r\n @Mutation private commitSetLoadedDate() {\r\n this.common.setLoadedDate();\r\n }\r\n @Mutation private commitClearLoadedDate() {\r\n this.common.clearLoadedDate();\r\n }\r\n @Mutation private commitSetLoadingError(payload: { error: any }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n @Mutation private commitSetLoading() {\r\n this.common.setLoading();\r\n }\r\n @Mutation private commitClearLoading() {\r\n this.common.clearLoading();\r\n }\r\n @Mutation private commitSetLoadingPromise(payload: {\r\n loadingPromise: Promise;\r\n loadingPromiseForId: any;\r\n }) {\r\n this.common.setLoadingPromise(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(payload: { customerIds: number[] }): Promise {\r\n const loadingId = payload.customerIds.sort().join(',');\r\n\r\n if (\r\n this.search !== null &&\r\n this.common.loading.loadingPromiseForId === loadingId &&\r\n !this.common.needToReLoad()\r\n ) {\r\n return Promise.resolve();\r\n }\r\n\r\n if (this.common.isCurrentlyLoading(loadingId)) {\r\n Consoler.debugLog(\r\n 'Already loading, waiting for existing load to finish',\r\n 'subscriptionQualityData'\r\n );\r\n return this.common.loading.loadingPromise;\r\n }\r\n\r\n this.commitSetLoading();\r\n\r\n const loadingPromise = subscriptionsService\r\n .getSubscriptionQualityDataInfo(payload.customerIds)\r\n .then((response) => {\r\n Consoler.debugLog('Load subscriptionQualityData success', response);\r\n this.commitSetSearch({\r\n customerIds: payload.customerIds,\r\n data: response,\r\n });\r\n this.commitSetLoadedDate();\r\n this.commitClearLoading();\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Load subscriptionQualityData failed', error);\r\n this.commitSetLoadingError({ error });\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoadingPromise({\r\n loadingPromise,\r\n loadingPromiseForId: loadingId,\r\n });\r\n return loadingPromise;\r\n }\r\n}\r\n\r\nexport const subscriptionQualityDataModule = getModule(\r\n SubscriptionQualityDataModule\r\n);\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Modal from '@/components/general/Modal.vue';\r\nimport CustomersTreeSelect from '@/components/CustomersTreeSelect.vue';\r\nimport TreeSelect, { TreeSelectNode } from './general/TreeSelect.vue';\r\nimport { Product } from '@/models/Subscriptions/Product';\r\nimport { Parameter } from '@/models/Subscriptions/Parameter';\r\nimport SelectMultipleChips, {\r\n SelectMultipleChipOption,\r\n} from './general/SelectMultipleChips.vue';\r\nimport { SubscriptionQualityDataInfo } from '@/models/Subscriptions/SubscriptionQualityDataInfo';\r\nimport { ParameterId } from '@/models/ParameterId';\r\nimport { PulpType } from '@/models/QualityData/PulpType';\r\nimport { ParameterPulpType } from '@/models/ParameterPulpType';\r\nimport SelectBox, { SelectOption } from './general/SelectBox.vue';\r\nimport { Revolutions } from '@/models/Revolutions';\r\nimport { SubscriptionQualityDataFrequency } from '@/models/Subscriptions/SubscriptionQualityDataFrequency';\r\nimport { SubscriptionInfoDetails } from '@/models/Subscriptions/SubscriptionInfoDetails';\r\nimport { adminSubscriptionQualityDataModule } from '@/store/modules/adminSubscriptionQualityData';\r\nimport { subscriptionQualityDataModule } from '@/store/modules/subscriptionQualityData';\r\nimport { Consoler } from '@/utils/Consoler';\r\n\r\nexport interface SubscriptionEditorQualityDataInfo {\r\n enableForAllMyProducts: boolean;\r\n enableForAllMyPaperParameters: boolean;\r\n enableForAllMyTextileParameters: boolean;\r\n enableForSpecificProductNames: string[];\r\n enableForSpecificPaperParameterIds: ParameterId[];\r\n enableForSpecificTextileParameterIds: ParameterId[];\r\n pfiRevolutions: Revolutions | undefined;\r\n listName: string;\r\n frequency: SubscriptionQualityDataFrequency;\r\n\r\n valid: boolean;\r\n anyChanges: boolean;\r\n}\r\n\r\n@Component({\r\n components: {\r\n Modal,\r\n CustomersTreeSelect,\r\n TreeSelect,\r\n SelectMultipleChips,\r\n SelectBox,\r\n },\r\n})\r\nexport default class SubscriptionEditorQualityData extends Vue {\r\n @Prop({ required: true })\r\n private subscriptionInfoDetails!: SubscriptionInfoDetails | null;\r\n @Prop({ required: true })\r\n private enableForSpecificCustomerIds!: number[];\r\n @Prop({ required: true })\r\n private canEdit!: boolean;\r\n @Prop({ required: false, default: () => undefined })\r\n private adminModeForUserAzureAdId!: string | undefined;\r\n\r\n private readonly DefaultPfiRevolutions: Revolutions = Revolutions.Rev2K;\r\n\r\n private isLoading: boolean = false;\r\n private errorLoading: boolean = false;\r\n private errorNoProducts: boolean = false;\r\n\r\n private enableForAllMyProducts: boolean = false;\r\n private enableForAllMyPaperParameters: boolean = false;\r\n private enableForAllMyTextileParameters: boolean = false;\r\n private enableForSpecificProductNames: string[] = [];\r\n private enableForSpecificPaperParameterIds: ParameterId[] = [];\r\n private enableForSpecificTextileParameterIds: ParameterId[] = [];\r\n private pfiRevolutions: Revolutions | null = null;\r\n private listName: string = '';\r\n private frequency: SubscriptionQualityDataFrequency =\r\n SubscriptionQualityDataFrequency.Delivery;\r\n\r\n private get subscriptionQualityDataInfo(): SubscriptionQualityDataInfo | null {\r\n return this.adminModeForUserAzureAdId !== undefined\r\n ? adminSubscriptionQualityDataModule?.search?.data ?? null\r\n : subscriptionQualityDataModule.search?.data ?? null;\r\n }\r\n\r\n private get products(): Product[] {\r\n return this.subscriptionQualityDataInfo?.products ?? [];\r\n }\r\n\r\n private get parameters(): Parameter[] {\r\n return this.subscriptionQualityDataInfo?.parameters ?? [];\r\n }\r\n\r\n private get hasPaperProducts(): boolean {\r\n return this.products.some(\r\n (p) => p.pulpType === PulpType.Composite || p.pulpType === PulpType.Paper\r\n );\r\n }\r\n private get hasTextileProducts(): boolean {\r\n return this.products.some(\r\n (p) =>\r\n p.pulpType === PulpType.Composite || p.pulpType === PulpType.Textile\r\n );\r\n }\r\n private get hasBothTypesOfProducts(): boolean {\r\n return this.hasPaperProducts && this.hasTextileProducts;\r\n }\r\n\r\n private get relevantProducts(): Product[] {\r\n return this.enableForAllMyProducts\r\n ? this.products\r\n : this.enableForSpecificProducts;\r\n }\r\n\r\n private get relevantPaperParameters(): Parameter[] {\r\n return this.enableForAllMyPaperParameters\r\n ? this.parameters.filter((p) =>\r\n p.pulpType.some((pulpType) => pulpType === ParameterPulpType.Paper)\r\n )\r\n : this.enableForSpecificPaperParameters;\r\n }\r\n\r\n private get hasPredictedParameter(): boolean {\r\n return this.parameters.some((p) => p.predicted);\r\n }\r\n\r\n private get anySelectedPredictedParameter(): boolean {\r\n return this.relevantPaperParameters.some((p) => p.predicted);\r\n }\r\n\r\n private get enableForSpecificProducts(): Product[] {\r\n return this.enableForSpecificProductNames\r\n .map((productName) => this.products.find((p) => p.name === productName))\r\n .filter((p) => p !== undefined)\r\n .map((p) => p!);\r\n }\r\n\r\n private get enableForSpecificPaperParameters(): Parameter[] {\r\n return this.enableForSpecificPaperParameterIds\r\n .map((parameterId) => this.parameters.find((p) => p.id === parameterId))\r\n .filter((p) => p !== undefined)\r\n .map((p) => p!);\r\n }\r\n\r\n private get anySelectedPaperProduct(): boolean {\r\n return this.relevantProducts.some(\r\n (p) => p.pulpType === PulpType.Composite || p.pulpType === PulpType.Paper\r\n );\r\n }\r\n\r\n private get anySelectedTextileProduct(): boolean {\r\n return this.relevantProducts.some(\r\n (p) =>\r\n p.pulpType === PulpType.Composite || p.pulpType === PulpType.Textile\r\n );\r\n }\r\n\r\n private get anyPfiRevolutions(): boolean {\r\n return (\r\n this.anySelectedPredictedParameter &&\r\n this.pfiRevolutionsSelectOptions.length > 0\r\n );\r\n }\r\n\r\n private get subscriptionInfoSpecificPaperParameterIds(): ParameterId[] {\r\n return (\r\n this.subscriptionInfoDetails?.enableForSpecificParameters\r\n .filter((p) => p.enabledForPaperPulp)\r\n .map((p) => p.parameterId) ?? []\r\n );\r\n }\r\n\r\n private get subscriptionInfoSpecificTextileParameterIds(): ParameterId[] {\r\n return (\r\n this.subscriptionInfoDetails?.enableForSpecificParameters\r\n .filter((p) => p.enabledForTextilePulp)\r\n .map((p) => p.parameterId) ?? []\r\n );\r\n }\r\n\r\n private get anyChanges(): boolean {\r\n return (\r\n this.subscriptionInfoDetails !== null &&\r\n (this.enableForAllMyProducts !==\r\n (this.subscriptionInfoDetails.enableForAllMyProducts ?? false) ||\r\n this.enableForAllMyPaperParameters !==\r\n (this.subscriptionInfoDetails.enableForAllMyPaperParameters ??\r\n false) ||\r\n this.enableForAllMyTextileParameters !==\r\n (this.subscriptionInfoDetails.enableForAllMyTextileParameters ??\r\n false) ||\r\n this.enableForSpecificProductNames.length !==\r\n this.subscriptionInfoDetails.enableForSpecificProductNames.length ||\r\n this.enableForSpecificProductNames.some(\r\n (newName) =>\r\n !this.subscriptionInfoDetails?.enableForSpecificProductNames.some(\r\n (oldName) => newName === oldName\r\n )\r\n ) ||\r\n this.enableForSpecificPaperParameterIds.length !==\r\n this.subscriptionInfoSpecificPaperParameterIds.length ||\r\n this.enableForSpecificPaperParameterIds.some(\r\n (newId) =>\r\n !this.subscriptionInfoSpecificPaperParameterIds.some(\r\n (oldId) => newId === oldId\r\n )\r\n ) ||\r\n this.enableForSpecificTextileParameterIds.length !==\r\n this.subscriptionInfoSpecificTextileParameterIds.length ||\r\n this.enableForSpecificTextileParameterIds.some(\r\n (newId) =>\r\n !this.subscriptionInfoSpecificTextileParameterIds.some(\r\n (oldId) => newId === oldId\r\n )\r\n ) ||\r\n this.listName !== (this.subscriptionInfoDetails.name ?? '') ||\r\n this.frequency !==\r\n this.subscriptionInfoDetails.qualityData?.frequency ||\r\n this.pfiRevolutions !==\r\n this.subscriptionInfoDetails.qualityData?.pfiRevolutions)\r\n );\r\n }\r\n\r\n private get valid(): boolean {\r\n return (\r\n (this.enableForAllMyProducts ||\r\n (this.enableForSpecificProductNames !== undefined &&\r\n this.enableForSpecificProductNames.length > 0)) &&\r\n (!this.anySelectedPaperProduct ||\r\n this.enableForAllMyPaperParameters ||\r\n (this.enableForSpecificPaperParameterIds !== undefined &&\r\n this.enableForSpecificPaperParameterIds.length > 0)) &&\r\n (!this.anySelectedTextileProduct ||\r\n this.enableForAllMyTextileParameters ||\r\n (this.enableForSpecificTextileParameterIds !== undefined &&\r\n this.enableForSpecificTextileParameterIds.length > 0)) &&\r\n this.listName.length > 0 &&\r\n this.frequency !== undefined\r\n );\r\n }\r\n\r\n private get pfiRevolutionsSelectOptions(): SelectOption[] {\r\n // Filter relevant products of Paper pulp, that has at least one possible revolution\r\n const products = this.relevantProducts.filter(\r\n (p) =>\r\n (p.pulpType === PulpType.Composite || p.pulpType === PulpType.Paper) &&\r\n p.possibleRevolutions.length > 0\r\n );\r\n\r\n if (products.length === 0) {\r\n return [];\r\n }\r\n\r\n // Get an intersection of the products possible revolutions\r\n return Array.from(\r\n products\r\n .map((p) => new Set(p.possibleRevolutions))\r\n .reduce((a, b) => new Set(Array.from(a).filter((i) => b.has(i))))\r\n )\r\n .sort()\r\n .map((revolutions) => ({\r\n value: revolutions,\r\n text: this.$t(\r\n 'subscriptionEditorQualityData.pfiRevolutionsSelectText',\r\n [revolutions]\r\n ).toString(),\r\n }));\r\n }\r\n\r\n private get productOptions(): SelectMultipleChipOption[] {\r\n return this.products.map((product) => ({\r\n value: product.name,\r\n text: this.hasBothTypesOfProducts\r\n ? this.$t('subscriptionEditorQualityData.productNameWithPulpType', [\r\n product.displayName,\r\n this.$t(\r\n `subscriptionEditorQualityData.pulpType.${product.pulpType}`\r\n ),\r\n ]).toString()\r\n : product.displayName,\r\n }));\r\n }\r\n\r\n private get paperParameterOptions(): SelectMultipleChipOption[] {\r\n return this.parameters\r\n .filter((parameter) =>\r\n parameter.pulpType.some(\r\n (pulpType) => pulpType === ParameterPulpType.Paper\r\n )\r\n )\r\n .map((parameter) => ({\r\n value: parameter.id,\r\n text: parameter.displayName + (parameter.predicted ? '*' : ''),\r\n }));\r\n }\r\n\r\n private get textileParameterOptions(): SelectMultipleChipOption[] {\r\n return this.parameters\r\n .filter((parameter) =>\r\n parameter.pulpType.some(\r\n (pulpType) => pulpType === ParameterPulpType.Textile\r\n )\r\n )\r\n .map((parameter) => ({\r\n value: parameter.id,\r\n text: parameter.displayName,\r\n }));\r\n }\r\n\r\n private get frequencyOptions(): TreeSelectNode[] {\r\n return [\r\n SubscriptionQualityDataFrequency.Delivery,\r\n SubscriptionQualityDataFrequency.Invoice,\r\n ].map((value) => ({\r\n id: value,\r\n label: this.$t(\r\n `userSubscriptionQualityDataFrequency.${value}`\r\n ).toString(),\r\n }));\r\n }\r\n\r\n private initializeDefaultSpecificParameterIds(): void {\r\n this.enableForSpecificPaperParameterIds = this.parameters\r\n .filter(\r\n (parameter) =>\r\n parameter.pulpType.some(\r\n (pulpType) => pulpType === ParameterPulpType.Paper\r\n ) &&\r\n parameter.subscriptionDefaultForType.some(\r\n (pulpType) => pulpType === ParameterPulpType.Paper\r\n )\r\n )\r\n .map((parameter) => parameter.id);\r\n this.enableForSpecificTextileParameterIds = this.parameters\r\n .filter(\r\n (parameter) =>\r\n parameter.pulpType.some(\r\n (pulpType) => pulpType === ParameterPulpType.Textile\r\n ) &&\r\n parameter.subscriptionDefaultForType.some(\r\n (pulpType) => pulpType === ParameterPulpType.Textile\r\n )\r\n )\r\n .map((parameter) => parameter.id);\r\n }\r\n\r\n private filterValidSpecificProductsAndParameterIds(): void {\r\n this.enableForSpecificProductNames = [\r\n ...this.enableForSpecificProductNames.filter((productName) => {\r\n const productAvailable = this.products.some(\r\n (p) => p.name === productName\r\n );\r\n if (!productAvailable) {\r\n Consoler.debugLog(\r\n `Product with name ${productName} is not available anymore, removed from list.`\r\n );\r\n }\r\n return productAvailable;\r\n }),\r\n ];\r\n this.enableForSpecificPaperParameterIds = this.hasPaperProducts\r\n ? [\r\n ...this.enableForSpecificPaperParameterIds.filter((parameterId) => {\r\n const parameterAvailable = this.parameters.some(\r\n (p) =>\r\n p.id === parameterId &&\r\n p.pulpType.some(\r\n (pulpType) => pulpType === ParameterPulpType.Paper\r\n )\r\n );\r\n if (!parameterAvailable) {\r\n Consoler.debugLog(\r\n `Paper parameter with id ${parameterId} is not available anymore, removed from list.`\r\n );\r\n }\r\n return parameterAvailable;\r\n }),\r\n ]\r\n : [];\r\n this.enableForSpecificTextileParameterIds = this.hasTextileProducts\r\n ? [\r\n ...this.enableForSpecificTextileParameterIds.filter((parameterId) => {\r\n const parameterAvailable = this.parameters.some(\r\n (p) =>\r\n p.id === parameterId &&\r\n p.pulpType.some(\r\n (pulpType) => pulpType === ParameterPulpType.Textile\r\n )\r\n );\r\n if (!parameterAvailable) {\r\n Consoler.debugLog(\r\n `Textile parameter with id ${parameterId} is not available anymore, removed from list.`\r\n );\r\n }\r\n return parameterAvailable;\r\n }),\r\n ]\r\n : [];\r\n }\r\n\r\n private loadQualityDataInformationforCustomers(): Promise {\r\n this.isLoading = true;\r\n this.errorLoading = false;\r\n this.errorNoProducts = false;\r\n\r\n const dispatchMethod =\r\n this.adminModeForUserAzureAdId !== undefined\r\n ? adminSubscriptionQualityDataModule.dispatchLoad({\r\n userAzureAdId: this.adminModeForUserAzureAdId,\r\n customerIds: this.enableForSpecificCustomerIds,\r\n })\r\n : subscriptionQualityDataModule.dispatchLoad({\r\n customerIds: this.enableForSpecificCustomerIds,\r\n });\r\n\r\n return dispatchMethod\r\n .then(() => {\r\n this.$nextTick(() => {\r\n if (this.products.length === 0) {\r\n this.errorNoProducts = true;\r\n }\r\n });\r\n })\r\n .catch(() => {\r\n this.errorLoading = true;\r\n })\r\n .finally(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n private onSelectedProducts(values: string[]) {\r\n this.enableForSpecificProductNames = values;\r\n this.updateModel();\r\n }\r\n private onAllProductsSelected(allSelected: boolean) {\r\n this.enableForAllMyProducts = allSelected;\r\n this.updateModel();\r\n }\r\n\r\n private onSelectedPaperParameters(values: ParameterId[]) {\r\n this.enableForSpecificPaperParameterIds = values;\r\n this.updateModel();\r\n }\r\n private onAllPaperParametersSelected(allSelected: boolean) {\r\n this.enableForAllMyPaperParameters = allSelected;\r\n this.updateModel();\r\n }\r\n\r\n private onSelectedTextileParameters(values: ParameterId[]) {\r\n this.enableForSpecificTextileParameterIds = values;\r\n this.updateModel();\r\n }\r\n private onAllTextileParametersSelected(allSelected: boolean) {\r\n this.enableForAllMyTextileParameters = allSelected;\r\n this.updateModel();\r\n }\r\n\r\n private onPfiRevolutionsInput(pfiRevolutions: Revolutions) {\r\n this.pfiRevolutions = pfiRevolutions;\r\n this.updateModel();\r\n }\r\n\r\n private onListNameInput(event: InputEvent): void {\r\n this.listName = (event.target as HTMLInputElement).value;\r\n this.updateModel();\r\n }\r\n\r\n private onFrequencyInput(frequency: SubscriptionQualityDataFrequency): void {\r\n this.frequency = frequency;\r\n this.updateModel();\r\n }\r\n\r\n private updateModel(): void {\r\n this.$nextTick(() => {\r\n let model: SubscriptionEditorQualityDataInfo | null = null;\r\n\r\n if (!this.errorLoading && !this.errorNoProducts) {\r\n model = {\r\n enableForAllMyProducts: this.enableForAllMyProducts,\r\n enableForAllMyPaperParameters: this.enableForAllMyPaperParameters,\r\n enableForAllMyTextileParameters: this.enableForAllMyTextileParameters,\r\n enableForSpecificProductNames: !this.enableForAllMyProducts\r\n ? this.enableForSpecificProductNames\r\n : [],\r\n enableForSpecificPaperParameterIds:\r\n !this.enableForAllMyPaperParameters && this.anySelectedPaperProduct\r\n ? this.enableForSpecificPaperParameterIds\r\n : [],\r\n enableForSpecificTextileParameterIds:\r\n !this.enableForAllMyTextileParameters &&\r\n this.anySelectedTextileProduct\r\n ? this.enableForSpecificTextileParameterIds\r\n : [],\r\n pfiRevolutions: this.anyPfiRevolutions\r\n ? this.pfiRevolutions ?? undefined\r\n : undefined,\r\n listName: this.listName,\r\n frequency: this.frequency,\r\n\r\n valid: this.valid,\r\n anyChanges: this.anyChanges,\r\n };\r\n }\r\n\r\n this.$emit('update', model);\r\n });\r\n }\r\n\r\n public async initialize(createNotUpdate: boolean): Promise {\r\n if (!createNotUpdate && this.subscriptionInfoDetails !== null) {\r\n this.enableForAllMyProducts =\r\n this.subscriptionInfoDetails.enableForAllMyProducts ?? false;\r\n this.enableForAllMyPaperParameters =\r\n this.subscriptionInfoDetails.enableForAllMyPaperParameters ?? false;\r\n this.enableForAllMyTextileParameters =\r\n this.subscriptionInfoDetails.enableForAllMyTextileParameters ?? false;\r\n this.enableForSpecificProductNames = [\r\n ...this.subscriptionInfoDetails.enableForSpecificProductNames,\r\n ];\r\n this.enableForSpecificPaperParameterIds = [\r\n ...this.subscriptionInfoSpecificPaperParameterIds,\r\n ];\r\n this.enableForSpecificTextileParameterIds = [\r\n ...this.subscriptionInfoSpecificTextileParameterIds,\r\n ];\r\n\r\n this.listName = this.subscriptionInfoDetails.name ?? '';\r\n this.frequency =\r\n this.subscriptionInfoDetails.qualityData?.frequency ??\r\n SubscriptionQualityDataFrequency.Delivery;\r\n this.pfiRevolutions =\r\n this.subscriptionInfoDetails.qualityData?.pfiRevolutions ?? null;\r\n } else {\r\n this.enableForAllMyProducts = true;\r\n this.enableForAllMyPaperParameters = false;\r\n this.enableForAllMyTextileParameters = false;\r\n this.enableForSpecificProductNames = [];\r\n this.enableForSpecificPaperParameterIds = [];\r\n this.enableForSpecificTextileParameterIds = [];\r\n\r\n this.listName = '';\r\n this.frequency = SubscriptionQualityDataFrequency.Delivery;\r\n this.pfiRevolutions = this.DefaultPfiRevolutions;\r\n }\r\n\r\n await this.loadQualityDataInformationforCustomers().finally(() => {\r\n if (!createNotUpdate) {\r\n this.filterValidSpecificProductsAndParameterIds();\r\n } else {\r\n this.initializeDefaultSpecificParameterIds();\r\n }\r\n\r\n this.updateModel();\r\n });\r\n }\r\n\r\n public customersChanged(): void {\r\n this.loadQualityDataInformationforCustomers().finally(() => {\r\n this.filterValidSpecificProductsAndParameterIds();\r\n this.updateModel();\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscriptionEditorQualityData.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscriptionEditorQualityData.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubscriptionEditorQualityData.vue?vue&type=template&id=5487a54c&scoped=true&\"\nimport script from \"./SubscriptionEditorQualityData.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubscriptionEditorQualityData.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SubscriptionEditorQualityData.vue?vue&type=style&index=0&id=5487a54c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5487a54c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',{ref:\"modal\",attrs:{\"id\":\"subscriptionEditorModal\",\"title\":_vm.$t(\n (\"subscriptionEditorModal.title.\" + (_vm.createNotUpdate ? 'create' : 'update'))\n ),\"showFooter\":true,\"isLarge\":true,\"closeableByOutsideClickAndEscKey\":!_vm.canEdit},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('p',[_vm._v(\" \"+_vm._s(_vm.$t((\"subscriptionTypes.\" + _vm.subscriptionType + \".modalDescription\")))+\" \")]),(_vm.isCustomersRelevant)?_c('div',{staticClass:\"mb-2\"},[_c('label',{staticClass:\"o-label u-bold\"},[_vm._v(_vm._s(_vm.$t('subscriptionEditorModal.customers.title'))+\" \")]),_c('div',[_c('CustomersTreeSelect',{staticClass:\"subscription-customers-tree-select tree-select--light-grey\",attrs:{\"value\":_vm.enableForSpecificCustomerIds,\"customers\":_vm.customers,\"placeholder\":_vm.$t('subscriptionEditorModal.customers.placeholder'),\"clearable\":true,\"multiple\":true,\"disabled\":_vm.isLoading || !_vm.canEdit},on:{\"select\":_vm.onCustomersFilterSelect}})],1)]):_vm._e(),(!_vm.isLoading && !_vm.errorLoading)?[(_vm.isSubscriptionTypeQualityData)?_c('SubscriptionEditorQualityData',{ref:\"subscriptionEditorQualityData\",attrs:{\"subscriptionInfoDetails\":_vm.subscriptionInfoDetails,\"enableForSpecificCustomerIds\":_vm.enableForSpecificCustomerIds,\"canEdit\":_vm.canEdit,\"adminModeForUserAzureAdId\":_vm.adminModeForUserAzureAdId},on:{\"update\":_vm.onSubscriptionEditorQualityDataUpdate}}):_vm._e()]:_vm._e()]},proxy:true},{key:\"footer\",fn:function(){return [(_vm.errorInvalid)?_c('div',{staticClass:\"c-alert c-alert--red mb-3\",attrs:{\"data-element-id\":\"subscriptionEditorModal-errorInvalid\"}},[_c('span',{staticClass:\"c-alert__text\"},[_vm._v(_vm._s(_vm.$t('subscriptionEditorModal.errorInvalid'))+\" \")]),_c('span',{staticClass:\"js-toggle-hidden c-alert__close\",attrs:{\"data-element-id\":\"subscriptionEditorModal-errorInvalid\"},on:{\"click\":function($event){_vm.errorInvalid = false}}})]):_vm._e(),(_vm.errorLoading)?_c('div',{staticClass:\"c-alert c-alert--red mb-3\",attrs:{\"data-element-id\":\"subscriptionEditorModal-errorLoading\"}},[_c('span',{staticClass:\"c-alert__text\"},[_vm._v(_vm._s(_vm.$t('subscriptionEditorModal.errorLoading'))+\" \")]),_c('span',{staticClass:\"js-toggle-hidden c-alert__close\",attrs:{\"data-element-id\":\"subscriptionEditorModal-errorLoading\"},on:{\"click\":function($event){_vm.errorLoading = false}}})]):_vm._e(),(_vm.errorSaving)?_c('div',{staticClass:\"c-alert c-alert--red mb-3\",attrs:{\"data-element-id\":\"subscriptionEditorModal-errorSaving\"}},[_c('span',{staticClass:\"c-alert__text\"},[(_vm.createNotUpdate)?[_vm._v(_vm._s(_vm.$t('subscriptionEditorModal.errorCreating')))]:[_vm._v(_vm._s(_vm.$t('subscriptionEditorModal.errorUpdating')))]],2),_c('span',{staticClass:\"js-toggle-hidden c-alert__close\",attrs:{\"data-element-id\":\"subscriptionEditorModal-errorSaving\"},on:{\"click\":function($event){_vm.errorSaving = false}}})]):_vm._e(),(_vm.isLoading)?_c('div',{staticClass:\"d-flex align-items-center justify-content-center u-min-height-300\"},[_c('span',{staticClass:\"o-loader\"},[_vm._v(_vm._s(_vm.$t('subscriptionEditorModal.loadingData')))])]):_vm._e(),(_vm.canEdit)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}]},[_c('button',{staticClass:\"o-button o-button--lime-green mr-2\",attrs:{\"disabled\":!_vm.anyChanges ||\n _vm.saving ||\n _vm.errorLoading ||\n (_vm.isSubscriptionTypeQualityData && _vm.qualityDataInfo === null)},on:{\"click\":function($event){$event.preventDefault();return _vm.onSubmit.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t( (\"subscriptionEditorModal.okButton.\" + (_vm.createNotUpdate ? 'create' : 'update')) ))+\" \")]),_c('button',{staticClass:\"o-button o-button--white mr-2\",attrs:{\"disabled\":_vm.saving},on:{\"click\":_vm.onCancelClick}},[_vm._v(\" \"+_vm._s(_vm.$t('subscriptionEditorModal.cancel'))+\" \")])]):_vm._e()]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Modal from '@/components/general/Modal.vue';\r\nimport CustomersTreeSelect from '@/components/CustomersTreeSelect.vue';\r\nimport { Customer } from '@/models/Customer';\r\nimport { userProfileModule } from '@/store/modules/userProfile';\r\nimport TreeSelect from './general/TreeSelect.vue';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport SelectMultipleChips from './general/SelectMultipleChips.vue';\r\nimport { CreateOrUpdateSubscription } from '@/models/Subscriptions/CreateOrUpdateSubscription';\r\nimport { SubscriptionType } from '@/models/Subscriptions/SubscriptionType';\r\nimport { SubscriptionInfoDetails } from '@/models/Subscriptions/SubscriptionInfoDetails';\r\nimport { subscriptionsModule } from '@/store/modules/subscriptions';\r\nimport { adminSubscriptionCustomersModule } from '@/store/modules/adminSubscriptionCustomers';\r\nimport SelectBox from './general/SelectBox.vue';\r\nimport { adminSubscriptionsModule } from '@/store/modules/adminSubscriptions';\r\nimport { Permissions } from '@/utils/Permissions';\r\nimport { PermissionType } from '@/models/UserProfile/PermissionType';\r\nimport SubscriptionEditorQualityData, {\r\n SubscriptionEditorQualityDataInfo,\r\n} from './SubscriptionEditorQualityData.vue';\r\n\r\nexport const editableSubscriptionTypes: SubscriptionType[] = [\r\n // The other subscription types can only be created/deleted\r\n SubscriptionType.QualityData,\r\n];\r\n\r\n@Component({\r\n components: {\r\n Modal,\r\n CustomersTreeSelect,\r\n TreeSelect,\r\n SelectMultipleChips,\r\n SelectBox,\r\n SubscriptionEditorQualityData,\r\n },\r\n})\r\nexport default class SubscriptionEditorModal extends Vue {\r\n @Prop({ required: true })\r\n private subscriptionType!: SubscriptionType;\r\n @Prop({ required: true })\r\n private subscriptionInfoDetails!: SubscriptionInfoDetails | null;\r\n @Prop({ required: true }) private createNotUpdate!: boolean;\r\n @Prop({ required: false, default: () => undefined })\r\n private adminModeForUserAzureAdId!: string | undefined;\r\n\r\n private readonly CustomersRelevantForSubscriptionTypes: SubscriptionType[] = [\r\n SubscriptionType.QualityData,\r\n ];\r\n\r\n private enableForAllMyCustomers: boolean = false;\r\n private enableForSpecificCustomerIds: number[] = [];\r\n private qualityDataInfo: SubscriptionEditorQualityDataInfo | null = null;\r\n\r\n private isLoading: boolean = false;\r\n private saving: boolean = false;\r\n private errorInvalid: boolean = false;\r\n private errorLoading: boolean = false;\r\n private errorSaving: boolean = false;\r\n\r\n private get isCustomersRelevant(): boolean {\r\n return this.CustomersRelevantForSubscriptionTypes.some(\r\n (type) => type === this.subscriptionType\r\n );\r\n }\r\n\r\n private get subscriptionEditorQualityData():\r\n | SubscriptionEditorQualityData\r\n | undefined {\r\n return this.$refs\r\n .subscriptionEditorQualityData as SubscriptionEditorQualityData;\r\n }\r\n\r\n private get canEdit(): boolean {\r\n return Permissions.hasPermission(\r\n PermissionType.IsAllowedToEditSubscriptions\r\n );\r\n }\r\n\r\n private get isSubscriptionTypeQualityData(): boolean {\r\n return this.subscriptionType === SubscriptionType.QualityData;\r\n }\r\n\r\n private get valid(): boolean {\r\n if (\r\n this.isCustomersRelevant &&\r\n !this.enableForAllMyCustomers &&\r\n (this.enableForSpecificCustomerIds === undefined ||\r\n this.enableForSpecificCustomerIds.length === 0)\r\n ) {\r\n return false;\r\n }\r\n\r\n if (\r\n this.isSubscriptionTypeQualityData &&\r\n (this.qualityDataInfo === null || !this.qualityDataInfo.valid)\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private get anyChanges(): boolean {\r\n if (this.createNotUpdate) {\r\n return true;\r\n } else if (this.subscriptionInfoDetails === null) {\r\n return false;\r\n }\r\n\r\n if (\r\n this.isCustomersRelevant &&\r\n (this.enableForAllMyCustomers !==\r\n (this.subscriptionInfoDetails.enableForAllMyCustomers ?? false) ||\r\n this.enableForSpecificCustomerIds.length !==\r\n this.subscriptionInfoDetails.enableForSpecificCustomerIds.length ||\r\n this.enableForSpecificCustomerIds.some(\r\n (newId) =>\r\n !this.subscriptionInfoDetails?.enableForSpecificCustomerIds.some(\r\n (oldId) => newId === oldId\r\n )\r\n ))\r\n ) {\r\n return true;\r\n }\r\n\r\n if (\r\n this.isSubscriptionTypeQualityData &&\r\n this.qualityDataInfo !== null &&\r\n this.qualityDataInfo.anyChanges\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private get customers(): Customer[] {\r\n if (this.adminModeForUserAzureAdId !== undefined) {\r\n return (\r\n adminSubscriptionCustomersModule.item(this.adminModeForUserAzureAdId) ??\r\n []\r\n );\r\n } else {\r\n return userProfileModule.data?.userProfile.customers ?? [];\r\n }\r\n }\r\n\r\n private get selectedCustomer(): Customer | null {\r\n return userProfileModule.selectedCustomer;\r\n }\r\n\r\n public async show(): Promise {\r\n this.errorInvalid = false;\r\n this.errorLoading = false;\r\n this.errorSaving = false;\r\n\r\n (this.$refs.modal as Modal).showModal();\r\n\r\n if (this.adminModeForUserAzureAdId !== undefined) {\r\n await this.loadCustomersForAdminModeUser().then(async () => {\r\n await this.initialize();\r\n });\r\n } else {\r\n await this.initialize();\r\n }\r\n }\r\n\r\n private hideModal(): void {\r\n (this.$refs.modal as Modal).hideModal();\r\n }\r\n\r\n private async initialize(): Promise {\r\n if (this.isCustomersRelevant) {\r\n if (!this.createNotUpdate && this.subscriptionInfoDetails !== null) {\r\n this.enableForAllMyCustomers =\r\n this.subscriptionInfoDetails.enableForAllMyCustomers;\r\n this.enableForSpecificCustomerIds = [\r\n ...this.subscriptionInfoDetails.enableForSpecificCustomerIds.filter(\r\n (customerId) => this.customers.some((c) => c.id === customerId)\r\n ),\r\n ];\r\n } else {\r\n this.enableForAllMyCustomers = true;\r\n if (this.selectedCustomer) {\r\n this.enableForSpecificCustomerIds = [this.selectedCustomer.id];\r\n } else {\r\n this.enableForSpecificCustomerIds = [];\r\n }\r\n }\r\n } else {\r\n this.enableForAllMyCustomers = false;\r\n this.enableForSpecificCustomerIds = [];\r\n }\r\n\r\n if (this.isSubscriptionTypeQualityData) {\r\n await this.subscriptionEditorQualityData?.initialize(\r\n this.createNotUpdate\r\n );\r\n }\r\n }\r\n\r\n private loadCustomersForAdminModeUser(): Promise {\r\n if (this.adminModeForUserAzureAdId === undefined) {\r\n return Promise.reject();\r\n }\r\n\r\n this.isLoading = true;\r\n this.errorLoading = false;\r\n\r\n return adminSubscriptionCustomersModule\r\n .dispatchLoad(this.adminModeForUserAzureAdId)\r\n .then(() => {\r\n // Do nothing\r\n })\r\n .catch(() => {\r\n this.errorLoading = true;\r\n })\r\n .finally(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n private onSubmit() {\r\n if (!this.valid) {\r\n this.errorInvalid = true;\r\n return;\r\n } else {\r\n this.errorInvalid = false;\r\n }\r\n\r\n const model: CreateOrUpdateSubscription = {\r\n type: this.subscriptionType,\r\n name: this.qualityDataInfo?.listName,\r\n enableForAllMyCustomers: this.enableForAllMyCustomers,\r\n enableForSpecificCustomerIds: !this.enableForAllMyCustomers\r\n ? this.enableForSpecificCustomerIds\r\n : [],\r\n enableForAllMyProducts: this.qualityDataInfo?.enableForAllMyProducts,\r\n enableForAllMyPaperParameters:\r\n this.qualityDataInfo?.enableForAllMyPaperParameters,\r\n enableForAllMyTextileParameters:\r\n this.qualityDataInfo?.enableForAllMyTextileParameters,\r\n enableForSpecificProductNames:\r\n this.qualityDataInfo?.enableForSpecificProductNames,\r\n enableForSpecificPaperParameterIds:\r\n this.qualityDataInfo?.enableForSpecificPaperParameterIds,\r\n enableForSpecificTextileParameterIds:\r\n this.qualityDataInfo?.enableForSpecificTextileParameterIds,\r\n qualityData:\r\n this.qualityDataInfo !== null\r\n ? {\r\n frequency: this.qualityDataInfo.frequency,\r\n pfiRevolutions: this.qualityDataInfo.pfiRevolutions,\r\n }\r\n : undefined,\r\n };\r\n\r\n let dispatchMethod: Promise | undefined;\r\n if (this.createNotUpdate) {\r\n dispatchMethod = subscriptionsModule.dispatchCreate({ model });\r\n } else if (!this.createNotUpdate && this.subscriptionInfoDetails !== null) {\r\n if (this.adminModeForUserAzureAdId === undefined) {\r\n dispatchMethod = subscriptionsModule.dispatchUpdate({\r\n id: this.subscriptionInfoDetails.id,\r\n model,\r\n });\r\n } else {\r\n dispatchMethod = adminSubscriptionsModule.dispatchUpdate({\r\n id: this.subscriptionInfoDetails.id,\r\n userAzureAdId: this.subscriptionInfoDetails.userAzureAdId,\r\n model,\r\n });\r\n }\r\n }\r\n\r\n if (dispatchMethod === undefined) {\r\n return;\r\n }\r\n\r\n Consoler.debugLog(\r\n `${\r\n this.createNotUpdate ? 'Create' : 'Update'\r\n } subscription model to send`,\r\n model\r\n );\r\n\r\n this.saving = true;\r\n this.errorSaving = false;\r\n\r\n dispatchMethod\r\n .then(() => {\r\n this.$emit(this.createNotUpdate ? 'created' : 'updated');\r\n (this.$refs.modal as Modal).hideModal();\r\n })\r\n .catch(() => {\r\n this.errorSaving = true;\r\n })\r\n .finally(() => {\r\n this.saving = false;\r\n });\r\n }\r\n\r\n private onCustomersFilterSelect(customers: number[]) {\r\n if (\r\n !this.enableForAllMyCustomers &&\r\n this.enableForSpecificCustomerIds.length === customers.length &&\r\n customers.every((c) =>\r\n this.enableForSpecificCustomerIds.some((customerId) => c === customerId)\r\n )\r\n ) {\r\n // Same customers, do nothing\r\n return;\r\n }\r\n\r\n this.enableForAllMyCustomers = customers.length === 0;\r\n this.enableForSpecificCustomerIds = customers;\r\n\r\n if (this.isSubscriptionTypeQualityData) {\r\n this.subscriptionEditorQualityData?.customersChanged();\r\n }\r\n }\r\n\r\n private onSubscriptionEditorQualityDataUpdate(\r\n qualityDataInfo: SubscriptionEditorQualityDataInfo | null\r\n ): void {\r\n this.qualityDataInfo = qualityDataInfo;\r\n }\r\n\r\n private onCancelClick() {\r\n this.hideModal();\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscriptionEditorModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscriptionEditorModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubscriptionEditorModal.vue?vue&type=template&id=76151e61&scoped=true&\"\nimport script from \"./SubscriptionEditorModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubscriptionEditorModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SubscriptionEditorModal.vue?vue&type=style&index=0&id=76151e61&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76151e61\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscriptionEditorQualityData.vue?vue&type=style&index=0&id=5487a54c&lang=scss&scoped=true&\"","export enum PulpType {\r\n Composite = 'Composite',\r\n Paper = 'Paper',\r\n Textile = 'Textile',\r\n}\r\n","import { ReSendSendOut } from '@/models/AdminSubscriptions/ReSendSendOut';\r\nimport { HandledSendOut } from '@/models/AdminSubscriptions/HandledSendOut';\r\nimport { SendCopyOfSendOut } from '@/models/AdminSubscriptions/SendCopyOfSendOut';\r\nimport { Subscriber } from '@/models/AdminSubscriptions/Subscriber';\r\nimport { SubscriptionDetails } from '@/models/AdminSubscriptions/SubscriptionDetails';\r\nimport { SubscriptionHistoryItem } from '@/models/AdminSubscriptions/SubscriptionHistoryItem';\r\nimport { SubscriptionHistorySortBy } from '@/models/AdminSubscriptions/SubscriptionHistorySortBy';\r\nimport { SubscriptionsSortBy } from '@/models/AdminSubscriptions/SubscriptionsSortBy';\r\nimport { PaginatedResult } from '@/models/PaginatedResult{T}';\r\nimport { ChangeActiveStatusForSubscription } from '@/models/Subscriptions/ChangeActiveStatusForSubscription';\r\nimport { CreateOrUpdateSubscription } from '@/models/Subscriptions/CreateOrUpdateSubscription';\r\nimport { AdminCreateOrUpdateSubscriptionForUser } from '@/models/AdminSubscriptions/AdminCreateOrUpdateSubscriptionForUser';\r\nimport { SubscriptionQualityDataInfo } from '@/models/Subscriptions/SubscriptionQualityDataInfo';\r\nimport { SubscriptionType } from '@/models/Subscriptions/SubscriptionType';\r\nimport { Customer } from '@/models/Customer';\r\nimport { arrayParamsSerializer, BaseServiceDefinition } from './BaseService';\r\nimport { SubscriptionInfoDetails } from '@/models/Subscriptions/SubscriptionInfoDetails';\r\n\r\nclass AdminSubscriptionsService extends BaseServiceDefinition {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async getSubscriptions(\r\n sortBy: SubscriptionsSortBy,\r\n sortAsc: boolean,\r\n pageIndex: number,\r\n pageSize: number,\r\n filterCustomerIds?: number[],\r\n filterSubscriptionTypes?: SubscriptionType[],\r\n filterUserAzureAdIds?: string[]\r\n ): Promise> {\r\n return this.get(\r\n '/api/v1/admin/subscriptions',\r\n {\r\n sortBy,\r\n sortAsc,\r\n pageIndex,\r\n pageSize,\r\n filterCustomerIds,\r\n filterSubscriptionTypes,\r\n filterUserAzureAdIds,\r\n },\r\n arrayParamsSerializer\r\n )\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public getSubscriptionQualityDataInfo(\r\n userAzureAdId: string,\r\n customerIds: number[]\r\n ): Promise {\r\n return this.get(\r\n `/api/v1/admin/subscriptions/qualityData/${userAzureAdId}`,\r\n { customerIds },\r\n arrayParamsSerializer\r\n )\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public getSubscribers(): Promise {\r\n return this.get('/api/v1/admin/subscriptions/subscribers')\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public getUserCustomers(userAzureAdId: string): Promise {\r\n return this.get(`/api/v1/admin/subscriptions/customers/${userAzureAdId}`)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async createSubscription(\r\n model: AdminCreateOrUpdateSubscriptionForUser\r\n ): Promise {\r\n return this.post('/api/v1/admin/subscriptions', model)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async updateSubscription(\r\n id: number,\r\n userAzureAdId: string,\r\n model: CreateOrUpdateSubscription\r\n ): Promise {\r\n return this.put(`/api/v1/admin/subscriptions/${id}`, model, {\r\n userAzureAdId,\r\n }).catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async changeActiveStatusForSubscription(\r\n id: number,\r\n userAzureAdId: string,\r\n model: ChangeActiveStatusForSubscription\r\n ): Promise {\r\n return this.put(`/api/v1/admin/subscriptions/${id}/active`, model, {\r\n userAzureAdId,\r\n }).catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async getSubscriptionHistory(\r\n userSubscriptionId: number,\r\n userAzureAdId: string,\r\n sortBy: SubscriptionHistorySortBy,\r\n sortAsc: boolean,\r\n pageIndex: number,\r\n pageSize: number\r\n ): Promise> {\r\n return this.get(\r\n `/api/v1/admin/subscriptions/${userSubscriptionId}/history`,\r\n {\r\n userAzureAdId,\r\n sortBy,\r\n sortAsc,\r\n pageIndex,\r\n pageSize,\r\n }\r\n )\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async sendCopyOfQualityDataSubscriptionSendOut(\r\n userSubscriptionId: number,\r\n userSubscriptionSendOutId: number,\r\n userAzureAdId: string,\r\n model: SendCopyOfSendOut\r\n ): Promise {\r\n return this.post(\r\n `/api/v1/admin/subscriptions/${userSubscriptionId}/history/sendOuts/${userSubscriptionSendOutId}/sendCopy`,\r\n model,\r\n {\r\n params: { userAzureAdId },\r\n }\r\n ).catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async reSendQualityDataSubscriptionSendOut(\r\n userSubscriptionId: number,\r\n userSubscriptionSendOutId: number,\r\n userAzureAdId: string,\r\n model: ReSendSendOut\r\n ): Promise {\r\n return this.post(\r\n `/api/v1/admin/subscriptions/${userSubscriptionId}/history/sendOuts/${userSubscriptionSendOutId}/reSend`,\r\n model,\r\n {\r\n params: { userAzureAdId },\r\n }\r\n ).catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async setQualityDataSubscriptionSendOutHandledStatus(\r\n userSubscriptionId: number,\r\n userSubscriptionSendOutId: number,\r\n userAzureAdId: string,\r\n model: HandledSendOut,\r\n isHandled: boolean\r\n ): Promise {\r\n return this.post(\r\n `/api/v1/admin/subscriptions/${userSubscriptionId}/history/sendOuts/${userSubscriptionSendOutId}/handledStatus`,\r\n model,\r\n {\r\n params: { userAzureAdId, isHandled },\r\n }\r\n ).catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n}\r\n\r\nconst adminSubscriptionsService: AdminSubscriptionsService =\r\n new AdminSubscriptionsService();\r\n\r\nexport default adminSubscriptionsService;\r\n","export enum SubscriptionType {\r\n Sustainability = 'Sustainability',\r\n OrderFlow = 'OrderFlow',\r\n QualityData = 'QualityData',\r\n Invoices = 'Invoices',\r\n}\r\n","import { CommonStore } from '@/store/common';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { store } from '@/store';\r\n\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport subscriptionsService from '@/services/SubscriptionsService';\r\nimport { SubscriptionInfo } from '@/models/Subscriptions/SubscriptionInfo';\r\nimport { SubscriptionType } from '@/models/Subscriptions/SubscriptionType';\r\nimport { CreateOrUpdateSubscription } from '@/models/Subscriptions/CreateOrUpdateSubscription';\r\nimport { SubscriptionInfoDetails } from '@/models/Subscriptions/SubscriptionInfoDetails';\r\nimport { ChangeActiveStatusForSubscription } from '@/models/Subscriptions/ChangeActiveStatusForSubscription';\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'subscriptions',\r\n dynamic: true,\r\n store,\r\n})\r\nclass SubscriptionsModule extends VuexModule {\r\n public subscriptions: SubscriptionInfo[] | null = null;\r\n\r\n private common = new CommonStore(10); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get loading() {\r\n return this.common.loading;\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation public commitSetSubscriptions(subscriptions: SubscriptionInfo[]) {\r\n for (\r\n let subscription = 0;\r\n subscription < subscriptions.length;\r\n subscription++\r\n ) {\r\n subscriptions[subscription].isExpanded = true;\r\n }\r\n this.subscriptions = subscriptions;\r\n }\r\n\r\n @Mutation public commitUpdateSubscriptionInfoDetails(payload: {\r\n subscriptionType: SubscriptionType;\r\n subscriptionInfoDetails: SubscriptionInfoDetails;\r\n createNotUpdate: boolean;\r\n }) {\r\n if (!this.subscriptions) {\r\n return;\r\n }\r\n\r\n const subscriptionInfoIndex = this.subscriptions.findIndex(\r\n (s) => s.type === payload.subscriptionType\r\n );\r\n if (subscriptionInfoIndex < 0) {\r\n Consoler.debugWarn(\r\n 'commitUpdateSubscriptionInfoDetails: Could not update subscription, could not find subscription info of the type.'\r\n );\r\n return;\r\n }\r\n\r\n if (payload.createNotUpdate) {\r\n this.subscriptions[subscriptionInfoIndex].subscriptions.push(\r\n payload.subscriptionInfoDetails\r\n );\r\n } else {\r\n const subscriptionInfoDetailsIndex = this.subscriptions[\r\n subscriptionInfoIndex\r\n ].subscriptions.findIndex(\r\n (s) => s.id === payload.subscriptionInfoDetails.id\r\n );\r\n if (subscriptionInfoDetailsIndex < 0) {\r\n Consoler.debugWarn(\r\n `commitUpdateSubscriptionInfoDetails: Could not update subscription, could not find subscription info details for id '${payload.subscriptionInfoDetails.id}'.`\r\n );\r\n return;\r\n }\r\n\r\n this.subscriptions[subscriptionInfoIndex].subscriptions.splice(\r\n subscriptionInfoDetailsIndex,\r\n 1,\r\n payload.subscriptionInfoDetails\r\n );\r\n }\r\n }\r\n\r\n @Mutation public commitDeleteSubscriptionInfoDetails(payload: {\r\n subscriptionType: SubscriptionType;\r\n subscriptionId: number;\r\n }) {\r\n if (!this.subscriptions) {\r\n return;\r\n }\r\n\r\n const subscriptionInfoIndex = this.subscriptions.findIndex(\r\n (s) => s.type === payload.subscriptionType\r\n );\r\n if (subscriptionInfoIndex < 0) {\r\n Consoler.debugWarn(\r\n 'commitDeleteSubscriptionInfoDetails: Could not delete subscription, could not find subscription info of the type.'\r\n );\r\n return;\r\n }\r\n\r\n const subscriptionInfoDetailsIndex = this.subscriptions[\r\n subscriptionInfoIndex\r\n ].subscriptions.findIndex((s) => s.id === payload.subscriptionId);\r\n if (subscriptionInfoDetailsIndex < 0) {\r\n Consoler.debugWarn(\r\n `commitDeleteSubscriptionInfoDetails: Could not delete subscription, could not find subscription info details for id '${payload.subscriptionId}'.`\r\n );\r\n return;\r\n }\r\n\r\n this.subscriptions[subscriptionInfoIndex].subscriptions.splice(\r\n subscriptionInfoDetailsIndex,\r\n 1\r\n );\r\n }\r\n\r\n @Mutation public commitClearSubscriptions() {\r\n this.subscriptions = null;\r\n }\r\n\r\n // From common:\r\n @Mutation private commitSetLoadedDate() {\r\n this.common.setLoadedDate();\r\n }\r\n @Mutation private commitClearLoadedDate() {\r\n this.common.clearLoadedDate();\r\n }\r\n @Mutation private commitSetLoadingError(payload: { error: any }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n @Mutation private commitSetLoading() {\r\n this.common.setLoading();\r\n }\r\n @Mutation private commitClearLoading() {\r\n this.common.clearLoading();\r\n }\r\n @Mutation private commitSetLoadingPromise(payload: {\r\n loadingPromise: Promise;\r\n loadingPromiseForId: any;\r\n }) {\r\n this.common.setLoadingPromise(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(data?: { force: boolean }): Promise {\r\n // If recently loaded, return\r\n if ((!data || (data && !data.force)) && !this.common.needToReLoad()) {\r\n return Promise.resolve();\r\n }\r\n\r\n if (this.common.isCurrentlyLoading()) {\r\n Consoler.debugLog(\r\n 'Already loading, waiting for existing load to finish',\r\n 'subscriptions'\r\n );\r\n return this.common.loading.loadingPromise;\r\n }\r\n\r\n this.commitSetLoading();\r\n\r\n const loadingPromise = subscriptionsService\r\n .getSubscriptions()\r\n .then((subscriptions) => {\r\n this.commitSetSubscriptions(subscriptions);\r\n this.commitSetLoadedDate();\r\n this.commitClearLoading();\r\n Consoler.debugLog('Load subscriptions success', subscriptions);\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Load subscriptions failed', error);\r\n this.commitSetLoadingError({ error });\r\n this.commitClearSubscriptions();\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoadingPromise({ loadingPromise, loadingPromiseForId: null });\r\n return loadingPromise;\r\n }\r\n\r\n @Action\r\n public async dispatchCreate(payload: {\r\n model: CreateOrUpdateSubscription;\r\n }): Promise {\r\n return subscriptionsService\r\n .createSubscription(payload.model)\r\n .then((subscriptionInfoDetails) => {\r\n Consoler.debugLog(\r\n 'Create subscription success',\r\n subscriptionInfoDetails\r\n );\r\n this.commitUpdateSubscriptionInfoDetails({\r\n subscriptionType: payload.model.type,\r\n subscriptionInfoDetails: subscriptionInfoDetails,\r\n createNotUpdate: true,\r\n });\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Create subscription failed', error);\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n @Action\r\n public async dispatchUpdate(payload: {\r\n id: number;\r\n model: CreateOrUpdateSubscription;\r\n }): Promise {\r\n return subscriptionsService\r\n .updateSubscription(payload.id, payload.model)\r\n .then((subscriptionInfoDetails) => {\r\n Consoler.debugLog(\r\n 'Update subscription success',\r\n subscriptionInfoDetails\r\n );\r\n this.commitUpdateSubscriptionInfoDetails({\r\n subscriptionType: payload.model.type,\r\n subscriptionInfoDetails: subscriptionInfoDetails,\r\n createNotUpdate: false,\r\n });\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Update subscription failed', error);\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n @Action\r\n public async dispatchChangeActiveStatus(payload: {\r\n id: number;\r\n model: ChangeActiveStatusForSubscription;\r\n }): Promise {\r\n return subscriptionsService\r\n .changeActiveStatusForSubscription(payload.id, payload.model)\r\n .then(() => {\r\n Consoler.debugLog('Change active status for subscription success');\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn(\r\n 'Change active status for subscription failed',\r\n error\r\n );\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n @Action\r\n public async dispatchDelete(payload: {\r\n id: number;\r\n subscriptionType: SubscriptionType;\r\n }): Promise {\r\n return subscriptionsService\r\n .deleteSubscription(payload.id, payload.subscriptionType)\r\n .then((subscriptionInfo) => {\r\n Consoler.debugLog('Delete subscription success', subscriptionInfo);\r\n this.commitDeleteSubscriptionInfoDetails({\r\n subscriptionType: payload.subscriptionType,\r\n subscriptionId: payload.id,\r\n });\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Delete subscription failed', error);\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n @Action\r\n public async dispatchRestore(payload: {\r\n id: number;\r\n model: SubscriptionInfo;\r\n }): Promise {\r\n return subscriptionsService\r\n .restoreSubscription(payload.id, payload.model)\r\n .then((subscriptionInfo) => {\r\n Consoler.debugLog('Restore subscription success', subscriptionInfo);\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Restore subscription failed', error);\r\n return Promise.reject(error);\r\n });\r\n }\r\n}\r\n\r\nexport const subscriptionsModule = getModule(SubscriptionsModule);\r\n"],"sourceRoot":""}