@simplysm/solid 13.0.76 → 13.0.77
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/README.md +9 -10
- package/dist/components/data/kanban/Kanban.d.ts +31 -38
- package/dist/components/data/kanban/Kanban.d.ts.map +1 -1
- package/dist/components/data/kanban/Kanban.js.map +1 -1
- package/dist/components/data/list/List.d.ts +7 -28
- package/dist/components/data/list/List.d.ts.map +1 -1
- package/dist/components/data/list/List.js +3 -2
- package/dist/components/data/list/List.js.map +2 -2
- package/dist/components/data/sheet/DataSheet.d.ts +3 -8
- package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheet.js +305 -418
- package/dist/components/data/sheet/DataSheet.js.map +2 -2
- package/dist/components/data/sheet/{types.d.ts → DataSheet.types.d.ts} +9 -3
- package/dist/components/data/sheet/DataSheet.types.d.ts.map +1 -0
- package/dist/components/data/sheet/DataSheet.types.js +1 -0
- package/dist/components/data/sheet/{sheetUtils.d.ts → DataSheet.utils.d.ts} +2 -2
- package/dist/components/data/sheet/DataSheet.utils.d.ts.map +1 -0
- package/dist/components/data/sheet/{sheetUtils.js → DataSheet.utils.js} +3 -3
- package/dist/components/data/sheet/DataSheet.utils.js.map +6 -0
- package/dist/components/data/sheet/DataSheetColumn.d.ts +1 -1
- package/dist/components/data/sheet/DataSheetColumn.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheetConfigDialog.d.ts +1 -1
- package/dist/components/data/sheet/DataSheetConfigDialog.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.js +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts +2 -2
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.d.ts +27 -0
- package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.js +173 -0
- package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts +1 -2
- package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetReorder.js.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts +2 -2
- package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetSelection.js +2 -2
- package/dist/components/data/sheet/hooks/useDataSheetSelection.js.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetSorting.js +1 -1
- package/dist/components/disclosure/Dialog.d.ts +6 -10
- package/dist/components/disclosure/Dialog.d.ts.map +1 -1
- package/dist/components/disclosure/Dialog.js +11 -14
- package/dist/components/disclosure/Dialog.js.map +2 -2
- package/dist/components/disclosure/Dropdown.d.ts +8 -12
- package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
- package/dist/components/disclosure/Dropdown.js.map +1 -1
- package/dist/components/disclosure/Tabs.d.ts +3 -5
- package/dist/components/disclosure/Tabs.d.ts.map +1 -1
- package/dist/components/disclosure/Tabs.js.map +1 -1
- package/dist/components/display/Barcode.d.ts +1 -1
- package/dist/components/display/Barcode.d.ts.map +1 -1
- package/dist/components/display/Barcode.js +2 -1
- package/dist/components/display/Barcode.js.map +2 -2
- package/dist/components/display/Barcode.types.d.ts +2 -0
- package/dist/components/display/Barcode.types.d.ts.map +1 -0
- package/dist/components/display/Barcode.types.js +1 -0
- package/dist/components/display/Echarts.d.ts +2 -2
- package/dist/components/display/Echarts.d.ts.map +1 -1
- package/dist/components/display/Echarts.js +7 -8
- package/dist/components/display/Echarts.js.map +2 -2
- package/dist/components/features/address/AddressSearch.d.ts.map +1 -1
- package/dist/components/features/address/AddressSearch.js +4 -1
- package/dist/components/features/address/AddressSearch.js.map +2 -2
- package/dist/components/features/crud-detail/CrudDetail.d.ts +12 -13
- package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetail.js +18 -15
- package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
- package/dist/components/features/crud-detail/{types.d.ts → CrudDetail.types.d.ts} +1 -1
- package/dist/components/features/crud-detail/CrudDetail.types.d.ts.map +1 -0
- package/dist/components/features/crud-detail/CrudDetail.types.js +1 -0
- package/dist/components/features/crud-sheet/CrudSheet.d.ts +3 -13
- package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheet.js +62 -73
- package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
- package/dist/components/features/crud-sheet/{types.d.ts → CrudSheet.types.d.ts} +10 -10
- package/dist/components/features/crud-sheet/CrudSheet.types.d.ts.map +1 -0
- package/dist/components/features/crud-sheet/CrudSheet.types.js +1 -0
- package/dist/components/features/crud-sheet/CrudSheet.types.js.map +6 -0
- package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts +1 -1
- package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetTools.d.ts +1 -1
- package/dist/components/features/crud-sheet/CrudSheetTools.d.ts.map +1 -1
- package/dist/components/features/data-select-button/DataSelectButton.d.ts +2 -2
- package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
- package/dist/components/features/data-select-button/DataSelectButton.js +3 -3
- package/dist/components/features/data-select-button/DataSelectButton.js.map +2 -2
- package/dist/components/features/shared-data/SharedDataSelect.d.ts +7 -11
- package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelect.js +5 -4
- package/dist/components/features/shared-data/SharedDataSelect.js.map +2 -2
- package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectButton.js.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts +8 -15
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectList.js +5 -3
- package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
- package/dist/components/feedback/notification/NotificationProvider.d.ts.map +1 -1
- package/dist/components/feedback/notification/NotificationProvider.js +9 -1
- package/dist/components/feedback/notification/NotificationProvider.js.map +2 -2
- package/dist/components/feedback/print/Print.d.ts +4 -6
- package/dist/components/feedback/print/Print.d.ts.map +1 -1
- package/dist/components/feedback/print/Print.js +3 -2
- package/dist/components/feedback/print/Print.js.map +2 -2
- package/dist/components/feedback/print/PrintProvider.d.ts.map +1 -1
- package/dist/components/feedback/print/PrintProvider.js +1 -0
- package/dist/components/feedback/print/PrintProvider.js.map +1 -1
- package/dist/components/form-control/Invalid.d.ts +1 -1
- package/dist/components/form-control/Invalid.d.ts.map +1 -1
- package/dist/components/form-control/Invalid.js +27 -26
- package/dist/components/form-control/Invalid.js.map +2 -2
- package/dist/components/form-control/checkbox/Checkbox.d.ts +1 -1
- package/dist/components/form-control/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/CheckboxGroup.d.ts +10 -10
- package/dist/components/form-control/checkbox/CheckboxGroup.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/CheckboxGroup.js +2 -2
- package/dist/components/form-control/checkbox/CheckboxGroup.js.map +2 -2
- package/dist/components/form-control/checkbox/Radio.d.ts +1 -1
- package/dist/components/form-control/checkbox/Radio.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/RadioGroup.d.ts +10 -10
- package/dist/components/form-control/checkbox/RadioGroup.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/RadioGroup.js +2 -2
- package/dist/components/form-control/checkbox/RadioGroup.js.map +2 -2
- package/dist/components/form-control/checkbox/SelectableBase.d.ts +1 -1
- package/dist/components/form-control/checkbox/SelectableBase.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/SelectableBase.js +3 -3
- package/dist/components/form-control/checkbox/SelectableBase.js.map +2 -2
- package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts +1 -1
- package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/SelectionGroupBase.js +3 -3
- package/dist/components/form-control/checkbox/SelectionGroupBase.js.map +2 -2
- package/dist/components/form-control/color-picker/ColorPicker.d.ts +2 -2
- package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
- package/dist/components/form-control/color-picker/ColorPicker.js +3 -3
- package/dist/components/form-control/color-picker/ColorPicker.js.map +2 -2
- package/dist/components/form-control/combobox/Combobox.d.ts +3 -3
- package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/form-control/combobox/Combobox.js +10 -5
- package/dist/components/form-control/combobox/Combobox.js.map +2 -2
- package/dist/components/form-control/date-range-picker/DateRangePicker.js +4 -4
- package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +2 -2
- package/dist/components/form-control/editor/EditorToolbar.d.ts.map +1 -1
- package/dist/components/form-control/editor/EditorToolbar.js +176 -312
- package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
- package/dist/components/form-control/field/DatePicker.d.ts +2 -2
- package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DatePicker.js +3 -3
- package/dist/components/form-control/field/DatePicker.js.map +2 -2
- package/dist/components/form-control/field/DateTimePicker.d.ts +2 -2
- package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DateTimePicker.js +3 -3
- package/dist/components/form-control/field/DateTimePicker.js.map +2 -2
- package/dist/components/form-control/field/FieldShell.d.ts +1 -1
- package/dist/components/form-control/field/FieldShell.d.ts.map +1 -1
- package/dist/components/form-control/field/FieldShell.js +2 -2
- package/dist/components/form-control/field/FieldShell.js.map +2 -2
- package/dist/components/form-control/field/NumberInput.d.ts +7 -28
- package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
- package/dist/components/form-control/field/NumberInput.js +7 -5
- package/dist/components/form-control/field/NumberInput.js.map +2 -2
- package/dist/components/form-control/field/TextInput.d.ts +7 -23
- package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
- package/dist/components/form-control/field/TextInput.js +6 -5
- package/dist/components/form-control/field/TextInput.js.map +2 -2
- package/dist/components/form-control/field/Textarea.d.ts +2 -2
- package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
- package/dist/components/form-control/field/Textarea.js +3 -3
- package/dist/components/form-control/field/Textarea.js.map +2 -2
- package/dist/components/form-control/field/TimePicker.d.ts +2 -2
- package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/TimePicker.js +3 -3
- package/dist/components/form-control/field/TimePicker.js.map +2 -2
- package/dist/components/form-control/select/Select.d.ts +22 -44
- package/dist/components/form-control/select/Select.d.ts.map +1 -1
- package/dist/components/form-control/select/Select.js +8 -6
- package/dist/components/form-control/select/Select.js.map +2 -2
- package/dist/components/form-control/state-preset/StatePreset.js +5 -5
- package/dist/components/form-control/state-preset/StatePreset.js.map +2 -2
- package/dist/components/layout/sidebar/Sidebar.d.ts +5 -102
- package/dist/components/layout/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/components/layout/sidebar/Sidebar.js.map +1 -1
- package/dist/components/layout/topbar/Topbar.d.ts +1 -1
- package/dist/components/layout/topbar/Topbar.d.ts.map +1 -1
- package/dist/components/layout/topbar/Topbar.js +3 -3
- package/dist/components/layout/topbar/Topbar.js.map +2 -2
- package/dist/helpers/createAppStructure.d.ts.map +1 -1
- package/dist/helpers/createAppStructure.js.map +1 -1
- package/dist/hooks/createControllableStore.js +5 -5
- package/dist/hooks/createControllableStore.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/providers/ServiceClientProvider.d.ts +2 -2
- package/dist/providers/ServiceClientProvider.d.ts.map +1 -1
- package/dist/providers/ServiceClientProvider.js.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.d.ts +1 -1
- package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.js +98 -86
- package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
- package/package.json +5 -5
- package/src/components/data/kanban/Kanban.tsx +37 -32
- package/src/components/data/list/List.tsx +3 -6
- package/src/components/data/sheet/DataSheet.tsx +224 -334
- package/src/components/data/sheet/{types.ts → DataSheet.types.ts} +8 -2
- package/src/components/data/sheet/{sheetUtils.ts → DataSheet.utils.ts} +3 -3
- package/src/components/data/sheet/DataSheetColumn.tsx +1 -1
- package/src/components/data/sheet/DataSheetConfigDialog.tsx +1 -1
- package/src/components/data/sheet/hooks/useDataSheetExpansion.ts +2 -2
- package/src/components/data/sheet/hooks/useDataSheetFixedColumns.ts +2 -2
- package/src/components/data/sheet/hooks/useDataSheetHeaderCell.tsx +168 -0
- package/src/components/data/sheet/hooks/useDataSheetReorder.ts +1 -2
- package/src/components/data/sheet/hooks/useDataSheetSelection.ts +4 -4
- package/src/components/data/sheet/hooks/useDataSheetSorting.ts +2 -2
- package/src/components/disclosure/Dialog.tsx +21 -27
- package/src/components/disclosure/Dropdown.tsx +1 -6
- package/src/components/disclosure/Tabs.tsx +1 -6
- package/src/components/display/Barcode.tsx +4 -113
- package/src/components/display/Barcode.types.ts +111 -0
- package/src/components/display/Echarts.tsx +10 -11
- package/src/components/features/address/AddressSearch.tsx +21 -3
- package/src/components/features/crud-detail/CrudDetail.tsx +21 -38
- package/src/components/features/crud-sheet/CrudSheet.tsx +77 -93
- package/src/components/features/crud-sheet/{types.ts → CrudSheet.types.ts} +9 -9
- package/src/components/features/crud-sheet/CrudSheetColumn.tsx +1 -1
- package/src/components/features/crud-sheet/CrudSheetTools.tsx +1 -1
- package/src/components/features/data-select-button/DataSelectButton.tsx +8 -8
- package/src/components/features/shared-data/SharedDataSelect.tsx +23 -34
- package/src/components/features/shared-data/SharedDataSelectButton.tsx +1 -4
- package/src/components/features/shared-data/SharedDataSelectList.tsx +6 -10
- package/src/components/feedback/notification/NotificationProvider.tsx +9 -1
- package/src/components/feedback/print/Print.tsx +4 -8
- package/src/components/feedback/print/PrintProvider.tsx +2 -1
- package/src/components/form-control/Invalid.tsx +33 -29
- package/src/components/form-control/checkbox/Checkbox.tsx +1 -1
- package/src/components/form-control/checkbox/CheckboxGroup.tsx +3 -12
- package/src/components/form-control/checkbox/Radio.tsx +1 -1
- package/src/components/form-control/checkbox/RadioGroup.tsx +3 -12
- package/src/components/form-control/checkbox/SelectableBase.tsx +3 -3
- package/src/components/form-control/checkbox/SelectionGroupBase.tsx +3 -3
- package/src/components/form-control/color-picker/ColorPicker.tsx +4 -4
- package/src/components/form-control/combobox/Combobox.tsx +23 -18
- package/src/components/form-control/date-range-picker/DateRangePicker.tsx +5 -5
- package/src/components/form-control/editor/EditorToolbar.tsx +82 -202
- package/src/components/form-control/field/DatePicker.tsx +4 -4
- package/src/components/form-control/field/DateTimePicker.tsx +4 -4
- package/src/components/form-control/field/FieldShell.tsx +2 -2
- package/src/components/form-control/field/NumberInput.tsx +8 -11
- package/src/components/form-control/field/TextInput.tsx +7 -11
- package/src/components/form-control/field/Textarea.tsx +4 -4
- package/src/components/form-control/field/TimePicker.tsx +4 -4
- package/src/components/form-control/select/Select.tsx +33 -42
- package/src/components/form-control/state-preset/StatePreset.tsx +5 -5
- package/src/components/layout/sidebar/Sidebar.tsx +1 -7
- package/src/components/layout/topbar/Topbar.tsx +3 -3
- package/src/helpers/createAppStructure.ts +16 -0
- package/src/hooks/createControllableStore.ts +5 -5
- package/src/index.ts +4 -3
- package/src/providers/ServiceClientProvider.tsx +4 -4
- package/src/providers/shared-data/SharedDataProvider.tsx +136 -113
- package/tests/components/data/sheet/DataSheet.spec.tsx +2 -2
- package/tests/components/data/sheet/hooks/useDataSheetFixedColumns.spec.ts +1 -1
- package/tests/components/data/sheet/hooks/useDataSheetSelection.spec.ts +34 -17
- package/tests/components/data/sheet/hooks/useDataSheetSorting.spec.ts +1 -1
- package/tests/components/disclosure/Dialog.spec.tsx +7 -7
- package/tests/components/display/Barcode.spec.tsx +15 -1
- package/tests/components/features/crud-sheet/CrudSheet.spec.tsx +6 -6
- package/tests/components/form-control/Invalid.spec.tsx +5 -5
- package/tests/components/form-control/combobox/Combobox.spec.tsx +24 -1
- package/tests/components/layout/topbar/TopbarActions.spec.tsx +4 -4
- package/tests/components/layout/topbar/{createTopbarActions.spec.tsx → useTopbarActions.spec.tsx} +4 -4
- package/tests/providers/shared-data/SharedDataProvider.spec.tsx +130 -8
- package/dist/components/data/sheet/sheetUtils.d.ts.map +0 -1
- package/dist/components/data/sheet/sheetUtils.js.map +0 -6
- package/dist/components/data/sheet/types.d.ts.map +0 -1
- package/dist/components/data/sheet/types.js +0 -1
- package/dist/components/features/crud-detail/types.d.ts.map +0 -1
- package/dist/components/features/crud-detail/types.js +0 -1
- package/dist/components/features/crud-sheet/types.d.ts.map +0 -1
- package/dist/components/features/crud-sheet/types.js +0 -1
- package/dist/components/feedback/notification/index.d.ts +0 -4
- package/dist/components/feedback/notification/index.d.ts.map +0 -1
- package/dist/components/feedback/notification/index.js +0 -4
- package/dist/components/feedback/notification/index.js.map +0 -6
- package/src/components/feedback/notification/index.ts +0 -3
- /package/dist/components/data/sheet/{types.js.map → DataSheet.types.js.map} +0 -0
- /package/dist/components/{features/crud-detail/types.js.map → display/Barcode.types.js.map} +0 -0
- /package/dist/components/features/{crud-sheet/types.js.map → crud-detail/CrudDetail.types.js.map} +0 -0
- /package/src/components/features/crud-detail/{types.ts → CrudDetail.types.ts} +0 -0
|
@@ -75,13 +75,7 @@ export interface SharedDataSelectListProps<TItem> {
|
|
|
75
75
|
|
|
76
76
|
// ─── Component ───────────────────────────────────────────
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
<TItem>(props: SharedDataSelectListProps<TItem>): JSX.Element;
|
|
80
|
-
ItemTemplate: typeof SharedDataSelectListItemTemplate;
|
|
81
|
-
Filter: typeof SharedDataSelectListFilter;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export const SharedDataSelectList: SharedDataSelectListComponent = (<TItem,>(
|
|
78
|
+
const SharedDataSelectListInner = (<TItem,>(
|
|
85
79
|
props: SharedDataSelectListProps<TItem>,
|
|
86
80
|
): JSX.Element => {
|
|
87
81
|
const [local, rest] = splitProps(props, [
|
|
@@ -274,7 +268,9 @@ export const SharedDataSelectList: SharedDataSelectListComponent = (<TItem,>(
|
|
|
274
268
|
</SharedDataSelectListContext.Provider>
|
|
275
269
|
</FilterProvider>
|
|
276
270
|
);
|
|
277
|
-
})
|
|
271
|
+
});
|
|
278
272
|
|
|
279
|
-
SharedDataSelectList
|
|
280
|
-
|
|
273
|
+
export const SharedDataSelectList = Object.assign(SharedDataSelectListInner, {
|
|
274
|
+
ItemTemplate: SharedDataSelectListItemTemplate,
|
|
275
|
+
Filter: SharedDataSelectListFilter,
|
|
276
|
+
});
|
|
@@ -173,7 +173,15 @@ export const NotificationProvider: ParentComponent = (props) => {
|
|
|
173
173
|
logger.error(err.stack ?? err.message);
|
|
174
174
|
return;
|
|
175
175
|
}
|
|
176
|
-
|
|
176
|
+
if (typeof err === "string") {
|
|
177
|
+
danger(header ?? err, header != null ? err : undefined);
|
|
178
|
+
logger.error(err);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
danger(header ?? "Unknown error");
|
|
182
|
+
if (err != null) {
|
|
183
|
+
logger.error(String(err));
|
|
184
|
+
}
|
|
177
185
|
};
|
|
178
186
|
|
|
179
187
|
const update = (
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ParentProps } from "solid-js";
|
|
2
2
|
|
|
3
3
|
// --- Print.Page ---
|
|
4
4
|
|
|
@@ -8,14 +8,10 @@ function PrintPage(props: ParentProps) {
|
|
|
8
8
|
|
|
9
9
|
// --- Print ---
|
|
10
10
|
|
|
11
|
-
interface PrintComponent {
|
|
12
|
-
(props: ParentProps): JSX.Element;
|
|
13
|
-
Page: typeof PrintPage;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
11
|
const PrintInner = (props: ParentProps) => {
|
|
17
12
|
return <>{props.children}</>;
|
|
18
13
|
};
|
|
19
14
|
|
|
20
|
-
export const Print = PrintInner
|
|
21
|
-
|
|
15
|
+
export const Print = Object.assign(PrintInner, {
|
|
16
|
+
Page: PrintPage,
|
|
17
|
+
});
|
|
@@ -247,7 +247,8 @@ export const PrintProvider: ParentComponent = (props) => {
|
|
|
247
247
|
sliceCanvas.width = canvas.width;
|
|
248
248
|
sliceCanvas.height = Math.min(pageHeightPx, canvas.height - i * pageHeightPx);
|
|
249
249
|
|
|
250
|
-
const ctx = sliceCanvas.getContext("2d")
|
|
250
|
+
const ctx = sliceCanvas.getContext("2d");
|
|
251
|
+
if (!ctx) throw new Error("Failed to get 2D canvas context");
|
|
251
252
|
ctx.drawImage(
|
|
252
253
|
canvas,
|
|
253
254
|
0,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { children, createEffect, createSignal, onCleanup, type ParentComponent } from "solid-js";
|
|
1
|
+
import { children, createEffect, createMemo, createSignal, onCleanup, type ParentComponent } from "solid-js";
|
|
2
2
|
import clsx from "clsx";
|
|
3
3
|
import "@simplysm/core-browser";
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@ export interface InvalidProps {
|
|
|
8
8
|
/** Visual indicator variant */
|
|
9
9
|
variant?: "border" | "dot";
|
|
10
10
|
/** When true, visual display only appears after target loses focus */
|
|
11
|
-
|
|
11
|
+
lazyValidation?: boolean;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export const Invalid: ParentComponent<InvalidProps> = (props) => {
|
|
@@ -27,7 +27,11 @@ export const Invalid: ParentComponent<InvalidProps> = (props) => {
|
|
|
27
27
|
|
|
28
28
|
const resolved = children(() => props.children);
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
const targetEl = createMemo(() =>
|
|
31
|
+
resolved.toArray().find((el): el is HTMLElement => el instanceof HTMLElement),
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
// Reactively update setCustomValidity when message changes (always, regardless of lazyValidation)
|
|
31
35
|
createEffect(() => {
|
|
32
36
|
const msg = props.message ?? "";
|
|
33
37
|
hiddenInputEl.setCustomValidity(msg);
|
|
@@ -35,19 +39,19 @@ export const Invalid: ParentComponent<InvalidProps> = (props) => {
|
|
|
35
39
|
|
|
36
40
|
// Set target to relative + insert hidden input inside target
|
|
37
41
|
createEffect(() => {
|
|
38
|
-
const
|
|
39
|
-
if (!
|
|
42
|
+
const el = targetEl();
|
|
43
|
+
if (!el) return;
|
|
40
44
|
|
|
41
|
-
const computedPosition = getComputedStyle(
|
|
45
|
+
const computedPosition = getComputedStyle(el).position;
|
|
42
46
|
if (computedPosition === "static") {
|
|
43
|
-
|
|
47
|
+
el.style.position = "relative";
|
|
44
48
|
}
|
|
45
49
|
|
|
46
|
-
|
|
50
|
+
el.appendChild(hiddenInputEl);
|
|
47
51
|
|
|
48
52
|
onCleanup(() => {
|
|
49
|
-
if (hiddenInputEl.parentElement ===
|
|
50
|
-
|
|
53
|
+
if (hiddenInputEl.parentElement === el) {
|
|
54
|
+
el.removeChild(hiddenInputEl);
|
|
51
55
|
}
|
|
52
56
|
});
|
|
53
57
|
});
|
|
@@ -56,28 +60,28 @@ export const Invalid: ParentComponent<InvalidProps> = (props) => {
|
|
|
56
60
|
createEffect(() => {
|
|
57
61
|
const variant = props.variant ?? "dot";
|
|
58
62
|
const message = props.message ?? "";
|
|
59
|
-
const
|
|
63
|
+
const lazyValidation = props.lazyValidation ?? false;
|
|
60
64
|
const isTouched = touched();
|
|
61
65
|
|
|
62
|
-
const
|
|
66
|
+
const el = targetEl();
|
|
63
67
|
|
|
64
|
-
if (!
|
|
68
|
+
if (!el) return;
|
|
65
69
|
|
|
66
|
-
const shouldShow = message !== "" && (!
|
|
70
|
+
const shouldShow = message !== "" && (!lazyValidation || isTouched);
|
|
67
71
|
|
|
68
72
|
if (variant === "border") {
|
|
69
73
|
if (shouldShow) {
|
|
70
|
-
|
|
74
|
+
el.classList.add("border-danger-500");
|
|
71
75
|
} else {
|
|
72
|
-
|
|
76
|
+
el.classList.remove("border-danger-500");
|
|
73
77
|
}
|
|
74
78
|
|
|
75
79
|
onCleanup(() => {
|
|
76
|
-
|
|
80
|
+
el.classList.remove("border-danger-500");
|
|
77
81
|
});
|
|
78
82
|
} else {
|
|
79
83
|
// variant === "dot"
|
|
80
|
-
const existingDot =
|
|
84
|
+
const existingDot = el.querySelector("[data-invalid-dot]");
|
|
81
85
|
if (existingDot) {
|
|
82
86
|
existingDot.remove();
|
|
83
87
|
}
|
|
@@ -90,11 +94,11 @@ export const Invalid: ParentComponent<InvalidProps> = (props) => {
|
|
|
90
94
|
"size-1.5 rounded-full",
|
|
91
95
|
"pointer-events-none bg-danger-500",
|
|
92
96
|
);
|
|
93
|
-
|
|
97
|
+
el.appendChild(dot);
|
|
94
98
|
}
|
|
95
99
|
|
|
96
100
|
onCleanup(() => {
|
|
97
|
-
const dot =
|
|
101
|
+
const dot = el.querySelector("[data-invalid-dot]");
|
|
98
102
|
if (dot) {
|
|
99
103
|
dot.remove();
|
|
100
104
|
}
|
|
@@ -102,32 +106,32 @@ export const Invalid: ParentComponent<InvalidProps> = (props) => {
|
|
|
102
106
|
}
|
|
103
107
|
});
|
|
104
108
|
|
|
105
|
-
//
|
|
109
|
+
// lazyValidation: register focusout event on target to track touched state
|
|
106
110
|
createEffect(() => {
|
|
107
|
-
if (!(props.
|
|
111
|
+
if (!(props.lazyValidation ?? false)) return;
|
|
108
112
|
|
|
109
|
-
const
|
|
113
|
+
const el = targetEl();
|
|
110
114
|
|
|
111
|
-
if (!
|
|
115
|
+
if (!el) return;
|
|
112
116
|
|
|
113
117
|
const handleFocusOut = () => {
|
|
114
118
|
setTouched(true);
|
|
115
119
|
};
|
|
116
120
|
|
|
117
|
-
|
|
121
|
+
el.addEventListener("focusout", handleFocusOut);
|
|
118
122
|
|
|
119
123
|
onCleanup(() => {
|
|
120
|
-
|
|
124
|
+
el.removeEventListener("focusout", handleFocusOut);
|
|
121
125
|
});
|
|
122
126
|
});
|
|
123
127
|
|
|
124
128
|
// Redirect hidden input focus to focusable child of target
|
|
125
129
|
hiddenInputEl.addEventListener("focus", () => {
|
|
126
|
-
const
|
|
130
|
+
const el = targetEl();
|
|
127
131
|
|
|
128
|
-
if (
|
|
132
|
+
if (el) {
|
|
129
133
|
const focusable =
|
|
130
|
-
|
|
134
|
+
el.findFirstFocusableChild() ?? (el.tabIndex >= 0 ? el : undefined);
|
|
131
135
|
if (focusable && focusable !== hiddenInputEl) {
|
|
132
136
|
focusable.focus();
|
|
133
137
|
}
|
|
@@ -24,7 +24,7 @@ interface CheckboxGroupProps<TValue> {
|
|
|
24
24
|
inset?: boolean;
|
|
25
25
|
required?: boolean;
|
|
26
26
|
validate?: (value: TValue[]) => string | undefined;
|
|
27
|
-
|
|
27
|
+
lazyValidation?: boolean;
|
|
28
28
|
class?: string;
|
|
29
29
|
style?: JSX.CSSProperties;
|
|
30
30
|
children?: JSX.Element;
|
|
@@ -61,7 +61,7 @@ function CheckboxGroupInner<TValue = unknown>(props: CheckboxGroupProps<TValue>)
|
|
|
61
61
|
isEmpty={(v) => (v as unknown[]).length === 0}
|
|
62
62
|
validate={props.validate as ((value: any) => string | undefined) | undefined}
|
|
63
63
|
required={props.required}
|
|
64
|
-
|
|
64
|
+
lazyValidation={props.lazyValidation}
|
|
65
65
|
class={props.class}
|
|
66
66
|
style={props.style}
|
|
67
67
|
>
|
|
@@ -98,15 +98,6 @@ function CheckboxGroupItem<TValue = unknown>(props: {
|
|
|
98
98
|
);
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
interface CheckboxGroupComponent {
|
|
102
|
-
<TValue = unknown>(props: CheckboxGroupProps<TValue>): JSX.Element;
|
|
103
|
-
Item: <TValue = unknown>(props: {
|
|
104
|
-
value: TValue;
|
|
105
|
-
disabled?: boolean;
|
|
106
|
-
children?: JSX.Element;
|
|
107
|
-
}) => JSX.Element;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
101
|
export const CheckboxGroup = Object.assign(CheckboxGroupInner, {
|
|
111
102
|
Item: CheckboxGroupItem,
|
|
112
|
-
})
|
|
103
|
+
});
|
|
@@ -24,7 +24,7 @@ interface RadioGroupProps<TValue> {
|
|
|
24
24
|
inset?: boolean;
|
|
25
25
|
required?: boolean;
|
|
26
26
|
validate?: (value: TValue | undefined) => string | undefined;
|
|
27
|
-
|
|
27
|
+
lazyValidation?: boolean;
|
|
28
28
|
class?: string;
|
|
29
29
|
style?: JSX.CSSProperties;
|
|
30
30
|
children?: JSX.Element;
|
|
@@ -58,7 +58,7 @@ function RadioGroupInner<TValue = unknown>(props: RadioGroupProps<TValue>): JSX.
|
|
|
58
58
|
isEmpty={(v) => v === undefined || v === null}
|
|
59
59
|
validate={props.validate as ((value: any) => string | undefined) | undefined}
|
|
60
60
|
required={props.required}
|
|
61
|
-
|
|
61
|
+
lazyValidation={props.lazyValidation}
|
|
62
62
|
class={props.class}
|
|
63
63
|
style={props.style}
|
|
64
64
|
>
|
|
@@ -95,15 +95,6 @@ function RadioGroupItem<TValue = unknown>(props: {
|
|
|
95
95
|
);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
interface RadioGroupComponent {
|
|
99
|
-
<TValue = unknown>(props: RadioGroupProps<TValue>): JSX.Element;
|
|
100
|
-
Item: <TValue = unknown>(props: {
|
|
101
|
-
value: TValue;
|
|
102
|
-
disabled?: boolean;
|
|
103
|
-
children?: JSX.Element;
|
|
104
|
-
}) => JSX.Element;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
98
|
export const RadioGroup = Object.assign(RadioGroupInner, {
|
|
108
99
|
Item: RadioGroupItem,
|
|
109
|
-
})
|
|
100
|
+
});
|
|
@@ -27,7 +27,7 @@ export interface SelectableBaseProps {
|
|
|
27
27
|
inline?: boolean;
|
|
28
28
|
required?: boolean;
|
|
29
29
|
validate?: (value: boolean) => string | undefined;
|
|
30
|
-
|
|
30
|
+
lazyValidation?: boolean;
|
|
31
31
|
class?: string;
|
|
32
32
|
style?: JSX.CSSProperties;
|
|
33
33
|
children?: JSX.Element;
|
|
@@ -50,7 +50,7 @@ export const SelectableBase: ParentComponent<SelectableBaseProps & { config: Sel
|
|
|
50
50
|
"inline",
|
|
51
51
|
"required",
|
|
52
52
|
"validate",
|
|
53
|
-
"
|
|
53
|
+
"lazyValidation",
|
|
54
54
|
"class",
|
|
55
55
|
"style",
|
|
56
56
|
"children",
|
|
@@ -97,7 +97,7 @@ export const SelectableBase: ParentComponent<SelectableBaseProps & { config: Sel
|
|
|
97
97
|
});
|
|
98
98
|
|
|
99
99
|
return (
|
|
100
|
-
<Invalid message={errorMsg()} variant="border"
|
|
100
|
+
<Invalid message={errorMsg()} variant="border" lazyValidation={local.lazyValidation}>
|
|
101
101
|
<div
|
|
102
102
|
{...rest}
|
|
103
103
|
use:ripple={!local.disabled}
|
|
@@ -10,7 +10,7 @@ import { useI18n } from "../../../providers/i18n/I18nProvider";
|
|
|
10
10
|
|
|
11
11
|
export interface SelectionGroupBaseProps {
|
|
12
12
|
required?: boolean;
|
|
13
|
-
|
|
13
|
+
lazyValidation?: boolean;
|
|
14
14
|
class?: string;
|
|
15
15
|
style?: JSX.CSSProperties;
|
|
16
16
|
children?: JSX.Element;
|
|
@@ -34,7 +34,7 @@ export function SelectionGroupBase<TContextValue>(props: SelectionGroupBaseProps
|
|
|
34
34
|
"isEmpty",
|
|
35
35
|
"validate",
|
|
36
36
|
"required",
|
|
37
|
-
"
|
|
37
|
+
"lazyValidation",
|
|
38
38
|
"class",
|
|
39
39
|
"style",
|
|
40
40
|
"children",
|
|
@@ -46,7 +46,7 @@ export function SelectionGroupBase<TContextValue>(props: SelectionGroupBaseProps
|
|
|
46
46
|
});
|
|
47
47
|
|
|
48
48
|
return (
|
|
49
|
-
<Invalid message={errorMsg()} variant="dot"
|
|
49
|
+
<Invalid message={errorMsg()} variant="dot" lazyValidation={local.lazyValidation}>
|
|
50
50
|
<local.context.Provider value={local.contextValue}>
|
|
51
51
|
<div {...rest} class={twMerge("inline-flex", local.class)} style={local.style}>
|
|
52
52
|
{local.children}
|
|
@@ -40,8 +40,8 @@ export interface ColorPickerProps {
|
|
|
40
40
|
/** Custom validation function */
|
|
41
41
|
validate?: (value: string | undefined) => string | undefined;
|
|
42
42
|
|
|
43
|
-
/**
|
|
44
|
-
|
|
43
|
+
/** lazyValidation: show errors only after blur */
|
|
44
|
+
lazyValidation?: boolean;
|
|
45
45
|
|
|
46
46
|
/** Custom class */
|
|
47
47
|
class?: string;
|
|
@@ -68,7 +68,7 @@ export const ColorPicker: Component<ColorPickerProps> = (props) => {
|
|
|
68
68
|
"inset",
|
|
69
69
|
"required",
|
|
70
70
|
"validate",
|
|
71
|
-
"
|
|
71
|
+
"lazyValidation",
|
|
72
72
|
"class",
|
|
73
73
|
"style",
|
|
74
74
|
]);
|
|
@@ -104,7 +104,7 @@ export const ColorPicker: Component<ColorPickerProps> = (props) => {
|
|
|
104
104
|
<Invalid
|
|
105
105
|
variant={local.inset ? "dot" : "border"}
|
|
106
106
|
message={errorMsg()}
|
|
107
|
-
|
|
107
|
+
lazyValidation={local.lazyValidation}
|
|
108
108
|
>
|
|
109
109
|
<input
|
|
110
110
|
{...rest}
|
|
@@ -91,12 +91,12 @@ export interface ComboboxItemProps<TValue = unknown> extends Omit<
|
|
|
91
91
|
/**
|
|
92
92
|
* Selectable item in Combobox dropdown
|
|
93
93
|
*/
|
|
94
|
-
const ComboboxItem: ParentComponent<ComboboxItemProps> = <
|
|
95
|
-
props: ComboboxItemProps<
|
|
94
|
+
const ComboboxItem: ParentComponent<ComboboxItemProps> = <TValue,>(
|
|
95
|
+
props: ComboboxItemProps<TValue> & { children?: JSX.Element },
|
|
96
96
|
) => {
|
|
97
97
|
const [local, rest] = splitProps(props, ["children", "class", "value", "disabled"]);
|
|
98
98
|
|
|
99
|
-
const context = useComboboxContext<
|
|
99
|
+
const context = useComboboxContext<TValue>();
|
|
100
100
|
|
|
101
101
|
const isSelected = () => context.isSelected(local.value);
|
|
102
102
|
const useRipple = () => !local.disabled;
|
|
@@ -168,8 +168,8 @@ export interface ComboboxProps<TValue = unknown> {
|
|
|
168
168
|
/** Custom validation function */
|
|
169
169
|
validate?: (value: TValue | undefined) => string | undefined;
|
|
170
170
|
|
|
171
|
-
/**
|
|
172
|
-
|
|
171
|
+
/** lazyValidation: show errors only after blur */
|
|
172
|
+
lazyValidation?: boolean;
|
|
173
173
|
|
|
174
174
|
/** Placeholder text */
|
|
175
175
|
placeholder?: string;
|
|
@@ -220,8 +220,8 @@ export interface ComboboxProps<TValue = unknown> {
|
|
|
220
220
|
* </Combobox>
|
|
221
221
|
* ```
|
|
222
222
|
*/
|
|
223
|
-
const ComboboxInner = <
|
|
224
|
-
const [local, rest] = splitProps(props as ComboboxProps<
|
|
223
|
+
const ComboboxInner = <TValue,>(props: ComboboxProps<TValue>) => {
|
|
224
|
+
const [local, rest] = splitProps(props as ComboboxProps<TValue> & { children?: JSX.Element }, [
|
|
225
225
|
"children",
|
|
226
226
|
"class",
|
|
227
227
|
"style",
|
|
@@ -238,7 +238,7 @@ const ComboboxInner = <T,>(props: ComboboxProps<T>) => {
|
|
|
238
238
|
"size",
|
|
239
239
|
"inset",
|
|
240
240
|
"validate",
|
|
241
|
-
"
|
|
241
|
+
"lazyValidation",
|
|
242
242
|
]);
|
|
243
243
|
|
|
244
244
|
const i18n = useI18n();
|
|
@@ -246,14 +246,14 @@ const ComboboxInner = <T,>(props: ComboboxProps<T>) => {
|
|
|
246
246
|
// State
|
|
247
247
|
const [open, setOpen] = createSignal(false);
|
|
248
248
|
const [query, setQuery] = createSignal("");
|
|
249
|
-
const [items, setItems] = createSignal<
|
|
249
|
+
const [items, setItems] = createSignal<TValue[]>([]);
|
|
250
250
|
const [busyCount, setBusyCount] = createSignal(0);
|
|
251
251
|
|
|
252
252
|
// Selected value management (controlled/uncontrolled pattern)
|
|
253
|
-
const [getValue, setInternalValue] = createControllableSignal<
|
|
253
|
+
const [getValue, setInternalValue] = createControllableSignal<TValue | undefined>({
|
|
254
254
|
value: () => local.value,
|
|
255
255
|
onChange: () => local.onValueChange,
|
|
256
|
-
} as Parameters<typeof createControllableSignal<
|
|
256
|
+
} as Parameters<typeof createControllableSignal<TValue | undefined>>[0]);
|
|
257
257
|
|
|
258
258
|
// Debounce queue (created once on mount, debounceMs only used as initial value)
|
|
259
259
|
const debounceQueue = new DebounceQueue(local.debounceMs ?? 300);
|
|
@@ -263,13 +263,13 @@ const ComboboxInner = <T,>(props: ComboboxProps<T>) => {
|
|
|
263
263
|
});
|
|
264
264
|
|
|
265
265
|
// Check if value is selected
|
|
266
|
-
const isSelected = (value:
|
|
266
|
+
const isSelected = (value: TValue): boolean => {
|
|
267
267
|
const current = getValue();
|
|
268
268
|
return current === value;
|
|
269
269
|
};
|
|
270
270
|
|
|
271
271
|
// Select value
|
|
272
|
-
const selectValue = (value:
|
|
272
|
+
const selectValue = (value: TValue) => {
|
|
273
273
|
setInternalValue(value as any);
|
|
274
274
|
setQuery("");
|
|
275
275
|
setOpen(false);
|
|
@@ -288,7 +288,7 @@ const ComboboxInner = <T,>(props: ComboboxProps<T>) => {
|
|
|
288
288
|
_setItemTemplate(() => fn);
|
|
289
289
|
|
|
290
290
|
// Context value
|
|
291
|
-
const contextValue: ComboboxContextValue<
|
|
291
|
+
const contextValue: ComboboxContextValue<TValue> = {
|
|
292
292
|
isSelected,
|
|
293
293
|
selectValue,
|
|
294
294
|
closeDropdown,
|
|
@@ -343,8 +343,13 @@ const ComboboxInner = <T,>(props: ComboboxProps<T>) => {
|
|
|
343
343
|
setOpen(false);
|
|
344
344
|
} else if (e.key === "Enter" && local.allowsCustomValue && query().trim() !== "") {
|
|
345
345
|
e.preventDefault();
|
|
346
|
-
|
|
347
|
-
|
|
346
|
+
if (local.parseCustomValue) {
|
|
347
|
+
selectValue(local.parseCustomValue(query()));
|
|
348
|
+
} else {
|
|
349
|
+
setInternalValue(undefined as any);
|
|
350
|
+
setQuery("");
|
|
351
|
+
setOpen(false);
|
|
352
|
+
}
|
|
348
353
|
}
|
|
349
354
|
};
|
|
350
355
|
|
|
@@ -399,7 +404,7 @@ const ComboboxInner = <T,>(props: ComboboxProps<T>) => {
|
|
|
399
404
|
|
|
400
405
|
// Render items
|
|
401
406
|
const renderItems = (): JSX.Element => {
|
|
402
|
-
const template = itemTemplate() as ((item:
|
|
407
|
+
const template = itemTemplate() as ((item: TValue, index: number) => JSX.Element) | undefined;
|
|
403
408
|
|
|
404
409
|
// Loading
|
|
405
410
|
if (busyCount() > 0) {
|
|
@@ -427,7 +432,7 @@ const ComboboxInner = <T,>(props: ComboboxProps<T>) => {
|
|
|
427
432
|
};
|
|
428
433
|
|
|
429
434
|
return (
|
|
430
|
-
<Invalid message={errorMsg()} variant="border"
|
|
435
|
+
<Invalid message={errorMsg()} variant="border" lazyValidation={local.lazyValidation}>
|
|
431
436
|
<ComboboxContext.Provider value={contextValue as ComboboxContextValue}>
|
|
432
437
|
<div {...rest} data-combobox class={local.inset ? "flex" : "inline-flex"}>
|
|
433
438
|
<Dropdown
|
|
@@ -111,13 +111,13 @@ export const DateRangePicker: Component<DateRangePickerProps> = (props) => {
|
|
|
111
111
|
});
|
|
112
112
|
|
|
113
113
|
// Handle period type change
|
|
114
|
-
const handlePeriodTypeChange = (newType: DateRangePeriodType |
|
|
115
|
-
|
|
116
|
-
setPeriodType(
|
|
114
|
+
const handlePeriodTypeChange = (newType: DateRangePeriodType | undefined) => {
|
|
115
|
+
if (newType == null) return;
|
|
116
|
+
setPeriodType(newType);
|
|
117
117
|
|
|
118
118
|
const currentFrom = from();
|
|
119
119
|
|
|
120
|
-
if (
|
|
120
|
+
if (newType === "month") {
|
|
121
121
|
if (currentFrom) {
|
|
122
122
|
const adjusted = currentFrom.setDay(1);
|
|
123
123
|
setFrom(adjusted);
|
|
@@ -125,7 +125,7 @@ export const DateRangePicker: Component<DateRangePickerProps> = (props) => {
|
|
|
125
125
|
} else {
|
|
126
126
|
setTo(undefined as DateOnly | undefined);
|
|
127
127
|
}
|
|
128
|
-
} else if (
|
|
128
|
+
} else if (newType === "day") {
|
|
129
129
|
setTo(currentFrom);
|
|
130
130
|
}
|
|
131
131
|
};
|