@katlux/toolkit 0.1.0-beta.5 → 0.1.0-beta.50

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.
Files changed (137) hide show
  1. package/dist/compiled/composables/usePresetComponent.mjs +21 -16
  2. package/dist/module.cjs +52 -0
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +52 -0
  5. package/dist/runtime/components/KCalendar/KCalendar.global.d.vue.ts +11 -12
  6. package/dist/runtime/components/KCalendar/KCalendar.global.vue.d.ts +11 -12
  7. package/dist/runtime/components/KCalendar/KCalendar.logic.d.ts +1 -0
  8. package/dist/runtime/components/KCalendar/KCalendar.logic.js +25 -10
  9. package/dist/runtime/components/KCombobox/KCombobox.global.d.vue.ts +18 -10
  10. package/dist/runtime/components/KCombobox/KCombobox.global.vue +6 -2
  11. package/dist/runtime/components/KCombobox/KCombobox.global.vue.d.ts +18 -10
  12. package/dist/runtime/components/KCombobox/KCombobox.logic.d.ts +78 -0
  13. package/dist/runtime/components/KCombobox/KCombobox.logic.js +8 -3
  14. package/dist/runtime/components/KCompositeInput/KCompositeInput.global.d.vue.ts +149 -0
  15. package/dist/runtime/components/KCompositeInput/KCompositeInput.global.vue +65 -0
  16. package/dist/runtime/components/KCompositeInput/KCompositeInput.global.vue.d.ts +149 -0
  17. package/dist/runtime/components/KCompositeInput/KCompositeInput.logic.d.ts +116 -0
  18. package/dist/runtime/components/KCompositeInput/KCompositeInput.logic.js +149 -0
  19. package/dist/runtime/components/KDatePicker/KDatePicker.global.d.vue.ts +56 -8
  20. package/dist/runtime/components/KDatePicker/KDatePicker.global.vue +23 -3
  21. package/dist/runtime/components/KDatePicker/KDatePicker.global.vue.d.ts +56 -8
  22. package/dist/runtime/components/KDatePicker/KDatePicker.logic.d.ts +22 -1
  23. package/dist/runtime/components/KDatePicker/KDatePicker.logic.js +89 -7
  24. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.d.vue.ts +54 -8
  25. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.vue +23 -3
  26. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.vue.d.ts +54 -8
  27. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.logic.d.ts +22 -1
  28. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.logic.js +148 -7
  29. package/dist/runtime/components/KDropdown/KDropdown.global.d.vue.ts +18 -0
  30. package/dist/runtime/components/KDropdown/KDropdown.global.vue +13 -4
  31. package/dist/runtime/components/KDropdown/KDropdown.global.vue.d.ts +18 -0
  32. package/dist/runtime/components/KDropdown/KDropdown.logic.d.ts +28 -1
  33. package/dist/runtime/components/KDropdown/KDropdown.logic.js +85 -4
  34. package/dist/runtime/components/KGrid/KGrid.global.d.vue.ts +7 -56
  35. package/dist/runtime/components/KGrid/KGrid.global.vue +9 -2
  36. package/dist/runtime/components/KGrid/KGrid.global.vue.d.ts +7 -56
  37. package/dist/runtime/components/KHourPicker/KHourPicker.global.d.vue.ts +20 -0
  38. package/dist/runtime/components/KHourPicker/KHourPicker.global.vue +25 -12
  39. package/dist/runtime/components/KHourPicker/KHourPicker.global.vue.d.ts +20 -0
  40. package/dist/runtime/components/KHourPicker/KHourPicker.logic.d.ts +14 -3
  41. package/dist/runtime/components/KHourPicker/KHourPicker.logic.js +25 -10
  42. package/dist/runtime/components/KHourSelect/KHourSelect.logic.js +4 -1
  43. package/dist/runtime/components/KIcon/KIcon.global.d.vue.ts +1 -1
  44. package/dist/runtime/components/KIcon/KIcon.global.vue.d.ts +1 -1
  45. package/dist/runtime/components/KIcon/KIcon.logic.d.ts +1 -1
  46. package/dist/runtime/components/KIcon/KIcon.logic.js +13 -8
  47. package/dist/runtime/components/KLoader/KLoader.global.d.vue.ts +3 -3
  48. package/dist/runtime/components/KLoader/KLoader.global.vue.d.ts +3 -3
  49. package/dist/runtime/components/KLoader/KLoader.logic.d.ts +8 -1
  50. package/dist/runtime/components/KLoader/KLoader.logic.js +1 -0
  51. package/dist/runtime/components/KMaskTextbox/KMaskTextbox.global.vue +1 -1
  52. package/dist/runtime/components/KModal/KModal.global.vue +4 -1
  53. package/dist/runtime/components/KModal/KModal.logic.d.ts +3 -1
  54. package/dist/runtime/components/KModal/KModal.logic.js +6 -2
  55. package/dist/runtime/components/KPanel/KPanel.global.d.vue.ts +5 -28
  56. package/dist/runtime/components/KPanel/KPanel.global.vue +12 -4
  57. package/dist/runtime/components/KPanel/KPanel.global.vue.d.ts +5 -28
  58. package/dist/runtime/components/KPanel/KPanel.logic.d.ts +10 -0
  59. package/dist/runtime/components/KPanel/KPanel.logic.js +8 -0
  60. package/dist/runtime/components/KTextbox/KTextbox.global.d.vue.ts +15 -2
  61. package/dist/runtime/components/KTextbox/KTextbox.global.vue +5 -4
  62. package/dist/runtime/components/KTextbox/KTextbox.global.vue.d.ts +15 -2
  63. package/dist/runtime/components/KTextbox/KTextbox.logic.d.ts +10 -4
  64. package/dist/runtime/components/KTextbox/KTextbox.logic.js +12 -5
  65. package/dist/runtime/components/KTree/KTree.global.d.vue.ts +1 -1
  66. package/dist/runtime/components/KTree/KTree.global.vue.d.ts +1 -1
  67. package/dist/runtime/components/KTreePicker/KTreePicker.global.d.vue.ts +2 -2
  68. package/dist/runtime/components/KTreePicker/KTreePicker.global.vue.d.ts +2 -2
  69. package/dist/runtime/components/KTreePicker/KTreePicker.logic.d.ts +77 -0
  70. package/dist/runtime/composables/usePresetComponent.d.ts +16 -0
  71. package/dist/runtime/composables/usePresetComponent.js +21 -16
  72. package/dist/runtime/presets/default/assets/scss/css-variables.css +64 -13
  73. package/dist/runtime/presets/default/assets/scss/css-variables.scss +286 -0
  74. package/dist/runtime/presets/default/assets/scss/docs.scss +52 -0
  75. package/dist/runtime/presets/default/assets/scss/index.css +72 -13
  76. package/dist/runtime/presets/default/assets/scss/index.scss +12 -0
  77. package/dist/runtime/presets/default/assets/scss/mixins.scss +94 -0
  78. package/dist/runtime/presets/default/assets/scss/reset.scss +16 -0
  79. package/dist/runtime/presets/default/components/KAccordion/KAccordion.vue +5 -2
  80. package/dist/runtime/presets/default/components/KAccordion/KAccordionItem.vue +40 -37
  81. package/dist/runtime/presets/default/components/KBulkActions/KBulkActions.vue +29 -22
  82. package/dist/runtime/presets/default/components/KButton/KButton.vue +147 -428
  83. package/dist/runtime/presets/default/components/KCalendar/KCalendar.vue +57 -53
  84. package/dist/runtime/presets/default/components/KCalendar/KCalendarMonth.vue +189 -161
  85. package/dist/runtime/presets/default/components/KCheckbox/KCheckbox.vue +46 -36
  86. package/dist/runtime/presets/default/components/KCombobox/KCombobox.d.vue.ts +3 -0
  87. package/dist/runtime/presets/default/components/KCombobox/KCombobox.vue +90 -70
  88. package/dist/runtime/presets/default/components/KCombobox/KCombobox.vue.d.ts +3 -0
  89. package/dist/runtime/presets/default/components/KCombobox/KComboboxList.vue +78 -60
  90. package/dist/runtime/presets/default/components/KCompositeInput/KCompositeInput.d.vue.ts +27 -0
  91. package/dist/runtime/presets/default/components/KCompositeInput/KCompositeInput.vue +190 -0
  92. package/dist/runtime/presets/default/components/KCompositeInput/KCompositeInput.vue.d.ts +27 -0
  93. package/dist/runtime/presets/default/components/KDataIterator/KDataIterator.vue +40 -31
  94. package/dist/runtime/presets/default/components/KDatatable/KDatatable.vue +110 -92
  95. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.d.vue.ts +3 -0
  96. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.vue +44 -25
  97. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.vue.d.ts +3 -0
  98. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.d.vue.ts +3 -0
  99. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.vue +68 -52
  100. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.vue.d.ts +3 -0
  101. package/dist/runtime/presets/default/components/KDropdown/KDropdown.d.vue.ts +8 -0
  102. package/dist/runtime/presets/default/components/KDropdown/KDropdown.vue +46 -25
  103. package/dist/runtime/presets/default/components/KDropdown/KDropdown.vue.d.ts +8 -0
  104. package/dist/runtime/presets/default/components/KGantt/KGantt.vue +337 -241
  105. package/dist/runtime/presets/default/components/KGantt/KGanttRuler.vue +40 -35
  106. package/dist/runtime/presets/default/components/KGantt/KGanttTimeline.vue +170 -140
  107. package/dist/runtime/presets/default/components/KGrid/KGrid.vue +62 -60
  108. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.d.vue.ts +6 -2
  109. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.vue +44 -28
  110. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.vue.d.ts +6 -2
  111. package/dist/runtime/presets/default/components/KHourSelect/KHourSelect.vue +34 -28
  112. package/dist/runtime/presets/default/components/KIcon/KIcon.d.vue.ts +1 -1
  113. package/dist/runtime/presets/default/components/KIcon/KIcon.vue +31 -22
  114. package/dist/runtime/presets/default/components/KIcon/KIcon.vue.d.ts +1 -1
  115. package/dist/runtime/presets/default/components/KLoader/KLoader.vue +53 -47
  116. package/dist/runtime/presets/default/components/KMaskTextbox/KMaskTextbox.vue +113 -84
  117. package/dist/runtime/presets/default/components/KModal/KModal.d.vue.ts +1 -0
  118. package/dist/runtime/presets/default/components/KModal/KModal.vue +64 -35
  119. package/dist/runtime/presets/default/components/KModal/KModal.vue.d.ts +1 -0
  120. package/dist/runtime/presets/default/components/KPagination/KPagination.vue +42 -40
  121. package/dist/runtime/presets/default/components/KPanel/KPanel.d.vue.ts +3 -0
  122. package/dist/runtime/presets/default/components/KPanel/KPanel.vue +95 -34
  123. package/dist/runtime/presets/default/components/KPanel/KPanel.vue.d.ts +3 -0
  124. package/dist/runtime/presets/default/components/KRadiobox/KRadiobox.vue +30 -29
  125. package/dist/runtime/presets/default/components/KRangeSlider/KRangeSlider.vue +158 -125
  126. package/dist/runtime/presets/default/components/KSlider/KSlider.vue +123 -100
  127. package/dist/runtime/presets/default/components/KTabs/KTabItem.vue +40 -37
  128. package/dist/runtime/presets/default/components/KTabs/KTabs.vue +9 -6
  129. package/dist/runtime/presets/default/components/KTextarea/KTextarea.vue +23 -20
  130. package/dist/runtime/presets/default/components/KTextbox/KTextbox.d.vue.ts +2 -1
  131. package/dist/runtime/presets/default/components/KTextbox/KTextbox.vue +49 -36
  132. package/dist/runtime/presets/default/components/KTextbox/KTextbox.vue.d.ts +2 -1
  133. package/dist/runtime/presets/default/components/KTree/KTree.vue +102 -80
  134. package/dist/runtime/presets/default/components/KTreePicker/KTreePicker.vue +55 -34
  135. package/dist/runtime/presets/default/components/KTreeView/KTreeCell.vue +31 -30
  136. package/dist/runtime/presets/default/components/KTreeView/KTreeView.vue +34 -27
  137. package/package.json +5 -5
@@ -7,15 +7,37 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
7
7
  type: (DateConstructor | StringConstructor)[];
8
8
  default: undefined;
9
9
  };
10
+ modelValue: {
11
+ type: (DateConstructor | StringConstructor)[];
12
+ default: undefined;
13
+ };
14
+ isOpen: {
15
+ type: BooleanConstructor;
16
+ default: boolean;
17
+ };
18
+ showClear: {
19
+ type: BooleanConstructor;
20
+ default: boolean;
21
+ };
10
22
  calendarDefinedDays: {
11
- type: PropType<IDefinedDay[]>;
23
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
12
24
  default: () => never[];
13
25
  };
14
26
  calendarMarkedDays: {
15
- type: PropType<IMarkedDay[]>;
27
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
16
28
  default: () => never[];
17
29
  };
18
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
30
+ teleportTo: {
31
+ type: import("vue").PropType<string>;
32
+ default: undefined;
33
+ };
34
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
35
+ "update:modelValue": (value: string | Date) => any;
36
+ "update:maskedModel": (value: string) => any;
37
+ "update:calendarShow": (value: boolean) => any;
38
+ "update:day": (value: string | Date) => any;
39
+ "update:isOpen": (value: boolean) => any;
40
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
19
41
  format: {
20
42
  type: StringConstructor;
21
43
  default: string;
@@ -24,19 +46,45 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
24
46
  type: (DateConstructor | StringConstructor)[];
25
47
  default: undefined;
26
48
  };
49
+ modelValue: {
50
+ type: (DateConstructor | StringConstructor)[];
51
+ default: undefined;
52
+ };
53
+ isOpen: {
54
+ type: BooleanConstructor;
55
+ default: boolean;
56
+ };
57
+ showClear: {
58
+ type: BooleanConstructor;
59
+ default: boolean;
60
+ };
27
61
  calendarDefinedDays: {
28
- type: PropType<IDefinedDay[]>;
62
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
29
63
  default: () => never[];
30
64
  };
31
65
  calendarMarkedDays: {
32
- type: PropType<IMarkedDay[]>;
66
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
33
67
  default: () => never[];
34
68
  };
35
- }>> & Readonly<{}>, {
69
+ teleportTo: {
70
+ type: import("vue").PropType<string>;
71
+ default: undefined;
72
+ };
73
+ }>> & Readonly<{
74
+ "onUpdate:modelValue"?: ((value: string | Date) => any) | undefined;
75
+ "onUpdate:maskedModel"?: ((value: string) => any) | undefined;
76
+ "onUpdate:calendarShow"?: ((value: boolean) => any) | undefined;
77
+ "onUpdate:day"?: ((value: string | Date) => any) | undefined;
78
+ "onUpdate:isOpen"?: ((value: boolean) => any) | undefined;
79
+ }>, {
80
+ isOpen: boolean;
36
81
  day: string | Date;
82
+ modelValue: string | Date;
83
+ showClear: boolean;
84
+ teleportTo: string;
37
85
  format: string;
38
- calendarDefinedDays: any;
39
- calendarMarkedDays: any;
86
+ calendarDefinedDays: import("../KCalendar/types.js").IDefinedDay[];
87
+ calendarMarkedDays: import("../KCalendar/types.js").IMarkedDay[];
40
88
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
41
89
  declare const _default: typeof __VLS_export;
42
90
  export default _default;
@@ -1,9 +1,10 @@
1
1
  <script setup>
2
2
  import { useKDatePickerLogic, KDatePickerDefaultProps } from "./KDatePicker.logic";
3
3
  import { usePresetComponent } from "../../composables/usePresetComponent";
4
- import { computed } from "vue";
4
+ import { computed, watch } from "vue";
5
5
  import KDatePickerDefault from "../../presets/default/components/KDatePicker/KDatePicker.vue";
6
6
  const props = defineProps(KDatePickerDefaultProps);
7
+ const emit = defineEmits(["update:maskedModel", "update:calendarShow", "update:day", "update:modelValue", "update:isOpen"]);
7
8
  const {
8
9
  _date,
9
10
  maskedModel,
@@ -19,11 +20,18 @@ const templateProps = computed(() => ({
19
20
  _date: _date.value,
20
21
  calendarDay: calendarDay.value,
21
22
  format: props.format,
23
+ showClear: props.showClear,
22
24
  calendarDefinedDays: props.calendarDefinedDays,
23
25
  calendarMarkedDays: props.calendarMarkedDays,
24
26
  textboxClicked,
25
- dateSelected: handleDateSelected
27
+ onClear: handleClear,
28
+ dateSelected: handleDateSelected,
29
+ teleportTo: props.teleportTo
26
30
  }));
31
+ const handleClear = () => {
32
+ _date.value = "";
33
+ maskedModel.value = "";
34
+ };
27
35
  const updateMaskedModel = (val) => {
28
36
  maskedModel.value = val;
29
37
  };
@@ -33,12 +41,24 @@ const updateCalendarShow = (val) => {
33
41
  const handleDateSelected = (date) => {
34
42
  dateSelected(date);
35
43
  };
44
+ watch(_date, (newDate) => {
45
+ const d1 = newDate && (newDate instanceof Date || typeof newDate === "string") ? newDate instanceof Date ? newDate.getTime() : new Date(newDate).getTime() : 0;
46
+ const d2 = props.modelValue && (props.modelValue instanceof Date || typeof props.modelValue === "string") ? props.modelValue instanceof Date ? props.modelValue.getTime() : new Date(props.modelValue).getTime() : 0;
47
+ const d3 = props.day && (props.day instanceof Date || typeof props.day === "string") ? props.day instanceof Date ? props.day.getTime() : new Date(props.day).getTime() : 0;
48
+ if (d1 !== d2 && d1 !== d3) {
49
+ emit("update:day", newDate);
50
+ emit("update:modelValue", newDate);
51
+ }
52
+ });
53
+ watch(calendarShow, (newVal) => {
54
+ emit("update:isOpen", newVal);
55
+ });
36
56
  </script>
37
57
 
38
58
  <template lang="pug">
39
59
  component(
40
60
  :is="presetComponent"
41
- v-bind="templateProps"
61
+ v-bind="{ ...templateProps, ...$attrs }"
42
62
  @update:maskedModel="updateMaskedModel"
43
63
  @update:calendarShow="updateCalendarShow"
44
64
  )
@@ -7,15 +7,37 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
7
7
  type: (DateConstructor | StringConstructor)[];
8
8
  default: undefined;
9
9
  };
10
+ modelValue: {
11
+ type: (DateConstructor | StringConstructor)[];
12
+ default: undefined;
13
+ };
14
+ isOpen: {
15
+ type: BooleanConstructor;
16
+ default: boolean;
17
+ };
18
+ showClear: {
19
+ type: BooleanConstructor;
20
+ default: boolean;
21
+ };
10
22
  calendarDefinedDays: {
11
- type: PropType<IDefinedDay[]>;
23
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
12
24
  default: () => never[];
13
25
  };
14
26
  calendarMarkedDays: {
15
- type: PropType<IMarkedDay[]>;
27
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
16
28
  default: () => never[];
17
29
  };
18
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
30
+ teleportTo: {
31
+ type: import("vue").PropType<string>;
32
+ default: undefined;
33
+ };
34
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
35
+ "update:modelValue": (value: string | Date) => any;
36
+ "update:maskedModel": (value: string) => any;
37
+ "update:calendarShow": (value: boolean) => any;
38
+ "update:day": (value: string | Date) => any;
39
+ "update:isOpen": (value: boolean) => any;
40
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
19
41
  format: {
20
42
  type: StringConstructor;
21
43
  default: string;
@@ -24,19 +46,45 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
24
46
  type: (DateConstructor | StringConstructor)[];
25
47
  default: undefined;
26
48
  };
49
+ modelValue: {
50
+ type: (DateConstructor | StringConstructor)[];
51
+ default: undefined;
52
+ };
53
+ isOpen: {
54
+ type: BooleanConstructor;
55
+ default: boolean;
56
+ };
57
+ showClear: {
58
+ type: BooleanConstructor;
59
+ default: boolean;
60
+ };
27
61
  calendarDefinedDays: {
28
- type: PropType<IDefinedDay[]>;
62
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
29
63
  default: () => never[];
30
64
  };
31
65
  calendarMarkedDays: {
32
- type: PropType<IMarkedDay[]>;
66
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
33
67
  default: () => never[];
34
68
  };
35
- }>> & Readonly<{}>, {
69
+ teleportTo: {
70
+ type: import("vue").PropType<string>;
71
+ default: undefined;
72
+ };
73
+ }>> & Readonly<{
74
+ "onUpdate:modelValue"?: ((value: string | Date) => any) | undefined;
75
+ "onUpdate:maskedModel"?: ((value: string) => any) | undefined;
76
+ "onUpdate:calendarShow"?: ((value: boolean) => any) | undefined;
77
+ "onUpdate:day"?: ((value: string | Date) => any) | undefined;
78
+ "onUpdate:isOpen"?: ((value: boolean) => any) | undefined;
79
+ }>, {
80
+ isOpen: boolean;
36
81
  day: string | Date;
82
+ modelValue: string | Date;
83
+ showClear: boolean;
84
+ teleportTo: string;
37
85
  format: string;
38
- calendarDefinedDays: any;
39
- calendarMarkedDays: any;
86
+ calendarDefinedDays: import("../KCalendar/types.js").IDefinedDay[];
87
+ calendarMarkedDays: import("../KCalendar/types.js").IMarkedDay[];
40
88
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
41
89
  declare const _default: typeof __VLS_export;
42
90
  export default _default;
@@ -1,9 +1,14 @@
1
- import type { IMarkedDay, IDefinedDay } from '@katlux/toolkit/components/KCalendar/types.ts';
1
+ import { type PropType } from 'vue';
2
+ import type { IMarkedDay, IDefinedDay } from '../KCalendar/types.js';
2
3
  export interface KDatePickerProps {
3
4
  format: string;
4
5
  day?: Date | string;
6
+ modelValue?: Date | string;
7
+ isOpen?: boolean;
8
+ showClear?: boolean;
5
9
  calendarDefinedDays: IDefinedDay[];
6
10
  calendarMarkedDays: IMarkedDay[];
11
+ teleportTo?: string;
7
12
  }
8
13
  export declare const KDatePickerDefaultProps: {
9
14
  format: {
@@ -14,6 +19,18 @@ export declare const KDatePickerDefaultProps: {
14
19
  type: (DateConstructor | StringConstructor)[];
15
20
  default: undefined;
16
21
  };
22
+ modelValue: {
23
+ type: (DateConstructor | StringConstructor)[];
24
+ default: undefined;
25
+ };
26
+ isOpen: {
27
+ type: BooleanConstructor;
28
+ default: boolean;
29
+ };
30
+ showClear: {
31
+ type: BooleanConstructor;
32
+ default: boolean;
33
+ };
17
34
  calendarDefinedDays: {
18
35
  type: PropType<IDefinedDay[]>;
19
36
  default: () => never[];
@@ -22,6 +39,10 @@ export declare const KDatePickerDefaultProps: {
22
39
  type: PropType<IMarkedDay[]>;
23
40
  default: () => never[];
24
41
  };
42
+ teleportTo: {
43
+ type: PropType<string>;
44
+ default: undefined;
45
+ };
25
46
  };
26
47
  export declare function useKDatePickerLogic(props: KDatePickerProps): {
27
48
  _date: import("vue").Ref<string | Date, string | Date>;
@@ -1,4 +1,4 @@
1
- import { ref, onMounted, computed } from "vue";
1
+ import { ref, watch, onMounted, computed } from "vue";
2
2
  export const KDatePickerDefaultProps = {
3
3
  format: {
4
4
  type: String,
@@ -8,6 +8,18 @@ export const KDatePickerDefaultProps = {
8
8
  type: [Date, String],
9
9
  default: void 0
10
10
  },
11
+ modelValue: {
12
+ type: [Date, String],
13
+ default: void 0
14
+ },
15
+ isOpen: {
16
+ type: Boolean,
17
+ default: false
18
+ },
19
+ showClear: {
20
+ type: Boolean,
21
+ default: false
22
+ },
11
23
  calendarDefinedDays: {
12
24
  type: Array,
13
25
  default: () => []
@@ -15,22 +27,52 @@ export const KDatePickerDefaultProps = {
15
27
  calendarMarkedDays: {
16
28
  type: Array,
17
29
  default: () => []
30
+ },
31
+ teleportTo: {
32
+ type: String,
33
+ default: void 0
18
34
  }
19
35
  };
20
36
  export function useKDatePickerLogic(props) {
21
37
  const _date = ref("");
22
38
  const maskedModel = ref("");
23
39
  const calendarShow = ref(false);
40
+ watch(maskedModel, (newVal) => {
41
+ if (newVal === "") {
42
+ if (_date.value !== "") {
43
+ _date.value = "";
44
+ }
45
+ return;
46
+ }
47
+ const format = props.format;
48
+ let day = "", month = "", year = "";
49
+ for (let i = 0; i < format.length; i++) {
50
+ const char = format[i];
51
+ if (char === "M") {
52
+ month += newVal[i] || "";
53
+ } else if (char === "D") {
54
+ day += newVal[i] || "";
55
+ } else if (char === "Y") {
56
+ year += newVal[i] || "";
57
+ }
58
+ }
59
+ if (month.length === 2 && day.length === 2 && year.length === 4) {
60
+ const d = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
61
+ if (!isNaN(d.getTime())) {
62
+ const oldTime = _date.value instanceof Date ? _date.value.getTime() : new Date(_date.value).getTime();
63
+ if (d.getTime() !== oldTime) {
64
+ _date.value = d;
65
+ }
66
+ }
67
+ }
68
+ });
24
69
  const textboxClicked = () => {
25
70
  calendarShow.value = true;
26
71
  };
27
72
  const dateSelected = (date) => {
28
- console.log("Date selected:", date);
29
73
  _date.value = date;
30
74
  const formatted = formatDate(date);
31
- console.log("Formatted date:", formatted);
32
75
  maskedModel.value = formatted;
33
- console.log("maskedModel.value after update:", maskedModel.value);
34
76
  calendarShow.value = false;
35
77
  };
36
78
  const formatDate = (date) => {
@@ -44,11 +86,51 @@ export function useKDatePickerLogic(props) {
44
86
  return formattedDate;
45
87
  };
46
88
  onMounted(() => {
47
- maskedModel.value = _date.value.toString();
89
+ syncValue(props.modelValue || props.day);
90
+ if (props.isOpen) {
91
+ calendarShow.value = props.isOpen;
92
+ }
93
+ });
94
+ const syncValue = (val) => {
95
+ if (val === void 0 || val === null || val === "") {
96
+ _date.value = "";
97
+ maskedModel.value = "";
98
+ return;
99
+ }
100
+ const d = val instanceof Date ? val : new Date(val);
101
+ if (!isNaN(d.getTime())) {
102
+ _date.value = val;
103
+ maskedModel.value = formatDate(d);
104
+ } else {
105
+ _date.value = "";
106
+ maskedModel.value = "";
107
+ }
108
+ };
109
+ watch(() => props.day, (newDay) => {
110
+ if (newDay !== void 0) {
111
+ const d1 = newDay && (newDay instanceof Date || typeof newDay === "string") ? newDay instanceof Date ? newDay.getTime() : new Date(newDay).getTime() : 0;
112
+ const d2 = _date.value instanceof Date ? _date.value.getTime() : new Date(_date.value || "").getTime();
113
+ if (d1 !== d2 || !newDay && _date.value) {
114
+ syncValue(newDay);
115
+ }
116
+ }
117
+ });
118
+ watch(() => props.modelValue, (newVal) => {
119
+ if (newVal !== void 0) {
120
+ const d1 = newVal && (newVal instanceof Date || typeof newVal === "string") ? newVal instanceof Date ? newVal.getTime() : new Date(newVal).getTime() : 0;
121
+ const d2 = _date.value instanceof Date ? _date.value.getTime() : new Date(_date.value || "").getTime();
122
+ if (d1 !== d2 || !newVal && _date.value) {
123
+ syncValue(newVal);
124
+ }
125
+ }
126
+ });
127
+ watch(() => props.isOpen, (newVal) => {
128
+ calendarShow.value = !!newVal;
48
129
  });
49
130
  const calendarDay = computed(() => {
50
- if (props.day) {
51
- return props.day;
131
+ const val = props.modelValue || props.day;
132
+ if (val) {
133
+ return val;
52
134
  }
53
135
  return /* @__PURE__ */ new Date();
54
136
  });
@@ -11,19 +11,40 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
11
11
  type: (DateConstructor | StringConstructor)[];
12
12
  default: undefined;
13
13
  };
14
+ modelValue: {
15
+ type: (DateConstructor | StringConstructor)[];
16
+ default: undefined;
17
+ };
18
+ isOpen: {
19
+ type: BooleanConstructor;
20
+ default: boolean;
21
+ };
22
+ showClear: {
23
+ type: BooleanConstructor;
24
+ default: boolean;
25
+ };
14
26
  timeStep: {
15
27
  type: NumberConstructor;
16
28
  default: number;
17
29
  };
18
30
  calendarDefinedDays: {
19
- type: PropType<IDefinedDay[]>;
31
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
20
32
  default: () => never[];
21
33
  };
22
34
  calendarMarkedDays: {
23
- type: PropType<IMarkedDay[]>;
35
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
24
36
  default: () => never[];
25
37
  };
26
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
38
+ teleportTo: {
39
+ type: import("vue").PropType<string>;
40
+ default: undefined;
41
+ };
42
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
43
+ "update:modelValue": (value: string | Date) => any;
44
+ "update:maskedModel": (value: string) => any;
45
+ "update:calendarShow": (value: boolean) => any;
46
+ "update:isOpen": (value: boolean) => any;
47
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
27
48
  format: {
28
49
  type: StringConstructor;
29
50
  default: string;
@@ -36,23 +57,48 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
36
57
  type: (DateConstructor | StringConstructor)[];
37
58
  default: undefined;
38
59
  };
60
+ modelValue: {
61
+ type: (DateConstructor | StringConstructor)[];
62
+ default: undefined;
63
+ };
64
+ isOpen: {
65
+ type: BooleanConstructor;
66
+ default: boolean;
67
+ };
68
+ showClear: {
69
+ type: BooleanConstructor;
70
+ default: boolean;
71
+ };
39
72
  timeStep: {
40
73
  type: NumberConstructor;
41
74
  default: number;
42
75
  };
43
76
  calendarDefinedDays: {
44
- type: PropType<IDefinedDay[]>;
77
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
45
78
  default: () => never[];
46
79
  };
47
80
  calendarMarkedDays: {
48
- type: PropType<IMarkedDay[]>;
81
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
49
82
  default: () => never[];
50
83
  };
51
- }>> & Readonly<{}>, {
84
+ teleportTo: {
85
+ type: import("vue").PropType<string>;
86
+ default: undefined;
87
+ };
88
+ }>> & Readonly<{
89
+ "onUpdate:modelValue"?: ((value: string | Date) => any) | undefined;
90
+ "onUpdate:maskedModel"?: ((value: string) => any) | undefined;
91
+ "onUpdate:calendarShow"?: ((value: boolean) => any) | undefined;
92
+ "onUpdate:isOpen"?: ((value: boolean) => any) | undefined;
93
+ }>, {
94
+ isOpen: boolean;
52
95
  day: string | Date;
96
+ modelValue: string | Date;
97
+ showClear: boolean;
98
+ teleportTo: string;
53
99
  format: string;
54
- calendarDefinedDays: any;
55
- calendarMarkedDays: any;
100
+ calendarDefinedDays: import("../KCalendar/types.js").IDefinedDay[];
101
+ calendarMarkedDays: import("../KCalendar/types.js").IMarkedDay[];
56
102
  timeFormat: string;
57
103
  timeStep: number;
58
104
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,9 +1,10 @@
1
1
  <script setup>
2
2
  import { useKDateTimePickerLogic, KDateTimePickerDefaultProps } from "./KDateTimePicker.logic";
3
3
  import { usePresetComponent } from "../../composables/usePresetComponent";
4
- import { computed } from "vue";
4
+ import { computed, watch } from "vue";
5
5
  import KDateTimePickerDefault from "../../presets/default/components/KDateTimePicker/KDateTimePicker.vue";
6
6
  const props = defineProps(KDateTimePickerDefaultProps);
7
+ const emit = defineEmits(["update:maskedModel", "update:calendarShow", "update:modelValue", "update:isOpen"]);
7
8
  const {
8
9
  _date,
9
10
  _time,
@@ -26,22 +27,41 @@ const templateProps = computed(() => ({
26
27
  timeStep: props.timeStep,
27
28
  calendarDefinedDays: props.calendarDefinedDays,
28
29
  calendarMarkedDays: props.calendarMarkedDays,
30
+ showClear: props.showClear,
29
31
  textboxClicked,
32
+ onClear: handleClear,
30
33
  dateSelected,
31
- timeSelected
34
+ timeSelected,
35
+ teleportTo: props.teleportTo
32
36
  }));
37
+ const handleClear = () => {
38
+ _date.value = "";
39
+ _time.value = "";
40
+ maskedModel.value = "";
41
+ };
33
42
  const updateMaskedModel = (val) => {
34
43
  maskedModel.value = val;
35
44
  };
36
45
  const updateCalendarShow = (val) => {
37
46
  calendarShow.value = val;
38
47
  };
48
+ watch(_date, (newDate) => {
49
+ const d1 = newDate && (newDate instanceof Date || typeof newDate === "string") ? newDate instanceof Date ? newDate.getTime() : new Date(newDate).getTime() : 0;
50
+ const d2 = props.modelValue && (props.modelValue instanceof Date || typeof props.modelValue === "string") ? props.modelValue instanceof Date ? props.modelValue.getTime() : new Date(props.modelValue).getTime() : 0;
51
+ const d3 = props.day && (props.day instanceof Date || typeof props.day === "string") ? props.day instanceof Date ? props.day.getTime() : new Date(props.day).getTime() : 0;
52
+ if (d1 !== d2 && d1 !== d3) {
53
+ emit("update:modelValue", newDate || "");
54
+ }
55
+ });
56
+ watch(calendarShow, (newVal) => {
57
+ emit("update:isOpen", newVal);
58
+ });
39
59
  </script>
40
60
 
41
61
  <template lang="pug">
42
62
  component(
43
63
  :is="presetComponent"
44
- v-bind="templateProps"
64
+ v-bind="{ ...templateProps, ...$attrs }"
45
65
  @update:maskedModel="updateMaskedModel"
46
66
  @update:calendarShow="updateCalendarShow"
47
67
  )
@@ -11,19 +11,40 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
11
11
  type: (DateConstructor | StringConstructor)[];
12
12
  default: undefined;
13
13
  };
14
+ modelValue: {
15
+ type: (DateConstructor | StringConstructor)[];
16
+ default: undefined;
17
+ };
18
+ isOpen: {
19
+ type: BooleanConstructor;
20
+ default: boolean;
21
+ };
22
+ showClear: {
23
+ type: BooleanConstructor;
24
+ default: boolean;
25
+ };
14
26
  timeStep: {
15
27
  type: NumberConstructor;
16
28
  default: number;
17
29
  };
18
30
  calendarDefinedDays: {
19
- type: PropType<IDefinedDay[]>;
31
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
20
32
  default: () => never[];
21
33
  };
22
34
  calendarMarkedDays: {
23
- type: PropType<IMarkedDay[]>;
35
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
24
36
  default: () => never[];
25
37
  };
26
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
38
+ teleportTo: {
39
+ type: import("vue").PropType<string>;
40
+ default: undefined;
41
+ };
42
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
43
+ "update:modelValue": (value: string | Date) => any;
44
+ "update:maskedModel": (value: string) => any;
45
+ "update:calendarShow": (value: boolean) => any;
46
+ "update:isOpen": (value: boolean) => any;
47
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
27
48
  format: {
28
49
  type: StringConstructor;
29
50
  default: string;
@@ -36,23 +57,48 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
36
57
  type: (DateConstructor | StringConstructor)[];
37
58
  default: undefined;
38
59
  };
60
+ modelValue: {
61
+ type: (DateConstructor | StringConstructor)[];
62
+ default: undefined;
63
+ };
64
+ isOpen: {
65
+ type: BooleanConstructor;
66
+ default: boolean;
67
+ };
68
+ showClear: {
69
+ type: BooleanConstructor;
70
+ default: boolean;
71
+ };
39
72
  timeStep: {
40
73
  type: NumberConstructor;
41
74
  default: number;
42
75
  };
43
76
  calendarDefinedDays: {
44
- type: PropType<IDefinedDay[]>;
77
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
45
78
  default: () => never[];
46
79
  };
47
80
  calendarMarkedDays: {
48
- type: PropType<IMarkedDay[]>;
81
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
49
82
  default: () => never[];
50
83
  };
51
- }>> & Readonly<{}>, {
84
+ teleportTo: {
85
+ type: import("vue").PropType<string>;
86
+ default: undefined;
87
+ };
88
+ }>> & Readonly<{
89
+ "onUpdate:modelValue"?: ((value: string | Date) => any) | undefined;
90
+ "onUpdate:maskedModel"?: ((value: string) => any) | undefined;
91
+ "onUpdate:calendarShow"?: ((value: boolean) => any) | undefined;
92
+ "onUpdate:isOpen"?: ((value: boolean) => any) | undefined;
93
+ }>, {
94
+ isOpen: boolean;
52
95
  day: string | Date;
96
+ modelValue: string | Date;
97
+ showClear: boolean;
98
+ teleportTo: string;
53
99
  format: string;
54
- calendarDefinedDays: any;
55
- calendarMarkedDays: any;
100
+ calendarDefinedDays: import("../KCalendar/types.js").IDefinedDay[];
101
+ calendarMarkedDays: import("../KCalendar/types.js").IMarkedDay[];
56
102
  timeFormat: string;
57
103
  timeStep: number;
58
104
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;