yuyeon 0.3.5 → 0.3.6-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/style.css +1 -1
- package/dist/yuyeon.js +2394 -2332
- package/dist/yuyeon.umd.cjs +3 -3
- package/lib/abstract/items.js.map +1 -1
- package/lib/components/alert/YAlert.js +2 -2
- package/lib/components/alert/YAlert.js.map +1 -1
- package/lib/components/badge/YBadge.js.map +1 -1
- package/lib/components/badge/YBadge.scss +87 -87
- package/lib/components/card/YCard.js.map +1 -1
- package/lib/components/checkbox/YCheckbox.js.map +1 -1
- package/lib/components/date-picker/YDateCalendar.js.map +1 -1
- package/lib/components/date-picker/YDatePicker.js.map +1 -1
- package/lib/components/date-picker/YDatePickerControl.js.map +1 -1
- package/lib/components/date-picker/YMonthPicker.js.map +1 -1
- package/lib/components/date-picker/YYearPicker.js.map +1 -1
- package/lib/components/dialog/YDialog.js.map +1 -1
- package/lib/components/divider/YDivider.js.map +1 -1
- package/lib/components/draggable/YDraggable.js.map +1 -1
- package/lib/components/draggable/index.js.map +1 -1
- package/lib/components/dropdown/YDropdown.js.map +1 -1
- package/lib/components/field-input/YFieldInput.js.map +1 -1
- package/lib/components/form/YForm.js.map +1 -1
- package/lib/components/hover/YHover.js.map +1 -1
- package/lib/components/icon/YIcon.js.map +1 -1
- package/lib/components/icons/YIconCheckbox.js.map +1 -1
- package/lib/components/icons/YIconCheckbox.scss +4 -5
- package/lib/components/icons/YIconClear.js.map +1 -1
- package/lib/components/icons/YIconDropdown.js.map +1 -1
- package/lib/components/icons/YIconExpand.js.map +1 -1
- package/lib/components/icons/YIconPageControl.js.map +1 -1
- package/lib/components/icons/YIconSort.js.map +1 -1
- package/lib/components/img/YImg.js +4 -4
- package/lib/components/img/YImg.js.map +1 -1
- package/lib/components/img/index.js.map +1 -1
- package/lib/components/index.js.map +1 -1
- package/lib/components/input/YInput.js.map +1 -1
- package/lib/components/layer/YLayer.js.map +1 -1
- package/lib/components/layer/base.js +2 -2
- package/lib/components/layer/base.js.map +1 -1
- package/lib/components/layer/content.js.map +1 -1
- package/lib/components/list/YListItem.js.map +1 -1
- package/lib/components/menu/YMenu.js +2 -2
- package/lib/components/menu/YMenu.js.map +1 -1
- package/lib/components/panel/YDividePanel.js.map +1 -1
- package/lib/components/panel/YDividePanel.scss +44 -44
- package/lib/components/plate/YPlate.js +2 -2
- package/lib/components/plate/YPlate.js.map +1 -1
- package/lib/components/radio/YRadio.js.map +1 -1
- package/lib/components/radio/YRadioIcon.js.map +1 -1
- package/lib/components/radio/index.js.map +1 -1
- package/lib/components/select/YSelect.js.map +1 -1
- package/lib/components/slider/YSlider.js.map +1 -1
- package/lib/components/slider/index.js.map +1 -1
- package/lib/components/switch/YSwitch.js.map +1 -1
- package/lib/components/tab/YTab.js.map +1 -1
- package/lib/components/tab/YTabs.js.map +1 -1
- package/lib/components/table/YDataTable.js.map +1 -1
- package/lib/components/table/YDataTableBody.js.map +1 -1
- package/lib/components/table/YDataTableControl.js.map +1 -1
- package/lib/components/table/YDataTableControl.scss +17 -17
- package/lib/components/table/YDataTableLayerRows.js.map +1 -1
- package/lib/components/table/YDataTableServer.js.map +1 -1
- package/lib/components/table/YTable.js.map +1 -1
- package/lib/components/table/composables/expand.js.map +1 -1
- package/lib/components/table/composables/header.js.map +1 -1
- package/lib/components/table/composables/items.js.map +1 -1
- package/lib/components/table/composables/measure.js.map +1 -1
- package/lib/components/table/composables/provides.js.map +1 -1
- package/lib/components/table/types/item.js.map +1 -1
- package/lib/components/text-ellipsis/YTextEllipsis.js.map +1 -1
- package/lib/components/text-highlighter/YTextHighlighter.js.map +1 -1
- package/lib/components/text-interpolation/YTi.js.map +1 -1
- package/lib/components/tooltip/YTooltip.js +2 -2
- package/lib/components/tooltip/YTooltip.js.map +1 -1
- package/lib/components/tree-view/YTreeView.js +23 -28
- package/lib/components/tree-view/YTreeView.js.map +1 -1
- package/lib/components/tree-view/YTreeViewNode.js +58 -20
- package/lib/components/tree-view/YTreeViewNode.js.map +1 -1
- package/lib/components/tree-view/tree-view.js +61 -8
- package/lib/components/tree-view/tree-view.js.map +1 -1
- package/lib/components/tree-view/types.js.map +1 -1
- package/lib/composables/choice.js.map +1 -1
- package/lib/composables/coordinate/index.js.map +1 -1
- package/lib/composables/coordinate/levitation.js +2 -2
- package/lib/composables/coordinate/levitation.js.map +1 -1
- package/lib/composables/coordinate/types.js.map +1 -1
- package/lib/composables/defaults/types.js.map +1 -1
- package/lib/composables/form.js.map +1 -1
- package/lib/composables/style-color.js.map +1 -1
- package/lib/composables/theme/index.js.map +1 -1
- package/lib/composables/theme/types.js.map +1 -1
- package/lib/composables/timing.js.map +1 -1
- package/lib/composables/validation.js.map +1 -1
- package/lib/directives/index.js.map +1 -1
- package/lib/directives/plate-wave/index.js +2 -2
- package/lib/directives/plate-wave/index.js.map +1 -1
- package/lib/directives/plate-wave/plate-wave.scss +44 -44
- package/lib/directives/theme-class/index.js.map +1 -1
- package/lib/etc/index.js.map +1 -1
- package/lib/i18n/built-in.js.map +1 -1
- package/lib/i18n/config.js.map +1 -1
- package/lib/i18n/types.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/locales/en.js.map +1 -1
- package/lib/locales/ko.js.map +1 -1
- package/lib/styles/settings/_provided.scss +33 -33
- package/lib/styles/theme/index.scss +4 -4
- package/lib/types/index.js.map +1 -1
- package/lib/util/color/apca.js +30 -30
- package/lib/util/color/apca.js.map +1 -1
- package/lib/util/color/const.js.map +1 -1
- package/lib/util/color/hct/cam16.js +95 -95
- package/lib/util/color/hct/cam16.js.map +1 -1
- package/lib/util/color/hct/hct-solver.js +107 -107
- package/lib/util/color/hct/hct-solver.js.map +1 -1
- package/lib/util/color/hct/hct.js +71 -71
- package/lib/util/color/hct/hct.js.map +1 -1
- package/lib/util/color/index.js +12 -12
- package/lib/util/color/index.js.map +1 -1
- package/lib/util/common.js.map +1 -1
- package/lib/util/component/component.js.map +1 -1
- package/lib/util/component/inject-self.js.map +1 -1
- package/lib/util/component/props.js.map +1 -1
- package/lib/util/component/types.js.map +1 -1
- package/lib/util/date/built-in.js.map +1 -1
- package/lib/util/date/index.js.map +1 -1
- package/lib/util/date/types.js.map +1 -1
- package/lib/util/debounce.js.map +1 -1
- package/lib/util/dom.js.map +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/string.js.map +1 -1
- package/lib/util/ui.js.map +1 -1
- package/package.json +132 -132
- package/types/components/tree-view/YTreeView.d.ts +18 -26
- package/types/components/tree-view/YTreeViewNode.d.ts +71 -1
- package/types/components/tree-view/tree-view.d.ts +17 -1
- package/types/declares.d.ts +1 -1
- package/types/globals.d.ts +19 -19
- package/types/shims.d.ts +64 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YImg.js","names":["computed","getCurrentInstance","nextTick","onBeforeMount","onBeforeUnmount","ref","shallowRef","vShow","watch","withDirectives","createVNode","_createVNode","mergeProps","_mergeProps","useRender","pressDimensionPropsOptions","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","defineComponent","propsFactory","Environments","pressYImgPropsOptions","src","String","crossorigin","referrerpolicy","transition","objectFit","type","default","eager","Boolean","YImg","name","props","slots","Object","emits","setup","_ref","attrs","emit","vm","image$","status","imgSrc","naturalWidth","naturalHeight","polyTransitionBindProps","srcMeta","imgClasses","getImgSrc","imgEl","value","currentSrc","inspectImage","complete","endsWith","startsWith","initIntersect","_Placeholder","placeholderProps","placeholder","onLoad","isUnmounted","onError","event","_Image","imageProps","Img","draggable","alt","requestTimer","requestInspectImage","timeout","arguments","length","undefined","_request","clearTimeout","window","setTimeout","isIntersection","canUseIntersectionObserver"],"sources":["../../../src/components/img/YImg.tsx"],"sourcesContent":["import {\n type CSSProperties,\n computed,\n getCurrentInstance,\n type ImgHTMLAttributes,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n type PropType,\n ref,\n type SlotsType,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from \"vue\";\n\nimport { useRender } from \"@/composables/component\";\nimport { pressDimensionPropsOptions } from \"@/composables/dimension\";\nimport {\n PolyTransition,\n pressPolyTransitionPropsOptions,\n usePolyTransition,\n} from \"@/composables/transition\";\nimport { defineComponent, propsFactory } from \"@/util/component\";\nimport Environments from \"@/util/environments\";\n\nimport \"./YImg.scss\";\n\nexport const pressYImgPropsOptions = propsFactory(\n {\n src: String as PropType<string>,\n crossorigin: String as PropType<ImgHTMLAttributes[\"crossorigin\"]>,\n referrerpolicy: String as PropType<ImgHTMLAttributes[\"referrerpolicy\"]>,\n ...pressPolyTransitionPropsOptions({\n transition: \"fade\",\n }),\n objectFit: {\n type: String as PropType<\n Extract<\n CSSProperties[\"objectFit\"],\n \"contain\" | \"cover\" | \"fill\" | \"scale-down\"\n >\n >,\n default: \"contain\",\n },\n eager: Boolean,\n ...pressDimensionPropsOptions(),\n },\n \"YImg\",\n);\n\nexport type YImgStatus = \"idle\" | \"loading\" | \"loaded\" | \"error\";\n\nexport const YImg = defineComponent({\n name: \"YImg\",\n props: {\n ...pressYImgPropsOptions(),\n },\n slots: Object as SlotsType<{\n placeholder: any;\n }>,\n emits: [\"load\", \"loaded\", \"error\"],\n setup(props, { slots, attrs, emit }) {\n const vm = getCurrentInstance()!;\n const image$ = ref<HTMLImageElement>();\n const status = shallowRef<YImgStatus>(props.eager ? \"loading\" : \"idle\");\n const imgSrc = shallowRef(\"\");\n const naturalWidth = shallowRef<number>();\n const naturalHeight = shallowRef<number>();\n const { polyTransitionBindProps } = usePolyTransition(props);\n\n const srcMeta = computed(() => {\n const src = props.src;\n\n return {\n src,\n };\n });\n\n const imgClasses = computed(() => {\n return {\n \"y-img--cover\": props.objectFit === \"cover\",\n \"y-img--contain\": props.objectFit === \"contain\",\n \"y-img--fill\": props.objectFit === \"fill\",\n \"y-img--scale-down\": props.objectFit === \"scale-down\",\n };\n });\n\n function getImgSrc() {\n const imgEl = image$.value;\n if (imgEl) {\n imgSrc.value = imgEl.currentSrc || imgEl.src;\n }\n }\n\n function inspectImage(imgEl: HTMLImageElement) {\n if (imgEl.naturalWidth || imgEl.naturalHeight) {\n naturalWidth.value = imgEl.naturalWidth;\n naturalHeight.value = imgEl.naturalHeight;\n } else if (!imgEl.complete && status.value === \"loading\") {\n return false;\n } else if (\n imgEl.currentSrc.endsWith(\".svg\") ||\n imgEl.currentSrc.startsWith(\"data:image/svg+xml\")\n ) {\n naturalWidth.value = 1;\n naturalHeight.value = 1;\n }\n\n return true;\n }\n\n watch(\n () => props.src,\n () => {\n initIntersect();\n },\n );\n\n const _Placeholder = (placeholderProps: { status: string }) => {\n if (!slots.placeholder) return null;\n return (\n <PolyTransition {...polyTransitionBindProps.value} appear>\n {(placeholderProps.status === \"idle\" || placeholderProps.status === \"error\") && (\n <div class=\"y-img__placeholder\">\n {slots.placeholder?.(placeholderProps)}\n </div>\n )}\n </PolyTransition>\n );\n };\n\n function onLoad() {\n if (vm.isUnmounted) return;\n status.value = \"loaded\";\n }\n\n function onError(event?: Event) {\n if (vm.isUnmounted) return;\n status.value = \"error\";\n emit(\"error\", event);\n }\n\n const _Image = (imageProps: { status: string }) => {\n const Img = (\n <img\n ref={image$}\n src={srcMeta.value.src}\n crossorigin={props.crossorigin}\n referrerpolicy={props.referrerpolicy}\n draggable={(attrs as ImgHTMLAttributes).draggable}\n alt={(attrs as ImgHTMLAttributes).alt}\n class={[\"y-img__img\", imgClasses.value]}\n onLoad={onLoad}\n onError={onError}\n />\n );\n\n return (\n <PolyTransition {...polyTransitionBindProps.value} appear>\n {withDirectives(Img, [[vShow, imageProps.status === \"loaded\"]])}\n </PolyTransition>\n );\n };\n\n let requestTimer = -1;\n\n /**\n *\n * @param imgEl\n * @param timeout null: once\n */\n function requestInspectImage(\n imgEl: HTMLImageElement,\n timeout: number | null = 100,\n ) {\n const _request = () => {\n clearTimeout(requestTimer);\n if (vm.isUnmounted) return;\n if (!inspectImage(imgEl) && timeout != null) {\n requestTimer = window.setTimeout(_request, timeout);\n }\n };\n\n _request();\n }\n\n function initIntersect(isIntersection?: boolean) {\n if (props.eager && isIntersection) return;\n if (\n Environments.canUseIntersectionObserver &&\n !isIntersection &&\n !props.eager\n )\n return;\n\n status.value = \"loading\";\n\n if (!srcMeta.value.src) return;\n nextTick(() => {\n emit(\"load\", image$.value?.currentSrc || srcMeta.value.src);\n setTimeout(() => {\n if (vm.isUnmounted) return;\n if (image$.value?.complete) {\n if (!image$.value?.naturalWidth) {\n onError();\n }\n if (status.value === \"error\") return;\n requestInspectImage(image$.value, null);\n if (status.value === \"loading\") onLoad();\n } else if (image$.value) {\n requestInspectImage(image$.value);\n getImgSrc();\n }\n });\n });\n }\n\n onBeforeMount(() => {\n initIntersect();\n });\n\n onBeforeUnmount(() => {\n clearTimeout(requestTimer);\n });\n\n useRender(() => {\n return (\n <div class={[\"y-img\"]}>\n <_Placeholder status={status.value} />\n <_Image status={status.value} />\n </div>\n );\n });\n\n return {\n status,\n image$: image$\n }\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YImg.js","names":["computed","getCurrentInstance","nextTick","onBeforeMount","onBeforeUnmount","ref","shallowRef","vShow","watch","withDirectives","createVNode","_createVNode","mergeProps","_mergeProps","useRender","pressDimensionPropsOptions","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","defineComponent","propsFactory","Environments","pressYImgPropsOptions","src","String","crossorigin","referrerpolicy","transition","objectFit","type","default","eager","Boolean","YImg","name","props","slots","Object","emits","setup","_ref","attrs","emit","vm","image$","status","imgSrc","naturalWidth","naturalHeight","polyTransitionBindProps","srcMeta","imgClasses","getImgSrc","imgEl","value","currentSrc","inspectImage","complete","endsWith","startsWith","initIntersect","_Placeholder","placeholderProps","placeholder","onLoad","isUnmounted","onError","event","_Image","imageProps","Img","draggable","alt","requestTimer","requestInspectImage","timeout","arguments","length","undefined","_request","clearTimeout","window","setTimeout","isIntersection","canUseIntersectionObserver"],"sources":["../../../src/components/img/YImg.tsx"],"sourcesContent":["import {\r\n type CSSProperties,\r\n computed,\r\n getCurrentInstance,\r\n type ImgHTMLAttributes,\r\n nextTick,\r\n onBeforeMount,\r\n onBeforeUnmount,\r\n type PropType,\r\n ref,\r\n type SlotsType,\r\n shallowRef,\r\n vShow,\r\n watch,\r\n withDirectives,\r\n} from \"vue\";\r\n\r\nimport { useRender } from \"@/composables/component\";\r\nimport { pressDimensionPropsOptions } from \"@/composables/dimension\";\r\nimport {\r\n PolyTransition,\r\n pressPolyTransitionPropsOptions,\r\n usePolyTransition,\r\n} from \"@/composables/transition\";\r\nimport { defineComponent, propsFactory } from \"@/util/component\";\r\nimport Environments from \"@/util/environments\";\r\n\r\nimport \"./YImg.scss\";\r\n\r\nexport const pressYImgPropsOptions = propsFactory(\r\n {\r\n src: String as PropType<string>,\r\n crossorigin: String as PropType<ImgHTMLAttributes[\"crossorigin\"]>,\r\n referrerpolicy: String as PropType<ImgHTMLAttributes[\"referrerpolicy\"]>,\r\n ...pressPolyTransitionPropsOptions({\r\n transition: \"fade\",\r\n }),\r\n objectFit: {\r\n type: String as PropType<\r\n Extract<\r\n CSSProperties[\"objectFit\"],\r\n \"contain\" | \"cover\" | \"fill\" | \"scale-down\"\r\n >\r\n >,\r\n default: \"contain\",\r\n },\r\n eager: Boolean,\r\n ...pressDimensionPropsOptions(),\r\n },\r\n \"YImg\",\r\n);\r\n\r\nexport type YImgStatus = \"idle\" | \"loading\" | \"loaded\" | \"error\";\r\n\r\nexport const YImg = defineComponent({\r\n name: \"YImg\",\r\n props: {\r\n ...pressYImgPropsOptions(),\r\n },\r\n slots: Object as SlotsType<{\r\n placeholder: any;\r\n }>,\r\n emits: [\"load\", \"loaded\", \"error\"],\r\n setup(props, { slots, attrs, emit }) {\r\n const vm = getCurrentInstance()!;\r\n const image$ = ref<HTMLImageElement>();\r\n const status = shallowRef<YImgStatus>(props.eager ? \"loading\" : \"idle\");\r\n const imgSrc = shallowRef(\"\");\r\n const naturalWidth = shallowRef<number>();\r\n const naturalHeight = shallowRef<number>();\r\n const { polyTransitionBindProps } = usePolyTransition(props);\r\n\r\n const srcMeta = computed(() => {\r\n const src = props.src;\r\n\r\n return {\r\n src,\r\n };\r\n });\r\n\r\n const imgClasses = computed(() => {\r\n return {\r\n \"y-img--cover\": props.objectFit === \"cover\",\r\n \"y-img--contain\": props.objectFit === \"contain\",\r\n \"y-img--fill\": props.objectFit === \"fill\",\r\n \"y-img--scale-down\": props.objectFit === \"scale-down\",\r\n };\r\n });\r\n\r\n function getImgSrc() {\r\n const imgEl = image$.value;\r\n if (imgEl) {\r\n imgSrc.value = imgEl.currentSrc || imgEl.src;\r\n }\r\n }\r\n\r\n function inspectImage(imgEl: HTMLImageElement) {\r\n if (imgEl.naturalWidth || imgEl.naturalHeight) {\r\n naturalWidth.value = imgEl.naturalWidth;\r\n naturalHeight.value = imgEl.naturalHeight;\r\n } else if (!imgEl.complete && status.value === \"loading\") {\r\n return false;\r\n } else if (\r\n imgEl.currentSrc.endsWith(\".svg\") ||\r\n imgEl.currentSrc.startsWith(\"data:image/svg+xml\")\r\n ) {\r\n naturalWidth.value = 1;\r\n naturalHeight.value = 1;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n watch(\r\n () => props.src,\r\n () => {\r\n initIntersect();\r\n },\r\n );\r\n\r\n const _Placeholder = (placeholderProps: { status: string }) => {\r\n if (!slots.placeholder) return null;\r\n return (\r\n <PolyTransition {...polyTransitionBindProps.value} appear>\r\n {(placeholderProps.status === \"idle\" || placeholderProps.status === \"error\") && (\r\n <div class=\"y-img__placeholder\">\r\n {slots.placeholder?.(placeholderProps)}\r\n </div>\r\n )}\r\n </PolyTransition>\r\n );\r\n };\r\n\r\n function onLoad() {\r\n if (vm.isUnmounted) return;\r\n status.value = \"loaded\";\r\n }\r\n\r\n function onError(event?: Event) {\r\n if (vm.isUnmounted) return;\r\n status.value = \"error\";\r\n emit(\"error\", event);\r\n }\r\n\r\n const _Image = (imageProps: { status: string }) => {\r\n const Img = (\r\n <img\r\n ref={image$}\r\n src={srcMeta.value.src}\r\n crossorigin={props.crossorigin}\r\n referrerpolicy={props.referrerpolicy}\r\n draggable={(attrs as ImgHTMLAttributes).draggable}\r\n alt={(attrs as ImgHTMLAttributes).alt}\r\n class={[\"y-img__img\", imgClasses.value]}\r\n onLoad={onLoad}\r\n onError={onError}\r\n />\r\n );\r\n\r\n return (\r\n <PolyTransition {...polyTransitionBindProps.value} appear>\r\n {withDirectives(Img, [[vShow, imageProps.status === \"loaded\"]])}\r\n </PolyTransition>\r\n );\r\n };\r\n\r\n let requestTimer = -1;\r\n\r\n /**\r\n *\r\n * @param imgEl\r\n * @param timeout null: once\r\n */\r\n function requestInspectImage(\r\n imgEl: HTMLImageElement,\r\n timeout: number | null = 100,\r\n ) {\r\n const _request = () => {\r\n clearTimeout(requestTimer);\r\n if (vm.isUnmounted) return;\r\n if (!inspectImage(imgEl) && timeout != null) {\r\n requestTimer = window.setTimeout(_request, timeout);\r\n }\r\n };\r\n\r\n _request();\r\n }\r\n\r\n function initIntersect(isIntersection?: boolean) {\r\n if (props.eager && isIntersection) return;\r\n if (\r\n Environments.canUseIntersectionObserver &&\r\n !isIntersection &&\r\n !props.eager\r\n )\r\n return;\r\n\r\n status.value = \"loading\";\r\n\r\n if (!srcMeta.value.src) return;\r\n nextTick(() => {\r\n emit(\"load\", image$.value?.currentSrc || srcMeta.value.src);\r\n setTimeout(() => {\r\n if (vm.isUnmounted) return;\r\n if (image$.value?.complete) {\r\n if (!image$.value?.naturalWidth) {\r\n onError();\r\n }\r\n if (status.value === \"error\") return;\r\n requestInspectImage(image$.value, null);\r\n if (status.value === \"loading\") onLoad();\r\n } else if (image$.value) {\r\n requestInspectImage(image$.value);\r\n getImgSrc();\r\n }\r\n });\r\n });\r\n }\r\n\r\n onBeforeMount(() => {\r\n initIntersect();\r\n });\r\n\r\n onBeforeUnmount(() => {\r\n clearTimeout(requestTimer);\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <div class={[\"y-img\"]}>\r\n <_Placeholder status={status.value} />\r\n <_Image status={status.value} />\r\n </div>\r\n );\r\n });\r\n\r\n return {\r\n status,\r\n image$: image$\r\n }\r\n },\r\n});\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/img/index.ts"],"sourcesContent":["export * from \"./YImg\";\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/img/index.ts"],"sourcesContent":["export * from \"./YImg\";\r\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from \"./app\";\nexport * from \"./button\";\nexport * from \"./input\";\nexport * from \"./field-input\";\nexport * from \"./textarea\";\nexport * from \"./form\";\nexport * from \"./progress-bar\";\nexport * from \"./progress-ring\";\nexport * from \"./card\";\nexport * from \"./chip\";\nexport * from \"./switch\";\nexport * from \"./layer\";\nexport * from \"./dialog\";\nexport * from \"./snackbar\";\nexport * from \"./tooltip\";\nexport * from \"./transitions\";\nexport * from \"./panel\";\nexport * from \"./tree-view\";\nexport * from \"./list\";\nexport * from \"./icons\";\nexport * from \"./table\";\nexport * from \"./menu\";\nexport * from \"./checkbox\";\nexport * from \"./pagination\";\nexport * from \"./loading\";\nexport * from \"./dropdown\";\nexport * from \"./select\";\nexport * from \"./tab\";\nexport * from \"./alert\";\nexport * from \"./divider\";\nexport * from \"./date-picker\";\nexport * from \"./icon\";\nexport * from \"./badge\";\nexport * from \"./text-ellipsis\";\nexport * from \"./ip-field\";\nexport * from \"./hover\";\nexport * from \"./text-interpolation\";\nexport * from \"./text-highlighter\";\nexport * from \"./img\";\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from \"./app\";\r\nexport * from \"./button\";\r\nexport * from \"./input\";\r\nexport * from \"./field-input\";\r\nexport * from \"./textarea\";\r\nexport * from \"./form\";\r\nexport * from \"./progress-bar\";\r\nexport * from \"./progress-ring\";\r\nexport * from \"./card\";\r\nexport * from \"./chip\";\r\nexport * from \"./switch\";\r\nexport * from \"./layer\";\r\nexport * from \"./dialog\";\r\nexport * from \"./snackbar\";\r\nexport * from \"./tooltip\";\r\nexport * from \"./transitions\";\r\nexport * from \"./panel\";\r\nexport * from \"./tree-view\";\r\nexport * from \"./list\";\r\nexport * from \"./icons\";\r\nexport * from \"./table\";\r\nexport * from \"./menu\";\r\nexport * from \"./checkbox\";\r\nexport * from \"./pagination\";\r\nexport * from \"./loading\";\r\nexport * from \"./dropdown\";\r\nexport * from \"./select\";\r\nexport * from \"./tab\";\r\nexport * from \"./alert\";\r\nexport * from \"./divider\";\r\nexport * from \"./date-picker\";\r\nexport * from \"./icon\";\r\nexport * from \"./badge\";\r\nexport * from \"./text-ellipsis\";\r\nexport * from \"./ip-field\";\r\nexport * from \"./hover\";\r\nexport * from \"./text-interpolation\";\r\nexport * from \"./text-highlighter\";\r\nexport * from \"./img\";\r\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YInput.js","names":["computed","ref","shallowRef","watch","Fragment","_Fragment","createTextVNode","_createTextVNode","createVNode","_createVNode","useRender","pressFocusPropsOptions","useFocus","pressThemePropsOptions","useLocalTheme","pressValidationPropsOptions","useValidation","defineComponent","getUid","propsFactory","toStyleSizeValue","NAME","pressYInputPropsOptions","name","String","width","type","Number","height","displayTag","default","label","modelValue","Array","Object","autoSelect","Boolean","floating","floated","placeholder","required","loading","variation","outlined","filled","ceramic","extended","YInput","props","emits","slots","setup","_ref","attrs","expose","emit","UID","themeClasses","focused","isFocused","focusedClasses","whenFocus","whenBlur","isDisabled","isReadonly","isLoading","invokeValidators","resetError","isError","isSuccess","errors","errorResult","stack$","display$","inValue","lazyValue","hasMouseDown","variations","split","map","value","trim","isFloatedLabel","classes","includes","displayStyles","neo","readonly","onClick","event","onMousedown","e","onMouseup","onKeydown","onFocus","onBlur","onClickLeading","onChange","createLabel","show","undefined","validate","prepend","leading","error","attrId","toString","trailing","helperText","append"],"sources":["../../../src/components/input/YInput.tsx"],"sourcesContent":["import {\n computed,\n type PropType,\n ref,\n shallowRef,\n type SlotsType,\n type VNode,\n watch,\n} from 'vue';\n\nimport { useRender } from '@/composables/component';\nimport { pressFocusPropsOptions, useFocus } from '@/composables/focus';\nimport { pressThemePropsOptions, useLocalTheme } from '@/composables/theme';\nimport {\n pressValidationPropsOptions,\n useValidation,\n} from '@/composables/validation';\nimport { defineComponent, getUid, propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport './YInput.scss';\n\nconst NAME = 'y-input';\n\nexport const pressYInputPropsOptions = propsFactory(\n {\n name: String,\n width: {\n type: [String, Number] as PropType<string | number>,\n },\n height: [Number, String],\n displayTag: {\n type: String as PropType<string>,\n default: 'div',\n },\n label: String as PropType<string>,\n modelValue: { type: [String, Number, Array, Object] as PropType<any> },\n autoSelect: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n floating: { type: Boolean as PropType<boolean>, default: false },\n floated: { type: Boolean as PropType<boolean>, default: () => false },\n placeholder: String as PropType<string>,\n required: Boolean as PropType<boolean>,\n loading: Boolean as PropType<boolean>,\n // variations\n variation: String as PropType<string>,\n outlined: Boolean as PropType<boolean>,\n filled: Boolean as PropType<boolean>,\n ceramic: Boolean as PropType<boolean>,\n // validate\n ...pressValidationPropsOptions(),\n ...pressFocusPropsOptions(),\n extended: Object as PropType<any>,\n },\n 'YInput',\n);\n\nexport interface YInputDefaultSlotProps {\n value: any;\n loading: boolean;\n attrId: string;\n focused: boolean;\n}\n\nexport const YInput = defineComponent({\n name: 'YInput',\n props: {\n ...pressThemePropsOptions(),\n ...pressYInputPropsOptions(),\n },\n emits: [\n 'error',\n 'click',\n 'mousedown',\n 'mouseup',\n 'focus',\n 'blur',\n 'mousedown:display',\n 'mouseup:display',\n 'keydown:display',\n 'click:leading',\n 'update:modelValue',\n 'update:focused',\n ],\n slots: Object as SlotsType<{\n prepend: any;\n append: any;\n label: any;\n default: YInputDefaultSlotProps;\n leading: { error: boolean };\n trailing: any;\n 'leading-out': any;\n 'trailing-out': any;\n 'helper-text': {\n error: boolean;\n errorResult: string | undefined;\n errors: any[];\n };\n }>,\n setup(props, { slots, attrs, expose, emit }) {\n const UID = getUid();\n const { themeClasses } = useLocalTheme(props);\n const {\n focused: isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n } = useFocus(props, 'y-input');\n\n const {\n isDisabled,\n isReadonly,\n isLoading,\n invokeValidators,\n resetError,\n isError,\n isSuccess,\n errors,\n errorResult,\n } = useValidation(props, NAME, UID);\n\n const stack$ = ref();\n const display$ = ref();\n\n const inValue = ref();\n const lazyValue = ref();\n const hasMouseDown = shallowRef(false);\n\n const variations = computed(() => {\n if (props.variation) {\n return props.variation.split(',').map((value) => {\n return value.trim();\n });\n }\n return [];\n });\n\n const isFloatedLabel = computed(() => {\n return (\n props.floated ||\n !!props.placeholder ||\n (!props.placeholder && isFocused.value) ||\n !!inValue.value\n );\n });\n\n const classes = computed(() => {\n return {\n // Style\n [themeClasses.value as string]: true,\n 'y-input--ceramic': !!props.ceramic,\n 'y-input--outlined':\n !props.ceramic &&\n (variations.value.includes('outlined') || !!props.outlined),\n 'y-input--filled':\n variations.value.includes('filled') || !!props.filled,\n // Value\n 'y-input--loading': isLoading.value,\n 'y-input--has-value': !!inValue.value,\n 'y-input--focused': isFocused.value,\n 'y-input--readonly': isReadonly.value,\n 'y-input--disabled': isDisabled.value,\n 'y-input--error': isError.value,\n 'y-input--success': isSuccess.value,\n };\n });\n\n const displayStyles = computed<Record<string, any>>(() => {\n return {\n width: toStyleSizeValue(props.width),\n height: toStyleSizeValue(props.height),\n };\n });\n\n watch(\n () => props.modelValue,\n (neo) => {\n inValue.value = neo;\n },\n );\n\n watch(\n () => props.readonly,\n (neo) => {\n if (!neo) {\n inValue.value = props.modelValue;\n }\n },\n );\n\n watch(inValue, (neo) => {\n if (!isReadonly.value && !isLoading.value) {\n emit('update:modelValue', neo);\n }\n });\n\n watch(isError, (neo) => {\n emit('error', neo, errors.value);\n });\n\n watch(\n () => props.focused,\n (neo) => {\n if (!neo) {\n invokeValidators();\n }\n },\n );\n\n function onClick(event: MouseEvent) {\n emit('click', event);\n }\n\n function onMousedown(e: Event) {\n hasMouseDown.value = true;\n emit('mousedown:display', e);\n }\n\n function onMouseup(e: Event) {\n hasMouseDown.value = false;\n emit('mouseup:display', e);\n }\n\n function onKeydown(e: Event) {\n emit('keydown:display', e);\n }\n\n function onFocus(event: FocusEvent) {\n whenFocus();\n emit('focus', event);\n }\n\n function onBlur(event: FocusEvent) {\n whenBlur();\n invokeValidators();\n emit('blur', event);\n }\n\n function onClickLeading(event: MouseEvent) {\n emit('click:leading', event);\n }\n\n function onChange(event?: Event) {\n invokeValidators();\n }\n\n function createLabel(): VNode | undefined {\n const show = !!props.label || !!slots.label;\n if (!show) {\n return undefined;\n }\n return (\n <label\n class={[\n {\n [`${NAME}__label`]: true,\n 'y-input__floating-label': props.floating,\n 'y-input__floating-label--floated':\n props.floating && isFloatedLabel.value,\n },\n ]}\n for={`y-input--${UID}`}\n >\n {slots.label ? (\n slots.label()\n ) : props.label ? (\n <>\n {props.label}\n {props.required && (\n <span class={'y-input__required-mark'}>*</span>\n )}\n </>\n ) : (\n props.placeholder && !inValue.value && props.placeholder\n )}\n </label>\n );\n }\n\n expose({\n ...(props.extended ?? {}),\n createLabel,\n invokeValidators,\n validate: invokeValidators,\n resetError,\n });\n\n useRender(() => {\n return (\n <div class={[`${NAME}`, { ...classes.value }]}>\n {slots.prepend && (\n <div class={`${NAME}__prepend`}>{slots.prepend()}</div>\n )}\n <div ref={stack$} class={[`${NAME}__stack`]}>\n {!props.floating && createLabel()}\n {slots['leading-out'] && slots['leading-out']()}\n <div\n ref={display$}\n class={`${NAME}__display`}\n style={[{ ...displayStyles.value }]}\n data-base-parent={true}\n onClick={onClick}\n onMousedown={onMousedown}\n onMouseup={onMouseup}\n onKeydown={onKeydown}\n >\n <div class={`${NAME}__plate`}></div>\n {slots.leading && (\n <div class={'y-input__leading'} onClick={onClickLeading}>\n {slots.leading({ error: isError.value })}\n </div>\n )}\n {slots.default ? (\n slots.default({\n value: props.modelValue,\n loading: isLoading.value,\n attrId: `y-input--${UID}`,\n focused: isFocused.value,\n })\n ) : (\n <div\n class={`${NAME}__value`}\n data-id={`y-input--${UID}`}\n tabindex={0}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n {props.floating && createLabel()}\n {props.modelValue?.toString()}\n </div>\n )}\n {slots.trailing?.()}\n </div>\n {slots['trailing-out'] && slots['trailing-out']()}\n <div class={`${NAME}__helper-text`}>\n {slots['helper-text'] ? (\n <span>\n {slots['helper-text']({\n error: isError.value,\n errors: errors.value,\n errorResult: errorResult.value,\n })}\n </span>\n ) : (\n (props.helperText ?? errorResult.value)\n )}\n </div>\n </div>\n {slots.append && (\n <div class={`${NAME}__append`}>{slots.append()}</div>\n )}\n </div>\n );\n });\n\n return {\n ...(props.extended ?? {}),\n themeClasses,\n isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n createLabel,\n invokeValidators,\n };\n },\n});\n\nexport type YInput = InstanceType<typeof YInput>;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YInput.js","names":["computed","ref","shallowRef","watch","Fragment","_Fragment","createTextVNode","_createTextVNode","createVNode","_createVNode","useRender","pressFocusPropsOptions","useFocus","pressThemePropsOptions","useLocalTheme","pressValidationPropsOptions","useValidation","defineComponent","getUid","propsFactory","toStyleSizeValue","NAME","pressYInputPropsOptions","name","String","width","type","Number","height","displayTag","default","label","modelValue","Array","Object","autoSelect","Boolean","floating","floated","placeholder","required","loading","variation","outlined","filled","ceramic","extended","YInput","props","emits","slots","setup","_ref","attrs","expose","emit","UID","themeClasses","focused","isFocused","focusedClasses","whenFocus","whenBlur","isDisabled","isReadonly","isLoading","invokeValidators","resetError","isError","isSuccess","errors","errorResult","stack$","display$","inValue","lazyValue","hasMouseDown","variations","split","map","value","trim","isFloatedLabel","classes","includes","displayStyles","neo","readonly","onClick","event","onMousedown","e","onMouseup","onKeydown","onFocus","onBlur","onClickLeading","onChange","createLabel","show","undefined","validate","prepend","leading","error","attrId","toString","trailing","helperText","append"],"sources":["../../../src/components/input/YInput.tsx"],"sourcesContent":["import {\r\n computed,\r\n type PropType,\r\n ref,\r\n shallowRef,\r\n type SlotsType,\r\n type VNode,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { useRender } from '@/composables/component';\r\nimport { pressFocusPropsOptions, useFocus } from '@/composables/focus';\r\nimport { pressThemePropsOptions, useLocalTheme } from '@/composables/theme';\r\nimport {\r\n pressValidationPropsOptions,\r\n useValidation,\r\n} from '@/composables/validation';\r\nimport { defineComponent, getUid, propsFactory } from '@/util/component';\r\nimport { toStyleSizeValue } from '@/util/ui';\r\n\r\nimport './YInput.scss';\r\n\r\nconst NAME = 'y-input';\r\n\r\nexport const pressYInputPropsOptions = propsFactory(\r\n {\r\n name: String,\r\n width: {\r\n type: [String, Number] as PropType<string | number>,\r\n },\r\n height: [Number, String],\r\n displayTag: {\r\n type: String as PropType<string>,\r\n default: 'div',\r\n },\r\n label: String as PropType<string>,\r\n modelValue: { type: [String, Number, Array, Object] as PropType<any> },\r\n autoSelect: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n floating: { type: Boolean as PropType<boolean>, default: false },\r\n floated: { type: Boolean as PropType<boolean>, default: () => false },\r\n placeholder: String as PropType<string>,\r\n required: Boolean as PropType<boolean>,\r\n loading: Boolean as PropType<boolean>,\r\n // variations\r\n variation: String as PropType<string>,\r\n outlined: Boolean as PropType<boolean>,\r\n filled: Boolean as PropType<boolean>,\r\n ceramic: Boolean as PropType<boolean>,\r\n // validate\r\n ...pressValidationPropsOptions(),\r\n ...pressFocusPropsOptions(),\r\n extended: Object as PropType<any>,\r\n },\r\n 'YInput',\r\n);\r\n\r\nexport interface YInputDefaultSlotProps {\r\n value: any;\r\n loading: boolean;\r\n attrId: string;\r\n focused: boolean;\r\n}\r\n\r\nexport const YInput = defineComponent({\r\n name: 'YInput',\r\n props: {\r\n ...pressThemePropsOptions(),\r\n ...pressYInputPropsOptions(),\r\n },\r\n emits: [\r\n 'error',\r\n 'click',\r\n 'mousedown',\r\n 'mouseup',\r\n 'focus',\r\n 'blur',\r\n 'mousedown:display',\r\n 'mouseup:display',\r\n 'keydown:display',\r\n 'click:leading',\r\n 'update:modelValue',\r\n 'update:focused',\r\n ],\r\n slots: Object as SlotsType<{\r\n prepend: any;\r\n append: any;\r\n label: any;\r\n default: YInputDefaultSlotProps;\r\n leading: { error: boolean };\r\n trailing: any;\r\n 'leading-out': any;\r\n 'trailing-out': any;\r\n 'helper-text': {\r\n error: boolean;\r\n errorResult: string | undefined;\r\n errors: any[];\r\n };\r\n }>,\r\n setup(props, { slots, attrs, expose, emit }) {\r\n const UID = getUid();\r\n const { themeClasses } = useLocalTheme(props);\r\n const {\r\n focused: isFocused,\r\n focusedClasses,\r\n whenFocus,\r\n whenBlur,\r\n } = useFocus(props, 'y-input');\r\n\r\n const {\r\n isDisabled,\r\n isReadonly,\r\n isLoading,\r\n invokeValidators,\r\n resetError,\r\n isError,\r\n isSuccess,\r\n errors,\r\n errorResult,\r\n } = useValidation(props, NAME, UID);\r\n\r\n const stack$ = ref();\r\n const display$ = ref();\r\n\r\n const inValue = ref();\r\n const lazyValue = ref();\r\n const hasMouseDown = shallowRef(false);\r\n\r\n const variations = computed(() => {\r\n if (props.variation) {\r\n return props.variation.split(',').map((value) => {\r\n return value.trim();\r\n });\r\n }\r\n return [];\r\n });\r\n\r\n const isFloatedLabel = computed(() => {\r\n return (\r\n props.floated ||\r\n !!props.placeholder ||\r\n (!props.placeholder && isFocused.value) ||\r\n !!inValue.value\r\n );\r\n });\r\n\r\n const classes = computed(() => {\r\n return {\r\n // Style\r\n [themeClasses.value as string]: true,\r\n 'y-input--ceramic': !!props.ceramic,\r\n 'y-input--outlined':\r\n !props.ceramic &&\r\n (variations.value.includes('outlined') || !!props.outlined),\r\n 'y-input--filled':\r\n variations.value.includes('filled') || !!props.filled,\r\n // Value\r\n 'y-input--loading': isLoading.value,\r\n 'y-input--has-value': !!inValue.value,\r\n 'y-input--focused': isFocused.value,\r\n 'y-input--readonly': isReadonly.value,\r\n 'y-input--disabled': isDisabled.value,\r\n 'y-input--error': isError.value,\r\n 'y-input--success': isSuccess.value,\r\n };\r\n });\r\n\r\n const displayStyles = computed<Record<string, any>>(() => {\r\n return {\r\n width: toStyleSizeValue(props.width),\r\n height: toStyleSizeValue(props.height),\r\n };\r\n });\r\n\r\n watch(\r\n () => props.modelValue,\r\n (neo) => {\r\n inValue.value = neo;\r\n },\r\n );\r\n\r\n watch(\r\n () => props.readonly,\r\n (neo) => {\r\n if (!neo) {\r\n inValue.value = props.modelValue;\r\n }\r\n },\r\n );\r\n\r\n watch(inValue, (neo) => {\r\n if (!isReadonly.value && !isLoading.value) {\r\n emit('update:modelValue', neo);\r\n }\r\n });\r\n\r\n watch(isError, (neo) => {\r\n emit('error', neo, errors.value);\r\n });\r\n\r\n watch(\r\n () => props.focused,\r\n (neo) => {\r\n if (!neo) {\r\n invokeValidators();\r\n }\r\n },\r\n );\r\n\r\n function onClick(event: MouseEvent) {\r\n emit('click', event);\r\n }\r\n\r\n function onMousedown(e: Event) {\r\n hasMouseDown.value = true;\r\n emit('mousedown:display', e);\r\n }\r\n\r\n function onMouseup(e: Event) {\r\n hasMouseDown.value = false;\r\n emit('mouseup:display', e);\r\n }\r\n\r\n function onKeydown(e: Event) {\r\n emit('keydown:display', e);\r\n }\r\n\r\n function onFocus(event: FocusEvent) {\r\n whenFocus();\r\n emit('focus', event);\r\n }\r\n\r\n function onBlur(event: FocusEvent) {\r\n whenBlur();\r\n invokeValidators();\r\n emit('blur', event);\r\n }\r\n\r\n function onClickLeading(event: MouseEvent) {\r\n emit('click:leading', event);\r\n }\r\n\r\n function onChange(event?: Event) {\r\n invokeValidators();\r\n }\r\n\r\n function createLabel(): VNode | undefined {\r\n const show = !!props.label || !!slots.label;\r\n if (!show) {\r\n return undefined;\r\n }\r\n return (\r\n <label\r\n class={[\r\n {\r\n [`${NAME}__label`]: true,\r\n 'y-input__floating-label': props.floating,\r\n 'y-input__floating-label--floated':\r\n props.floating && isFloatedLabel.value,\r\n },\r\n ]}\r\n for={`y-input--${UID}`}\r\n >\r\n {slots.label ? (\r\n slots.label()\r\n ) : props.label ? (\r\n <>\r\n {props.label}\r\n {props.required && (\r\n <span class={'y-input__required-mark'}>*</span>\r\n )}\r\n </>\r\n ) : (\r\n props.placeholder && !inValue.value && props.placeholder\r\n )}\r\n </label>\r\n );\r\n }\r\n\r\n expose({\r\n ...(props.extended ?? {}),\r\n createLabel,\r\n invokeValidators,\r\n validate: invokeValidators,\r\n resetError,\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <div class={[`${NAME}`, { ...classes.value }]}>\r\n {slots.prepend && (\r\n <div class={`${NAME}__prepend`}>{slots.prepend()}</div>\r\n )}\r\n <div ref={stack$} class={[`${NAME}__stack`]}>\r\n {!props.floating && createLabel()}\r\n {slots['leading-out'] && slots['leading-out']()}\r\n <div\r\n ref={display$}\r\n class={`${NAME}__display`}\r\n style={[{ ...displayStyles.value }]}\r\n data-base-parent={true}\r\n onClick={onClick}\r\n onMousedown={onMousedown}\r\n onMouseup={onMouseup}\r\n onKeydown={onKeydown}\r\n >\r\n <div class={`${NAME}__plate`}></div>\r\n {slots.leading && (\r\n <div class={'y-input__leading'} onClick={onClickLeading}>\r\n {slots.leading({ error: isError.value })}\r\n </div>\r\n )}\r\n {slots.default ? (\r\n slots.default({\r\n value: props.modelValue,\r\n loading: isLoading.value,\r\n attrId: `y-input--${UID}`,\r\n focused: isFocused.value,\r\n })\r\n ) : (\r\n <div\r\n class={`${NAME}__value`}\r\n data-id={`y-input--${UID}`}\r\n tabindex={0}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n >\r\n {props.floating && createLabel()}\r\n {props.modelValue?.toString()}\r\n </div>\r\n )}\r\n {slots.trailing?.()}\r\n </div>\r\n {slots['trailing-out'] && slots['trailing-out']()}\r\n <div class={`${NAME}__helper-text`}>\r\n {slots['helper-text'] ? (\r\n <span>\r\n {slots['helper-text']({\r\n error: isError.value,\r\n errors: errors.value,\r\n errorResult: errorResult.value,\r\n })}\r\n </span>\r\n ) : (\r\n (props.helperText ?? errorResult.value)\r\n )}\r\n </div>\r\n </div>\r\n {slots.append && (\r\n <div class={`${NAME}__append`}>{slots.append()}</div>\r\n )}\r\n </div>\r\n );\r\n });\r\n\r\n return {\r\n ...(props.extended ?? {}),\r\n themeClasses,\r\n isFocused,\r\n focusedClasses,\r\n whenFocus,\r\n whenBlur,\r\n createLabel,\r\n invokeValidators,\r\n };\r\n },\r\n});\r\n\r\nexport type YInput = InstanceType<typeof YInput>;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YLayer.js","names":["computed","getCurrentInstance","mergeProps","reactive","ref","shallowRef","Teleport","Transition","toRef","Fragment","_Fragment","createVNode","_createVNode","vShow","_vShow","resolveDirective","_resolveDirective","_mergeProps","withDirectives","_withDirectives","useModelDuplex","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","ComplementClick","bindClasses","defineComponent","propsFactory","pressBasePropsOptions","useBase","pressContentPropsOptions","useContent","pressScrollStrategyProps","useScrollStrategies","noop","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","maximized","openOnHover","openDelay","closeDelay","zIndex","contained","layerGroup","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","root$","model","active","get","set","v","base","base$","baseEl","baseSlot","baseFromSlotEl","contentEvents","themeClasses","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","lazyValue","onAfterUpdate","finish","hovered","focused","rendered","coordination","coordinateStyles","updateCoordinate","contentEl","root","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","side","align","isMe","vnode","slotBase","class","baseProps"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type { ComponentInternalInstance, PropType, SlotsType } from \"vue\";\nimport {\n\tcomputed,\n\tgetCurrentInstance,\n\tmergeProps,\n\treactive,\n\tref,\n\tshallowRef,\n\tTeleport,\n\tTransition,\n\ttoRef,\n} from \"vue\";\n\nimport { useModelDuplex } from \"@/composables/communication\";\nimport { useRender } from \"@/composables/component\";\nimport { pressCoordinateProps, useCoordinate } from \"@/composables/coordinate\";\nimport {\n\tpressDimensionPropsOptions,\n\tuseDimension,\n} from \"@/composables/dimension\";\nimport { useLayerGroup } from \"@/composables/layer-group\";\nimport { pressThemePropsOptions, useLocalTheme } from \"@/composables/theme\";\nimport { useLazy } from \"@/composables/timing\";\nimport {\n\tPolyTransition,\n\tpressPolyTransitionPropsOptions,\n\tusePolyTransition,\n} from \"@/composables/transition\";\nimport {\n\tComplementClick,\n\ttype ComplementClickBindingOptions,\n} from \"@/directives/complement-click\";\nimport { bindClasses, defineComponent, propsFactory } from \"@/util/component\";\n\nimport { pressBasePropsOptions, useBase } from \"./base\";\nimport { pressContentPropsOptions, useContent } from \"./content\";\nimport {\n\tpressScrollStrategyProps,\n\tuseScrollStrategies,\n} from \"./scroll-strategies\";\n\nimport \"./YLayer.scss\";\nimport type { CssProperties } from \"@/types\";\nimport { noop } from \"@/util\";\n\nexport const pressYLayerProps = propsFactory(\n\t{\n\t\tmodelValue: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tscrim: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tscrimOpacity: {\n\t\t\ttype: Number as PropType<number>,\n\t\t},\n\t\teager: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tclasses: {\n\t\t\ttype: [Array, String, Object] as PropType<\n\t\t\t\tstring[] | string | Record<string, any>\n\t\t\t>,\n\t\t},\n\t\tcontentClasses: {\n\t\t\ttype: [Array, String, Object] as PropType<\n\t\t\t\tstring[] | string | Record<string, any>\n\t\t\t>,\n\t\t},\n\t\tcloseClickScrim: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tcontentStyles: {\n\t\t\ttype: Object as PropType<CssProperties>,\n\t\t\tdefault: () => {},\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t\tdefault: false,\n\t\t},\n\t\tmaximized: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\topenOnHover: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t\tdefault: false,\n\t\t},\n\t\topenDelay: {\n\t\t\ttype: Number as PropType<number>,\n\t\t\tdefault: 200,\n\t\t},\n\t\tcloseDelay: {\n\t\t\ttype: Number as PropType<number>,\n\t\t\tdefault: 200,\n\t\t},\n\t\tzIndex: {\n\t\t\ttype: [Number, String] as PropType<number | string>,\n\t\t\tdefault: 2000,\n\t\t},\n\t\tcontained: Boolean,\n\t\tlayerGroup: [String, Object] as PropType<string | Element>,\n\t\t...pressThemePropsOptions(),\n\t\t...pressPolyTransitionPropsOptions(),\n\t\t...pressBasePropsOptions(),\n\t\t...pressContentPropsOptions(),\n\t\t...pressCoordinateProps(),\n\t\t...pressScrollStrategyProps(),\n\t\t...pressDimensionPropsOptions(),\n\t},\n\t\"YLayer\",\n);\n\nexport const YLayer = defineComponent({\n\tname: \"YLayer\",\n\tinheritAttrs: false,\n\tcomponents: {\n\t\tPolyTransition,\n\t},\n\tdirectives: {\n\t\tComplementClick,\n\t},\n\tprops: {\n\t\tmodal: Boolean as PropType<boolean>,\n\t\t...pressYLayerProps(),\n\t},\n\temits: {\n\t\t\"update:modelValue\": (value: boolean) => true,\n\t\t\"click:complement\": (mouseEvent: MouseEvent) => true,\n\t\tafterLeave: () => true,\n\t},\n\tslots: Object as SlotsType<{\n\t\tbase: any;\n\t\tdefault: any;\n\t}>,\n\tsetup(props, { emit, expose, attrs, slots }) {\n\t\tconst vm = getCurrentInstance();\n\t\tconst scrim$ = ref<HTMLElement>();\n\t\tconst content$ = ref<HTMLElement>();\n\t\tconst root$ = ref<HTMLElement>();\n\t\tconst model = useModelDuplex(props);\n\t\tconst active = computed({\n\t\t\tget: (): boolean => {\n\t\t\t\treturn !!model.value;\n\t\t\t},\n\t\t\tset: (v: boolean) => {\n\t\t\t\tif (!(v && props.disabled)) model.value = v;\n\t\t\t},\n\t\t});\n\t\t// Frags\n\t\tconst { base, base$, baseEl, baseSlot, baseFromSlotEl } = useBase(props);\n\t\tconst { contentEvents } = useContent(props, active);\n\t\tconst { themeClasses } = useLocalTheme(props);\n\t\tconst { layerGroup, layerGroupState, getActiveLayers } =\n\t\t\tuseLayerGroup(props);\n\t\tconst { polyTransitionBindProps } = usePolyTransition(props);\n\t\tconst { dimensionStyles } = useDimension(props);\n\n\t\tconst { lazyValue, onAfterUpdate } = useLazy(toRef(props, \"eager\"), active);\n\t\t// States\n\t\tconst finish = shallowRef(false);\n\t\tconst hovered = ref(false);\n\t\tconst focused = ref(false);\n\t\tconst disabled = toRef(props, \"disabled\");\n\t\tconst maximized = toRef(props, \"maximized\");\n\n\t\tconst rendered = computed<boolean>(\n\t\t\t() => !disabled.value && (lazyValue.value || active.value),\n\t\t);\n\n\t\tconst { coordination, coordinateStyles, updateCoordinate } = useCoordinate(props, {\n\t\t\tcontentEl: content$,\n\t\t\tbase,\n\t\t\tactive,\n\t\t});\n\t\tuseScrollStrategies(props, {\n\t\t\troot: root$,\n\t\t\tcontentEl: content$,\n\t\t\tactive,\n\t\t\tbaseEl: base,\n\t\t\tupdateCoordinate,\n\t\t});\n\n\t\tfunction onClickComplementLayer(mouseEvent: MouseEvent) {\n\t\t\temit(\"click:complement\", mouseEvent);\n\t\t\tif (!props.modal) {\n\t\t\t\tif (\n\t\t\t\t\tscrim$.value !== null &&\n\t\t\t\t\tscrim$.value === mouseEvent.target &&\n\t\t\t\t\tprops.closeClickScrim\n\t\t\t\t) {\n\t\t\t\t\tactive.value = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// TODO: shrug ani\n\t\t\t}\n\t\t}\n\n\t\tfunction closeConditional(): boolean {\n\t\t\treturn (\n\t\t\t\t(!props.openOnHover || (props.openOnHover && !hovered.value)) &&\n\t\t\t\tactive.value &&\n\t\t\t\tfinish.value\n\t\t\t); // TODO: && groupTopLevel.value;\n\t\t}\n\n\t\tconst complementClickOption = reactive<ComplementClickBindingOptions>({\n\t\t\thandler: onClickComplementLayer,\n\t\t\tdetermine: closeConditional,\n\t\t\tinclude: () => [baseEl.value],\n\t\t});\n\n\t\tfunction onAfterEnter() {\n\t\t\tfinish.value = true;\n\t\t}\n\n\t\tfunction onAfterLeave() {\n\t\t\tonAfterUpdate();\n\t\t\tfinish.value = false;\n\t\t\temit(\"afterLeave\");\n\t\t}\n\n\t\tfunction onClickScrim() {\n\t\t\tif (props.closeClickScrim) {\n\t\t\t\tactive.value = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction onMouseenter(event: Event) {\n\t\t\thovered.value = true;\n\t\t}\n\n\t\tfunction onMouseleave(event: Event) {\n\t\t\thovered.value = false;\n\t\t}\n\n\t\tconst computedStyle = computed(() => {\n\t\t\treturn {\n\t\t\t\tzIndex: (props.zIndex ?? \"2000\").toString(),\n\t\t\t};\n\t\t});\n\n\t\tconst computedClass = computed<Record<string, boolean>>(() => {\n\t\t\tconst { classes } = props;\n\t\t\tconst boundClasses = bindClasses(classes);\n\t\t\treturn {\n\t\t\t\t...boundClasses,\n\t\t\t\t\"y-layer--active\": !!active.value,\n\t\t\t};\n\t\t});\n\n\t\tconst computedContentClasses = computed<Record<string, boolean>>(() => {\n\t\t\tconst boundClasses = bindClasses(props.contentClasses);\n\t\t\tconst { side, align } = coordination.value;\n\t\t\treturn {\n\t\t\t\t...boundClasses,\n [`y-layer--side-${side}`]: !!side,\n [`y-layer--align-${align}`]: !!align,\n\t\t\t};\n\t\t});\n\n\t\texpose({\n\t\t\tscrim$,\n\t\t\tbase$,\n\t\t\tcontent$: computed(() => content$.value),\n\t\t\tbaseEl,\n\t\t\tactive,\n\t\t\tonAfterUpdate,\n\t\t\tupdateCoordinate,\n\t\t\thovered,\n\t\t\tfinish,\n\t\t\tmodal: computed(() => props.modal),\n\t\t\tgetActiveLayers,\n\t\t\tisMe: (vnode: ComponentInternalInstance) => {\n\t\t\t\treturn vnode === vm;\n\t\t\t},\n\t\t\tcoordination,\n\t\t});\n\n\t\tuseRender(() => {\n\t\t\tconst slotBase = slots.base?.({\n\t\t\t\tactive: active.value,\n\t\t\t\tprops: mergeProps({\n\t\t\t\t\tref: base$,\n\t\t\t\t\tclass: {\n\t\t\t\t\t\t\"y-layer-base\": true,\n\t\t\t\t\t\t\"y-layer-base--active\": active.value,\n\t\t\t\t\t},\n\t\t\t\t\t...(props.baseProps ?? {}),\n\t\t\t\t}),\n\t\t\t});\n\t\t\tbaseSlot.value = slotBase;\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{slotBase}\n\t\t\t\t\t<Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\n\t\t\t\t\t\t{rendered.value && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"y-layer\": true,\n\t\t\t\t\t\t\t\t\t\t\"y-layer--finish\": finish.value,\n\t\t\t\t\t\t\t\t\t\t\"y-layer--contained\": props.contained,\n\t\t\t\t\t\t\t\t\t\t...computedClass.value,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tthemeClasses.value,\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\tonMouseenter={onMouseenter}\n\t\t\t\t\t\t\t\tonMouseleave={onMouseleave}\n\t\t\t\t\t\t\t\tstyle={computedStyle.value}\n\t\t\t\t\t\t\t\tref={root$}\n\t\t\t\t\t\t\t\t{...attrs}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Transition name=\"fade\" appear>\n\t\t\t\t\t\t\t\t\t{active.value && props.scrim && (\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/noStaticElementInteractions: <explanation>\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/useKeyWithClickEvents: <explanation>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclass=\"y-layer__scrim\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ \"--y-layer-scrim-opacity\": props.scrimOpacity }}\n\t\t\t\t\t\t\t\t\t\t\tonClick={onClickScrim}\n\t\t\t\t\t\t\t\t\t\t\tonKeydown={noop()}\n\t\t\t\t\t\t\t\t\t\t\tonKeyup={noop()}\n\t\t\t\t\t\t\t\t\t\t\tref=\"scrim$\"\n\t\t\t\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Transition>\n\t\t\t\t\t\t\t\t<PolyTransition\n\t\t\t\t\t\t\t\t\tonAfterEnter={onAfterEnter}\n\t\t\t\t\t\t\t\t\tonAfterLeave={onAfterLeave}\n\t\t\t\t\t\t\t\t\tappear\n\t\t\t\t\t\t\t\t\t{...polyTransitionBindProps.value}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tv-show={active.value}\n\t\t\t\t\t\t\t\t\t\tv-complement-click={{ ...complementClickOption }}\n\t\t\t\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t\t\t\t\"y-layer__content\": true,\n\t\t\t\t\t\t\t\t\t\t\t...computedContentClasses.value,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t...dimensionStyles.value,\n\t\t\t\t\t\t\t\t\t\t\t\t...coordinateStyles.value,\n\t\t\t\t\t\t\t\t\t\t\t\t...props.contentStyles,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t\t{...contentEvents.value}\n\t\t\t\t\t\t\t\t\t\tref={content$}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{slots.default?.({ active: active.value })}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</PolyTransition>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Teleport>\n\t\t\t\t</>\n\t\t\t);\n\t\t});\n\n\t\treturn {\n\t\t\tcomplementClickOption,\n\t\t\tlayerGroup,\n\t\t\tactive,\n\t\t\tfinish,\n\t\t\trendered,\n\t\t\tlazyValue,\n\t\t\tonAfterUpdate: onAfterUpdate as () => void,\n\t\t\tscrim$,\n\t\t\tcontent$,\n\t\t\tbase,\n\t\t\tbase$,\n\t\t\tbaseEl,\n\t\t\tbaseFromSlotEl,\n\t\t\tpolyTransitionBindProps,\n\t\t\tcoordinateStyles,\n\t\t\tlayerGroupState,\n\t\t\tgetActiveLayers,\n\t\t\tcoordination,\n\t\t};\n\t},\n});\n\nexport type YLayer = InstanceType<typeof YLayer>;\n"],"mappings":"AACA,SACCA,QAAQ,EACRC,kBAAkB,EAClBC,UAAU,EACVC,QAAQ,EACRC,GAAG,EACHC,UAAU,EACVC,QAAQ,EACRC,UAAU,EACVC,KAAK,EAAAC,QAAA,IAAAC,SAAA,EAAAC,WAAA,IAAAC,YAAA,EAAAC,KAAA,IAAAC,MAAA,EAAAC,gBAAA,IAAAC,iBAAA,EAAAd,UAAA,IAAAe,WAAA,EAAAC,cAAA,IAAAC,eAAA,QACC,KAAK;AAAC,SAEJC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,oBAAoB,EAAEC,aAAa;AAAA,SAE3CC,0BAA0B,EAC1BC,YAAY;AAAA,SAEJC,aAAa;AAAA,SACbC,sBAAsB,EAAEC,aAAa;AAAA,SACrCC,OAAO;AAAA,SAEfC,cAAc,EACdC,+BAA+B,EAC/BC,iBAAiB;AAAA,SAGjBC,eAAe;AAAA,SAGPC,WAAW,EAAEC,eAAe,EAAEC,YAAY;AAAA,SAE1CC,qBAAqB,EAAEC,OAAO;AAAA,SAC9BC,wBAAwB,EAAEC,UAAU;AAAA,SAE5CC,wBAAwB,EACxBC,mBAAmB;AAGpB;AAAuB,SAEdC,IAAI;AAEb,OAAO,MAAMC,gBAAgB,GAAGR,YAAY,CAC3C;EACCS,UAAU,EAAE;IACXC,IAAI,EAAEC;EACP,CAAC;EACDC,KAAK,EAAE;IACNF,IAAI,EAAEC;EACP,CAAC;EACDE,YAAY,EAAE;IACbH,IAAI,EAAEI;EACP,CAAC;EACDC,KAAK,EAAE;IACNL,IAAI,EAAEC;EACP,CAAC;EACDK,OAAO,EAAE;IACRN,IAAI,EAAE,CAACO,KAAK,EAAEC,MAAM,EAAEC,MAAM;EAG7B,CAAC;EACDC,cAAc,EAAE;IACfV,IAAI,EAAE,CAACO,KAAK,EAAEC,MAAM,EAAEC,MAAM;EAG7B,CAAC;EACDE,eAAe,EAAE;IAChBX,IAAI,EAAEC;EACP,CAAC;EACDW,aAAa,EAAE;IACdZ,IAAI,EAAES,MAAiC;IACvCI,OAAO,EAAEA,CAAA,KAAM,CAAC;EACjB,CAAC;EACDC,QAAQ,EAAE;IACTd,IAAI,EAAEC,OAA4B;IAClCY,OAAO,EAAE;EACV,CAAC;EACDE,SAAS,EAAE;IACVf,IAAI,EAAEC;EACP,CAAC;EACDe,WAAW,EAAE;IACZhB,IAAI,EAAEC,OAA4B;IAClCY,OAAO,EAAE;EACV,CAAC;EACDI,SAAS,EAAE;IACVjB,IAAI,EAAEI,MAA0B;IAChCS,OAAO,EAAE;EACV,CAAC;EACDK,UAAU,EAAE;IACXlB,IAAI,EAAEI,MAA0B;IAChCS,OAAO,EAAE;EACV,CAAC;EACDM,MAAM,EAAE;IACPnB,IAAI,EAAE,CAACI,MAAM,EAAEI,MAAM,CAA8B;IACnDK,OAAO,EAAE;EACV,CAAC;EACDO,SAAS,EAAEnB,OAAO;EAClBoB,UAAU,EAAE,CAACb,MAAM,EAAEC,MAAM,CAA+B;EAC1D,GAAG5B,sBAAsB,CAAC,CAAC;EAC3B,GAAGI,+BAA+B,CAAC,CAAC;EACpC,GAAGM,qBAAqB,CAAC,CAAC;EAC1B,GAAGE,wBAAwB,CAAC,CAAC;EAC7B,GAAGjB,oBAAoB,CAAC,CAAC;EACzB,GAAGmB,wBAAwB,CAAC,CAAC;EAC7B,GAAGjB,0BAA0B,CAAC;AAC/B,CAAC,EACD,QACD,CAAC;AAED,OAAO,MAAM4C,MAAM,GAAGjC,eAAe,CAAC;EACrCkC,IAAI,EAAE,QAAQ;EACdC,YAAY,EAAE,KAAK;EACnBC,UAAU,EAAE;IACXzC;EACD,CAAC;EACD0C,UAAU,EAAE;IACXvC;EACD,CAAC;EACDwC,KAAK,EAAE;IACNC,KAAK,EAAE3B,OAA4B;IACnC,GAAGH,gBAAgB,CAAC;EACrB,CAAC;EACD+B,KAAK,EAAE;IACN,mBAAmB,EAAGC,KAAc,IAAK,IAAI;IAC7C,kBAAkB,EAAGC,UAAsB,IAAK,IAAI;IACpDC,UAAU,EAAEA,CAAA,KAAM;EACnB,CAAC;EACDC,KAAK,EAAExB,MAGL;EACFyB,KAAKA,CAACP,KAAK,EAAAQ,IAAA,EAAkC;IAAA,IAAhC;MAAEC,IAAI;MAAEC,MAAM;MAAEC,KAAK;MAAEL;IAAM,CAAC,GAAAE,IAAA;IAC1C,MAAMI,EAAE,GAAGpF,kBAAkB,CAAC,CAAC;IAC/B,MAAMqF,MAAM,GAAGlF,GAAG,CAAc,CAAC;IACjC,MAAMmF,QAAQ,GAAGnF,GAAG,CAAc,CAAC;IACnC,MAAMoF,KAAK,GAAGpF,GAAG,CAAc,CAAC;IAChC,MAAMqF,KAAK,GAAGrE,cAAc,CAACqD,KAAK,CAAC;IACnC,MAAMiB,MAAM,GAAG1F,QAAQ,CAAC;MACvB2F,GAAG,EAAEA,CAAA,KAAe;QACnB,OAAO,CAAC,CAACF,KAAK,CAACb,KAAK;MACrB,CAAC;MACDgB,GAAG,EAAGC,CAAU,IAAK;QACpB,IAAI,EAAEA,CAAC,IAAIpB,KAAK,CAACb,QAAQ,CAAC,EAAE6B,KAAK,CAACb,KAAK,GAAGiB,CAAC;MAC5C;IACD,CAAC,CAAC;IACF;IACA,MAAM;MAAEC,IAAI;MAAEC,KAAK;MAAEC,MAAM;MAAEC,QAAQ;MAAEC;IAAe,CAAC,GAAG5D,OAAO,CAACmC,KAAK,CAAC;IACxE,MAAM;MAAE0B;IAAc,CAAC,GAAG3D,UAAU,CAACiC,KAAK,EAAEiB,MAAM,CAAC;IACnD,MAAM;MAAEU;IAAa,CAAC,GAAGxE,aAAa,CAAC6C,KAAK,CAAC;IAC7C,MAAM;MAAEN,UAAU;MAAEkC,eAAe;MAAEC;IAAgB,CAAC,GACrD5E,aAAa,CAAC+C,KAAK,CAAC;IACrB,MAAM;MAAE8B;IAAwB,CAAC,GAAGvE,iBAAiB,CAACyC,KAAK,CAAC;IAC5D,MAAM;MAAE+B;IAAgB,CAAC,GAAG/E,YAAY,CAACgD,KAAK,CAAC;IAE/C,MAAM;MAAEgC,SAAS;MAAEC;IAAc,CAAC,GAAG7E,OAAO,CAACrB,KAAK,CAACiE,KAAK,EAAE,OAAO,CAAC,EAAEiB,MAAM,CAAC;IAC3E;IACA,MAAMiB,MAAM,GAAGtG,UAAU,CAAC,KAAK,CAAC;IAChC,MAAMuG,OAAO,GAAGxG,GAAG,CAAC,KAAK,CAAC;IAC1B,MAAMyG,OAAO,GAAGzG,GAAG,CAAC,KAAK,CAAC;IAC1B,MAAMwD,QAAQ,GAAGpD,KAAK,CAACiE,KAAK,EAAE,UAAU,CAAC;IACzC,MAAMZ,SAAS,GAAGrD,KAAK,CAACiE,KAAK,EAAE,WAAW,CAAC;IAE3C,MAAMqC,QAAQ,GAAG9G,QAAQ,CACxB,MAAM,CAAC4D,QAAQ,CAACgB,KAAK,KAAK6B,SAAS,CAAC7B,KAAK,IAAIc,MAAM,CAACd,KAAK,CAC1D,CAAC;IAED,MAAM;MAAEmC,YAAY;MAAEC,gBAAgB;MAAEC;IAAiB,CAAC,GAAG1F,aAAa,CAACkD,KAAK,EAAE;MACjFyC,SAAS,EAAE3B,QAAQ;MACnBO,IAAI;MACJJ;IACD,CAAC,CAAC;IACFhD,mBAAmB,CAAC+B,KAAK,EAAE;MAC1B0C,IAAI,EAAE3B,KAAK;MACX0B,SAAS,EAAE3B,QAAQ;MACnBG,MAAM;MACNM,MAAM,EAAEF,IAAI;MACZmB;IACD,CAAC,CAAC;IAEF,SAASG,sBAAsBA,CAACvC,UAAsB,EAAE;MACvDK,IAAI,CAAC,kBAAkB,EAAEL,UAAU,CAAC;MACpC,IAAI,CAACJ,KAAK,CAACC,KAAK,EAAE;QACjB,IACCY,MAAM,CAACV,KAAK,KAAK,IAAI,IACrBU,MAAM,CAACV,KAAK,KAAKC,UAAU,CAACwC,MAAM,IAClC5C,KAAK,CAAChB,eAAe,EACpB;UACDiC,MAAM,CAACd,KAAK,GAAG,KAAK;QACrB;MACD,CAAC,MAAM;QACN;MAAA;IAEF;IAEA,SAAS0C,gBAAgBA,CAAA,EAAY;MACpC,OACC,CAAC,CAAC7C,KAAK,CAACX,WAAW,IAAKW,KAAK,CAACX,WAAW,IAAI,CAAC8C,OAAO,CAAChC,KAAM,KAC5Dc,MAAM,CAACd,KAAK,IACZ+B,MAAM,CAAC/B,KAAK,CACX,CAAC;IACJ;IAEA,MAAM2C,qBAAqB,GAAGpH,QAAQ,CAAgC;MACrEqH,OAAO,EAAEJ,sBAAsB;MAC/BK,SAAS,EAAEH,gBAAgB;MAC3BI,OAAO,EAAEA,CAAA,KAAM,CAAC1B,MAAM,CAACpB,KAAK;IAC7B,CAAC,CAAC;IAEF,SAAS+C,YAAYA,CAAA,EAAG;MACvBhB,MAAM,CAAC/B,KAAK,GAAG,IAAI;IACpB;IAEA,SAASgD,YAAYA,CAAA,EAAG;MACvBlB,aAAa,CAAC,CAAC;MACfC,MAAM,CAAC/B,KAAK,GAAG,KAAK;MACpBM,IAAI,CAAC,YAAY,CAAC;IACnB;IAEA,SAAS2C,YAAYA,CAAA,EAAG;MACvB,IAAIpD,KAAK,CAAChB,eAAe,EAAE;QAC1BiC,MAAM,CAACd,KAAK,GAAG,KAAK;MACrB;IACD;IAEA,SAASkD,YAAYA,CAACC,KAAY,EAAE;MACnCnB,OAAO,CAAChC,KAAK,GAAG,IAAI;IACrB;IAEA,SAASoD,YAAYA,CAACD,KAAY,EAAE;MACnCnB,OAAO,CAAChC,KAAK,GAAG,KAAK;IACtB;IAEA,MAAMqD,aAAa,GAAGjI,QAAQ,CAAC,MAAM;MACpC,OAAO;QACNiE,MAAM,EAAE,CAACQ,KAAK,CAACR,MAAM,IAAI,MAAM,EAAEiE,QAAQ,CAAC;MAC3C,CAAC;IACF,CAAC,CAAC;IAEF,MAAMC,aAAa,GAAGnI,QAAQ,CAA0B,MAAM;MAC7D,MAAM;QAAEoD;MAAQ,CAAC,GAAGqB,KAAK;MACzB,MAAM2D,YAAY,GAAGlG,WAAW,CAACkB,OAAO,CAAC;MACzC,OAAO;QACN,GAAGgF,YAAY;QACf,iBAAiB,EAAE,CAAC,CAAC1C,MAAM,CAACd;MAC7B,CAAC;IACF,CAAC,CAAC;IAEF,MAAMyD,sBAAsB,GAAGrI,QAAQ,CAA0B,MAAM;MACtE,MAAMoI,YAAY,GAAGlG,WAAW,CAACuC,KAAK,CAACjB,cAAc,CAAC;MACtD,MAAM;QAAE8E,IAAI;QAAEC;MAAM,CAAC,GAAGxB,YAAY,CAACnC,KAAK;MAC1C,OAAO;QACN,GAAGwD,YAAY;QACX,CAAC,iBAAiBE,IAAI,EAAE,GAAG,CAAC,CAACA,IAAI;QACjC,CAAC,kBAAkBC,KAAK,EAAE,GAAG,CAAC,CAACA;MACpC,CAAC;IACF,CAAC,CAAC;IAEFpD,MAAM,CAAC;MACNG,MAAM;MACNS,KAAK;MACLR,QAAQ,EAAEvF,QAAQ,CAAC,MAAMuF,QAAQ,CAACX,KAAK,CAAC;MACxCoB,MAAM;MACNN,MAAM;MACNgB,aAAa;MACbO,gBAAgB;MAChBL,OAAO;MACPD,MAAM;MACNjC,KAAK,EAAE1E,QAAQ,CAAC,MAAMyE,KAAK,CAACC,KAAK,CAAC;MAClC4B,eAAe;MACfkC,IAAI,EAAGC,KAAgC,IAAK;QAC3C,OAAOA,KAAK,KAAKpD,EAAE;MACpB,CAAC;MACD0B;IACD,CAAC,CAAC;IAEF1F,SAAS,CAAC,MAAM;MACf,MAAMqH,QAAQ,GAAG3D,KAAK,CAACe,IAAI,GAAG;QAC7BJ,MAAM,EAAEA,MAAM,CAACd,KAAK;QACpBH,KAAK,EAAEvE,UAAU,CAAC;UACjBE,GAAG,EAAE2F,KAAK;UACV4C,KAAK,EAAE;YACN,cAAc,EAAE,IAAI;YACpB,sBAAsB,EAAEjD,MAAM,CAACd;UAChC,CAAC;UACD,IAAIH,KAAK,CAACmE,SAAS,IAAI,CAAC,CAAC;QAC1B,CAAC;MACF,CAAC,CAAC;MACF3C,QAAQ,CAACrB,KAAK,GAAG8D,QAAQ;MACzB,OAAA9H,YAAA,CAAAF,SAAA,SAEGgI,QAAQ,EAAA9H,YAAA,CAAAN,QAAA;QAAA,YACW,CAAC6D,UAAU,CAACS,KAAK;QAAA,MAAMT,UAAU,CAACS;MAAK;QAAAjB,OAAA,EAAAA,CAAA,MACzDmD,QAAQ,CAAClC,KAAK,IAAAhE,YAAA,QAAAK,WAAA;UAAA,SAEN,CACN;YACC,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE0F,MAAM,CAAC/B,KAAK;YAC/B,oBAAoB,EAAEH,KAAK,CAACP,SAAS;YACrC,GAAGiE,aAAa,CAACvD;UAClB,CAAC,EACDwB,YAAY,CAACxB,KAAK,CAClB;UAAA,gBACakD,YAAY;UAAA,gBACZE,YAAY;UAAA,SACnBC,aAAa,CAACrD,KAAK;UAAA,OACrBY;QAAK,GACNJ,KAAK,IAAAxE,YAAA,CAAAL,UAAA;UAAA;UAAA;QAAA;UAAAoD,OAAA,EAAAA,CAAA,MAGP+B,MAAM,CAACd,KAAK,IAAIH,KAAK,CAACzB,KAAK,IAC3B;UACA;UAAApC,YAAA;YAAA;YAAA,SAGQ;cAAE,yBAAyB,EAAE6D,KAAK,CAACxB;YAAa,CAAC;YAAA,WAC/C4E,YAAY;YAAA,aACVlF,IAAI,CAAC,CAAC;YAAA,WACRA,IAAI,CAAC,CAAC;YAAA;UAAA,QAGhB;QAAA,IAAA/B,YAAA,CAAAkB,cAAA,EAAAb,WAAA;UAAA,gBAGa0G,YAAY;UAAA,gBACZC,YAAY;UAAA;QAAA,GAEtBrB,uBAAuB,CAAC3B,KAAK;UAAAjB,OAAA,EAAAA,CAAA,MAAAxC,eAAA,CAAAP,YAAA,QAAAK,WAAA;YAAA,SAKzB;cACN,kBAAkB,EAAE,IAAI;cACxB,GAAGoH,sBAAsB,CAACzD;YAC3B,CAAC;YAAA,SACM,CACN;cACC,GAAG4B,eAAe,CAAC5B,KAAK;cACxB,GAAGoC,gBAAgB,CAACpC,KAAK;cACzB,GAAGH,KAAK,CAACf;YACV,CAAC;UACD,GACGyC,aAAa,CAACvB,KAAK;YAAA,OAClBW;UAAQ,KAEZR,KAAK,CAACpB,OAAO,GAAG;YAAE+B,MAAM,EAAEA,MAAM,CAACd;UAAM,CAAC,CAAC,MAAA9D,MAAA,EAhBlC4E,MAAM,CAACd,KAAK,IAAA5D,iBAAA,sBACA;YAAE,GAAGuG;UAAsB,CAAC;QAAA,IAmBnD;MAAA;IAIL,CAAC,CAAC;IAEF,OAAO;MACNA,qBAAqB;MACrBpD,UAAU;MACVuB,MAAM;MACNiB,MAAM;MACNG,QAAQ;MACRL,SAAS;MACTC,aAAa,EAAEA,aAA2B;MAC1CpB,MAAM;MACNC,QAAQ;MACRO,IAAI;MACJC,KAAK;MACLC,MAAM;MACNE,cAAc;MACdK,uBAAuB;MACvBS,gBAAgB;MAChBX,eAAe;MACfC,eAAe;MACfS;IACD,CAAC;EACF;AACD,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YLayer.js","names":["computed","getCurrentInstance","mergeProps","reactive","ref","shallowRef","Teleport","Transition","toRef","Fragment","_Fragment","createVNode","_createVNode","vShow","_vShow","resolveDirective","_resolveDirective","_mergeProps","withDirectives","_withDirectives","useModelDuplex","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","ComplementClick","bindClasses","defineComponent","propsFactory","pressBasePropsOptions","useBase","pressContentPropsOptions","useContent","pressScrollStrategyProps","useScrollStrategies","noop","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","maximized","openOnHover","openDelay","closeDelay","zIndex","contained","layerGroup","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","root$","model","active","get","set","v","base","base$","baseEl","baseSlot","baseFromSlotEl","contentEvents","themeClasses","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","lazyValue","onAfterUpdate","finish","hovered","focused","rendered","coordination","coordinateStyles","updateCoordinate","contentEl","root","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","side","align","isMe","vnode","slotBase","class","baseProps"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type { ComponentInternalInstance, PropType, SlotsType } from \"vue\";\r\nimport {\r\n\tcomputed,\r\n\tgetCurrentInstance,\r\n\tmergeProps,\r\n\treactive,\r\n\tref,\r\n\tshallowRef,\r\n\tTeleport,\r\n\tTransition,\r\n\ttoRef,\r\n} from \"vue\";\r\n\r\nimport { useModelDuplex } from \"@/composables/communication\";\r\nimport { useRender } from \"@/composables/component\";\r\nimport { pressCoordinateProps, useCoordinate } from \"@/composables/coordinate\";\r\nimport {\r\n\tpressDimensionPropsOptions,\r\n\tuseDimension,\r\n} from \"@/composables/dimension\";\r\nimport { useLayerGroup } from \"@/composables/layer-group\";\r\nimport { pressThemePropsOptions, useLocalTheme } from \"@/composables/theme\";\r\nimport { useLazy } from \"@/composables/timing\";\r\nimport {\r\n\tPolyTransition,\r\n\tpressPolyTransitionPropsOptions,\r\n\tusePolyTransition,\r\n} from \"@/composables/transition\";\r\nimport {\r\n\tComplementClick,\r\n\ttype ComplementClickBindingOptions,\r\n} from \"@/directives/complement-click\";\r\nimport { bindClasses, defineComponent, propsFactory } from \"@/util/component\";\r\n\r\nimport { pressBasePropsOptions, useBase } from \"./base\";\r\nimport { pressContentPropsOptions, useContent } from \"./content\";\r\nimport {\r\n\tpressScrollStrategyProps,\r\n\tuseScrollStrategies,\r\n} from \"./scroll-strategies\";\r\n\r\nimport \"./YLayer.scss\";\r\nimport type { CssProperties } from \"@/types\";\r\nimport { noop } from \"@/util\";\r\n\r\nexport const pressYLayerProps = propsFactory(\r\n\t{\r\n\t\tmodelValue: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tscrim: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tscrimOpacity: {\r\n\t\t\ttype: Number as PropType<number>,\r\n\t\t},\r\n\t\teager: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tclasses: {\r\n\t\t\ttype: [Array, String, Object] as PropType<\r\n\t\t\t\tstring[] | string | Record<string, any>\r\n\t\t\t>,\r\n\t\t},\r\n\t\tcontentClasses: {\r\n\t\t\ttype: [Array, String, Object] as PropType<\r\n\t\t\t\tstring[] | string | Record<string, any>\r\n\t\t\t>,\r\n\t\t},\r\n\t\tcloseClickScrim: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tcontentStyles: {\r\n\t\t\ttype: Object as PropType<CssProperties>,\r\n\t\t\tdefault: () => {},\r\n\t\t},\r\n\t\tdisabled: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t\tdefault: false,\r\n\t\t},\r\n\t\tmaximized: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\topenOnHover: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t\tdefault: false,\r\n\t\t},\r\n\t\topenDelay: {\r\n\t\t\ttype: Number as PropType<number>,\r\n\t\t\tdefault: 200,\r\n\t\t},\r\n\t\tcloseDelay: {\r\n\t\t\ttype: Number as PropType<number>,\r\n\t\t\tdefault: 200,\r\n\t\t},\r\n\t\tzIndex: {\r\n\t\t\ttype: [Number, String] as PropType<number | string>,\r\n\t\t\tdefault: 2000,\r\n\t\t},\r\n\t\tcontained: Boolean,\r\n\t\tlayerGroup: [String, Object] as PropType<string | Element>,\r\n\t\t...pressThemePropsOptions(),\r\n\t\t...pressPolyTransitionPropsOptions(),\r\n\t\t...pressBasePropsOptions(),\r\n\t\t...pressContentPropsOptions(),\r\n\t\t...pressCoordinateProps(),\r\n\t\t...pressScrollStrategyProps(),\r\n\t\t...pressDimensionPropsOptions(),\r\n\t},\r\n\t\"YLayer\",\r\n);\r\n\r\nexport const YLayer = defineComponent({\r\n\tname: \"YLayer\",\r\n\tinheritAttrs: false,\r\n\tcomponents: {\r\n\t\tPolyTransition,\r\n\t},\r\n\tdirectives: {\r\n\t\tComplementClick,\r\n\t},\r\n\tprops: {\r\n\t\tmodal: Boolean as PropType<boolean>,\r\n\t\t...pressYLayerProps(),\r\n\t},\r\n\temits: {\r\n\t\t\"update:modelValue\": (value: boolean) => true,\r\n\t\t\"click:complement\": (mouseEvent: MouseEvent) => true,\r\n\t\tafterLeave: () => true,\r\n\t},\r\n\tslots: Object as SlotsType<{\r\n\t\tbase: any;\r\n\t\tdefault: any;\r\n\t}>,\r\n\tsetup(props, { emit, expose, attrs, slots }) {\r\n\t\tconst vm = getCurrentInstance();\r\n\t\tconst scrim$ = ref<HTMLElement>();\r\n\t\tconst content$ = ref<HTMLElement>();\r\n\t\tconst root$ = ref<HTMLElement>();\r\n\t\tconst model = useModelDuplex(props);\r\n\t\tconst active = computed({\r\n\t\t\tget: (): boolean => {\r\n\t\t\t\treturn !!model.value;\r\n\t\t\t},\r\n\t\t\tset: (v: boolean) => {\r\n\t\t\t\tif (!(v && props.disabled)) model.value = v;\r\n\t\t\t},\r\n\t\t});\r\n\t\t// Frags\r\n\t\tconst { base, base$, baseEl, baseSlot, baseFromSlotEl } = useBase(props);\r\n\t\tconst { contentEvents } = useContent(props, active);\r\n\t\tconst { themeClasses } = useLocalTheme(props);\r\n\t\tconst { layerGroup, layerGroupState, getActiveLayers } =\r\n\t\t\tuseLayerGroup(props);\r\n\t\tconst { polyTransitionBindProps } = usePolyTransition(props);\r\n\t\tconst { dimensionStyles } = useDimension(props);\r\n\r\n\t\tconst { lazyValue, onAfterUpdate } = useLazy(toRef(props, \"eager\"), active);\r\n\t\t// States\r\n\t\tconst finish = shallowRef(false);\r\n\t\tconst hovered = ref(false);\r\n\t\tconst focused = ref(false);\r\n\t\tconst disabled = toRef(props, \"disabled\");\r\n\t\tconst maximized = toRef(props, \"maximized\");\r\n\r\n\t\tconst rendered = computed<boolean>(\r\n\t\t\t() => !disabled.value && (lazyValue.value || active.value),\r\n\t\t);\r\n\r\n\t\tconst { coordination, coordinateStyles, updateCoordinate } = useCoordinate(props, {\r\n\t\t\tcontentEl: content$,\r\n\t\t\tbase,\r\n\t\t\tactive,\r\n\t\t});\r\n\t\tuseScrollStrategies(props, {\r\n\t\t\troot: root$,\r\n\t\t\tcontentEl: content$,\r\n\t\t\tactive,\r\n\t\t\tbaseEl: base,\r\n\t\t\tupdateCoordinate,\r\n\t\t});\r\n\r\n\t\tfunction onClickComplementLayer(mouseEvent: MouseEvent) {\r\n\t\t\temit(\"click:complement\", mouseEvent);\r\n\t\t\tif (!props.modal) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tscrim$.value !== null &&\r\n\t\t\t\t\tscrim$.value === mouseEvent.target &&\r\n\t\t\t\t\tprops.closeClickScrim\r\n\t\t\t\t) {\r\n\t\t\t\t\tactive.value = false;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// TODO: shrug ani\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction closeConditional(): boolean {\r\n\t\t\treturn (\r\n\t\t\t\t(!props.openOnHover || (props.openOnHover && !hovered.value)) &&\r\n\t\t\t\tactive.value &&\r\n\t\t\t\tfinish.value\r\n\t\t\t); // TODO: && groupTopLevel.value;\r\n\t\t}\r\n\r\n\t\tconst complementClickOption = reactive<ComplementClickBindingOptions>({\r\n\t\t\thandler: onClickComplementLayer,\r\n\t\t\tdetermine: closeConditional,\r\n\t\t\tinclude: () => [baseEl.value],\r\n\t\t});\r\n\r\n\t\tfunction onAfterEnter() {\r\n\t\t\tfinish.value = true;\r\n\t\t}\r\n\r\n\t\tfunction onAfterLeave() {\r\n\t\t\tonAfterUpdate();\r\n\t\t\tfinish.value = false;\r\n\t\t\temit(\"afterLeave\");\r\n\t\t}\r\n\r\n\t\tfunction onClickScrim() {\r\n\t\t\tif (props.closeClickScrim) {\r\n\t\t\t\tactive.value = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onMouseenter(event: Event) {\r\n\t\t\thovered.value = true;\r\n\t\t}\r\n\r\n\t\tfunction onMouseleave(event: Event) {\r\n\t\t\thovered.value = false;\r\n\t\t}\r\n\r\n\t\tconst computedStyle = computed(() => {\r\n\t\t\treturn {\r\n\t\t\t\tzIndex: (props.zIndex ?? \"2000\").toString(),\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst computedClass = computed<Record<string, boolean>>(() => {\r\n\t\t\tconst { classes } = props;\r\n\t\t\tconst boundClasses = bindClasses(classes);\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n\t\t\t\t\"y-layer--active\": !!active.value,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst computedContentClasses = computed<Record<string, boolean>>(() => {\r\n\t\t\tconst boundClasses = bindClasses(props.contentClasses);\r\n\t\t\tconst { side, align } = coordination.value;\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n [`y-layer--side-${side}`]: !!side,\r\n [`y-layer--align-${align}`]: !!align,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\texpose({\r\n\t\t\tscrim$,\r\n\t\t\tbase$,\r\n\t\t\tcontent$: computed(() => content$.value),\r\n\t\t\tbaseEl,\r\n\t\t\tactive,\r\n\t\t\tonAfterUpdate,\r\n\t\t\tupdateCoordinate,\r\n\t\t\thovered,\r\n\t\t\tfinish,\r\n\t\t\tmodal: computed(() => props.modal),\r\n\t\t\tgetActiveLayers,\r\n\t\t\tisMe: (vnode: ComponentInternalInstance) => {\r\n\t\t\t\treturn vnode === vm;\r\n\t\t\t},\r\n\t\t\tcoordination,\r\n\t\t});\r\n\r\n\t\tuseRender(() => {\r\n\t\t\tconst slotBase = slots.base?.({\r\n\t\t\t\tactive: active.value,\r\n\t\t\t\tprops: mergeProps({\r\n\t\t\t\t\tref: base$,\r\n\t\t\t\t\tclass: {\r\n\t\t\t\t\t\t\"y-layer-base\": true,\r\n\t\t\t\t\t\t\"y-layer-base--active\": active.value,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t...(props.baseProps ?? {}),\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\t\t\tbaseSlot.value = slotBase;\r\n\t\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\t{slotBase}\r\n\t\t\t\t\t<Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\r\n\t\t\t\t\t\t{rendered.value && (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclass={[\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\"y-layer\": true,\r\n\t\t\t\t\t\t\t\t\t\t\"y-layer--finish\": finish.value,\r\n\t\t\t\t\t\t\t\t\t\t\"y-layer--contained\": props.contained,\r\n\t\t\t\t\t\t\t\t\t\t...computedClass.value,\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tthemeClasses.value,\r\n\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\tonMouseenter={onMouseenter}\r\n\t\t\t\t\t\t\t\tonMouseleave={onMouseleave}\r\n\t\t\t\t\t\t\t\tstyle={computedStyle.value}\r\n\t\t\t\t\t\t\t\tref={root$}\r\n\t\t\t\t\t\t\t\t{...attrs}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Transition name=\"fade\" appear>\r\n\t\t\t\t\t\t\t\t\t{active.value && props.scrim && (\r\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/noStaticElementInteractions: <explanation>\r\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/useKeyWithClickEvents: <explanation>\r\n\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"y-layer__scrim\"\r\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ \"--y-layer-scrim-opacity\": props.scrimOpacity }}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={onClickScrim}\r\n\t\t\t\t\t\t\t\t\t\t\tonKeydown={noop()}\r\n\t\t\t\t\t\t\t\t\t\t\tonKeyup={noop()}\r\n\t\t\t\t\t\t\t\t\t\t\tref=\"scrim$\"\r\n\t\t\t\t\t\t\t\t\t\t></div>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Transition>\r\n\t\t\t\t\t\t\t\t<PolyTransition\r\n\t\t\t\t\t\t\t\t\tonAfterEnter={onAfterEnter}\r\n\t\t\t\t\t\t\t\t\tonAfterLeave={onAfterLeave}\r\n\t\t\t\t\t\t\t\t\tappear\r\n\t\t\t\t\t\t\t\t\t{...polyTransitionBindProps.value}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\tv-show={active.value}\r\n\t\t\t\t\t\t\t\t\t\tv-complement-click={{ ...complementClickOption }}\r\n\t\t\t\t\t\t\t\t\t\tclass={{\r\n\t\t\t\t\t\t\t\t\t\t\t\"y-layer__content\": true,\r\n\t\t\t\t\t\t\t\t\t\t\t...computedContentClasses.value,\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tstyle={[\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t...dimensionStyles.value,\r\n\t\t\t\t\t\t\t\t\t\t\t\t...coordinateStyles.value,\r\n\t\t\t\t\t\t\t\t\t\t\t\t...props.contentStyles,\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\t\t\t{...contentEvents.value}\r\n\t\t\t\t\t\t\t\t\t\tref={content$}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{slots.default?.({ active: active.value })}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</PolyTransition>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Teleport>\r\n\t\t\t\t</>\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tcomplementClickOption,\r\n\t\t\tlayerGroup,\r\n\t\t\tactive,\r\n\t\t\tfinish,\r\n\t\t\trendered,\r\n\t\t\tlazyValue,\r\n\t\t\tonAfterUpdate: onAfterUpdate as () => void,\r\n\t\t\tscrim$,\r\n\t\t\tcontent$,\r\n\t\t\tbase,\r\n\t\t\tbase$,\r\n\t\t\tbaseEl,\r\n\t\t\tbaseFromSlotEl,\r\n\t\t\tpolyTransitionBindProps,\r\n\t\t\tcoordinateStyles,\r\n\t\t\tlayerGroupState,\r\n\t\t\tgetActiveLayers,\r\n\t\t\tcoordination,\r\n\t\t};\r\n\t},\r\n});\r\n\r\nexport type YLayer = InstanceType<typeof YLayer>;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","names":["computed","getCurrentInstance","nextTick","ref","watchEffect","propsFactory","pressBasePropsOptions","base","String","Object","Array","baseProps","useBase","props","vm","base$","baseSlot","baseEl","baseFromSlotEl","el","value","nodeType","Node","ELEMENT_NODE","undefined","getBase","isArray","toEl","$el","flush","proxy","selector","ret","parentNode","parentEl","hasAttribute","document","querySelector"],"sources":["../../../src/components/layer/base.ts"],"sourcesContent":["import {\n type ComponentInternalInstance,\n type ComponentPublicInstance,\n computed,\n getCurrentInstance,\n nextTick,\n type PropType,\n ref,\n watchEffect,\n} from 'vue';\n\nimport { propsFactory } from '@/util/component';\n\nexport type BaseType =\n | string\n | Element\n | ComponentPublicInstance\n | [x: number, y: number]\n | undefined;\n\nexport const pressBasePropsOptions = propsFactory(\n {\n base: [String, Object, Array] as PropType<BaseType>,\n baseProps: Object as PropType<Record<string, any>>,\n },\n 'YLayer.base',\n);\n\ninterface BaseProps {\n base: BaseType;\n baseProps: Record<string, any> | undefined;\n modelValue?: boolean;\n}\n\nexport function useBase(props: BaseProps) {\n const vm = getCurrentInstance()!;\n\n const base$ = ref();\n const baseSlot = ref();\n const baseEl = ref<HTMLElement>();\n\n const baseFromSlotEl = computed(() => {\n const el = baseSlot.value?.[0]?.el;\n if (el && el.nodeType === Node.ELEMENT_NODE) {\n return el;\n }\n return undefined;\n });\n\n const base = computed(() => {\n if (baseEl.value && !props.base) {\n return baseEl.value;\n }\n return getBase(props.base, vm);\n });\n\n watchEffect(\n () => {\n if (!base$.value) {\n if (!baseFromSlotEl.value && props.base && !Array.isArray(props.base)) {\n baseEl.value = base.value as HTMLElement;\n return;\n }\n baseEl.value = baseFromSlotEl.value;\n return;\n }\n let toEl = base$.value;\n if (toEl.baseEl) {\n toEl = toEl.baseEl;\n }\n if (base$.value?.$el) {\n if (base$.value.$el.nodeType === Node.ELEMENT_NODE) {\n toEl = base$.value.$el;\n }\n }\n if (toEl?.nodeType !== Node.ELEMENT_NODE) {\n toEl = baseFromSlotEl.value;\n }\n baseEl.value = toEl;\n },\n { flush: 'post' },\n );\n\n // If the node is created before rendering or before its parent layer component, baseEl is looked up once more.\n nextTick(() => {\n if (vm?.proxy?.$el && !base.value) {\n baseEl.value = getBase(props.base, vm);\n }\n });\n\n return {\n /**\n * for templateRef from base slot\n */\n base$,\n baseEl,\n baseSlot,\n base,\n baseFromSlotEl,\n };\n}\n\nfunction getBase(selector: BaseType, vm: ComponentInternalInstance) {\n if (!selector) return;\n\n let ret: any;\n\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode;\n let parentEl = el;\n while (el) {\n if (el?.hasAttribute('data-base-parent')) {\n parentEl = el;\n break;\n }\n el = el.parentNode;\n }\n ret = parentEl;\n }\n // Selector\n else if (typeof selector === 'string') {\n ret = document.querySelector(selector);\n }\n // Component\n else if ('$el' in selector) {\n ret = selector.$el;\n }\n // HTMLElement | Element | [x, y]\n else {\n ret = selector;\n }\n\n return ret;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"base.js","names":["computed","getCurrentInstance","nextTick","ref","watchEffect","propsFactory","pressBasePropsOptions","base","String","Object","Array","baseProps","useBase","props","vm","base$","baseSlot","baseEl","baseFromSlotEl","el","value","nodeType","Node","ELEMENT_NODE","undefined","getBase","isArray","toEl","$el","flush","proxy","selector","ret","parentNode","parentEl","hasAttribute","document","querySelector"],"sources":["../../../src/components/layer/base.ts"],"sourcesContent":["import {\r\n type ComponentInternalInstance,\r\n type ComponentPublicInstance,\r\n computed,\r\n getCurrentInstance,\r\n nextTick,\r\n type PropType,\r\n ref,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { propsFactory } from '@/util/component';\r\n\r\nexport type BaseType =\r\n | string\r\n | Element\r\n | ComponentPublicInstance\r\n | [x: number, y: number]\r\n | undefined;\r\n\r\nexport const pressBasePropsOptions = propsFactory(\r\n {\r\n base: [String, Object, Array] as PropType<BaseType>,\r\n baseProps: Object as PropType<Record<string, any>>,\r\n },\r\n 'YLayer.base',\r\n);\r\n\r\ninterface BaseProps {\r\n base: BaseType;\r\n baseProps: Record<string, any> | undefined;\r\n modelValue?: boolean;\r\n}\r\n\r\nexport function useBase(props: BaseProps) {\r\n const vm = getCurrentInstance()!;\r\n\r\n const base$ = ref();\r\n const baseSlot = ref();\r\n const baseEl = ref<HTMLElement>();\r\n\r\n const baseFromSlotEl = computed(() => {\r\n const el = baseSlot.value?.[0]?.el;\r\n if (el && el.nodeType === Node.ELEMENT_NODE) {\r\n return el;\r\n }\r\n return undefined;\r\n });\r\n\r\n const base = computed(() => {\r\n if (baseEl.value && !props.base) {\r\n return baseEl.value;\r\n }\r\n return getBase(props.base, vm);\r\n });\r\n\r\n watchEffect(\r\n () => {\r\n if (!base$.value) {\r\n if (!baseFromSlotEl.value && props.base && !Array.isArray(props.base)) {\r\n baseEl.value = base.value as HTMLElement;\r\n return;\r\n }\r\n baseEl.value = baseFromSlotEl.value;\r\n return;\r\n }\r\n let toEl = base$.value;\r\n if (toEl.baseEl) {\r\n toEl = toEl.baseEl;\r\n }\r\n if (base$.value?.$el) {\r\n if (base$.value.$el.nodeType === Node.ELEMENT_NODE) {\r\n toEl = base$.value.$el;\r\n }\r\n }\r\n if (toEl?.nodeType !== Node.ELEMENT_NODE) {\r\n toEl = baseFromSlotEl.value;\r\n }\r\n baseEl.value = toEl;\r\n },\r\n { flush: 'post' },\r\n );\r\n\r\n // If the node is created before rendering or before its parent layer component, baseEl is looked up once more.\r\n nextTick(() => {\r\n if (vm?.proxy?.$el && !base.value) {\r\n baseEl.value = getBase(props.base, vm);\r\n }\r\n });\r\n\r\n return {\r\n /**\r\n * for templateRef from base slot\r\n */\r\n base$,\r\n baseEl,\r\n baseSlot,\r\n base,\r\n baseFromSlotEl,\r\n };\r\n}\r\n\r\nfunction getBase(selector: BaseType, vm: ComponentInternalInstance) {\r\n if (!selector) return;\r\n\r\n let ret: any;\r\n\r\n if (selector === 'parent') {\r\n let el = vm?.proxy?.$el?.parentNode;\r\n let parentEl = el;\r\n while (el) {\r\n if (el?.hasAttribute('data-base-parent')) {\r\n parentEl = el;\r\n break;\r\n }\r\n el = el.parentNode;\r\n }\r\n ret = parentEl;\r\n }\r\n // Selector\r\n else if (typeof selector === 'string') {\r\n ret = document.querySelector(selector);\r\n }\r\n // Component\r\n else if ('$el' in selector) {\r\n ret = selector.$el;\r\n }\r\n // HTMLElement | Element | [x, y]\r\n else {\r\n ret = selector;\r\n }\r\n\r\n return ret;\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","names":["computed","propsFactory","pressContentPropsOptions","closeClickContent","type","Boolean","useContent","props","active","contentEvents","events","onClick","e","value"],"sources":["../../../src/components/layer/content.ts"],"sourcesContent":["import { computed, type PropType, type Ref } from 'vue';\n\nimport { propsFactory } from '@/util/component';\n\nexport const pressContentPropsOptions = propsFactory(\n {\n closeClickContent: {\n type: Boolean as PropType<boolean>,\n },\n },\n 'YLayer.content',\n);\n\ninterface ContentProps {\n closeClickContent: boolean | undefined;\n}\n\nexport function useContent(props: ContentProps, active: Ref<boolean>) {\n const contentEvents = computed(() => {\n const events: Record<string, EventListener> = {};\n\n if (props.closeClickContent) {\n events.onClick = (e: Event) => {\n active.value = false;\n };\n }\n\n return events;\n });\n\n return {\n contentEvents,\n };\n}\n"],"mappings":"AAAA,SAASA,QAAQ,QAAiC,KAAK;AAAC,SAE/CC,YAAY;AAErB,OAAO,MAAMC,wBAAwB,GAAGD,YAAY,CAClD;EACEE,iBAAiB,EAAE;IACjBC,IAAI,EAAEC;EACR;AACF,CAAC,EACD,gBACF,CAAC;AAMD,OAAO,SAASC,UAAUA,CAACC,KAAmB,EAAEC,MAAoB,EAAE;EACpE,MAAMC,aAAa,GAAGT,QAAQ,CAAC,MAAM;IACnC,MAAMU,MAAqC,GAAG,CAAC,CAAC;IAEhD,IAAIH,KAAK,CAACJ,iBAAiB,EAAE;MAC3BO,MAAM,CAACC,OAAO,GAAIC,CAAQ,IAAK;QAC7BJ,MAAM,CAACK,KAAK,GAAG,KAAK;MACtB,CAAC;IACH;IAEA,OAAOH,MAAM;EACf,CAAC,CAAC;EAEF,OAAO;IACLD;EACF,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"content.js","names":["computed","propsFactory","pressContentPropsOptions","closeClickContent","type","Boolean","useContent","props","active","contentEvents","events","onClick","e","value"],"sources":["../../../src/components/layer/content.ts"],"sourcesContent":["import { computed, type PropType, type Ref } from 'vue';\r\n\r\nimport { propsFactory } from '@/util/component';\r\n\r\nexport const pressContentPropsOptions = propsFactory(\r\n {\r\n closeClickContent: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n },\r\n 'YLayer.content',\r\n);\r\n\r\ninterface ContentProps {\r\n closeClickContent: boolean | undefined;\r\n}\r\n\r\nexport function useContent(props: ContentProps, active: Ref<boolean>) {\r\n const contentEvents = computed(() => {\r\n const events: Record<string, EventListener> = {};\r\n\r\n if (props.closeClickContent) {\r\n events.onClick = (e: Event) => {\r\n active.value = false;\r\n };\r\n }\r\n\r\n return events;\r\n });\r\n\r\n return {\r\n contentEvents,\r\n };\r\n}\r\n"],"mappings":"AAAA,SAASA,QAAQ,QAAiC,KAAK;AAAC,SAE/CC,YAAY;AAErB,OAAO,MAAMC,wBAAwB,GAAGD,YAAY,CAClD;EACEE,iBAAiB,EAAE;IACjBC,IAAI,EAAEC;EACR;AACF,CAAC,EACD,gBACF,CAAC;AAMD,OAAO,SAASC,UAAUA,CAACC,KAAmB,EAAEC,MAAoB,EAAE;EACpE,MAAMC,aAAa,GAAGT,QAAQ,CAAC,MAAM;IACnC,MAAMU,MAAqC,GAAG,CAAC,CAAC;IAEhD,IAAIH,KAAK,CAACJ,iBAAiB,EAAE;MAC3BO,MAAM,CAACC,OAAO,GAAIC,CAAQ,IAAK;QAC7BJ,MAAM,CAACK,KAAK,GAAG,KAAK;MACtB,CAAC;IACH;IAEA,OAAOH,MAAM;EACf,CAAC,CAAC;EAEF,OAAO;IACLD;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YListItem.js","names":["computed","createVNode","_createVNode","useRender","pressThemePropsOptions","useLocalTheme","defineComponent","propsFactory","pressYListItemProps","tag","type","String","default","onClick","Function","disabled","Boolean","YListItem","name","props","emits","click","e","slots","Object","setup","_ref","emit","themeClasses","clickable","ElTag","value","leading","trailing"],"sources":["../../../src/components/list/YListItem.tsx"],"sourcesContent":["import { computed, SlotsType } from 'vue';\n\nimport { useRender } from '@/composables/component';\nimport { pressThemePropsOptions, useLocalTheme } from '@/composables/theme';\nimport { defineComponent, propsFactory } from '@/util/component';\n\nimport './YListItem.scss';\n\nexport const pressYListItemProps = propsFactory(\n {\n tag: {\n type: String,\n default: 'div',\n },\n onClick: Function,\n disabled: Boolean,\n ...pressThemePropsOptions(),\n },\n 'YListItem',\n);\n\nexport const YListItem = defineComponent({\n name: 'YListItem',\n props: {\n ...pressYListItemProps(),\n },\n emits: {\n click: (e: MouseEvent) => true,\n },\n slots: Object as SlotsType<{\n default: any;\n leading: any;\n trailing: any;\n }>,\n setup(props, { slots, emit }) {\n const { themeClasses } = useLocalTheme(props);\n\n function onClick(e: MouseEvent) {\n emit('click', e);\n }\n\n const clickable = computed(() => {\n return !props.disabled && !!props.onClick;\n });\n\n useRender(() => {\n const ElTag = props.tag as keyof HTMLElementTagNameMap;\n return (\n <ElTag\n class={[\n 'y-list-item',\n {\n 'y-list-item--pointer': clickable.value,\n 'y-list-item--disabled': props.disabled,\n },\n themeClasses.value,\n ]}\n onClick={onClick}\n >\n {slots.leading && (\n <div class={'y-list-item__leading'}>{slots.leading()}</div>\n )}\n <div class={'y-list-item__content'}>{slots.default?.()}</div>\n {slots.trailing && (\n <div class={'y-list-item__trailing'}>{slots.trailing()}</div>\n )}\n </ElTag>\n );\n });\n },\n});\n\nexport type YListItem = InstanceType<typeof YListItem>;\n"],"mappings":"AAAA,SAASA,QAAQ,EAAAC,WAAA,IAAAC,YAAA,QAAmB,KAAK;AAAC,SAEjCC,SAAS;AAAA,SACTC,sBAAsB,EAAEC,aAAa;AAAA,SACrCC,eAAe,EAAEC,YAAY;AAEtC;AAEA,OAAO,MAAMC,mBAAmB,GAAGD,YAAY,CAC7C;EACEE,GAAG,EAAE;IACHC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDC,OAAO,EAAEC,QAAQ;EACjBC,QAAQ,EAAEC,OAAO;EACjB,GAAGZ,sBAAsB,CAAC;AAC5B,CAAC,EACD,WACF,CAAC;AAED,OAAO,MAAMa,SAAS,GAAGX,eAAe,CAAC;EACvCY,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE;IACL,GAAGX,mBAAmB,CAAC;EACzB,CAAC;EACDY,KAAK,EAAE;IACLC,KAAK,EAAGC,CAAa,IAAK;EAC5B,CAAC;EACDC,KAAK,EAAEC,MAIL;EACFC,KAAKA,CAACN,KAAK,EAAAO,IAAA,EAAmB;IAAA,IAAjB;MAAEH,KAAK;MAAEI;IAAK,CAAC,GAAAD,IAAA;IAC1B,MAAM;MAAEE;IAAa,CAAC,GAAGvB,aAAa,CAACc,KAAK,CAAC;IAE7C,SAASN,OAAOA,CAACS,CAAa,EAAE;MAC9BK,IAAI,CAAC,OAAO,EAAEL,CAAC,CAAC;IAClB;IAEA,MAAMO,SAAS,GAAG7B,QAAQ,CAAC,MAAM;MAC/B,OAAO,CAACmB,KAAK,CAACJ,QAAQ,IAAI,CAAC,CAACI,KAAK,CAACN,OAAO;IAC3C,CAAC,CAAC;IAEFV,SAAS,CAAC,MAAM;MACd,MAAM2B,KAAK,GAAGX,KAAK,CAACV,GAAkC;MACtD,OAAAP,YAAA,CAAA4B,KAAA;QAAA,SAEW,CACL,aAAa,EACb;UACE,sBAAsB,EAAED,SAAS,CAACE,KAAK;UACvC,uBAAuB,EAAEZ,KAAK,CAACJ;QACjC,CAAC,EACDa,YAAY,CAACG,KAAK,CACnB;QAAA,WACQlB;MAAO;QAAAD,OAAA,EAAAA,CAAA,MAEfW,KAAK,CAACS,OAAO,IAAA9B,YAAA;UAAA,SACA;QAAsB,IAAGqB,KAAK,CAACS,OAAO,CAAC,CAAC,EACrD,EAAA9B,YAAA;UAAA,SACW;QAAsB,IAAGqB,KAAK,CAACX,OAAO,GAAG,CAAC,IACrDW,KAAK,CAACU,QAAQ,IAAA/B,YAAA;UAAA,SACD;QAAuB,IAAGqB,KAAK,CAACU,QAAQ,CAAC,CAAC,EACvD;MAAA;IAGP,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YListItem.js","names":["computed","createVNode","_createVNode","useRender","pressThemePropsOptions","useLocalTheme","defineComponent","propsFactory","pressYListItemProps","tag","type","String","default","onClick","Function","disabled","Boolean","YListItem","name","props","emits","click","e","slots","Object","setup","_ref","emit","themeClasses","clickable","ElTag","value","leading","trailing"],"sources":["../../../src/components/list/YListItem.tsx"],"sourcesContent":["import { computed, SlotsType } from 'vue';\r\n\r\nimport { useRender } from '@/composables/component';\r\nimport { pressThemePropsOptions, useLocalTheme } from '@/composables/theme';\r\nimport { defineComponent, propsFactory } from '@/util/component';\r\n\r\nimport './YListItem.scss';\r\n\r\nexport const pressYListItemProps = propsFactory(\r\n {\r\n tag: {\r\n type: String,\r\n default: 'div',\r\n },\r\n onClick: Function,\r\n disabled: Boolean,\r\n ...pressThemePropsOptions(),\r\n },\r\n 'YListItem',\r\n);\r\n\r\nexport const YListItem = defineComponent({\r\n name: 'YListItem',\r\n props: {\r\n ...pressYListItemProps(),\r\n },\r\n emits: {\r\n click: (e: MouseEvent) => true,\r\n },\r\n slots: Object as SlotsType<{\r\n default: any;\r\n leading: any;\r\n trailing: any;\r\n }>,\r\n setup(props, { slots, emit }) {\r\n const { themeClasses } = useLocalTheme(props);\r\n\r\n function onClick(e: MouseEvent) {\r\n emit('click', e);\r\n }\r\n\r\n const clickable = computed(() => {\r\n return !props.disabled && !!props.onClick;\r\n });\r\n\r\n useRender(() => {\r\n const ElTag = props.tag as keyof HTMLElementTagNameMap;\r\n return (\r\n <ElTag\r\n class={[\r\n 'y-list-item',\r\n {\r\n 'y-list-item--pointer': clickable.value,\r\n 'y-list-item--disabled': props.disabled,\r\n },\r\n themeClasses.value,\r\n ]}\r\n onClick={onClick}\r\n >\r\n {slots.leading && (\r\n <div class={'y-list-item__leading'}>{slots.leading()}</div>\r\n )}\r\n <div class={'y-list-item__content'}>{slots.default?.()}</div>\r\n {slots.trailing && (\r\n <div class={'y-list-item__trailing'}>{slots.trailing()}</div>\r\n )}\r\n </ElTag>\r\n );\r\n });\r\n },\r\n});\r\n\r\nexport type YListItem = InstanceType<typeof YListItem>;\r\n"],"mappings":"AAAA,SAASA,QAAQ,EAAAC,WAAA,IAAAC,YAAA,QAAmB,KAAK;AAAC,SAEjCC,SAAS;AAAA,SACTC,sBAAsB,EAAEC,aAAa;AAAA,SACrCC,eAAe,EAAEC,YAAY;AAEtC;AAEA,OAAO,MAAMC,mBAAmB,GAAGD,YAAY,CAC7C;EACEE,GAAG,EAAE;IACHC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDC,OAAO,EAAEC,QAAQ;EACjBC,QAAQ,EAAEC,OAAO;EACjB,GAAGZ,sBAAsB,CAAC;AAC5B,CAAC,EACD,WACF,CAAC;AAED,OAAO,MAAMa,SAAS,GAAGX,eAAe,CAAC;EACvCY,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE;IACL,GAAGX,mBAAmB,CAAC;EACzB,CAAC;EACDY,KAAK,EAAE;IACLC,KAAK,EAAGC,CAAa,IAAK;EAC5B,CAAC;EACDC,KAAK,EAAEC,MAIL;EACFC,KAAKA,CAACN,KAAK,EAAAO,IAAA,EAAmB;IAAA,IAAjB;MAAEH,KAAK;MAAEI;IAAK,CAAC,GAAAD,IAAA;IAC1B,MAAM;MAAEE;IAAa,CAAC,GAAGvB,aAAa,CAACc,KAAK,CAAC;IAE7C,SAASN,OAAOA,CAACS,CAAa,EAAE;MAC9BK,IAAI,CAAC,OAAO,EAAEL,CAAC,CAAC;IAClB;IAEA,MAAMO,SAAS,GAAG7B,QAAQ,CAAC,MAAM;MAC/B,OAAO,CAACmB,KAAK,CAACJ,QAAQ,IAAI,CAAC,CAACI,KAAK,CAACN,OAAO;IAC3C,CAAC,CAAC;IAEFV,SAAS,CAAC,MAAM;MACd,MAAM2B,KAAK,GAAGX,KAAK,CAACV,GAAkC;MACtD,OAAAP,YAAA,CAAA4B,KAAA;QAAA,SAEW,CACL,aAAa,EACb;UACE,sBAAsB,EAAED,SAAS,CAACE,KAAK;UACvC,uBAAuB,EAAEZ,KAAK,CAACJ;QACjC,CAAC,EACDa,YAAY,CAACG,KAAK,CACnB;QAAA,WACQlB;MAAO;QAAAD,OAAA,EAAAA,CAAA,MAEfW,KAAK,CAACS,OAAO,IAAA9B,YAAA;UAAA,SACA;QAAsB,IAAGqB,KAAK,CAACS,OAAO,CAAC,CAAC,EACrD,EAAA9B,YAAA;UAAA,SACW;QAAsB,IAAGqB,KAAK,CAACX,OAAO,GAAG,CAAC,IACrDW,KAAK,CAACU,QAAQ,IAAA/B,YAAA;UAAA,SACD;QAAuB,IAAGqB,KAAK,CAACU,QAAQ,CAAC,CAAC,EACvD;MAAA;IAGP,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YMenu.js","names":["computed","getCurrentInstance","ref","toRef","watch","Fragment","_Fragment","createVNode","_createVNode","mergeProps","_mergeProps","useModelDuplex","useRender","pressPolyTransitionPropsOptions","bindClasses","chooseProps","defineComponent","hasElementMouseEvent","toKebabCase","pressYLayerProps","YLayer","useDelay","useActiveStack","NAME","CLASS_NAME","YMenuPropOptions","menuClasses","type","Array","String","Object","openOnClickBase","Boolean","default","closeCondition","Function","undefined","preventClip","coordinateStrategy","scrollStrategy","preventCloseBubble","YMenu","name","props","transition","emits","slots","expose","setup","_ref","emit","vm","layer$","classes","boundClasses","active","hovered","value","finish","children","parent","startOpenDelay","startCloseDelay","changeActive","openOnHover","length","onMouseenter","e","onMouseleave","onClick","stopPropagation","currentActive","disabled","onComplementClick","parentContent","$el","content$","parentModal","modal","clear","bindHover","el","addEventListener","unbindHover","removeEventListener","baseEl","neo","old","immediate","computedContentClasses","contentClasses","onAfterLeave","scrim","$event","_len","arguments","args","_key","base","_len2","_key2"],"sources":["../../../src/components/menu/YMenu.tsx"],"sourcesContent":["import {\n\tcomputed,\n\tgetCurrentInstance,\n\ttype PropType,\n\tref,\n\ttype SlotsType,\n\ttoRef,\n\twatch,\n} from \"vue\";\n\nimport { useModelDuplex } from \"@/composables/communication\";\nimport { useRender } from \"@/composables/component\";\nimport { pressPolyTransitionPropsOptions } from \"@/composables/transition\";\nimport { bindClasses, chooseProps, defineComponent } from \"@/util/component\";\nimport { hasElementMouseEvent } from \"@/util/dom\";\nimport { toKebabCase } from \"@/util/string\";\n\nimport { pressYLayerProps, YLayer } from \"../layer\";\nimport { useDelay } from \"../layer/active-delay\";\nimport { useActiveStack } from \"../layer/active-stack\";\n\nimport \"./YMenu.scss\";\n\nconst NAME = \"YMenu\";\nconst CLASS_NAME = toKebabCase(NAME);\n\nexport const YMenuPropOptions = {\n\tmenuClasses: {\n\t\ttype: [Array, String, Object] as PropType<\n\t\t\tstring[] | string | Record<string, any>\n\t\t>,\n\t},\n\topenOnClickBase: {\n\t\ttype: Boolean as PropType<boolean>,\n\t\tdefault: true,\n\t},\n\tcloseCondition: {\n\t\ttype: [Boolean, Function],\n\t\tdefault: undefined,\n\t},\n\tpreventClip: {\n\t\ttype: Boolean as PropType<boolean>,\n\t\tdefault: true,\n\t},\n\t...pressYLayerProps({\n\t\tcoordinateStrategy: \"levitation\" as const,\n\t\tscrollStrategy: \"reposition\" as const,\n\t}),\n\tpreventCloseBubble: Boolean as PropType<boolean>,\n};\n\n/**\n * # Component\n */\nexport const YMenu = defineComponent({\n\tname: NAME,\n\tprops: {\n\t\t...YMenuPropOptions,\n\t\t...pressPolyTransitionPropsOptions({\n\t\t\ttransition: \"fade\",\n\t\t}),\n\t},\n\temits: [\"update:modelValue\", \"afterLeave\", \"hoverContent\"],\n\tslots: Object as SlotsType<{\n\t\tdefault: any;\n\t\tbase: any;\n\t}>,\n\texpose: [\"layer$\", \"baseEl\"],\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst vm = getCurrentInstance();\n\t\tconst layer$ = ref<typeof YLayer>();\n\n\t\tconst classes = computed(() => {\n\t\t\tconst boundClasses = bindClasses(props.menuClasses);\n\t\t\treturn {\n\t\t\t\t...boundClasses,\n\t\t\t\t\"y-menu\": true,\n\t\t\t};\n\t\t});\n\n\t\tconst active = useModelDuplex(props);\n\t\tconst hovered = computed(() => !!layer$.value?.hovered);\n\t\tconst finish = computed(() => !!layer$.value?.finish);\n\t\tconst { children, parent } = useActiveStack(\n\t\t\tlayer$,\n\t\t\tactive,\n\t\t\ttoRef(props, \"preventCloseBubble\"),\n\t\t);\n\t\tconst { startOpenDelay, startCloseDelay } = useDelay(\n\t\t\tprops,\n\t\t\t(changeActive) => {\n\t\t\t\tif (\n\t\t\t\t\t!changeActive &&\n\t\t\t\t\tprops.openOnHover &&\n\t\t\t\t\t!hovered.value &&\n\t\t\t\t\tchildren.value.length === 0\n\t\t\t\t) {\n\t\t\t\t\tactive.value = false;\n\t\t\t\t} else if (changeActive) {\n\t\t\t\t\tactive.value = true;\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\n\t\tfunction onMouseenter(e: MouseEvent) {\n\t\t\tif (props.openOnHover) {\n\t\t\t\tstartOpenDelay();\n\t\t\t}\n\t\t}\n\n\t\tfunction onMouseleave(e: MouseEvent) {\n\t\t\tif (props.openOnHover) {\n\t\t\t\tstartCloseDelay();\n\t\t\t}\n\t\t}\n\n\t\twatch(hovered, (value) => {\n\t\t\temit(\"hoverContent\", value);\n\t\t\tif (!value) {\n\t\t\t\tstartCloseDelay();\n\t\t\t}\n\t\t});\n\n\t\tfunction onClick(e: MouseEvent) {\n\t\t\te.stopPropagation();\n\t\t\tif (!props.openOnClickBase) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst currentActive = active.value;\n\t\t\tif (!props.disabled) {\n\t\t\t\tif (props.openOnHover && finish.value && currentActive) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tactive.value = !currentActive;\n\t\t\t}\n\t\t}\n\n\t\tfunction onComplementClick(e: Event) {\n\t\t\tif (props.closeCondition === false) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (typeof props.closeCondition === \"function\") {\n\t\t\t\tif (props.closeCondition(e) === false) {\n\t\t\t\t\tactive.value = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (active.value) {\n\t\t\t\tif (children.value.length === 0) {\n\t\t\t\t\tactive.value = false;\n\t\t\t\t}\n\t\t\t\tconst parentContent = parent?.$el.value?.content$;\n\t\t\t\tconst parentModal = parent?.$el.value?.modal;\n\t\t\t\tif (\n\t\t\t\t\t!(parentContent && !hasElementMouseEvent(e, parentContent)) &&\n\t\t\t\t\t!parentModal &&\n\t\t\t\t\t!props.preventCloseBubble\n\t\t\t\t) {\n\t\t\t\t\tparent?.clear();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction bindHover(el: HTMLElement) {\n\t\t\tel.addEventListener(\"mouseenter\", onMouseenter);\n\t\t\tel.addEventListener(\"mouseleave\", onMouseleave);\n\t\t}\n\n\t\tfunction unbindHover(el: HTMLElement) {\n\t\t\tel.removeEventListener(\"mouseenter\", onMouseenter);\n\t\t\tel.removeEventListener(\"mouseleave\", onMouseleave);\n\t\t}\n\n\t\twatch(\n\t\t\t() => layer$.value?.baseEl,\n\t\t\t(neo, old) => {\n\t\t\t\tif (neo) {\n\t\t\t\t\tbindHover(neo);\n\t\t\t\t\tneo.addEventListener(\"click\", onClick);\n\t\t\t\t} else if (old) {\n\t\t\t\t\tunbindHover(old);\n\t\t\t\t\told.removeEventListener(\"click\", onClick);\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t},\n\t\t);\n\n\t\tconst computedContentClasses = computed<Record<string, boolean>>(() => {\n\t\t\tconst boundClasses = bindClasses(props.contentClasses);\n\t\t\treturn {\n\t\t\t\t...boundClasses,\n\t\t\t};\n\t\t});\n\n\t\tconst baseEl = computed(() => {\n\t\t\treturn layer$.value?.baseEl;\n\t\t});\n\n\t\texpose({\n\t\t\tlayer$,\n\t\t\tbaseEl,\n\t\t});\n\n\t\tuseRender(() => {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<YLayer\n\t\t\t\t\t\tref={layer$}\n\t\t\t\t\t\ttransition={props.transition}\n\t\t\t\t\t\tonClick:complement={onComplementClick}\n\t\t\t\t\t\tonAfterLeave={() => emit(\"afterLeave\")}\n\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t...chooseProps(props, YLayer.props),\n\t\t\t\t\t\t\tclasses: classes.value,\n\t\t\t\t\t\t\tscrim: false,\n\t\t\t\t\t\t\tcontentClasses: {\n\t\t\t\t\t\t\t\t\"y-menu__content\": true,\n\t\t\t\t\t\t\t\t...computedContentClasses.value,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tv-model={active.value}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: (...args: any) => {\n\t\t\t\t\t\t\t\treturn <>{slots.default?.(...args) ?? \"\"}</>;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbase: (...args: any[]) => slots.base?.(...args),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</YLayer>\n\t\t\t\t</>\n\t\t\t);\n\t\t});\n\n\t\treturn {\n\t\t\tlayer$,\n\t\t\tbaseEl,\n\t\t\tclasses,\n\t\t\tchildren,\n\t\t\tparent,\n\t\t\tactive,\n\t\t\thovered,\n\t\t};\n\t},\n});\n\nexport type YMenu = InstanceType<typeof YMenu>;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YMenu.js","names":["computed","getCurrentInstance","ref","toRef","watch","Fragment","_Fragment","createVNode","_createVNode","mergeProps","_mergeProps","useModelDuplex","useRender","pressPolyTransitionPropsOptions","bindClasses","chooseProps","defineComponent","hasElementMouseEvent","toKebabCase","pressYLayerProps","YLayer","useDelay","useActiveStack","NAME","CLASS_NAME","YMenuPropOptions","menuClasses","type","Array","String","Object","openOnClickBase","Boolean","default","closeCondition","Function","undefined","preventClip","coordinateStrategy","scrollStrategy","preventCloseBubble","YMenu","name","props","transition","emits","slots","expose","setup","_ref","emit","vm","layer$","classes","boundClasses","active","hovered","value","finish","children","parent","startOpenDelay","startCloseDelay","changeActive","openOnHover","length","onMouseenter","e","onMouseleave","onClick","stopPropagation","currentActive","disabled","onComplementClick","parentContent","$el","content$","parentModal","modal","clear","bindHover","el","addEventListener","unbindHover","removeEventListener","baseEl","neo","old","immediate","computedContentClasses","contentClasses","onAfterLeave","scrim","$event","_len","arguments","args","_key","base","_len2","_key2"],"sources":["../../../src/components/menu/YMenu.tsx"],"sourcesContent":["import {\r\n\tcomputed,\r\n\tgetCurrentInstance,\r\n\ttype PropType,\r\n\tref,\r\n\ttype SlotsType,\r\n\ttoRef,\r\n\twatch,\r\n} from \"vue\";\r\n\r\nimport { useModelDuplex } from \"@/composables/communication\";\r\nimport { useRender } from \"@/composables/component\";\r\nimport { pressPolyTransitionPropsOptions } from \"@/composables/transition\";\r\nimport { bindClasses, chooseProps, defineComponent } from \"@/util/component\";\r\nimport { hasElementMouseEvent } from \"@/util/dom\";\r\nimport { toKebabCase } from \"@/util/string\";\r\n\r\nimport { pressYLayerProps, YLayer } from \"../layer\";\r\nimport { useDelay } from \"../layer/active-delay\";\r\nimport { useActiveStack } from \"../layer/active-stack\";\r\n\r\nimport \"./YMenu.scss\";\r\n\r\nconst NAME = \"YMenu\";\r\nconst CLASS_NAME = toKebabCase(NAME);\r\n\r\nexport const YMenuPropOptions = {\r\n\tmenuClasses: {\r\n\t\ttype: [Array, String, Object] as PropType<\r\n\t\t\tstring[] | string | Record<string, any>\r\n\t\t>,\r\n\t},\r\n\topenOnClickBase: {\r\n\t\ttype: Boolean as PropType<boolean>,\r\n\t\tdefault: true,\r\n\t},\r\n\tcloseCondition: {\r\n\t\ttype: [Boolean, Function],\r\n\t\tdefault: undefined,\r\n\t},\r\n\tpreventClip: {\r\n\t\ttype: Boolean as PropType<boolean>,\r\n\t\tdefault: true,\r\n\t},\r\n\t...pressYLayerProps({\r\n\t\tcoordinateStrategy: \"levitation\" as const,\r\n\t\tscrollStrategy: \"reposition\" as const,\r\n\t}),\r\n\tpreventCloseBubble: Boolean as PropType<boolean>,\r\n};\r\n\r\n/**\r\n * # Component\r\n */\r\nexport const YMenu = defineComponent({\r\n\tname: NAME,\r\n\tprops: {\r\n\t\t...YMenuPropOptions,\r\n\t\t...pressPolyTransitionPropsOptions({\r\n\t\t\ttransition: \"fade\",\r\n\t\t}),\r\n\t},\r\n\temits: [\"update:modelValue\", \"afterLeave\", \"hoverContent\"],\r\n\tslots: Object as SlotsType<{\r\n\t\tdefault: any;\r\n\t\tbase: any;\r\n\t}>,\r\n\texpose: [\"layer$\", \"baseEl\"],\r\n\tsetup(props, { slots, emit, expose }) {\r\n\t\tconst vm = getCurrentInstance();\r\n\t\tconst layer$ = ref<typeof YLayer>();\r\n\r\n\t\tconst classes = computed(() => {\r\n\t\t\tconst boundClasses = bindClasses(props.menuClasses);\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n\t\t\t\t\"y-menu\": true,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst active = useModelDuplex(props);\r\n\t\tconst hovered = computed(() => !!layer$.value?.hovered);\r\n\t\tconst finish = computed(() => !!layer$.value?.finish);\r\n\t\tconst { children, parent } = useActiveStack(\r\n\t\t\tlayer$,\r\n\t\t\tactive,\r\n\t\t\ttoRef(props, \"preventCloseBubble\"),\r\n\t\t);\r\n\t\tconst { startOpenDelay, startCloseDelay } = useDelay(\r\n\t\t\tprops,\r\n\t\t\t(changeActive) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!changeActive &&\r\n\t\t\t\t\tprops.openOnHover &&\r\n\t\t\t\t\t!hovered.value &&\r\n\t\t\t\t\tchildren.value.length === 0\r\n\t\t\t\t) {\r\n\t\t\t\t\tactive.value = false;\r\n\t\t\t\t} else if (changeActive) {\r\n\t\t\t\t\tactive.value = true;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\tfunction onMouseenter(e: MouseEvent) {\r\n\t\t\tif (props.openOnHover) {\r\n\t\t\t\tstartOpenDelay();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onMouseleave(e: MouseEvent) {\r\n\t\t\tif (props.openOnHover) {\r\n\t\t\t\tstartCloseDelay();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twatch(hovered, (value) => {\r\n\t\t\temit(\"hoverContent\", value);\r\n\t\t\tif (!value) {\r\n\t\t\t\tstartCloseDelay();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tfunction onClick(e: MouseEvent) {\r\n\t\t\te.stopPropagation();\r\n\t\t\tif (!props.openOnClickBase) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst currentActive = active.value;\r\n\t\t\tif (!props.disabled) {\r\n\t\t\t\tif (props.openOnHover && finish.value && currentActive) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tactive.value = !currentActive;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onComplementClick(e: Event) {\r\n\t\t\tif (props.closeCondition === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (typeof props.closeCondition === \"function\") {\r\n\t\t\t\tif (props.closeCondition(e) === false) {\r\n\t\t\t\t\tactive.value = false;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (active.value) {\r\n\t\t\t\tif (children.value.length === 0) {\r\n\t\t\t\t\tactive.value = false;\r\n\t\t\t\t}\r\n\t\t\t\tconst parentContent = parent?.$el.value?.content$;\r\n\t\t\t\tconst parentModal = parent?.$el.value?.modal;\r\n\t\t\t\tif (\r\n\t\t\t\t\t!(parentContent && !hasElementMouseEvent(e, parentContent)) &&\r\n\t\t\t\t\t!parentModal &&\r\n\t\t\t\t\t!props.preventCloseBubble\r\n\t\t\t\t) {\r\n\t\t\t\t\tparent?.clear();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction bindHover(el: HTMLElement) {\r\n\t\t\tel.addEventListener(\"mouseenter\", onMouseenter);\r\n\t\t\tel.addEventListener(\"mouseleave\", onMouseleave);\r\n\t\t}\r\n\r\n\t\tfunction unbindHover(el: HTMLElement) {\r\n\t\t\tel.removeEventListener(\"mouseenter\", onMouseenter);\r\n\t\t\tel.removeEventListener(\"mouseleave\", onMouseleave);\r\n\t\t}\r\n\r\n\t\twatch(\r\n\t\t\t() => layer$.value?.baseEl,\r\n\t\t\t(neo, old) => {\r\n\t\t\t\tif (neo) {\r\n\t\t\t\t\tbindHover(neo);\r\n\t\t\t\t\tneo.addEventListener(\"click\", onClick);\r\n\t\t\t\t} else if (old) {\r\n\t\t\t\t\tunbindHover(old);\r\n\t\t\t\t\told.removeEventListener(\"click\", onClick);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timmediate: true,\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\tconst computedContentClasses = computed<Record<string, boolean>>(() => {\r\n\t\t\tconst boundClasses = bindClasses(props.contentClasses);\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst baseEl = computed(() => {\r\n\t\t\treturn layer$.value?.baseEl;\r\n\t\t});\r\n\r\n\t\texpose({\r\n\t\t\tlayer$,\r\n\t\t\tbaseEl,\r\n\t\t});\r\n\r\n\t\tuseRender(() => {\r\n\t\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\t<YLayer\r\n\t\t\t\t\t\tref={layer$}\r\n\t\t\t\t\t\ttransition={props.transition}\r\n\t\t\t\t\t\tonClick:complement={onComplementClick}\r\n\t\t\t\t\t\tonAfterLeave={() => emit(\"afterLeave\")}\r\n\t\t\t\t\t\t{...{\r\n\t\t\t\t\t\t\t...chooseProps(props, YLayer.props),\r\n\t\t\t\t\t\t\tclasses: classes.value,\r\n\t\t\t\t\t\t\tscrim: false,\r\n\t\t\t\t\t\t\tcontentClasses: {\r\n\t\t\t\t\t\t\t\t\"y-menu__content\": true,\r\n\t\t\t\t\t\t\t\t...computedContentClasses.value,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tv-model={active.value}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdefault: (...args: any) => {\r\n\t\t\t\t\t\t\t\treturn <>{slots.default?.(...args) ?? \"\"}</>;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tbase: (...args: any[]) => slots.base?.(...args),\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</YLayer>\r\n\t\t\t\t</>\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tlayer$,\r\n\t\t\tbaseEl,\r\n\t\t\tclasses,\r\n\t\t\tchildren,\r\n\t\t\tparent,\r\n\t\t\tactive,\r\n\t\t\thovered,\r\n\t\t};\r\n\t},\r\n});\r\n\r\nexport type YMenu = InstanceType<typeof YMenu>;\r\n"],"mappings":"AAAA,SACCA,QAAQ,EACRC,kBAAkB,EAElBC,GAAG,EAEHC,KAAK,EACLC,KAAK,EAAAC,QAAA,IAAAC,SAAA,EAAAC,WAAA,IAAAC,YAAA,EAAAC,UAAA,IAAAC,WAAA,QACC,KAAK;AAAC,SAEJC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,+BAA+B;AAAA,SAC/BC,WAAW,EAAEC,WAAW,EAAEC,eAAe;AAAA,SACzCC,oBAAoB;AAAA,SACpBC,WAAW;AAAA,SAEXC,gBAAgB,EAAEC,MAAM;AAAA,SACxBC,QAAQ;AAAA,SACRC,cAAc;AAEvB;AAEA,MAAMC,IAAI,GAAG,OAAO;AACpB,MAAMC,UAAU,GAAGN,WAAW,CAACK,IAAI,CAAC;AAEpC,OAAO,MAAME,gBAAgB,GAAG;EAC/BC,WAAW,EAAE;IACZC,IAAI,EAAE,CAACC,KAAK,EAAEC,MAAM,EAAEC,MAAM;EAG7B,CAAC;EACDC,eAAe,EAAE;IAChBJ,IAAI,EAAEK,OAA4B;IAClCC,OAAO,EAAE;EACV,CAAC;EACDC,cAAc,EAAE;IACfP,IAAI,EAAE,CAACK,OAAO,EAAEG,QAAQ,CAAC;IACzBF,OAAO,EAAEG;EACV,CAAC;EACDC,WAAW,EAAE;IACZV,IAAI,EAAEK,OAA4B;IAClCC,OAAO,EAAE;EACV,CAAC;EACD,GAAGd,gBAAgB,CAAC;IACnBmB,kBAAkB,EAAE,YAAqB;IACzCC,cAAc,EAAE;EACjB,CAAC,CAAC;EACFC,kBAAkB,EAAER;AACrB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMS,KAAK,GAAGzB,eAAe,CAAC;EACpC0B,IAAI,EAAEnB,IAAI;EACVoB,KAAK,EAAE;IACN,GAAGlB,gBAAgB;IACnB,GAAGZ,+BAA+B,CAAC;MAClC+B,UAAU,EAAE;IACb,CAAC;EACF,CAAC;EACDC,KAAK,EAAE,CAAC,mBAAmB,EAAE,YAAY,EAAE,cAAc,CAAC;EAC1DC,KAAK,EAAEhB,MAGL;EACFiB,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;EAC5BC,KAAKA,CAACL,KAAK,EAAAM,IAAA,EAA2B;IAAA,IAAzB;MAAEH,KAAK;MAAEI,IAAI;MAAEH;IAAO,CAAC,GAAAE,IAAA;IACnC,MAAME,EAAE,GAAGlD,kBAAkB,CAAC,CAAC;IAC/B,MAAMmD,MAAM,GAAGlD,GAAG,CAAgB,CAAC;IAEnC,MAAMmD,OAAO,GAAGrD,QAAQ,CAAC,MAAM;MAC9B,MAAMsD,YAAY,GAAGxC,WAAW,CAAC6B,KAAK,CAACjB,WAAW,CAAC;MACnD,OAAO;QACN,GAAG4B,YAAY;QACf,QAAQ,EAAE;MACX,CAAC;IACF,CAAC,CAAC;IAEF,MAAMC,MAAM,GAAG5C,cAAc,CAACgC,KAAK,CAAC;IACpC,MAAMa,OAAO,GAAGxD,QAAQ,CAAC,MAAM,CAAC,CAACoD,MAAM,CAACK,KAAK,EAAED,OAAO,CAAC;IACvD,MAAME,MAAM,GAAG1D,QAAQ,CAAC,MAAM,CAAC,CAACoD,MAAM,CAACK,KAAK,EAAEC,MAAM,CAAC;IACrD,MAAM;MAAEC,QAAQ;MAAEC;IAAO,CAAC,GAAGtC,cAAc,CAC1C8B,MAAM,EACNG,MAAM,EACNpD,KAAK,CAACwC,KAAK,EAAE,oBAAoB,CAClC,CAAC;IACD,MAAM;MAAEkB,cAAc;MAAEC;IAAgB,CAAC,GAAGzC,QAAQ,CACnDsB,KAAK,EACJoB,YAAY,IAAK;MACjB,IACC,CAACA,YAAY,IACbpB,KAAK,CAACqB,WAAW,IACjB,CAACR,OAAO,CAACC,KAAK,IACdE,QAAQ,CAACF,KAAK,CAACQ,MAAM,KAAK,CAAC,EAC1B;QACDV,MAAM,CAACE,KAAK,GAAG,KAAK;MACrB,CAAC,MAAM,IAAIM,YAAY,EAAE;QACxBR,MAAM,CAACE,KAAK,GAAG,IAAI;MACpB;IACD,CACD,CAAC;IAED,SAASS,YAAYA,CAACC,CAAa,EAAE;MACpC,IAAIxB,KAAK,CAACqB,WAAW,EAAE;QACtBH,cAAc,CAAC,CAAC;MACjB;IACD;IAEA,SAASO,YAAYA,CAACD,CAAa,EAAE;MACpC,IAAIxB,KAAK,CAACqB,WAAW,EAAE;QACtBF,eAAe,CAAC,CAAC;MAClB;IACD;IAEA1D,KAAK,CAACoD,OAAO,EAAGC,KAAK,IAAK;MACzBP,IAAI,CAAC,cAAc,EAAEO,KAAK,CAAC;MAC3B,IAAI,CAACA,KAAK,EAAE;QACXK,eAAe,CAAC,CAAC;MAClB;IACD,CAAC,CAAC;IAEF,SAASO,OAAOA,CAACF,CAAa,EAAE;MAC/BA,CAAC,CAACG,eAAe,CAAC,CAAC;MACnB,IAAI,CAAC3B,KAAK,CAACZ,eAAe,EAAE;QAC3B;MACD;MACA,MAAMwC,aAAa,GAAGhB,MAAM,CAACE,KAAK;MAClC,IAAI,CAACd,KAAK,CAAC6B,QAAQ,EAAE;QACpB,IAAI7B,KAAK,CAACqB,WAAW,IAAIN,MAAM,CAACD,KAAK,IAAIc,aAAa,EAAE;UACvD;QACD;QACAhB,MAAM,CAACE,KAAK,GAAG,CAACc,aAAa;MAC9B;IACD;IAEA,SAASE,iBAAiBA,CAACN,CAAQ,EAAE;MACpC,IAAIxB,KAAK,CAACT,cAAc,KAAK,KAAK,EAAE;QACnC;MACD;MACA,IAAI,OAAOS,KAAK,CAACT,cAAc,KAAK,UAAU,EAAE;QAC/C,IAAIS,KAAK,CAACT,cAAc,CAACiC,CAAC,CAAC,KAAK,KAAK,EAAE;UACtCZ,MAAM,CAACE,KAAK,GAAG,KAAK;UACpB;QACD;MACD;MACA,IAAIF,MAAM,CAACE,KAAK,EAAE;QACjB,IAAIE,QAAQ,CAACF,KAAK,CAACQ,MAAM,KAAK,CAAC,EAAE;UAChCV,MAAM,CAACE,KAAK,GAAG,KAAK;QACrB;QACA,MAAMiB,aAAa,GAAGd,MAAM,EAAEe,GAAG,CAAClB,KAAK,EAAEmB,QAAQ;QACjD,MAAMC,WAAW,GAAGjB,MAAM,EAAEe,GAAG,CAAClB,KAAK,EAAEqB,KAAK;QAC5C,IACC,EAAEJ,aAAa,IAAI,CAACzD,oBAAoB,CAACkD,CAAC,EAAEO,aAAa,CAAC,CAAC,IAC3D,CAACG,WAAW,IACZ,CAAClC,KAAK,CAACH,kBAAkB,EACxB;UACDoB,MAAM,EAAEmB,KAAK,CAAC,CAAC;QAChB;MACD;IACD;IAEA,SAASC,SAASA,CAACC,EAAe,EAAE;MACnCA,EAAE,CAACC,gBAAgB,CAAC,YAAY,EAAEhB,YAAY,CAAC;MAC/Ce,EAAE,CAACC,gBAAgB,CAAC,YAAY,EAAEd,YAAY,CAAC;IAChD;IAEA,SAASe,WAAWA,CAACF,EAAe,EAAE;MACrCA,EAAE,CAACG,mBAAmB,CAAC,YAAY,EAAElB,YAAY,CAAC;MAClDe,EAAE,CAACG,mBAAmB,CAAC,YAAY,EAAEhB,YAAY,CAAC;IACnD;IAEAhE,KAAK,CACJ,MAAMgD,MAAM,CAACK,KAAK,EAAE4B,MAAM,EAC1B,CAACC,GAAG,EAAEC,GAAG,KAAK;MACb,IAAID,GAAG,EAAE;QACRN,SAAS,CAACM,GAAG,CAAC;QACdA,GAAG,CAACJ,gBAAgB,CAAC,OAAO,EAAEb,OAAO,CAAC;MACvC,CAAC,MAAM,IAAIkB,GAAG,EAAE;QACfJ,WAAW,CAACI,GAAG,CAAC;QAChBA,GAAG,CAACH,mBAAmB,CAAC,OAAO,EAAEf,OAAO,CAAC;MAC1C;IACD,CAAC,EACD;MACCmB,SAAS,EAAE;IACZ,CACD,CAAC;IAED,MAAMC,sBAAsB,GAAGzF,QAAQ,CAA0B,MAAM;MACtE,MAAMsD,YAAY,GAAGxC,WAAW,CAAC6B,KAAK,CAAC+C,cAAc,CAAC;MACtD,OAAO;QACN,GAAGpC;MACJ,CAAC;IACF,CAAC,CAAC;IAEF,MAAM+B,MAAM,GAAGrF,QAAQ,CAAC,MAAM;MAC7B,OAAOoD,MAAM,CAACK,KAAK,EAAE4B,MAAM;IAC5B,CAAC,CAAC;IAEFtC,MAAM,CAAC;MACNK,MAAM;MACNiC;IACD,CAAC,CAAC;IAEFzE,SAAS,CAAC,MAAM;MACf,OAAAJ,YAAA,CAAAF,SAAA,SAAAE,YAAA,CAAAY,MAAA,EAAAV,WAAA;QAAA,OAGQ0C,MAAM;QAAA,cACCT,KAAK,CAACC,UAAU;QAAA,sBACR6B,iBAAiB;QAAA,gBACvBkB,CAAA,KAAMzC,IAAI,CAAC,YAAY;MAAC;QAErC,GAAGnC,WAAW,CAAC4B,KAAK,EAAEvB,MAAM,CAACuB,KAAK,CAAC;QACnCU,OAAO,EAAEA,OAAO,CAACI,KAAK;QACtBmC,KAAK,EAAE,KAAK;QACZF,cAAc,EAAE;UACf,iBAAiB,EAAE,IAAI;UACvB,GAAGD,sBAAsB,CAAChC;QAC3B;MAAC;QAAA,cAEOF,MAAM,CAACE,KAAK;QAAA,uBAAAoC,MAAA,IAAZtC,MAAM,CAACE,KAAK,GAAAoC;MAAA;QAGpB5D,OAAO,EAAE,SAAAA,CAAA,EAAkB;UAAA,SAAA6D,IAAA,GAAAC,SAAA,CAAA9B,MAAA,EAAd+B,IAAI,OAAApE,KAAA,CAAAkE,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;YAAJD,IAAI,CAAAC,IAAA,IAAAF,SAAA,CAAAE,IAAA;UAAA;UAChB,OAAAzF,YAAA,CAAAF,SAAA,SAAUwC,KAAK,CAACb,OAAO,GAAG,GAAG+D,IAAI,CAAC,IAAI,EAAE;QACzC,CAAC;QACDE,IAAI,EAAE,SAAAA,CAAA;UAAA,SAAAC,KAAA,GAAAJ,SAAA,CAAA9B,MAAA,EAAI+B,IAAI,OAAApE,KAAA,CAAAuE,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;YAAJJ,IAAI,CAAAI,KAAA,IAAAL,SAAA,CAAAK,KAAA;UAAA;UAAA,OAAYtD,KAAK,CAACoD,IAAI,GAAG,GAAGF,IAAI,CAAC;QAAA;MAAA;IAKpD,CAAC,CAAC;IAEF,OAAO;MACN5C,MAAM;MACNiC,MAAM;MACNhC,OAAO;MACPM,QAAQ;MACRC,MAAM;MACNL,MAAM;MACNC;IACD,CAAC;EACF;AACD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YDividePanel.js","names":["computed","defineComponent","ref","watch","Fragment","_Fragment","createVNode","_createVNode","useRender","YDividePanel","name","setup","props","_ref","slots","contentRate","isResizing","secondarySlot","activeSecondary","rootRef","neo","value","topStyles","inset","position","classes","moveListener","event","mouseEvent","containerRect","getBoundingClientRect","requestAnimationFrame","Math","min","max","clientY","y","height","cancelEvent","removeEventListener","upListener","leaveListener","onMousedown","preventDefault","addEventListener","default","secondary"],"sources":["../../../src/components/panel/YDividePanel.tsx"],"sourcesContent":["import { computed, type CSSProperties, defineComponent, ref, watch } from 'vue';\n\nimport { useRender } from '@/composables/component';\n\nimport './YDividePanel.scss';\n\nexport const YDividePanel = defineComponent({\n name: 'YDividePanel',\n setup(props, { slots }) {\n const contentRate = ref(50);\n const isResizing = ref(false);\n const secondarySlot = ref();\n const activeSecondary = ref(false);\n const rootRef = ref();\n\n watch(secondarySlot, (neo) => {\n activeSecondary.value = !!neo;\n });\n\n const topStyles = computed<CSSProperties>(() => {\n let inset = '0 0';\n if (activeSecondary.value) {\n inset = `0 0 ${100 - contentRate.value}% 0`;\n }\n return {\n position: 'absolute',\n inset,\n };\n });\n\n const classes = computed(() => {\n return {\n 'y-divide-panel': true,\n 'y-divide-panel--resizing': isResizing.value,\n };\n });\n\n function moveListener(event: Event) {\n const mouseEvent = event as MouseEvent;\n const containerRect = rootRef.value.getBoundingClientRect();\n requestAnimationFrame(() => {\n contentRate.value = Math.min(\n Math.max(\n 10,\n ((mouseEvent.clientY - containerRect.y) / containerRect.height) *\n 100,\n ),\n 90,\n );\n });\n }\n\n function cancelEvent() {\n isResizing.value = false;\n rootRef.value.removeEventListener('mousemove', moveListener);\n rootRef.value.removeEventListener('mouseup', upListener);\n rootRef.value.removeEventListener('mouseleave', leaveListener);\n }\n\n function upListener(event: Event) {\n cancelEvent();\n }\n\n function leaveListener(event: Event) {\n cancelEvent();\n }\n\n function onMousedown(event: MouseEvent) {\n event.preventDefault();\n isResizing.value = true;\n rootRef.value.addEventListener('mousemove', moveListener);\n rootRef.value.addEventListener('mouseup', upListener);\n rootRef.value.addEventListener('mouseleave', leaveListener);\n }\n\n useRender(() => {\n return (\n <>\n <div class={classes.value} ref={rootRef}>\n <div\n class={'y-divide-panel__top-container'}\n style={topStyles.value}\n >\n {slots.default?.()}\n </div>\n {\n (secondarySlot.value = slots.secondary && (\n <>\n <div\n class=\"y-divide-panel__divider\"\n style={{\n position: 'absolute',\n inset: `${contentRate.value}% 0 0 0`,\n }}\n onMousedown={onMousedown}\n >\n <div class=\"y-divide-panel__divider-line\"></div>\n </div>\n <div\n class={'y-divide-panel__secondary-container'}\n style={{\n position: 'absolute',\n inset: `${contentRate.value}% 0 0 0`,\n }}\n >\n {slots.secondary?.()}\n </div>\n </>\n ))\n }\n </div>\n </>\n );\n });\n\n return {\n activeSecondary,\n };\n },\n});\n\nexport type YDividePanel = InstanceType<typeof YDividePanel>;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YDividePanel.js","names":["computed","defineComponent","ref","watch","Fragment","_Fragment","createVNode","_createVNode","useRender","YDividePanel","name","setup","props","_ref","slots","contentRate","isResizing","secondarySlot","activeSecondary","rootRef","neo","value","topStyles","inset","position","classes","moveListener","event","mouseEvent","containerRect","getBoundingClientRect","requestAnimationFrame","Math","min","max","clientY","y","height","cancelEvent","removeEventListener","upListener","leaveListener","onMousedown","preventDefault","addEventListener","default","secondary"],"sources":["../../../src/components/panel/YDividePanel.tsx"],"sourcesContent":["import { computed, type CSSProperties, defineComponent, ref, watch } from 'vue';\r\n\r\nimport { useRender } from '@/composables/component';\r\n\r\nimport './YDividePanel.scss';\r\n\r\nexport const YDividePanel = defineComponent({\r\n name: 'YDividePanel',\r\n setup(props, { slots }) {\r\n const contentRate = ref(50);\r\n const isResizing = ref(false);\r\n const secondarySlot = ref();\r\n const activeSecondary = ref(false);\r\n const rootRef = ref();\r\n\r\n watch(secondarySlot, (neo) => {\r\n activeSecondary.value = !!neo;\r\n });\r\n\r\n const topStyles = computed<CSSProperties>(() => {\r\n let inset = '0 0';\r\n if (activeSecondary.value) {\r\n inset = `0 0 ${100 - contentRate.value}% 0`;\r\n }\r\n return {\r\n position: 'absolute',\r\n inset,\r\n };\r\n });\r\n\r\n const classes = computed(() => {\r\n return {\r\n 'y-divide-panel': true,\r\n 'y-divide-panel--resizing': isResizing.value,\r\n };\r\n });\r\n\r\n function moveListener(event: Event) {\r\n const mouseEvent = event as MouseEvent;\r\n const containerRect = rootRef.value.getBoundingClientRect();\r\n requestAnimationFrame(() => {\r\n contentRate.value = Math.min(\r\n Math.max(\r\n 10,\r\n ((mouseEvent.clientY - containerRect.y) / containerRect.height) *\r\n 100,\r\n ),\r\n 90,\r\n );\r\n });\r\n }\r\n\r\n function cancelEvent() {\r\n isResizing.value = false;\r\n rootRef.value.removeEventListener('mousemove', moveListener);\r\n rootRef.value.removeEventListener('mouseup', upListener);\r\n rootRef.value.removeEventListener('mouseleave', leaveListener);\r\n }\r\n\r\n function upListener(event: Event) {\r\n cancelEvent();\r\n }\r\n\r\n function leaveListener(event: Event) {\r\n cancelEvent();\r\n }\r\n\r\n function onMousedown(event: MouseEvent) {\r\n event.preventDefault();\r\n isResizing.value = true;\r\n rootRef.value.addEventListener('mousemove', moveListener);\r\n rootRef.value.addEventListener('mouseup', upListener);\r\n rootRef.value.addEventListener('mouseleave', leaveListener);\r\n }\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <div class={classes.value} ref={rootRef}>\r\n <div\r\n class={'y-divide-panel__top-container'}\r\n style={topStyles.value}\r\n >\r\n {slots.default?.()}\r\n </div>\r\n {\r\n (secondarySlot.value = slots.secondary && (\r\n <>\r\n <div\r\n class=\"y-divide-panel__divider\"\r\n style={{\r\n position: 'absolute',\r\n inset: `${contentRate.value}% 0 0 0`,\r\n }}\r\n onMousedown={onMousedown}\r\n >\r\n <div class=\"y-divide-panel__divider-line\"></div>\r\n </div>\r\n <div\r\n class={'y-divide-panel__secondary-container'}\r\n style={{\r\n position: 'absolute',\r\n inset: `${contentRate.value}% 0 0 0`,\r\n }}\r\n >\r\n {slots.secondary?.()}\r\n </div>\r\n </>\r\n ))\r\n }\r\n </div>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n activeSecondary,\r\n };\r\n },\r\n});\r\n\r\nexport type YDividePanel = InstanceType<typeof YDividePanel>;\r\n"],"mappings":"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","ignoreList":[]}
|