{"version":3,"sources":["webpack:///../../../src/mixins/measurable/index.ts","webpack:///../../../src/components/VToolbar/index.ts","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///../../../src/mixins/applicationable/index.ts","webpack:///../../../src/directives/scroll/index.ts","webpack:///../../../src/mixins/scrollable/index.ts","webpack:///../../../src/components/VAppBar/VAppBar.ts","webpack:///./src/assets/icons/questys-logo-hz.svg","webpack:///./src/mixins/shared/reactive/reactiveMixin.js","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///./src/mixins/shared/base/app/appMixin.js","webpack:///../../../src/components/VAvatar/VAvatar.ts","webpack:///./src/assets/icons/questys-logo.svg","webpack:///./src/mixins/shared/base/settings/userSettingsMixin.js","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///./src/mixins/public/publicAccessMixin.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/mixins/colorable/index.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///./src/mixins/shared/base/settings/appBarSettingsMixin.js","webpack:///./src/mixins/shared/base/appBar/appBarMixin.js","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../../../src/mixins/positionable/index.ts"],"names":["Vue","extend","name","props","height","Number","String","maxHeight","maxWidth","minHeight","minWidth","width","computed","measurableStyles","styles","convertToUnit","this","VToolbarTitle","createSimpleFunctional","VToolbarItems","VToolbar","applicationable","value","events","mixins","PositionableFactory","app","Boolean","applicationProperty","watch","x","prev","removeApplication","callUpdate","newVal","oldVal","$vuetify","application","unregister","_uid","activated","created","i","length","$watch","mounted","deactivated","destroyed","methods","register","updateApplication","force","inserted","el","binding","vnode","self","modifiers","options","passive","handler","target","arg","document","querySelector","window","addEventListener","_onScroll","Object","context","undefined","unbind","_a","removeEventListener","Scroll","directives","scrollTarget","scrollThreshold","data","currentScroll","currentThreshold","isActive","isScrollingUp","previousScroll","savedScroll","canScroll","computedScrollThreshold","consoleWarn","onScroll","scrollTop","pageYOffset","Math","abs","$nextTick","thresholdMet","baseMixins","Scrollable","SSRBootable","Toggleable","Applicationable","provide","VAppBar","clippedLeft","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","type","default","bottom","call","isBooted","classes","collapse","absolute","fixed","hideShadow","scrollRatio","threshold","max","computedContentHeight","min","dense","computedOriginalHeight","computedFontSize","isProminent","computedLeft","left","computedMarginTop","bar","computedOpacity","isExtended","parseInt","extensionHeight","computedRight","right","computedTransform","computedHeight","isCollapsed","fontSize","marginTop","transform","val","genBackground","render","_b","tag","style","opacity","h","push","module","exports","reactiveMixin","visibleOnMdAndUp","breakpoint","mdAndUp","visibleOnSmAndUp","smAndUp","visibleOnSmAndDown","smAndDown","VSheet","extended","flat","floating","prominent","short","src","isNaN","breakingProps","forEach","original","replacement","$attrs","hasOwnProperty","breaking","image","$scopedSlots","img","$createElement","VImg","staticClass","genContent","getSlot","genExtension","extension","children","setBackgroundColor","color","class","on","$listeners","unshift","makeWatcher","property","attr","prototype","$delete","$data","$set","attrs$","listeners$","immediate","mapGetters","createNamespacedHelpers","appMixin","appModuleName","appModuleTitle","appModuleIcon","Colorable","Measurable","Roundable","size","roundedClasses","mapMutations","mapGettersUser","mapMutationsUser","userSettingsMixin","setUsesAppTabs","SET_USES_APP_TABS","setUsesSidebarImage","SET_USES_SIDEBAR_IMAGE","setDrawerRight","SET_DRAWER_RIGHT","setAppBarCollapseOnScroll","SET_APP_BAR_COLLAPSE_ON_SCROLL","setEnableMiniDrawer","SET_DRAWER_ENABLE_MINI_DRAWER","setButtonTextStyle","SET_COMMAND_BUTTONS_TEXT_STYLE","setButtonOutlined","SET_COMMAND_BUTTONS_OUTLINED","setButtonRounded","SET_COMMAND_BUTTONS_ROUNDED","setButtonElevation","SET_COMMAND_BUTTONS_ELEVATION","setRecordsFetchCount","SET_RECORDS_FETCH_COUNT","setEnableModuleSearch","SET_ENABLE_MODULE_SEARCH","setEnableModuleCategory","SET_ENABLE_MODULE_CATEGORY","setEnableModuleTasks","SET_ENABLE_MODULE_TASKS","setEnableModuleProjects","SET_ENABLE_MODULE_PROJECTS","setEnableModuleAgenda","SET_ENABLE_MODULE_AGENDA","BindsAttrs","Elevatable","Themeable","outlined","shaped","themeClasses","elevationClasses","$slots","observer","IntersectionObserver","entries","_observe","isIntersecting","some","entry","quiet","init","once","observe","unobserve","Intersect","publicAccessMixin","isPublicAccess","publicAccess","rounded","tile","composite","values","split","join","consoleError","isCssColor","setTextColor","colorName","colorModifier","toString","trim","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","VResponsive","hasIntersect","intersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","position","sizes","srcset","transition","currentSrc","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","key","attrs","mode","loadImage","lazyImg","Image","pollForSize","onLoad","getSrc","$emit","endsWith","startsWith","naturalHeight","onError","onload","decode","catch","err","message","then","onerror","timeout","poll","complete","setTimeout","content","__genPlaceholder","slot","placeholder","appear","node","mergeData","role","elevation","computedElevation","appBarSettingsMixin","appBarColor","appBarGradient","appBarCollapseOnScroll","appBarUsesAppTabs","mdAppBarColor","Color","variantType","variantNumber","appBarSettingColorClass","_this$publicAccess$ap","_this$publicAccess","appBar","getClassColor","appBarSettingGradient","_this$publicAccess2","appBarSettingCollapseOnScroll","_this$publicAccess3","appBarSettingUsesAppTabs","_this$publicAccess$ap2","_this$publicAccess4","useTabs","visibleApplicationNavigation","modules","visibleFolder","visibleCategory","visibleMeetings","appBarSettingBackgroundImageUrl","_this$publicAccess5","backgroundImageUrl","require","appBarSettingAvatarUrl","_this$publicAccess6","logo","appBarSettingProminent","_this$publicAccess$ap3","_this$publicAccess7","appBarSettingFadeImageOnScroll","_this$publicAccess$ap4","_this$publicAccess8","appBarSettingShrinkOnScroll","_this$publicAccess$ap5","_this$publicAccess9","appBarSettingVisibleAvatar","isEmpty","appBarMixin","messages","userName","userToolTip","dark","title","_publicAccess$appBar$","_publicAccess$appBar","appName","visibleTitle","visibleAvatar","avatarImgSrc","avatarSize","logoSize","e","console","warn","avatarStyle","margin","appBarBackgroundImageSrc","factory","prop","event","model","required","availableProps","top","selected","filterObjectOnKeys"],"mappings":"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","file":"js/chunk-adc9b3e4.e94b7ec1.js","sourcesContent":["// 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","// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n },\n}\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","import { factory as PositionableFactory } from '../positionable'\nimport { TargetProp } from 'vuetify/types/services/application'\n\n// Util\nimport mixins from '../../util/mixins'\n\nexport default function applicationable (value: TargetProp, events: string[] = []) {\n /* @vue/component */\n return mixins(PositionableFactory(['absolute', 'fixed'])).extend({\n name: 'applicationable',\n\n props: {\n app: Boolean,\n },\n\n computed: {\n applicationProperty (): TargetProp {\n return value\n },\n },\n\n watch: {\n // If previous value was app\n // reset the provided prop\n app (x: boolean, prev: boolean) {\n prev\n ? this.removeApplication(true)\n : this.callUpdate()\n },\n applicationProperty (newVal, oldVal) {\n this.$vuetify.application.unregister(this._uid, oldVal)\n },\n },\n\n activated () {\n this.callUpdate()\n },\n\n created () {\n for (let i = 0, length = events.length; i < length; i++) {\n this.$watch(events[i], this.callUpdate)\n }\n this.callUpdate()\n },\n\n mounted () {\n this.callUpdate()\n },\n\n deactivated () {\n this.removeApplication()\n },\n\n destroyed () {\n this.removeApplication()\n },\n\n methods: {\n callUpdate () {\n if (!this.app) return\n\n this.$vuetify.application.register(\n this._uid,\n this.applicationProperty,\n this.updateApplication()\n )\n },\n removeApplication (force = false) {\n if (!force && !this.app) return\n\n this.$vuetify.application.unregister(\n this._uid,\n this.applicationProperty\n )\n },\n updateApplication: () => 0,\n },\n })\n}\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { DirectiveOptions, VNode } from 'vue'\n\ninterface ScrollVNodeDirective extends Omit {\n value: EventListener | {\n handler: EventListener\n options?: boolean | AddEventListenerOptions\n } | EventListenerObject & { options?: boolean | AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ScrollVNodeDirective, vnode: VNode) {\n const { self = false } = binding.modifiers || {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = Object(el._onScroll)\n el._onScroll![vnode.context!._uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unbind (el: HTMLElement, binding: ScrollVNodeDirective, vnode: VNode) {\n if (!el._onScroll?.[vnode.context!._uid]) return\n\n const { handler, options, target = el } = el._onScroll[vnode.context!._uid]!\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll[vnode.context!._uid]\n}\n\nexport const Scroll = {\n inserted,\n unbind,\n} as DirectiveOptions\n\nexport default Scroll\n","// Directives\nimport { Scroll } from '../../directives'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\n/**\n * Scrollable\n *\n * Used for monitoring scrolling and\n * invoking functions based upon\n * scrolling thresholds being\n * met.\n */\n/* @vue/component */\nexport default Vue.extend({\n name: 'scrollable',\n\n directives: { Scroll },\n\n props: {\n scrollTarget: String,\n scrollThreshold: [String, Number],\n },\n\n data: () => ({\n currentScroll: 0,\n currentThreshold: 0,\n isActive: false,\n isScrollingUp: false,\n previousScroll: 0,\n savedScroll: 0,\n target: null as Element | null,\n }),\n\n computed: {\n /**\n * A computed property that returns\n * whether scrolling features are\n * enabled or disabled\n */\n canScroll (): boolean {\n return typeof window !== 'undefined'\n },\n /**\n * The threshold that must be met before\n * thresholdMet function is invoked\n */\n computedScrollThreshold (): number {\n return this.scrollThreshold\n ? Number(this.scrollThreshold)\n : 300\n },\n },\n\n watch: {\n isScrollingUp () {\n this.savedScroll = this.savedScroll || this.currentScroll\n },\n isActive () {\n this.savedScroll = 0\n },\n },\n\n mounted () {\n if (this.scrollTarget) {\n this.target = document.querySelector(this.scrollTarget)\n\n if (!this.target) {\n consoleWarn(`Unable to locate element with identifier ${this.scrollTarget}`, this)\n }\n }\n },\n\n methods: {\n onScroll () {\n if (!this.canScroll) return\n\n this.previousScroll = this.currentScroll\n this.currentScroll = this.target\n ? this.target.scrollTop\n : window.pageYOffset\n\n this.isScrollingUp = this.currentScroll < this.previousScroll\n this.currentThreshold = Math.abs(this.currentScroll - this.computedScrollThreshold)\n\n this.$nextTick(() => {\n if (\n Math.abs(this.currentScroll - this.savedScroll) >\n this.computedScrollThreshold\n ) this.thresholdMet()\n })\n },\n /**\n * The method invoked when\n * scrolling in any direction\n * has exceeded the threshold\n */\n thresholdMet () { /* noop */ },\n },\n})\n","// Styles\nimport './VAppBar.sass'\n\n// Extensions\nimport VToolbar from '../VToolbar/VToolbar'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Scrollable from '../../mixins/scrollable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VToolbar,\n Scrollable,\n SSRBootable,\n Toggleable,\n Applicationable('top', [\n 'clippedLeft',\n 'clippedRight',\n 'computedHeight',\n 'invertedScroll',\n 'isExtended',\n 'isProminent',\n 'value',\n ])\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-app-bar',\n\n directives: { Scroll },\n\n provide (): object {\n return { VAppBar: this }\n },\n\n props: {\n clippedLeft: Boolean,\n clippedRight: Boolean,\n collapseOnScroll: Boolean,\n elevateOnScroll: Boolean,\n fadeImgOnScroll: Boolean,\n hideOnScroll: Boolean,\n invertedScroll: Boolean,\n scrollOffScreen: Boolean,\n shrinkOnScroll: Boolean,\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n isActive: this.value,\n }\n },\n\n computed: {\n applicationProperty (): string {\n return !this.bottom ? 'top' : 'bottom'\n },\n canScroll (): boolean {\n return (\n Scrollable.options.computed.canScroll.call(this) &&\n (\n this.invertedScroll ||\n this.elevateOnScroll ||\n this.hideOnScroll ||\n this.collapseOnScroll ||\n this.isBooted ||\n // If falsy, user has provided an\n // explicit value which should\n // overwrite anything we do\n !this.value\n )\n )\n },\n classes (): object {\n return {\n ...VToolbar.options.computed.classes.call(this),\n 'v-toolbar--collapse': this.collapse || this.collapseOnScroll,\n 'v-app-bar': true,\n 'v-app-bar--clipped': this.clippedLeft || this.clippedRight,\n 'v-app-bar--fade-img-on-scroll': this.fadeImgOnScroll,\n 'v-app-bar--elevate-on-scroll': this.elevateOnScroll,\n 'v-app-bar--fixed': !this.absolute && (this.app || this.fixed),\n 'v-app-bar--hide-shadow': this.hideShadow,\n 'v-app-bar--is-scrolled': this.currentScroll > 0,\n 'v-app-bar--shrink-on-scroll': this.shrinkOnScroll,\n }\n },\n scrollRatio (): number {\n const threshold = this.computedScrollThreshold\n return Math.max((threshold - this.currentScroll) / threshold, 0)\n },\n computedContentHeight (): number {\n if (!this.shrinkOnScroll) return VToolbar.options.computed.computedContentHeight.call(this)\n\n const min = this.dense ? 48 : 56\n const max = this.computedOriginalHeight\n\n return min + (max - min) * this.scrollRatio\n },\n computedFontSize (): number | undefined {\n if (!this.isProminent) return undefined\n\n const min = 1.25\n const max = 1.5\n\n return min + (max - min) * this.scrollRatio\n },\n computedLeft (): number {\n if (!this.app || this.clippedLeft) return 0\n\n return this.$vuetify.application.left\n },\n computedMarginTop (): number {\n if (!this.app) return 0\n\n return this.$vuetify.application.bar\n },\n computedOpacity (): number | undefined {\n if (!this.fadeImgOnScroll) return undefined\n\n return this.scrollRatio\n },\n computedOriginalHeight (): number {\n let height = VToolbar.options.computed.computedContentHeight.call(this)\n if (this.isExtended) height += parseInt(this.extensionHeight)\n return height\n },\n computedRight (): number {\n if (!this.app || this.clippedRight) return 0\n\n return this.$vuetify.application.right\n },\n computedScrollThreshold (): number {\n if (this.scrollThreshold) return Number(this.scrollThreshold)\n\n return this.computedOriginalHeight - (this.dense ? 48 : 56)\n },\n computedTransform (): number {\n if (\n !this.canScroll ||\n (this.elevateOnScroll && this.currentScroll === 0 && this.isActive)\n ) return 0\n\n if (this.isActive) return 0\n\n const scrollOffScreen = this.scrollOffScreen\n ? this.computedHeight\n : this.computedContentHeight\n\n return this.bottom ? scrollOffScreen : -scrollOffScreen\n },\n hideShadow (): boolean {\n if (this.elevateOnScroll && this.isExtended) {\n return this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.elevateOnScroll) {\n return this.currentScroll === 0 ||\n this.computedTransform < 0\n }\n\n return (\n !this.isExtended ||\n this.scrollOffScreen\n ) && this.computedTransform !== 0\n },\n isCollapsed (): boolean {\n if (!this.collapseOnScroll) {\n return VToolbar.options.computed.isCollapsed.call(this)\n }\n\n return this.currentScroll > 0\n },\n isProminent (): boolean {\n return (\n VToolbar.options.computed.isProminent.call(this) ||\n this.shrinkOnScroll\n )\n },\n styles (): object {\n return {\n ...VToolbar.options.computed.styles.call(this),\n fontSize: convertToUnit(this.computedFontSize, 'rem'),\n marginTop: convertToUnit(this.computedMarginTop),\n transform: `translateY(${convertToUnit(this.computedTransform)})`,\n left: convertToUnit(this.computedLeft),\n right: convertToUnit(this.computedRight),\n }\n },\n },\n\n watch: {\n canScroll: 'onScroll',\n computedTransform () {\n // Normally we do not want the v-app-bar\n // to update the application top value\n // to avoid screen jump. However, in\n // this situation, we must so that\n // the clipped drawer can update\n // its top value when scrolled\n if (\n !this.canScroll ||\n (!this.clippedLeft && !this.clippedRight)\n ) return\n\n this.callUpdate()\n },\n invertedScroll (val: boolean) {\n this.isActive = !val || this.currentScroll !== 0\n },\n hideOnScroll (val: boolean) {\n this.isActive = !val || this.currentScroll < this.computedScrollThreshold\n },\n },\n\n created () {\n if (this.invertedScroll) this.isActive = false\n },\n\n methods: {\n genBackground () {\n const render = VToolbar.options.methods.genBackground.call(this)\n\n render.data = this._b(render.data || {}, render.tag!, {\n style: { opacity: this.computedOpacity },\n })\n\n return render\n },\n updateApplication (): number {\n return this.invertedScroll\n ? 0\n : this.computedHeight + this.computedTransform\n },\n thresholdMet () {\n if (this.invertedScroll) {\n this.isActive = this.currentScroll > this.computedScrollThreshold\n return\n }\n\n if (this.hideOnScroll) {\n this.isActive = this.isScrollingUp ||\n this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.currentThreshold < this.computedScrollThreshold) return\n\n this.savedScroll = this.currentScroll\n },\n },\n\n render (h): VNode {\n const render = VToolbar.options.render.call(this, h)\n\n render.data = render.data || {}\n\n if (this.canScroll) {\n render.data.directives = render.data.directives || []\n render.data.directives.push({\n arg: this.scrollTarget,\n name: 'scroll',\n value: this.onScroll,\n })\n }\n\n return render\n },\n})\n","module.exports = __webpack_public_path__ + \"img/questys-logo-hz.7496cc92.svg\";","/**\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","// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n name: 'v-toolbar',\n\n props: {\n absolute: Boolean,\n bottom: Boolean,\n collapse: Boolean,\n dense: Boolean,\n extended: Boolean,\n extensionHeight: {\n default: 48,\n type: [Number, String],\n },\n flat: Boolean,\n floating: Boolean,\n prominent: Boolean,\n short: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n tag: {\n type: String,\n default: 'header',\n },\n },\n\n data: () => ({\n isExtended: false,\n }),\n\n computed: {\n computedHeight (): number {\n const height = this.computedContentHeight\n\n if (!this.isExtended) return height\n\n const extensionHeight = parseInt(this.extensionHeight)\n\n return this.isCollapsed\n ? height\n : height + (!isNaN(extensionHeight) ? extensionHeight : 0)\n },\n computedContentHeight (): number {\n if (this.height) return parseInt(this.height)\n if (this.isProminent && this.dense) return 96\n if (this.isProminent && this.short) return 112\n if (this.isProminent) return 128\n if (this.dense) return 48\n if (this.short || this.$vuetify.breakpoint.smAndDown) return 56\n return 64\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-toolbar': true,\n 'v-toolbar--absolute': this.absolute,\n 'v-toolbar--bottom': this.bottom,\n 'v-toolbar--collapse': this.collapse,\n 'v-toolbar--collapsed': this.isCollapsed,\n 'v-toolbar--dense': this.dense,\n 'v-toolbar--extended': this.isExtended,\n 'v-toolbar--flat': this.flat,\n 'v-toolbar--floating': this.floating,\n 'v-toolbar--prominent': this.isProminent,\n }\n },\n isCollapsed (): boolean {\n return this.collapse\n },\n isProminent (): boolean {\n return this.prominent\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n height: convertToUnit(this.computedHeight),\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['app', ''],\n ['manual-scroll', ''],\n ['clipped-left', ''],\n ['clipped-right', ''],\n ['inverted-scroll', ''],\n ['scroll-off-screen', ''],\n ['scroll-target', ''],\n ['scroll-threshold', ''],\n ['card', ''],\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 genBackground () {\n const props = {\n height: convertToUnit(this.computedHeight),\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img({ props })\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-toolbar__image',\n }, [image])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__content',\n style: {\n height: convertToUnit(this.computedContentHeight),\n },\n }, getSlot(this))\n },\n genExtension () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__extension',\n style: {\n height: convertToUnit(this.extensionHeight),\n },\n }, getSlot(this, 'extension'))\n },\n },\n\n render (h): VNode {\n this.isExtended = this.extended || !!this.$scopedSlots.extension\n\n const children = [this.genContent()]\n const data = this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n })\n\n if (this.isExtended) children.push(this.genExtension())\n if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground())\n\n return h(this.tag, data, children)\n },\n})\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","import { createNamespacedHelpers } from \"vuex\";\r\nconst { mapGetters } = createNamespacedHelpers(\"solution\");\r\n\r\n/**\r\n * appMixin contains options (adhere to the DRY principle) &\r\n * code re-usability for Application\r\n */\r\nexport const appMixin = {\r\n computed: {\r\n ...mapGetters({\r\n appModuleName: \"appModuleName\",\r\n appModuleTitle: \"appModuleTitle\",\r\n appModuleIcon: \"appModuleIcon\"\r\n })\r\n }\r\n};\r\n","import './VAvatar.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n Colorable,\n Measurable,\n Roundable,\n /* @vue/component */\n).extend({\n name: 'v-avatar',\n\n props: {\n left: Boolean,\n right: Boolean,\n size: {\n type: [Number, String],\n default: 48,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-avatar--left': this.left,\n 'v-avatar--right': this.right,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return {\n height: convertToUnit(this.size),\n minWidth: convertToUnit(this.size),\n width: convertToUnit(this.size),\n ...this.measurableStyles,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-avatar',\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n }\n\n return h('div', this.setBackgroundColor(this.color, data), getSlot(this))\n },\n})\n","module.exports = __webpack_public_path__ + \"img/questys-logo.f99ebe3c.svg\";","// mutation-types\r\nimport {\r\n SET_DRAWER_RIGHT,\r\n SET_USES_APP_TABS,\r\n SET_USES_SIDEBAR_IMAGE,\r\n SET_APP_BAR_COLLAPSE_ON_SCROLL,\r\n SET_DRAWER_ENABLE_MINI_DRAWER,\r\n SET_COMMAND_BUTTONS_TEXT_STYLE,\r\n SET_COMMAND_BUTTONS_OUTLINED,\r\n SET_COMMAND_BUTTONS_ROUNDED,\r\n SET_COMMAND_BUTTONS_ELEVATION,\r\n SET_RECORDS_FETCH_COUNT\r\n} from \"@/store/solution/mutation-types\";\r\n\r\nimport {\r\n SET_ENABLE_MODULE_CATEGORY,\r\n SET_ENABLE_MODULE_TASKS,\r\n SET_ENABLE_MODULE_PROJECTS,\r\n SET_ENABLE_MODULE_AGENDA,\r\n SET_ENABLE_MODULE_SEARCH\r\n} from \"@/store/user/mutation-types\";\r\n\r\n// vuex\r\nimport { createNamespacedHelpers } from \"vuex\";\r\nconst { mapGetters, mapMutations } = createNamespacedHelpers(\"solution\");\r\n\r\nconst {\r\n mapGetters: mapGettersUser,\r\n mapMutations: mapMutationsUser\r\n} = createNamespacedHelpers(\"user\");\r\n\r\n/**\r\n * User Settings Mixin - encapsulate user Settings functionality\r\n */\r\nexport const userSettingsMixin = {\r\n computed: {\r\n ...mapGetters([\r\n \"usesAppTabs\",\r\n \"appBarCollapseOnScroll\",\r\n \"usesSidebarImage\",\r\n \"visibleRightDrawer\",\r\n \"enableMiniDrawer\",\r\n \"buttonTextStyle\",\r\n \"buttonOutlined\",\r\n \"buttonRounded\",\r\n \"buttonElevation\",\r\n \"recordsFetchCount\"\r\n ]),\r\n ...mapGettersUser([\r\n \"modules\",\r\n \"isLicensedModule\",\r\n \"enableCategoryModule\",\r\n \"enableSearchModule\",\r\n \"enableTasksModule\",\r\n \"enableProjectsModule\",\r\n \"enableAgendaModule\",\r\n \"enableWebScan\",\r\n \"isEnabledModule\"\r\n ])\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setUsesAppTabs: SET_USES_APP_TABS,\r\n setUsesSidebarImage: SET_USES_SIDEBAR_IMAGE,\r\n setDrawerRight: SET_DRAWER_RIGHT,\r\n setAppBarCollapseOnScroll: SET_APP_BAR_COLLAPSE_ON_SCROLL,\r\n setEnableMiniDrawer: SET_DRAWER_ENABLE_MINI_DRAWER,\r\n setButtonTextStyle: SET_COMMAND_BUTTONS_TEXT_STYLE,\r\n setButtonOutlined: SET_COMMAND_BUTTONS_OUTLINED,\r\n setButtonRounded: SET_COMMAND_BUTTONS_ROUNDED,\r\n setButtonElevation: SET_COMMAND_BUTTONS_ELEVATION,\r\n setRecordsFetchCount: SET_RECORDS_FETCH_COUNT\r\n }),\r\n ...mapMutationsUser({\r\n setEnableModuleSearch: SET_ENABLE_MODULE_SEARCH,\r\n setEnableModuleCategory: SET_ENABLE_MODULE_CATEGORY,\r\n setEnableModuleTasks: SET_ENABLE_MODULE_TASKS,\r\n setEnableModuleProjects: SET_ENABLE_MODULE_PROJECTS,\r\n setEnableModuleAgenda: SET_ENABLE_MODULE_AGENDA\r\n })\r\n }\r\n};\r\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\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 { isPublicAccess, publicAccess } from \"@/services/config/configService\";\r\n\r\n/**\r\n * Encapsulate public Access business logic\r\n */\r\nexport const publicAccessMixin = {\r\n computed: {\r\n /**\r\n * is Public Access\r\n * @return {boolean} true if Public Access is enabled\r\n */\r\n isPublicAccess() {\r\n return isPublicAccess;\r\n },\r\n\r\n /**\r\n * public Access\r\n * @return {\r\n * {searcher: {name: string, code: string, repository: string}},\r\n * {appBar: {prominent: boolean, color: string, gradient: string, useTabs: boolean, logo: string, logoSize:number, backgroundImageUrl: string, title: string, collapseOnScroll: boolean, fadeImgOnScroll: boolean, shrinkOnScroll: boolean}}, {sideBar: {enableMiniSidebar: boolean, backgroundImageUrl: string}}, {sideBar: {enableMiniSidebar: boolean, backgroundImageUrl: string}},\r\n * {buttons: {color: string, elevation: number, outlined: boolean, rounded: boolean, textStyle: boolean}},\r\n * {company: {disclaimers: string, name: string, logo: string, description: string, linkedIn: string, address: {zip: string, country: string, city: string, addressLine1: string, addressLine2: string, state: string}}},\r\n * {contact: {name: string, description: string, phone: string, phoneDescription: string, email: string, emailDescription: string}},\r\n * {modules: {visibleFolder: string, visibleCategory: string, visibleMeetings: string}}\r\n * }\r\n */\r\n publicAccess() {\r\n return publicAccess;\r\n }\r\n }\r\n};\r\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import './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: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// design\r\nimport { Color } from \"@/design/colors/Color\";\r\n\r\n// vuex/store\r\nimport { createNamespacedHelpers } from \"vuex\";\r\nconst { mapGetters } = createNamespacedHelpers(\"solution\");\r\n\r\n// mixins\r\nimport { publicAccessMixin } from \"@/mixins/public/publicAccessMixin\";\r\nimport { isEmpty } from \"@/utils\";\r\n\r\n/**\r\n * Application Bar Settings Mixin encapsulate Settings functionality of App Bar\r\n */\r\nexport const appBarSettingsMixin = {\r\n mixins: [publicAccessMixin],\r\n computed: {\r\n ...mapGetters({\r\n appBarColor: \"appBarColor\",\r\n appBarGradient: \"appBarGradient\",\r\n appBarCollapseOnScroll: \"appBarCollapseOnScroll\",\r\n appBarUsesAppTabs: \"usesAppTabs\"\r\n }),\r\n /**\r\n * Get AppBar Toolbar Material Design color\r\n * @returns {Color}\r\n */\r\n mdAppBarColor() {\r\n return new Color(\r\n this.appBarColor.name,\r\n this.appBarColor.variantType,\r\n this.appBarColor.variantNumber\r\n );\r\n },\r\n\r\n /**\r\n * AppBar color\r\n * Applies specified color to the control\r\n * Note: it can be the name of material color (for example success or purple)\r\n * or css color (#033 or rgba(255, 0, 0, 0.5))\r\n * @returns {string}\r\n */\r\n appBarSettingColorClass() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.appBar?.color ?? this.mdAppBarColor.getClassColor()\r\n : this.mdAppBarColor.getClassColor();\r\n },\r\n\r\n /**\r\n * app Bar gradient is used to apply a simple gradient overlay to the appBar background image\r\n * @return {string} app Bar gradient\r\n */\r\n appBarSettingGradient() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.appBar?.gradient\r\n : this.appBarGradient;\r\n },\r\n\r\n /**\r\n * app Bar Setting Collapse On Scroll\r\n * @return {boolean} true if App Bar collapse On Scroll\r\n */\r\n appBarSettingCollapseOnScroll() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.appBar?.collapseOnScroll\r\n : this.appBarCollapseOnScroll;\r\n },\r\n\r\n /**\r\n * app Bar Setting Uses App Tabs\r\n * @return {boolean|boolean} true if app Bar Setting Uses App Tabs\r\n */\r\n appBarSettingUsesAppTabs() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.appBar?.useTabs ?? true\r\n : this.appBarUsesAppTabs;\r\n },\r\n\r\n /**\r\n * Visible Application Navigation\r\n * @return {string}\r\n */\r\n visibleApplicationNavigation() {\r\n return this.isPublicAccess\r\n ? this.publicAccess.modules.visibleFolder ||\r\n this.publicAccess.modules.visibleCategory ||\r\n this.publicAccess.modules.visibleMeetings\r\n : true;\r\n },\r\n\r\n /**\r\n * compute app Bar background Image URL\r\n * @return {string|undefined} app Bar background Image URL\r\n */\r\n appBarSettingBackgroundImageUrl() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.appBar?.backgroundImageUrl\r\n : require(\"@/assets/icons/questys-logo-hz.svg\");\r\n },\r\n\r\n /**\r\n * app Bar Avatar Url\r\n * @return {String|string|undefined}\r\n */\r\n appBarSettingAvatarUrl() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.appBar?.logo\r\n : \"@/assets/icons/questys-logo.svg\";\r\n },\r\n\r\n /**\r\n * Increases the height of the toolbar content to 128px.\r\n * @return {boolean} if true Increases the height of the toolbar content to 128px.\r\n */\r\n appBarSettingProminent() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.appBar?.prominent ?? true\r\n : false;\r\n },\r\n\r\n /**\r\n * When using the src prop or img slot, will fade the image when scrolling\r\n * @return {boolean} if true then When using the src prop or img slot, will fade the image when scrolling\r\n */\r\n appBarSettingFadeImageOnScroll() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.appBar?.fadeImgOnScroll ?? false\r\n : false;\r\n },\r\n\r\n /**\r\n * Shrinks a prominent toolbar to a dense or short (default) one when scrolling.\r\n * @return {boolean} if true then Shrinks a prominent toolbar to a dense or short (default) one when scrolling.\r\n */\r\n appBarSettingShrinkOnScroll() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.appBar?.shrinkOnScroll ?? false\r\n : false;\r\n },\r\n\r\n /**\r\n * app-Bar Setting Visible Avatar\r\n * @return {boolean|boolean} true if app-Bar Setting Visible Avatar\r\n */\r\n appBarSettingVisibleAvatar() {\r\n return this.isPublicAccess\r\n ? false\r\n : !isEmpty(this.appBarSettingAvatarUrl); // isEmpty(this.appBarSettingBackgroundImageUrl);\r\n }\r\n }\r\n};\r\n","import { appName, publicAccess } from \"@/services/config/configService\";\r\n\r\n// utils\r\nimport { isEmpty } from \"@/utils\";\r\n\r\n// mixins\r\nimport { appMixin } from \"@/mixins/shared/base/app/appMixin\";\r\nimport { reactiveMixin } from \"@/mixins/shared/reactive/reactiveMixin\";\r\nimport { appBarSettingsMixin } from \"@/mixins/shared/base/settings/appBarSettingsMixin\";\r\nimport { userSettingsMixin } from \"@/mixins/shared/base/settings/userSettingsMixin\";\r\nimport { publicAccessMixin } from \"@/mixins/public/publicAccessMixin\";\r\n\r\nexport const appBarMixin = {\r\n mixins: [\r\n appMixin,\r\n reactiveMixin,\r\n appBarSettingsMixin,\r\n userSettingsMixin,\r\n publicAccessMixin\r\n ],\r\n data() {\r\n return {\r\n collapse: false,\r\n messages: 0,\r\n /**\r\n *Designates that the appModule's v-navigation-drawerLeft that is positioned on the right is below the app-bar.\r\n */\r\n clippedRight: true\r\n };\r\n },\r\n props: {\r\n userName: {\r\n type: String,\r\n default: \"User\"\r\n },\r\n userToolTip: {\r\n type: String,\r\n default: \"Current User\"\r\n }\r\n },\r\n computed: {\r\n dark() {\r\n return !isEmpty(this.appBarSettingColorClass);\r\n },\r\n\r\n /**\r\n * App Bar tile\r\n * @return {string} App Bar tile\r\n */\r\n title() {\r\n return this.isPublicAccess\r\n ? publicAccess?.appBar?.title ?? appName\r\n : appName;\r\n },\r\n\r\n /**\r\n * determine app bar title visibility\r\n * @return {boolean}\r\n */\r\n visibleTitle() {\r\n return !!this.title; // !!this.isPublicAccess;\r\n },\r\n\r\n /**\r\n * determine Avatar visibility\r\n * @return {boolean}\r\n */\r\n visibleAvatar() {\r\n return !!this.avatarImgSrc && this.visibleOnMdAndUp;\r\n },\r\n\r\n /**\r\n * avatar Size\r\n * @return {string}\r\n */\r\n avatarSize() {\r\n if (this.isPublicAccess) {\r\n const size = this.publicAccess?.appBar?.logoSize ?? 0;\r\n if (size > 0) {\r\n return `${size}px`;\r\n }\r\n }\r\n return \"48px\"; // default\r\n },\r\n\r\n /**\r\n * avatar Image source\r\n * @return {string|undefined}\r\n */\r\n avatarImgSrc() {\r\n if (this.isPublicAccess) {\r\n try {\r\n return this.publicAccess?.appBar?.logo;\r\n // or:\r\n // const iconName = this.publicAccess?.appBar?.logo;\r\n // // return require(`/public/Images/questys-logo.svg`); // ok\r\n // if (!iconName) {\r\n // return undefined;\r\n // }\r\n // return require(`/public/Images/${iconName}`);\r\n } catch (e) {\r\n //console.warn(`Couldn't find file: '${iconName}' in: 'Images/'`);\r\n return undefined;\r\n }\r\n }\r\n\r\n try {\r\n return require(`@/assets/icons/questys-logo.svg`);\r\n } catch (e) {\r\n console.warn(`Couldn't find file: @/assets/icons/questys-logo.svg`);\r\n return undefined;\r\n }\r\n },\r\n\r\n /**\r\n * avatar Style, which set margin-right\r\n * @return {string}\r\n */\r\n avatarStyle() {\r\n const margin = 8;\r\n // return {\r\n // \"margin-right\": `${margin}px;` // does not work\r\n // // [\"margin-right\"]: `${margin}px;` // does not work\r\n // };\r\n return `margin-right: ${margin}px;`;\r\n },\r\n\r\n /**\r\n * app Bar Background Image Src\r\n * @return {string|undefined}\r\n */\r\n appBarBackgroundImageSrc() {\r\n return this.isPublicAccess\r\n ? this.appBarSettingBackgroundImageUrl\r\n : undefined;\r\n }\r\n }\r\n};\r\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n"],"sourceRoot":""}