vuetify 3.1.7 → 3.1.8
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/json/attributes.json +0 -528
- package/dist/json/importMap.json +4 -4
- package/dist/json/tags.json +2 -136
- package/dist/json/web-types.json +20 -1210
- package/dist/vuetify-labs.css +419 -276
- package/dist/vuetify-labs.esm.js +48 -37
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +48 -37
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1413 -1270
- package/dist/vuetify.d.ts +1 -1
- package/dist/vuetify.esm.js +33 -32
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +33 -32
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +209 -210
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +1 -1
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +1 -0
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +0 -2
- package/lib/components/VSnackbar/VSnackbar.mjs +6 -8
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +0 -2
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.mjs +1 -0
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.mjs +1 -0
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
- package/lib/components/transitions/createTransition.mjs +1 -1
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/composables/display.mjs +13 -10
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/theme.mjs +7 -10
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/labs/VDataTable/VDataTable.mjs +4 -2
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +4 -2
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +7 -1
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/locale/index.mjs +1 -1
- package/lib/locale/index.mjs.map +1 -1
- package/lib/styles/elements/_global.sass +0 -4
- package/lib/styles/generic/_index.scss +0 -1
- package/lib/styles/generic/_transitions.scss +111 -9
- package/lib/styles/main.css +312 -167
- package/lib/styles/tools/_sheet.sass +3 -6
- package/lib/styles/utilities/_display.sass +6 -5
- package/lib/styles/utilities/_elevation.scss +13 -0
- package/lib/styles/utilities/_index.sass +3 -2
- package/lib/styles/utilities/_screenreaders.sass +13 -11
- package/package.json +17 -4
- package/lib/styles/generic/_elevation.scss +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VAlert.mjs","names":["VAlertTitle","VBtn","VDefaultsProvider","VIcon","genOverlays","makeVariantProps","useVariant","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useLocale","useProxiedModel","useTextColor","IconValue","computed","toRef","genericComponent","allowedTypes","VAlert","name","props","border","type","Boolean","String","validator","val","includes","borderColor","closable","closeIcon","default","closeLabel","icon","Function","Object","modelValue","prominent","title","text","variant","emits","value","setup","slots","isActive","undefined","variantProps","color","themeClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","textColorClasses","textColorStyles","t","closeProps","onClick","e","hasPrepend","prepend","hasTitle","hasText","hasClose","close","density","size","append"],"sources":["../../../src/components/VAlert/VAlert.tsx"],"sourcesContent":["// Styles\nimport './VAlert.sass'\n\n// Components\nimport { VAlertTitle } from './VAlertTitle'\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nconst allowedTypes = ['success', 'info', 'warning', 'error'] as const\n\ntype ContextualType = typeof allowedTypes[number]\n\nexport type VAlertSlots = MakeSlots<{\n default: []\n prepend: []\n title: []\n text: []\n append: []\n close: []\n}>\n\nexport const VAlert = genericComponent<VAlertSlots>()({\n name: 'VAlert',\n\n props: {\n border: {\n type: [Boolean, String] as PropType<boolean | 'top' | 'end' | 'bottom' | 'start'>,\n validator: (val: boolean | string) => {\n return typeof val === 'boolean' || [\n 'top',\n 'end',\n 'bottom',\n 'start',\n ].includes(val)\n },\n },\n borderColor: String,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$close',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n icon: {\n type: [Boolean, String, Function, Object] as PropType<false | IconValue>,\n default: null,\n },\n modelValue: {\n type: Boolean,\n default: true,\n },\n prominent: Boolean,\n title: String,\n text: String,\n type: {\n type: String as PropType<ContextualType>,\n validator: (val: ContextualType) => allowedTypes.includes(val),\n },\n\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const icon = computed(() => {\n if (props.icon === false) return undefined\n if (!props.type) return props.icon\n\n return props.icon ?? `$${props.type}`\n })\n const variantProps = computed(() => ({\n color: props.color ?? props.type,\n variant: props.variant,\n }))\n\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'borderColor'))\n const { t } = useLocale()\n\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n isActive.value = false\n },\n }))\n\n return () => {\n const hasPrepend = !!(slots.prepend || icon.value)\n const hasTitle = !!(slots.title || props.title)\n const hasText = !!(props.text || slots.text)\n const hasClose = !!(slots.close || props.closable)\n\n return isActive.value && (\n <props.tag\n class={[\n 'v-alert',\n props.border && {\n 'v-alert--border': !!props.border,\n [`v-alert--border-${props.border === true ? 'start' : props.border}`]: true,\n },\n {\n 'v-alert--prominent': props.prominent,\n },\n themeClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n role=\"alert\"\n >\n { genOverlays(false, 'v-alert') }\n\n { props.border && (\n <div\n key=\"border\"\n class={[\n 'v-alert__border',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n />\n ) }\n\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n density: props.density,\n icon: icon.value,\n size: props.prominent ? 44 : 28,\n },\n }}\n >\n <div class=\"v-alert__prepend\">\n { slots.prepend\n ? slots.prepend()\n : icon.value && (<VIcon />)\n }\n </div>\n </VDefaultsProvider>\n ) }\n\n <div class=\"v-alert__content\">\n { hasTitle && (\n <VAlertTitle key=\"title\">\n { slots.title ? slots.title() : props.title }\n </VAlertTitle>\n ) }\n\n { hasText && (\n slots.text ? slots.text() : props.text\n ) }\n\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div key=\"append\" class=\"v-alert__append\">\n { slots.append() }\n </div>\n ) }\n\n { hasClose && (\n <VDefaultsProvider\n key=\"close\"\n defaults={{\n VBtn: {\n icon: props.closeIcon,\n size: 'x-small',\n variant: 'text',\n },\n }}\n >\n <div class=\"v-alert__close\">\n { slots.close?.({ props: closeProps.value }) ?? <VBtn { ...closeProps.value } /> }\n </div>\n </VDefaultsProvider>\n ) }\n </props.tag>\n )\n }\n },\n})\n\nexport type VAlert = InstanceType<typeof VAlert>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VAlert.mjs","names":["VAlertTitle","VBtn","VDefaultsProvider","VIcon","genOverlays","makeVariantProps","useVariant","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useLocale","useProxiedModel","useTextColor","IconValue","computed","toRef","genericComponent","allowedTypes","VAlert","name","props","border","type","Boolean","String","validator","val","includes","borderColor","closable","closeIcon","default","closeLabel","icon","Function","Object","modelValue","prominent","title","text","variant","emits","value","setup","slots","isActive","undefined","variantProps","color","themeClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","textColorClasses","textColorStyles","t","closeProps","onClick","e","hasPrepend","prepend","hasTitle","hasText","hasClose","close","density","size","append"],"sources":["../../../src/components/VAlert/VAlert.tsx"],"sourcesContent":["// Styles\nimport './VAlert.sass'\n\n// Components\nimport { VAlertTitle } from './VAlertTitle'\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nconst allowedTypes = ['success', 'info', 'warning', 'error'] as const\n\ntype ContextualType = typeof allowedTypes[number]\n\nexport type VAlertSlots = MakeSlots<{\n default: []\n prepend: []\n title: []\n text: []\n append: []\n close: []\n}>\n\nexport const VAlert = genericComponent<VAlertSlots>()({\n name: 'VAlert',\n\n props: {\n border: {\n type: [Boolean, String] as PropType<boolean | 'top' | 'end' | 'bottom' | 'start'>,\n validator: (val: boolean | string) => {\n return typeof val === 'boolean' || [\n 'top',\n 'end',\n 'bottom',\n 'start',\n ].includes(val)\n },\n },\n borderColor: String,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$close',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n icon: {\n type: [Boolean, String, Function, Object] as PropType<false | IconValue>,\n default: null,\n },\n modelValue: {\n type: Boolean,\n default: true,\n },\n prominent: Boolean,\n title: String,\n text: String,\n type: {\n type: String as PropType<ContextualType>,\n validator: (val: ContextualType) => allowedTypes.includes(val),\n },\n\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const icon = computed(() => {\n if (props.icon === false) return undefined\n if (!props.type) return props.icon\n\n return props.icon ?? `$${props.type}`\n })\n const variantProps = computed(() => ({\n color: props.color ?? props.type,\n variant: props.variant,\n }))\n\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'borderColor'))\n const { t } = useLocale()\n\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n isActive.value = false\n },\n }))\n\n return () => {\n const hasPrepend = !!(slots.prepend || icon.value)\n const hasTitle = !!(slots.title || props.title)\n const hasText = !!(props.text || slots.text)\n const hasClose = !!(slots.close || props.closable)\n\n return isActive.value && (\n <props.tag\n class={[\n 'v-alert',\n props.border && {\n 'v-alert--border': !!props.border,\n [`v-alert--border-${props.border === true ? 'start' : props.border}`]: true,\n },\n {\n 'v-alert--prominent': props.prominent,\n },\n themeClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n role=\"alert\"\n >\n { genOverlays(false, 'v-alert') }\n\n { props.border && (\n <div\n key=\"border\"\n class={[\n 'v-alert__border',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n />\n )}\n\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n density: props.density,\n icon: icon.value,\n size: props.prominent ? 44 : 28,\n },\n }}\n >\n <div class=\"v-alert__prepend\">\n { slots.prepend\n ? slots.prepend()\n : icon.value && (<VIcon />)\n }\n </div>\n </VDefaultsProvider>\n )}\n\n <div class=\"v-alert__content\">\n { hasTitle && (\n <VAlertTitle key=\"title\">\n { slots.title ? slots.title() : props.title }\n </VAlertTitle>\n )}\n\n { hasText && (\n slots.text ? slots.text() : props.text\n )}\n\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div key=\"append\" class=\"v-alert__append\">\n { slots.append() }\n </div>\n )}\n\n { hasClose && (\n <VDefaultsProvider\n key=\"close\"\n defaults={{\n VBtn: {\n icon: props.closeIcon,\n size: 'x-small',\n variant: 'text',\n },\n }}\n >\n <div class=\"v-alert__close\">\n { slots.close?.({ props: closeProps.value }) ?? <VBtn { ...closeProps.value } /> }\n </div>\n </VDefaultsProvider>\n )}\n </props.tag>\n )\n }\n },\n})\n\nexport type VAlert = InstanceType<typeof VAlert>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,WAAW;AAAA,SACXC,IAAI;AAAA,SACJC,iBAAiB;AAAA,SACjBC,KAAK,8BAEd;AAAA,SACSC,WAAW,EAAEC,gBAAgB,EAAEC,UAAU;AAAA,SACzCC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,SAAS;AAAA,SACTC,eAAe;AAAA,SACfC,YAAY;AAAA,SACZC,SAAS,uCAElB;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,gBAAgB,gCAEzB;AAIA,MAAMC,YAAY,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAU;AAarE,OAAO,MAAMC,MAAM,GAAGF,gBAAgB,EAAe,CAAC;EACpDG,IAAI,EAAE,QAAQ;EAEdC,KAAK,EAAE;IACLC,MAAM,EAAE;MACNC,IAAI,EAAE,CAACC,OAAO,EAAEC,MAAM,CAA2D;MACjFC,SAAS,EAAGC,GAAqB,IAAK;QACpC,OAAO,OAAOA,GAAG,KAAK,SAAS,IAAI,CACjC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,CACR,CAACC,QAAQ,CAACD,GAAG,CAAC;MACjB;IACF,CAAC;IACDE,WAAW,EAAEJ,MAAM;IACnBK,QAAQ,EAAEN,OAAO;IACjBO,SAAS,EAAE;MACTR,IAAI,EAAET,SAAS;MACfkB,OAAO,EAAE;IACX,CAAC;IACDC,UAAU,EAAE;MACVV,IAAI,EAAEE,MAAM;MACZO,OAAO,EAAE;IACX,CAAC;IACDE,IAAI,EAAE;MACJX,IAAI,EAAE,CAACC,OAAO,EAAEC,MAAM,EAAEU,QAAQ,EAAEC,MAAM,CAAgC;MACxEJ,OAAO,EAAE;IACX,CAAC;IACDK,UAAU,EAAE;MACVd,IAAI,EAAEC,OAAO;MACbQ,OAAO,EAAE;IACX,CAAC;IACDM,SAAS,EAAEd,OAAO;IAClBe,KAAK,EAAEd,MAAM;IACbe,IAAI,EAAEf,MAAM;IACZF,IAAI,EAAE;MACJA,IAAI,EAAEE,MAAkC;MACxCC,SAAS,EAAGC,GAAmB,IAAKT,YAAY,CAACU,QAAQ,CAACD,GAAG;IAC/D,CAAC;IAED,GAAG/B,gBAAgB,EAAE;IACrB,GAAGE,kBAAkB,EAAE;IACvB,GAAGE,kBAAkB,EAAE;IACvB,GAAGE,iBAAiB,EAAE;IACtB,GAAGE,iBAAiB,EAAE;IACtB,GAAGE,gBAAgB,EAAE;IACrB,GAAGE,YAAY,EAAE;IACjB,GAAGC,cAAc,EAAE;IACnB,GAAGf,gBAAgB,CAAC;MAAE+C,OAAO,EAAE;IAAO,CAAC;EACzC,CAAC;EAEDC,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAc,IAAK;EAC3C,CAAC;EAEDC,KAAK,CAAEvB,KAAK,QAAa;IAAA,IAAX;MAAEwB;IAAM,CAAC;IACrB,MAAMC,QAAQ,GAAGlC,eAAe,CAACS,KAAK,EAAE,YAAY,CAAC;IACrD,MAAMa,IAAI,GAAGnB,QAAQ,CAAC,MAAM;MAC1B,IAAIM,KAAK,CAACa,IAAI,KAAK,KAAK,EAAE,OAAOa,SAAS;MAC1C,IAAI,CAAC1B,KAAK,CAACE,IAAI,EAAE,OAAOF,KAAK,CAACa,IAAI;MAElC,OAAOb,KAAK,CAACa,IAAI,IAAK,IAAGb,KAAK,CAACE,IAAK,EAAC;IACvC,CAAC,CAAC;IACF,MAAMyB,YAAY,GAAGjC,QAAQ,CAAC,OAAO;MACnCkC,KAAK,EAAE5B,KAAK,CAAC4B,KAAK,IAAI5B,KAAK,CAACE,IAAI;MAChCkB,OAAO,EAAEpB,KAAK,CAACoB;IACjB,CAAC,CAAC,CAAC;IAEH,MAAM;MAAES;IAAa,CAAC,GAAGxC,YAAY,CAACW,KAAK,CAAC;IAC5C,MAAM;MAAE8B,YAAY;MAAEC,WAAW;MAAEC;IAAe,CAAC,GAAG1D,UAAU,CAACqD,YAAY,CAAC;IAC9E,MAAM;MAAEM;IAAe,CAAC,GAAGzD,UAAU,CAACwB,KAAK,CAAC;IAC5C,MAAM;MAAEkC;IAAgB,CAAC,GAAGxD,YAAY,CAACsB,KAAK,CAAC;IAC/C,MAAM;MAAEmC;IAAiB,CAAC,GAAGvD,YAAY,CAACoB,KAAK,CAAC;IAChD,MAAM;MAAEoC;IAAe,CAAC,GAAGtD,WAAW,CAACkB,KAAK,CAAC;IAC7C,MAAM;MAAEqC;IAAgB,CAAC,GAAGrD,WAAW,CAACgB,KAAK,CAAC;IAC9C,MAAM;MAAEsC;IAAe,CAAC,GAAGpD,UAAU,CAACc,KAAK,CAAC;IAC5C,MAAM;MAAEuC,gBAAgB;MAAEC;IAAgB,CAAC,GAAGhD,YAAY,CAACG,KAAK,CAACK,KAAK,EAAE,aAAa,CAAC,CAAC;IACvF,MAAM;MAAEyC;IAAE,CAAC,GAAGnD,SAAS,EAAE;IAEzB,MAAMoD,UAAU,GAAGhD,QAAQ,CAAC,OAAO;MACjC,YAAY,EAAE+C,CAAC,CAACzC,KAAK,CAACY,UAAU,CAAC;MACjC+B,OAAO,CAAEC,CAAa,EAAE;QACtBnB,QAAQ,CAACH,KAAK,GAAG,KAAK;MACxB;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM;MACX,MAAMuB,UAAU,GAAG,CAAC,EAAErB,KAAK,CAACsB,OAAO,IAAIjC,IAAI,CAACS,KAAK,CAAC;MAClD,MAAMyB,QAAQ,GAAG,CAAC,EAAEvB,KAAK,CAACN,KAAK,IAAIlB,KAAK,CAACkB,KAAK,CAAC;MAC/C,MAAM8B,OAAO,GAAG,CAAC,EAAEhD,KAAK,CAACmB,IAAI,IAAIK,KAAK,CAACL,IAAI,CAAC;MAC5C,MAAM8B,QAAQ,GAAG,CAAC,EAAEzB,KAAK,CAAC0B,KAAK,IAAIlD,KAAK,CAACS,QAAQ,CAAC;MAElD,OAAOgB,QAAQ,CAACH,KAAK;QAAA,SAEV,CACL,SAAS,EACTtB,KAAK,CAACC,MAAM,IAAI;UACd,iBAAiB,EAAE,CAAC,CAACD,KAAK,CAACC,MAAM;UACjC,CAAE,mBAAkBD,KAAK,CAACC,MAAM,KAAK,IAAI,GAAG,OAAO,GAAGD,KAAK,CAACC,MAAO,EAAC,GAAG;QACzE,CAAC,EACD;UACE,oBAAoB,EAAED,KAAK,CAACiB;QAC9B,CAAC,EACDY,YAAY,CAACP,KAAK,EAClBQ,YAAY,CAACR,KAAK,EAClBW,cAAc,CAACX,KAAK,EACpBa,gBAAgB,CAACb,KAAK,EACtBe,eAAe,CAACf,KAAK,EACrBgB,cAAc,CAAChB,KAAK,EACpBU,cAAc,CAACV,KAAK,CACrB;QAAA,SACM,CACLS,WAAW,CAACT,KAAK,EACjBY,eAAe,CAACZ,KAAK,EACrBc,cAAc,CAACd,KAAK,CACrB;QAAA,QACI;MAAO;QAAA,gBAEVlD,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,EAE7B4B,KAAK,CAACC,MAAM;UAAA,OAEN,QAAQ;UAAA,SACL,CACL,iBAAiB,EACjBsC,gBAAgB,CAACjB,KAAK,CACvB;UAAA,SACOkB,eAAe,CAAClB;QAAK,QAEhC,EAECuB,UAAU;UAAA,OAEJ,SAAS;UAAA,YACH;YACR1E,KAAK,EAAE;cACLgF,OAAO,EAAEnD,KAAK,CAACmD,OAAO;cACtBtC,IAAI,EAAEA,IAAI,CAACS,KAAK;cAChB8B,IAAI,EAAEpD,KAAK,CAACiB,SAAS,GAAG,EAAE,GAAG;YAC/B;UACF;QAAC;UAAA;YAAA,SAEU;UAAkB,IACzBO,KAAK,CAACsB,OAAO,GACXtB,KAAK,CAACsB,OAAO,EAAE,GACfjC,IAAI,CAACS,KAAK,mCAAe;QAAA,EAIlC;UAAA,SAEU;QAAkB,IACzByB,QAAQ;UAAA,OACS;QAAO;UAAA,gBACpBvB,KAAK,CAACN,KAAK,GAAGM,KAAK,CAACN,KAAK,EAAE,GAAGlB,KAAK,CAACkB,KAAK;QAAA,EAE9C,EAEC8B,OAAO,KACPxB,KAAK,CAACL,IAAI,GAAGK,KAAK,CAACL,IAAI,EAAE,GAAGnB,KAAK,CAACmB,IAAI,CACvC,EAECK,KAAK,CAACb,OAAO,IAAI,IAGnBa,KAAK,CAAC6B,MAAM;UAAA,OACH,QAAQ;UAAA,SAAO;QAAiB,IACrC7B,KAAK,CAAC6B,MAAM,EAAE,EAEnB,EAECJ,QAAQ;UAAA,OAEF,OAAO;UAAA,YACD;YACRhF,IAAI,EAAE;cACJ4C,IAAI,EAAEb,KAAK,CAACU,SAAS;cACrB0C,IAAI,EAAE,SAAS;cACfhC,OAAO,EAAE;YACX;UACF;QAAC;UAAA;YAAA,SAEU;UAAgB,IACvBI,KAAK,CAAC0B,KAAK,GAAG;YAAElD,KAAK,EAAE0C,UAAU,CAACpB;UAAM,CAAC,CAAC,uBAAeoB,UAAU,CAACpB,KAAK,OAAK;QAAA,EAGrF;MAAA,EAEJ;IACH,CAAC;EACH;AACF,CAAC,CAAC"}
|
|
@@ -17,7 +17,7 @@ $alert-plain-opacity: .62 !default;
|
|
|
17
17
|
$alert-plain-transition: .2s opacity settings.$standard-easing !default;
|
|
18
18
|
$alert-positions: absolute fixed sticky !default;
|
|
19
19
|
$alert-prepend-margin-inline-end: 16px !default;
|
|
20
|
-
$alert-append-margin-inline-start:
|
|
20
|
+
$alert-append-margin-inline-start: 16px !default;
|
|
21
21
|
$alert-append-close-margin-inline-start: 16px !default;
|
|
22
22
|
|
|
23
23
|
// VAlertTitle
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VAutocomplete.mjs","names":["makeSelectProps","VCheckboxBtn","VChip","VDefaultsProvider","VList","VListItem","VMenu","VTextField","forwardRefs","makeFilterProps","useFilter","makeTransitionProps","useForm","useItems","useLocale","useProxiedModel","computed","mergeProps","nextTick","ref","watch","genericComponent","omit","useRender","wrapInArray","filterVTextFieldProps","makeVTextFieldProps","highlightResult","text","matches","length","Array","isArray","Error","substr","VAutocomplete","name","props","search","String","filterKeys","modelValue","transition","emits","val","setup","slots","t","vTextFieldRef","isFocused","isPristine","vMenuRef","_menu","menu","get","value","set","v","ΨopenChildren","items","transformIn","transformOut","model","transformed","multiple","form","filteredItems","getMatches","undefined","selections","map","find","item","valueComparator","displayItems","hideSelected","filter","filteredItem","some","s","selected","selection","listRef","onClear","e","openOnClear","onMousedownControl","hideNoData","readonly","isReadonly","onKeydown","includes","key","preventDefault","focus","onInput","target","onAfterLeave","onFocusin","onFocusout","relatedTarget","isSelecting","select","index","findIndex","splice","title","at","hasChips","chips","chip","hasList","prepend","append","textFieldProps","externalValue","menuIcon","default","eager","menuProps","noDataText","onClick","isSelected","onChipClose","stopPropagation","slotProps","closable","closableChips","size"],"sources":["../../../src/components/VAutocomplete/VAutocomplete.tsx"],"sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useForm } from '@/composables/form'\nimport { useItems } from '@/composables/items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, nextTick, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender, wrapInArray } from '@/util'\nimport { filterVTextFieldProps, makeVTextFieldProps } from '../VTextField/VTextField'\n\n// Types\nimport type { FilterMatch } from '@/composables/filter'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-autocomplete__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-autocomplete__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-autocomplete__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VAutocomplete = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VAutocomplete',\n\n props: {\n // TODO: implement post keyboard support\n // autoSelectFirst: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n },\n\n emits: {\n 'update:search': (val: any) => true,\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = ref(false)\n const isPristine = ref(true)\n const vMenuRef = ref<VMenu>()\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return\n _menu.value = v\n },\n })\n const { items, transformIn, transformOut } = useItems(props)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const form = useForm()\n const { filteredItems, getMatches } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !selections.value.some(s => s.value === filteredItem.value))\n }\n return filteredItems.value\n })\n\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onMousedownControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly || form?.isReadonly.value\n ) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly || form?.isReadonly.value) return\n\n if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown') {\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n listRef.value?.focus('prev')\n }\n }\n\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\n }\n\n function onAfterLeave () {\n if (isFocused.value) isPristine.value = true\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n const isSelecting = ref(false)\n\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value))\n\n if (index === -1) {\n model.value = [...model.value, item]\n search.value = ''\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n\n isSelecting.value = true\n\n if (!slots.selection) {\n search.value = item.title\n }\n\n menu.value = false\n isPristine.value = true\n\n nextTick(() => (isSelecting.value = false))\n }\n }\n\n watch(isFocused, val => {\n if (val) {\n isSelecting.value = true\n search.value = props.multiple || !!slots.selection ? '' : String(selections.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n menu.value = false\n search.value = ''\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!((!props.hideNoData || displayItems.value.length) || slots.prepend || slots.append || slots['no-data'])\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ search.value }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n onInput={ onInput }\n class={[\n 'v-autocomplete',\n {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n [`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-autocomplete--selection-slot': !!slots.selection,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly={ props.readonly }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onFocus={ () => isFocused.value = true }\n onBlur={ () => isFocused.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n ref={ vMenuRef }\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-autocomplete__content\"\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n >\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { displayItems.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n ) }\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-autocomplete__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-autocomplete__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-autocomplete__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType<typeof VAutocomplete>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VAutocomplete.mjs","names":["makeSelectProps","VCheckboxBtn","VChip","VDefaultsProvider","VList","VListItem","VMenu","VTextField","forwardRefs","makeFilterProps","useFilter","makeTransitionProps","useForm","useItems","useLocale","useProxiedModel","computed","mergeProps","nextTick","ref","watch","genericComponent","omit","useRender","wrapInArray","filterVTextFieldProps","makeVTextFieldProps","highlightResult","text","matches","length","Array","isArray","Error","substr","VAutocomplete","name","props","search","String","filterKeys","modelValue","transition","emits","val","setup","slots","t","vTextFieldRef","isFocused","isPristine","vMenuRef","_menu","menu","get","value","set","v","ΨopenChildren","items","transformIn","transformOut","model","transformed","multiple","form","filteredItems","getMatches","undefined","selections","map","find","item","valueComparator","displayItems","hideSelected","filter","filteredItem","some","s","selected","selection","listRef","onClear","e","openOnClear","onMousedownControl","hideNoData","readonly","isReadonly","onKeydown","includes","key","preventDefault","focus","onInput","target","onAfterLeave","onFocusin","onFocusout","relatedTarget","isSelecting","select","index","findIndex","splice","title","at","hasChips","chips","chip","hasList","prepend","append","textFieldProps","externalValue","menuIcon","default","eager","menuProps","noDataText","onClick","isSelected","onChipClose","stopPropagation","slotProps","closable","closableChips","size"],"sources":["../../../src/components/VAutocomplete/VAutocomplete.tsx"],"sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useForm } from '@/composables/form'\nimport { useItems } from '@/composables/items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, nextTick, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender, wrapInArray } from '@/util'\nimport { filterVTextFieldProps, makeVTextFieldProps } from '../VTextField/VTextField'\n\n// Types\nimport type { FilterMatch } from '@/composables/filter'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-autocomplete__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-autocomplete__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-autocomplete__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VAutocomplete = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VAutocomplete',\n\n props: {\n // TODO: implement post keyboard support\n // autoSelectFirst: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n },\n\n emits: {\n 'update:search': (val: any) => true,\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = ref(false)\n const isPristine = ref(true)\n const vMenuRef = ref<VMenu>()\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return\n _menu.value = v\n },\n })\n const { items, transformIn, transformOut } = useItems(props)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const form = useForm()\n const { filteredItems, getMatches } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !selections.value.some(s => s.value === filteredItem.value))\n }\n return filteredItems.value\n })\n\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onMousedownControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly || form?.isReadonly.value\n ) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly || form?.isReadonly.value) return\n\n if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown') {\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n listRef.value?.focus('prev')\n }\n }\n\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\n }\n\n function onAfterLeave () {\n if (isFocused.value) isPristine.value = true\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n const isSelecting = ref(false)\n\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value))\n\n if (index === -1) {\n model.value = [...model.value, item]\n search.value = ''\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n\n isSelecting.value = true\n\n if (!slots.selection) {\n search.value = item.title\n }\n\n menu.value = false\n isPristine.value = true\n\n nextTick(() => (isSelecting.value = false))\n }\n }\n\n watch(isFocused, val => {\n if (val) {\n isSelecting.value = true\n search.value = props.multiple || !!slots.selection ? '' : String(selections.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n menu.value = false\n search.value = ''\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!((!props.hideNoData || displayItems.value.length) || slots.prepend || slots.append || slots['no-data'])\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ search.value }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n onInput={ onInput }\n class={[\n 'v-autocomplete',\n {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n [`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-autocomplete--selection-slot': !!slots.selection,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly={ props.readonly }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onFocus={ () => isFocused.value = true }\n onBlur={ () => isFocused.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n ref={ vMenuRef }\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-autocomplete__content\"\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n >\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n ))}\n\n { slots['prepend-item']?.() }\n\n { displayItems.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n ))}\n\n { slots['append-item']?.() }\n </VList>\n )}\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-autocomplete__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-autocomplete__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-autocomplete__selection-comma\">,</span>\n )}\n </span>\n )\n )}\n </div>\n )\n })}\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType<typeof VAutocomplete>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VBanner.mjs","names":["VAvatar","VBannerActions","VBannerText","VDefaultsProvider","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useDisplay","IconValue","genericComponent","useRender","toRef","VBanner","name","props","avatar","String","color","icon","lines","stacked","Boolean","sticky","text","setup","slots","borderClasses","densityClasses","mobile","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","themeClasses","density","hasText","hasPrepend","prepend","value","image","default","actions"],"sources":["../../../src/components/VBanner/VBanner.tsx"],"sourcesContent":["// Styles\nimport './VBanner.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VBannerActions } from './VBannerActions'\nimport { VBannerText } from './VBannerText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport type VBannerSlots = MakeSlots<{\n default: []\n prepend: []\n text: []\n actions: []\n}>\n\nexport const VBanner = genericComponent<VBannerSlots>()({\n name: 'VBanner',\n\n props: {\n avatar: String,\n color: String,\n icon: IconValue,\n lines: String as PropType<'one' | 'two' | 'three'>,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { mobile } = useDisplay()\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n const { themeClasses } = provideTheme(props)\n\n const color = toRef(props, 'color')\n const density = toRef(props, 'density')\n\n provideDefaults({ VBannerActions: { color, density } })\n\n useRender(() => {\n const hasText = !!(props.text || slots.text)\n const hasPrepend = !!(slots.prepend || props.avatar || props.icon)\n\n return (\n <props.tag\n class={[\n 'v-banner',\n {\n 'v-banner--stacked': props.stacked || mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: !!props.lines,\n },\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={[\n dimensionStyles.value,\n locationStyles.value,\n ]}\n role=\"banner\"\n >\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n color: color.value,\n density: density.value,\n icon: props.icon,\n image: props.avatar,\n },\n }}\n >\n <div class=\"v-banner__prepend\">\n { slots.prepend\n ? slots.prepend()\n : (props.avatar || props.icon) && (<VAvatar />)\n }\n </div>\n </VDefaultsProvider>\n )
|
|
1
|
+
{"version":3,"file":"VBanner.mjs","names":["VAvatar","VBannerActions","VBannerText","VDefaultsProvider","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useDisplay","IconValue","genericComponent","useRender","toRef","VBanner","name","props","avatar","String","color","icon","lines","stacked","Boolean","sticky","text","setup","slots","borderClasses","densityClasses","mobile","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","themeClasses","density","hasText","hasPrepend","prepend","value","image","default","actions"],"sources":["../../../src/components/VBanner/VBanner.tsx"],"sourcesContent":["// Styles\nimport './VBanner.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VBannerActions } from './VBannerActions'\nimport { VBannerText } from './VBannerText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport type VBannerSlots = MakeSlots<{\n default: []\n prepend: []\n text: []\n actions: []\n}>\n\nexport const VBanner = genericComponent<VBannerSlots>()({\n name: 'VBanner',\n\n props: {\n avatar: String,\n color: String,\n icon: IconValue,\n lines: String as PropType<'one' | 'two' | 'three'>,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { mobile } = useDisplay()\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n const { themeClasses } = provideTheme(props)\n\n const color = toRef(props, 'color')\n const density = toRef(props, 'density')\n\n provideDefaults({ VBannerActions: { color, density } })\n\n useRender(() => {\n const hasText = !!(props.text || slots.text)\n const hasPrepend = !!(slots.prepend || props.avatar || props.icon)\n\n return (\n <props.tag\n class={[\n 'v-banner',\n {\n 'v-banner--stacked': props.stacked || mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: !!props.lines,\n },\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={[\n dimensionStyles.value,\n locationStyles.value,\n ]}\n role=\"banner\"\n >\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n color: color.value,\n density: density.value,\n icon: props.icon,\n image: props.avatar,\n },\n }}\n >\n <div class=\"v-banner__prepend\">\n { slots.prepend\n ? slots.prepend()\n : (props.avatar || props.icon) && (<VAvatar />)\n }\n </div>\n </VDefaultsProvider>\n )}\n\n <div class=\"v-banner__content\">\n { hasText && (\n <VBannerText key=\"text\">\n { slots.text ? slots.text() : props.text }\n </VBannerText>\n )}\n\n { slots.default?.() }\n </div>\n\n { slots.actions && (\n <VBannerActions>\n { slots.actions() }\n </VBannerActions>\n )}\n </props.tag>\n )\n })\n },\n})\n\nexport type VBanner = InstanceType<typeof VBanner>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VBottomNavigation.mjs","names":["makeBorderProps","useBorder","makeDensityProps","useDensity","makeElevationProps","useElevation","makeGroupProps","useGroup","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","useTheme","provideDefaults","useBackgroundColor","useSsrBoot","computed","toRef","convertToUnit","genericComponent","useRender","VBtnToggleSymbol","VBottomNavigation","name","props","bgColor","String","color","grow","Boolean","mode","type","validator","v","includes","height","Number","default","active","tag","modelValue","selectedClass","emits","value","setup","slots","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","densityClasses","elevationClasses","roundedClasses","ssrBootStyles","density","isActive","layoutItemStyles","id","order","parseInt","position","layoutSize","elementSize","absolute","VBtn","stacked","variant","scoped","transform"],"sources":["../../../src/components/VBottomNavigation/VBottomNavigation.tsx"],"sourcesContent":["// Styles\nimport './VBottomNavigation.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\n\nexport const VBottomNavigation = genericComponent()({\n name: 'VBottomNavigation',\n\n props: {\n bgColor: String,\n color: String,\n grow: Boolean,\n mode: {\n type: String,\n validator: (v: any) => !v || ['horizontal', 'shift'].includes(v),\n },\n height: {\n type: [Number, String],\n default: 56,\n },\n active: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({ name: 'bottom-navigation' }),\n ...makeTagProps({ tag: 'header' }),\n ...makeGroupProps({\n modelValue: true,\n selectedClass: 'v-btn--selected',\n }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { ssrBootStyles } = useSsrBoot()\n const height = computed(() => (\n Number(props.height) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ))\n const isActive = toRef(props, 'active')\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: computed(() => isActive.value ? height.value : 0),\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useGroup(props, VBtnToggleSymbol)\n\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n stacked: computed(() => props.mode !== 'horizontal'),\n variant: 'text',\n },\n }, { scoped: true })\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-bottom-navigation',\n {\n 'v-bottom-navigation--active': isActive.value,\n 'v-bottom-navigation--grow': props.grow,\n 'v-bottom-navigation--shift': props.mode === 'shift',\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n {\n height: convertToUnit(height.value),\n transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`,\n },\n ssrBootStyles.value,\n ]}\n >\n { slots.default && (\n <div class=\"v-bottom-navigation__content\">\n { slots.default() }\n </div>\n )
|
|
1
|
+
{"version":3,"file":"VBottomNavigation.mjs","names":["makeBorderProps","useBorder","makeDensityProps","useDensity","makeElevationProps","useElevation","makeGroupProps","useGroup","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","useTheme","provideDefaults","useBackgroundColor","useSsrBoot","computed","toRef","convertToUnit","genericComponent","useRender","VBtnToggleSymbol","VBottomNavigation","name","props","bgColor","String","color","grow","Boolean","mode","type","validator","v","includes","height","Number","default","active","tag","modelValue","selectedClass","emits","value","setup","slots","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","densityClasses","elevationClasses","roundedClasses","ssrBootStyles","density","isActive","layoutItemStyles","id","order","parseInt","position","layoutSize","elementSize","absolute","VBtn","stacked","variant","scoped","transform"],"sources":["../../../src/components/VBottomNavigation/VBottomNavigation.tsx"],"sourcesContent":["// Styles\nimport './VBottomNavigation.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\n\nexport const VBottomNavigation = genericComponent()({\n name: 'VBottomNavigation',\n\n props: {\n bgColor: String,\n color: String,\n grow: Boolean,\n mode: {\n type: String,\n validator: (v: any) => !v || ['horizontal', 'shift'].includes(v),\n },\n height: {\n type: [Number, String],\n default: 56,\n },\n active: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({ name: 'bottom-navigation' }),\n ...makeTagProps({ tag: 'header' }),\n ...makeGroupProps({\n modelValue: true,\n selectedClass: 'v-btn--selected',\n }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { ssrBootStyles } = useSsrBoot()\n const height = computed(() => (\n Number(props.height) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ))\n const isActive = toRef(props, 'active')\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: computed(() => isActive.value ? height.value : 0),\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useGroup(props, VBtnToggleSymbol)\n\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n stacked: computed(() => props.mode !== 'horizontal'),\n variant: 'text',\n },\n }, { scoped: true })\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-bottom-navigation',\n {\n 'v-bottom-navigation--active': isActive.value,\n 'v-bottom-navigation--grow': props.grow,\n 'v-bottom-navigation--shift': props.mode === 'shift',\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n {\n height: convertToUnit(height.value),\n transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`,\n },\n ssrBootStyles.value,\n ]}\n >\n { slots.default && (\n <div class=\"v-bottom-navigation__content\">\n { slots.default() }\n </div>\n )}\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBottomNavigation = InstanceType<typeof VBottomNavigation>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,eAAe,EAAEC,SAAS;AAAA,SAC1BC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,mBAAmB,EAAEC,aAAa;AAAA,SAClCC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,eAAe;AAAA,SACfC,kBAAkB;AAAA,SAClBC,UAAU,yCAEnB;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,aAAa,EAAEC,gBAAgB,EAAEC,SAAS,gCAEnD;AAAA,SACSC,gBAAgB;AAEzB,OAAO,MAAMC,iBAAiB,GAAGH,gBAAgB,EAAE,CAAC;EAClDI,IAAI,EAAE,mBAAmB;EAEzBC,KAAK,EAAE;IACLC,OAAO,EAAEC,MAAM;IACfC,KAAK,EAAED,MAAM;IACbE,IAAI,EAAEC,OAAO;IACbC,IAAI,EAAE;MACJC,IAAI,EAAEL,MAAM;MACZM,SAAS,EAAGC,CAAM,IAAK,CAACA,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAACC,QAAQ,CAACD,CAAC;IACjE,CAAC;IACDE,MAAM,EAAE;MACNJ,IAAI,EAAE,CAACK,MAAM,EAAEV,MAAM,CAAC;MACtBW,OAAO,EAAE;IACX,CAAC;IACDC,MAAM,EAAE;MACNP,IAAI,EAAEF,OAAO;MACbQ,OAAO,EAAE;IACX,CAAC;IAED,GAAGvC,eAAe,EAAE;IACpB,GAAGE,gBAAgB,EAAE;IACrB,GAAGE,kBAAkB,EAAE;IACvB,GAAGM,gBAAgB,EAAE;IACrB,GAAGF,mBAAmB,CAAC;MAAEiB,IAAI,EAAE;IAAoB,CAAC,CAAC;IACrD,GAAGb,YAAY,CAAC;MAAE6B,GAAG,EAAE;IAAS,CAAC,CAAC;IAClC,GAAGnC,cAAc,CAAC;MAChBoC,UAAU,EAAE,IAAI;MAChBC,aAAa,EAAE;IACjB,CAAC,CAAC;IACF,GAAG9B,cAAc;EACnB,CAAC;EAED+B,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK;EACvC,CAAC;EAEDC,KAAK,CAAEpB,KAAK,QAAa;IAAA,IAAX;MAAEqB;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAa,CAAC,GAAGlC,QAAQ,EAAE;IACnC,MAAM;MAAEmC;IAAc,CAAC,GAAGhD,SAAS,CAACyB,KAAK,CAAC;IAC1C,MAAM;MAAEwB,sBAAsB;MAAEC;IAAsB,CAAC,GAAGnC,kBAAkB,CAACG,KAAK,CAACO,KAAK,EAAE,SAAS,CAAC,CAAC;IACrG,MAAM;MAAE0B;IAAe,CAAC,GAAGjD,UAAU,CAACuB,KAAK,CAAC;IAC5C,MAAM;MAAE2B;IAAiB,CAAC,GAAGhD,YAAY,CAACqB,KAAK,CAAC;IAChD,MAAM;MAAE4B;IAAe,CAAC,GAAG3C,UAAU,CAACe,KAAK,CAAC;IAC5C,MAAM;MAAE6B;IAAc,CAAC,GAAGtC,UAAU,EAAE;IACtC,MAAMoB,MAAM,GAAGnB,QAAQ,CAAC,MACtBoB,MAAM,CAACZ,KAAK,CAACW,MAAM,CAAC,IACnBX,KAAK,CAAC8B,OAAO,KAAK,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,IACxC9B,KAAK,CAAC8B,OAAO,KAAK,SAAS,GAAG,EAAE,GAAG,CAAC,CACtC,CAAC;IACF,MAAMC,QAAQ,GAAGtC,KAAK,CAACO,KAAK,EAAE,QAAQ,CAAC;IACvC,MAAM;MAAEgC;IAAiB,CAAC,GAAGjD,aAAa,CAAC;MACzCkD,EAAE,EAAEjC,KAAK,CAACD,IAAI;MACdmC,KAAK,EAAE1C,QAAQ,CAAC,MAAM2C,QAAQ,CAACnC,KAAK,CAACkC,KAAK,EAAE,EAAE,CAAC,CAAC;MAChDE,QAAQ,EAAE5C,QAAQ,CAAC,MAAM,QAAQ,CAAC;MAClC6C,UAAU,EAAE7C,QAAQ,CAAC,MAAMuC,QAAQ,CAACZ,KAAK,GAAGR,MAAM,CAACQ,KAAK,GAAG,CAAC,CAAC;MAC7DmB,WAAW,EAAE3B,MAAM;MACnBG,MAAM,EAAEiB,QAAQ;MAChBQ,QAAQ,EAAE9C,KAAK,CAACO,KAAK,EAAE,UAAU;IACnC,CAAC,CAAC;IAEFnB,QAAQ,CAACmB,KAAK,EAAEH,gBAAgB,CAAC;IAEjCR,eAAe,CAAC;MACdmD,IAAI,EAAE;QACJrC,KAAK,EAAEV,KAAK,CAACO,KAAK,EAAE,OAAO,CAAC;QAC5B8B,OAAO,EAAErC,KAAK,CAACO,KAAK,EAAE,SAAS,CAAC;QAChCyC,OAAO,EAAEjD,QAAQ,CAAC,MAAMQ,KAAK,CAACM,IAAI,KAAK,YAAY,CAAC;QACpDoC,OAAO,EAAE;MACX;IACF,CAAC,EAAE;MAAEC,MAAM,EAAE;IAAK,CAAC,CAAC;IAEpB/C,SAAS,CAAC,MAAM;MACd;QAAA,SAEW,CACL,qBAAqB,EACrB;UACE,6BAA6B,EAAEmC,QAAQ,CAACZ,KAAK;UAC7C,2BAA2B,EAAEnB,KAAK,CAACI,IAAI;UACvC,4BAA4B,EAAEJ,KAAK,CAACM,IAAI,KAAK;QAC/C,CAAC,EACDgB,YAAY,CAACH,KAAK,EAClBK,sBAAsB,CAACL,KAAK,EAC5BI,aAAa,CAACJ,KAAK,EACnBO,cAAc,CAACP,KAAK,EACpBQ,gBAAgB,CAACR,KAAK,EACtBS,cAAc,CAACT,KAAK,CACrB;QAAA,SACM,CACLM,qBAAqB,CAACN,KAAK,EAC3Ba,gBAAgB,CAACb,KAAK,EACtB;UACER,MAAM,EAAEjB,aAAa,CAACiB,MAAM,CAACQ,KAAK,CAAC;UACnCyB,SAAS,EAAG,cAAalD,aAAa,CAAC,CAACqC,QAAQ,CAACZ,KAAK,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,CAAE;QACzE,CAAC,EACDU,aAAa,CAACV,KAAK;MACpB;QAAA,gBAECE,KAAK,CAACR,OAAO;UAAA,SACF;QAA8B,IACrCQ,KAAK,CAACR,OAAO,EAAE,EAEpB;MAAA;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VBreadcrumbs.mjs","names":["VBreadcrumbsDivider","VBreadcrumbsItem","VDefaultsProvider","VIcon","IconValue","makeDensityProps","useDensity","makeRoundedProps","useRounded","makeTagProps","provideDefaults","useBackgroundColor","genericComponent","useRender","toRef","VBreadcrumbs","name","props","activeClass","String","activeColor","bgColor","color","disabled","Boolean","divider","type","default","icon","items","Array","tag","setup","slots","backgroundColorClasses","backgroundColorStyles","densityClasses","roundedClasses","hasPrepend","prepend","value","start","map","item","index","array","length","title","undefined"],"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbs.tsx"],"sourcesContent":["// Styles\nimport './VBreadcrumbs.sass'\n\n// Components\nimport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\nimport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { LinkProps } from '@/composables/router'\nimport type { PropType } from 'vue'\nimport type { SlotsToProps } from '@/util'\n\nexport type BreadcrumbItem = string | (LinkProps & {\n text: string\n disabled?: boolean\n})\n\nexport const VBreadcrumbs = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n } & SlotsToProps<{\n prepend: []\n title: [{ item: T, index: number }]\n divider: [{ item: T, index: number }]\n default: []\n }>\n}>()({\n name: 'VBreadcrumbs',\n\n props: {\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/',\n },\n icon: IconValue,\n items: {\n type: Array as PropType<BreadcrumbItem[]>,\n default: () => ([]),\n },\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'ul' }),\n },\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBreadcrumbsDivider: {\n divider: toRef(props, 'divider'),\n },\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n },\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.icon)\n\n return (\n <props.tag\n class={[\n 'v-breadcrumbs',\n backgroundColorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n icon: props.icon,\n start: true,\n },\n }}\n >\n <div class=\"v-breadcrumbs__prepend\">\n { slots.prepend\n ? slots.prepend()\n : props.icon && (<VIcon />)\n }\n </div>\n </VDefaultsProvider>\n )
|
|
1
|
+
{"version":3,"file":"VBreadcrumbs.mjs","names":["VBreadcrumbsDivider","VBreadcrumbsItem","VDefaultsProvider","VIcon","IconValue","makeDensityProps","useDensity","makeRoundedProps","useRounded","makeTagProps","provideDefaults","useBackgroundColor","genericComponent","useRender","toRef","VBreadcrumbs","name","props","activeClass","String","activeColor","bgColor","color","disabled","Boolean","divider","type","default","icon","items","Array","tag","setup","slots","backgroundColorClasses","backgroundColorStyles","densityClasses","roundedClasses","hasPrepend","prepend","value","start","map","item","index","array","length","title","undefined"],"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbs.tsx"],"sourcesContent":["// Styles\nimport './VBreadcrumbs.sass'\n\n// Components\nimport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\nimport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { LinkProps } from '@/composables/router'\nimport type { PropType } from 'vue'\nimport type { SlotsToProps } from '@/util'\n\nexport type BreadcrumbItem = string | (LinkProps & {\n text: string\n disabled?: boolean\n})\n\nexport const VBreadcrumbs = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n } & SlotsToProps<{\n prepend: []\n title: [{ item: T, index: number }]\n divider: [{ item: T, index: number }]\n default: []\n }>\n}>()({\n name: 'VBreadcrumbs',\n\n props: {\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/',\n },\n icon: IconValue,\n items: {\n type: Array as PropType<BreadcrumbItem[]>,\n default: () => ([]),\n },\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'ul' }),\n },\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBreadcrumbsDivider: {\n divider: toRef(props, 'divider'),\n },\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n },\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.icon)\n\n return (\n <props.tag\n class={[\n 'v-breadcrumbs',\n backgroundColorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n icon: props.icon,\n start: true,\n },\n }}\n >\n <div class=\"v-breadcrumbs__prepend\">\n { slots.prepend\n ? slots.prepend()\n : props.icon && (<VIcon />)\n }\n </div>\n </VDefaultsProvider>\n )}\n\n { props.items.map((item, index, array) => (\n <>\n <VBreadcrumbsItem\n key={ index }\n disabled={ index >= array.length - 1 }\n { ...(typeof item === 'string' ? { title: item } : item) }\n v-slots={{\n default: slots.title ? () => slots.title?.({ item, index }) : undefined,\n }}\n />\n\n { index < array.length - 1 && (\n <VBreadcrumbsDivider\n v-slots={{\n default: slots.divider ? () => slots.divider?.({ item, index }) : undefined,\n }}\n />\n )}\n </>\n ))}\n\n { slots.default?.() }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBreadcrumbs = InstanceType<typeof VBreadcrumbs>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VBtn.mjs","names":["VBtnToggleSymbol","VDefaultsProvider","VIcon","VProgressCircular","Ripple","genOverlays","makeVariantProps","useVariant","IconValue","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeLoaderProps","useLoader","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useSelectLink","computed","genericComponent","useRender","VBtn","name","directives","props","active","type","Boolean","default","undefined","symbol","flat","icon","String","Function","Object","prependIcon","appendIcon","block","stacked","ripple","tag","variant","emits","val","setup","attrs","slots","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","loaderClasses","locationStyles","positionClasses","roundedClasses","sizeClasses","sizeStyles","group","link","isActive","isLink","value","isSelected","isDisabled","disabled","isElevated","border","valueAttr","JSON","stringify","select","Tag","hasPrepend","prepend","hasAppend","append","hasIcon","hasColor","selectedClass","loading","href","e","navigate","toggle","loader"],"sources":["../../../src/components/VBtn/VBtn.tsx"],"sourcesContent":["// Styles\nimport './VBtn.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useSelectLink } from '@/composables/selectLink'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport type VBtnSlots = MakeSlots<{\n default: []\n prepend: []\n append: []\n loader: []\n}>\n\nexport const VBtn = genericComponent<VBtnSlots>()({\n name: 'VBtn',\n\n directives: { Ripple },\n\n props: {\n active: {\n type: Boolean,\n default: undefined,\n },\n symbol: {\n type: null,\n default: VBtnToggleSymbol,\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n block: Boolean,\n stacked: Boolean,\n\n ripple: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeRoundedProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const group = useGroupItem(props, props.symbol, false)\n const link = useLink(props, attrs)\n\n const isActive = computed(() => {\n if (props.active !== undefined) {\n return props.active\n }\n\n if (link.isLink.value) {\n return link.isActive?.value\n }\n\n return group?.isSelected.value\n })\n const isDisabled = computed(() => group?.disabled.value || props.disabled)\n const isElevated = computed(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border)\n })\n const valueAttr = computed(() => {\n if (props.value === undefined) return undefined\n\n return Object(props.value) === props.value\n ? JSON.stringify(props.value, null, 0) : props.value\n })\n\n useSelectLink(link, group?.select)\n\n useRender(() => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasPrepend = !!(props.prependIcon || slots.prepend)\n const hasAppend = !!(props.appendIcon || slots.append)\n const hasIcon = !!(props.icon && props.icon !== true)\n const hasColor = (\n (group?.isSelected.value && (!link.isLink.value || link.isActive?.value)) ||\n (!group || link.isActive?.value)\n )\n\n return (\n <Tag\n type={ Tag === 'a' ? undefined : 'button' }\n class={[\n 'v-btn',\n group?.selectedClass.value,\n {\n 'v-btn--active': isActive.value,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--loading': props.loading,\n 'v-btn--stacked': props.stacked,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n loaderClasses.value,\n positionClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n locationStyles.value,\n sizeStyles.value,\n ]}\n disabled={ isDisabled.value || undefined }\n href={ link.href.value }\n v-ripple={[\n !isDisabled.value && props.ripple,\n null,\n props.icon ? ['center'] : null,\n ]}\n onClick={ (e: MouseEvent) => {\n if (isDisabled.value) return\n\n link.navigate?.(e)\n group?.toggle()\n } }\n value={ valueAttr.value }\n >\n { genOverlays(true, 'v-btn') }\n\n { !props.icon && hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n icon: props.prependIcon,\n },\n }}\n >\n <span class=\"v-btn__prepend\">\n { slots.prepend?.() ?? (<VIcon />) }\n </span>\n </VDefaultsProvider>\n ) }\n\n <span class=\"v-btn__content\" data-no-activator=\"\">\n <VDefaultsProvider\n key=\"content\"\n defaults={{\n VIcon: {\n icon: hasIcon ? props.icon : undefined,\n },\n }}\n >\n { slots.default?.() ?? (\n hasIcon && (\n <VIcon key=\"icon\" />\n )\n ) }\n </VDefaultsProvider>\n </span>\n\n { !props.icon && hasAppend && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VIcon: {\n icon: props.appendIcon,\n },\n }}\n >\n <span class=\"v-btn__append\">\n { slots.append?.() ?? (<VIcon />) }\n </span>\n </VDefaultsProvider>\n ) }\n\n { !!props.loading && (\n <span key=\"loader\" class=\"v-btn__loader\">\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"23\"\n width=\"2\"\n />\n ) }\n </span>\n ) }\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBtn = InstanceType<typeof VBtn>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VBtn.mjs","names":["VBtnToggleSymbol","VDefaultsProvider","VIcon","VProgressCircular","Ripple","genOverlays","makeVariantProps","useVariant","IconValue","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeLoaderProps","useLoader","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useSelectLink","computed","genericComponent","useRender","VBtn","name","directives","props","active","type","Boolean","default","undefined","symbol","flat","icon","String","Function","Object","prependIcon","appendIcon","block","stacked","ripple","tag","variant","emits","val","setup","attrs","slots","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","loaderClasses","locationStyles","positionClasses","roundedClasses","sizeClasses","sizeStyles","group","link","isActive","isLink","value","isSelected","isDisabled","disabled","isElevated","border","valueAttr","JSON","stringify","select","Tag","hasPrepend","prepend","hasAppend","append","hasIcon","hasColor","selectedClass","loading","href","e","navigate","toggle","loader"],"sources":["../../../src/components/VBtn/VBtn.tsx"],"sourcesContent":["// Styles\nimport './VBtn.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useSelectLink } from '@/composables/selectLink'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport type VBtnSlots = MakeSlots<{\n default: []\n prepend: []\n append: []\n loader: []\n}>\n\nexport const VBtn = genericComponent<VBtnSlots>()({\n name: 'VBtn',\n\n directives: { Ripple },\n\n props: {\n active: {\n type: Boolean,\n default: undefined,\n },\n symbol: {\n type: null,\n default: VBtnToggleSymbol,\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n block: Boolean,\n stacked: Boolean,\n\n ripple: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeRoundedProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const group = useGroupItem(props, props.symbol, false)\n const link = useLink(props, attrs)\n\n const isActive = computed(() => {\n if (props.active !== undefined) {\n return props.active\n }\n\n if (link.isLink.value) {\n return link.isActive?.value\n }\n\n return group?.isSelected.value\n })\n const isDisabled = computed(() => group?.disabled.value || props.disabled)\n const isElevated = computed(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border)\n })\n const valueAttr = computed(() => {\n if (props.value === undefined) return undefined\n\n return Object(props.value) === props.value\n ? JSON.stringify(props.value, null, 0) : props.value\n })\n\n useSelectLink(link, group?.select)\n\n useRender(() => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasPrepend = !!(props.prependIcon || slots.prepend)\n const hasAppend = !!(props.appendIcon || slots.append)\n const hasIcon = !!(props.icon && props.icon !== true)\n const hasColor = (\n (group?.isSelected.value && (!link.isLink.value || link.isActive?.value)) ||\n (!group || link.isActive?.value)\n )\n\n return (\n <Tag\n type={ Tag === 'a' ? undefined : 'button' }\n class={[\n 'v-btn',\n group?.selectedClass.value,\n {\n 'v-btn--active': isActive.value,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--loading': props.loading,\n 'v-btn--stacked': props.stacked,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n loaderClasses.value,\n positionClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n locationStyles.value,\n sizeStyles.value,\n ]}\n disabled={ isDisabled.value || undefined }\n href={ link.href.value }\n v-ripple={[\n !isDisabled.value && props.ripple,\n null,\n props.icon ? ['center'] : null,\n ]}\n onClick={ (e: MouseEvent) => {\n if (isDisabled.value) return\n\n link.navigate?.(e)\n group?.toggle()\n }}\n value={ valueAttr.value }\n >\n { genOverlays(true, 'v-btn') }\n\n { !props.icon && hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n icon: props.prependIcon,\n },\n }}\n >\n <span class=\"v-btn__prepend\">\n { slots.prepend?.() ?? (<VIcon />) }\n </span>\n </VDefaultsProvider>\n )}\n\n <span class=\"v-btn__content\" data-no-activator=\"\">\n <VDefaultsProvider\n key=\"content\"\n defaults={{\n VIcon: {\n icon: hasIcon ? props.icon : undefined,\n },\n }}\n >\n { slots.default?.() ?? (\n hasIcon && (\n <VIcon key=\"icon\" />\n )\n )}\n </VDefaultsProvider>\n </span>\n\n { !props.icon && hasAppend && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VIcon: {\n icon: props.appendIcon,\n },\n }}\n >\n <span class=\"v-btn__append\">\n { slots.append?.() ?? (<VIcon />) }\n </span>\n </VDefaultsProvider>\n )}\n\n { !!props.loading && (\n <span key=\"loader\" class=\"v-btn__loader\">\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"23\"\n width=\"2\"\n />\n )}\n </span>\n )}\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBtn = InstanceType<typeof VBtn>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VBtnToggle.mjs","names":["filterVBtnGroupProps","makeVBtnGroupProps","VBtnGroup","makeGroupProps","useGroup","genericComponent","useRender","VBtnToggleSymbol","Symbol","for","VBtnToggle","name","props","emits","value","setup","slots","isSelected","next","prev","select","selected","btnGroupProps","default"],"sources":["../../../src/components/VBtnToggle/VBtnToggle.tsx"],"sourcesContent":["// Styles\nimport './VBtnToggle.sass'\n\n// Components\nimport { filterVBtnGroupProps, makeVBtnGroupProps, VBtnGroup } from '@/components/VBtnGroup/VBtnGroup'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utility\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport type BtnToggleSlotProps = 'isSelected' | 'select' | 'selected' | 'next' | 'prev'\nexport interface DefaultBtnToggleSlot extends Pick<GroupProvide, BtnToggleSlotProps> {}\n\nexport const VBtnToggleSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-btn-toggle')\n\ntype VBtnToggleSlots = {\n default: [DefaultBtnToggleSlot]\n}\n\nexport const VBtnToggle = genericComponent<VBtnToggleSlots>()({\n name: 'VBtnToggle',\n\n props: {\n ...makeVBtnGroupProps(),\n ...makeGroupProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, next, prev, select, selected } = useGroup(props, VBtnToggleSymbol)\n\n useRender(() => {\n const [btnGroupProps] = filterVBtnGroupProps(props)\n\n return (\n <VBtnGroup\n class=\"v-btn-toggle\"\n { ...btnGroupProps }\n >\n { slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected,\n } as DefaultBtnToggleSlot)
|
|
1
|
+
{"version":3,"file":"VBtnToggle.mjs","names":["filterVBtnGroupProps","makeVBtnGroupProps","VBtnGroup","makeGroupProps","useGroup","genericComponent","useRender","VBtnToggleSymbol","Symbol","for","VBtnToggle","name","props","emits","value","setup","slots","isSelected","next","prev","select","selected","btnGroupProps","default"],"sources":["../../../src/components/VBtnToggle/VBtnToggle.tsx"],"sourcesContent":["// Styles\nimport './VBtnToggle.sass'\n\n// Components\nimport { filterVBtnGroupProps, makeVBtnGroupProps, VBtnGroup } from '@/components/VBtnGroup/VBtnGroup'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utility\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport type BtnToggleSlotProps = 'isSelected' | 'select' | 'selected' | 'next' | 'prev'\nexport interface DefaultBtnToggleSlot extends Pick<GroupProvide, BtnToggleSlotProps> {}\n\nexport const VBtnToggleSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-btn-toggle')\n\ntype VBtnToggleSlots = {\n default: [DefaultBtnToggleSlot]\n}\n\nexport const VBtnToggle = genericComponent<VBtnToggleSlots>()({\n name: 'VBtnToggle',\n\n props: {\n ...makeVBtnGroupProps(),\n ...makeGroupProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, next, prev, select, selected } = useGroup(props, VBtnToggleSymbol)\n\n useRender(() => {\n const [btnGroupProps] = filterVBtnGroupProps(props)\n\n return (\n <VBtnGroup\n class=\"v-btn-toggle\"\n { ...btnGroupProps }\n >\n { slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected,\n } as DefaultBtnToggleSlot)}\n </VBtnGroup>\n )\n })\n\n return {\n next,\n prev,\n select,\n }\n },\n})\n\nexport type VBtnToggle = InstanceType<typeof VBtnToggle>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,oBAAoB,EAAEC,kBAAkB,EAAEC,SAAS,sCAE5D;AAAA,SACSC,cAAc,EAAEC,QAAQ,uCAEjC;AAAA,SACSC,gBAAgB,EAAEC,SAAS,gCAEpC;AAOA,OAAO,MAAMC,gBAA4C,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAM9F,OAAO,MAAMC,UAAU,GAAGL,gBAAgB,EAAmB,CAAC;EAC5DM,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAE;IACL,GAAGX,kBAAkB,EAAE;IACvB,GAAGE,cAAc;EACnB,CAAC;EAEDU,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK;EACvC,CAAC;EAEDC,KAAK,CAAEH,KAAK,QAAa;IAAA,IAAX;MAAEI;IAAM,CAAC;IACrB,MAAM;MAAEC,UAAU;MAAEC,IAAI;MAAEC,IAAI;MAAEC,MAAM;MAAEC;IAAS,CAAC,GAAGjB,QAAQ,CAACQ,KAAK,EAAEL,gBAAgB,CAAC;IAEtFD,SAAS,CAAC,MAAM;MACd,MAAM,CAACgB,aAAa,CAAC,GAAGtB,oBAAoB,CAACY,KAAK,CAAC;MAEnD;QAAA,SAEU;MAAc,GACfU,aAAa;QAAA,gBAEhBN,KAAK,CAACO,OAAO,GAAG;UAChBN,UAAU;UACVC,IAAI;UACJC,IAAI;UACJC,MAAM;UACNC;QACF,CAAC,CAAyB;MAAA;IAGhC,CAAC,CAAC;IAEF,OAAO;MACLH,IAAI;MACJC,IAAI;MACJC;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VCard.mjs","names":["VCardActions","VCardItem","VCardText","VDefaultsProvider","VImg","Ripple","genOverlays","makeVariantProps","useVariant","IconValue","LoaderSlot","makeLoaderProps","useLoader","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","computed","genericComponent","useRender","VCard","name","directives","props","appendAvatar","String","appendIcon","disabled","Boolean","flat","hover","image","link","type","default","undefined","prependAvatar","prependIcon","ripple","subtitle","text","title","variant","setup","attrs","slots","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","loaderClasses","locationStyles","positionClasses","roundedClasses","isLink","value","isClickable","Tag","tag","hasTitle","hasSubtitle","hasHeader","hasAppend","append","hasPrepend","prepend","hasImage","hasCardItem","hasText","href","navigate","cover","src","loading","loader","item","actions"],"sources":["../../../src/components/VCard/VCard.tsx"],"sourcesContent":["/* eslint-disable complexity */\n\n// Styles\nimport './VCard.sass'\n\n// Components\nimport { VCardActions } from './VCardActions'\nimport { VCardItem } from './VCardItem'\nimport { VCardText } from './VCardText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\n\nexport type VCardSlots = MakeSlots<{\n default: []\n actions: []\n title: []\n subtitle: []\n text: []\n loader: []\n image: []\n prepend: []\n append: []\n}>\n\nexport const VCard = genericComponent<VCardSlots>()({\n name: 'VCard',\n\n directives: { Ripple },\n\n props: {\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined,\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n subtitle: String,\n text: String,\n title: String,\n\n ...makeThemeProps(),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const link = useLink(props, attrs)\n\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value)\n )\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = !!(slots.title || props.title)\n const hasSubtitle = !!(slots.subtitle || props.subtitle)\n const hasHeader = hasTitle || hasSubtitle\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n const hasImage = !!(slots.image || props.image)\n const hasCardItem = hasHeader || hasPrepend || hasAppend\n const hasText = !!(slots.text || props.text)\n\n return (\n <Tag\n class={[\n 'v-card',\n {\n 'v-card--disabled': props.disabled,\n 'v-card--flat': props.flat,\n 'v-card--hover': props.hover && !(props.disabled || props.flat),\n 'v-card--link': isClickable.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n loaderClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n href={ link.href.value }\n onClick={ isClickable.value && link.navigate }\n v-ripple={ isClickable.value && props.ripple }\n tabindex={ props.disabled ? -1 : undefined }\n >\n { hasImage && (\n <VDefaultsProvider\n key=\"image\"\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n >\n <div class=\"v-card__image\">\n { slots.image?.() ?? <VImg /> }\n </div>\n </VDefaultsProvider>\n ) }\n\n <LoaderSlot\n name=\"v-card\"\n active={ !!props.loading }\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n v-slots={{ default: slots.loader }}\n />\n\n { hasCardItem && (\n <VCardItem\n key=\"item\"\n prependAvatar={ props.prependAvatar }\n prependIcon={ props.prependIcon }\n title={ props.title }\n subtitle={ props.subtitle }\n appendAvatar={ props.appendAvatar }\n appendIcon={ props.appendIcon }\n >\n {{\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append,\n }}\n </VCardItem>\n ) }\n\n { hasText && (\n <VCardText key=\"text\">\n { slots.text?.() ?? props.text }\n </VCardText>\n ) }\n\n { slots.default?.() }\n\n { slots.actions && (\n <VCardActions v-slots={{ default: slots.actions }} />\n ) }\n\n { genOverlays(isClickable.value, 'v-card') }\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VCard = InstanceType<typeof VCard>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VCard.mjs","names":["VCardActions","VCardItem","VCardText","VDefaultsProvider","VImg","Ripple","genOverlays","makeVariantProps","useVariant","IconValue","LoaderSlot","makeLoaderProps","useLoader","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","computed","genericComponent","useRender","VCard","name","directives","props","appendAvatar","String","appendIcon","disabled","Boolean","flat","hover","image","link","type","default","undefined","prependAvatar","prependIcon","ripple","subtitle","text","title","variant","setup","attrs","slots","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","loaderClasses","locationStyles","positionClasses","roundedClasses","isLink","value","isClickable","Tag","tag","hasTitle","hasSubtitle","hasHeader","hasAppend","append","hasPrepend","prepend","hasImage","hasCardItem","hasText","href","navigate","cover","src","loading","loader","item","actions"],"sources":["../../../src/components/VCard/VCard.tsx"],"sourcesContent":["/* eslint-disable complexity */\n\n// Styles\nimport './VCard.sass'\n\n// Components\nimport { VCardActions } from './VCardActions'\nimport { VCardItem } from './VCardItem'\nimport { VCardText } from './VCardText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\n\nexport type VCardSlots = MakeSlots<{\n default: []\n actions: []\n title: []\n subtitle: []\n text: []\n loader: []\n image: []\n prepend: []\n append: []\n}>\n\nexport const VCard = genericComponent<VCardSlots>()({\n name: 'VCard',\n\n directives: { Ripple },\n\n props: {\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined,\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n subtitle: String,\n text: String,\n title: String,\n\n ...makeThemeProps(),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const link = useLink(props, attrs)\n\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value)\n )\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = !!(slots.title || props.title)\n const hasSubtitle = !!(slots.subtitle || props.subtitle)\n const hasHeader = hasTitle || hasSubtitle\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n const hasImage = !!(slots.image || props.image)\n const hasCardItem = hasHeader || hasPrepend || hasAppend\n const hasText = !!(slots.text || props.text)\n\n return (\n <Tag\n class={[\n 'v-card',\n {\n 'v-card--disabled': props.disabled,\n 'v-card--flat': props.flat,\n 'v-card--hover': props.hover && !(props.disabled || props.flat),\n 'v-card--link': isClickable.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n loaderClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n href={ link.href.value }\n onClick={ isClickable.value && link.navigate }\n v-ripple={ isClickable.value && props.ripple }\n tabindex={ props.disabled ? -1 : undefined }\n >\n { hasImage && (\n <VDefaultsProvider\n key=\"image\"\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n >\n <div class=\"v-card__image\">\n { slots.image?.() ?? <VImg /> }\n </div>\n </VDefaultsProvider>\n )}\n\n <LoaderSlot\n name=\"v-card\"\n active={ !!props.loading }\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n v-slots={{ default: slots.loader }}\n />\n\n { hasCardItem && (\n <VCardItem\n key=\"item\"\n prependAvatar={ props.prependAvatar }\n prependIcon={ props.prependIcon }\n title={ props.title }\n subtitle={ props.subtitle }\n appendAvatar={ props.appendAvatar }\n appendIcon={ props.appendIcon }\n >\n {{\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append,\n }}\n </VCardItem>\n )}\n\n { hasText && (\n <VCardText key=\"text\">\n { slots.text?.() ?? props.text }\n </VCardText>\n )}\n\n { slots.default?.() }\n\n { slots.actions && (\n <VCardActions v-slots={{ default: slots.actions }} />\n )}\n\n { genOverlays(isClickable.value, 'v-card') }\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VCard = InstanceType<typeof VCard>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VCardItem.mjs","names":["VAvatar","VCardSubtitle","VCardTitle","VDefaultsProvider","IconValue","makeDensityProps","genericComponent","useRender","VCardItem","name","props","appendAvatar","String","appendIcon","prependAvatar","prependIcon","subtitle","title","setup","slots","hasPrepend","prepend","hasAppend","append","hasTitle","hasSubtitle","density","icon","image","VIcon","default"],"sources":["../../../src/components/VCard/VCardItem.tsx"],"sourcesContent":["// Components\nimport { VAvatar } from '../VAvatar'\nimport { VCardSubtitle } from './VCardSubtitle'\nimport { VCardTitle } from './VCardTitle'\nimport { VDefaultsProvider } from '../VDefaultsProvider'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps } from '@/composables/density'\n\n// Utility\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\n\nexport type VCardItemSlots = MakeSlots<{\n default: []\n prepend: []\n append: []\n title: []\n subtitle: []\n}>\n\nexport const VCardItem = genericComponent<VCardItemSlots>()({\n name: 'VCardItem',\n\n props: {\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: String,\n title: String,\n\n ...makeDensityProps(),\n },\n\n setup (props, { slots }) {\n useRender(() => {\n const hasPrepend = !!(props.prependAvatar || props.prependIcon || slots.prepend)\n const hasAppend = !!(props.appendAvatar || props.appendIcon || slots.append)\n const hasTitle = !!(props.title || slots.title)\n const hasSubtitle = !!(props.subtitle || slots.subtitle)\n\n return (\n <div class=\"v-card-item\">\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n density: props.density,\n icon: props.prependIcon,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n }}\n >\n <div class=\"v-card-item__prepend\">\n { slots.prepend?.() ?? (<VAvatar />) }\n </div>\n </VDefaultsProvider>\n )
|
|
1
|
+
{"version":3,"file":"VCardItem.mjs","names":["VAvatar","VCardSubtitle","VCardTitle","VDefaultsProvider","IconValue","makeDensityProps","genericComponent","useRender","VCardItem","name","props","appendAvatar","String","appendIcon","prependAvatar","prependIcon","subtitle","title","setup","slots","hasPrepend","prepend","hasAppend","append","hasTitle","hasSubtitle","density","icon","image","VIcon","default"],"sources":["../../../src/components/VCard/VCardItem.tsx"],"sourcesContent":["// Components\nimport { VAvatar } from '../VAvatar'\nimport { VCardSubtitle } from './VCardSubtitle'\nimport { VCardTitle } from './VCardTitle'\nimport { VDefaultsProvider } from '../VDefaultsProvider'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps } from '@/composables/density'\n\n// Utility\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\n\nexport type VCardItemSlots = MakeSlots<{\n default: []\n prepend: []\n append: []\n title: []\n subtitle: []\n}>\n\nexport const VCardItem = genericComponent<VCardItemSlots>()({\n name: 'VCardItem',\n\n props: {\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: String,\n title: String,\n\n ...makeDensityProps(),\n },\n\n setup (props, { slots }) {\n useRender(() => {\n const hasPrepend = !!(props.prependAvatar || props.prependIcon || slots.prepend)\n const hasAppend = !!(props.appendAvatar || props.appendIcon || slots.append)\n const hasTitle = !!(props.title || slots.title)\n const hasSubtitle = !!(props.subtitle || slots.subtitle)\n\n return (\n <div class=\"v-card-item\">\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n density: props.density,\n icon: props.prependIcon,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n }}\n >\n <div class=\"v-card-item__prepend\">\n { slots.prepend?.() ?? (<VAvatar />) }\n </div>\n </VDefaultsProvider>\n )}\n\n <div class=\"v-card-item__content\">\n { hasTitle && (\n <VCardTitle key=\"title\">\n { slots.title?.() ?? props.title }\n </VCardTitle>\n )}\n\n { hasSubtitle && (\n <VCardSubtitle key=\"subtitle\">\n { slots.subtitle?.() ?? props.subtitle }\n </VCardSubtitle>\n )}\n\n { slots.default?.() }\n </div>\n\n { hasAppend && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VAvatar: {\n density: props.density,\n icon: props.appendIcon,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n }}\n >\n <div class=\"v-card-item__append\">\n { slots.append?.() ?? (<VAvatar />) }\n </div>\n </VDefaultsProvider>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VCardItem = InstanceType<typeof VCardItem>\n"],"mappings":";AAAA;AAAA,SACSA,OAAO;AAAA,SACPC,aAAa;AAAA,SACbC,UAAU;AAAA,SACVC,iBAAiB,0CAE1B;AAAA,SACSC,SAAS;AAAA,SACTC,gBAAgB,yCAEzB;AAAA,SACSC,gBAAgB,EAAEC,SAAS,gCAEpC;AAWA,OAAO,MAAMC,SAAS,GAAGF,gBAAgB,EAAkB,CAAC;EAC1DG,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAE;IACLC,YAAY,EAAEC,MAAM;IACpBC,UAAU,EAAET,SAAS;IACrBU,aAAa,EAAEF,MAAM;IACrBG,WAAW,EAAEX,SAAS;IACtBY,QAAQ,EAAEJ,MAAM;IAChBK,KAAK,EAAEL,MAAM;IAEb,GAAGP,gBAAgB;EACrB,CAAC;EAEDa,KAAK,CAAER,KAAK,QAAa;IAAA,IAAX;MAAES;IAAM,CAAC;IACrBZ,SAAS,CAAC,MAAM;MACd,MAAMa,UAAU,GAAG,CAAC,EAAEV,KAAK,CAACI,aAAa,IAAIJ,KAAK,CAACK,WAAW,IAAII,KAAK,CAACE,OAAO,CAAC;MAChF,MAAMC,SAAS,GAAG,CAAC,EAAEZ,KAAK,CAACC,YAAY,IAAID,KAAK,CAACG,UAAU,IAAIM,KAAK,CAACI,MAAM,CAAC;MAC5E,MAAMC,QAAQ,GAAG,CAAC,EAAEd,KAAK,CAACO,KAAK,IAAIE,KAAK,CAACF,KAAK,CAAC;MAC/C,MAAMQ,WAAW,GAAG,CAAC,EAAEf,KAAK,CAACM,QAAQ,IAAIG,KAAK,CAACH,QAAQ,CAAC;MAExD;QAAA,SACa;MAAa,IACpBI,UAAU;QAAA,OAEJ,SAAS;QAAA,YACH;UACRpB,OAAO,EAAE;YACP0B,OAAO,EAAEhB,KAAK,CAACgB,OAAO;YACtBC,IAAI,EAAEjB,KAAK,CAACK,WAAW;YACvBa,KAAK,EAAElB,KAAK,CAACI;UACf,CAAC;UACDe,KAAK,EAAE;YACLH,OAAO,EAAEhB,KAAK,CAACgB,OAAO;YACtBC,IAAI,EAAEjB,KAAK,CAACK;UACd;QACF;MAAC;QAAA;UAAA,SAEU;QAAsB,IAC7BI,KAAK,CAACE,OAAO,IAAI,qCAAiB;MAAA,EAGzC;QAAA,SAEU;MAAsB,IAC7BG,QAAQ;QAAA,OACQ;MAAO;QAAA,gBACnBL,KAAK,CAACF,KAAK,IAAI,IAAIP,KAAK,CAACO,KAAK;MAAA,EAEnC,EAECQ,WAAW;QAAA,OACQ;MAAU;QAAA,gBACzBN,KAAK,CAACH,QAAQ,IAAI,IAAIN,KAAK,CAACM,QAAQ;MAAA,EAEzC,EAECG,KAAK,CAACW,OAAO,IAAI,IAGnBR,SAAS;QAAA,OAEH,QAAQ;QAAA,YACF;UACRtB,OAAO,EAAE;YACP0B,OAAO,EAAEhB,KAAK,CAACgB,OAAO;YACtBC,IAAI,EAAEjB,KAAK,CAACG,UAAU;YACtBe,KAAK,EAAElB,KAAK,CAACC;UACf,CAAC;UACDkB,KAAK,EAAE;YACLH,OAAO,EAAEhB,KAAK,CAACgB,OAAO;YACtBC,IAAI,EAAEjB,KAAK,CAACG;UACd;QACF;MAAC;QAAA;UAAA,SAEU;QAAqB,IAC5BM,KAAK,CAACI,MAAM,IAAI,qCAAiB;MAAA,EAGxC;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|