1 line
No EOL
161 KiB
Text
1 line
No EOL
161 KiB
Text
{"version":3,"file":"js/83.37aa53f6.js","mappings":"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","sources":["webpack://cmc_fe/../../../src/components/transitions/dialog-transition.tsx","webpack://cmc_fe/../../../src/components/VDialog/VDialog.tsx","webpack://cmc_fe/./src/views/contracts/ContractList.vue","webpack://cmc_fe/../../../src/components/VChipGroup/VChipGroup.tsx","webpack://cmc_fe/../../../src/components/VChip/VChip.tsx","webpack://cmc_fe/../../../src/components/VMenu/VMenu.tsx","webpack://cmc_fe/../../../src/components/VSelect/VSelect.tsx","webpack://cmc_fe/../../src/composables/filter.ts","webpack://cmc_fe/../../../src/components/VAutocomplete/VAutocomplete.tsx","webpack://cmc_fe/../../../src/components/VTextarea/VTextarea.tsx","webpack://cmc_fe/./src/views/contracts/ContractEdit.vue","webpack://cmc_fe/./src/views/contracts/ContractEdit.vue?1084","webpack://cmc_fe/./src/views/contracts/ContractMulti.vue","webpack://cmc_fe/./src/common.js","webpack://cmc_fe/./src/views/contracts/ContractMulti.vue?6008","webpack://cmc_fe/./src/views/contracts/ContractList.vue?98bb","webpack://cmc_fe/../../../src/components/VCheckbox/VCheckboxBtn.tsx","webpack://cmc_fe/../../../src/components/VSelectionControlGroup/VSelectionControlGroup.tsx","webpack://cmc_fe/../../../src/components/VSelectionControl/VSelectionControl.tsx","webpack://cmc_fe/../../../src/components/VSwitch/VSwitch.tsx"],"sourcesContent":["import type { PropType } from 'vue'\nimport { Transition } from 'vue'\nimport {\n acceleratedEasing,\n animate,\n deceleratedEasing,\n defineComponent,\n nullifyTransforms,\n standardEasing,\n} from '@/util'\n\nexport const VDialogTransition = defineComponent({\n name: 'VDialogTransition',\n\n props: {\n target: Object as PropType<HTMLElement>,\n },\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n ;(el as HTMLElement).style.visibility = 'hidden'\n },\n async onEnter (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => requestAnimationFrame(resolve))\n ;(el as HTMLElement).style.visibility = ''\n\n const { x, y, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = animate(el, [\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n { transform: '' },\n ], {\n duration: 225 * speed,\n easing: deceleratedEasing,\n })\n getChildren(el)?.forEach(el => {\n animate(el, [\n { opacity: 0 },\n { opacity: 0, offset: 0.33 },\n { opacity: 1 },\n ], {\n duration: 225 * 2 * speed,\n easing: standardEasing,\n })\n })\n animation.finished.then(() => done())\n },\n onAfterEnter (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n onBeforeLeave (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n },\n async onLeave (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n\n const { x, y, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = animate(el, [\n { transform: '' },\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n ], {\n duration: 125 * speed,\n easing: acceleratedEasing,\n })\n animation.finished.then(() => done())\n getChildren(el)?.forEach(el => {\n animate(el, [\n {},\n { opacity: 0, offset: 0.2 },\n { opacity: 0 },\n ], {\n duration: 125 * 2 * speed,\n easing: standardEasing,\n })\n })\n },\n onAfterLeave (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n }\n\n return () => {\n return props.target\n ? (\n <Transition\n name=\"dialog-transition\"\n { ...functions }\n css={ false }\n v-slots={ slots }\n />\n )\n : <Transition name=\"dialog-transition\" v-slots={ slots } />\n }\n },\n})\n\n/** Animatable children (card, sheet, list) */\nfunction getChildren (el: Element) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children\n return els && [...els]\n}\n\nfunction getDimensions (target: HTMLElement, el: HTMLElement) {\n const targetBox = target.getBoundingClientRect()\n const elBox = nullifyTransforms(el)\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v))\n\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ')\n\n let offsetX = targetBox.left + targetBox.width / 2\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2\n }\n\n let offsetY = targetBox.top + targetBox.height / 2\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2\n }\n\n const tsx = targetBox.width / elBox.width\n const tsy = targetBox.height / elBox.height\n const maxs = Math.max(1, tsx, tsy)\n const sx = tsx / maxs || 0\n const sy = tsy / maxs || 0\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = (elBox.width * elBox.height) / (window.innerWidth * window.innerHeight)\n const speed = asa > 0.12\n ? Math.min(1.5, (asa - 0.12) * 10 + 1)\n : 1\n\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed,\n }\n}\n\nexport type VDialogTransition = InstanceType<typeof VDialogTransition>\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { mergeProps, nextTick, ref, watch } from 'vue'\nimport { genericComponent, IN_BROWSER, useRender } from '@/util'\nimport { filterVOverlayProps, makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Types\nimport type { SlotsToProps } from '@/util'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const VDialog = genericComponent<new () => {\n $props: SlotsToProps<OverlaySlots>\n}>()({\n name: 'VDialog',\n\n props: {\n fullscreen: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n\n ...makeVOverlayProps({\n origin: 'center center' as const,\n scrollStrategy: 'block' as const,\n transition: { component: VDialogTransition },\n zIndex: 2400,\n }),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const overlay = ref<VOverlay>()\n function onFocusin (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n if (\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = [...overlay.value.contentEl.querySelectorAll(\n 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement[]\n\n if (!focusable.length) return\n\n const firstElement = focusable[0]\n const lastElement = focusable[focusable.length - 1]\n\n if (before === firstElement) {\n lastElement.focus()\n } else {\n firstElement.focus()\n }\n }\n }\n\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val\n ? document.addEventListener('focusin', onFocusin)\n : document.removeEventListener('focusin', onFocusin)\n }, { immediate: true })\n }\n\n watch(isActive, async val => {\n await nextTick()\n if (val) {\n overlay.value!.contentEl?.focus({ preventScroll: true })\n } else {\n overlay.value!.activatorEl?.focus({ preventScroll: true })\n }\n })\n\n useRender(() => {\n const [overlayProps] = filterVOverlayProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-dialog',\n {\n 'v-dialog--fullscreen': props.fullscreen,\n 'v-dialog--scrollable': props.scrollable,\n },\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n aria-role=\"dialog\"\n aria-modal=\"true\"\n activatorProps={ mergeProps({\n 'aria-haspopup': 'dialog',\n 'aria-expanded': String(isActive.value),\n }, props.activatorProps) }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root>\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VDialog = InstanceType<typeof VDialog>\n","<template>\n <h3>Contracts</h3>\n <v-tabs v-model=\"tab\" class=\"my-2\">\n <v-tab value=\"list\">List</v-tab>\n <v-tab value=\"edit\" v-if=\"edit\">Edit</v-tab>\n <v-tab value=\"report\" v-if=\"report\">Report</v-tab>\n </v-tabs>\n <v-window v-model=\"tab\" >\n <v-window-item value=\"list\">\n <v-responsive\n max-width=\"500\"\n >\n <v-text-field clearable\n label=\"Search\"\n variant=\"outlined\"\n v-model=\"searchQuery\"\n density=\"compact\"\n append-inner-icon=\"mdi-magnify\"></v-text-field>\n </v-responsive>\n <v-dialog v-model=\"showDialog\">\n </v-dialog>\n <v-row>\n <v-col cols=\"8\" xs=\"12\" sm=\"12\" md=\"8\">\n <v-progress-linear indeterminate color=\"blue\" :active=\"loading\"></v-progress-linear>\n <RecycleScroller class=\"scroller\"\n :items=\"filteredContracts\"\n :item-size=\"130\"\n v-slot=\"{ item }\" \n key-field=\"no\"\n >\n <v-row :class=\"[{inactive : !item.active}]\" class=\"item\">\n <v-col cols=\"4\" >\n <h3>Contract : {{ item.no }}</h3>\n {{ item.customer.acc_no }} - {{ item.customer.name }}\n <v-switch v-model=\"item.active\" color=\"green\" @change=\"setContractInactive(item)\" label=\"Active\"></v-switch>\n </v-col>\n <v-col >\n <template v-for=\"p in item.products\" :key=\"p.code\">\n <span v-if=\"p.code != ''\">\n {{ p.code }} @ {{ p.price }}<br/>\n </span>\n </template>\n </v-col>\n <v-col >\n <v-icon title=\"Start\">mdi-play</v-icon>: {{ formatDate(item.start_date,\"DD/MM/YYYY\") }}<br/>\n <v-icon title=\"Finish\">mdi-flag-checkered</v-icon>: {{ formatDate(item.finish_date,\"DD/MM/YYYY\") }}<br/>\n <v-icon title=\"Duration\">mdi-clock</v-icon>: {{ item.duration }} months\n </v-col>\n <v-col>\n {{ item.tonnage_per_month }} per month<br/>\n = {{ formatNumber(item.tonnage_per_month * item.duration,2) }} total<br/>\n = {{ formatNumber(item.tonnage_per_month * item.remaining_duration,2) }} remaining<br/>\n </v-col>\n <v-col>\n <v-row>\n <v-col cols=\"12\">\n <v-btn color=\"info\">\n More\n <v-overlay activator=\"parent\" class=\"align-center justify-center\">\n <v-card title=\"Info\" width=\"600\">\n <v-card-subtitle>Comments</v-card-subtitle>\n <v-card-text>{{ item.comments}} </v-card-text>\n <v-card-subtitle>Office</v-card-subtitle>\n <v-card-text>{{ item.office_comments}}</v-card-text>\n <v-card-subtitle>Agreed</v-card-subtitle>\n <v-card-text>{{ formatDate(item.agree_date,\"DD/MM/YYYY\") }}</v-card-text>\n <v-card-subtitle>Products</v-card-subtitle>\n <v-card-text>\n <template v-for=\"p in item.products\" :key=\"p.code\">\n <span v-if=\"p.code != ''\">\n {{ p.code }} - {{ p.name }} @ {{ p.price }}<br/>\n </span>\n </template>\n </v-card-text>\n <v-card-actions>\n <v-btn color=\"info\"\n target=\"blank\"\n @click=\"getContractPrint(item.no)\"\n class=\"ma-2 pa-2\"\n :loading=\"item.multiloading\"\n >\n Multi\n </v-btn>\n\n <v-btn color=\"info\"\n target=\"blank\"\n @click=\"getContractPrint(item.no,true)\"\n :loading=\"item.totalloading\"\n class=\"ma-2 pa-2\"\n >\n Total\n </v-btn>\n <v-btn color=\"warning\"\n v-if=\"site_info.features.editcontract\"\n @click=\"showEditContract(item)\"\n >\n Edit\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-overlay>\n </v-btn>\n </v-col>\n <v-col cols=\"12\">\n <v-btn color=\"warning\"\n v-if=\"site_info.features.editcontract\"\n @click=\"showEditContract(item)\"\n >\n Edit\n </v-btn>\n </v-col>\n </v-row>\n </v-col>\n </v-row>\n </RecycleScroller>\n </v-col>\n </v-row>\n </v-window-item>\n <v-window-item value=\"edit\">\n <ContractEdit ref=\"edit\" :setcontract=\"selected_contract\" @closetab=\"tab = 'list'\" @contractupdate=\"contractUpdated\"/>\n </v-window-item>\n <v-window-item value=\"report\">\n <ContractMulti :contract=\"selected_contract\" :total=\"total\" />\n </v-window-item>\n </v-window>\n</template>\n<script>\nimport ContractEdit from './ContractEdit.vue';\nimport ContractMulti from './ContractMulti.vue';\nimport methods from '@/CommonMethods.vue'\nimport axios from 'axios'\nexport default {\n props: {\n site_info: {},\n user_info: {}\n },\n components: {\n ContractEdit,\n ContractMulti\n },\n computed: {\n filteredContracts(){\n let query = this.searchQuery.toLowerCase()\n if (!this.data_received){\n this.getContractsList()\n }\n let clist = this.contracts.filter(q =>\n q.customer.name.toLowerCase().includes(query) ||\n q.customer.acc_no.includes(query) ||\n q.no == query\n )\n if (this.showCurrent) {\n clist = clist.filter(q => \n q.current == true\n )\n }\n if (this.showActive) {\n clist = clist.filter(q => \n q.active == true\n )\n }\n return clist\n }\n },\n data() {\n return {\n searchQuery: \"\",\n contracts: [],\n data_received: false,\n contractsloading: true,\n limit: 200,\n loading: true,\n showActive: false,\n showCurrent: false,\n showDialog: false,\n selected_contract: {},\n reportcomponent: null,\n tab: null,\n edit: false,\n report: false,\n total: false,\n content: \"\"\n }\n },\n mixins: [methods],\n methods: {\n async showEditContract(contract) {\n this.selected_contract = contract\n //this.selected_contract = contract\n this.tab = \"edit\"\n this.edit = true\n },\n async getContractsList() {\n this.loading = true\n let url = this.$api_url + \"/customers/contracts/list\"\n console.log(\"Getting Contracts list...\")\n axios.get(url, {\n params: {\n limit: this.limit,\n query: this.searchQuery\n }\n })\n .then(resp => {\n this.contracts = resp.data\n this.data_received = true\n this.loading = false\n })\n },\n getContractPrint(contract, total = false) {\n axios.get(this.$api_url + \"/customers/contracts/\" + contract + \"/info\")\n .then(resp => {\n this.selected_contract = resp.data\n this.total = total\n this.tab = \"report\"\n this.report = true\n })\n },\n findContract(id) {\n for (let c = 0; c < this.contracts; c++) {\n if (this.contracts[c].id == id) {\n return c\n }\n }\n },\n contractUpdated(data) {\n console.log(\"Contract updated : \" + data.id)\n this.getContractsList()\n this.tab = 'list'\n this.edit = false\n },\n setContractInactive(contract) {\n let url = this.$api_url + \"/customers/contracts/\" + contract.no + \"/active_state\"\n axios.post(url, {\n state: contract.active\n }).then(resp => {\n if (resp.data.ok) {\n console.log(\"Active state set\")\n } else {\n console.log(\"failed to set Active state\")\n contract.active = !contract.active\n }\n }).catch(err => {\n console.log(err)\n contract.active = !contract.active\n })\n }\n }\n}\n</script>\n<style scoped>\n.scroller {\n height: 600px;\n}\n\n.item {\n height: 138px;\n overflow-y:hidden;\n padding: 0 12px;\n margin-bottom:2px;\n display: flex;\n align-items: center;\n}\n</style>\n","// Styles\nimport './VChipGroup.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { deepEqual, defineComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group')\n\nexport const VChipGroup = defineComponent({\n name: 'VChipGroup',\n\n props: {\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeGroupProps({ selectedClass: 'v-chip--selected' }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VChipGroupSymbol)\n\n provideDefaults({\n VChip: {\n color: toRef(props, 'color'),\n filter: toRef(props, 'filter'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-chip-group',\n {\n 'v-chip-group--column': props.column,\n },\n themeClasses.value,\n ]}\n >\n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n }) }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VChipGroup = InstanceType<typeof VChipGroup>\n","/* eslint-disable complexity */\n// Styles\nimport './VChip.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { computed } from 'vue'\n\nexport const VChip = defineComponent({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: {\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n },\n\n emits: {\n 'click:close': (e: Event) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { themeClasses } = provideTheme(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const link = useLink(props, attrs)\n const isClickable = computed(() => !props.disabled && (!!group || link.isClickable.value || props.link))\n\n function onCloseClick (e: Event) {\n isActive.value = false\n\n emit('click:close', e)\n }\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppend = !!(slots.append || props.appendIcon || props.appendAvatar)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar)\n const hasColor = !group || group.isSelected.value\n\n return isActive.value && (\n <Tag\n class={[\n 'v-chip',\n {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable.value,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n group?.selectedClass.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n v-ripple={ [isClickable.value && props.ripple, null] }\n onClick={ onClick }\n >\n { genOverlays(isClickable.value, 'v-chip') }\n\n { hasFilter && (\n <VDefaultsProvider\n key=\"filter\"\n defaults={{\n VIcon: { icon: props.filterIcon },\n }}\n >\n <VExpandXTransition>\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { slots.filter ? slots.filter() : (<VIcon />) }\n </div>\n </VExpandXTransition>\n </VDefaultsProvider>\n ) }\n\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n image: props.prependAvatar,\n },\n VIcon: {\n icon: props.prependIcon,\n },\n }}\n >\n { slots.prepend\n ? (\n <div class=\"v-chip__prepend\">\n { slots.prepend() }\n </div>\n )\n : props.prependAvatar ? (<VAvatar start />)\n : props.prependIcon ? (<VIcon start />)\n : undefined\n }\n </VDefaultsProvider>\n ) }\n\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n\n { hasAppend && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VAvatar: {\n image: props.appendAvatar,\n },\n VIcon: {\n icon: props.appendIcon,\n },\n }}\n >\n { slots.append\n ? (\n <div class=\"v-chip__append\">\n { slots.append() }\n </div>\n )\n : props.appendAvatar ? (<VAvatar end />)\n : props.appendIcon ? (<VIcon end />)\n : undefined\n }\n </VDefaultsProvider>\n ) }\n\n { hasClose && (\n <VDefaultsProvider\n key=\"close\"\n defaults={{\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small',\n },\n }}\n >\n <div\n class=\"v-chip__close\"\n onClick={ onCloseClick }\n >\n { slots.close ? slots.close() : (<VIcon />) }\n </div>\n </VDefaultsProvider>\n ) }\n </Tag>\n )\n }\n },\n})\n\nexport type VChip = InstanceType<typeof VChip>\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, inject, mergeProps, provide, ref, watch } from 'vue'\nimport { genericComponent, getUid, omit, useRender } from '@/util'\nimport { filterVOverlayProps, makeVOverlayProps } from '@/components/VOverlay/VOverlay'\nimport { VMenuSymbol } from './shared'\n\n// Types\nimport type { SlotsToProps } from '@/util'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const VMenu = genericComponent<new () => {\n $props: SlotsToProps<OverlaySlots>\n}>()({\n name: 'VMenu',\n\n props: {\n // TODO\n // disableKeys: Boolean,\n id: String,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition },\n }), ['absolute']),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n let openChildren = 0\n provide(VMenuSymbol, {\n register () {\n ++openChildren\n },\n unregister () {\n --openChildren\n },\n closeParents () {\n setTimeout(() => {\n if (!openChildren) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n watch(isActive, val => {\n val ? parent?.register() : parent?.unregister()\n })\n\n function onClickOutside () {\n parent?.closeParents()\n }\n\n useRender(() => {\n const [overlayProps] = filterVOverlayProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-menu',\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n }, props.activatorProps) }\n onClick:outside={ onClickOutside }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root>\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n","// Styles\nimport './VSelect.sass'\n\n// Components\nimport { filterVTextFieldProps, makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDialogTransition } from '@/components/transitions'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { deepEqual, genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'v-select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n e.preventDefault()\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'ArrowDown') {\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n listRef.value?.focus('prev')\n } else if (e.key === 'Home') {\n e.preventDefault()\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n e.preventDefault()\n listRef.value?.focus('last')\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusout={ onFocusout }\n >\n { !items.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { items.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n","/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\nimport { computed, unref } from 'vue'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\nimport type { InternalItem } from './items'\n\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\nexport type FilterMatch = boolean | number | [number, number] | [number, number][]\nexport type FilterFunction = (value: string, query: string, item?: any) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase())\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType<FilterFunction>,\n customKeyFilter: Object as PropType<FilterKeyFunctions>,\n filterKeys: [Array, String] as PropType<FilterKeys>,\n filterMode: {\n type: String as PropType<FilterMode>,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: any[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { index: number, matches: Record<string, FilterMatch> }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const customMatches: Record<string, FilterMatch> = {}\n const defaultMatches: Record<string, FilterMatch> = {}\n let match: FilterMatch = -1\n\n if (query && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(item)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(item as any, key, item)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match\n else defaultMatches[key] = match\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = match\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter (\n props: FilterProps,\n items: MaybeRef<InternalItem[]>,\n query?: Ref<string | undefined>,\n) {\n const strQuery = computed(() => (\n typeof query?.value !== 'string' &&\n typeof query?.value !== 'number'\n ) ? '' : String(query.value))\n\n const filteredItems = computed(() => {\n const transformedItems = unref(items)\n const matches = filterItems(\n transformedItems,\n strQuery.value,\n {\n customKeyFilter: props.customKeyFilter,\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n return matches.map(({ index, matches }) => ({\n item: transformedItems[index],\n matches,\n }))\n })\n\n return { filteredItems }\n}\n","// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useItems } from '@/composables/items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, nextTick, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender, wrapInArray } from '@/util'\nimport { filterVTextFieldProps, makeVTextFieldProps } from '../VTextField/VTextField'\n\n// Types\nimport type { FilterMatch } from '@/composables/filter'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nfunction highlightResult (text: string, matches: FilterMatch, length: number) {\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-autocomplete__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-autocomplete__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-autocomplete__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VAutocomplete = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VAutocomplete',\n\n props: {\n // TODO: implement post keyboard support\n // autoSelectFirst: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n },\n\n emits: {\n 'update:search': (val: any) => true,\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = ref(false)\n const isPristine = ref(true)\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const { filteredItems } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n listRef.value?.focus('prev')\n }\n }\n\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\n }\n\n function onAfterLeave () {\n if (isFocused.value) isPristine.value = true\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n const isSelecting = ref(false)\n\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n search.value = ''\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n\n isSelecting.value = true\n\n if (!slots.selection) {\n search.value = item.title\n }\n\n menu.value = false\n isPristine.value = true\n\n nextTick(() => (isSelecting.value = false))\n }\n }\n\n watch(isFocused, val => {\n if (val) {\n isSelecting.value = true\n search.value = props.multiple || !!slots.selection ? '' : String(selections.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n menu.value = false\n search.value = ''\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ search.value }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n onInput={ onInput }\n class={[\n 'v-autocomplete',\n {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n [`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-autocomplete--selection-slot': !!slots.selection,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly={ props.readonly }\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onClick:input={ onClickControl }\n onFocus={ () => isFocused.value = true }\n onBlur={ () => isFocused.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-autocomplete__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n >\n { !filteredItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { filteredItems.value.map(({ item, matches }, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, matches.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-autocomplete__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-autocomplete__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-autocomplete__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType<typeof VAutocomplete>\n","// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { callEvent, clamp, convertToUnit, defineComponent, filterInputAttrs, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VTextarea = defineComponent({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: {\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n hint: String,\n persistentHint: Boolean,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const controlHeight = ref('')\n const textareaRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.persistentPlaceholder\n ))\n\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isActive.value || props.persistentHint) ? props.hint : ''\n })\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n model.value = (e.target as HTMLTextAreaElement).value\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n\n controlHeight.value = convertToUnit(clamp(height ?? 0, minHeight, maxHeight))\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant),\n },\n ]}\n onClick:prepend={ props['onClick:prepend'] }\n onClick:append={ props['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n ) }\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ props.name }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n ) }\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots={ slots.counter }\n />\n </>\n ) }\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n","<template>\n <v-card title=\"Edit Contract\" :subtitle=\"'Contract : ' + contract.no\">\n <v-card-text>\n <v-container>\n <v-row>\n <v-col cols=\"6\">\n <v-text-field label=\"Customer\" v-model=\"contract.customer.name\" readonly></v-text-field>\n <v-text-field type=\"number\" label=\"Tonnage Per Month\" v-model=\"contract.tonnage_per_month\"></v-text-field>\n </v-col>\n <v-col cols=\"6\">\n <label>\n Start Date\n <DatePicker v-model=\"contract.start_date\" format=\"dd/MM/yyyy\" />\n </label><br />\n <label>\n Finish Date\n <DatePicker v-model=\"contract.finish_date\" format=\"dd/MM/yyyy\" />\n </label><br />\n </v-col>\n </v-row>\n <template v-for=\"p in contract.products\" :key=\"p.code\">\n <v-row>\n <v-col cols=\"6\">\n <v-autocomplete v-model=\"p.code\" \n v-model:search=\"product_search\"\n :loading=\"products_loading\"\n :items=\"products\"\n cache-items\n hide-no-data\n hide-details\n solo-inverted\n label=\"Code\" \n no-data-text=\"No Products Found\"\n item-title=\"code\" \n item-value=\"code\" ></v-autocomplete>\n </v-col>\n <v-col cols=\"4\">\n <v-text-field type=\"number\" label=\"Price\" v-model=\"p.price\"></v-text-field>\n </v-col>\n <v-col cols=\"2\">\n <v-btn size=\"small\" color=\"error\" title=\"Remove\" variant=\"plain\" icon @click=\"contract.products.pop()\"><v-icon>mdi-minus</v-icon></v-btn>\n </v-col>\n </v-row>\n </template>\n <v-row>\n <v-col cols=\"4\">\n <v-btn @click=\"contract.products.push({})\" v-if=\"contract.products.length < 4\">+ Add Product</v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col cols=\"6\">\n <label>\n Agree Date\n <DatePicker v-model=\"contract.agree_date\" format=\"dd/MM/yyyy\" />\n </label>\n </v-col>\n <v-col cols=\"12\">\n <v-textarea rows=3 label=\"Comments\" v-model=\"contract.comments\"></v-textarea>\n <v-textarea rows=3 label=\"Office Comments\" v-model=\"contract.office_comments\"></v-textarea>\n </v-col>\n </v-row>\n </v-container>\n </v-card-text>\n <v-card-actions>\n <v-btn color=\"red-darken-1\"\n variant=\"text\"\n @click=\"saveContract(selected_contract)\">Save</v-btn>\n <v-spacer></v-spacer>\n <v-btn color=\"blue-darken-1\"\n variant=\"text\"\n @click=\"close\">Close</v-btn>\n </v-card-actions>\n </v-card>\n</template>\n<script>\nimport axios from 'axios'\nimport DatePicker from '@vuepic/vue-datepicker'\nexport default {\n props: {\n setcontract: {\n no: Number,\n customer: {\n acc_no: String,\n name: String,\n at_risk: Boolean,\n },\n products: [{\n code: String,\n name: String,\n price: Number,\n }],\n start_date: String,\n finish_date: String,\n agree_date: String,\n tonnage_per_month: Number,\n comments: String,\n office_comments: String,\n active: Boolean\n }\n },\n components: {\n DatePicker\n },\n watch: {\n setcontract(newval) {\n this.contract = newval\n },\n product_search(val) {\n if (val && val.length > 1) {\n this.searchProducts(val)\n }\n }\n },\n data() {\n return {\n contract: this.setcontract,\n dialog: this.opendialog,\n saving: false,\n product_search: null,\n products_loading: false,\n products: [],\n }\n },\n methods: {\n close() {\n this.$emit('closetab','list')\n },\n async saveContract(){\n this.saving = true\n let url = this.$api_url + \"/customers/contracts/\" + this.contract.no + \"/save\"\n console.log(\"Saving Contract : \", this.contract.no)\n console.log(this.contract)\n axios.post(url, {\n contract: this.contract\n }).then(resp => {\n console.log(\"Saved Contract : \" + JSON.stringify(resp.data))\n this.saving = false\n this.$emit('contractupdate', resp.data)\n }).catch(err => {\n console.log(err)\n this.saving = false\n })\n },\n searchProducts(code) {\n let url = this.$api_url + \"/products/search/\" + code\n console.log(url)\n axios.get(url)\n .then(resp => {\n console.log(resp)\n this.products = resp.data\n })\n .catch(err => {\n console.log(err)\n this.products = [{code:\"NoProductsFound\", name:\"No Products Found\"}]\n })\n },\n productCodeName(p) {\n return p.code + ' - ' + p.name\n }\n }\n}\n</script>\n","import { render } from \"./ContractEdit.vue?vue&type=template&id=57f6c3ce\"\nimport script from \"./ContractEdit.vue?vue&type=script&lang=js\"\nexport * from \"./ContractEdit.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/srv/http/Development/Clients/cmc_app/public/cmc_fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <ReportLayout scope=\"contract\">\n <div class=\"letter\">\n <p><span class=\"text-bold\">Date: </span>{{ current_date }}</p>\n <p class=\"text-bold\">Customer's Address:</p>\n <address v-if=\"contract.customer\">\n {{ contract.customer.name }}<br/>\n {{ contract.customer.address.line_1 }}<br/>\n {{ contract.customer.address.line_2 }}<br/>\n <template v-if=\"contract.customer.address.city != ''\">\n {{ contract.customer.address.city }}\n </template>\n <template v-else>\n {{ contract.customer.address.line_3 }}\n </template><br/>\n <template v-if=\"contract.customer.address.county != ''\">\n {{ contract.customer.address.county }}\n </template>\n <template v-else>\n {{ contract.customer.address.line_4}} \n </template>\n {{ contract.customer.address.postcode }} \n </address>\n <p class=\"text-bold\">This is to confirm that you have entered into a \n contract on the following terms and conditions.</p>\n <p class=\"text-bold\">Description of goods</p>\n <p>CMC Contract Number: {{ contract.no }}<br/>\n Period: {{ start_date_formatted }}\n until {{ finish_date_formatted }}</p>\n <p v-if=\"!total\"><span class=\"text-bold\">Tonnage Per Month: </span>{{ contract.tonnage_per_month }}</p>\n <p v-if=\"total\"><span class=\"text-bold\">Total Tonnage: </span>{{ contract.tonnage_per_month * contract.duration }}</p>\n <p>{{ contract.comments }}</p>\n <p><span class=\"text-bold\">Payment Terms: </span>{{ contract.terms }}</p>\n <ul class=\"list contract-product\">\n <li v-for=\"product in contract.products\" :key=\"product.code\">\n £ {{ product.price }} <span class=\"gap-before\">{{ product.name }}</span>\n </li>\n </ul>\n <p class=\"text-bold\">No variation on the above terms is accepted unless \n expressly agreed in writing</p>\n <p><span class=\"text-bold\">Contract Agreement Date: </span>\n <template v-if=\"contract.agree_date != ''\">\n {{ agree_date_formatted }}\n </template></p>\n <p class=\"text-bold\">This contract is subject to change if additional import\n duties are imposed as a result of Brexit or unforeseen circumstances. It\n is also subject to any surcharges imposed on input costs as a result of\n supply chain issues.</p>\n <p>Yours faithfully</p>\n <div class=\"signature\"></div>\n <p class=\"text-bold\">On behalf of Crediton Milling Company Limited</p>\n <p class=\"text-center text-italic\">This contract is subject to the AIC terms\n and conditions No. 14/21 so far as they are consistent with the terms\n set out above. Where there is a conflict the above terms will prevail.</p>\n </div>\n </ReportLayout>\n</template>\n<script>\n\nimport '@/assets/css/reports.css';\nimport ReportLayout from '@/components/ReportLayout.vue'\nimport Common from '@/common.js';\nimport moment from 'moment';\nexport default {\n props: {\n contract: {},\n total: Boolean\n },\n components: {\n ReportLayout\n\n },\n data(){\n return {\n current_date: Common.getDateNow(),\n }\n },\n computed: {\n start_date_formatted() {\n return moment(String(this.contract.start_date)).format('DD/MM/YYYY')\n },\n finish_date_formatted() {\n return moment(String(this.contract.finish_date)).format('DD/MM/YYYY')\n },\n agree_date_formatted() {\n return moment(String(this.contract.agree_date)).format('DD/MM/YYYY')\n }\n },\n methods: {\n }\n}\n</script>\n","import moment from 'moment';\nexport default {\n getAuthToken() {\n let tok = localStorage.getItem('access_token')\n console.log(tok)\n return tok\n },\n formatDate(dateVal, format) {\n if (dateVal) {\n return moment(String(dateVal)).format(format)\n }\n },\n getDateNow() {\n let now = new Date()\n return now.toLocaleString('en-GB', {\n day: '2-digit',\n month: 'long',\n year: 'numeric'\n })\n },\n getTimeNow() {\n let now = new Date()\n return now.toLocaleString('en-GB', {\n month: 'long',\n day: '2-digit',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'})\n },\n}\n","import { render } from \"./ContractMulti.vue?vue&type=template&id=8d8d7976\"\nimport script from \"./ContractMulti.vue?vue&type=script&lang=js\"\nexport * from \"./ContractMulti.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/srv/http/Development/Clients/cmc_app/public/cmc_fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ContractList.vue?vue&type=template&id=1af80872&scoped=true\"\nimport script from \"./ContractList.vue?vue&type=script&lang=js\"\nexport * from \"./ContractList.vue?vue&type=script&lang=js\"\n\nimport \"./ContractList.vue?vue&type=style&index=0&id=1af80872&scoped=true&lang=css\"\n\nimport exportComponent from \"/srv/http/Development/Clients/cmc_app/public/cmc_fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1af80872\"]])\n\nexport default __exports__","// Components\nimport { makeSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ExtractPropTypes } from 'vue'\n\nexport const makeVCheckboxBtnProps = propsFactory({\n indeterminate: Boolean,\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n\n ...makeSelectionControlProps({\n falseIcon: '$checkboxOff',\n trueIcon: '$checkboxOn',\n }),\n}, 'v-checkbox-btn')\n\nexport const VCheckboxBtn = defineComponent({\n name: 'VCheckboxBtn',\n\n props: makeVCheckboxBtnProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:indeterminate': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const model = useProxiedModel(props, 'modelValue')\n\n function onChange (v: any) {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n const falseIcon = computed(() => {\n return props.indeterminate\n ? props.indeterminateIcon\n : props.falseIcon\n })\n\n const trueIcon = computed(() => {\n return props.indeterminate\n ? props.indeterminateIcon\n : props.trueIcon\n })\n\n useRender(() => (\n <VSelectionControl\n { ...props }\n v-model={ model.value }\n class=\"v-checkbox-btn\"\n type=\"checkbox\"\n inline\n onUpdate:modelValue={ onChange }\n falseIcon={ falseIcon.value }\n trueIcon={ trueIcon.value }\n aria-checked={ props.indeterminate ? 'mixed' : undefined }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VCheckboxBtn = InstanceType<typeof VCheckboxBtn>\n\nexport function filterCheckboxBtnProps (props: ExtractPropTypes<ReturnType<typeof makeVCheckboxBtnProps>>) {\n return pick(props, Object.keys(VCheckboxBtn.props) as any)\n}\n","// Styles\nimport './VSelectionControlGroup.sass'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeThemeProps } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { deepEqual, defineComponent, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\n\nexport interface VSelectionGroupContext {\n modelValue: Ref<any>\n}\n\nexport const VSelectionControlGroupSymbol: InjectionKey<VSelectionGroupContext> = Symbol.for('vuetify:selection-control-group')\n\nexport const makeSelectionControlGroupProps = propsFactory({\n color: String,\n disabled: Boolean,\n error: Boolean,\n id: String,\n inline: Boolean,\n falseIcon: IconValue,\n trueIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n multiple: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n name: String,\n readonly: Boolean,\n modelValue: null,\n type: String,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeThemeProps(),\n ...makeDensityProps(),\n}, 'v-selection-control-group')\n\nexport const VSelectionControlGroup = defineComponent({\n name: 'VSelectionControlGroup',\n\n props: {\n defaultsTarget: {\n type: String,\n default: 'VSelectionControl',\n },\n\n ...makeSelectionControlGroupProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const modelValue = useProxiedModel(props, 'modelValue')\n const uid = getUid()\n const id = computed(() => props.id || `v-selection-control-group-${uid}`)\n const name = computed(() => props.name || id.value)\n\n provide(VSelectionControlGroupSymbol, { modelValue })\n\n provideDefaults({\n [props.defaultsTarget]: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n density: toRef(props, 'density'),\n error: toRef(props, 'error'),\n inline: toRef(props, 'inline'),\n modelValue,\n multiple: computed(() => !!props.multiple || (props.multiple == null && Array.isArray(modelValue.value))),\n name,\n falseIcon: toRef(props, 'falseIcon'),\n trueIcon: toRef(props, 'trueIcon'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n type: toRef(props, 'type'),\n valueComparator: toRef(props, 'valueComparator'),\n },\n })\n\n useRender(() => (\n <div\n class={[\n 'v-selection-control-group',\n { 'v-selection-control-group--inline': props.inline },\n ]}\n aria-labelled-by={ props.type === 'radio' ? id.value : undefined }\n role={ props.type === 'radio' ? 'radiogroup' : undefined }\n >\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VSelectionControlGroup = InstanceType<typeof VSelectionControlGroup>\n","// Styles\nimport './VSelectionControl.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VLabel } from '@/components/VLabel'\nimport { makeSelectionControlGroupProps, VSelectionControlGroupSymbol } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { useDensity } from '@/composables/density'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject, ref } from 'vue'\nimport {\n filterInputAttrs,\n genericComponent,\n getUid,\n pick,\n propsFactory,\n SUPPORTS_FOCUS_VISIBLE,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { CSSProperties, ExtractPropTypes, Ref, WritableComputedRef } from 'vue'\nimport type { SlotsToProps } from '@/util'\n\nexport type SelectionControlSlot = {\n model: WritableComputedRef<any>\n textColorClasses: Ref<string[]>\n textColorStyles: Ref<CSSProperties>\n props: {\n onBlur: (e: Event) => void\n onFocus: (e: FocusEvent) => void\n id: string\n }\n}\n\nexport const makeSelectionControlProps = propsFactory({\n label: String,\n trueValue: null,\n falseValue: null,\n value: null,\n\n ...makeSelectionControlGroupProps(),\n}, 'v-selection-control')\n\nexport function useSelectionControl (\n props: ExtractPropTypes<ReturnType<typeof makeSelectionControlProps>> & {\n 'onUpdate:modelValue': ((val: any) => void) | undefined\n }\n) {\n const group = inject(VSelectionControlGroupSymbol, undefined)\n const { densityClasses } = useDensity(props)\n const modelValue = useProxiedModel(props, 'modelValue')\n const trueValue = computed(() => (\n props.trueValue !== undefined ? props.trueValue\n : props.value !== undefined ? props.value\n : true\n ))\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false)\n const isMultiple = computed(() => (\n !!props.multiple ||\n (props.multiple == null && Array.isArray(modelValue.value))\n ))\n const model = computed({\n get () {\n const val = group ? group.modelValue.value : modelValue.value\n\n return isMultiple.value\n ? val.some((v: any) => props.valueComparator(v, trueValue.value))\n : props.valueComparator(val, trueValue.value)\n },\n set (val: boolean) {\n if (props.readonly) return\n\n const currentValue = val ? trueValue.value : falseValue.value\n\n let newVal = currentValue\n\n if (isMultiple.value) {\n newVal = val\n ? [...wrapInArray(modelValue.value), currentValue]\n : wrapInArray(modelValue.value).filter((item: any) => !props.valueComparator(item, trueValue.value))\n }\n\n if (group) {\n group.modelValue.value = newVal\n } else {\n modelValue.value = newVal\n }\n },\n })\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n model.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n const icon = computed(() => model.value ? props.trueIcon : props.falseIcon)\n\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n icon,\n }\n}\n\nexport const VSelectionControl = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n } & SlotsToProps<{\n default: []\n input: [SelectionControlSlot]\n }>\n}>()({\n name: 'VSelectionControl',\n\n directives: { Ripple },\n\n inheritAttrs: false,\n\n props: makeSelectionControlProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const {\n densityClasses,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n trueValue,\n } = useSelectionControl(props)\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const isFocused = ref(false)\n const isFocusVisible = ref(false)\n const input = ref<HTMLInputElement>()\n\n function onFocus (e: FocusEvent) {\n isFocused.value = true\n if (\n !SUPPORTS_FOCUS_VISIBLE ||\n (SUPPORTS_FOCUS_VISIBLE && (e.target as HTMLElement).matches(':focus-visible'))\n ) {\n isFocusVisible.value = true\n }\n }\n\n function onBlur () {\n isFocused.value = false\n isFocusVisible.value = false\n }\n\n function onInput (e: Event) {\n model.value = (e.target as HTMLInputElement).checked\n }\n\n useRender(() => {\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n return (\n <div\n class={[\n 'v-selection-control',\n {\n 'v-selection-control--dirty': model.value,\n 'v-selection-control--disabled': props.disabled,\n 'v-selection-control--error': props.error,\n 'v-selection-control--focused': isFocused.value,\n 'v-selection-control--focus-visible': isFocusVisible.value,\n 'v-selection-control--inline': props.inline,\n },\n densityClasses.value,\n ]}\n { ...rootAttrs }\n >\n <div\n class={[\n 'v-selection-control__wrapper',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { slots.default?.() }\n\n <div\n class={[\n 'v-selection-control__input',\n ]}\n v-ripple={ props.ripple && [\n !props.disabled && !props.readonly,\n null,\n ['center', 'circle'],\n ]}\n >\n { icon.value && <VIcon key=\"icon\" icon={ icon.value } /> }\n\n <input\n ref={ input }\n checked={ model.value }\n disabled={ props.disabled }\n id={ id.value }\n onBlur={ onBlur }\n onFocus={ onFocus }\n onInput={ onInput }\n aria-readonly={ props.readonly }\n type={ props.type }\n value={ trueValue.value }\n name={ props.name }\n aria-checked={ props.type === 'checkbox' ? model.value : undefined }\n { ...inputAttrs }\n />\n\n { slots.input?.({\n model,\n textColorClasses,\n textColorStyles,\n props: {\n onFocus,\n onBlur,\n id: id.value,\n },\n } as SelectionControlSlot) }\n </div>\n </div>\n\n { label && (\n <VLabel for={ id.value } clickable>\n { label }\n </VLabel>\n ) }\n </div>\n )\n })\n\n return {\n isFocused,\n input,\n }\n },\n})\n\nexport type VSelectionControl = InstanceType<typeof VSelectionControl>\n\nexport function filterControlProps (props: ExtractPropTypes<ReturnType<typeof makeSelectionControlProps>>) {\n return pick(props, Object.keys(VSelectionControl.props) as any)\n}\n","// Styles\nimport './VSwitch.sass'\n\n// Components\nimport { filterControlProps, makeSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { LoaderSlot, useLoader } from '@/composables/loader'\nimport { useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, ref } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, useRender } from '@/util'\n\nexport const VSwitch = defineComponent({\n name: 'VSwitch',\n\n inheritAttrs: false,\n\n props: {\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': () => true,\n 'update:indeterminate': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const model = useProxiedModel(props, 'modelValue')\n const { loaderClasses } = useLoader(props)\n const { isFocused, focus, blur } = useFocus(props)\n\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== ''\n ? props.loading\n : props.color\n })\n\n const uid = getUid()\n const id = computed(() => props.id || `switch-${uid}`)\n\n function onChange () {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const control = ref<VSelectionControl>()\n\n function onClick () {\n control.value?.input?.click()\n }\n\n return (\n <VInput\n class={[\n 'v-switch',\n { 'v-switch--inset': props.inset },\n { 'v-switch--indeterminate': indeterminate.value },\n loaderClasses.value,\n ]}\n { ...inputAttrs }\n { ...inputProps }\n id={ id.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isReadonly,\n isValid,\n }) => (\n <VSelectionControl\n ref={ control }\n { ...controlProps }\n v-model={ model.value }\n id={ id.value }\n type=\"checkbox\"\n onUpdate:modelValue={ onChange }\n aria-checked={ indeterminate.value ? 'mixed' : undefined }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n onFocus={ focus }\n onBlur={ blur }\n { ...controlAttrs }\n >\n {{\n ...slots,\n default: () => (<div class=\"v-switch__track\" onClick={ onClick }></div>),\n input: ({ textColorClasses, textColorStyles }) => (\n <div\n class={[\n 'v-switch__thumb',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { props.loading && (\n <LoaderSlot\n name=\"v-switch\"\n active\n color={ isValid.value === false ? undefined : loaderColor.value }\n >\n { slotProps => (\n slots.loader\n ? slots.loader(slotProps)\n : (\n <VProgressCircular\n active={ slotProps.isActive }\n color={ slotProps.color }\n indeterminate\n size=\"16\"\n width=\"2\"\n />\n )\n )}\n </LoaderSlot>\n ) }\n </div>\n ),\n }}\n </VSelectionControl>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSwitch = InstanceType<typeof VSwitch>\n"],"names":["VDialogTransition","defineComponent","name","props","target","Object","setup","slots","functions","onBeforeEnter","el","style","pointerEvents","visibility","async","done","Promise","resolve","requestAnimationFrame","x","y","sx","sy","speed","getDimensions","animation","animate","transform","opacity","duration","easing","deceleratedEasing","getChildren","_getChildren","forEach","offset","standardEasing","finished","then","onAfterEnter","removeProperty","onBeforeLeave","acceleratedEasing","_getChildren2","onAfterLeave","els","querySelector","_el$querySelector","children","targetBox","getBoundingClientRect","elBox","nullifyTransforms","originX","originY","getComputedStyle","transformOrigin","split","map","v","parseFloat","anchorSide","anchorOffset","getPropertyValue","offsetX","left","width","offsetY","top","height","tsx","tsy","maxs","Math","max","asa","window","innerWidth","innerHeight","min","VDialog","genericComponent","fullscreen","Boolean","retainFocus","type","default","scrollable","makeVOverlayProps","origin","scrollStrategy","transition","component","zIndex","emits","value","isActive","useProxiedModel","scopeId","useScopeId","overlay","ref","onFocusin","e","before","relatedTarget","after","_overlay$value","contentEl","_overlay$value2","globalTop","document","includes","contains","focusable","querySelectorAll","filter","hasAttribute","matches","length","firstElement","lastElement","focus","IN_BROWSER","watch","val","addEventListener","removeEventListener","immediate","nextTick","_contentEl","preventScroll","activatorEl","_activatorEl","useRender","overlayProps","filterVOverlayProps","mergeProps","String","activatorProps","activator","args","_slots$default","forwardRefs","_createElementVNode","_hoisted_1","_createVNode","_component_v_tabs","$data","class","_component_v_tab","_createBlock","_component_v_window","_component_v_window_item","_component_v_responsive","_component_v_text_field","clearable","label","variant","density","_component_v_dialog","_component_v_row","_component_v_col","cols","xs","sm","md","_component_v_progress_linear","indeterminate","color","active","_component_RecycleScroller","items","$options","item","inactive","no","customer","acc_no","_component_v_switch","onChange","_createElementBlock","_Fragment","products","p","code","price","_hoisted_3","_component_v_icon","title","_ctx","start_date","_hoisted_4","finish_date","_hoisted_5","tonnage_per_month","remaining_duration","_component_v_btn","_component_v_overlay","_component_v_card","_component_v_card_subtitle","_component_v_card_text","comments","office_comments","agree_date","_hoisted_10","_component_v_card_actions","onClick","loading","multiloading","totalloading","$props","features","editcontract","_component_ContractEdit","setcontract","onClosetab","onContractupdate","_component_ContractMulti","contract","total","VChipGroupSymbol","Symbol","for","column","valueComparator","Function","deepEqual","makeGroupProps","selectedClass","makeTagProps","makeThemeProps","makeVariantProps","themeClasses","provideTheme","isSelected","select","next","prev","selected","useGroup","provideDefaults","VChip","toRef","directives","Ripple","activeClass","appendAvatar","appendIcon","IconValue","closable","closeIcon","closeLabel","draggable","filterIcon","link","pill","prependAvatar","prependIcon","ripple","text","modelValue","makeBorderProps","makeDensityProps","makeElevationProps","makeGroupItemProps","makeRoundedProps","makeRouterProps","makeSizeProps","tag","click","attrs","emit","borderClasses","useBorder","colorClasses","colorStyles","variantClasses","useVariant","densityClasses","useDensity","elevationClasses","useElevation","roundedClasses","useRounded","sizeClasses","useSize","group","useGroupItem","useLink","isClickable","computed","disabled","onCloseClick","navigate","_link$navigate","toggle","Tag","isLink","hasAppend","append","hasClose","close","hasFilter","hasPrepend","prepend","hasColor","undefined","href","genOverlays","VIcon","icon","VAvatar","image","size","VMenu","id","omit","closeDelay","closeOnContentClick","locationStrategy","openDelay","scrim","uid","getUid","parent","inject","VMenuSymbol","openChildren","onClickOutside","closeParents","provide","register","unregister","setTimeout","makeSelectProps","propsFactory","chips","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","menuProps","multiple","noDataText","openOnClear","makeItemsProps","itemChildren","defaultFilter","makeVTextFieldProps","makeTransitionProps","t","useLocale","vTextFieldRef","transformIn","transformOut","useItems","model","wrapInArray","transformed","selections","find","selection","listRef","onClear","onClickControl","readonly","onKeydown","key","preventDefault","_listRef$value","_listRef$value2","_listRef$value3","_listRef$value4","index","findIndex","splice","onBlur","_listRef$value5","$el","onFocusout","_vTextFieldRef$value","hasChips","chip","textFieldProps","filterVTextFieldProps","join","externalValue","_slots$noData","_slots$prependItem","_slots$item","_ref2","_slots$appendItem","onChipClose","stopPropagation","slotProps","query","toString","toLocaleLowerCase","indexOf","makeFilterProps","customFilter","customKeyFilter","filterKeys","Array","filterMode","noFilter","filterItems","options","array","keys","customFiltersLength","loop","i","customMatches","defaultMatches","match","getPropertyFromItem","keyFilter","_options$customKeyFil","defaultMatchesLength","customMatchesLength","push","useFilter","strQuery","filteredItems","transformedItems","unref","_ref","highlightResult","isArray","Error","substr","VAutocomplete","search","isFocused","isPristine","onInput","isSelecting","at","_selections$value$at","_ref3","_search$value","VTextarea","Intersect","inheritAttrs","autoGrow","autofocus","counter","Number","counterValue","hint","persistentHint","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","validator","isNaN","maxRows","suffix","makeVInputProps","makeVFieldProps","focused","blur","useFocus","maxlength","onIntersect","isIntersecting","entries","_entries$0$target","_entries$0$target$foc","vInputRef","vFieldRef","controlHeight","textareaRef","messages","onFocus","activeElement","_textareaRef$value","onControlClick","callEvent","sizerRef","calculateInputHeight","fieldStyle","padding","scrollHeight","lineHeight","minHeight","maxHeight","Infinity","convertToUnit","clamp","observer","onMounted","ResizeObserver","observe","_observer","disconnect","onBeforeUnmount","_observer2","hasCounter","hasDetails","details","rootAttrs","inputAttrs","filterInputAttrs","_","inputProps","filterInputProps","fieldProps","filterFieldProps","isDisabled","isDirty","isReadonly","isValid","dirty","fieldClass","handler","once","_slots$details","subtitle","_component_v_container","_component_DatePicker","format","_hoisted_2","_component_v_autocomplete","pop","_component_v_textarea","_component_v_spacer","at_risk","components","DatePicker","newval","this","product_search","searchProducts","data","dialog","opendialog","saving","products_loading","methods","$emit","url","$api_url","console","log","axios","resp","JSON","stringify","catch","err","productCodeName","__exports__","_component_ReportLayout","scope","address","line_1","_hoisted_6","line_2","_hoisted_7","city","line_3","_hoisted_8","county","line_4","postcode","_hoisted_9","_hoisted_11","_hoisted_13","_hoisted_15","_hoisted_16","terms","_hoisted_17","product","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","getAuthToken","tok","localStorage","getItem","formatDate","dateVal","moment","getDateNow","now","Date","toLocaleString","day","month","year","getTimeNow","hour","minute","second","ReportLayout","current_date","Common","start_date_formatted","finish_date_formatted","agree_date_formatted","site_info","user_info","ContractEdit","ContractMulti","filteredContracts","searchQuery","toLowerCase","data_received","getContractsList","clist","contracts","q","showCurrent","current","showActive","contractsloading","limit","showDialog","selected_contract","reportcomponent","tab","edit","report","content","mixins","params","getContractPrint","findContract","c","contractUpdated","setContractInactive","state","ok","render","makeVCheckboxBtnProps","indeterminateIcon","makeSelectionControlProps","falseIcon","trueIcon","VCheckboxBtn","filterCheckboxBtnProps","pick","VSelectionControlGroupSymbol","makeSelectionControlGroupProps","error","inline","defaultsTarget","trueValue","falseValue","useSelectionControl","isMultiple","get","some","set","currentValue","newVal","textColorClasses","textColorStyles","useTextColor","VSelectionControl","isFocusVisible","input","SUPPORTS_FOCUS_VISIBLE","checked","_slots$input","filterControlProps","VSwitch","inset","flat","loaderClasses","useLoader","loaderColor","controlAttrs","_1","controlProps","_2","control","_control$value","_control$value$input","loader"],"sourceRoot":""} |