{"version":3,"sources":["webpack:///./src/mixins/shared/file/fileCheckInMixin.js","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///./src/mixins/shared/alertable/alertableMixin.js","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///./src/mixins/shared/promptAble/promptAbleMixin.js","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./src/design/components/alert/alertModel.js","webpack:///./src/model/common/events/eventConst.js","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///./src/mixins/shared/reactive/reactiveMixin.js","webpack:///./src/mixins/shared/base/dialog/modalDialogMixin.js","webpack:///./src/mixins/shared/base/dialog/dialogOutlineMixin.js","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///../../../src/mixins/comparable/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VIcon/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///./src/components/shared/core/dialogs/UploadLocalFileDialog.vue","webpack:///src/components/shared/core/dialogs/UploadLocalFileDialog.vue","webpack:///./src/components/shared/core/dialogs/UploadLocalFileDialog.vue?ec87","webpack:///./src/components/shared/core/dialogs/UploadLocalFileDialog.vue?d1ff","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/components/VChip/VChip.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/directives/resize/index.ts","webpack:///./src/design/components/prompt/promptModel.js","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/components/VChipGroup/VChipGroup.ts"],"names":["fileCheckInMixin","data","uploadFileInput","undefined","uploadFileError","checkInFileOption","insertAfterLastPage","visibleUploadFilePopoverMenu","compoundFileOverwrite","uploadOptionsList","components","CheckInFile","FileInput","RadioGroup","computed","record","checkInFileOptions","console","log","this","visibleCheckInFileOptions","isViewerCheckInAction","checkInWIPFileOptions","map","el","value","text","disabled","enabledCheckInOption","uploadFileProgress","uploadFileProgressText","formatUploadFileProgressText","uploadFileMenuLabel","uploadFilePopoverDialogTitle","uploadFilePopoverDialogSubtitle","_fullRecordName","getRecordTypeName","fullRecordName","commandCloseUploadFileDialogTooltip","uploadFileCommandLabel","checkInFileMenuLabel","checkInFilePopoverDialogTitle","checkInFileCommandLabel","commandCloseCheckInFileDialogTooltip","closeCommandLabel","canInsertFile","canInsertImageFile","canInsertFileAtBeginning","canOverwriteFileVersion","isInsertFile","overwrite","isInsertFileAtBeginning","insertBeforeFirstPage","_this$record$recordTy","_this$record","_this$record$recordTy2","_this$record2","_this$record$recordTy3","_this$record3","_this$record$recordTy4","_this$record4","isViewer","recordTypeId","recordType","RECORD","FILE","DOCUMENT","isCompoundFile","enabledCommandUploadFile","_this$record$recordTy5","_this$record5","_this$record$recordTy6","_this$record6","_this$record$recordTy7","_this$record7","_this$record$recordTy8","_this$record8","_this$record$recordTy9","_this$record9","isValidOperation","recordOperation","Update","FOLDER","ITEM","defaultCheckInFileOption","get","set","computedUploadFileError","hasUploadOptions","_this$uploadOptionsLi","_this$uploadOptionsLi2","length","methods","setUploadFileProgress","progress","warn","payload","notImplementedMethod","checkInFile","onFileInputChange","file","e","error","onCheckInOptionChange","option","find","isValidCheckInFileOption","insertAtBeginning","checkInOption","insertOption","insertFileOption","beforeFirstPage","afterLastPage","model","UploadOptionModel","checkInComment","isCheckInOCR","isCheckInDraft","_this$record$id","_this$record10","uploadFile","id","uploadFileModel","_this$record$id2","_this$record11","_this$record$id3","_this$record12","uploadCompoundDocumentFile","insertBeforePage","enqueue","comments","msg","updateSelectedOptionList","push","watch","mergeTransitions","dest","transitions","Array","concat","createSimpleTransition","name","origin","mode","functional","props","group","type","Boolean","default","hideOnLeave","leaveAbsolute","String","render","h","context","tag","on","beforeEnter","style","transformOrigin","webkitTransformOrigin","leave","offsetTop","offsetLeft","offsetWidth","offsetHeight","_transitionInitialStyles","position","top","left","width","height","afterLeave","setProperty","mergeData","children","createJavascriptTransition","functions","expandedParentClass","x","sizeProperty","offsetProperty","upperFirst","_parent","parentNode","_initialStyle","transition","overflow","enter","initialStyle","offset","classList","add","requestAnimationFrame","afterEnter","resetStyles","enterCancelled","leaveCancelled","remove","size","VFabTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VSlideXTransition","VExpandTransition","ExpandTransitionGenerator","VExpandXTransition","alertableMixin","BaseAlert","internalAlert","alertTypeName","alertType","showAlert","visibleAlert","message","$emit","eventNames","alertVisibilityChanged","_this$internalAlert","isEmpty","currentAlertType","_this$internalAlert2","info","alertMessage","_this$internalAlert3","isAlertDismissible","_this$internalAlert$d","_this$internalAlert4","dismissible","createAlert","createAlertError","createAlertWarning","warning","createAlertInfo","createAlertSuccess","success","formatAlertError","action","clearAlert","SIZE_MAP","isFontAwesome5","iconType","some","val","includes","isSvgPath","icon","test","VIcon","mixins","BindsAttrs","Colorable","Sizeable","Themeable","extend","dense","right","Number","required","medium","hasClickListener","listeners$","click","getIcon","iconName","$slots","trim","remapInternalIcon","getSize","sizes","xSmall","small","large","xLarge","explicitSize","keys","key","convertToUnit","getDefaultData","staticClass","class","attrs","attrs$","getSvgWrapperData","fontSize","wrapperData","applyColors","themeClasses","setTextColor","color","renderFontIcon","newChildren","delimiterIndex","indexOf","isMaterialIcon","slice","renderSvgIcon","svgData","xmlns","viewBox","role","d","renderSvgIconComponent","component","nativeOn","Vue","$_wrapperFor","domProps","textContent","innerHTML","promptAbleMixin","BasePrompt","visiblePrompt","promptTypeName","promptType","promptText","promptSubtitle","promptHint","currentPromptType","normal","promptColorClass","colorTheme","critical","createPrompt","maxHeight","maxWidth","minHeight","minWidth","measurableStyles","styles","Object","freeze","alertTypes","border","bottom","borders","resetDetails","deleteDetails","saveDetails","deleteSelectedItems","printSelectedItems","configureDataTable","openSelectedItem","dialogCancel","dialogOK","closed","close","opened","selectedNotification","selectedOption","activated","expanded","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","BaseItemGroup","Comparable","Proxyable","activeClass","mandatory","max","multiple","internalLazyValue","items","classes","selectedIndex","selectedItem","selectedItems","filter","item","index","toggleMethod","getValue","selectedValues","internalValue","isArray","v","valueComparator","intern","created","consoleWarn","genData","i","onClick","updateInternalValue","register","$on","updateMandatory","updateItem","unregister","_isDestroyed","splice","valueIndex","isActive","updateItemsState","$nextTick","forEach","updateMultiple","updateSingle","last","reverse","defaultValue","findIndex","isSame","getSlot","provide","itemGroup","reactiveMixin","visibleOnMdAndUp","$vuetify","breakpoint","mdAndUp","visibleOnSmAndUp","smAndUp","visibleOnSmAndDown","smAndDown","modalDialogMixin","iconCloseDialog","iconClose","visible","showDialog","dialogIcon","visibleDialogIcon","dialogTitle","closeDialogTooltip","dialogCloseCommandLabel","dialogOkCommandLabel","commandNames","ok","dialogCancelCommandLabel","cancel","openDialog","closeDialog","dialogOutlineMixin","DialogOutline","BaseButton","BaseTooltipButton","displayProgress","onDialogClosed","timeOut","Promise","resolve","setTimeout","delay","newValue","makeWatcher","property","oldVal","attr","prototype","hasOwnProperty","call","$delete","$data","$set","$watch","immediate","bias","c","Math","abs","sign","calculateUpdatedOffset","selectedElement","widths","rtl","currentScrollOffset","clientWidth","content","totalWidth","wrapper","itemOffset","additionalOffset","min","calculateCenteredOffset","offsetCentered","BaseSlideGroup","Mobile","directives","Resize","Touch","centerActive","nextIcon","prevIcon","showArrows","validator","isOverflowing","resizeTimeout","startX","isSwipingHorizontal","isSwiping","scrollOffset","canTouch","window","__cachedNext","genTransition","__cachedPrev","options","hasAffixes","isMobile","hasNext","hasPrev","scroll","$refs","transform","mounted","ResizeObserver","obs","onResize","observe","$el","disconnect","itemsLength","_a","setWidths","onScroll","scrollLeft","onFocusin","composedPath","vm","genNext","slot","$scopedSlots","next","$createElement","onAffixClick","genContent","ref","focusin","genIcon","location","upperLocation","toUpperCase","hasAffix","genPrev","prev","genWrapper","start","overflowCheck","onTouchStart","move","onTouchMove","end","onTouchEnd","calculateNewOffset","direction","newAbosluteOffset","scrollTo","touchstartX","diffX","touchmoveX","diffY","touchmoveY","touchstartY","document","documentElement","overflowY","maxScrollOffset","removeProperty","fn","stopPropagation","scrollIntoView","lastItemPosition","getBoundingClientRect","wrapperPosition","slideGroup","Function","deepEqual","inserted","binding","vnode","modifiers","handler","observer","IntersectionObserver","entries","_observe","_uid","isIntersecting","entry","quiet","init","once","unbind","unobserve","Intersect","factory","prop","event","scopedSlots","_vm","proxy","_c","callback","expression","staticRenderFns","ExpansionPanelsLayout","CheckInOption","CoreChipGroup","destinationRecord","localFile","uploadEvent","previewUrl","canPreview","currentSelectedOption","createCheckInOption","_this$destinationReco","operation","findImageOperation","imageOperation","Import","operationLabel","_this$operation","_this$localFile","visibleOptions","_this$checkInFileOpti","_this$checkInFileOpti2","result","actionResultType","autoCloseDialog","setImageUrl","startsWith","reader","FileReader","onload","target","readAsDataURL","insertOptionsTitle","findCheckinFileOption","deep","updated","Measurable","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","$listeners","VResponsive","hasIntersect","intersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","join","backgroundPosition","loadImage","lazyImg","Image","pollForSize","onLoad","getSrc","endsWith","naturalHeight","onError","decode","catch","err","then","onerror","img","timeout","poll","complete","_b","__genPlaceholder","placeholder","appear","node","sizeableClasses","handleGesture","touchendX","touchendY","dirRatio","minDistance","offsetX","offsetY","up","down","touchstart","touch","changedTouches","clientX","clientY","assign","touchend","touchmove","createHandlers","parent","parentElement","passive","handlers","_touchHandlers","eventName","addEventListener","removeEventListener","Routable","GroupableFactory","ToggleableFactory","active","chipGroup","closeIcon","closeLabel","draggable","filterIcon","label","link","outlined","pill","textColor","proxyClass","isClickable","isLink","hasClose","groupClasses","breakingProps","original","replacement","$attrs","breaking","toggle","genFilter","genClose","lang","t","preventDefault","generateRouteLink","tabindex","setBackgroundColor","pattern","styleList","styleProp","parseStyle","styleMap","s","split","camelize","mergeTarget","arguments","mergeClasses","mergeStyles","mergeListeners","source","wrapInArray","args","arg","_onResize","subtitle","hint","mobileBreakpoint","isNaN","mobile","mobileWidth","parseInt","isNumber","deprecate","column"],"mappings":"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","file":"js/chunk-115f04f3.212d1f63.js","sourcesContent":["import { notImplementedMethod } from \"@/services/error/errorMessages\";\r\nimport {\r\n canInsertImageFile,\r\n canOverwriteFileVersion,\r\n fullRecordName,\r\n getRecordTypeName,\r\n isCompoundFile\r\n} from \"@/services/record/recordService\";\r\n\r\n// model\r\nimport {\r\n checkInFileOptions,\r\n checkInFileOption,\r\n checkInWIPFileOptions,\r\n insertFileOption\r\n} from \"@/model/record/fileModel\";\r\nimport { recordOperation, recordType } from \"@/model/record/recordModel\";\r\nimport { UploadOptionModel } from \"@/model/record/checkInModel\";\r\n\r\nexport const fileCheckInMixin = {\r\n data() {\r\n return {\r\n uploadFileInput: undefined,\r\n uploadFileError: undefined,\r\n checkInFileOption: checkInFileOption.insertAfterLastPage,\r\n visibleUploadFilePopoverMenu: false,\r\n compoundFileOverwrite: -2,\r\n uploadOptionsList: []\r\n };\r\n },\r\n components: {\r\n CheckInFile: () => import(\"@/components/file/CheckInFile\"),\r\n FileInput: () => import(\"@/components/shared/core/inputs/FileInput\"),\r\n RadioGroup: () => import(\"@/components/shared/core/radio/RadioGroup\")\r\n },\r\n computed: {\r\n /**\r\n * Current selected record.\r\n * Abstract computed\r\n * @return {{id:number, name:string, categoryId:number, recordTypeId:number, recordType: string, parentId:number, children:number, createdBy:string, creationDate:string, extension:string, isComposite:boolean, isLink:boolean, isReadOnly:boolean, isComposite: boolean, isDeleted: boolean, isDraft: boolean, isLink: boolean, isLocked: boolean, stateId:number, state:string, fieldValues: {id: number, name:string, fieldDataType: number, fieldDataTypeName: string, value: string}[], flyingFields: {id:number, sequence:number}[], operations: {name: string, allowed: boolean, valid: boolean}[] }}\r\n */\r\n record: () => undefined,\r\n\r\n /**\r\n * Get Check In File Options\r\n * @return {{text: *, value: *}[]|{text: *, value: *}[]}\r\n */\r\n checkInFileOptions() {\r\n console.log(this.record);\r\n return this.visibleCheckInFileOptions\r\n ? this.isViewerCheckInAction\r\n ? checkInWIPFileOptions.map(el => {\r\n return {\r\n value: el.value,\r\n text: el.text,\r\n disabled: this.enabledCheckInOption(el)\r\n };\r\n })\r\n : checkInFileOptions.map(el => {\r\n return {\r\n value: el.value,\r\n text: el.text,\r\n disabled: this.enabledCheckInOption(el)\r\n };\r\n })\r\n : [];\r\n },\r\n\r\n /**\r\n * upload File Progress value\r\n * @return {number}\r\n */\r\n uploadFileProgress() {\r\n return 0;\r\n },\r\n\r\n /**\r\n * upload File Progress Text\r\n * @return {string}\r\n */\r\n uploadFileProgressText() {\r\n return this.formatUploadFileProgressText(this.uploadFileProgress);\r\n },\r\n\r\n /**\r\n * upload File Menu Label\r\n * @return {string}\r\n */\r\n uploadFileMenuLabel() {\r\n return \"Upload File ...\";\r\n },\r\n\r\n /**\r\n * upload File Popover Dialog Title\r\n * @return {string} upload File Popover Dialog Title\r\n */\r\n uploadFilePopoverDialogTitle() {\r\n return \"Upload File\";\r\n },\r\n\r\n /**\r\n * compute upload File Popover Dialog Subtitle\r\n * @return {string} upload File Popover Dialog Subtitle\r\n */\r\n uploadFilePopoverDialogSubtitle() {\r\n return this.record\r\n ? `To ${getRecordTypeName(this.record)}: ${fullRecordName(\r\n this.record\r\n ) ?? \"?\"}`\r\n : \"?\";\r\n },\r\n\r\n /**\r\n * command Close Upload File Dialog Tooltip\r\n * @return {string}\r\n */\r\n commandCloseUploadFileDialogTooltip() {\r\n return \"Close Upload File Dialog\";\r\n },\r\n\r\n /**\r\n * upload File Command Label\r\n * @return {string}\r\n */\r\n uploadFileCommandLabel() {\r\n return \"Upload\";\r\n },\r\n\r\n /**\r\n * check In File Menu Label\r\n * @return {string}\r\n */\r\n checkInFileMenuLabel() {\r\n return \"Check In ...\";\r\n },\r\n\r\n /**\r\n * check In File Popover Dialog Title\r\n * @return {string}\r\n */\r\n checkInFilePopoverDialogTitle() {\r\n return \"Check In\";\r\n },\r\n\r\n /**\r\n * upload File Command Label\r\n * @return {string}\r\n */\r\n checkInFileCommandLabel() {\r\n return \"Check In\";\r\n },\r\n\r\n /**\r\n * command Close Check-In File Dialog Tooltip\r\n * @return {string}\r\n */\r\n commandCloseCheckInFileDialogTooltip() {\r\n return \"Close Check In File Dialog\";\r\n },\r\n\r\n /**\r\n * close Command Label\r\n * @return {string}\r\n */\r\n closeCommandLabel() {\r\n return \"Close\";\r\n },\r\n\r\n /**\r\n * can Insert File being Check In\r\n * @return {boolean}\r\n */\r\n canInsertFile() {\r\n return canInsertImageFile(this.record);\r\n },\r\n\r\n /**\r\n * can Insert File, being Check In, at the Beginning of the current file version\r\n * @return {boolean}\r\n */\r\n canInsertFileAtBeginning() {\r\n return canInsertImageFile(this.record);\r\n },\r\n\r\n /**\r\n * can Overwrite current File Version when Check In a new file\r\n * @return {boolean}\r\n */\r\n canOverwriteFileVersion() {\r\n return canOverwriteFileVersion(this.record);\r\n },\r\n\r\n /**\r\n * is Insert File into current file version\r\n * @return {boolean}\r\n */\r\n isInsertFile() {\r\n return this.checkInFileOption !== checkInFileOption.overwrite;\r\n },\r\n\r\n /**\r\n * is Insert File Before First Page\r\n * @return {boolean}\r\n */\r\n isInsertFileAtBeginning() {\r\n return this.checkInFileOption === checkInFileOption.insertBeforeFirstPage;\r\n },\r\n\r\n /**\r\n * determines visibility of Check In File Options\r\n * @return {boolean}\r\n */\r\n visibleCheckInFileOptions() {\r\n return this.isViewer\r\n ? (this.record?.recordTypeId ?? recordType.RECORD) ===\r\n recordType.FILE ||\r\n (this.record?.recordTypeId ?? recordType.RECORD) ===\r\n recordType.RECORD ||\r\n (this.record?.recordTypeId ?? recordType.RECORD) ===\r\n recordType.DOCUMENT\r\n : (this.record?.recordTypeId ?? recordType.RECORD) ===\r\n recordType.FILE && !isCompoundFile(this.record);\r\n },\r\n\r\n /**\r\n * Compute whether Is Valid Upload File Operation\r\n * @return {boolean} returns true if Is Valid Upload File Operation\r\n */\r\n enabledCommandUploadFile() {\r\n return !!(\r\n this.record &&\r\n this.isValidOperation(recordOperation.Update) &&\r\n ((this.record?.recordTypeId ?? -1) === recordType.RECORD ||\r\n (this.record?.recordTypeId ?? -1) === recordType.FILE ||\r\n (this.record?.recordTypeId ?? -1) === recordType.DOCUMENT ||\r\n (this.record?.recordTypeId ?? -1) === recordType.FOLDER ||\r\n (this.record?.recordTypeId ?? -1) === recordType.ITEM)\r\n );\r\n },\r\n\r\n /**\r\n * Default Check In File Option\r\n * @return {number}\r\n */\r\n defaultCheckInFileOption: {\r\n get() {\r\n console.log(\"IS VIEWER\", this.isViewer);\r\n return (this.checkInFileOption =\r\n this.canInsertFile || this.isViewer\r\n ? checkInFileOption.insertAfterLastPage\r\n : checkInFileOption.overwrite);\r\n },\r\n set(value) {\r\n console.log(\"Value\", value);\r\n this.checkInFileOption = value;\r\n }\r\n },\r\n\r\n /**\r\n * compute Upload File Error\r\n * @return {string|null|undefined}\r\n */\r\n computedUploadFileError() {\r\n return this.uploadFileError;\r\n },\r\n\r\n /**\r\n * Verify if Upload Option List has data\r\n * @return {boolean}\r\n */\r\n hasUploadOptions() {\r\n return (this.uploadOptionsList?.length ?? 0) > 0;\r\n }\r\n },\r\n methods: {\r\n /**\r\n * Abstract set Upload File progress\r\n * @param {Number|number} progress\r\n */\r\n setUploadFileProgress(progress) {\r\n console.warn(\r\n `Not implemented setUploadFileProgress() progress:`,\r\n progress\r\n );\r\n },\r\n\r\n /**\r\n * Abstract upload File\r\n * @param {{file: File, id: (number|number), uploadFileModel: {Extension: (string|undefined), Draft: boolean, InsertFileOption: {afterLastPage: number, beforeFirstPage: number, overwrite: number}, Comments: string, Enqueue: boolean}}} payload\r\n * @return {Promise}\r\n */\r\n async uploadFile(payload) {\r\n console.warn(`Not implemented uploadFile() payload:`, payload);\r\n },\r\n\r\n /**\r\n * Abstract upload Compound Document File\r\n * @param {{id: Number, file: any, insertBeforePage: Number, enqueue: Boolean, comments: string}} payload\r\n * @return {Promise<{id: number, name: string, categoryId: number, children: number, createdBy: string, creationDate: string, extension: string, flags: number, isComposite: boolean, isDeleted: boolean, isDraft: boolean, isLink: boolean, isLocked: boolean, isReadOnly: boolean, modificationDate: string, owner: string, pageCount: number, parentId: number, recordType: string, recordTypeId: number, state: string, stateId: number, version: number, versionDate: string, versionOwner: string}>}\r\n */\r\n async uploadCompoundDocumentFile(payload) {\r\n throw notImplementedMethod(\r\n `uploadCompoundDocumentFile() payload: ${payload}`\r\n );\r\n },\r\n\r\n /**\r\n * Abstract Check In File\r\n * @param {{file: File, id: (number|number), uploadFileModel: {Extension: (string|undefined), Draft: boolean, InsertFileOption: {afterLastPage: number, beforeFirstPage: number, overwrite: number}, Comments: string, Enqueue: boolean}}} payload\r\n */\r\n checkInFile(payload) {\r\n throw notImplementedMethod(`checkInFile() payload: ${payload}`);\r\n },\r\n\r\n /**\r\n * On File Input Change Event handler\r\n * @param file\r\n */\r\n onFileInputChange(file) {\r\n try {\r\n this.uploadFileInput = file;\r\n this.setUploadFileProgress(0);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n },\r\n\r\n /**\r\n * On Check In File Option Change Event handler\r\n * @param {Number|number} option\r\n */\r\n onCheckInOptionChange(option) {\r\n try {\r\n if (this.checkInFileOptions.find(el => el.value === option)) {\r\n this.checkInFileOption = option;\r\n console.log(\r\n `onCheckInOptionChange() this.checkInFileSelectOption:`,\r\n this.checkInFileOption\r\n );\r\n } else {\r\n console.warn(\r\n `Couldn't change Check In File Option: ${option}. Provided Not valid Check File In Option.`\r\n );\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n },\r\n\r\n /**\r\n * format Upload File Progress Text\r\n * @param {Number|number} progress\r\n * @return {string}\r\n */\r\n formatUploadFileProgressText(progress) {\r\n return `${progress} %`;\r\n },\r\n\r\n /**\r\n * Overwrite is Valid Check In File Option\r\n * @param {{value:number, text: string}} option\r\n */\r\n isValidCheckInFileOption(option) {\r\n switch (option?.value) {\r\n case checkInFileOption.insertBeforeFirstPage: {\r\n return this.canInsertFileAtBeginning;\r\n }\r\n case checkInFileOption.insertAfterLastPage: {\r\n return this.canInsertFileAtBeginning;\r\n }\r\n case checkInFileOption.overwrite: {\r\n return this.canOverwriteFileVersion;\r\n }\r\n default: {\r\n return false;\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Performs uploadFile/checkInFile\r\n * @param {File} file\r\n * @param {Boolean} isInsertFile\r\n * @param {Boolean} insertAtBeginning\r\n * @param {{isCheckInDraft: boolean, isCheckInOCR : boolean, checkInComment : string}} checkInOption\r\n * @return {Promise}\r\n */\r\n async performCheckIn(file, isInsertFile, insertAtBeginning, checkInOption) {\r\n if (!this.record) {\r\n throw `Cannot Check In File. There is no Current Record`;\r\n }\r\n\r\n console.log(`performCheckIn() file to:`, fullRecordName(this.record));\r\n\r\n const insertOption = isInsertFile\r\n ? insertAtBeginning\r\n ? insertFileOption.beforeFirstPage\r\n : insertFileOption.afterLastPage\r\n : insertFileOption.overwrite;\r\n\r\n const model = UploadOptionModel(\r\n checkInOption.checkInComment,\r\n checkInOption.isCheckInOCR,\r\n checkInOption.isCheckInDraft,\r\n insertOption\r\n );\r\n\r\n switch (this.record.recordTypeId) {\r\n case recordType.RECORD: {\r\n await this.uploadFile({\r\n id: this.record?.id ?? -1,\r\n file: file,\r\n uploadFileModel: model\r\n });\r\n break;\r\n }\r\n case recordType.FILE: {\r\n await this.checkInFile({\r\n id: this.record?.id ?? -1,\r\n file: file,\r\n uploadFileModel: model\r\n });\r\n break;\r\n }\r\n case recordType.DOCUMENT: {\r\n //\r\n // TODO: provide all UI entries for:\r\n // - insertBeforePage\r\n // - enqueue (canOcr)\r\n // - comments\r\n //\r\n await this.uploadCompoundDocumentFile({\r\n id: this.record?.id ?? -1,\r\n file: file,\r\n insertBeforePage: -1,\r\n enqueue: true,\r\n comments: \"Upload Compound Document File\"\r\n });\r\n break;\r\n }\r\n default: {\r\n const msg = `Not supported upload file to: ${this.record.recordType}.`;\r\n console.log(msg);\r\n throw msg;\r\n }\r\n }\r\n },\r\n enabledCheckInOption(option) {\r\n return this.isViewer ? false : !this.isValidCheckInFileOption(option);\r\n },\r\n\r\n /**\r\n * Update Upload Option list with selected Option\r\n * @return {string}\r\n */\r\n updateSelectedOptionList() {\r\n this.uploadOptionsList = [];\r\n if (this.checkInOption.checkInComment)\r\n this.uploadOptionsList.push(\"Comment\");\r\n if (this.checkInOption.isCheckInDraft)\r\n this.uploadOptionsList.push(\"Draft\");\r\n }\r\n },\r\n watch: {\r\n visibleUploadFilePopoverMenu() {\r\n //\r\n // Re-set UploadFile related variables\r\n //\r\n this.uploadFileInput = undefined;\r\n this.uploadFileError = undefined;\r\n this.setUploadFileProgress(0);\r\n }\r\n }\r\n};\r\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n el.style.setProperty('display', 'none', 'important')\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","// 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","// 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","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\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","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => this.valueComparator(val, value))\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = this.valueComparator(this.internalValue, value)\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), getSlot(this))\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n","/**\r\n * Reactive Mixin used by components that needs to be reactive\r\n * @type {{computed: {visibleOnMdAndUp(): reactiveMixin.computed.$vuetify.breakpoint.mdAndUp}}}\r\n */\r\nexport const reactiveMixin = {\r\n computed: {\r\n /**\r\n * Get breakpoint mdAndUp\r\n * @return {boolean}\r\n */\r\n visibleOnMdAndUp() {\r\n return this.$vuetify.breakpoint.mdAndUp;\r\n },\r\n /**\r\n * Get breakpoint smAndUp\r\n * @returns {boolean}\r\n */\r\n visibleOnSmAndUp() {\r\n return this.$vuetify.breakpoint.smAndUp;\r\n },\r\n /**\r\n * Get breakpoint smAndDown\r\n * @returns {boolean}\r\n */\r\n visibleOnSmAndDown() {\r\n return this.$vuetify.breakpoint.smAndDown;\r\n }\r\n }\r\n};\r\n","// design\r\nimport { iconClose } from \"@/design/icon/iconConst\";\r\n\r\n// model\r\nimport { commandNames } from \"@/model/common/commands/commandModel\";\r\nimport { eventNames } from \"@/model/common/events/eventConst\";\r\n\r\n/**\r\n * modal Dialog Mixin encapsulate basic modal Dialog functionality\r\n */\r\nexport const modalDialogMixin = {\r\n data() {\r\n return {\r\n iconCloseDialog: iconClose\r\n };\r\n },\r\n props: {\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n computed: {\r\n /**\r\n * get/set showDialog value which indicates whether the dialog is visible or hidden.\r\n */\r\n showDialog: {\r\n get() {\r\n return this.visible;\r\n },\r\n set(value) {\r\n if (value) {\r\n this.$emit(eventNames.opened);\r\n } else {\r\n this.$emit(eventNames.close);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * dialog Icon (provides default dialog Icon)\r\n * @return {undefined} default dialog Icon name\r\n */\r\n dialogIcon() {\r\n return undefined;\r\n },\r\n\r\n /**\r\n * compute Dialog Icon visibility\r\n * @return {boolean} true when Dialog Icon is visible\r\n */\r\n visibleDialogIcon() {\r\n return !this.dialogIcon;\r\n },\r\n\r\n /**\r\n * dialog Title (provides default dialog Title)\r\n * @return {undefined} default dialog Title\r\n */\r\n dialogTitle() {\r\n return undefined;\r\n },\r\n\r\n /**\r\n * Close Dialog Tooltip\r\n * @return {string} close Dialog Tooltip\r\n */\r\n closeDialogTooltip() {\r\n return this.dialogTitle\r\n ? `${this.dialogCloseCommandLabel} ${this.dialogTitle} Dialog`\r\n : `${this.dialogCloseCommandLabel} Dialog}`;\r\n },\r\n\r\n /**\r\n * OK command Label\r\n * @return {string} ok Dialog Label\r\n */\r\n dialogOkCommandLabel() {\r\n return commandNames.ok;\r\n },\r\n\r\n /**\r\n * dialog Cancel command Label\r\n * @return {string} dialog Cancel Command Label\r\n */\r\n dialogCancelCommandLabel() {\r\n return commandNames.cancel;\r\n },\r\n\r\n /**\r\n * dialog Close Command Label\r\n * @return {string} dialog Close Command Label\r\n */\r\n dialogCloseCommandLabel() {\r\n return commandNames.close;\r\n }\r\n },\r\n methods: {\r\n /**\r\n * open Dialog\r\n */\r\n openDialog() {\r\n this.showDialog = true;\r\n },\r\n /**\r\n * close Dialog\r\n */\r\n closeDialog() {\r\n this.showDialog = false;\r\n }\r\n }\r\n};\r\n","// mixins\r\nimport { modalDialogMixin } from \"@/mixins/shared/base/dialog/modalDialogMixin\";\r\nimport { alertableMixin } from \"@/mixins/shared/alertable/alertableMixin\";\r\nimport { reactiveMixin } from \"@/mixins/shared/reactive/reactiveMixin\";\r\n\r\n/**\r\n * dialogOutlineMixin encapsulate dialog Outline functionality\r\n */\r\nexport const dialogOutlineMixin = {\r\n mixins: [modalDialogMixin, alertableMixin, reactiveMixin],\r\n components: {\r\n DialogOutline: () =>\r\n import(\"@/components/shared/core/dialogs/DialogOutline\"),\r\n BaseButton: () => import(\"@/components/shared/base/BaseButton\"),\r\n BaseTooltipButton: () =>\r\n import(\"@/components/shared/base/BaseTooltipButton\")\r\n },\r\n data() {\r\n return {\r\n displayProgress: false\r\n };\r\n },\r\n methods: {\r\n /**\r\n * Handle on Dialog Opened event\r\n */\r\n onDialogOpened() {\r\n this.internalAlert = undefined;\r\n },\r\n\r\n /**\r\n * Handle on Dialog Closed event\r\n */\r\n onDialogClosed() {\r\n this.internalAlert = undefined;\r\n },\r\n\r\n /**\r\n * wait before the specified function or code is executed.\r\n * @param {number} timeOut The time, in milliseconds that the timer should wait before the specified function or code is executed\r\n * @return {Promise}\r\n */\r\n async delay(timeOut = 1500) {\r\n return new Promise(resolve => setTimeout(resolve, timeOut));\r\n },\r\n\r\n /**\r\n * Auto Close Dialog\r\n * @return {Promise}\r\n */\r\n async autoCloseDialog(message) {\r\n try {\r\n this.internalAlert = this.createAlert(\r\n this.alertTypeName.success,\r\n message\r\n );\r\n await this.delay();\r\n this.closeDialog();\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n },\r\n watch: {\r\n showDialog(newValue) {\r\n if (newValue) {\r\n this.onDialogOpened();\r\n } else {\r\n this.onDialogClosed();\r\n }\r\n }\r\n }\r\n};\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","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath, getSlot } from '../../util/helpers'\n\ninterface TouchEvent {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nfunction bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean,\n currentScrollOffset: number\n): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean\n): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n}\n\nexport const BaseSlideGroup = mixins\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'never',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n isSwipingHorizontal: false,\n isSwiping: false,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n canTouch (): boolean {\n return typeof window !== 'undefined'\n },\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // Always hide arrows\n case 'never': return false\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n if (this.$vuetify.rtl) val = -val\n\n let scroll =\n val <= 0\n ? bias(-val)\n : val > this.widths.content - this.widths.wrapper\n ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n : -val\n\n if (this.$vuetify.rtl) scroll = -scroll\n\n this.$refs.content.style.transform = `translateX(${scroll}px)`\n },\n },\n\n mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n obs.observe(this.$refs.content)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n } else {\n let itemsLength = 0\n this.$on('hook:beforeUpdate', () => {\n itemsLength = (this.$refs.content?.children || []).length\n })\n this.$on('hook:updated', () => {\n if (itemsLength === (this.$refs.content?.children || []).length) return\n this.setWidths()\n })\n }\n },\n\n methods: {\n onScroll () {\n this.$refs.wrapper.scrollLeft = 0\n },\n onFocusin (e: FocusEvent) {\n if (!this.isOverflowing) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(\n vm.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n return\n }\n }\n }\n },\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : getSlot(this, 'next') || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin,\n },\n }, getSlot(this))\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : getSlot(this, 'prev') || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll,\n },\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n if (!this.canTouch) return\n\n if (!this.isSwiping) {\n // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n const diffX = e.touchmoveX - e.touchstartX\n const diffY = e.touchmoveY - e.touchstartY\n this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY)\n this.isSwiping = true\n }\n\n if (this.isSwipingHorizontal) {\n // sliding horizontally\n this.scrollOffset = this.startX - e.touchmoveX\n // temporarily disable window vertical scrolling\n document.documentElement.style.overflowY = 'hidden'\n }\n },\n onTouchEnd () {\n if (!this.canTouch) return\n\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n\n this.isSwiping = false\n // rollback whole page scrolling to default\n document.documentElement.style.removeProperty('overflow-y')\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n if (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths () {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return\n\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n // https://github.com/vuetifyjs/vuetify/issues/13212\n // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n // gets calculated wrongly by the browser if using a different zoom-level.\n this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n","import Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { deepEqual } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'comparable',\n props: {\n valueComparator: {\n type: Function,\n default: deepEqual,\n } as PropValidator,\n },\n})\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective, vnode: VNode) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const _observe = el._observe?.[vnode.context!._uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el, binding, vnode)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![vnode.context!._uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement, binding: ObserveVNodeDirective, vnode: VNode) {\n const observe = el._observe?.[vnode.context!._uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![vnode.context!._uid]\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('dialog-outline',{scopedSlots:_vm._u([{key:\"icon-name\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.dialogIcon)+\" \")]},proxy:true},{key:\"icon-cross\",fn:function(){return [_c('base-tooltip-button',{on:{\"click\":_vm.closeDialog},scopedSlots:_vm._u([{key:\"icon-name\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.iconCloseDialog)+\" \")]},proxy:true},{key:\"toolTip\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.closeDialogTooltip)+\" \")]},proxy:true}])})]},proxy:true},{key:\"context\",fn:function(){return [_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visiblePrompt),expression:\"visiblePrompt\"}]},[_c('br'),_c('base-prompt',{attrs:{\"prompt\":_vm.createPrompt()}})],1),_c('base-alert',{attrs:{\"dismissible\":_vm.isAlertDismissible,\"type\":_vm.currentAlertType},model:{value:(_vm.showAlert),callback:function ($$v) {_vm.showAlert=$$v},expression:\"showAlert\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.alertMessage)}})]),_c('expansion-panels-layout',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visibleOptions),expression:\"visibleOptions\"}],attrs:{\"inset\":true},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._v(\" Insert Options   \"),_c('v-chip-group',{attrs:{\"column\":\"\",\"show-arrows\":\"\"}},[_c('v-chip',{attrs:{\"small\":_vm.visibleOnSmAndDown}},[_vm._v(_vm._s(_vm.insertOptionsTitle()))])],1)]},proxy:true},{key:\"content\",fn:function(){return [(_vm.visibleOptions)?_c('radio-group',{attrs:{\"options\":_vm.checkInFileOptions,\"select-option\":_vm.defaultCheckInFileOption},on:{\"change\":_vm.onCheckInOptionChange}}):_vm._e()]},proxy:true}])}),_c('expansion-panels-layout',{staticClass:\"mt-3\",attrs:{\"inset\":true},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._v(\" Upload Options   \"),_c('core-chip-group',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasUploadOptions),expression:\"hasUploadOptions\"}],attrs:{\"items\":_vm.uploadOptionsList,\"column\":true,\"chip-small\":_vm.visibleOnSmAndDown,\"show-arrows\":true}})]},proxy:true},{key:\"content\",fn:function(){return [_c('check-in-option',{staticClass:\"mt-4\",attrs:{\"check-in-option\":_vm.checkInOption}})]},proxy:true}])}),_c('expansion-panels-layout',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canPreview),expression:\"canPreview\"}],staticClass:\"mt-3\",attrs:{\"inset\":true,\"open\":true},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._v(\" Image Preview \")]},proxy:true},{key:\"content\",fn:function(){return [_c('v-img',{attrs:{\"src\":_vm.previewUrl}})]},proxy:true}])})]},proxy:true},{key:\"actions\",fn:function(){return [_c('base-button',{attrs:{\"color\":_vm.promptColorClass},on:{\"click\":_vm.onOk}},[_vm._v(\" \"+_vm._s(_vm.dialogOkCommandLabel)+\" \")])]},proxy:true},{key:\"actionCancel\",fn:function(){return [_c('base-button',{on:{\"click\":function($event){$event.stopPropagation();return _vm.closeDialog()}},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.dialogCancelCommandLabel)+\" \")]},proxy:true}])})]},proxy:true}]),model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}},[_vm._v(\" \"+_vm._s(_vm.dialogTitle)+\" \")])\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!./UploadLocalFileDialog.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!./UploadLocalFileDialog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UploadLocalFileDialog.vue?vue&type=template&id=1c50fbec\"\nimport script from \"./UploadLocalFileDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UploadLocalFileDialog.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","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, getSlot(this))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\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","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","// Styles\nimport './VChip.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Components\nimport { VExpandXTransition } from '../transitions'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { PropValidator, PropType } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Sizeable,\n Routable,\n Themeable,\n GroupableFactory('chipGroup'),\n ToggleableFactory('inputValue')\n).extend({\n name: 'v-chip',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.chipGroup) return ''\n\n return this.chipGroup.activeClass\n },\n } as any as PropValidator,\n close: Boolean,\n closeIcon: {\n type: String,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n disabled: Boolean,\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n outlined: Boolean,\n pill: Boolean,\n tag: {\n type: String,\n default: 'span',\n },\n textColor: String,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-chip--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-chip': true,\n ...Routable.options.computed.classes.call(this),\n 'v-chip--clickable': this.isClickable,\n 'v-chip--disabled': this.disabled,\n 'v-chip--draggable': this.draggable,\n 'v-chip--label': this.label,\n 'v-chip--link': this.isLink,\n 'v-chip--no-color': !this.color,\n 'v-chip--outlined': this.outlined,\n 'v-chip--pill': this.pill,\n 'v-chip--removable': this.hasClose,\n ...this.themeClasses,\n ...this.sizeableClasses,\n ...this.groupClasses,\n }\n },\n hasClose (): boolean {\n return Boolean(this.close)\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.chipGroup\n )\n },\n },\n\n created () {\n const breakingProps = [\n ['outline', 'outlined'],\n ['selected', 'input-value'],\n ['value', 'active'],\n ['@input', '@active.sync'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n\n this.chipGroup && this.toggle()\n },\n genFilter (): VNode {\n const children = []\n\n if (this.isActive) {\n children.push(\n this.$createElement(VIcon, {\n staticClass: 'v-chip__filter',\n props: { left: true },\n }, this.filterIcon)\n )\n }\n\n return this.$createElement(VExpandXTransition, children)\n },\n genClose (): VNode {\n return this.$createElement(VIcon, {\n staticClass: 'v-chip__close',\n props: {\n right: true,\n size: 18,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n e.preventDefault()\n\n this.$emit('click:close')\n this.$emit('update:active', false)\n },\n },\n }, this.closeIcon)\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-chip__content',\n }, [\n this.filter && this.genFilter(),\n getSlot(this),\n this.hasClose && this.genClose(),\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genContent()]\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n draggable: this.draggable ? 'true' : undefined,\n tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n }\n data.directives!.push({\n name: 'show',\n value: this.active,\n })\n data = this.setBackgroundColor(this.color, data)\n\n const color = this.textColor || (this.outlined && this.color)\n\n return h(tag, this.setTextColor(color, data), children)\n },\n})\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ResizeVNodeDirective extends VNodeDirective {\n value?: () => void\n options?: boolean | AddEventListenerOptions\n}\n\nfunction inserted (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n const callback = binding.value!\n const options = binding.options || { passive: true }\n\n window.addEventListener('resize', callback, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![vnode.context!._uid] = {\n callback,\n options,\n }\n\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback()\n }\n}\n\nfunction unbind (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n if (!el._onResize?.[vnode.context!._uid]) return\n\n const { callback, options } = el._onResize[vnode.context!._uid]!\n\n window.removeEventListener('resize', callback, options)\n\n delete el._onResize[vnode.context!._uid]\n}\n\nexport const Resize = {\n inserted,\n unbind,\n}\n\nexport default Resize\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","// Types\nimport { BreakpointName } from 'vuetify/types/services/breakpoint'\nimport { deprecate } from '../../util/console'\nimport Vue, { PropType } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'mobile',\n\n props: {\n mobileBreakpoint: {\n type: [Number, String] as PropType,\n default (): number | BreakpointName | undefined {\n // Avoid destroying unit\n // tests for users\n return this.$vuetify\n ? this.$vuetify.breakpoint.mobileBreakpoint\n : undefined\n },\n validator: v => (\n !isNaN(Number(v)) ||\n ['xs', 'sm', 'md', 'lg', 'xl'].includes(String(v))\n ),\n },\n },\n\n computed: {\n isMobile (): boolean {\n const {\n mobile,\n width,\n name,\n mobileBreakpoint,\n } = this.$vuetify.breakpoint\n\n // Check if local mobileBreakpoint matches\n // the application's mobileBreakpoint\n if (mobileBreakpoint === this.mobileBreakpoint) return mobile\n\n const mobileWidth = parseInt(this.mobileBreakpoint, 10)\n const isNumber = !isNaN(mobileWidth)\n\n return isNumber\n ? width < mobileWidth\n : name === this.mobileBreakpoint\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('mobile-break-point')) {\n deprecate('mobile-break-point', 'mobile-breakpoint', this)\n }\n },\n})\n","// Styles\nimport './VChipGroup.sass'\n\n// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n BaseSlideGroup,\n Colorable\n).extend({\n name: 'v-chip-group',\n\n provide () {\n return {\n chipGroup: this,\n }\n },\n\n props: {\n column: Boolean,\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.options.computed.classes.call(this),\n 'v-chip-group': true,\n 'v-chip-group--column': this.column,\n }\n },\n },\n\n watch: {\n column (val) {\n if (val) this.scrollOffset = 0\n\n this.$nextTick(this.onResize)\n },\n },\n\n methods: {\n genData () {\n return this.setTextColor(this.color, {\n ...BaseSlideGroup.options.methods.genData.call(this),\n })\n },\n },\n})\n"],"sourceRoot":""}