{"version":3,"sources":["webpack:///./src/mixins/shared/alertable/alertableMixin.js","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///./src/mixins/project/details/projectMixin.js","webpack:///./src/design/components/alert/alertModel.js","webpack:///./src/model/common/events/eventConst.js","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///./src/mixins/shared/base/settings/menuItemSettingsMixin.js","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///./src/model/action/actionModel.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","SIZE_MAP","isFontAwesome5","iconType","some","val","includes","isSvgPath","icon","test","length","VIcon","mixins","BindsAttrs","Colorable","Sizeable","Themeable","extend","name","props","dense","Boolean","disabled","left","right","size","Number","String","tag","required","default","medium","hasClickListener","listeners$","click","getIcon","iconName","$slots","text","trim","remapInternalIcon","getSize","sizes","xSmall","small","large","xLarge","explicitSize","keys","find","key","convertToUnit","getDefaultData","staticClass","class","attrs","attrs$","on","getSvgWrapperData","fontSize","wrapperData","style","height","width","applyColors","themeClasses","setTextColor","color","renderFontIcon","h","newChildren","delimiterIndex","indexOf","isMaterialIcon","push","slice","renderSvgIcon","svgData","xmlns","viewBox","role","d","renderSvgIconComponent","component","nativeOn","render","Vue","$_wrapperFor","functional","children","domProps","textContent","innerHTML","projectMixin","snackbarableMixin","menuItemSettingsMixin","ProjectLayout","ProjectActions","BaseMenuItem","ProjectOperationDialog","ProjectDetailedReportDialog","AssignManagerDialog","project","projectOperation","visibleDialogDeleteProject","visibleDialogCancelProject","visibleDialogSuspendProject","visibleDialogResumeProject","visibleDialogProjectExport","visibleDialogAssignProject","projectId","_this$project$project","_this$project","projectName","_this$project$project2","_this$project2","assignManager","payload","console","warn","updateProjectManager","onProjectExport","onProjectAssignManager","onProjectRepair","showSnackbarWarning","onProjectResume","onProjectCancel","onProjectDelete","onProjectSuspend","closeDialogDeleteProject","closeDialogCancelProject","closeDialogSuspendProject","closeDialogResumeProject","closeDialogExportProject","closeDialogAssignManager","managerName","managerId","comment","notify","_this$projectId","operation","findProjectOperation","ReassignManager","label","sendNotification","result","createActionResultError","_this$projectId2","id","createActionResultSuccess","e","toString","Object","freeze","alertTypes","border","top","bottom","borders","resetDetails","deleteDetails","saveDetails","deleteSelectedItems","printSelectedItems","configureDataTable","openSelectedItem","dialogCancel","dialogOK","closed","close","opened","selectedNotification","selectedOption","activated","expanded","remove","listItemGroupChange","moreText","removeField","databaseLookup","categoryChanged","updateRecord","agendaTemplateChanged","AgendaItemTemplateChanged","AgendaSectionTemplateChanged","selectedExtension","insertFile","customPage","overwriteFile","expandedPreview","agendaPacketOptions","onRecordMoved","onFileDropped","performContextMenuAction","onContextMenuAction","checkInOptionChanged","uploadFileChanged","ocrTextSaved","itemSelected","optionChanged","downloadReport","taskValidation","onEventClicked","onContextAction","calendarContextAction","onEventRightClicked","onFileChanged","onSearchAction","onSearchChipRemoved","openDefaultPdfViewer","onCheckout","onDialogOpened","onDialogClosedAfterAction","onOk","makeWatcher","property","oldVal","attr","prototype","hasOwnProperty","call","$delete","$data","$set","created","$watch","immediate","mapGetters","createNamespacedHelpers","menuItemColor","mdMenuItemColor","Color","variantType","variantNumber","menuItemColorClass","getClassColor","setBackgroundColor","consoleError","isCssColor","colorName","colorModifier","split","sizeableClasses","actionResult","outcome","actionResultType","cancel","abort","actionResultTypes","findActionResultType","el","createActionResult","_findActionResultType","_findActionResultType2","_findActionResultType3","formatActionMessage","createActionResultAbort"],"mappings":"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","file":"js/chunk-516824de.4cf55361.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","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","// model\r\nimport {\r\n findProjectOperation,\r\n projectOperation\r\n} from \"@/model/workflow/project/projectModel\";\r\n\r\n// mixins\r\nimport { snackbarableMixin } from \"@/mixins/shared/snackbarable/snackbarableMixin\";\r\nimport { alertableMixin } from \"@/mixins/shared/alertable/alertableMixin\";\r\nimport { menuItemSettingsMixin } from \"@/mixins/shared/base/settings/menuItemSettingsMixin\";\r\nimport {\r\n createActionResultError,\r\n createActionResultSuccess\r\n} from \"@/model/action/actionModel\";\r\n\r\nexport const projectMixin = {\r\n mixins: [snackbarableMixin, alertableMixin, menuItemSettingsMixin],\r\n components: {\r\n ProjectLayout: () => import(\"@/components/project/ProjectLayout\"),\r\n ProjectActions: () => import(\"@/components/project/ProjectActions\"),\r\n BaseMenuItem: () => import(\"@/components/shared/base/BaseMenuItem\"),\r\n ProjectOperationDialog: () =>\r\n import(\"@/components/project/dialogs/ProjectOperationDialog.vue\"),\r\n ProjectDetailedReportDialog: () =>\r\n import(\"@/components/project/dialogs/ProjectDetailedReportDialog.vue\"),\r\n AssignManagerDialog: () =>\r\n import(\"@/components/project/dialogs/AssignManagerDialog.vue\")\r\n },\r\n props: {\r\n /**\r\n * Workflow Project\r\n * @type {{projectId: Number, projectName:string, definitionId: Number, workflowInstanceId: Number, workflowTypeId: Number, recordId: Number, subject: String, owner: String, userName:string, projectManagerId: Number, templateId: Number, templateName: String, projectStatus: number, isOverdue: Boolean, isSuspended: false, canAccess: Boolean, canCancel: Boolean, canChangeOwnership: Boolean, canReassign: Boolean, canSuspend: Boolean, comment:string, durableInstanceUid:string, creationDate:string}}\r\n */\r\n project: undefined\r\n },\r\n data() {\r\n return {\r\n projectOperation: projectOperation,\r\n visibleDialogDeleteProject: false,\r\n visibleDialogCancelProject: false,\r\n visibleDialogSuspendProject: false,\r\n visibleDialogResumeProject: false,\r\n visibleDialogProjectExport: false,\r\n visibleDialogAssignProject: false\r\n };\r\n },\r\n computed: {\r\n /**\r\n * Get Workflow Project projectId\r\n * @return {Number|number} Workflow Project id\r\n */\r\n projectId() {\r\n return this.project?.projectId ?? -1;\r\n },\r\n\r\n /**\r\n * Get Workflow Project Name\r\n * @return {String|string} Workflow Project Name\r\n */\r\n projectName() {\r\n return this.project?.projectName ?? \"\";\r\n }\r\n },\r\n methods: {\r\n /**\r\n * Assign Manager\r\n * Abstract method\r\n * @param {{ projectId: Number, managerId: Number, comment: String, sendNotification: Boolean}} payload\r\n * @return {Promise<{Boolean}>}\r\n */\r\n assignManager(payload) {\r\n console.warn(\r\n \"Not implemented Abstract method: assignManager() \",\r\n payload\r\n );\r\n },\r\n\r\n /**\r\n * Abstract Update Project Manager\r\n * @param {{id: Number, managerName: String}} payload\r\n */\r\n updateProjectManager(payload) {\r\n console.warn(`Abstract updateProjectManager() payload:`, payload);\r\n },\r\n /**\r\n * handle callback function call: onProjectExport\r\n */\r\n onProjectExport() {\r\n this.visibleDialogProjectExport = true;\r\n },\r\n\r\n /**\r\n * handle callback function call: onProjectAssignManager\r\n */\r\n onProjectAssignManager() {\r\n this.visibleDialogAssignProject = true;\r\n },\r\n\r\n /**\r\n * handle callback function call: onProjectRepair\r\n */\r\n onProjectRepair() {\r\n this.showSnackbarWarning(\r\n `TODO: Repair Project: ${this.projectName}`,\r\n true\r\n );\r\n },\r\n\r\n /**\r\n * handle callback function call: onProjectResume\r\n */\r\n onProjectResume() {\r\n this.visibleDialogResumeProject = true;\r\n },\r\n\r\n /**\r\n * handle callback function call: onProjectCancel\r\n */\r\n onProjectCancel() {\r\n this.visibleDialogCancelProject = true;\r\n },\r\n\r\n /**\r\n * handle callback function call: onProjectDelete\r\n */\r\n onProjectDelete() {\r\n this.visibleDialogDeleteProject = true;\r\n },\r\n\r\n /**\r\n * handle callback function call: onProjectSuspend\r\n */\r\n onProjectSuspend() {\r\n this.visibleDialogSuspendProject = true;\r\n },\r\n\r\n /**\r\n * handle close Dialog Delete Project\r\n */\r\n closeDialogDeleteProject() {\r\n this.visibleDialogDeleteProject = false;\r\n },\r\n\r\n /**\r\n * handle close Dialog Cancel Project\r\n */\r\n closeDialogCancelProject() {\r\n this.visibleDialogCancelProject = false;\r\n },\r\n\r\n /**\r\n * handle close Dialog Suspend Project\r\n */\r\n closeDialogSuspendProject() {\r\n this.visibleDialogSuspendProject = false;\r\n },\r\n\r\n /**\r\n * handle close Dialog Resume Project\r\n */\r\n closeDialogResumeProject() {\r\n this.visibleDialogResumeProject = false;\r\n },\r\n\r\n /**\r\n * handle close Dialog Export Project\r\n */\r\n closeDialogExportProject() {\r\n this.visibleDialogProjectExport = false;\r\n },\r\n\r\n /**\r\n * handle close Dialog Assign Manager\r\n */\r\n closeDialogAssignManager() {\r\n this.visibleDialogAssignProject = false;\r\n },\r\n\r\n /**\r\n * Event On Assign Manager\r\n * @param {String} managerName\r\n * @param {Number} managerId\r\n * @param {String} comment\r\n * @param {Boolean} notify\r\n * @return {Promise<{type: string, message: string, outcome: string}>}\r\n */\r\n async onManagerAssignment(managerName, managerId, comment, notify) {\r\n try {\r\n const operation = findProjectOperation(\r\n projectOperation.ReassignManager\r\n );\r\n const action = `${operation?.label}`;\r\n\r\n const payload = {\r\n projectId: this.projectId ?? -1,\r\n managerId: managerId ?? -1,\r\n comment: comment ?? \"\",\r\n sendNotification: notify ?? false\r\n };\r\n const result = await this.assignManager(payload);\r\n if (result?.data) {\r\n const payload = {\r\n id: this.projectId ?? -1,\r\n managerName: managerName\r\n };\r\n this.updateProjectManager(payload);\r\n } else {\r\n return createActionResultError(\"Project Manager Assignment\");\r\n }\r\n return createActionResultSuccess(action);\r\n } catch (e) {\r\n return createActionResultError(e?.toString());\r\n }\r\n }\r\n }\r\n};\r\n","/**\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 * Event Names\r\n * @type {Readonly<{deleteSelectedItems: string, selectedNotification: string, saveDetails: string, openSelectedItem: string, dialogCancel: string, dialogOK: string, selectedOption: string, click: string, alertVisibilityChanged: string, remove: string, listItemGroupChange: string, deleteDetails: string, printSelectedItems: string, closed: string, configureDataTable: string, close: string, resetDetails: string, activated: string}>}\r\n */\r\nconst eventNames = Object.freeze({\r\n resetDetails: \"resetDetails\",\r\n deleteDetails: \"deleteDetails\",\r\n saveDetails: \"saveDetails\",\r\n deleteSelectedItems: \"deleteSelectedItems\",\r\n printSelectedItems: \"printSelectedItems\",\r\n configureDataTable: \"configureDataTable\",\r\n openSelectedItem: \"open-selected-item\",\r\n dialogCancel: \"cancel\",\r\n dialogOK: \"ok\",\r\n closed: \"closed\",\r\n close: \"close\",\r\n opened: \"opened\",\r\n selectedNotification: \"selectedNotification\",\r\n selectedOption: \"selectedOption\",\r\n alertVisibilityChanged: \"alertVisibilityChanged\",\r\n activated: \"activated\",\r\n expanded: \"expanded\",\r\n remove: \"remove\",\r\n click: \"click\",\r\n listItemGroupChange: \"listItemGroupChange\",\r\n moreText: \"moreText\",\r\n removeField: \"removeField\",\r\n databaseLookup: \"databaseLookup\",\r\n categoryChanged: \"categoryChanged\",\r\n updateRecord: \"update-record\",\r\n agendaTemplateChanged: \"agendaTemplateChanged\",\r\n AgendaItemTemplateChanged: \"AgendaItemTemplateChanged\",\r\n AgendaSectionTemplateChanged: \"AgendaSectionTemplateChanged\",\r\n selectedExtension: \"selected-extension\",\r\n insertFile: \"insert-file\",\r\n customPage: \"custom-page\",\r\n overwriteFile: \"overwrite-option\",\r\n expandedPreview: \"expandedPreview\",\r\n agendaPacketOptions: \"agendaPacketOptions\",\r\n onRecordMoved: \"onRecordMoved\",\r\n onFileDropped: \"onFileDropped\",\r\n performContextMenuAction: \"performContextMenuAction\",\r\n onContextMenuAction: \"onContextMenuAction\",\r\n checkInOptionChanged: \"checkInOptionChanged\",\r\n uploadFileChanged: \"uploadFileChanged\",\r\n ocrTextSaved: \"ocrTextSaved\",\r\n itemSelected: \"itemSelected\",\r\n optionChanged: \"optionChanged\",\r\n downloadReport: \"download-report\",\r\n taskValidation: \"task-validation\",\r\n onEventClicked: \"onEventClicked\",\r\n onContextAction: \"onContextAction\",\r\n calendarContextAction: \"calendarContextAction\",\r\n onEventRightClicked: \"onEventRightClicked\",\r\n onFileChanged: \"onFileChanged\",\r\n onSearchAction: \"onSearchAction\",\r\n onSearchChipRemoved: \"onSearchChipRemoved\",\r\n openDefaultPdfViewer: \"openDefaultPdfViewer\",\r\n onCheckout: \"onCheckout\",\r\n onDialogOpened: \"onDialogOpened\",\r\n onDialogClosedAfterAction: \"onDialogClosedAfterAction\",\r\n onOk: \"onOk\"\r\n});\r\n\r\nexport { eventNames };\r\n","import Vue from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType & ((val: any, oldVal: any) => void) {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary,\n listeners$: {} as Dictionary,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","// design\r\nimport { Color } from \"@/design/colors/Color\";\r\n\r\n// vuex/store\r\nimport { createNamespacedHelpers } from \"vuex\";\r\nconst { mapGetters } = createNamespacedHelpers(\"solution\");\r\n\r\n/**\r\n * Menu Item Settings Mixin encapsulate Menu Item Settings logic\r\n */\r\nexport const menuItemSettingsMixin = {\r\n computed: {\r\n ...mapGetters({\r\n menuItemColor: \"menuItemColor\"\r\n }),\r\n /**\r\n * Get Material Design Menu Item Color\r\n * @returns {Color}\r\n */\r\n mdMenuItemColor() {\r\n return new Color(\r\n this.menuItemColor.name,\r\n this.menuItemColor.variantType,\r\n this.menuItemColor.variantNumber\r\n );\r\n },\r\n /**\r\n * Get menu Item color class\r\n * @returns {string|*}\r\n */\r\n menuItemColorClass() {\r\n return this.mdMenuItemColor.getClassColor();\r\n }\r\n }\r\n};\r\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","/**\r\n * action Result Type template\r\n * @type {Readonly<{type: string, message: string}>}\r\n */\r\nconst actionResult = Object.freeze({\r\n type: \"type\",\r\n message: \"message\",\r\n outcome: \"outcome\"\r\n});\r\n\r\n/**\r\n * action Result Type name/key\r\n * @type {Readonly<{cancel: string, abort: string, success: string, error: string}>}\r\n */\r\nconst actionResultType = Object.freeze({\r\n success: \"success\",\r\n error: \"error\",\r\n cancel: \"cancel\",\r\n abort: \"abort\"\r\n});\r\n\r\n/**\r\n * action Result Types\r\n * @type {{name: string, outcome: string}[]}\r\n */\r\nconst actionResultTypes = Object.freeze([\r\n {\r\n name: actionResultType.success,\r\n outcome: \"succeeded\"\r\n },\r\n {\r\n name: actionResultType.error,\r\n outcome: \"failed\"\r\n },\r\n {\r\n name: actionResultType.cancel,\r\n outcome: \"canceled\"\r\n },\r\n {\r\n name: actionResultType.abort,\r\n outcome: \"aborted\"\r\n }\r\n]);\r\n\r\n/**\r\n * find Action Result Type\r\n * @param {string} name Action Result Type name\r\n * @return {{name: string, outcome: string, message: string}} Action Result Type\r\n */\r\nconst findActionResultType = name => {\r\n return actionResultTypes.find(el => el.name === name);\r\n};\r\n\r\n/**\r\n * create Action Result\r\n * @param {string} type Action Result type\r\n * @param {string} action Action name\r\n * @return {{type: string, message: string, outcome: string}} Action Result\r\n */\r\nconst createActionResult = (type, action) => {\r\n const outcome = findActionResultType(type)?.outcome ?? \"\";\r\n\r\n return {\r\n [actionResult.type]: type,\r\n [actionResult.message]: formatActionMessage(action, outcome),\r\n [actionResult.outcome]: findActionResultType(type)?.outcome\r\n };\r\n};\r\n\r\n/**\r\n * create Success Action Result\r\n * @param {string} action Action name\r\n * @return {{type: string, message: string, outcome: string}} Success Action Result\r\n */\r\nconst createActionResultSuccess = action => {\r\n return createActionResult(actionResultType.success, action);\r\n};\r\n\r\n/**\r\n * create Cancel Action Result\r\n * @param {string} action Action name\r\n * @return {{type: string, message: string, outcome: string}} Cancel Action Result\r\n */\r\nconst createActionResultCancel = action => {\r\n return createActionResult(actionResultType.cancel, action);\r\n};\r\n\r\n/**\r\n * create Error Action Result\r\n * @param {string} action Action name\r\n * @return {{type: string, message: string, outcome: string}} Error Action Result\r\n */\r\nconst createActionResultError = action => {\r\n return createActionResult(actionResultType.error, action);\r\n};\r\n\r\n/**\r\n * create Abort Action Result\r\n * @param {string} action Action name\r\n * @return {{type: string, message: string, outcome: string}} Abort Action Result\r\n */\r\nconst createActionResultAbort = action => {\r\n return createActionResult(actionResultType.abort, action);\r\n};\r\n\r\n/**\r\n * format Action Message\r\n * @param action Action name\r\n * @param outcome Action's outcome\r\n * @return {`${string} ${string}.`} formatted Action Message\r\n */\r\nconst formatActionMessage = (action, outcome) => {\r\n return `${action} ${outcome}.`;\r\n};\r\n\r\nexport {\r\n actionResult,\r\n actionResultType,\r\n actionResultTypes,\r\n createActionResult,\r\n createActionResultSuccess,\r\n createActionResultCancel,\r\n createActionResultError,\r\n createActionResultAbort,\r\n findActionResultType,\r\n formatActionMessage\r\n};\r\n"],"sourceRoot":""}