UNPKG

vue-cesium

Version:
1 lines 7.6 kB
{"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 '@vue-cesium/utils/private/vm'\nimport { AnyFunction } from '@vue-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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"}