@vuetify/nightly 3.8.9-master.2025-06-12 → 3.8.9-master.2025-06-13
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 +9 -3
- package/dist/json/attributes.json +3537 -3537
- package/dist/json/importMap-labs.json +28 -28
- package/dist/json/importMap.json +164 -164
- package/dist/json/web-types.json +6485 -6485
- package/dist/vuetify-labs.cjs +43 -22
- package/dist/vuetify-labs.css +4940 -4940
- package/dist/vuetify-labs.d.ts +61 -61
- package/dist/vuetify-labs.esm.js +43 -22
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +43 -22
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +41 -22
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3520 -3520
- package/dist/vuetify.d.ts +61 -61
- package/dist/vuetify.esm.js +41 -22
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +41 -22
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +19 -17
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +19 -13
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.js +1 -3
- package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/lib/components/VField/VField.js +10 -2
- package/lib/components/VField/VField.js.map +1 -1
- package/lib/composables/hotkey.d.ts +9 -0
- package/lib/composables/hotkey.js +131 -0
- package/lib/composables/hotkey.js.map +1 -0
- package/lib/composables/transition.js +3 -3
- package/lib/composables/transition.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +61 -61
- package/lib/framework.js +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js +3 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
- package/lib/util/helpers.d.ts +3 -0
- package/lib/util/helpers.js +7 -0
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
@@ -1,6 +1,6 @@
|
|
1
1
|
// Utilities
|
2
2
|
import { h, mergeProps, Transition, TransitionGroup } from 'vue';
|
3
|
-
import { isObject, propsFactory } from "../util/index.js"; // Types
|
3
|
+
import { isObject, onlyDefinedProps, propsFactory } from "../util/index.js"; // Types
|
4
4
|
export const makeTransitionProps = propsFactory({
|
5
5
|
transition: {
|
6
6
|
type: null,
|
@@ -24,10 +24,10 @@ export const MaybeTransition = (props, _ref) => {
|
|
24
24
|
} = isObject(transition) ? transition : {};
|
25
25
|
let transitionProps;
|
26
26
|
if (isObject(transition)) {
|
27
|
-
transitionProps = mergeProps(customProps,
|
27
|
+
transitionProps = mergeProps(customProps, onlyDefinedProps({
|
28
28
|
disabled,
|
29
29
|
group
|
30
|
-
})
|
30
|
+
}), rest);
|
31
31
|
} else {
|
32
32
|
transitionProps = mergeProps({
|
33
33
|
name: disabled || !transition ? '' : transition
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transition.js","names":["h","mergeProps","Transition","TransitionGroup","isObject","propsFactory","makeTransitionProps","transition","type","default","validator","val","MaybeTransition","props","_ref","slots","disabled","group","rest","component","customProps","transitionProps","
|
1
|
+
{"version":3,"file":"transition.js","names":["h","mergeProps","Transition","TransitionGroup","isObject","onlyDefinedProps","propsFactory","makeTransitionProps","transition","type","default","validator","val","MaybeTransition","props","_ref","slots","disabled","group","rest","component","customProps","transitionProps","name"],"sources":["../../src/composables/transition.ts"],"sourcesContent":["// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue'\nimport { isObject, onlyDefinedProps, propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, Prop, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: null,\n default: 'fade-transition',\n validator: val => val !== true,\n } as Prop<null | string | boolean | TransitionProps & { component?: Component }>,\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: null | string | boolean | TransitionProps & { component?: any }\n disabled?: boolean\n group?: boolean\n}\n\nexport const MaybeTransition: FunctionalComponent<MaybeTransitionProps> = (props, { slots }) => {\n const { transition, disabled, group, ...rest } = props\n\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = isObject(transition) ? transition : {}\n\n let transitionProps\n if (isObject(transition)) {\n transitionProps = mergeProps(\n customProps,\n onlyDefinedProps({ disabled, group }),\n rest,\n )\n } else {\n transitionProps = mergeProps(\n { name: disabled || !transition ? '' : transition },\n rest,\n )\n }\n\n return h(\n component,\n transitionProps,\n slots\n )\n}\n"],"mappings":"AAAA;AACA,SAASA,CAAC,EAAEC,UAAU,EAAEC,UAAU,EAAEC,eAAe,QAAQ,KAAK;AAAA,SACvDC,QAAQ,EAAEC,gBAAgB,EAAEC,YAAY,4BAEjD;AAGA,OAAO,MAAMC,mBAAmB,GAAGD,YAAY,CAAC;EAC9CE,UAAU,EAAE;IACVC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAE,iBAAiB;IAC1BC,SAAS,EAAEC,GAAG,IAAIA,GAAG,KAAK;EAC5B;AACF,CAAC,EAAE,YAAY,CAAC;AAQhB,OAAO,MAAMC,eAA0D,GAAGA,CAACC,KAAK,EAAAC,IAAA,KAAgB;EAAA,IAAd;IAAEC;EAAM,CAAC,GAAAD,IAAA;EACzF,MAAM;IAAEP,UAAU;IAAES,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAEtD,MAAM;IACJM,SAAS,GAAGF,KAAK,GAAGf,eAAe,GAAGD,UAAU;IAChD,GAAGmB;EACL,CAAC,GAAGjB,QAAQ,CAACI,UAAU,CAAC,GAAGA,UAAU,GAAG,CAAC,CAAC;EAE1C,IAAIc,eAAe;EACnB,IAAIlB,QAAQ,CAACI,UAAU,CAAC,EAAE;IACxBc,eAAe,GAAGrB,UAAU,CAC1BoB,WAAW,EACXhB,gBAAgB,CAAC;MAAEY,QAAQ;MAAEC;IAAM,CAAC,CAAC,EACrCC,IACF,CAAC;EACH,CAAC,MAAM;IACLG,eAAe,GAAGrB,UAAU,CAC1B;MAAEsB,IAAI,EAAEN,QAAQ,IAAI,CAACT,UAAU,GAAG,EAAE,GAAGA;IAAW,CAAC,EACnDW,IACF,CAAC;EACH;EAEA,OAAOnB,CAAC,CACNoB,SAAS,EACTE,eAAe,EACfN,KACF,CAAC;AACH,CAAC","ignoreList":[]}
|
package/lib/entry-bundler.js
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.8.9-master.2025-06-
|
19
|
+
export const version = "3.8.9-master.2025-06-13";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
@@ -2545,39 +2545,43 @@ declare module 'vue' {
|
|
2545
2545
|
$children?: VNodeChild
|
2546
2546
|
}
|
2547
2547
|
export interface GlobalComponents {
|
2548
|
-
|
2548
|
+
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2549
|
+
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2550
|
+
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2549
2551
|
VApp: typeof import('vuetify/components')['VApp']
|
2550
2552
|
VAlert: typeof import('vuetify/components')['VAlert']
|
2551
2553
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2552
2554
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2555
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2556
|
+
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2557
|
+
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2558
|
+
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2553
2559
|
VBadge: typeof import('vuetify/components')['VBadge']
|
2554
2560
|
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2555
|
-
VBanner: typeof import('vuetify/components')['VBanner']
|
2556
|
-
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2557
|
-
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2558
2561
|
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2562
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2559
2563
|
VBtn: typeof import('vuetify/components')['VBtn']
|
2560
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2561
|
-
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2562
|
-
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2563
|
-
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2564
2564
|
VCard: typeof import('vuetify/components')['VCard']
|
2565
2565
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
2566
2566
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
2567
2567
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
2568
2568
|
VCardText: typeof import('vuetify/components')['VCardText']
|
2569
2569
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
2570
|
-
|
2571
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2572
|
-
VChip: typeof import('vuetify/components')['VChip']
|
2573
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2574
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2570
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2575
2571
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2576
2572
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2577
|
-
|
2578
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2573
|
+
VChip: typeof import('vuetify/components')['VChip']
|
2579
2574
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2575
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2580
2576
|
VCode: typeof import('vuetify/components')['VCode']
|
2577
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2578
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2579
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
2580
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2581
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
2582
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2583
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2584
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2581
2585
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
2582
2586
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
2583
2587
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -2585,38 +2589,30 @@ declare module 'vue' {
|
|
2585
2589
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
2586
2590
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
2587
2591
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
2588
|
-
|
2589
|
-
|
2590
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
2591
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2592
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2593
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2594
|
-
VDivider: typeof import('vuetify/components')['VDivider']
|
2592
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2593
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
2595
2594
|
VDialog: typeof import('vuetify/components')['VDialog']
|
2596
|
-
VField: typeof import('vuetify/components')['VField']
|
2597
|
-
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2598
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2599
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2600
2595
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
2601
2596
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
2602
2597
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2603
2598
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2604
|
-
VFooter: typeof import('vuetify/components')['VFooter']
|
2605
2599
|
VFab: typeof import('vuetify/components')['VFab']
|
2606
|
-
|
2600
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2601
|
+
VField: typeof import('vuetify/components')['VField']
|
2602
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2603
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
2607
2604
|
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2605
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2608
2606
|
VIcon: typeof import('vuetify/components')['VIcon']
|
2609
2607
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
2610
2608
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
2611
2609
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2612
2610
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2611
|
+
VImg: typeof import('vuetify/components')['VImg']
|
2613
2612
|
VKbd: typeof import('vuetify/components')['VKbd']
|
2614
2613
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2615
2614
|
VItem: typeof import('vuetify/components')['VItem']
|
2616
2615
|
VInput: typeof import('vuetify/components')['VInput']
|
2617
|
-
VLabel: typeof import('vuetify/components')['VLabel']
|
2618
|
-
VMain: typeof import('vuetify/components')['VMain']
|
2619
|
-
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2620
2616
|
VList: typeof import('vuetify/components')['VList']
|
2621
2617
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
2622
2618
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -2626,74 +2622,78 @@ declare module 'vue' {
|
|
2626
2622
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2627
2623
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2628
2624
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2625
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
2629
2626
|
VMenu: typeof import('vuetify/components')['VMenu']
|
2630
2627
|
VMessages: typeof import('vuetify/components')['VMessages']
|
2631
|
-
|
2632
|
-
|
2628
|
+
VMain: typeof import('vuetify/components')['VMain']
|
2629
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2633
2630
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2634
|
-
|
2631
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
2632
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2633
|
+
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2635
2634
|
VPagination: typeof import('vuetify/components')['VPagination']
|
2636
|
-
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2637
2635
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2636
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2637
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2638
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
2638
2639
|
VRating: typeof import('vuetify/components')['VRating']
|
2639
2640
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2640
2641
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2641
2642
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2642
2643
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2643
|
-
|
2644
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2644
2645
|
VSheet: typeof import('vuetify/components')['VSheet']
|
2645
|
-
|
2646
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
2646
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2647
2647
|
VStepper: typeof import('vuetify/components')['VStepper']
|
2648
2648
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
2649
2649
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
2650
2650
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
2651
2651
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
2652
2652
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
2653
|
-
|
2653
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
2654
2654
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2655
2655
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2656
|
-
|
2657
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2658
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2656
|
+
VTable: typeof import('vuetify/components')['VTable']
|
2659
2657
|
VTab: typeof import('vuetify/components')['VTab']
|
2660
2658
|
VTabs: typeof import('vuetify/components')['VTabs']
|
2661
2659
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2662
2660
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2663
|
-
|
2661
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2664
2662
|
VTextField: typeof import('vuetify/components')['VTextField']
|
2663
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2664
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2665
2665
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2666
2666
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
2667
2667
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
2668
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2669
2668
|
VWindow: typeof import('vuetify/components')['VWindow']
|
2670
2669
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
2671
|
-
|
2672
|
-
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2673
|
-
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2674
|
-
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2670
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2675
2671
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2672
|
+
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2676
2673
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
2674
|
+
VForm: typeof import('vuetify/components')['VForm']
|
2677
2675
|
VContainer: typeof import('vuetify/components')['VContainer']
|
2678
2676
|
VCol: typeof import('vuetify/components')['VCol']
|
2679
2677
|
VRow: typeof import('vuetify/components')['VRow']
|
2680
2678
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
2681
|
-
VForm: typeof import('vuetify/components')['VForm']
|
2682
2679
|
VHover: typeof import('vuetify/components')['VHover']
|
2683
|
-
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2684
2680
|
VLayout: typeof import('vuetify/components')['VLayout']
|
2685
2681
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2686
2682
|
VLazy: typeof import('vuetify/components')['VLazy']
|
2683
|
+
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2687
2684
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2688
2685
|
VParallax: typeof import('vuetify/components')['VParallax']
|
2689
2686
|
VRadio: typeof import('vuetify/components')['VRadio']
|
2690
|
-
|
2687
|
+
VResponsive: typeof import('vuetify/components')['VResponsive']
|
2691
2688
|
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2692
2689
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2693
2690
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2691
|
+
VBanner: typeof import('vuetify/components')['VBanner']
|
2692
|
+
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2693
|
+
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2694
2694
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
2695
|
-
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2696
2695
|
VValidation: typeof import('vuetify/components')['VValidation']
|
2696
|
+
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2697
2697
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
2698
2698
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
2699
2699
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
@@ -2710,7 +2710,7 @@ declare module 'vue' {
|
|
2710
2710
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
2711
2711
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
2712
2712
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
2713
|
-
|
2713
|
+
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2714
2714
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
2715
2715
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
2716
2716
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
@@ -2718,21 +2718,21 @@ declare module 'vue' {
|
|
2718
2718
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
2719
2719
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
2720
2720
|
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2721
|
-
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2722
|
-
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2723
|
-
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2724
|
-
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
2725
|
-
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
2726
|
-
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
2727
2721
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2728
2722
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2729
2723
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2724
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2725
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2730
2726
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2731
2727
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2732
2728
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2733
|
-
|
2734
|
-
|
2729
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2730
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2731
|
+
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
2732
|
+
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
2733
|
+
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
2735
2734
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
2736
2735
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
2736
|
+
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2737
2737
|
}
|
2738
2738
|
}
|
package/lib/framework.js
CHANGED
@@ -5,7 +5,7 @@ import "./VTimePickerClock.css";
|
|
5
5
|
// Composables
|
6
6
|
import { useBackgroundColor, useTextColor } from "../../composables/color.js"; // Utilities
|
7
7
|
import { computed, ref, watch } from 'vue';
|
8
|
-
import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
|
8
|
+
import { debounce, genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
|
9
9
|
export const makeVTimePickerClockProps = propsFactory({
|
10
10
|
allowedValues: Function,
|
11
11
|
ampm: Boolean,
|
@@ -56,6 +56,7 @@ export const VTimePickerClock = genericComponent()({
|
|
56
56
|
const isDragging = ref(false);
|
57
57
|
const valueOnMouseDown = ref(null);
|
58
58
|
const valueOnMouseUp = ref(null);
|
59
|
+
const emitChangeDebounced = debounce(value => emit('change', value), 750);
|
59
60
|
const {
|
60
61
|
textColorClasses,
|
61
62
|
textColorStyles
|
@@ -101,6 +102,7 @@ export const VTimePickerClock = genericComponent()({
|
|
101
102
|
if (value !== props.displayedValue) {
|
102
103
|
update(value);
|
103
104
|
}
|
105
|
+
emitChangeDebounced(value);
|
104
106
|
}
|
105
107
|
function isInner(value) {
|
106
108
|
return props.double && value - props.min >= roundCount.value;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VTimePickerClock.js","names":["useBackgroundColor","useTextColor","computed","ref","watch","genericComponent","propsFactory","useRender","makeVTimePickerClockProps","allowedValues","Function","ampm","Boolean","color","String","disabled","displayedValue","double","format","type","default","val","max","Number","required","min","scrollable","readonly","rotate","step","modelValue","VTimePickerClock","name","props","emits","change","input","setup","_ref","emit","clockRef","innerClockRef","inputValue","undefined","isDragging","valueOnMouseDown","valueOnMouseUp","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","count","roundCount","value","degreesPerUnit","degrees","Math","PI","innerRadiusScale","genChildren","children","push","update","isAllowed","wheel","e","preventDefault","delta","sign","deltaY","isInner","handScale","getPosition","rotateRadians","x","sin","y","cos","angleToValue","angle","insideClick","round","getTransform","i","left","top","euclidean","p0","p1","dx","dy","sqrt","center","atan2","abs","setMouseDownValue","onDragMove","width","getBoundingClientRect","innerWidth","clientX","clientY","touches","coords","handAngle","checksCount","ceil","onMouseDown","window","addEventListener","onMouseUp","stopPropagation","removeEventListener","_createElementVNode","_normalizeClass","_normalizeStyle","transform","map","isActive"],"sources":["../../../src/labs/VTimePicker/VTimePickerClock.tsx"],"sourcesContent":["// Styles\nimport './VTimePickerClock.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\ninterface Point {\n x: number\n y: number\n}\n\nexport const makeVTimePickerClockProps = propsFactory({\n allowedValues: Function as PropType<(value: number) => boolean>,\n ampm: Boolean,\n color: String,\n disabled: Boolean,\n displayedValue: null,\n double: Boolean,\n format: {\n type: Function,\n default: (val: string | number) => val,\n },\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n scrollable: Boolean,\n readonly: Boolean,\n rotate: {\n type: Number,\n default: 0,\n },\n step: {\n type: Number,\n default: 1,\n },\n modelValue: {\n type: Number,\n },\n}, 'VTimePickerClock')\n\nexport const VTimePickerClock = genericComponent()({\n name: 'VTimePickerClock',\n\n props: makeVTimePickerClockProps(),\n\n emits: {\n change: (val: number) => true,\n input: (val: number) => true,\n },\n\n setup (props, { emit }) {\n const clockRef = ref<HTMLElement | null>(null)\n const innerClockRef = ref<HTMLElement | null>(null)\n const inputValue = ref<number | undefined>(undefined)\n const isDragging = ref(false)\n const valueOnMouseDown = ref(null as number | null)\n const valueOnMouseUp = ref(null as number | null)\n\n const { textColorClasses, textColorStyles } = useTextColor(() => props.color)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n\n const count = computed(() => props.max - props.min + 1)\n const roundCount = computed(() => props.double ? (count.value / 2) : count.value)\n const degreesPerUnit = computed(() => 360 / roundCount.value)\n const degrees = computed(() => degreesPerUnit.value * Math.PI / 180)\n const displayedValue = computed(() => props.modelValue == null ? props.min : props.modelValue)\n const innerRadiusScale = computed(() => 0.62)\n\n const genChildren = computed(() => {\n const children = []\n for (let value = props.min; value <= props.max; value = value + props.step) {\n children.push(value)\n }\n return children\n })\n\n watch(() => props.modelValue, val => {\n inputValue.value = val\n })\n\n function update (value: number) {\n if (inputValue.value !== value) {\n inputValue.value = value\n }\n emit('input', value)\n }\n\n function isAllowed (value: number) {\n return !props.allowedValues || props.allowedValues(value)\n }\n\n function wheel (e: WheelEvent) {\n if (!props.scrollable || props.disabled) return\n\n e.preventDefault()\n\n const delta = Math.sign(-e.deltaY || 1)\n let value = displayedValue.value\n do {\n value = value + delta\n value = (value - props.min + count.value) % count.value + props.min\n } while (!isAllowed(value) && value !== displayedValue.value)\n\n if (value !== props.displayedValue) {\n update(value)\n }\n }\n\n function isInner (value: number) {\n return props.double && (value - props.min >= roundCount.value)\n }\n\n function handScale (value: number) {\n return isInner(value) ? innerRadiusScale.value : 1\n }\n\n function getPosition (value: number) {\n const rotateRadians = props.rotate * Math.PI / 180\n return {\n x: Math.sin((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n y: -Math.cos((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n }\n }\n\n function angleToValue (angle: number, insideClick: boolean): number {\n const value = (\n Math.round(angle / degreesPerUnit.value) +\n (insideClick ? roundCount.value : 0)\n ) % count.value + props.min\n\n // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock\n if (angle < (360 - degreesPerUnit.value / 2)) return value\n\n return insideClick ? props.max - roundCount.value + 1 : props.min\n }\n\n function getTransform (i: number) {\n const { x, y } = getPosition(i)\n return {\n left: `${Math.round(50 + x * 50)}%`,\n top: `${Math.round(50 + y * 50)}%`,\n }\n }\n\n function euclidean (p0: Point, p1: Point) {\n const dx = p1.x - p0.x\n const dy = p1.y - p0.y\n\n return Math.sqrt(dx * dx + dy * dy)\n }\n\n function angle (center: Point, p1: Point) {\n const value = 2 * Math.atan2(p1.y - center.y - euclidean(center, p1), p1.x - center.x)\n return Math.abs(value * 180 / Math.PI)\n }\n\n function setMouseDownValue (value: number) {\n if (valueOnMouseDown.value === null) {\n valueOnMouseDown.value = value\n }\n\n valueOnMouseUp.value = value\n update(value)\n }\n\n function onDragMove (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n if ((!isDragging.value && e.type !== 'click') || !clockRef.value) return\n const { width, top, left } = clockRef.value?.getBoundingClientRect()\n const { width: innerWidth }: DOMRect = innerClockRef.value?.getBoundingClientRect() ?? { width: 0 } as DOMRect\n const { clientX, clientY } = 'touches' in e ? e.touches[0] : e\n const center = { x: width / 2, y: -width / 2 }\n const coords = { x: clientX - left, y: top - clientY }\n const handAngle = Math.round(angle(center, coords) - props.rotate + 360) % 360\n const insideClick = props.double && euclidean(center, coords) < (innerWidth as number + innerWidth * innerRadiusScale.value) / 4\n const checksCount = Math.ceil(15 / degreesPerUnit.value)\n let value\n\n for (let i = 0; i < checksCount; i++) {\n value = angleToValue(handAngle + i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n\n value = angleToValue(handAngle - i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n }\n }\n\n function onMouseDown (e: MouseEvent | TouchEvent) {\n if (props.disabled) return\n\n e.preventDefault()\n\n window.addEventListener('mousemove', onDragMove)\n window.addEventListener('touchmove', onDragMove)\n window.addEventListener('mouseup', onMouseUp)\n window.addEventListener('touchend', onMouseUp)\n valueOnMouseDown.value = null\n valueOnMouseUp.value = null\n isDragging.value = true\n onDragMove(e)\n }\n\n function onMouseUp (e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n window.removeEventListener('mousemove', onDragMove)\n window.removeEventListener('touchmove', onDragMove)\n window.removeEventListener('mouseup', onMouseUp)\n window.removeEventListener('touchend', onMouseUp)\n\n isDragging.value = false\n if (valueOnMouseUp.value !== null && isAllowed(valueOnMouseUp.value)) {\n emit('change', valueOnMouseUp.value)\n }\n }\n\n useRender(() => {\n return (\n <div\n class={[\n {\n 'v-time-picker-clock': true,\n 'v-time-picker-clock--indeterminate': props.modelValue == null,\n 'v-time-picker-clock--readonly': props.readonly,\n },\n ]}\n onMousedown={ onMouseDown }\n onTouchstart={ onMouseDown }\n onWheel={ wheel }\n ref={ clockRef }\n >\n <div class=\"v-time-picker-clock__inner\" ref={ innerClockRef }>\n <div\n class={[\n {\n 'v-time-picker-clock__hand': true,\n 'v-time-picker-clock__hand--inner': isInner(props.modelValue as number),\n },\n textColorClasses.value,\n ]}\n style={[\n {\n transform: `rotate(${props.rotate + degreesPerUnit.value * (displayedValue.value - props.min)}deg) scaleY(${handScale(displayedValue.value)})`,\n },\n textColorStyles.value,\n ]}\n />\n\n {\n genChildren.value.map(value => {\n const isActive = value === displayedValue.value\n\n return (\n <div\n class={[\n {\n 'v-time-picker-clock__item': true,\n 'v-time-picker-clock__item--active': isActive,\n 'v-time-picker-clock__item--disabled': props.disabled || !isAllowed(value),\n },\n isActive && backgroundColorClasses.value,\n ]}\n style={[\n getTransform(value),\n isActive && backgroundColorStyles.value,\n ]}\n >\n <span>{ props.format(value) }</span>\n </div>\n )\n })\n }\n </div>\n </div>\n )\n })\n },\n})\n\nexport type VTimePickerClock = InstanceType<typeof VTimePickerClock>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VTimePickerClock.js","names":["useBackgroundColor","useTextColor","computed","ref","watch","debounce","genericComponent","propsFactory","useRender","makeVTimePickerClockProps","allowedValues","Function","ampm","Boolean","color","String","disabled","displayedValue","double","format","type","default","val","max","Number","required","min","scrollable","readonly","rotate","step","modelValue","VTimePickerClock","name","props","emits","change","input","setup","_ref","emit","clockRef","innerClockRef","inputValue","undefined","isDragging","valueOnMouseDown","valueOnMouseUp","emitChangeDebounced","value","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","count","roundCount","degreesPerUnit","degrees","Math","PI","innerRadiusScale","genChildren","children","push","update","isAllowed","wheel","e","preventDefault","delta","sign","deltaY","isInner","handScale","getPosition","rotateRadians","x","sin","y","cos","angleToValue","angle","insideClick","round","getTransform","i","left","top","euclidean","p0","p1","dx","dy","sqrt","center","atan2","abs","setMouseDownValue","onDragMove","width","getBoundingClientRect","innerWidth","clientX","clientY","touches","coords","handAngle","checksCount","ceil","onMouseDown","window","addEventListener","onMouseUp","stopPropagation","removeEventListener","_createElementVNode","_normalizeClass","_normalizeStyle","transform","map","isActive"],"sources":["../../../src/labs/VTimePicker/VTimePickerClock.tsx"],"sourcesContent":["// Styles\nimport './VTimePickerClock.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { debounce, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\ninterface Point {\n x: number\n y: number\n}\n\nexport const makeVTimePickerClockProps = propsFactory({\n allowedValues: Function as PropType<(value: number) => boolean>,\n ampm: Boolean,\n color: String,\n disabled: Boolean,\n displayedValue: null,\n double: Boolean,\n format: {\n type: Function,\n default: (val: string | number) => val,\n },\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n scrollable: Boolean,\n readonly: Boolean,\n rotate: {\n type: Number,\n default: 0,\n },\n step: {\n type: Number,\n default: 1,\n },\n modelValue: {\n type: Number,\n },\n}, 'VTimePickerClock')\n\nexport const VTimePickerClock = genericComponent()({\n name: 'VTimePickerClock',\n\n props: makeVTimePickerClockProps(),\n\n emits: {\n change: (val: number) => true,\n input: (val: number) => true,\n },\n\n setup (props, { emit }) {\n const clockRef = ref<HTMLElement | null>(null)\n const innerClockRef = ref<HTMLElement | null>(null)\n const inputValue = ref<number | undefined>(undefined)\n const isDragging = ref(false)\n const valueOnMouseDown = ref(null as number | null)\n const valueOnMouseUp = ref(null as number | null)\n const emitChangeDebounced = debounce((value: number) => emit('change', value), 750)\n\n const { textColorClasses, textColorStyles } = useTextColor(() => props.color)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n\n const count = computed(() => props.max - props.min + 1)\n const roundCount = computed(() => props.double ? (count.value / 2) : count.value)\n const degreesPerUnit = computed(() => 360 / roundCount.value)\n const degrees = computed(() => degreesPerUnit.value * Math.PI / 180)\n const displayedValue = computed(() => props.modelValue == null ? props.min : props.modelValue)\n const innerRadiusScale = computed(() => 0.62)\n\n const genChildren = computed(() => {\n const children = []\n for (let value = props.min; value <= props.max; value = value + props.step) {\n children.push(value)\n }\n return children\n })\n\n watch(() => props.modelValue, val => {\n inputValue.value = val\n })\n\n function update (value: number) {\n if (inputValue.value !== value) {\n inputValue.value = value\n }\n emit('input', value)\n }\n\n function isAllowed (value: number) {\n return !props.allowedValues || props.allowedValues(value)\n }\n\n function wheel (e: WheelEvent) {\n if (!props.scrollable || props.disabled) return\n\n e.preventDefault()\n\n const delta = Math.sign(-e.deltaY || 1)\n let value = displayedValue.value\n do {\n value = value + delta\n value = (value - props.min + count.value) % count.value + props.min\n } while (!isAllowed(value) && value !== displayedValue.value)\n\n if (value !== props.displayedValue) {\n update(value)\n }\n\n emitChangeDebounced(value)\n }\n\n function isInner (value: number) {\n return props.double && (value - props.min >= roundCount.value)\n }\n\n function handScale (value: number) {\n return isInner(value) ? innerRadiusScale.value : 1\n }\n\n function getPosition (value: number) {\n const rotateRadians = props.rotate * Math.PI / 180\n return {\n x: Math.sin((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n y: -Math.cos((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n }\n }\n\n function angleToValue (angle: number, insideClick: boolean): number {\n const value = (\n Math.round(angle / degreesPerUnit.value) +\n (insideClick ? roundCount.value : 0)\n ) % count.value + props.min\n\n // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock\n if (angle < (360 - degreesPerUnit.value / 2)) return value\n\n return insideClick ? props.max - roundCount.value + 1 : props.min\n }\n\n function getTransform (i: number) {\n const { x, y } = getPosition(i)\n return {\n left: `${Math.round(50 + x * 50)}%`,\n top: `${Math.round(50 + y * 50)}%`,\n }\n }\n\n function euclidean (p0: Point, p1: Point) {\n const dx = p1.x - p0.x\n const dy = p1.y - p0.y\n\n return Math.sqrt(dx * dx + dy * dy)\n }\n\n function angle (center: Point, p1: Point) {\n const value = 2 * Math.atan2(p1.y - center.y - euclidean(center, p1), p1.x - center.x)\n return Math.abs(value * 180 / Math.PI)\n }\n\n function setMouseDownValue (value: number) {\n if (valueOnMouseDown.value === null) {\n valueOnMouseDown.value = value\n }\n\n valueOnMouseUp.value = value\n update(value)\n }\n\n function onDragMove (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n if ((!isDragging.value && e.type !== 'click') || !clockRef.value) return\n const { width, top, left } = clockRef.value?.getBoundingClientRect()\n const { width: innerWidth }: DOMRect = innerClockRef.value?.getBoundingClientRect() ?? { width: 0 } as DOMRect\n const { clientX, clientY } = 'touches' in e ? e.touches[0] : e\n const center = { x: width / 2, y: -width / 2 }\n const coords = { x: clientX - left, y: top - clientY }\n const handAngle = Math.round(angle(center, coords) - props.rotate + 360) % 360\n const insideClick = props.double && euclidean(center, coords) < (innerWidth as number + innerWidth * innerRadiusScale.value) / 4\n const checksCount = Math.ceil(15 / degreesPerUnit.value)\n let value\n\n for (let i = 0; i < checksCount; i++) {\n value = angleToValue(handAngle + i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n\n value = angleToValue(handAngle - i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n }\n }\n\n function onMouseDown (e: MouseEvent | TouchEvent) {\n if (props.disabled) return\n\n e.preventDefault()\n\n window.addEventListener('mousemove', onDragMove)\n window.addEventListener('touchmove', onDragMove)\n window.addEventListener('mouseup', onMouseUp)\n window.addEventListener('touchend', onMouseUp)\n valueOnMouseDown.value = null\n valueOnMouseUp.value = null\n isDragging.value = true\n onDragMove(e)\n }\n\n function onMouseUp (e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n window.removeEventListener('mousemove', onDragMove)\n window.removeEventListener('touchmove', onDragMove)\n window.removeEventListener('mouseup', onMouseUp)\n window.removeEventListener('touchend', onMouseUp)\n\n isDragging.value = false\n if (valueOnMouseUp.value !== null && isAllowed(valueOnMouseUp.value)) {\n emit('change', valueOnMouseUp.value)\n }\n }\n\n useRender(() => {\n return (\n <div\n class={[\n {\n 'v-time-picker-clock': true,\n 'v-time-picker-clock--indeterminate': props.modelValue == null,\n 'v-time-picker-clock--readonly': props.readonly,\n },\n ]}\n onMousedown={ onMouseDown }\n onTouchstart={ onMouseDown }\n onWheel={ wheel }\n ref={ clockRef }\n >\n <div class=\"v-time-picker-clock__inner\" ref={ innerClockRef }>\n <div\n class={[\n {\n 'v-time-picker-clock__hand': true,\n 'v-time-picker-clock__hand--inner': isInner(props.modelValue as number),\n },\n textColorClasses.value,\n ]}\n style={[\n {\n transform: `rotate(${props.rotate + degreesPerUnit.value * (displayedValue.value - props.min)}deg) scaleY(${handScale(displayedValue.value)})`,\n },\n textColorStyles.value,\n ]}\n />\n\n {\n genChildren.value.map(value => {\n const isActive = value === displayedValue.value\n\n return (\n <div\n class={[\n {\n 'v-time-picker-clock__item': true,\n 'v-time-picker-clock__item--active': isActive,\n 'v-time-picker-clock__item--disabled': props.disabled || !isAllowed(value),\n },\n isActive && backgroundColorClasses.value,\n ]}\n style={[\n getTransform(value),\n isActive && backgroundColorStyles.value,\n ]}\n >\n <span>{ props.format(value) }</span>\n </div>\n )\n })\n }\n </div>\n </div>\n )\n })\n },\n})\n\nexport type VTimePickerClock = InstanceType<typeof VTimePickerClock>\n"],"mappings":"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","ignoreList":[]}
|
package/lib/util/helpers.d.ts
CHANGED
@@ -126,4 +126,7 @@ export type Primitive = string | number | boolean | symbol | bigint;
|
|
126
126
|
export declare function isPrimitive(value: unknown): value is Primitive;
|
127
127
|
export declare function extractNumber(text: string, decimalDigitsLimit: number | null): string;
|
128
128
|
export declare function camelizeProps<T extends Record<string, unknown>>(props: T | null): T;
|
129
|
+
export declare function onlyDefinedProps(props: Record<string, any>): {
|
130
|
+
[k: string]: any;
|
131
|
+
};
|
129
132
|
|
package/lib/util/helpers.js
CHANGED
@@ -555,4 +555,11 @@ export function camelizeProps(props) {
|
|
555
555
|
}
|
556
556
|
return out;
|
557
557
|
}
|
558
|
+
export function onlyDefinedProps(props) {
|
559
|
+
const booleanAttributes = ['checked', 'disabled'];
|
560
|
+
return Object.fromEntries(Object.entries(props).filter(_ref => {
|
561
|
+
let [key, v] = _ref;
|
562
|
+
return booleanAttributes.includes(key) ? !!v : v !== undefined;
|
563
|
+
}));
|
564
|
+
}
|
558
565
|
//# sourceMappingURL=helpers.js.map
|