casc-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 7.76 kB
Source Map (JSON)
{"version":3,"file":"use-model-toggle.mjs","sources":["../../../../../packages/composables/private/use-model-toggle.ts"],"sourcesContent":["import { watch, nextTick, onMounted, getCurrentInstance, Ref, ComputedRef } from 'vue'\n\nimport { vmHasRouter, vmHasListener } from 'casc-cesium-utils/private/vm'\nimport { AnyFunction } from 'casc-cesium-utils/types'\n\nexport const useModelToggleProps = {\n modelValue: {\n type: Boolean,\n default: null\n }\n}\n\nexport const useModelToggleEmits = ['update:modelValue', 'before-show', 'show', 'before-hide', 'hide']\n\n// handleShow/handleHide -> removeTick(), self (& emit show), prepareTick()\n\nexport default function ({\n showing,\n canShow = undefined, // optional\n hideOnRouteChange = undefined, // optional\n handleShow = undefined, // optional\n handleHide = undefined, // optional\n processOnMount = undefined // optional\n}: {\n showing?: Ref<boolean>\n canShow?: AnyFunction<boolean>\n hideOnRouteChange?: ComputedRef<boolean>\n handleShow?: AnyFunction<void>\n handleHide?: AnyFunction<void>\n processOnMount?: boolean\n}) {\n const vm = getCurrentInstance()!\n const { props, emit, proxy } = vm\n\n let payload\n\n function toggle(evt) {\n if (showing?.value === true) {\n hide(evt)\n } else {\n show(evt)\n }\n }\n\n function show(evt) {\n if (props.disable === true || (canShow !== void 0 && canShow(evt) !== true)) {\n return\n }\n\n const listener = vmHasListener(vm, 'onUpdate:modelValue') === true\n\n if (listener === true) {\n emit('update:modelValue', true)\n payload = evt\n nextTick(() => {\n if (payload === evt) {\n payload = void 0\n }\n })\n }\n\n if (props.modelValue === null || listener === false) {\n processShow(evt)\n }\n }\n\n function processShow(evt) {\n if (showing?.value === true) {\n return\n }\n\n showing && (showing.value = true)\n\n emit('before-show', evt)\n\n if (evt && evt.cancel === true) {\n return\n }\n\n if (handleShow !== void 0) {\n handleShow(evt)\n } else {\n emit('show', evt)\n }\n }\n\n function hide(evt?) {\n if (props.disable === true) {\n return\n }\n\n const listener = vmHasListener(vm, 'onUpdate:modelValue') === true\n\n if (listener === true) {\n emit('update:modelValue', false)\n payload = evt\n nextTick(() => {\n if (payload === evt) {\n payload = void 0\n }\n })\n }\n\n if (props.modelValue === null || listener === false) {\n processHide(evt)\n }\n }\n\n function processHide(evt) {\n if (showing?.value === false) {\n return\n }\n\n showing && (showing.value = false)\n\n emit('before-hide', evt)\n\n if (handleHide !== void 0) {\n handleHide(evt)\n } else {\n emit('hide', evt)\n }\n }\n\n function processModelChange(val) {\n if (props.disable === true && val === true) {\n if (vmHasListener(vm, 'onUpdate:modelValue') === true) {\n emit('update:modelValue', false)\n }\n } else if ((val === true) !== showing?.value) {\n const fn = val === true ? processShow : processHide\n fn(payload)\n }\n }\n\n watch(() => props.modelValue, processModelChange)\n\n if (hideOnRouteChange !== void 0 && vmHasRouter(vm) === true) {\n watch(\n () => (proxy as any).$route,\n () => {\n if (hideOnRouteChange.value === true && showing?.value === true) {\n hide()\n }\n }\n )\n }\n\n processOnMount === true &&\n onMounted(() => {\n processModelChange(props.modelValue)\n })\n\n // expose public methods\n const publicMethods = { show, hide, toggle }\n Object.assign(proxy, publicMethods)\n\n return publicMethods\n}\n"],"names":[],"mappings":"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"}