{"version":3,"sources":["webpack:///./src/design/components/alert/alertModel.js","webpack:///./src/mixins/shared/reactive/reactiveMixin.js","webpack:///../../../src/directives/touch/index.ts"],"names":["alertType","Object","freeze","success","info","warning","error","alertTypes","border","top","right","bottom","left","borders","createAlert","type","message","dismissible","formatAlertError","action","reactiveMixin","computed","visibleOnMdAndUp","this","$vuetify","breakpoint","mdAndUp","visibleOnSmAndUp","smAndUp","visibleOnSmAndDown","smAndDown","handleGesture","wrapper","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","offsetX","offsetY","Math","abs","up","down","touchstart","event","touch","changedTouches","clientX","clientY","start","assign","touchend","end","touchmove","touchmoveX","touchmoveY","move","createHandlers","value","e","inserted","el","binding","vnode","target","parent","parentElement","options","passive","handlers","_touchHandlers","context","_uid","keys","forEach","eventName","addEventListener","unbind","removeEventListener","Touch"],"mappings":"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","file":"js/chunk-0a5923fa.8f7576e6.js","sourcesContent":["/**\r\n * Alert Type (map to vuetify Alert types)\r\n * @type {{success: string, warning: string, error: string, info: string}}\r\n */\r\nconst alertType = Object.freeze({\r\n success: \"success\",\r\n info: \"info\",\r\n warning: \"warning\",\r\n error: \"error\"\r\n});\r\n\r\n/**\r\n * Get the list of available Alert Types\r\n * @type {(string)[]}\r\n */\r\nconst alertTypes = Object.freeze([\r\n alertType.success,\r\n alertType.info,\r\n alertType.warning,\r\n alertType.error\r\n]);\r\n\r\n/**\r\n * Alert border\r\n * @type {Readonly<{top: string, left: string, bottom: string, right: string}>}\r\n */\r\nconst border = Object.freeze({\r\n top: \"top \",\r\n right: \"right \",\r\n bottom: \"bottom \",\r\n left: \"left\"\r\n});\r\n\r\n/**\r\n * Alert borders\r\n * @type {(string)[]}\r\n */\r\nconst borders = Object.freeze([\r\n border.top,\r\n border.right,\r\n border.bottom,\r\n border.left\r\n]);\r\n\r\n/**\r\n * create Alert\r\n * @param {string} type Alert type\r\n * @param {string} message Alert message\r\n * @param {boolean} dismissible dismissible Alert\r\n * @return {{type : string, message : string, dismissible : boolean}}\r\n */\r\nconst createAlert = (type, message, dismissible = false) => {\r\n return {\r\n type: type,\r\n message: message,\r\n dismissible: dismissible\r\n };\r\n};\r\n\r\n/**\r\n * format Alert Error\r\n * @param action full operation action\r\n * @param error error message\r\n * @return {`Couldn't ${string}. ${string}`}\r\n */\r\nconst formatAlertError = (action, error) => {\r\n return `Couldn't ${action}. ${error}`;\r\n};\r\n\r\nexport {\r\n alertType,\r\n alertTypes,\r\n border,\r\n borders,\r\n createAlert,\r\n formatAlertError\r\n};\r\n","/**\r\n * 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","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n"],"sourceRoot":""}