@vuetify/nightly 3.2.0-next-20230118.0 → 4.0.0-next-20230205.0
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/CHANGELOG.md +203 -16
- package/dist/json/importMap-labs.json +8 -4
- package/dist/json/importMap.json +8 -8
- package/dist/vuetify-labs.css +253 -246
- package/dist/vuetify-labs.d.ts +387 -176
- package/dist/vuetify-labs.esm.js +282 -215
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +281 -214
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +51 -44
- package/dist/vuetify.d.ts +317 -178
- package/dist/vuetify.esm.js +249 -185
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +248 -184
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +696 -685
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +2 -2
- package/lib/blueprints/md1.d.ts +2 -2
- package/lib/blueprints/md2.d.ts +2 -2
- package/lib/blueprints/md3.d.ts +2 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +43 -20
- package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -4
- package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +7 -7
- package/lib/components/VBtn/VBtn.mjs +8 -3
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.mjs +15 -11
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/index.d.ts +2 -1
- package/lib/components/VBtnToggle/VBtnToggle.mjs +9 -5
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.ts +122 -1
- package/lib/components/VCalendar/VCalendar.mjs +3 -0
- package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarCategory.sass +9 -3
- package/lib/components/VCalendar/VCalendarDaily.mjs +20 -8
- package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs +25 -5
- package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs +20 -16
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/mouse.mjs +16 -30
- package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
- package/lib/components/VCard/VCard.css +7 -7
- package/lib/components/VChip/VChip.css +7 -7
- package/lib/components/VCombobox/VCombobox.mjs +3 -3
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +43 -20
- package/lib/components/VData/VData.mjs +2 -4
- package/lib/components/VData/VData.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +7 -5
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/index.d.ts +5 -4
- package/lib/components/VDialog/VDialog.mjs +6 -5
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.ts +57 -34
- package/lib/components/VDivider/VDivider.mjs +6 -6
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +7 -7
- package/lib/components/VField/VField.css +2 -2
- package/lib/components/VField/VField.mjs +28 -26
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +2 -2
- package/lib/components/VFileInput/VFileInput.mjs +7 -4
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VForm/index.d.ts +0 -3
- package/lib/components/VList/VList.mjs +4 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +7 -7
- package/lib/components/VList/VListItem.mjs +29 -19
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.mjs +6 -5
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +57 -34
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +4 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +4 -0
- package/lib/components/VNavigationDrawer/index.d.ts +3 -3
- package/lib/components/VNavigationDrawer/touch.mjs +7 -6
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.mjs +22 -46
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs +3 -0
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +34 -11
- package/lib/components/VOverlay/locationStrategies.mjs +40 -29
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +25 -16
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +1 -1
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +3 -4
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +43 -20
- package/lib/components/VSelectionControl/VSelectionControl.css +2 -2
- package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +1 -1
- package/lib/components/VSnackbar/index.d.ts +42 -19
- package/lib/components/VStepper/VStepper.sass +6 -6
- package/lib/components/VStepper/VStepperStep.mjs +12 -2
- package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
- package/lib/components/VTable/VTable.css +4 -4
- package/lib/components/VTable/VTable.sass +2 -2
- package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/components/VTimeline/_mixins.sass +1 -1
- package/lib/components/VTooltip/VTooltip.mjs +4 -3
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/index.d.ts +57 -34
- package/lib/components/VTreeview/VTreeview.mjs +1 -1
- package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/components/index.d.ts +316 -176
- package/lib/composables/defaults.mjs +1 -1
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/filter.mjs +3 -3
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/form.mjs +0 -1
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +14 -7
- package/lib/composables/toggleScope.mjs.map +1 -1
- package/lib/directives/ripple/VRipple.css +3 -0
- package/lib/directives/ripple/VRipple.sass +3 -0
- package/lib/directives/ripple/_variables.scss +1 -1
- package/lib/directives/ripple/index.mjs +2 -7
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/labs/VDataTable/VDataTable.mjs +6 -6
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +19 -12
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -5
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +3 -7
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +71 -1
- package/lib/labs/VDataTable/index.mjs +1 -0
- package/lib/labs/VDataTable/index.mjs.map +1 -1
- package/lib/labs/components.d.ts +71 -1
- package/lib/locale/adapters/vue-i18n.mjs +12 -2
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/ar.mjs +20 -20
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/en.mjs +2 -2
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +3 -3
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/fi.mjs +5 -5
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/it.mjs +6 -6
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/sv.mjs +13 -13
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/styles/settings/_variables.scss +6 -6
- package/lib/styles/tools/_states.sass +3 -3
- package/lib/util/defineComponent.mjs +21 -18
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +5 -19
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VNavigationDrawer.mjs","names":["makeBorderProps","useBorder","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useBackgroundColor","useDisplay","useProxiedModel","useRouter","useRtl","useSsrBoot","useSticky","useTouch","computed","nextTick","onBeforeMount","ref","toRef","Transition","watch","convertToUnit","defineComponent","toPhysical","useRender","locations","VNavigationDrawer","name","props","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","scrim","image","temporary","touchless","width","location","validator","value","includes","sticky","tag","emits","val","setup","attrs","emit","slots","isRtl","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","mobile","roundedClasses","router","isActive","v","ssrBootStyles","rootEl","isHovering","isTemporary","isSticky","currentRoute","isDragging","dragProgress","dragStyles","position","layoutSize","size","layoutItemStyles","layoutRect","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","left","right","top","bottom","VList","bgColor","hasImage","prepend","append"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useDisplay } from '@/composables/display'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRouter } from '@/composables/router'\nimport { useRtl } from '@/composables'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, ref, toRef, Transition, watch } from 'vue'\nimport { convertToUnit, defineComponent, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst locations = ['start', 'end', 'left', 'right', 'bottom'] as const\n\nexport const VNavigationDrawer = defineComponent({\n name: 'VNavigationDrawer',\n\n props: {\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [String, Boolean],\n default: true,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n 'update:rail': (val: boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = ref(false)\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n if (props.expandOnHover && props.rail != null) {\n watch(isHovering, val => emit('update:rail', !val))\n }\n\n if (!props.disableResizeWatcher) {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n }\n\n if (!props.disableRouteWatcher && router) {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false))\n }\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n\n const { layoutItemStyles, layoutRect, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutRect.value ? {\n left: convertToUnit(layoutRect.value.left),\n right: convertToUnit(layoutRect.value.right),\n top: convertToUnit(layoutRect.value.top),\n bottom: convertToUnit(layoutRect.value.bottom),\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ () => (isHovering.value = true) }\n onMouseleave={ () => (isHovering.value = false) }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n ]}\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { slots.image\n ? slots.image?.({ image: props.image })\n : (<img src={ props.image } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => isActive.value = false }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"VNavigationDrawer.mjs","names":["makeBorderProps","useBorder","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useBackgroundColor","useDisplay","useProxiedModel","useRouter","useRtl","useSsrBoot","useSticky","useTouch","computed","nextTick","onBeforeMount","ref","toRef","Transition","watch","convertToUnit","defineComponent","toPhysical","useRender","locations","VNavigationDrawer","name","props","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","scrim","image","temporary","touchless","width","location","validator","value","includes","sticky","tag","emits","val","setup","attrs","emit","slots","isRtl","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","mobile","roundedClasses","router","isActive","v","ssrBootStyles","rootEl","isHovering","isTemporary","isSticky","currentRoute","isDragging","dragProgress","dragStyles","position","layoutSize","size","layoutItemStyles","layoutRect","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","left","right","top","bottom","VList","bgColor","hasImage","prepend","append"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useDisplay } from '@/composables/display'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRouter } from '@/composables/router'\nimport { useRtl } from '@/composables'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, ref, toRef, Transition, watch } from 'vue'\nimport { convertToUnit, defineComponent, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const VNavigationDrawer = defineComponent({\n name: 'VNavigationDrawer',\n\n props: {\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [String, Boolean],\n default: true,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n 'update:rail': (val: boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = ref(false)\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n if (props.expandOnHover && props.rail != null) {\n watch(isHovering, val => emit('update:rail', !val))\n }\n\n if (!props.disableResizeWatcher) {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n }\n\n if (!props.disableRouteWatcher && router) {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false))\n }\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n\n const { layoutItemStyles, layoutRect, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutRect.value ? {\n left: convertToUnit(layoutRect.value.left),\n right: convertToUnit(layoutRect.value.right),\n top: convertToUnit(layoutRect.value.top),\n bottom: convertToUnit(layoutRect.value.bottom),\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ () => (isHovering.value = true) }\n onMouseleave={ () => (isHovering.value = false) }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n ]}\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { slots.image\n ? slots.image?.({ image: props.image })\n : (<img src={ props.image } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => isActive.value = false }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":"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"}
|
@@ -57,7 +57,7 @@ declare const VNavigationDrawer: vue.DefineComponent<{
|
|
57
57
|
default: number;
|
58
58
|
};
|
59
59
|
location: {
|
60
|
-
type: PropType<"end" | "start" | "left" | "bottom" | "right">;
|
60
|
+
type: PropType<"end" | "start" | "left" | "top" | "bottom" | "right">;
|
61
61
|
default: string;
|
62
62
|
validator: (value: any) => boolean;
|
63
63
|
};
|
@@ -123,7 +123,7 @@ declare const VNavigationDrawer: vue.DefineComponent<{
|
|
123
123
|
default: number;
|
124
124
|
};
|
125
125
|
location: {
|
126
|
-
type: PropType<"end" | "start" | "left" | "bottom" | "right">;
|
126
|
+
type: PropType<"end" | "start" | "left" | "top" | "bottom" | "right">;
|
127
127
|
default: string;
|
128
128
|
validator: (value: any) => boolean;
|
129
129
|
};
|
@@ -133,7 +133,7 @@ declare const VNavigationDrawer: vue.DefineComponent<{
|
|
133
133
|
"onUpdate:rail"?: ((val: boolean) => any) | undefined;
|
134
134
|
}, {
|
135
135
|
absolute: boolean;
|
136
|
-
location: "end" | "start" | "left" | "bottom" | "right";
|
136
|
+
location: "end" | "start" | "left" | "top" | "bottom" | "right";
|
137
137
|
width: string | number;
|
138
138
|
order: string | number;
|
139
139
|
temporary: boolean;
|
@@ -28,7 +28,7 @@ export function useTouch(_ref) {
|
|
28
28
|
window.removeEventListener('touchmove', onTouchmove);
|
29
29
|
window.removeEventListener('touchend', onTouchend);
|
30
30
|
});
|
31
|
-
const isHorizontal = computed(() => position.value
|
31
|
+
const isHorizontal = computed(() => ['left', 'right'].includes(position.value));
|
32
32
|
const {
|
33
33
|
addMovement,
|
34
34
|
endTouch,
|
@@ -40,11 +40,11 @@ export function useTouch(_ref) {
|
|
40
40
|
const offset = ref(0);
|
41
41
|
let start;
|
42
42
|
function getOffset(pos, active) {
|
43
|
-
return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
|
43
|
+
return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'top' ? pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
|
44
44
|
}
|
45
45
|
function getProgress(pos) {
|
46
46
|
let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
47
|
-
const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();
|
47
|
+
const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'top' ? (pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();
|
48
48
|
return limit ? Math.max(0, Math.min(1, progress)) : progress;
|
49
49
|
}
|
50
50
|
function onTouchstart(e) {
|
@@ -52,8 +52,8 @@ export function useTouch(_ref) {
|
|
52
52
|
const touchX = e.changedTouches[0].clientX;
|
53
53
|
const touchY = e.changedTouches[0].clientY;
|
54
54
|
const touchZone = 25;
|
55
|
-
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
56
|
-
const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());
|
55
|
+
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'top' ? touchY < touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
56
|
+
const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'top' ? touchY < width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());
|
57
57
|
if (inTouchZone || inElement || isActive.value && isTemporary.value) {
|
58
58
|
maybeDragging = true;
|
59
59
|
start = [touchX, touchY];
|
@@ -105,6 +105,7 @@ export function useTouch(_ref) {
|
|
105
105
|
isActive.value = velocity.direction === ({
|
106
106
|
left: 'right',
|
107
107
|
right: 'left',
|
108
|
+
top: 'down',
|
108
109
|
bottom: 'up'
|
109
110
|
}[position.value] || oops());
|
110
111
|
} else {
|
@@ -113,7 +114,7 @@ export function useTouch(_ref) {
|
|
113
114
|
}
|
114
115
|
const dragStyles = computed(() => {
|
115
116
|
return isDragging.value ? {
|
116
|
-
transform: position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))` : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))` : oops(),
|
117
|
+
transform: position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))` : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))` : oops(),
|
117
118
|
transition: 'none'
|
118
119
|
} : undefined;
|
119
120
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"touch.mjs","names":["useVelocity","computed","onBeforeUnmount","onMounted","ref","useTouch","isActive","isTemporary","width","touchless","position","window","addEventListener","onTouchstart","passive","onTouchmove","onTouchend","removeEventListener","isHorizontal","value","addMovement","endTouch","getVelocity","maybeDragging","isDragging","dragProgress","offset","start","getOffset","pos","active","document","documentElement","clientWidth","clientHeight","oops","getProgress","limit","progress","Math","max","min","e","touchX","changedTouches","clientX","touchY","clientY","touchZone","inTouchZone","inElement","cancelable","dx","abs","dy","thresholdMet","preventDefault","velocity","identifier","vx","x","vy","y","direction","left","right","bottom","dragStyles","transform","transition","undefined","Error"],"sources":["../../../src/components/VNavigationDrawer/touch.ts"],"sourcesContent":["// Composables\nimport { useVelocity } from '@/composables/touch'\n\n// Utilities\nimport { computed, onBeforeUnmount, onMounted, ref } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTouch ({ isActive, isTemporary, width, touchless, position }: {\n isActive: Ref<boolean>\n isTemporary: Ref<boolean>\n width: Ref<number>\n touchless: Ref<boolean>\n position: Ref<'left' | 'right' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => position.value !== 'bottom')\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = ref(false)\n const dragProgress = ref(0)\n const offset = ref(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? Math.max(0, Math.min(1, progress)) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n maybeDragging = true\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n"],"mappings":"AAAA;AAAA,SACSA,WAAW,uCAEpB;AACA,SAASC,QAAQ,EAAEC,eAAe,EAAEC,SAAS,EAAEC,GAAG,QAAQ,KAAK;;AAE/D;;AAGA,OAAO,SAASC,QAAQ,OAMrB;EAAA,IANuB;IAAEC,QAAQ;IAAEC,WAAW;IAAEC,KAAK;IAAEC,SAAS;IAAEC;EAMrE,CAAC;EACCP,SAAS,CAAC,MAAM;IACdQ,MAAM,CAACC,gBAAgB,CAAC,YAAY,EAAEC,YAAY,EAAE;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;IACtEH,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEG,WAAW,EAAE;MAAED,OAAO,EAAE;IAAM,CAAC,CAAC;IACrEH,MAAM,CAACC,gBAAgB,CAAC,UAAU,EAAEI,UAAU,EAAE;MAAEF,OAAO,EAAE;IAAK,CAAC,CAAC;EACpE,CAAC,CAAC;EAEFZ,eAAe,CAAC,MAAM;IACpBS,MAAM,CAACM,mBAAmB,CAAC,YAAY,EAAEJ,YAAY,CAAC;IACtDF,MAAM,CAACM,mBAAmB,CAAC,WAAW,EAAEF,WAAW,CAAC;IACpDJ,MAAM,CAACM,mBAAmB,CAAC,UAAU,EAAED,UAAU,CAAC;EACpD,CAAC,CAAC;EAEF,MAAME,YAAY,GAAGjB,QAAQ,CAAC,MAAMS,QAAQ,CAACS,KAAK,KAAK,QAAQ,CAAC;EAEhE,MAAM;IAAEC,WAAW;IAAEC,QAAQ;IAAEC;EAAY,CAAC,GAAGtB,WAAW,EAAE;EAC5D,IAAIuB,aAAa,GAAG,KAAK;EACzB,MAAMC,UAAU,GAAGpB,GAAG,CAAC,KAAK,CAAC;EAC7B,MAAMqB,YAAY,GAAGrB,GAAG,CAAC,CAAC,CAAC;EAC3B,MAAMsB,MAAM,GAAGtB,GAAG,CAAC,CAAC,CAAC;EACrB,IAAIuB,KAAmC;EAEvC,SAASC,SAAS,CAAEC,GAAW,EAAEC,MAAe,EAAU;IACxD,OAAO,CACLpB,QAAQ,CAACS,KAAK,KAAK,MAAM,GAAGU,GAAG,GAC7BnB,QAAQ,CAACS,KAAK,KAAK,OAAO,GAAGY,QAAQ,CAACC,eAAe,CAACC,WAAW,GAAGJ,GAAG,GACvEnB,QAAQ,CAACS,KAAK,KAAK,QAAQ,GAAGY,QAAQ,CAACC,eAAe,CAACE,YAAY,GAAGL,GAAG,GACzEM,IAAI,EAAE,KACLL,MAAM,GAAGtB,KAAK,CAACW,KAAK,GAAG,CAAC,CAAC;EAChC;EAEA,SAASiB,WAAW,CAAEP,GAAW,EAAwB;IAAA,IAAtBQ,KAAK,uEAAG,IAAI;IAC7C,MAAMC,QAAQ,GACZ5B,QAAQ,CAACS,KAAK,KAAK,MAAM,GAAG,CAACU,GAAG,GAAGH,MAAM,CAACP,KAAK,IAAIX,KAAK,CAACW,KAAK,GAC5DT,QAAQ,CAACS,KAAK,KAAK,OAAO,GAAG,CAACY,QAAQ,CAACC,eAAe,CAACC,WAAW,GAAGJ,GAAG,GAAGH,MAAM,CAACP,KAAK,IAAIX,KAAK,CAACW,KAAK,GACtGT,QAAQ,CAACS,KAAK,KAAK,QAAQ,GAAG,CAACY,QAAQ,CAACC,eAAe,CAACE,YAAY,GAAGL,GAAG,GAAGH,MAAM,CAACP,KAAK,IAAIX,KAAK,CAACW,KAAK,GACxGgB,IAAI,EACP;IACD,OAAOE,KAAK,GAAGE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEH,QAAQ,CAAC,CAAC,GAAGA,QAAQ;EAC9D;EAEA,SAASzB,YAAY,CAAE6B,CAAa,EAAE;IACpC,IAAIjC,SAAS,CAACU,KAAK,EAAE;IAErB,MAAMwB,MAAM,GAAGD,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC,CAACC,OAAO;IAC1C,MAAMC,MAAM,GAAGJ,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC,CAACG,OAAO;IAE1C,MAAMC,SAAS,GAAG,EAAE;IACpB,MAAMC,WAAoB,GACxBvC,QAAQ,CAACS,KAAK,KAAK,MAAM,GAAGwB,MAAM,GAAGK,SAAS,GAC5CtC,QAAQ,CAACS,KAAK,KAAK,OAAO,GAAGwB,MAAM,GAAGZ,QAAQ,CAACC,eAAe,CAACC,WAAW,GAAGe,SAAS,GACtFtC,QAAQ,CAACS,KAAK,KAAK,QAAQ,GAAG2B,MAAM,GAAGf,QAAQ,CAACC,eAAe,CAACE,YAAY,GAAGc,SAAS,GACxFb,IAAI,EAAE;IAEV,MAAMe,SAAkB,GAAG5C,QAAQ,CAACa,KAAK,KACvCT,QAAQ,CAACS,KAAK,KAAK,MAAM,GAAGwB,MAAM,GAAGnC,KAAK,CAACW,KAAK,GAC9CT,QAAQ,CAACS,KAAK,KAAK,OAAO,GAAGwB,MAAM,GAAGZ,QAAQ,CAACC,eAAe,CAACC,WAAW,GAAGzB,KAAK,CAACW,KAAK,GACxFT,QAAQ,CAACS,KAAK,KAAK,QAAQ,GAAG2B,MAAM,GAAGf,QAAQ,CAACC,eAAe,CAACE,YAAY,GAAG1B,KAAK,CAACW,KAAK,GAC1FgB,IAAI,EAAE,CACT;IAED,IACEc,WAAW,IACXC,SAAS,IACR5C,QAAQ,CAACa,KAAK,IAAIZ,WAAW,CAACY,KAAM,EACrC;MACAI,aAAa,GAAG,IAAI;MACpBI,KAAK,GAAG,CAACgB,MAAM,EAAEG,MAAM,CAAC;MAExBpB,MAAM,CAACP,KAAK,GAAGS,SAAS,CAACV,YAAY,CAACC,KAAK,GAAGwB,MAAM,GAAGG,MAAM,EAAExC,QAAQ,CAACa,KAAK,CAAC;MAC9EM,YAAY,CAACN,KAAK,GAAGiB,WAAW,CAAClB,YAAY,CAACC,KAAK,GAAGwB,MAAM,GAAGG,MAAM,CAAC;MAEtEzB,QAAQ,CAACqB,CAAC,CAAC;MACXtB,WAAW,CAACsB,CAAC,CAAC;IAChB;EACF;EAEA,SAAS3B,WAAW,CAAE2B,CAAa,EAAE;IACnC,MAAMC,MAAM,GAAGD,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC,CAACC,OAAO;IAC1C,MAAMC,MAAM,GAAGJ,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC,CAACG,OAAO;IAE1C,IAAIxB,aAAa,EAAE;MACjB,IAAI,CAACmB,CAAC,CAACS,UAAU,EAAE;QACjB5B,aAAa,GAAG,KAAK;QACrB;MACF;MAEA,MAAM6B,EAAE,GAAGb,IAAI,CAACc,GAAG,CAACV,MAAM,GAAGhB,KAAK,CAAE,CAAC,CAAC,CAAC;MACvC,MAAM2B,EAAE,GAAGf,IAAI,CAACc,GAAG,CAACP,MAAM,GAAGnB,KAAK,CAAE,CAAC,CAAC,CAAC;MAEvC,MAAM4B,YAAY,GAAGrC,YAAY,CAACC,KAAK,GACnCiC,EAAE,GAAGE,EAAE,IAAIF,EAAE,GAAG,CAAC,GACjBE,EAAE,GAAGF,EAAE,IAAIE,EAAE,GAAG,CAAC;MAErB,IAAIC,YAAY,EAAE;QAChB/B,UAAU,CAACL,KAAK,GAAG,IAAI;QACvBI,aAAa,GAAG,KAAK;MACvB,CAAC,MAAM,IAAI,CAACL,YAAY,CAACC,KAAK,GAAGmC,EAAE,GAAGF,EAAE,IAAI,CAAC,EAAE;QAC7C7B,aAAa,GAAG,KAAK;MACvB;IACF;IAEA,IAAI,CAACC,UAAU,CAACL,KAAK,EAAE;IAEvBuB,CAAC,CAACc,cAAc,EAAE;IAClBpC,WAAW,CAACsB,CAAC,CAAC;IAEd,MAAMJ,QAAQ,GAAGF,WAAW,CAAClB,YAAY,CAACC,KAAK,GAAGwB,MAAM,GAAGG,MAAM,EAAE,KAAK,CAAC;IACzErB,YAAY,CAACN,KAAK,GAAGoB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEH,QAAQ,CAAC,CAAC;IAEvD,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAChBZ,MAAM,CAACP,KAAK,GAAGS,SAAS,CAACV,YAAY,CAACC,KAAK,GAAGwB,MAAM,GAAGG,MAAM,EAAE,IAAI,CAAC;IACtE,CAAC,MAAM,IAAIR,QAAQ,GAAG,CAAC,EAAE;MACvBZ,MAAM,CAACP,KAAK,GAAGS,SAAS,CAACV,YAAY,CAACC,KAAK,GAAGwB,MAAM,GAAGG,MAAM,EAAE,KAAK,CAAC;IACvE;EACF;EAEA,SAAS9B,UAAU,CAAE0B,CAAa,EAAE;IAClCnB,aAAa,GAAG,KAAK;IAErB,IAAI,CAACC,UAAU,CAACL,KAAK,EAAE;IAEvBC,WAAW,CAACsB,CAAC,CAAC;IAEdlB,UAAU,CAACL,KAAK,GAAG,KAAK;IAExB,MAAMsC,QAAQ,GAAGnC,WAAW,CAACoB,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC,CAACc,UAAU,CAAC;IAC5D,MAAMC,EAAE,GAAGpB,IAAI,CAACc,GAAG,CAACI,QAAQ,CAACG,CAAC,CAAC;IAC/B,MAAMC,EAAE,GAAGtB,IAAI,CAACc,GAAG,CAACI,QAAQ,CAACK,CAAC,CAAC;IAC/B,MAAMP,YAAY,GAAGrC,YAAY,CAACC,KAAK,GACnCwC,EAAE,GAAGE,EAAE,IAAIF,EAAE,GAAG,GAAG,GACnBE,EAAE,GAAGF,EAAE,IAAIE,EAAE,GAAG,CAAC;IAErB,IAAIN,YAAY,EAAE;MAChBjD,QAAQ,CAACa,KAAK,GAAGsC,QAAQ,CAACM,SAAS,MAAM;QACvCC,IAAI,EAAE,OAAO;QACbC,KAAK,EAAE,MAAM;QACbC,MAAM,EAAE;MACV,CAAC,CAACxD,QAAQ,CAACS,KAAK,CAAC,IAAIgB,IAAI,EAAE,CAAC;IAC9B,CAAC,MAAM;MACL7B,QAAQ,CAACa,KAAK,GAAGM,YAAY,CAACN,KAAK,GAAG,GAAG;IAC3C;EACF;EAEA,MAAMgD,UAAU,GAAGlE,QAAQ,CAAC,MAAM;IAChC,OAAOuB,UAAU,CAACL,KAAK,GAAG;MACxBiD,SAAS,EACP1D,QAAQ,CAACS,KAAK,KAAK,MAAM,GAAI,2BAA0BM,YAAY,CAACN,KAAK,GAAGX,KAAK,CAACW,KAAM,MAAK,GAC3FT,QAAQ,CAACS,KAAK,KAAK,OAAO,GAAI,0BAAyBM,YAAY,CAACN,KAAK,GAAGX,KAAK,CAACW,KAAM,MAAK,GAC7FT,QAAQ,CAACS,KAAK,KAAK,QAAQ,GAAI,0BAAyBM,YAAY,CAACN,KAAK,GAAGX,KAAK,CAACW,KAAM,MAAK,GAC9FgB,IAAI,EAAE;MACVkC,UAAU,EAAE;IACd,CAAC,GAAGC,SAAS;EACf,CAAC,CAAC;EAEF,OAAO;IACL9C,UAAU;IACVC,YAAY;IACZ0C;EACF,CAAC;AACH;AAEA,SAAShC,IAAI,GAAW;EACtB,MAAM,IAAIoC,KAAK,EAAE;AACnB"}
|
1
|
+
{"version":3,"file":"touch.mjs","names":["useVelocity","computed","onBeforeUnmount","onMounted","ref","useTouch","isActive","isTemporary","width","touchless","position","window","addEventListener","onTouchstart","passive","onTouchmove","onTouchend","removeEventListener","isHorizontal","includes","value","addMovement","endTouch","getVelocity","maybeDragging","isDragging","dragProgress","offset","start","getOffset","pos","active","document","documentElement","clientWidth","clientHeight","oops","getProgress","limit","progress","Math","max","min","e","touchX","changedTouches","clientX","touchY","clientY","touchZone","inTouchZone","inElement","cancelable","dx","abs","dy","thresholdMet","preventDefault","velocity","identifier","vx","x","vy","y","direction","left","right","top","bottom","dragStyles","transform","transition","undefined","Error"],"sources":["../../../src/components/VNavigationDrawer/touch.ts"],"sourcesContent":["// Composables\nimport { useVelocity } from '@/composables/touch'\n\n// Utilities\nimport { computed, onBeforeUnmount, onMounted, ref } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTouch ({ isActive, isTemporary, width, touchless, position }: {\n isActive: Ref<boolean>\n isTemporary: Ref<boolean>\n width: Ref<number>\n touchless: Ref<boolean>\n position: Ref<'left' | 'right' | 'top' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => ['left', 'right'].includes(position.value))\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = ref(false)\n const dragProgress = ref(0)\n const offset = ref(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'top' ? pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'top' ? (pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? Math.max(0, Math.min(1, progress)) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'top' ? touchY < touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'top' ? touchY < width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n maybeDragging = true\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n"],"mappings":"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"}
|
@@ -32,7 +32,6 @@ export default baseMixins.extend().extend({
|
|
32
32
|
plain: Boolean
|
33
33
|
},
|
34
34
|
data: () => ({
|
35
|
-
badInput: false,
|
36
35
|
initialValue: null,
|
37
36
|
isBooted: false,
|
38
37
|
otp: []
|
@@ -47,15 +46,13 @@ export default baseMixins.extend().extend({
|
|
47
46
|
...VTextField.options.computed.classes.call(this),
|
48
47
|
'v-otp-input--plain': this.plain
|
49
48
|
};
|
50
|
-
},
|
51
|
-
isDirty() {
|
52
|
-
return VInput.options.computed.isDirty.call(this) || this.badInput;
|
53
49
|
}
|
54
50
|
},
|
55
51
|
watch: {
|
56
52
|
isFocused: 'updateValue',
|
57
53
|
value(val) {
|
58
54
|
this.lazyValue = val;
|
55
|
+
this.otp = (val == null ? void 0 : val.split('')) || [];
|
59
56
|
}
|
60
57
|
},
|
61
58
|
created() {
|
@@ -136,18 +133,17 @@ export default baseMixins.extend().extend({
|
|
136
133
|
},
|
137
134
|
attrs: {
|
138
135
|
...this.attrs$,
|
136
|
+
autocomplete: 'one-time-code',
|
139
137
|
disabled: this.isDisabled,
|
140
138
|
readonly: this.isReadonly,
|
141
139
|
type: this.type,
|
142
140
|
id: `${this.computedId}--${otpIdx}`,
|
143
|
-
class: `otp-field-box--${otpIdx}
|
144
|
-
maxlength: 1
|
141
|
+
class: `otp-field-box--${otpIdx}`
|
145
142
|
},
|
146
143
|
on: Object.assign(listeners, {
|
147
144
|
blur: this.onBlur,
|
148
145
|
input: e => this.onInput(e, otpIdx),
|
149
146
|
focus: e => this.onFocus(e, otpIdx),
|
150
|
-
paste: e => this.onPaste(e, otpIdx),
|
151
147
|
keydown: this.onKeyDown,
|
152
148
|
keyup: e => this.onKeyUp(e, otpIdx)
|
153
149
|
}),
|
@@ -184,21 +180,27 @@ export default baseMixins.extend().extend({
|
|
184
180
|
e && this.$emit('focus', e);
|
185
181
|
}
|
186
182
|
},
|
187
|
-
onInput(e,
|
183
|
+
onInput(e, index) {
|
184
|
+
const maxCursor = +this.length - 1;
|
188
185
|
const target = e.target;
|
189
186
|
const value = target.value;
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
187
|
+
const inputDataArray = (value == null ? void 0 : value.split('')) || [];
|
188
|
+
const newOtp = [...this.otp];
|
189
|
+
for (let i = 0; i < inputDataArray.length; i++) {
|
190
|
+
const appIdx = index + i;
|
191
|
+
if (appIdx > maxCursor) break;
|
192
|
+
newOtp[appIdx] = inputDataArray[i].toString();
|
193
|
+
}
|
194
|
+
if (!inputDataArray.length) {
|
195
|
+
newOtp.splice(index, 1);
|
196
|
+
}
|
197
|
+
this.otp = newOtp;
|
198
|
+
this.internalValue = this.otp.join('');
|
199
|
+
if (index + inputDataArray.length >= +this.length) {
|
200
|
+
this.onCompleted();
|
201
|
+
this.clearFocus(index);
|
202
|
+
} else if (inputDataArray.length) {
|
203
|
+
this.changeFocus(index + inputDataArray.length);
|
202
204
|
}
|
203
205
|
},
|
204
206
|
clearFocus(index) {
|
@@ -223,32 +225,6 @@ export default baseMixins.extend().extend({
|
|
223
225
|
if (this.hasMouseDown) this.focus(e, otpIdx);
|
224
226
|
VInput.options.methods.onMouseUp.call(this, e);
|
225
227
|
},
|
226
|
-
onPaste(event, index) {
|
227
|
-
var _event$clipboardData;
|
228
|
-
const maxCursor = +this.length - 1;
|
229
|
-
const inputVal = event == null ? void 0 : (_event$clipboardData = event.clipboardData) == null ? void 0 : _event$clipboardData.getData('Text');
|
230
|
-
const inputDataArray = (inputVal == null ? void 0 : inputVal.split('')) || [];
|
231
|
-
event.preventDefault();
|
232
|
-
const newOtp = [...this.otp];
|
233
|
-
for (let i = 0; i < inputDataArray.length; i++) {
|
234
|
-
const appIdx = index + i;
|
235
|
-
if (appIdx > maxCursor) break;
|
236
|
-
newOtp[appIdx] = inputDataArray[i].toString();
|
237
|
-
}
|
238
|
-
this.otp = newOtp;
|
239
|
-
const targetFocus = Math.min(index + inputDataArray.length, maxCursor);
|
240
|
-
this.changeFocus(targetFocus);
|
241
|
-
if (newOtp.length === +this.length) {
|
242
|
-
this.onCompleted();
|
243
|
-
this.clearFocus(targetFocus);
|
244
|
-
}
|
245
|
-
},
|
246
|
-
applyValue(index, inputVal, next) {
|
247
|
-
const newOtp = [...this.otp];
|
248
|
-
newOtp[index] = inputVal;
|
249
|
-
this.otp = newOtp;
|
250
|
-
next();
|
251
|
-
},
|
252
228
|
changeFocus(index) {
|
253
229
|
this.onFocus(undefined, index || 0);
|
254
230
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VOtpInput.mjs","names":["VInput","VTextField","ripple","convertToUnit","keyCodes","breaking","mixins","baseMixins","extend","name","directives","inheritAttrs","props","length","type","Number","String","default","plain","Boolean","data","badInput","initialValue","isBooted","otp","computed","outlined","classes","options","call","isDirty","watch","isFocused","value","val","lazyValue","created","$attrs","hasOwnProperty","internalValue","split","mounted","requestAnimationFrame","methods","focus","e","otpIdx","onFocus","genInputSlot","$createElement","setBackgroundColor","backgroundColor","staticClass","style","height","on","click","onClick","mousedown","onMouseDown","mouseup","onMouseUp","genDefaultSlot","genControl","genFieldset","genTextFieldSlot","genContent","Array","from","_","i","setTextColor","validationState","class","attrs","genLegend","span","domProps","innerHTML","width","genInput","listeners","Object","assign","listeners$","change","min","attrs$","disabled","isDisabled","readonly","isReadonly","id","computedId","maxlength","blur","onBlur","input","onInput","paste","onPaste","keydown","onKeyDown","keyup","onKeyUp","ref","refInFor","$nextTick","$emit","$refs","undefined","preventDefault","stopPropagation","elements","document","activeElement","select","target","applyValue","join","validity","nextIndex","changeFocus","clearFocus","onCompleted","index","keyCode","enter","hasMouseDown","event","maxCursor","inputVal","clipboardData","getData","inputDataArray","newOtp","appIdx","toString","targetFocus","Math","next","updateValue","hasColor","eventKey","key","includes","rsp","render","h","themeClasses"],"sources":["../../../src/components/VOtpInput/VOtpInput.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Styles\nimport '../VTextField/VTextField.sass'\nimport './VOtpInput.sass'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VInput,\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n $refs: {\n input: HTMLInputElement[]\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n name: 'v-otp-input',\n\n directives: {\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n length: {\n type: [Number, String],\n default: 6,\n },\n type: {\n type: String,\n default: 'text',\n },\n plain: Boolean,\n },\n\n data: () => ({\n badInput: false,\n initialValue: null,\n isBooted: false,\n otp: [] as string[],\n }),\n\n computed: {\n outlined (): Boolean {\n return !this.plain\n },\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n ...VTextField.options.computed.classes.call(this),\n 'v-otp-input--plain': this.plain,\n }\n },\n isDirty (): boolean {\n return VInput.options.computed.isDirty.call(this) || this.badInput\n },\n },\n\n watch: {\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n this.otp = this.internalValue?.split('') || []\n },\n\n mounted () {\n requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n /** @public */\n focus (e: Event, otpIdx: number) {\n this.onFocus(e, otpIdx || 0)\n },\n genInputSlot (otpIdx: number) {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: () => this.onClick(otpIdx),\n mousedown: (e: Event) => this.onMouseDown(e, otpIdx),\n mouseup: (e: Event) => this.onMouseUp(e, otpIdx),\n },\n }), [this.genDefaultSlot(otpIdx)])\n },\n genControl (otpIdx: number) {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n }, [\n this.genInputSlot(otpIdx),\n ])\n },\n genDefaultSlot (otpIdx: number) {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(otpIdx),\n ]\n },\n genContent () {\n return Array.from({ length: +this.length }, (_, i) => {\n return this.$createElement('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), [this.genControl(i)])\n })\n },\n genFieldset () {\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLegend () {\n const span = this.$createElement('span', {\n domProps: { innerHTML: '​' },\n })\n\n return this.$createElement('legend', {\n style: {\n width: '0px',\n },\n }, [span])\n },\n genInput (otpIdx: number) {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n\n return this.$createElement('input', {\n style: {},\n domProps: {\n value: this.otp[otpIdx],\n min: this.type === 'number' ? 0 : null,\n },\n attrs: {\n ...this.attrs$,\n disabled: this.isDisabled,\n readonly: this.isReadonly,\n type: this.type,\n id: `${this.computedId}--${otpIdx}`,\n class: `otp-field-box--${otpIdx}`,\n maxlength: 1,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: (e: Event) => this.onInput(e, otpIdx),\n focus: (e: Event) => this.onFocus(e, otpIdx),\n paste: (e: ClipboardEvent) => this.onPaste(e, otpIdx),\n keydown: this.onKeyDown,\n keyup: (e: KeyboardEvent) => this.onKeyUp(e, otpIdx),\n }),\n ref: 'input',\n refInFor: true,\n })\n },\n genTextFieldSlot (otpIdx: number): VNode {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genInput(otpIdx),\n ])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick (otpIdx: number) {\n if (this.isFocused || this.isDisabled || !this.$refs.input[otpIdx]) return\n\n this.onFocus(undefined, otpIdx)\n },\n onFocus (e?: Event, otpIdx?: number) {\n e?.preventDefault()\n e?.stopPropagation()\n const elements = this.$refs.input as HTMLInputElement[]\n const ref = this.$refs.input && elements[otpIdx || 0]\n if (!ref) return\n\n if (document.activeElement !== ref) {\n ref.focus()\n return ref.select()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n ref.select()\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event, otpIdx: number) {\n const target = e.target as HTMLInputElement\n const value = target.value\n this.applyValue(otpIdx, target.value, () => {\n this.internalValue = this.otp.join('')\n })\n this.badInput = target.validity && target.validity.badInput\n\n const nextIndex = otpIdx + 1\n if (value) {\n if (nextIndex < +this.length) {\n this.changeFocus(nextIndex)\n } else {\n this.clearFocus(otpIdx)\n this.onCompleted()\n }\n }\n },\n clearFocus (index: number) {\n const input = this.$refs.input[index] as HTMLInputElement\n input.blur()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.enter) {\n this.$emit('change', this.internalValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event, otpIdx: number) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input[otpIdx]) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event, otpIdx: number) {\n if (this.hasMouseDown) this.focus(e, otpIdx)\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n onPaste (event: ClipboardEvent, index: number) {\n const maxCursor = +this.length - 1\n const inputVal = event?.clipboardData?.getData('Text')\n const inputDataArray = inputVal?.split('') || []\n event.preventDefault()\n const newOtp: string[] = [...this.otp]\n for (let i = 0; i < inputDataArray.length; i++) {\n const appIdx = index + i\n if (appIdx > maxCursor) break\n newOtp[appIdx] = inputDataArray[i].toString()\n }\n this.otp = newOtp\n const targetFocus = Math.min(index + inputDataArray.length, maxCursor)\n this.changeFocus(targetFocus)\n\n if (newOtp.length === +this.length) { this.onCompleted(); this.clearFocus(targetFocus) }\n },\n applyValue (index: number, inputVal: string, next: Function) {\n const newOtp: string[] = [...this.otp]\n newOtp[index] = inputVal\n this.otp = newOtp\n next()\n },\n changeFocus (index: number) {\n this.onFocus(undefined, index || 0)\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onKeyUp (event: KeyboardEvent, index: number) {\n event.preventDefault()\n const eventKey = event.key\n if (['Tab', 'Shift', 'Meta', 'Control', 'Alt'].includes(eventKey)) {\n return\n }\n if (['Delete'].includes(eventKey)) {\n return\n }\n if (eventKey === 'ArrowLeft' || (eventKey === 'Backspace' && !this.otp[index])) {\n return index > 0 && this.changeFocus(index - 1)\n }\n if (eventKey === 'ArrowRight') {\n return index + 1 < +this.length && this.changeFocus(index + 1)\n }\n },\n onCompleted () {\n const rsp = this.otp.join('')\n if (rsp.length === +this.length) {\n this.$emit('finish', rsp)\n }\n },\n },\n render (h): VNode {\n return h('div', {\n staticClass: 'v-otp-input',\n class: this.themeClasses,\n }, this.genContent())\n },\n})\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"VOtpInput.mjs","names":["VInput","VTextField","ripple","convertToUnit","keyCodes","breaking","mixins","baseMixins","extend","name","directives","inheritAttrs","props","length","type","Number","String","default","plain","Boolean","data","initialValue","isBooted","otp","computed","outlined","classes","options","call","watch","isFocused","value","val","lazyValue","split","created","$attrs","hasOwnProperty","internalValue","mounted","requestAnimationFrame","methods","focus","e","otpIdx","onFocus","genInputSlot","$createElement","setBackgroundColor","backgroundColor","staticClass","style","height","on","click","onClick","mousedown","onMouseDown","mouseup","onMouseUp","genDefaultSlot","genControl","genFieldset","genTextFieldSlot","genContent","Array","from","_","i","setTextColor","validationState","class","attrs","genLegend","span","domProps","innerHTML","width","genInput","listeners","Object","assign","listeners$","change","min","attrs$","autocomplete","disabled","isDisabled","readonly","isReadonly","id","computedId","blur","onBlur","input","onInput","keydown","onKeyDown","keyup","onKeyUp","ref","refInFor","$nextTick","$emit","$refs","undefined","preventDefault","stopPropagation","elements","document","activeElement","select","index","maxCursor","target","inputDataArray","newOtp","appIdx","toString","splice","join","onCompleted","clearFocus","changeFocus","keyCode","enter","hasMouseDown","updateValue","hasColor","event","eventKey","key","includes","rsp","render","h","themeClasses"],"sources":["../../../src/components/VOtpInput/VOtpInput.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Styles\nimport '../VTextField/VTextField.sass'\nimport './VOtpInput.sass'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VInput,\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n $refs: {\n input: HTMLInputElement[]\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n name: 'v-otp-input',\n\n directives: {\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n length: {\n type: [Number, String],\n default: 6,\n },\n type: {\n type: String,\n default: 'text',\n },\n plain: Boolean,\n },\n\n data: () => ({\n initialValue: null,\n isBooted: false,\n otp: [] as string[],\n }),\n\n computed: {\n outlined (): Boolean {\n return !this.plain\n },\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n ...VTextField.options.computed.classes.call(this),\n 'v-otp-input--plain': this.plain,\n }\n },\n },\n\n watch: {\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n this.otp = val?.split('') || []\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n this.otp = this.internalValue?.split('') || []\n },\n\n mounted () {\n requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n /** @public */\n focus (e: Event, otpIdx: number) {\n this.onFocus(e, otpIdx || 0)\n },\n genInputSlot (otpIdx: number) {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: () => this.onClick(otpIdx),\n mousedown: (e: Event) => this.onMouseDown(e, otpIdx),\n mouseup: (e: Event) => this.onMouseUp(e, otpIdx),\n },\n }), [this.genDefaultSlot(otpIdx)])\n },\n genControl (otpIdx: number) {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n }, [\n this.genInputSlot(otpIdx),\n ])\n },\n genDefaultSlot (otpIdx: number) {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(otpIdx),\n ]\n },\n genContent () {\n return Array.from({ length: +this.length }, (_, i) => {\n return this.$createElement('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), [this.genControl(i)])\n })\n },\n genFieldset () {\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLegend () {\n const span = this.$createElement('span', {\n domProps: { innerHTML: '​' },\n })\n\n return this.$createElement('legend', {\n style: {\n width: '0px',\n },\n }, [span])\n },\n genInput (otpIdx: number) {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n\n return this.$createElement('input', {\n style: {},\n domProps: {\n value: this.otp[otpIdx],\n min: this.type === 'number' ? 0 : null,\n },\n attrs: {\n ...this.attrs$,\n autocomplete: 'one-time-code',\n disabled: this.isDisabled,\n readonly: this.isReadonly,\n type: this.type,\n id: `${this.computedId}--${otpIdx}`,\n class: `otp-field-box--${otpIdx}`,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: (e: Event) => this.onInput(e, otpIdx),\n focus: (e: Event) => this.onFocus(e, otpIdx),\n keydown: this.onKeyDown,\n keyup: (e: KeyboardEvent) => this.onKeyUp(e, otpIdx),\n }),\n ref: 'input',\n refInFor: true,\n })\n },\n genTextFieldSlot (otpIdx: number): VNode {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genInput(otpIdx),\n ])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick (otpIdx: number) {\n if (this.isFocused || this.isDisabled || !this.$refs.input[otpIdx]) return\n\n this.onFocus(undefined, otpIdx)\n },\n onFocus (e?: Event, otpIdx?: number) {\n e?.preventDefault()\n e?.stopPropagation()\n const elements = this.$refs.input as HTMLInputElement[]\n const ref = this.$refs.input && elements[otpIdx || 0]\n if (!ref) return\n\n if (document.activeElement !== ref) {\n ref.focus()\n return ref.select()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n ref.select()\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event, index: number) {\n const maxCursor = +this.length - 1\n\n const target = e.target as HTMLInputElement\n const value = target.value\n const inputDataArray = value?.split('') || []\n\n const newOtp: string[] = [...this.otp]\n for (let i = 0; i < inputDataArray.length; i++) {\n const appIdx = index + i\n if (appIdx > maxCursor) break\n newOtp[appIdx] = inputDataArray[i].toString()\n }\n if (!inputDataArray.length) {\n newOtp.splice(index, 1)\n }\n\n this.otp = newOtp\n this.internalValue = this.otp.join('')\n\n if (index + inputDataArray.length >= +this.length) {\n this.onCompleted()\n this.clearFocus(index)\n } else if (inputDataArray.length) {\n this.changeFocus(index + inputDataArray.length)\n }\n },\n clearFocus (index: number) {\n const input = this.$refs.input[index] as HTMLInputElement\n input.blur()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.enter) {\n this.$emit('change', this.internalValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event, otpIdx: number) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input[otpIdx]) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event, otpIdx: number) {\n if (this.hasMouseDown) this.focus(e, otpIdx)\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n changeFocus (index: number) {\n this.onFocus(undefined, index || 0)\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onKeyUp (event: KeyboardEvent, index: number) {\n event.preventDefault()\n const eventKey = event.key\n if (['Tab', 'Shift', 'Meta', 'Control', 'Alt'].includes(eventKey)) {\n return\n }\n if (['Delete'].includes(eventKey)) {\n return\n }\n if (eventKey === 'ArrowLeft' || (eventKey === 'Backspace' && !this.otp[index])) {\n return index > 0 && this.changeFocus(index - 1)\n }\n if (eventKey === 'ArrowRight') {\n return index + 1 < +this.length && this.changeFocus(index + 1)\n }\n },\n onCompleted () {\n const rsp = this.otp.join('')\n if (rsp.length === +this.length) {\n this.$emit('finish', rsp)\n }\n },\n },\n render (h): VNode {\n return h('div', {\n staticClass: 'v-otp-input',\n class: this.themeClasses,\n }, this.genContent())\n },\n})\n"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VOverflowBtn.mjs","names":["VSelect","VAutocomplete","VTextField","VBtn","consoleWarn","extend","name","props","editable","Boolean","segmented","computed","classes","options","call","isAnyValueAllowed","isSingle","computedItems","allItems","filteredItems","methods","genSelections","genCommaSelection","item","index","last","genSegmentedBtn","genInput","input","data","domProps","value","internalSearch","attrs","readonly","genLabel","
|
1
|
+
{"version":3,"file":"VOverflowBtn.mjs","names":["VSelect","VAutocomplete","VTextField","VBtn","consoleWarn","extend","name","props","editable","Boolean","segmented","computed","classes","options","call","isAnyValueAllowed","isSingle","computedItems","allItems","filteredItems","labelValue","isFocused","persistentPlaceholder","isLabelActive","methods","genSelections","genCommaSelection","item","index","last","genSegmentedBtn","genInput","input","data","domProps","value","internalSearch","attrs","readonly","genLabel","label","style","itemValue","getValue","itemObj","find","i","text","callback","$createElement","on","click","e","stopPropagation","updateValue","val","initialValue","lazyValue","$emit"],"sources":["../../../src/components/VOverflowBtn/VOverflowBtn.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Styles\nimport './VOverflowBtn.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete'\nimport VTextField from '../VTextField/VTextField'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-overflow-btn',\n\n props: {\n editable: Boolean,\n segmented: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...VAutocomplete.options.computed.classes.call(this),\n 'v-overflow-btn': true,\n 'v-overflow-btn--segmented': this.segmented,\n 'v-overflow-btn--editable': this.editable,\n }\n },\n isAnyValueAllowed (): boolean {\n return this.editable ||\n VAutocomplete.options.computed.isAnyValueAllowed.call(this)\n },\n isSingle (): true {\n return true\n },\n computedItems (): object[] {\n return this.segmented ? this.allItems : this.filteredItems\n },\n labelValue (): boolean {\n return (this.isFocused && !this.persistentPlaceholder) || this.isLabelActive\n },\n },\n\n methods: {\n genSelections () {\n return this.editable\n ? VAutocomplete.options.methods.genSelections.call(this)\n : VSelect.options.methods.genSelections.call(this) // Override v-autocomplete's override\n },\n genCommaSelection (item: any, index: number, last: boolean) {\n return this.segmented\n ? this.genSegmentedBtn(item)\n : VSelect.options.methods.genCommaSelection.call(this, item, index, last)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = input.data || {}\n input.data.domProps!.value = this.editable ? this.internalSearch : ''\n input.data.attrs!.readonly = !this.isAnyValueAllowed\n\n return input\n },\n genLabel () {\n if (this.editable && this.isFocused) return null\n\n const label = VTextField.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label.data = label.data || {}\n\n // Reset previously set styles from parent\n label.data.style = {}\n\n return label\n },\n genSegmentedBtn (item: any) {\n const itemValue = this.getValue(item)\n const itemObj = this.computedItems.find(i => this.getValue(i) === itemValue) || item\n\n if (!itemObj.text || !itemObj.callback) {\n consoleWarn('When using \"segmented\" prop without a selection slot, items must contain both a text and callback property', this)\n return null\n }\n\n return this.$createElement(VBtn, {\n props: { text: true },\n on: {\n click (e: Event) {\n e.stopPropagation()\n itemObj.callback(e)\n },\n },\n }, [itemObj.text])\n },\n updateValue (val: boolean) {\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n },\n})\n"],"mappings":"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"}
|