@katlux/toolkit 0.1.0-beta.44 → 0.1.0-beta.46

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 (48) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/components/KButton/KButton.logic.d.ts +1 -1
  3. package/dist/runtime/components/KCombobox/KCombobox.global.d.vue.ts +1 -1
  4. package/dist/runtime/components/KCombobox/KCombobox.global.vue.d.ts +1 -1
  5. package/dist/runtime/components/KDatatable/KDataIterator.logic.d.ts +0 -20
  6. package/dist/runtime/components/KDatatable/KDatatable.logic.d.ts +0 -12
  7. package/dist/runtime/components/KDatePicker/KDatePicker.global.d.vue.ts +15 -6
  8. package/dist/runtime/components/KDatePicker/KDatePicker.global.vue +13 -2
  9. package/dist/runtime/components/KDatePicker/KDatePicker.global.vue.d.ts +15 -6
  10. package/dist/runtime/components/KDatePicker/KDatePicker.logic.d.ts +6 -1
  11. package/dist/runtime/components/KDatePicker/KDatePicker.logic.js +49 -4
  12. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.d.vue.ts +45 -8
  13. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.vue +26 -1
  14. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.global.vue.d.ts +45 -8
  15. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.logic.d.ts +16 -1
  16. package/dist/runtime/components/KDateTimePicker/KDateTimePicker.logic.js +132 -13
  17. package/dist/runtime/components/KHourPicker/KHourPicker.global.d.vue.ts +21 -1
  18. package/dist/runtime/components/KHourPicker/KHourPicker.global.vue +24 -11
  19. package/dist/runtime/components/KHourPicker/KHourPicker.global.vue.d.ts +21 -1
  20. package/dist/runtime/components/KHourPicker/KHourPicker.logic.d.ts +14 -3
  21. package/dist/runtime/components/KHourPicker/KHourPicker.logic.js +25 -10
  22. package/dist/runtime/components/KHourSelect/KHourSelect.logic.js +4 -1
  23. package/dist/runtime/components/KMaskTextbox/KMaskTextbox.global.d.vue.ts +1 -1
  24. package/dist/runtime/components/KMaskTextbox/KMaskTextbox.global.vue.d.ts +1 -1
  25. package/dist/runtime/components/KTextbox/KTextbox.global.d.vue.ts +3 -2
  26. package/dist/runtime/components/KTextbox/KTextbox.global.vue +2 -2
  27. package/dist/runtime/components/KTextbox/KTextbox.global.vue.d.ts +3 -2
  28. package/dist/runtime/components/KTextbox/KTextbox.logic.d.ts +4 -4
  29. package/dist/runtime/components/KTextbox/KTextbox.logic.js +4 -4
  30. package/dist/runtime/components/KTreePicker/KTreePicker.global.d.vue.ts +3 -3
  31. package/dist/runtime/components/KTreePicker/KTreePicker.global.vue.d.ts +3 -3
  32. package/dist/runtime/components/KTreeView/KTreeView.global.d.vue.ts +3 -3
  33. package/dist/runtime/components/KTreeView/KTreeView.global.vue.d.ts +3 -3
  34. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.d.vue.ts +2 -0
  35. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.vue +3 -1
  36. package/dist/runtime/presets/default/components/KDatePicker/KDatePicker.vue.d.ts +2 -0
  37. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.d.vue.ts +2 -0
  38. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.vue +3 -1
  39. package/dist/runtime/presets/default/components/KDateTimePicker/KDateTimePicker.vue.d.ts +2 -0
  40. package/dist/runtime/presets/default/components/KDropdown/KDropdown.vue +5 -1
  41. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.d.vue.ts +6 -2
  42. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.vue +23 -13
  43. package/dist/runtime/presets/default/components/KHourPicker/KHourPicker.vue.d.ts +6 -2
  44. package/dist/runtime/presets/default/components/KMaskTextbox/KMaskTextbox.vue +6 -1
  45. package/dist/runtime/presets/default/components/KTextbox/KTextbox.d.vue.ts +1 -1
  46. package/dist/runtime/presets/default/components/KTextbox/KTextbox.vue +2 -2
  47. package/dist/runtime/presets/default/components/KTextbox/KTextbox.vue.d.ts +1 -1
  48. package/package.json +1 -1
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@katlux/toolkit",
3
3
  "configKey": "katluxToolkit",
4
- "version": "0.1.0-beta.44",
4
+ "version": "0.1.0-beta.46",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.1"
@@ -22,7 +22,7 @@ export interface KButtonEmits {
22
22
  export declare function useKButtonLogic(props: KButtonProps, emit: KButtonEmits): {
23
23
  isLink: import("vue").ComputedRef<boolean>;
24
24
  isDisabled: import("vue").ComputedRef<boolean | undefined>;
25
- buttonClasses: import("vue").ComputedRef<("info" | "default" | "primary" | "danger" | "success" | "warning" | "light" | "dark" | "small" | "large" | "medium" | {
25
+ buttonClasses: import("vue").ComputedRef<("info" | "default" | "small" | "primary" | "danger" | "success" | "warning" | "light" | "dark" | "large" | "medium" | {
26
26
  disabled: boolean | undefined;
27
27
  })[]>;
28
28
  onClick: () => void;
@@ -86,13 +86,13 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
86
86
  "onUpdate:modelValue"?: ((value: import("@katlux/providers").TDataRow | import("@katlux/providers").TDataRow[] | null) => any) | undefined;
87
87
  }>, {
88
88
  disabled: boolean;
89
+ modelValue: import("@katlux/providers").TDataRow | import("@katlux/providers").TDataRow[] | null;
89
90
  searchbox: boolean;
90
91
  placeholder: string;
91
92
  closeOnSelect: boolean;
92
93
  multiSelect: boolean;
93
94
  maxSelectedDisplay: string | number | boolean;
94
95
  visibleFields: String[];
95
- modelValue: import("@katlux/providers").TDataRow | import("@katlux/providers").TDataRow[] | null;
96
96
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
97
97
  declare const _default: typeof __VLS_export;
98
98
  export default _default;
@@ -86,13 +86,13 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
86
86
  "onUpdate:modelValue"?: ((value: import("@katlux/providers").TDataRow | import("@katlux/providers").TDataRow[] | null) => any) | undefined;
87
87
  }>, {
88
88
  disabled: boolean;
89
+ modelValue: import("@katlux/providers").TDataRow | import("@katlux/providers").TDataRow[] | null;
89
90
  searchbox: boolean;
90
91
  placeholder: string;
91
92
  closeOnSelect: boolean;
92
93
  multiSelect: boolean;
93
94
  maxSelectedDisplay: string | number | boolean;
94
95
  visibleFields: String[];
95
- modelValue: import("@katlux/providers").TDataRow | import("@katlux/providers").TDataRow[] | null;
96
96
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
97
97
  declare const _default: typeof __VLS_export;
98
98
  export default _default;
@@ -1,20 +0,0 @@
1
- import { ADataProvider } from '@katlux/providers';
2
- export interface KDataIteratorProps {
3
- dataProvider: ADataProvider;
4
- visibleFields?: Array<string> | null;
5
- loading?: boolean;
6
- search?: string;
7
- itemsPerPage?: number;
8
- page?: number;
9
- }
10
- export declare const KDataIteratorDefaultProps: {
11
- visibleFields: null;
12
- loading: boolean;
13
- search: string;
14
- itemsPerPage: number;
15
- page: number;
16
- };
17
- export declare function useKDataIteratorLogic(props: KDataIteratorProps): {
18
- selectedRows: import("vue").Ref<any[], any[]>;
19
- selectAll: import("vue").Ref<boolean, boolean>;
20
- };
@@ -1,12 +0,0 @@
1
- import { ADataProvider } from '@katlux/providers';
2
- export interface KDatatableProps {
3
- dataProvider: ADataProvider;
4
- visibleFields?: Array<string> | null;
5
- }
6
- export declare const KDatatableDefaultProps: {
7
- visibleFields: null;
8
- };
9
- export declare function useKDatatableLogic(props: KDatatableProps): {
10
- selectedRows: import("vue").Ref<any[], any[]>;
11
- selectAll: import("vue").Ref<boolean, boolean>;
12
- };
@@ -15,12 +15,16 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
15
15
  type: BooleanConstructor;
16
16
  default: boolean;
17
17
  };
18
+ showClear: {
19
+ type: BooleanConstructor;
20
+ default: boolean;
21
+ };
18
22
  calendarDefinedDays: {
19
- type: import("vue").PropType<IDefinedDay[]>;
23
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
20
24
  default: () => never[];
21
25
  };
22
26
  calendarMarkedDays: {
23
- type: import("vue").PropType<IMarkedDay[]>;
27
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
24
28
  default: () => never[];
25
29
  };
26
30
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
@@ -46,12 +50,16 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
46
50
  type: BooleanConstructor;
47
51
  default: boolean;
48
52
  };
53
+ showClear: {
54
+ type: BooleanConstructor;
55
+ default: boolean;
56
+ };
49
57
  calendarDefinedDays: {
50
- type: import("vue").PropType<IDefinedDay[]>;
58
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
51
59
  default: () => never[];
52
60
  };
53
61
  calendarMarkedDays: {
54
- type: import("vue").PropType<IMarkedDay[]>;
62
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
55
63
  default: () => never[];
56
64
  };
57
65
  }>> & Readonly<{
@@ -65,8 +73,9 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
65
73
  day: string | Date;
66
74
  modelValue: string | Date;
67
75
  format: string;
68
- calendarDefinedDays: IDefinedDay[];
69
- calendarMarkedDays: IMarkedDay[];
76
+ showClear: boolean;
77
+ calendarDefinedDays: import("../KCalendar/types.js").IDefinedDay[];
78
+ calendarMarkedDays: import("../KCalendar/types.js").IMarkedDay[];
70
79
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
71
80
  declare const _default: typeof __VLS_export;
72
81
  export default _default;
@@ -20,11 +20,17 @@ const templateProps = computed(() => ({
20
20
  _date: _date.value,
21
21
  calendarDay: calendarDay.value,
22
22
  format: props.format,
23
+ showClear: props.showClear,
23
24
  calendarDefinedDays: props.calendarDefinedDays,
24
25
  calendarMarkedDays: props.calendarMarkedDays,
25
26
  textboxClicked,
27
+ onClear: handleClear,
26
28
  dateSelected: handleDateSelected
27
29
  }));
30
+ const handleClear = () => {
31
+ _date.value = "";
32
+ maskedModel.value = "";
33
+ };
28
34
  const updateMaskedModel = (val) => {
29
35
  maskedModel.value = val;
30
36
  };
@@ -35,8 +41,13 @@ const handleDateSelected = (date) => {
35
41
  dateSelected(date);
36
42
  };
37
43
  watch(_date, (newDate) => {
38
- emit("update:day", newDate);
39
- emit("update:modelValue", newDate);
44
+ const d1 = newDate instanceof Date ? newDate.getTime() : new Date(newDate).getTime();
45
+ const d2 = props.modelValue instanceof Date ? props.modelValue.getTime() : new Date(props.modelValue || "").getTime();
46
+ const d3 = props.day instanceof Date ? props.day.getTime() : new Date(props.day || "").getTime();
47
+ if (d1 !== d2 && d1 !== d3) {
48
+ emit("update:day", newDate);
49
+ emit("update:modelValue", newDate);
50
+ }
40
51
  });
41
52
  watch(calendarShow, (newVal) => {
42
53
  emit("update:isOpen", newVal);
@@ -15,12 +15,16 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
15
15
  type: BooleanConstructor;
16
16
  default: boolean;
17
17
  };
18
+ showClear: {
19
+ type: BooleanConstructor;
20
+ default: boolean;
21
+ };
18
22
  calendarDefinedDays: {
19
- type: import("vue").PropType<IDefinedDay[]>;
23
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
20
24
  default: () => never[];
21
25
  };
22
26
  calendarMarkedDays: {
23
- type: import("vue").PropType<IMarkedDay[]>;
27
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
24
28
  default: () => never[];
25
29
  };
26
30
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
@@ -46,12 +50,16 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
46
50
  type: BooleanConstructor;
47
51
  default: boolean;
48
52
  };
53
+ showClear: {
54
+ type: BooleanConstructor;
55
+ default: boolean;
56
+ };
49
57
  calendarDefinedDays: {
50
- type: import("vue").PropType<IDefinedDay[]>;
58
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
51
59
  default: () => never[];
52
60
  };
53
61
  calendarMarkedDays: {
54
- type: import("vue").PropType<IMarkedDay[]>;
62
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
55
63
  default: () => never[];
56
64
  };
57
65
  }>> & Readonly<{
@@ -65,8 +73,9 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
65
73
  day: string | Date;
66
74
  modelValue: string | Date;
67
75
  format: string;
68
- calendarDefinedDays: IDefinedDay[];
69
- calendarMarkedDays: IMarkedDay[];
76
+ showClear: boolean;
77
+ calendarDefinedDays: import("../KCalendar/types.js").IDefinedDay[];
78
+ calendarMarkedDays: import("../KCalendar/types.js").IMarkedDay[];
70
79
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
71
80
  declare const _default: typeof __VLS_export;
72
81
  export default _default;
@@ -1,10 +1,11 @@
1
1
  import { type PropType } from 'vue';
2
- import type { IMarkedDay, IDefinedDay } from '@katlux/toolkit/components/KCalendar/types.ts';
2
+ import type { IMarkedDay, IDefinedDay } from '../KCalendar/types.js';
3
3
  export interface KDatePickerProps {
4
4
  format: string;
5
5
  day?: Date | string;
6
6
  modelValue?: Date | string;
7
7
  isOpen?: boolean;
8
+ showClear?: boolean;
8
9
  calendarDefinedDays: IDefinedDay[];
9
10
  calendarMarkedDays: IMarkedDay[];
10
11
  }
@@ -25,6 +26,10 @@ export declare const KDatePickerDefaultProps: {
25
26
  type: BooleanConstructor;
26
27
  default: boolean;
27
28
  };
29
+ showClear: {
30
+ type: BooleanConstructor;
31
+ default: boolean;
32
+ };
28
33
  calendarDefinedDays: {
29
34
  type: PropType<IDefinedDay[]>;
30
35
  default: () => never[];
@@ -16,6 +16,10 @@ export const KDatePickerDefaultProps = {
16
16
  type: Boolean,
17
17
  default: false
18
18
  },
19
+ showClear: {
20
+ type: Boolean,
21
+ default: false
22
+ },
19
23
  calendarDefinedDays: {
20
24
  type: Array,
21
25
  default: () => []
@@ -29,6 +33,39 @@ export function useKDatePickerLogic(props) {
29
33
  const _date = ref("");
30
34
  const maskedModel = ref("");
31
35
  const calendarShow = ref(false);
36
+ watch(maskedModel, (newVal) => {
37
+ if (newVal === "") {
38
+ if (_date.value !== "") {
39
+ _date.value = "";
40
+ }
41
+ return;
42
+ }
43
+ const format = props.format;
44
+ let day = "", month = "", year = "";
45
+ let rawIdx = 0;
46
+ for (let i = 0; i < format.length; i++) {
47
+ const char = format[i];
48
+ if (char === "M") {
49
+ month += newVal[rawIdx] || "";
50
+ rawIdx++;
51
+ } else if (char === "D") {
52
+ day += newVal[rawIdx] || "";
53
+ rawIdx++;
54
+ } else if (char === "Y") {
55
+ year += newVal[rawIdx] || "";
56
+ rawIdx++;
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
+ });
32
69
  const textboxClicked = () => {
33
70
  calendarShow.value = true;
34
71
  };
@@ -69,14 +106,22 @@ export function useKDatePickerLogic(props) {
69
106
  });
70
107
  watch(() => props.day, (newDay) => {
71
108
  if (newDay) {
72
- _date.value = newDay;
73
- syncMaskedModel(newDay);
109
+ const d1 = newDay instanceof Date ? newDay.getTime() : new Date(newDay).getTime();
110
+ const d2 = _date.value instanceof Date ? _date.value.getTime() : new Date(_date.value).getTime();
111
+ if (d1 !== d2) {
112
+ _date.value = newDay;
113
+ syncMaskedModel(newDay);
114
+ }
74
115
  }
75
116
  });
76
117
  watch(() => props.modelValue, (newVal) => {
77
118
  if (newVal) {
78
- _date.value = newVal;
79
- syncMaskedModel(newVal);
119
+ const d1 = newVal instanceof Date ? newVal.getTime() : new Date(newVal).getTime();
120
+ const d2 = _date.value instanceof Date ? _date.value.getTime() : new Date(_date.value).getTime();
121
+ if (d1 !== d2) {
122
+ _date.value = newVal;
123
+ syncMaskedModel(newVal);
124
+ }
80
125
  }
81
126
  });
82
127
  watch(() => props.isOpen, (newVal) => {
@@ -11,19 +11,36 @@ 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: import("vue").PropType<IDefinedDay[]>;
31
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
20
32
  default: () => never[];
21
33
  };
22
34
  calendarMarkedDays: {
23
- type: import("vue").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
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
39
+ "update:modelValue": (value: string | Date) => any;
40
+ "update:maskedModel": (value: string) => any;
41
+ "update:calendarShow": (value: boolean) => any;
42
+ "update:isOpen": (value: boolean) => any;
43
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
27
44
  format: {
28
45
  type: StringConstructor;
29
46
  default: string;
@@ -36,23 +53,43 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
36
53
  type: (DateConstructor | StringConstructor)[];
37
54
  default: undefined;
38
55
  };
56
+ modelValue: {
57
+ type: (DateConstructor | StringConstructor)[];
58
+ default: undefined;
59
+ };
60
+ isOpen: {
61
+ type: BooleanConstructor;
62
+ default: boolean;
63
+ };
64
+ showClear: {
65
+ type: BooleanConstructor;
66
+ default: boolean;
67
+ };
39
68
  timeStep: {
40
69
  type: NumberConstructor;
41
70
  default: number;
42
71
  };
43
72
  calendarDefinedDays: {
44
- type: import("vue").PropType<IDefinedDay[]>;
73
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
45
74
  default: () => never[];
46
75
  };
47
76
  calendarMarkedDays: {
48
- type: import("vue").PropType<IMarkedDay[]>;
77
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
49
78
  default: () => never[];
50
79
  };
51
- }>> & Readonly<{}>, {
80
+ }>> & Readonly<{
81
+ "onUpdate:modelValue"?: ((value: string | Date) => any) | undefined;
82
+ "onUpdate:maskedModel"?: ((value: string) => any) | undefined;
83
+ "onUpdate:calendarShow"?: ((value: boolean) => any) | undefined;
84
+ "onUpdate:isOpen"?: ((value: boolean) => any) | undefined;
85
+ }>, {
86
+ isOpen: boolean;
52
87
  day: string | Date;
88
+ modelValue: string | Date;
53
89
  format: string;
54
- calendarDefinedDays: IDefinedDay[];
55
- calendarMarkedDays: IMarkedDay[];
90
+ showClear: boolean;
91
+ calendarDefinedDays: import("../KCalendar/types.js").IDefinedDay[];
92
+ calendarMarkedDays: import("../KCalendar/types.js").IMarkedDay[];
56
93
  timeFormat: string;
57
94
  timeStep: number;
58
95
  }, {}, {}, {}, 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,16 +27,40 @@ 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
34
  timeSelected
32
35
  }));
36
+ const handleClear = () => {
37
+ _date.value = "";
38
+ _time.value = "";
39
+ maskedModel.value = "";
40
+ };
33
41
  const updateMaskedModel = (val) => {
34
42
  maskedModel.value = val;
35
43
  };
36
44
  const updateCalendarShow = (val) => {
37
45
  calendarShow.value = val;
38
46
  };
47
+ watch(_date, (newDate) => {
48
+ if (!newDate) {
49
+ if (props.modelValue || props.day) {
50
+ emit("update:modelValue", "");
51
+ }
52
+ return;
53
+ }
54
+ const d1 = newDate instanceof Date ? newDate.getTime() : new Date(newDate).getTime();
55
+ const d2 = props.modelValue instanceof Date ? props.modelValue.getTime() : new Date(props.modelValue || "").getTime();
56
+ const d3 = props.day instanceof Date ? props.day.getTime() : new Date(props.day || "").getTime();
57
+ if (d1 !== d2 && d1 !== d3) {
58
+ emit("update:modelValue", newDate);
59
+ }
60
+ });
61
+ watch(calendarShow, (newVal) => {
62
+ emit("update:isOpen", newVal);
63
+ });
39
64
  </script>
40
65
 
41
66
  <template lang="pug">
@@ -11,19 +11,36 @@ 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: import("vue").PropType<IDefinedDay[]>;
31
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
20
32
  default: () => never[];
21
33
  };
22
34
  calendarMarkedDays: {
23
- type: import("vue").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
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
39
+ "update:modelValue": (value: string | Date) => any;
40
+ "update:maskedModel": (value: string) => any;
41
+ "update:calendarShow": (value: boolean) => any;
42
+ "update:isOpen": (value: boolean) => any;
43
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
27
44
  format: {
28
45
  type: StringConstructor;
29
46
  default: string;
@@ -36,23 +53,43 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
36
53
  type: (DateConstructor | StringConstructor)[];
37
54
  default: undefined;
38
55
  };
56
+ modelValue: {
57
+ type: (DateConstructor | StringConstructor)[];
58
+ default: undefined;
59
+ };
60
+ isOpen: {
61
+ type: BooleanConstructor;
62
+ default: boolean;
63
+ };
64
+ showClear: {
65
+ type: BooleanConstructor;
66
+ default: boolean;
67
+ };
39
68
  timeStep: {
40
69
  type: NumberConstructor;
41
70
  default: number;
42
71
  };
43
72
  calendarDefinedDays: {
44
- type: import("vue").PropType<IDefinedDay[]>;
73
+ type: import("vue").PropType<import("../KCalendar/types.js").IDefinedDay[]>;
45
74
  default: () => never[];
46
75
  };
47
76
  calendarMarkedDays: {
48
- type: import("vue").PropType<IMarkedDay[]>;
77
+ type: import("vue").PropType<import("../KCalendar/types.js").IMarkedDay[]>;
49
78
  default: () => never[];
50
79
  };
51
- }>> & Readonly<{}>, {
80
+ }>> & Readonly<{
81
+ "onUpdate:modelValue"?: ((value: string | Date) => any) | undefined;
82
+ "onUpdate:maskedModel"?: ((value: string) => any) | undefined;
83
+ "onUpdate:calendarShow"?: ((value: boolean) => any) | undefined;
84
+ "onUpdate:isOpen"?: ((value: boolean) => any) | undefined;
85
+ }>, {
86
+ isOpen: boolean;
52
87
  day: string | Date;
88
+ modelValue: string | Date;
53
89
  format: string;
54
- calendarDefinedDays: IDefinedDay[];
55
- calendarMarkedDays: IMarkedDay[];
90
+ showClear: boolean;
91
+ calendarDefinedDays: import("../KCalendar/types.js").IDefinedDay[];
92
+ calendarMarkedDays: import("../KCalendar/types.js").IMarkedDay[];
56
93
  timeFormat: string;
57
94
  timeStep: number;
58
95
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,9 +1,12 @@
1
1
  import { type PropType } from 'vue';
2
- import type { IMarkedDay, IDefinedDay } from '@katlux/toolkit/components/KCalendar/types.ts';
2
+ import type { IMarkedDay, IDefinedDay } from '../KCalendar/types.js';
3
3
  export interface KDateTimePickerProps {
4
4
  format?: string;
5
5
  timeFormat?: string;
6
6
  day?: Date | string;
7
+ modelValue?: Date | string;
8
+ isOpen?: boolean;
9
+ showClear?: boolean;
7
10
  timeStep?: number;
8
11
  calendarDefinedDays?: IDefinedDay[];
9
12
  calendarMarkedDays?: IMarkedDay[];
@@ -21,6 +24,18 @@ export declare const KDateTimePickerDefaultProps: {
21
24
  type: (DateConstructor | StringConstructor)[];
22
25
  default: undefined;
23
26
  };
27
+ modelValue: {
28
+ type: (DateConstructor | StringConstructor)[];
29
+ default: undefined;
30
+ };
31
+ isOpen: {
32
+ type: BooleanConstructor;
33
+ default: boolean;
34
+ };
35
+ showClear: {
36
+ type: BooleanConstructor;
37
+ default: boolean;
38
+ };
24
39
  timeStep: {
25
40
  type: NumberConstructor;
26
41
  default: number;