{"version":3,"sources":["webpack:///./src/mixins/shared/alertable/alertableMixin.js","webpack:///./src/mixins/shared/promptAble/promptAbleMixin.js","webpack:///./src/components/shared/core/dialogs/BatchRestoreRecordsDialog.vue","webpack:///src/components/shared/core/dialogs/BatchRestoreRecordsDialog.vue","webpack:///./src/components/shared/core/dialogs/BatchRestoreRecordsDialog.vue?ff39","webpack:///./src/components/shared/core/dialogs/BatchRestoreRecordsDialog.vue?e427","webpack:///./src/design/components/alert/alertModel.js","webpack:///./src/mixins/shared/progressAble/progressAbleMixin.js","webpack:///./src/mixins/shared/slottable/slottableMixin.js","webpack:///./src/mixins/shared/batch/batchDialogMixin.js","webpack:///./src/design/components/prompt/promptModel.js","webpack:///./src/mixins/shared/navigatable/moduleItemNavigatable.js"],"names":["alertableMixin","components","BaseAlert","data","internalAlert","undefined","alertTypeName","alertType","computed","showAlert","get","this","visibleAlert","set","value","message","$emit","eventNames","alertVisibilityChanged","_this$internalAlert","isEmpty","currentAlertType","_this$internalAlert2","info","type","alertMessage","_this$internalAlert3","isAlertDismissible","_this$internalAlert$d","_this$internalAlert4","dismissible","methods","createAlert","createAlertError","error","createAlertWarning","warning","createAlertInfo","createAlertSuccess","success","formatAlertError","action","clearAlert","promptAbleMixin","BasePrompt","visiblePrompt","promptTypeName","promptType","promptText","promptSubtitle","promptHint","currentPromptType","normal","promptColorClass","colorTheme","critical","createPrompt","render","_vm","_c","_self","attrs","visible","operation","recordList","isSelectedRecord","batchOperationStatus","progressText","on","closeAction","cancelAction","onOk","onDialogOpened","onDialogClosedAfterAction","staticRenderFns","name","BatchDialog","mixins","progressAbleMixin","moduleItemNavigatable","batchDialogMixin","props","Array","default","restoreEvent","Function","required","restoreEventCompleted","isCanceled","findRecordOperation","recordOperation","Restore","_this$operation","label","restoreProgressText","record","index","length","i","result","actionResultType","setStatus","id","batchRecordStatus","Completed","abort","Canceled","Failed","e","closeProgress","component","Object","freeze","alertTypes","border","top","right","bottom","left","borders","ProgressDisplay","visibleProgress","formatProgressText","showProgress","text","slottableMixin","hasSlot","$slots","Boolean","recordId","status","targetRecord","find","item","close","forEach","Ready","setRecordOperationStatus","_this$recordList","push","subtitle","hint","appMixin","routerMixin","canNavigateToModuleItem","$router","createModuleItemContentRoute","console","warn","appModuleName","createModuleItemContentRouteLocation","canNavigateToModuleItemByModuleItemId"],"mappings":"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","file":"js/chunk-858f7766.467ef947.js","sourcesContent":["// design\r\nimport {\r\n alertType,\r\n createAlert,\r\n formatAlertError\r\n} from \"@/design/components/alert/alertModel\";\r\n\r\n// utils\r\nimport { isEmpty } from \"@/utils\";\r\n\r\n// model\r\nimport { eventNames } from \"@/model/common/events/eventConst\";\r\n\r\nexport const alertableMixin = {\r\n components: {\r\n BaseAlert: () => import(\"@/components/shared/base/BaseAlert\")\r\n },\r\n data() {\r\n return {\r\n /**\r\n * internal alert to be displayed\r\n * @type {{type: string, message: string, dismissible : boolean}}\r\n */\r\n internalAlert: undefined,\r\n\r\n /**\r\n * alert Type name enum\r\n * @type {{success: string, warning: string, error: string, info: string}}\r\n */\r\n alertTypeName: alertType\r\n };\r\n },\r\n computed: {\r\n showAlert: {\r\n get() {\r\n return this.visibleAlert;\r\n },\r\n set(value) {\r\n if (!value) {\r\n if (this.internalAlert) {\r\n this.internalAlert.message = undefined;\r\n }\r\n }\r\n this.$emit(eventNames.alertVisibilityChanged, value);\r\n }\r\n },\r\n\r\n /**\r\n * determines whether alert should be visible\r\n * @return {boolean} true if alert should be visible\r\n */\r\n visibleAlert() {\r\n return !isEmpty(this.internalAlert?.message);\r\n },\r\n\r\n /**\r\n * current Alert Type\r\n * @return {string|undefined} current Alert Type\r\n */\r\n currentAlertType() {\r\n return isEmpty(this.internalAlert?.message)\r\n ? alertType.info\r\n : this.internalAlert.type;\r\n },\r\n\r\n /**\r\n * alert Message\r\n * @return {string|undefined}\r\n */\r\n alertMessage() {\r\n return this.internalAlert?.message;\r\n },\r\n\r\n /**\r\n * compute whether Alert should be Dismissible\r\n * @return {boolean} if true Alert should be Dismissible\r\n */\r\n isAlertDismissible() {\r\n return this.internalAlert?.dismissible ?? false;\r\n }\r\n },\r\n methods: {\r\n /**\r\n * create Alert\r\n * @param {string} type Alert type\r\n * @param {string} message Alert message\r\n * @param {boolean} dismissible Alert dismissible\r\n * @return {{type: string, message: string, dismissible: boolean}}\r\n */\r\n createAlert(type, message, dismissible = false) {\r\n return createAlert(type, message, dismissible);\r\n },\r\n\r\n /**\r\n * create Error type Alert\r\n * @param {string} message Error Alert message\r\n * @param {boolean} dismissible Error Alert dismissible\r\n * @return {{type: string, message: string, dismissible: boolean}}\r\n */\r\n createAlertError(message, dismissible = false) {\r\n return createAlert(alertType.error, message, dismissible);\r\n },\r\n\r\n /**\r\n * create Warning type Alert\r\n * @param {string} message Warning Alert message\r\n * @param {boolean} dismissible Warning Alert dismissible\r\n * @return {{type: string, message: string, dismissible: boolean}}\r\n */\r\n createAlertWarning(message, dismissible = false) {\r\n return createAlert(alertType.warning, message, dismissible);\r\n },\r\n\r\n /**\r\n * create Info type Alert\r\n * @param {string} message Info Alert message\r\n * @param {boolean} dismissible Info Alert dismissible\r\n * @return {{type: string, message: string, dismissible: boolean}}\r\n */\r\n createAlertInfo(message, dismissible = false) {\r\n return createAlert(alertType.info, message, dismissible);\r\n },\r\n\r\n /**\r\n * create Success type Alert\r\n * @param {string} message Success Alert message\r\n * @param {boolean} dismissible Success Alert dismissible\r\n * @return {{type: string, message: string, dismissible: boolean}}\r\n */\r\n createAlertSuccess(message, dismissible = false) {\r\n return createAlert(alertType.success, message, dismissible);\r\n },\r\n\r\n /**\r\n * format Alert Error\r\n * @param {String} action\r\n * @param {String} error\r\n * @return {string} formatted Alert Error\r\n */\r\n formatAlertError(action, error) {\r\n return formatAlertError(action, error);\r\n },\r\n\r\n /**\r\n * clear current Alert\r\n */\r\n clearAlert() {\r\n this.internalAlert = undefined;\r\n }\r\n }\r\n};\r\n","// design\r\nimport {\r\n createPrompt,\r\n promptType\r\n} from \"@/design/components/prompt/promptModel\";\r\nimport { colorTheme } from \"@/design/colors/mdColors\";\r\n\r\nexport const promptAbleMixin = {\r\n components: {\r\n BasePrompt: () => import(\"@/components/shared/base/BasePrompt\")\r\n },\r\n data() {\r\n return {\r\n visiblePrompt: true,\r\n promptTypeName: promptType\r\n };\r\n },\r\n computed: {\r\n /**\r\n * Prompt text\r\n * remarks: designed to be overwritten\r\n * @return {string} Prompt text\r\n */\r\n promptText() {\r\n return \"Do you want to proceed?\";\r\n },\r\n\r\n /**\r\n * compute prompt Subtitle\r\n * remarks: designed to be overwritten\r\n * @return {string} prompt Subtitle\r\n */\r\n promptSubtitle() {\r\n return undefined;\r\n },\r\n\r\n /**\r\n * compute prompt Hint (toolTip)\r\n * remarks: designed to be overwritten\r\n * @return {string} prompt Hint (toolTip)\r\n */\r\n promptHint() {\r\n return undefined;\r\n },\r\n\r\n /**\r\n * current Prompt Type by default\r\n * remarks: designed to be overwritten\r\n * @return {string} current Prompt Type\r\n */\r\n currentPromptType() {\r\n return this.promptTypeName.normal;\r\n },\r\n\r\n /**\r\n * prompt Color Class\r\n * @return {string|undefined} suggested prompt Color Class\r\n */\r\n promptColorClass() {\r\n switch (this.currentPromptType) {\r\n case promptType.normal: {\r\n return undefined;\r\n }\r\n case promptType.warning: {\r\n return colorTheme.warning;\r\n }\r\n case promptType.info: {\r\n return colorTheme.info;\r\n }\r\n case promptType.success: {\r\n return colorTheme.success;\r\n }\r\n case promptType.critical: {\r\n return colorTheme.error;\r\n }\r\n default:\r\n return undefined;\r\n }\r\n }\r\n },\r\n methods: {\r\n /**\r\n * create Prompt\r\n * @return {{text: string, subtitle: (string|undefined|null), hint: (string|undefined|null), type: (string|undefined|null)}}\r\n */\r\n createPrompt() {\r\n return createPrompt(\r\n this.promptText,\r\n this.currentPromptType,\r\n this.promptSubtitle,\r\n this.promptHint\r\n );\r\n }\r\n }\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('batch-dialog',{attrs:{\"visible\":_vm.visible,\"record-operation\":_vm.operation,\"record-list\":_vm.recordList,\"is-selected-record\":_vm.isSelectedRecord,\"batch-operation-status\":_vm.batchOperationStatus,\"alert\":_vm.internalAlert,\"progress\":_vm.progressText},on:{\"close\":_vm.closeAction,\"cancel\":_vm.cancelAction,\"onOk\":_vm.onOk,\"onDialogOpened\":_vm.onDialogOpened,\"onDialogClosedAfterAction\":_vm.onDialogClosedAfterAction}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatchRestoreRecordsDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatchRestoreRecordsDialog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BatchRestoreRecordsDialog.vue?vue&type=template&id=37209f27\"\nimport script from \"./BatchRestoreRecordsDialog.vue?vue&type=script&lang=js\"\nexport * from \"./BatchRestoreRecordsDialog.vue?vue&type=script&lang=js\"\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","/**\r\n * Alert Type (map to vuetify Alert types)\r\n * @type {{success: string, warning: string, error: string, info: string}}\r\n */\r\nconst alertType = Object.freeze({\r\n success: \"success\",\r\n info: \"info\",\r\n warning: \"warning\",\r\n error: \"error\"\r\n});\r\n\r\n/**\r\n * Get the list of available Alert Types\r\n * @type {(string)[]}\r\n */\r\nconst alertTypes = Object.freeze([\r\n alertType.success,\r\n alertType.info,\r\n alertType.warning,\r\n alertType.error\r\n]);\r\n\r\n/**\r\n * Alert border\r\n * @type {Readonly<{top: string, left: string, bottom: string, right: string}>}\r\n */\r\nconst border = Object.freeze({\r\n top: \"top \",\r\n right: \"right \",\r\n bottom: \"bottom \",\r\n left: \"left\"\r\n});\r\n\r\n/**\r\n * Alert borders\r\n * @type {(string)[]}\r\n */\r\nconst borders = Object.freeze([\r\n border.top,\r\n border.right,\r\n border.bottom,\r\n border.left\r\n]);\r\n\r\n/**\r\n * create Alert\r\n * @param {string} type Alert type\r\n * @param {string} message Alert message\r\n * @param {boolean} dismissible dismissible Alert\r\n * @return {{type : string, message : string, dismissible : boolean}}\r\n */\r\nconst createAlert = (type, message, dismissible = false) => {\r\n return {\r\n type: type,\r\n message: message,\r\n dismissible: dismissible\r\n };\r\n};\r\n\r\n/**\r\n * format Alert Error\r\n * @param action full operation action\r\n * @param error error message\r\n * @return {`Couldn't ${string}. ${string}`}\r\n */\r\nconst formatAlertError = (action, error) => {\r\n return `Couldn't ${action}. ${error}`;\r\n};\r\n\r\nexport {\r\n alertType,\r\n alertTypes,\r\n border,\r\n borders,\r\n createAlert,\r\n formatAlertError\r\n};\r\n","/**\r\n * progress-able Mixin used to display progress using Progress Display component\r\n * @type {{components: {ProgressDisplay: (function(): Promise<*>)}, props: {visibleProgress: {default: boolean, type: BooleanConstructor}, uploadFileProgressText: {default: string, type: StringConstructor}}}}\r\n */\r\nexport const progressAbleMixin = {\r\n components: {\r\n ProgressDisplay: () =>\r\n import(\"@/components/shared/core/progress/ProgressDisplay\")\r\n },\r\n data() {\r\n return {\r\n /**\r\n * indicate whether Progress is visible\r\n * @type {Boolean}\r\n */\r\n visibleProgress: false,\r\n\r\n /**\r\n * Progress text to be displayed\r\n * @type {string}\r\n */\r\n progressText: undefined\r\n };\r\n },\r\n methods: {\r\n formatProgressText(action) {\r\n return `${action} ...`;\r\n },\r\n showProgress(text) {\r\n this.progressText = text;\r\n this.visibleProgress = true;\r\n },\r\n closeProgress() {\r\n this.progressText = undefined;\r\n this.visibleProgress = false;\r\n }\r\n }\r\n};\r\n","export const slottableMixin = {\r\n methods: {\r\n /**\r\n * has Slot\r\n * @param {string} name\r\n * @return {boolean}\r\n */\r\n hasSlot(name) {\r\n return !!this.$slots[name];\r\n }\r\n }\r\n};\r\n","import { batchRecordStatus } from \"@/model/record/recordModel\";\r\nimport { eventNames } from \"@/model/common/events/eventConst\";\r\nimport { slottableMixin } from \"@/mixins/shared/slottable/slottableMixin\";\r\n\r\nexport const batchDialogMixin = {\r\n mixins: [slottableMixin],\r\n\r\n props: {\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n\r\n methods: {\r\n /**\r\n * Set Operation Status per each Record\r\n * @param recordId\r\n * @param status\r\n * @param message\r\n */\r\n setStatus(recordId, status, message) {\r\n const targetRecord = this.batchOperationStatus.find(\r\n item => item.recordId === recordId\r\n );\r\n if (targetRecord) {\r\n targetRecord.status = status;\r\n targetRecord.message = message;\r\n }\r\n },\r\n\r\n /**\r\n * close Dialog\r\n */\r\n closeAction() {\r\n this.isCanceled = true;\r\n this.$emit(eventNames.close);\r\n },\r\n\r\n /**\r\n * cancel Operation\r\n */\r\n cancelAction() {\r\n this.isCanceled = true;\r\n this.batchOperationStatus.forEach(record => {\r\n if (record.status === batchRecordStatus.Ready) {\r\n record.status = batchRecordStatus.Canceled;\r\n record.message = \"Aborted\";\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * Set Record Operation Status\r\n */\r\n setRecordOperationStatus() {\r\n this.batchOperationStatus = [];\r\n this.recordList?.forEach(record => {\r\n // Create an object with recordId and status \"Ready\" and push it to batchOperationStatus\r\n this.batchOperationStatus.push({\r\n recordId: record?.id,\r\n status: batchRecordStatus.Ready,\r\n message: \"Ready\"\r\n });\r\n });\r\n },\r\n\r\n /**\r\n * Event On Batch Dialog Opened\r\n */\r\n onDialogOpened() {\r\n this.setRecordOperationStatus();\r\n this.isCanceled = false;\r\n }\r\n }\r\n};\r\n","/**\r\n * prompt Type\r\n * @type {Readonly<{normal: string, critical: string, success: string, warning: string, info: string}>}\r\n */\r\nconst promptType = Object.freeze({\r\n normal: \"normal\",\r\n success: \"success\",\r\n info: \"info\",\r\n warning: \"warning\",\r\n critical: \"error\"\r\n});\r\n\r\n/**\r\n * create Prompt\r\n * @param {string} text required text of the prompt\r\n * @param {string} type optional promptType\r\n * @param {string} subtitle optional subtitle\r\n * @param {string} hint optional hint\r\n * @return {{text: string, subtitle: string|undefined|null, hint: string|undefined|null, type: string|undefined|null}}\r\n */\r\nconst createPrompt = (\r\n text,\r\n type = undefined,\r\n subtitle = undefined,\r\n hint = undefined\r\n) => {\r\n return {\r\n text: text,\r\n type: type,\r\n subtitle: subtitle,\r\n hint: hint\r\n };\r\n};\r\n\r\nexport { promptType, createPrompt };\r\n","// router\r\nimport { createModuleItemContentRouteLocation } from \"@/router/solution/solutionRoutes\";\r\n\r\n// mixins\r\nimport { appMixin } from \"@/mixins/shared/base/app/appMixin\";\r\nimport { routerMixin } from \"@/mixins/shared/router/routerMixin\";\r\n\r\n/**\r\n * Contains options (adhere to the DRY principle) & code re-usability\r\n * for components that needs Application module navigatable behavior\r\n */\r\nexport const moduleItemNavigatable = {\r\n mixins: [appMixin, routerMixin],\r\n methods: {\r\n /**\r\n * Navigate to Application Module Item\r\n * @param {Number|number} id Application Module Item id\r\n */\r\n async navigateToModuleItem(id) {\r\n if (!this.canNavigateToModuleItem(id)) {\r\n console.warn(\r\n `Couldn't navigate to ${this.appModuleName} Item by id:`,\r\n id\r\n );\r\n return;\r\n }\r\n\r\n try {\r\n await this.$router.push(this.createModuleItemContentRoute(id));\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n },\r\n\r\n /**\r\n * create Module Item Target Route\r\n * @param {Number|number} id Module Item id\r\n * @return {{name: (String|string), params: {id:number}}}\r\n */\r\n createModuleItemContentRoute(id) {\r\n return createModuleItemContentRouteLocation(this.appModuleName, id);\r\n },\r\n\r\n /**\r\n * can Navigate To Module Item\r\n * @param {Number|number} id Module Item id\r\n * @return {boolean} true if Navigatable To Module Item\r\n */\r\n canNavigateToModuleItem(id) {\r\n return this.canNavigateToModuleItemByModuleItemId(this.appModuleName, id);\r\n }\r\n }\r\n};\r\n"],"sourceRoot":""}