@dspacev-bundle/vue-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 8.93 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../packages/directives/ripple/index.ts"],"sourcesContent":["import { createDirective } from '@vue-cesium/utils/private/create'\nimport { css } from '@vue-cesium/utils/private/dom'\nimport { position, stop, addEvt, cleanEvt } from '@vue-cesium/utils/private/event'\nimport { isKeyCode } from '@vue-cesium/utils/private/key-composition'\nimport throttle from '@vue-cesium/utils/private/throttle'\n\nfunction showRipple(evt, el, ctx, forceCenter) {\n ctx.modifiers.stop === true && stop(evt)\n\n const color = ctx.modifiers.color\n let center = ctx.modifiers.center\n center = center === true || forceCenter === true\n\n const node = document.createElement('span'),\n innerNode = document.createElement('span'),\n pos = position(evt),\n { left, top, width, height } = el.getBoundingClientRect(),\n diameter = Math.sqrt(width * width + height * height),\n radius = diameter / 2,\n centerX = `${(width - diameter) / 2}px`,\n x = center ? centerX : `${pos.left - left - radius}px`,\n centerY = `${(height - diameter) / 2}px`,\n y = center ? centerY : `${pos.top - top - radius}px`\n\n innerNode.className = 'vc-ripple__inner'\n css(innerNode, {\n height: `${diameter}px`,\n width: `${diameter}px`,\n transform: `translate3d(${x},${y},0) scale3d(.2,.2,1)`,\n opacity: 0\n })\n\n node.className = `vc-ripple${color ? ' text-' + color : ''}`\n node.setAttribute('dir', 'ltr')\n node.appendChild(innerNode)\n el.appendChild(node)\n\n const abort = () => {\n node.remove()\n clearTimeout(timer)\n }\n ctx.abort.push(abort)\n\n let timer = setTimeout(() => {\n innerNode.classList.add('vc-ripple__inner--enter')\n innerNode.style.transform = `translate3d(${centerX},${centerY},0) scale3d(1,1,1)`\n innerNode.style.opacity = '0.2'\n\n timer = setTimeout(() => {\n innerNode.classList.remove('vc-ripple__inner--enter')\n innerNode.classList.add('vc-ripple__inner--leave')\n innerNode.style.opacity = '0'\n\n timer = setTimeout(() => {\n node.remove()\n ctx.abort.splice(ctx.abort.indexOf(abort), 1)\n }, 275)\n }, 250)\n }, 50)\n}\n\nfunction updateModifiers(ctx, { modifiers, value, arg, instance }) {\n // const cfg = Object.assign({}, instance.$q.config.ripple, modifiers, value)\n const cfg = Object.assign({}, modifiers, value)\n ctx.modifiers = {\n early: cfg.early === true,\n stop: cfg.stop === true,\n center: cfg.center === true,\n color: cfg.color || arg,\n keyCodes: [].concat(cfg.keyCodes || 13)\n }\n}\n\nexport default createDirective({\n name: 'ripple',\n\n beforeMount(el, binding) {\n const ctx = {\n enabled: binding.value !== false,\n modifiers: {} as any,\n abort: [],\n\n start(evt) {\n if (\n ctx.enabled === true &&\n evt.qSkipRipple !== true &&\n (ctx.modifiers.early === true ? ['mousedown', 'touchstart'].includes(evt.type) === true : evt.type === 'click')\n ) {\n showRipple(evt, el, ctx, evt.qKeyEvent === true)\n }\n },\n\n keystart: throttle(evt => {\n if (\n ctx.enabled === true &&\n evt.qSkipRipple !== true &&\n isKeyCode(evt, ctx.modifiers.keyCodes) === true &&\n evt.type === `key${ctx.modifiers.early === true ? 'down' : 'up'}`\n ) {\n showRipple(evt, el, ctx, true)\n }\n }, 300)\n }\n\n updateModifiers(ctx, binding)\n\n el.__vcripple = ctx\n\n addEvt(ctx, 'main', [\n [el, 'mousedown', 'start', 'passive'],\n [el, 'touchstart', 'start', 'passive'],\n [el, 'click', 'start', 'passive'],\n [el, 'keydown', 'keystart', 'passive'],\n [el, 'keyup', 'keystart', 'passive']\n ])\n },\n\n updated(el, binding) {\n if (binding.oldValue !== binding.value) {\n const ctx = el.__vcripple\n ctx.enabled = binding.value !== false\n\n if (ctx.enabled === true && Object(binding.value) === binding.value) {\n updateModifiers(ctx, binding)\n }\n }\n },\n\n beforeUnmount(el) {\n const ctx = el.__vcripple\n ctx.abort.forEach(fn => {\n fn()\n })\n cleanEvt(ctx, 'main')\n delete el._vcripple\n }\n})\n"],"names":[],"mappings":"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"}