@simplysm/angular 14.0.47 → 14.0.48
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 +468 -0
- package/dist/controls/dropdown/sd-dropdown-popup.d.ts +1 -0
- package/dist/controls/dropdown/sd-dropdown-popup.d.ts.map +1 -1
- package/dist/controls/dropdown/sd-dropdown-popup.js +6 -1
- package/dist/controls/dropdown/sd-dropdown.d.ts.map +1 -1
- package/dist/controls/dropdown/sd-dropdown.js +6 -2
- package/dist/controls/select/sd-select.d.ts.map +1 -1
- package/dist/controls/select/sd-select.js +12 -34
- package/dist/core/routing/injectViewTypeSignal.d.ts +1 -1
- package/dist/core/routing/injectViewTypeSignal.d.ts.map +1 -1
- package/dist/core/routing/injectViewTypeSignal.js +15 -7
- package/dist/core/selection/useSelectionManager.d.ts +1 -0
- package/dist/core/selection/useSelectionManager.d.ts.map +1 -1
- package/dist/core/selection/useSelectionManager.js +54 -14
- package/dist/data/shared-data/sd-shared-data-select-button.d.ts +11 -5
- package/dist/data/shared-data/sd-shared-data-select-button.d.ts.map +1 -1
- package/dist/data/shared-data/sd-shared-data-select-button.js +68 -29
- package/dist/data/sheet/sd-sheet.d.ts +4 -1
- package/dist/data/sheet/sd-sheet.d.ts.map +1 -1
- package/dist/data/sheet/sd-sheet.js +23 -4
- package/dist/index.d.ts +0 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -17
- package/docs/bootstrap.md +38 -0
- package/docs/directives.md +236 -0
- package/docs/features.md +169 -0
- package/docs/pipes.md +32 -0
- package/docs/plugins.md +37 -0
- package/docs/provider-types.md +283 -0
- package/docs/providers.md +379 -0
- package/docs/recipes/crud-detail.md +860 -0
- package/docs/recipes/crud-list.md +779 -0
- package/docs/recipes/data-select-button.md +319 -0
- package/docs/recipes/page-modal-container.md +178 -0
- package/docs/styling.md +222 -0
- package/docs/type-utilities.md +250 -0
- package/docs/ui-data.md +333 -0
- package/docs/ui-form.md +502 -0
- package/docs/ui-layout.md +140 -0
- package/docs/ui-navigation.md +273 -0
- package/docs/ui-overlay.md +157 -0
- package/docs/ui-visual.md +127 -0
- package/docs/utils.md +244 -0
- package/package.json +19 -18
- package/src/controls/dropdown/sd-dropdown-popup.ts +6 -2
- package/src/controls/dropdown/sd-dropdown.ts +3 -4
- package/src/controls/select/sd-select.ts +6 -30
- package/src/core/routing/injectViewTypeSignal.ts +17 -10
- package/src/core/selection/useSelectionManager.ts +62 -12
- package/src/data/shared-data/sd-shared-data-select-button.ts +49 -14
- package/src/data/sheet/sd-sheet.ts +21 -0
- package/src/index.ts +0 -29
- package/dist/core/commons.d.ts +0 -2
- package/dist/core/commons.d.ts.map +0 -1
- package/dist/core/commons.js +0 -4
- package/dist/core/injectParent.d.ts +0 -7
- package/dist/core/injectParent.d.ts.map +0 -1
- package/dist/core/injectParent.js +0 -30
- package/dist/core/selection/setupCumulateSelectedKeys.d.ts +0 -9
- package/dist/core/selection/setupCumulateSelectedKeys.d.ts.map +0 -1
- package/dist/core/selection/setupCumulateSelectedKeys.js +0 -27
- package/dist/core/withBusy.d.ts +0 -3
- package/dist/core/withBusy.d.ts.map +0 -1
- package/dist/core/withBusy.js +0 -9
- package/dist/data/data-detail/sd-data-detail.base.d.ts +0 -51
- package/dist/data/data-detail/sd-data-detail.base.d.ts.map +0 -1
- package/dist/data/data-detail/sd-data-detail.base.js +0 -127
- package/dist/data/data-detail/sd-data-detail.d.ts +0 -30
- package/dist/data/data-detail/sd-data-detail.d.ts.map +0 -1
- package/dist/data/data-detail/sd-data-detail.js +0 -495
- package/dist/data/data-select-button/sd-data-select-button.base.d.ts +0 -24
- package/dist/data/data-select-button/sd-data-select-button.base.d.ts.map +0 -1
- package/dist/data/data-select-button/sd-data-select-button.base.js +0 -68
- package/dist/data/data-select-button/sd-data-select-button.d.ts +0 -15
- package/dist/data/data-select-button/sd-data-select-button.d.ts.map +0 -1
- package/dist/data/data-select-button/sd-data-select-button.js +0 -152
- package/dist/data/data-sheet/injectDataSheetExcelManager.d.ts +0 -14
- package/dist/data/data-sheet/injectDataSheetExcelManager.d.ts.map +0 -1
- package/dist/data/data-sheet/injectDataSheetExcelManager.js +0 -31
- package/dist/data/data-sheet/injectDataSheetInlineEditManager.d.ts +0 -26
- package/dist/data/data-sheet/injectDataSheetInlineEditManager.d.ts.map +0 -1
- package/dist/data/data-sheet/injectDataSheetInlineEditManager.js +0 -54
- package/dist/data/data-sheet/injectDataSheetModalEditManager.d.ts +0 -19
- package/dist/data/data-sheet/injectDataSheetModalEditManager.d.ts.map +0 -1
- package/dist/data/data-sheet/injectDataSheetModalEditManager.js +0 -44
- package/dist/data/data-sheet/injectDataSheetRefreshManager.d.ts +0 -25
- package/dist/data/data-sheet/injectDataSheetRefreshManager.d.ts.map +0 -1
- package/dist/data/data-sheet/injectDataSheetRefreshManager.js +0 -50
- package/dist/data/data-sheet/sd-data-sheet-column.d.ts +0 -8
- package/dist/data/data-sheet/sd-data-sheet-column.d.ts.map +0 -1
- package/dist/data/data-sheet/sd-data-sheet-column.js +0 -15
- package/dist/data/data-sheet/sd-data-sheet.base.d.ts +0 -75
- package/dist/data/data-sheet/sd-data-sheet.base.d.ts.map +0 -1
- package/dist/data/data-sheet/sd-data-sheet.base.js +0 -188
- package/dist/data/data-sheet/sd-data-sheet.d.ts +0 -49
- package/dist/data/data-sheet/sd-data-sheet.d.ts.map +0 -1
- package/dist/data/data-sheet/sd-data-sheet.js +0 -968
- package/dist/data/data-sheet/sd-data-sheet.types.d.ts +0 -17
- package/dist/data/data-sheet/sd-data-sheet.types.d.ts.map +0 -1
- package/dist/data/data-sheet/sd-data-sheet.types.js +0 -1
- package/dist/data/data-sheet/setupCloserWhenSingleSelectionChange.d.ts +0 -9
- package/dist/data/data-sheet/setupCloserWhenSingleSelectionChange.d.ts.map +0 -1
- package/dist/data/data-sheet/setupCloserWhenSingleSelectionChange.js +0 -20
- package/dist/data/data-sheet/useDataSheetFilterManager.d.ts +0 -13
- package/dist/data/data-sheet/useDataSheetFilterManager.d.ts.map +0 -1
- package/dist/data/data-sheet/useDataSheetFilterManager.js +0 -19
- package/dist/layout/base-container/sd-base-container.d.ts +0 -27
- package/dist/layout/base-container/sd-base-container.d.ts.map +0 -1
- package/dist/layout/base-container/sd-base-container.js +0 -193
- package/src/core/commons.ts +0 -4
- package/src/core/injectParent.ts +0 -45
- package/src/core/selection/setupCumulateSelectedKeys.ts +0 -38
- package/src/core/withBusy.ts +0 -13
- package/src/data/data-detail/sd-data-detail.base.ts +0 -187
- package/src/data/data-detail/sd-data-detail.ts +0 -237
- package/src/data/data-select-button/sd-data-select-button.base.ts +0 -104
- package/src/data/data-select-button/sd-data-select-button.ts +0 -105
- package/src/data/data-sheet/injectDataSheetExcelManager.ts +0 -57
- package/src/data/data-sheet/injectDataSheetInlineEditManager.ts +0 -89
- package/src/data/data-sheet/injectDataSheetModalEditManager.ts +0 -76
- package/src/data/data-sheet/injectDataSheetRefreshManager.ts +0 -90
- package/src/data/data-sheet/sd-data-sheet-column.ts +0 -10
- package/src/data/data-sheet/sd-data-sheet.base.ts +0 -294
- package/src/data/data-sheet/sd-data-sheet.ts +0 -479
- package/src/data/data-sheet/sd-data-sheet.types.ts +0 -18
- package/src/data/data-sheet/setupCloserWhenSingleSelectionChange.ts +0 -29
- package/src/data/data-sheet/useDataSheetFilterManager.ts +0 -30
- package/src/layout/base-container/sd-base-container.ts +0 -121
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type Signal } from "@angular/core";
|
|
2
|
-
export declare function injectViewTypeSignal(
|
|
2
|
+
export declare function injectViewTypeSignal(): Signal<SdViewType>;
|
|
3
3
|
export type SdViewType = "page" | "modal" | "control";
|
|
4
4
|
//# sourceMappingURL=injectViewTypeSignal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectViewTypeSignal.d.ts","sourceRoot":"","sources":["../../../src/core/routing/injectViewTypeSignal.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"injectViewTypeSignal.d.ts","sourceRoot":"","sources":["../../../src/core/routing/injectViewTypeSignal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsD,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAMhG,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,UAAU,CAAC,CA+BzD;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC"}
|
|
@@ -1,22 +1,30 @@
|
|
|
1
|
-
import { computed, inject } from "@angular/core";
|
|
1
|
+
import { computed, ElementRef, inject, reflectComponentType } from "@angular/core";
|
|
2
2
|
import { ActivatedRoute } from "@angular/router";
|
|
3
3
|
import { SdActivatedModalProvider } from "../modal/sd-activated-modal.provider";
|
|
4
4
|
import { injectCurrentPageCodeSignal } from "./injectCurrentPageCodeSignal";
|
|
5
5
|
import { injectFullPageCodeSignal } from "./injectFullPageCodeSignal";
|
|
6
|
-
export function injectViewTypeSignal(
|
|
6
|
+
export function injectViewTypeSignal() {
|
|
7
7
|
const sdActivatedModal = inject(SdActivatedModalProvider, { optional: true });
|
|
8
8
|
const activatedRoute = inject(ActivatedRoute, { optional: true });
|
|
9
|
+
const elRef = inject(ElementRef);
|
|
9
10
|
const fullPageCode = injectFullPageCodeSignal();
|
|
10
11
|
const currPageCode = injectCurrentPageCodeSignal();
|
|
11
12
|
return computed(() => {
|
|
12
13
|
if (sdActivatedModal != null) {
|
|
13
14
|
return "modal";
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
if (activatedRoute) {
|
|
17
|
+
const component = activatedRoute.component;
|
|
18
|
+
if (component == null || typeof component === "string") {
|
|
19
|
+
return "control";
|
|
20
|
+
}
|
|
21
|
+
if (reflectComponentType(component)?.selector !==
|
|
22
|
+
elRef.nativeElement.tagName.toLowerCase()) {
|
|
23
|
+
return "control";
|
|
24
|
+
}
|
|
25
|
+
if (fullPageCode() === currPageCode?.()) {
|
|
26
|
+
return "page";
|
|
27
|
+
}
|
|
20
28
|
}
|
|
21
29
|
return "control";
|
|
22
30
|
});
|
|
@@ -4,6 +4,7 @@ export declare function useSelectionManager<T>(options: {
|
|
|
4
4
|
selectedItems: WritableSignal<T[]>;
|
|
5
5
|
selectMode: Signal<"single" | "multi" | undefined>;
|
|
6
6
|
getItemSelectableFn: Signal<((item: T) => boolean | string) | undefined>;
|
|
7
|
+
trackByFn: Signal<(item: T, index: number) => unknown>;
|
|
7
8
|
}): {
|
|
8
9
|
hasSelectable: Signal<boolean>;
|
|
9
10
|
isAllSelected: Signal<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectionManager.d.ts","sourceRoot":"","sources":["../../../src/core/selection/useSelectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"useSelectionManager.d.ts","sourceRoot":"","sources":["../../../src/core/selection/useSelectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAG3E,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE;IAC9C,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1B,aAAa,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IACnD,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;IACzE,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;CACxD,GAAG;IACF,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,aAAa,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAClD,cAAc,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACtB,SAAS,IAAI,IAAI,CAAC;IAClB,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;CAC9B,CAwIA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { computed } from "@angular/core";
|
|
2
|
+
import { obj } from "@simplysm/core-common";
|
|
2
3
|
export function useSelectionManager(options) {
|
|
3
4
|
const selectableItems = computed(() => {
|
|
4
5
|
const fn = options.getItemSelectableFn();
|
|
@@ -9,13 +10,34 @@ export function useSelectionManager(options) {
|
|
|
9
10
|
const hasSelectable = computed(() => {
|
|
10
11
|
return options.selectMode() != null;
|
|
11
12
|
}, ...(ngDevMode ? [{ debugName: "hasSelectable" }] : /* istanbul ignore next */ []));
|
|
12
|
-
const
|
|
13
|
+
const displayItemIndexMap = computed(() => {
|
|
14
|
+
const map = new Map();
|
|
15
|
+
options.displayItems().forEach((it, i) => map.set(it, i));
|
|
16
|
+
return map;
|
|
17
|
+
}, ...(ngDevMode ? [{ debugName: "displayItemIndexMap" }] : /* istanbul ignore next */ []));
|
|
18
|
+
const selectedKeys = computed(() => {
|
|
19
|
+
const fn = options.trackByFn();
|
|
20
|
+
return options.selectedItems().map((it, i) => fn(it, i));
|
|
21
|
+
}, ...(ngDevMode ? [{ debugName: "selectedKeys" }] : /* istanbul ignore next */ []));
|
|
22
|
+
function isKeyEqual(a, b) {
|
|
23
|
+
if (a === b)
|
|
24
|
+
return true;
|
|
25
|
+
return obj.equal(a, b);
|
|
26
|
+
}
|
|
27
|
+
function keyOf(item) {
|
|
28
|
+
const idx = displayItemIndexMap().get(item);
|
|
29
|
+
return options.trackByFn()(item, idx ?? 0);
|
|
30
|
+
}
|
|
13
31
|
const isAllSelected = computed(() => {
|
|
14
32
|
const items = selectableItems();
|
|
15
33
|
if (items.length === 0)
|
|
16
34
|
return false;
|
|
17
|
-
const
|
|
18
|
-
|
|
35
|
+
const keys = selectedKeys();
|
|
36
|
+
const fn = options.trackByFn();
|
|
37
|
+
return items.every((it, i) => {
|
|
38
|
+
const key = fn(it, i);
|
|
39
|
+
return keys.some((k) => isKeyEqual(k, key));
|
|
40
|
+
});
|
|
19
41
|
}, ...(ngDevMode ? [{ debugName: "isAllSelected" }] : /* istanbul ignore next */ []));
|
|
20
42
|
function getSelectable(item) {
|
|
21
43
|
const mode = options.selectMode();
|
|
@@ -45,17 +67,20 @@ export function useSelectionManager(options) {
|
|
|
45
67
|
return;
|
|
46
68
|
if (mode === "single") {
|
|
47
69
|
options.selectedItems.set([item]);
|
|
70
|
+
return;
|
|
48
71
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return
|
|
54
|
-
|
|
55
|
-
}
|
|
72
|
+
const key = keyOf(item);
|
|
73
|
+
const fn = options.trackByFn();
|
|
74
|
+
options.selectedItems.update((arr) => {
|
|
75
|
+
if (arr.some((it, i) => isKeyEqual(fn(it, i), key)))
|
|
76
|
+
return arr;
|
|
77
|
+
return [...arr, item];
|
|
78
|
+
});
|
|
56
79
|
}
|
|
57
80
|
function deselect(item) {
|
|
58
|
-
|
|
81
|
+
const key = keyOf(item);
|
|
82
|
+
const fn = options.trackByFn();
|
|
83
|
+
options.selectedItems.update((arr) => arr.filter((it, i) => !isKeyEqual(fn(it, i), key)));
|
|
59
84
|
}
|
|
60
85
|
function toggle(item) {
|
|
61
86
|
if (isSelected(item)) {
|
|
@@ -66,15 +91,30 @@ export function useSelectionManager(options) {
|
|
|
66
91
|
}
|
|
67
92
|
}
|
|
68
93
|
function toggleAll() {
|
|
94
|
+
const selectable = selectableItems();
|
|
95
|
+
const fn = options.trackByFn();
|
|
96
|
+
const idxMap = displayItemIndexMap();
|
|
69
97
|
if (isAllSelected()) {
|
|
70
|
-
|
|
98
|
+
const keysToRemove = selectable.map((it) => fn(it, idxMap.get(it) ?? 0));
|
|
99
|
+
options.selectedItems.update((arr) => arr.filter((it, i) => {
|
|
100
|
+
const k = fn(it, i);
|
|
101
|
+
return !keysToRemove.some((rk) => isKeyEqual(rk, k));
|
|
102
|
+
}));
|
|
71
103
|
}
|
|
72
104
|
else {
|
|
73
|
-
options.selectedItems.
|
|
105
|
+
options.selectedItems.update((arr) => {
|
|
106
|
+
const existingKeys = arr.map((it, i) => fn(it, i));
|
|
107
|
+
const toAdd = selectable.filter((it) => {
|
|
108
|
+
const k = fn(it, idxMap.get(it) ?? 0);
|
|
109
|
+
return !existingKeys.some((ek) => isKeyEqual(ek, k));
|
|
110
|
+
});
|
|
111
|
+
return [...arr, ...toAdd];
|
|
112
|
+
});
|
|
74
113
|
}
|
|
75
114
|
}
|
|
76
115
|
function isSelected(item) {
|
|
77
|
-
|
|
116
|
+
const key = keyOf(item);
|
|
117
|
+
return selectedKeys().some((k) => isKeyEqual(k, key));
|
|
78
118
|
}
|
|
79
119
|
return {
|
|
80
120
|
hasSelectable,
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import { TemplateRef } from "@angular/core";
|
|
2
2
|
import type { SharedDataBase } from "../../core/shared-data/sd-shared-data.provider";
|
|
3
3
|
import { type SdItemOfTemplateContext } from "../../core/template/sd-item-of-template";
|
|
4
|
-
import {
|
|
5
|
-
import type { SdSelectModal, SdSelectModalInfo } from "../../controls/button/sd-modal-select-button";
|
|
4
|
+
import { type SdSelectModal, type SdSelectModalInfo } from "../../controls/button/sd-modal-select-button";
|
|
6
5
|
import type { SelectModeValue } from "../../controls/select/sd-select";
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class SdSharedDataSelectButton<TItem extends SharedDataBase<string | number>, TMode extends keyof SelectModeValue<string | number>, TModal extends SdSelectModal<any>>
|
|
7
|
+
export declare class SdSharedDataSelectButton<TItem extends SharedDataBase<string | number>, TMode extends keyof SelectModeValue<string | number>, TModal extends SdSelectModal<any>> {
|
|
8
|
+
value: import("@angular/core").ModelSignal<SelectModeValue<string | number>[TMode] | undefined>;
|
|
9
9
|
items: import("@angular/core").InputSignal<TItem[]>;
|
|
10
10
|
modal: import("@angular/core").InputSignal<SdSelectModalInfo<TModal>>;
|
|
11
|
+
selectMode: import("@angular/core").InputSignal<TMode>;
|
|
12
|
+
disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
13
|
+
required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
14
|
+
inset: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
15
|
+
size: import("@angular/core").InputSignal<"sm" | "lg" | undefined>;
|
|
11
16
|
itemTplRef: import("@angular/core").Signal<TemplateRef<SdItemOfTemplateContext<TItem>>>;
|
|
12
|
-
|
|
17
|
+
protected readonly _selectedItems: import("@angular/core").WritableSignal<TItem[]>;
|
|
18
|
+
constructor();
|
|
13
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdSharedDataSelectButton<any, any, any>, never>;
|
|
14
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdSharedDataSelectButton<any, any, any>, "sd-shared-data-select-button", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": true; "isSignal": true; }; }
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdSharedDataSelectButton<any, any, any>, "sd-shared-data-select-button", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": true; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "inset": { "alias": "inset"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, ["itemTplRef"], never, true, never>;
|
|
15
21
|
}
|
|
16
22
|
//# sourceMappingURL=sd-shared-data-select-button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-shared-data-select-button.d.ts","sourceRoot":"","sources":["../../../src/data/shared-data/sd-shared-data-select-button.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"sd-shared-data-select-button.d.ts","sourceRoot":"","sources":["../../../src/data/shared-data/sd-shared-data-select-button.ts"],"names":[],"mappings":"AACA,OAAO,EASL,WAAW,EAEZ,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,8CAA8C,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;;AAEvE,qBAkCa,wBAAwB,CACnC,KAAK,SAAS,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,EAC7C,KAAK,SAAS,MAAM,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,EACpD,MAAM,SAAS,aAAa,CAAC,GAAG,CAAC;IAEjC,KAAK,2FAAoD;IACzD,KAAK,+CAAsB;IAC3B,KAAK,iEAA+C;IACpD,UAAU,6CAAmC;IAC7C,QAAQ,qEAAiD;IACzD,QAAQ,qEAAiD;IACzD,KAAK,qEAAiD;IACtD,IAAI,+DAAwB;IAE5B,UAAU,8EAGR;IAEF,SAAS,CAAC,QAAQ,CAAC,cAAc,kDAAuB;;yCAnB7C,wBAAwB;2CAAxB,wBAAwB;CAqCpC"}
|
|
@@ -1,42 +1,70 @@
|
|
|
1
1
|
import { NgTemplateOutlet } from "@angular/common";
|
|
2
|
-
import { ChangeDetectionStrategy, Component, contentChild, input, TemplateRef, ViewEncapsulation, } from "@angular/core";
|
|
2
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, contentChild, effect, input, model, signal, TemplateRef, ViewEncapsulation, } from "@angular/core";
|
|
3
3
|
import { SdItemOfTemplate, } from "../../core/template/sd-item-of-template";
|
|
4
|
-
import {
|
|
5
|
-
import { SdDataSelectButtonBase } from "../data-select-button/sd-data-select-button.base";
|
|
4
|
+
import { SdModalSelectButton, } from "../../controls/button/sd-modal-select-button";
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
|
-
const _c0 =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
i0.ɵɵ
|
|
6
|
+
const _c0 = (a0, a1, a2) => ({ $implicit: a0, item: a1, index: a2, depth: 0 });
|
|
7
|
+
function SdSharedDataSelectButton_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
8
|
+
i0.ɵɵelementStart(0, "span");
|
|
9
|
+
i0.ɵɵtext(1, ",\u00A0");
|
|
10
|
+
i0.ɵɵelementEnd();
|
|
11
|
+
} }
|
|
12
|
+
function SdSharedDataSelectButton_For_2_ng_template_1_Template(rf, ctx) { }
|
|
13
|
+
function SdSharedDataSelectButton_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
+
i0.ɵɵconditionalCreate(0, SdSharedDataSelectButton_For_2_Conditional_0_Template, 2, 0, "span");
|
|
15
|
+
i0.ɵɵtemplate(1, SdSharedDataSelectButton_For_2_ng_template_1_Template, 0, 0, "ng-template", 1);
|
|
12
16
|
} if (rf & 2) {
|
|
13
17
|
const item_r1 = ctx.$implicit;
|
|
14
|
-
const
|
|
18
|
+
const ɵ$index_3_r2 = ctx.$index;
|
|
15
19
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
16
|
-
i0.ɵɵ
|
|
20
|
+
i0.ɵɵconditional(ɵ$index_3_r2 !== 0 ? 0 : -1);
|
|
21
|
+
i0.ɵɵadvance();
|
|
22
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.itemTplRef())("ngTemplateOutletContext", i0.ɵɵpureFunction3(3, _c0, item_r1, item_r1, ɵ$index_3_r2));
|
|
17
23
|
} }
|
|
18
|
-
export class SdSharedDataSelectButton
|
|
24
|
+
export class SdSharedDataSelectButton {
|
|
25
|
+
value = model(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
|
|
19
26
|
items = input([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
20
27
|
modal = input.required(...(ngDevMode ? [{ debugName: "modal" }] : /* istanbul ignore next */ []));
|
|
28
|
+
selectMode = input("single", ...(ngDevMode ? [{ debugName: "selectMode" }] : /* istanbul ignore next */ []));
|
|
29
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
30
|
+
required = input(false, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
31
|
+
inset = input(false, { ...(ngDevMode ? { debugName: "inset" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
32
|
+
size = input(...(ngDevMode ? [undefined, { debugName: "size" }] : /* istanbul ignore next */ []));
|
|
21
33
|
itemTplRef = contentChild.required(SdItemOfTemplate, { read: TemplateRef });
|
|
22
|
-
|
|
23
|
-
|
|
34
|
+
_selectedItems = signal([], ...(ngDevMode ? [{ debugName: "_selectedItems" }] : /* istanbul ignore next */ []));
|
|
35
|
+
constructor() {
|
|
36
|
+
effect(() => {
|
|
37
|
+
const v = this.value();
|
|
38
|
+
const items = this.items();
|
|
39
|
+
const mode = this.selectMode();
|
|
40
|
+
if (mode === "multi" && Array.isArray(v) && v.filterExists().length > 0) {
|
|
41
|
+
const keys = v.filterExists();
|
|
42
|
+
this._selectedItems.set(items.filter((it) => keys.includes(it.__valueKey)));
|
|
43
|
+
}
|
|
44
|
+
else if (mode === "single" && !Array.isArray(v) && v != null) {
|
|
45
|
+
this._selectedItems.set(items.filter((it) => it.__valueKey === v));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this._selectedItems.set([]);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
24
51
|
}
|
|
25
|
-
static ɵfac =
|
|
52
|
+
static ɵfac = function SdSharedDataSelectButton_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdSharedDataSelectButton)(); };
|
|
26
53
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdSharedDataSelectButton, selectors: [["sd-shared-data-select-button"]], contentQueries: function SdSharedDataSelectButton_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
27
54
|
i0.ɵɵcontentQuerySignal(dirIndex, ctx.itemTplRef, SdItemOfTemplate, 5, TemplateRef);
|
|
28
55
|
} if (rf & 2) {
|
|
29
56
|
i0.ɵɵqueryAdvance();
|
|
30
|
-
} }, inputs: { items: [1, "items"], modal: [1, "modal"]
|
|
31
|
-
i0.ɵɵ
|
|
32
|
-
i0.ɵɵ
|
|
33
|
-
i0.ɵɵ
|
|
34
|
-
i0.ɵɵprojection(2);
|
|
57
|
+
} }, inputs: { value: [1, "value"], items: [1, "items"], modal: [1, "modal"], selectMode: [1, "selectMode"], disabled: [1, "disabled"], required: [1, "required"], inset: [1, "inset"], size: [1, "size"] }, outputs: { value: "valueChange" }, decls: 3, vars: 8, consts: [[3, "valueChange", "selectedItemsChange", "value", "selectedItems", "modal", "disabled", "required", "inset", "size", "selectMode"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function SdSharedDataSelectButton_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
+
i0.ɵɵelementStart(0, "sd-modal-select-button", 0);
|
|
59
|
+
i0.ɵɵtwoWayListener("valueChange", function SdSharedDataSelectButton_Template_sd_modal_select_button_valueChange_0_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.value, $event) || (ctx.value = $event); return $event; })("selectedItemsChange", function SdSharedDataSelectButton_Template_sd_modal_select_button_selectedItemsChange_0_listener($event) { i0.ɵɵtwoWayBindingSet(ctx._selectedItems, $event) || (ctx._selectedItems = $event); return $event; });
|
|
60
|
+
i0.ɵɵrepeaterCreate(1, SdSharedDataSelectButton_For_2_Template, 2, 7, null, null, i0.ɵɵrepeaterTrackByIdentity);
|
|
35
61
|
i0.ɵɵelementEnd();
|
|
36
62
|
} if (rf & 2) {
|
|
63
|
+
i0.ɵɵtwoWayProperty("value", ctx.value)("selectedItems", ctx._selectedItems);
|
|
64
|
+
i0.ɵɵproperty("modal", ctx.modal())("disabled", ctx.disabled())("required", ctx.required())("inset", ctx.inset())("size", ctx.size())("selectMode", ctx.selectMode());
|
|
37
65
|
i0.ɵɵadvance();
|
|
38
|
-
i0.ɵɵ
|
|
39
|
-
} }, dependencies: [
|
|
66
|
+
i0.ɵɵrepeater(ctx._selectedItems());
|
|
67
|
+
} }, dependencies: [SdModalSelectButton, NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });
|
|
40
68
|
}
|
|
41
69
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdSharedDataSelectButton, [{
|
|
42
70
|
type: Component,
|
|
@@ -45,10 +73,22 @@ export class SdSharedDataSelectButton extends SdDataSelectButtonBase {
|
|
|
45
73
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
46
74
|
encapsulation: ViewEncapsulation.None,
|
|
47
75
|
standalone: true,
|
|
48
|
-
imports: [
|
|
76
|
+
imports: [SdModalSelectButton, NgTemplateOutlet],
|
|
49
77
|
template: `
|
|
50
|
-
<sd-
|
|
51
|
-
|
|
78
|
+
<sd-modal-select-button
|
|
79
|
+
[(value)]="value"
|
|
80
|
+
[(selectedItems)]="_selectedItems"
|
|
81
|
+
[modal]="modal()"
|
|
82
|
+
[disabled]="disabled()"
|
|
83
|
+
[required]="required()"
|
|
84
|
+
[inset]="inset()"
|
|
85
|
+
[size]="size()"
|
|
86
|
+
[selectMode]="selectMode()"
|
|
87
|
+
>
|
|
88
|
+
@for (item of _selectedItems(); track item; let index = $index) {
|
|
89
|
+
@if (index !== 0) {
|
|
90
|
+
<span>, </span>
|
|
91
|
+
}
|
|
52
92
|
<ng-template
|
|
53
93
|
[ngTemplateOutlet]="itemTplRef()"
|
|
54
94
|
[ngTemplateOutletContext]="{
|
|
@@ -58,10 +98,9 @@ export class SdSharedDataSelectButton extends SdDataSelectButtonBase {
|
|
|
58
98
|
depth: 0,
|
|
59
99
|
}"
|
|
60
100
|
/>
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
</sd-data-select-button>
|
|
101
|
+
}
|
|
102
|
+
</sd-modal-select-button>
|
|
64
103
|
`,
|
|
65
104
|
}]
|
|
66
|
-
}],
|
|
67
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSharedDataSelectButton, { className: "SdSharedDataSelectButton", filePath: "packages/angular/src/data/shared-data/sd-shared-data-select-button.ts", lineNumber:
|
|
105
|
+
}], () => [], { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], modal: [{ type: i0.Input, args: [{ isSignal: true, alias: "modal", required: true }] }], selectMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectMode", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], inset: [{ type: i0.Input, args: [{ isSignal: true, alias: "inset", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], itemTplRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdItemOfTemplate), { ...{ read: TemplateRef }, isSignal: true }] }] }); })();
|
|
106
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSharedDataSelectButton, { className: "SdSharedDataSelectButton", filePath: "packages/angular/src/data/shared-data/sd-shared-data-select-button.ts", lineNumber: 60 }); })();
|
|
@@ -22,6 +22,7 @@ export declare class SdSheet<T> {
|
|
|
22
22
|
getItemCellClassFn: import("@angular/core").InputSignal<((item: T, colKey: string) => string) | undefined>;
|
|
23
23
|
getItemCellStyleFn: import("@angular/core").InputSignal<((item: T, colKey: string) => string | undefined) | undefined>;
|
|
24
24
|
hideConfigBar: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
25
|
+
cumulativeSelection: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
25
26
|
itemKeydown: import("@angular/core").OutputEmitterRef<SdSheetItemKeydownEventParam<T>>;
|
|
26
27
|
cellKeydown: import("@angular/core").OutputEmitterRef<SdSheetCellKeydownEventParam<T>>;
|
|
27
28
|
selectedItems: import("@angular/core").ModelSignal<T[]>;
|
|
@@ -119,6 +120,8 @@ export declare class SdSheet<T> {
|
|
|
119
120
|
toggleAll(): void;
|
|
120
121
|
isSelected(item: T): boolean;
|
|
121
122
|
};
|
|
123
|
+
private _resetOnItemsChangeSkipFirst;
|
|
124
|
+
private readonly _resetOnItemsChange;
|
|
122
125
|
icons: {
|
|
123
126
|
tablerSettings: string;
|
|
124
127
|
tablerCaretRight: string;
|
|
@@ -159,7 +162,7 @@ export declare class SdSheet<T> {
|
|
|
159
162
|
onCellKeydown(event: KeyboardEvent, item: T, colKey: string): void;
|
|
160
163
|
onConfigButtonClick(): Promise<void>;
|
|
161
164
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdSheet<any>, never>;
|
|
162
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdSheet<any>, "sd-sheet", never, { "key": { "alias": "key"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "trackByFn": { "alias": "trackByFn"; "required": false; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "autoSelect": { "alias": "autoSelect"; "required": false; "isSignal": true; }; "getItemSelectableFn": { "alias": "getItemSelectableFn"; "required": false; "isSignal": true; }; "getChildrenFn": { "alias": "getChildrenFn"; "required": false; "isSignal": true; }; "useAutoSort": { "alias": "useAutoSort"; "required": false; "isSignal": true; }; "visiblePageCount": { "alias": "visiblePageCount"; "required": false; "isSignal": true; }; "totalPageCount": { "alias": "totalPageCount"; "required": false; "isSignal": true; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "inset": { "alias": "inset"; "required": false; "isSignal": true; }; "contentStyle": { "alias": "contentStyle"; "required": false; "isSignal": true; }; "getItemCellClassFn": { "alias": "getItemCellClassFn"; "required": false; "isSignal": true; }; "getItemCellStyleFn": { "alias": "getItemCellStyleFn"; "required": false; "isSignal": true; }; "hideConfigBar": { "alias": "hideConfigBar"; "required": false; "isSignal": true; }; "selectedItems": { "alias": "selectedItems"; "required": false; "isSignal": true; }; "expandedItems": { "alias": "expandedItems"; "required": false; "isSignal": true; }; "sorts": { "alias": "sorts"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; }, { "itemKeydown": "itemKeydown"; "cellKeydown": "cellKeydown"; "selectedItems": "selectedItemsChange"; "expandedItems": "expandedItemsChange"; "sorts": "sortsChange"; "currentPage": "currentPageChange"; }, ["columnControls"], never, true, [{ directive: typeof i1.SdEvents; inputs: {}; outputs: { "keydown.capture": "keydown.capture"; "focus.capture": "focus.capture"; "blur.capture": "blur.capture"; }; }]>;
|
|
165
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdSheet<any>, "sd-sheet", never, { "key": { "alias": "key"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "trackByFn": { "alias": "trackByFn"; "required": false; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "autoSelect": { "alias": "autoSelect"; "required": false; "isSignal": true; }; "getItemSelectableFn": { "alias": "getItemSelectableFn"; "required": false; "isSignal": true; }; "getChildrenFn": { "alias": "getChildrenFn"; "required": false; "isSignal": true; }; "useAutoSort": { "alias": "useAutoSort"; "required": false; "isSignal": true; }; "visiblePageCount": { "alias": "visiblePageCount"; "required": false; "isSignal": true; }; "totalPageCount": { "alias": "totalPageCount"; "required": false; "isSignal": true; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "inset": { "alias": "inset"; "required": false; "isSignal": true; }; "contentStyle": { "alias": "contentStyle"; "required": false; "isSignal": true; }; "getItemCellClassFn": { "alias": "getItemCellClassFn"; "required": false; "isSignal": true; }; "getItemCellStyleFn": { "alias": "getItemCellStyleFn"; "required": false; "isSignal": true; }; "hideConfigBar": { "alias": "hideConfigBar"; "required": false; "isSignal": true; }; "cumulativeSelection": { "alias": "cumulativeSelection"; "required": false; "isSignal": true; }; "selectedItems": { "alias": "selectedItems"; "required": false; "isSignal": true; }; "expandedItems": { "alias": "expandedItems"; "required": false; "isSignal": true; }; "sorts": { "alias": "sorts"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; }, { "itemKeydown": "itemKeydown"; "cellKeydown": "cellKeydown"; "selectedItems": "selectedItemsChange"; "expandedItems": "expandedItemsChange"; "sorts": "sortsChange"; "currentPage": "currentPageChange"; }, ["columnControls"], never, true, [{ directive: typeof i1.SdEvents; inputs: {}; outputs: { "keydown.capture": "keydown.capture"; "focus.capture": "focus.capture"; "blur.capture": "blur.capture"; }; }]>;
|
|
163
166
|
}
|
|
164
167
|
export type { SortingDef } from "../../core/selection/useSortingManager";
|
|
165
168
|
//# sourceMappingURL=sd-sheet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-sheet.d.ts","sourceRoot":"","sources":["../../../src/data/sheet/sd-sheet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sd-sheet.d.ts","sourceRoot":"","sources":["../../../src/data/sheet/sd-sheet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, inject, input, model, output, signal, ViewEncapsulation, } from "@angular/core";
|
|
1
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, effect, inject, input, model, output, signal, untracked, ViewEncapsulation, } from "@angular/core";
|
|
2
2
|
import { NgTemplateOutlet } from "@angular/common";
|
|
3
3
|
import { SdSheetColumn } from "./sd-sheet-column";
|
|
4
4
|
import { SdCheckbox } from "../../controls/checkbox/sd-checkbox";
|
|
@@ -426,6 +426,7 @@ export class SdSheet {
|
|
|
426
426
|
getItemCellClassFn = input(...(ngDevMode ? [undefined, { debugName: "getItemCellClassFn" }] : /* istanbul ignore next */ []));
|
|
427
427
|
getItemCellStyleFn = input(...(ngDevMode ? [undefined, { debugName: "getItemCellStyleFn" }] : /* istanbul ignore next */ []));
|
|
428
428
|
hideConfigBar = input(false, { ...(ngDevMode ? { debugName: "hideConfigBar" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
429
|
+
cumulativeSelection = input(false, { ...(ngDevMode ? { debugName: "cumulativeSelection" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
429
430
|
// Outputs
|
|
430
431
|
itemKeydown = output();
|
|
431
432
|
cellKeydown = output();
|
|
@@ -527,7 +528,25 @@ export class SdSheet {
|
|
|
527
528
|
selectedItems: this.selectedItems,
|
|
528
529
|
selectMode: this.selectMode,
|
|
529
530
|
getItemSelectableFn: this.getItemSelectableFn,
|
|
531
|
+
trackByFn: this.trackByFn,
|
|
530
532
|
});
|
|
533
|
+
// cumulativeSelection=false면 items 변경 시 selectedItems를 초기화한다.
|
|
534
|
+
// 첫 실행(초기 마운트)은 skip하여 소비자가 넘긴 초기 selectedItems 값을 보존한다.
|
|
535
|
+
_resetOnItemsChangeSkipFirst = true;
|
|
536
|
+
_resetOnItemsChange = effect(() => {
|
|
537
|
+
this.items(); // track only items
|
|
538
|
+
if (this._resetOnItemsChangeSkipFirst) {
|
|
539
|
+
this._resetOnItemsChangeSkipFirst = false;
|
|
540
|
+
return;
|
|
541
|
+
}
|
|
542
|
+
untracked(() => {
|
|
543
|
+
if (this.cumulativeSelection())
|
|
544
|
+
return;
|
|
545
|
+
if (this.selectedItems().length > 0) {
|
|
546
|
+
this.selectedItems.set([]);
|
|
547
|
+
}
|
|
548
|
+
});
|
|
549
|
+
}, ...(ngDevMode ? [{ debugName: "_resetOnItemsChange" }] : /* istanbul ignore next */ []));
|
|
531
550
|
// Icons
|
|
532
551
|
icons = {
|
|
533
552
|
tablerSettings,
|
|
@@ -727,7 +746,7 @@ export class SdSheet {
|
|
|
727
746
|
i0.ɵɵlistener("keydown.capture", function SdSheet_keydown_capture_HostBindingHandler($event) { return ctx.onKeydownCapture($event); })("focus.capture", function SdSheet_focus_capture_HostBindingHandler($event) { return ctx.onFocusCapture($event); })("dblclick", function SdSheet_dblclick_HostBindingHandler($event) { return ctx.onDblClick($event); })("blur.capture", function SdSheet_blur_capture_HostBindingHandler($event) { return ctx.onBlurCapture($event); });
|
|
728
747
|
} if (rf & 2) {
|
|
729
748
|
i0.ɵɵattribute("data-sd-inset", ctx.inset())("data-sd-focus-mode", ctx.focusMode());
|
|
730
|
-
} }, inputs: { key: [1, "key"], items: [1, "items"], trackByFn: [1, "trackByFn"], selectMode: [1, "selectMode"], autoSelect: [1, "autoSelect"], getItemSelectableFn: [1, "getItemSelectableFn"], getChildrenFn: [1, "getChildrenFn"], useAutoSort: [1, "useAutoSort"], visiblePageCount: [1, "visiblePageCount"], totalPageCount: [1, "totalPageCount"], itemsPerPage: [1, "itemsPerPage"], focusMode: [1, "focusMode"], inset: [1, "inset"], contentStyle: [1, "contentStyle"], getItemCellClassFn: [1, "getItemCellClassFn"], getItemCellStyleFn: [1, "getItemCellStyleFn"], hideConfigBar: [1, "hideConfigBar"], selectedItems: [1, "selectedItems"], expandedItems: [1, "expandedItems"], sorts: [1, "sorts"], currentPage: [1, "currentPage"] }, outputs: { itemKeydown: "itemKeydown", cellKeydown: "cellKeydown", selectedItems: "selectedItemsChange", expandedItems: "expandedItemsChange", sorts: "sortsChange", currentPage: "currentPageChange" }, features: [i0.ɵɵHostDirectivesFeature([{ directive: i1.SdEvents, outputs: ["keydown.capture", "keydown.capture", "focus.capture", "focus.capture", "blur.capture", "blur.capture"] }])], decls: 14, vars: 8, consts: [[1, "_tool", "flex-row", "gap-sm", "p-xs"], [1, "_sheet-container", "flex-fill", 3, "scroll.passive"], [3, "sdResize"], [1, "_summary-row"], [1, "_focus-row-indicator"], [1, "_focus-cell-indicator"], [1, "_resize-indicator"], [1, "_select-row-indicator-container"], [3, "theme", "size"], [1, "flex-fill", 3, "currentPage", "totalPageCount", "visiblePageCount"], [3, "click", "theme", "size"], [3, "svg"], [1, "flex-fill", 3, "currentPageChange", "currentPage", "totalPageCount", "visiblePageCount"], [1, "_fixed", "_feature-cell", "_last-depth", 3, "sdResize"], [3, "value", "inline", "theme"], [1, "_fixed", "_feature-cell", "_last-depth", 3, "left"], [3, "valueChange", "value", "inline", "theme"], [3, "click", "svg"], [3, "_fixed", "left"], [1, "_last-depth", 3, "_fixed", "_sort", "help", "style"], [1, "_p-sheet"], [1, "_last-depth", 3, "click"], [1, "_headerContent", "flex-row"], [1, "flex-fill"], [1, "flex-fill", "_p-sheet"], [1, "_sort-icon"], [1, "_resizer"], [3, "ngTemplateOutlet"], [1, "tx-trans-lightest", 3, "svg"], [1, "_resizer", 3, "mousedown", "dblclick"], [1, "_fixed", "_feature-cell"], [3, "click", "keydown"], [3, "value", "canChangeFn", "inline", "theme", "disabled"], [1, "_fixed", "_feature-cell", 3, "left"], ["tabindex", "0", 3, "_fixed", "class", "style"], [3, "valueChange", "mousedown", "value", "canChangeFn", "inline", "theme", "disabled"], [3, "theme"], [3, "pointerdown", "theme"], [1, "_depth-indicator", 3, "margin-left"], [3, "svg", "transform", "tx-theme-primary-default"], [1, "_depth-indicator"], ["tabindex", "0", 3, "click", "focus", "keydown"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function SdSheet_Template(rf, ctx) { if (rf & 1) {
|
|
749
|
+
} }, inputs: { key: [1, "key"], items: [1, "items"], trackByFn: [1, "trackByFn"], selectMode: [1, "selectMode"], autoSelect: [1, "autoSelect"], getItemSelectableFn: [1, "getItemSelectableFn"], getChildrenFn: [1, "getChildrenFn"], useAutoSort: [1, "useAutoSort"], visiblePageCount: [1, "visiblePageCount"], totalPageCount: [1, "totalPageCount"], itemsPerPage: [1, "itemsPerPage"], focusMode: [1, "focusMode"], inset: [1, "inset"], contentStyle: [1, "contentStyle"], getItemCellClassFn: [1, "getItemCellClassFn"], getItemCellStyleFn: [1, "getItemCellStyleFn"], hideConfigBar: [1, "hideConfigBar"], cumulativeSelection: [1, "cumulativeSelection"], selectedItems: [1, "selectedItems"], expandedItems: [1, "expandedItems"], sorts: [1, "sorts"], currentPage: [1, "currentPage"] }, outputs: { itemKeydown: "itemKeydown", cellKeydown: "cellKeydown", selectedItems: "selectedItemsChange", expandedItems: "expandedItemsChange", sorts: "sortsChange", currentPage: "currentPageChange" }, features: [i0.ɵɵHostDirectivesFeature([{ directive: i1.SdEvents, outputs: ["keydown.capture", "keydown.capture", "focus.capture", "focus.capture", "blur.capture", "blur.capture"] }])], decls: 14, vars: 8, consts: [[1, "_tool", "flex-row", "gap-sm", "p-xs"], [1, "_sheet-container", "flex-fill", 3, "scroll.passive"], [3, "sdResize"], [1, "_summary-row"], [1, "_focus-row-indicator"], [1, "_focus-cell-indicator"], [1, "_resize-indicator"], [1, "_select-row-indicator-container"], [3, "theme", "size"], [1, "flex-fill", 3, "currentPage", "totalPageCount", "visiblePageCount"], [3, "click", "theme", "size"], [3, "svg"], [1, "flex-fill", 3, "currentPageChange", "currentPage", "totalPageCount", "visiblePageCount"], [1, "_fixed", "_feature-cell", "_last-depth", 3, "sdResize"], [3, "value", "inline", "theme"], [1, "_fixed", "_feature-cell", "_last-depth", 3, "left"], [3, "valueChange", "value", "inline", "theme"], [3, "click", "svg"], [3, "_fixed", "left"], [1, "_last-depth", 3, "_fixed", "_sort", "help", "style"], [1, "_p-sheet"], [1, "_last-depth", 3, "click"], [1, "_headerContent", "flex-row"], [1, "flex-fill"], [1, "flex-fill", "_p-sheet"], [1, "_sort-icon"], [1, "_resizer"], [3, "ngTemplateOutlet"], [1, "tx-trans-lightest", 3, "svg"], [1, "_resizer", 3, "mousedown", "dblclick"], [1, "_fixed", "_feature-cell"], [3, "click", "keydown"], [3, "value", "canChangeFn", "inline", "theme", "disabled"], [1, "_fixed", "_feature-cell", 3, "left"], ["tabindex", "0", 3, "_fixed", "class", "style"], [3, "valueChange", "mousedown", "value", "canChangeFn", "inline", "theme", "disabled"], [3, "theme"], [3, "pointerdown", "theme"], [1, "_depth-indicator", 3, "margin-left"], [3, "svg", "transform", "tx-theme-primary-default"], [1, "_depth-indicator"], ["tabindex", "0", 3, "click", "focus", "keydown"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function SdSheet_Template(rf, ctx) { if (rf & 1) {
|
|
731
750
|
i0.ɵɵconditionalCreate(0, SdSheet_Conditional_0_Template, 3, 2, "div", 0);
|
|
732
751
|
i0.ɵɵelementStart(1, "div", 1);
|
|
733
752
|
i0.ɵɵlistener("scroll.passive", function SdSheet_Template_div_scroll_passive_1_listener() { return ctx.onContainerScroll(); });
|
|
@@ -1030,5 +1049,5 @@ export class SdSheet {
|
|
|
1030
1049
|
<div class="_select-row-indicator-container"></div>
|
|
1031
1050
|
</div>
|
|
1032
1051
|
`, styles: ["sd-sheet {\n border: 1px solid var(--theme-gray-lighter);\n border-radius: var(--border-radius-default);\n}\nsd-sheet > ._tool {\n background: var(--control-color);\n border-top-left-radius: var(--border-radius-default);\n border-top-right-radius: var(--border-radius-default);\n border-bottom: 1px solid var(--theme-gray-lighter);\n}\nsd-sheet > ._sheet-container {\n position: relative;\n background: var(--sheet-bg);\n border-bottom-left-radius: var(--border-radius-default);\n border-bottom-right-radius: var(--border-radius-default);\n overflow: auto;\n}\nsd-sheet > ._sheet-container > table {\n border-spacing: 0;\n table-layout: fixed;\n margin-right: 2px;\n margin-bottom: 2px;\n border-bottom-right-radius: var(--border-radius-default);\n}\nsd-sheet > ._sheet-container > table > * > tr > *:last-child {\n border-right: 1px solid var(--theme-gray-lighter);\n}\nsd-sheet > ._sheet-container > table > * > tr:last-child > * {\n border-bottom: 1px solid var(--theme-gray-lighter);\n}\nsd-sheet > ._sheet-container > table > *:last-child > tr:last-child > td:last-child {\n border-bottom-right-radius: var(--border-radius-default);\n overflow: hidden;\n}\nsd-sheet > ._sheet-container > table > * > tr > * {\n border-right: 1px solid var(--theme-gray-lighter);\n border-bottom: 1px solid var(--theme-gray-lighter);\n white-space: nowrap;\n overflow: hidden;\n padding: 0;\n position: relative;\n}\nsd-sheet > ._sheet-container > table > * > tr > *._fixed:has(+ :not(._fixed)) + :not(._fixed):not([data-c=\"0\"]) {\n border-left: 1px solid var(--theme-gray-lighter);\n}\nsd-sheet > ._sheet-container > table > * > tr > *._feature-cell {\n background: var(--theme-gray-lightest);\n min-width: calc(var(--font-size-default) + 2px + var(--sheet-ph) * 2);\n padding: var(--sheet-pv) var(--sheet-ph);\n text-align: left;\n}\nsd-sheet > ._sheet-container > table > * > tr > *._feature-cell > ng-icon {\n cursor: pointer;\n color: var(--text-trans-lightest);\n}\nsd-sheet > ._sheet-container > table > * > tr > *._fixed {\n position: sticky;\n left: 0;\n}\nsd-sheet > ._sheet-container > table > * > tr > *._fixed:has(+ :not(._fixed)) {\n border-right: 1px solid var(--theme-gray-lighter);\n}\nsd-sheet > ._sheet-container > table > thead {\n position: sticky;\n top: 0;\n z-index: 3;\n}\nsd-sheet > ._sheet-container > table > thead > tr > th {\n position: relative;\n background: var(--theme-gray-lightest);\n vertical-align: middle;\n}\nsd-sheet > ._sheet-container > table > thead > tr > th._fixed {\n z-index: 4;\n}\nsd-sheet > ._sheet-container > table > thead > tr > th._last-depth {\n border-bottom: 1px solid var(--theme-gray-lighter);\n}\nsd-sheet > ._sheet-container > table > thead > tr > th._feature-cell {\n border-bottom: 1px solid var(--theme-gray-lighter);\n}\nsd-sheet > ._sheet-container > table > thead > tr > th._sort {\n cursor: pointer;\n}\nsd-sheet > ._sheet-container > table > thead > tr > th._sort:hover {\n text-decoration: underline;\n}\nsd-sheet > ._sheet-container > table > thead > tr > th > ._headerContent > ._sort-icon {\n padding: var(--gap-xs) var(--gap-xs) var(--gap-xs) 0;\n background-color: var(--theme-gray-lightest);\n}\nsd-sheet > ._sheet-container > table > thead > tr > th > ._resizer {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 2px;\n cursor: ew-resize;\n}\nsd-sheet > ._sheet-container > table > thead:has(> tr._summary-row) > tr > th._last-depth {\n border-bottom: 1px solid var(--theme-gray-lighter);\n}\nsd-sheet > ._sheet-container > table > thead:has(> tr._summary-row) > tr._summary-row > th {\n background: var(--theme-warning-lightest);\n text-align: left;\n border-bottom: 1px solid var(--theme-gray-lighter);\n}\nsd-sheet > ._sheet-container > table > tbody > tr > td {\n background: var(--control-color);\n vertical-align: top;\n}\nsd-sheet > ._sheet-container > table > tbody > tr > td._fixed {\n z-index: 2;\n}\nsd-sheet > ._sheet-container > table > tbody > tr > td > ._depth-indicator {\n display: inline-block;\n margin-top: 0.4em;\n width: 0.5em;\n height: 0.5em;\n border-left: 1px solid var(--text-trans-default);\n border-bottom: 1px solid var(--text-trans-default);\n vertical-align: top;\n}\nsd-sheet > ._sheet-container > ._focus-row-indicator {\n display: none;\n position: absolute;\n pointer-events: none;\n background: rgba(158, 158, 158, 0.1);\n z-index: 6;\n}\nsd-sheet > ._sheet-container > ._focus-row-indicator > ._focus-cell-indicator {\n position: absolute;\n border: 2px solid var(--theme-primary-default);\n border-radius: var(--border-radius-default);\n}\nsd-sheet > ._sheet-container > ._resize-indicator {\n display: none;\n position: absolute;\n pointer-events: none;\n top: 0;\n height: 100%;\n border: 1px dotted var(--theme-gray-light);\n z-index: 7;\n}\nsd-sheet > ._sheet-container > ._select-row-indicator-container {\n display: none;\n position: absolute;\n pointer-events: none;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n}\nsd-sheet > ._sheet-container > ._select-row-indicator-container > ._select-row-indicator {\n display: block;\n left: 0;\n position: absolute;\n pointer-events: none;\n background: var(--theme-primary-default);\n opacity: 0.1;\n}\nsd-sheet ._p-sheet {\n padding: var(--sheet-pv) var(--sheet-ph);\n}\nsd-sheet[data-sd-focus-mode=row] > ._sheet-container > ._focus-row-indicator > ._focus-cell-indicator {\n display: none !important;\n}\nsd-sheet[data-sd-inset=true] {\n border: none;\n border-radius: 0;\n}"] }]
|
|
1033
|
-
}], null, { key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], trackByFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "trackByFn", required: false }] }], selectMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectMode", required: false }] }], autoSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoSelect", required: false }] }], getItemSelectableFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "getItemSelectableFn", required: false }] }], getChildrenFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "getChildrenFn", required: false }] }], useAutoSort: [{ type: i0.Input, args: [{ isSignal: true, alias: "useAutoSort", required: false }] }], visiblePageCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "visiblePageCount", required: false }] }], totalPageCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPageCount", required: false }] }], itemsPerPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsPerPage", required: false }] }], focusMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusMode", required: false }] }], inset: [{ type: i0.Input, args: [{ isSignal: true, alias: "inset", required: false }] }], contentStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentStyle", required: false }] }], getItemCellClassFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "getItemCellClassFn", required: false }] }], getItemCellStyleFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "getItemCellStyleFn", required: false }] }], hideConfigBar: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideConfigBar", required: false }] }], itemKeydown: [{ type: i0.Output, args: ["itemKeydown"] }], cellKeydown: [{ type: i0.Output, args: ["cellKeydown"] }], selectedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItems", required: false }] }, { type: i0.Output, args: ["selectedItemsChange"] }], expandedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedItems", required: false }] }, { type: i0.Output, args: ["expandedItemsChange"] }], sorts: [{ type: i0.Input, args: [{ isSignal: true, alias: "sorts", required: false }] }, { type: i0.Output, args: ["sortsChange"] }], currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPage", required: false }] }, { type: i0.Output, args: ["currentPageChange"] }], columnControls: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SdSheetColumn), { isSignal: true }] }] }); })();
|
|
1034
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSheet, { className: "SdSheet", filePath: "packages/angular/src/data/sheet/sd-sheet.ts", lineNumber:
|
|
1052
|
+
}], null, { key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], trackByFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "trackByFn", required: false }] }], selectMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectMode", required: false }] }], autoSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoSelect", required: false }] }], getItemSelectableFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "getItemSelectableFn", required: false }] }], getChildrenFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "getChildrenFn", required: false }] }], useAutoSort: [{ type: i0.Input, args: [{ isSignal: true, alias: "useAutoSort", required: false }] }], visiblePageCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "visiblePageCount", required: false }] }], totalPageCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPageCount", required: false }] }], itemsPerPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsPerPage", required: false }] }], focusMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusMode", required: false }] }], inset: [{ type: i0.Input, args: [{ isSignal: true, alias: "inset", required: false }] }], contentStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentStyle", required: false }] }], getItemCellClassFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "getItemCellClassFn", required: false }] }], getItemCellStyleFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "getItemCellStyleFn", required: false }] }], hideConfigBar: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideConfigBar", required: false }] }], cumulativeSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "cumulativeSelection", required: false }] }], itemKeydown: [{ type: i0.Output, args: ["itemKeydown"] }], cellKeydown: [{ type: i0.Output, args: ["cellKeydown"] }], selectedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItems", required: false }] }, { type: i0.Output, args: ["selectedItemsChange"] }], expandedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedItems", required: false }] }, { type: i0.Output, args: ["expandedItemsChange"] }], sorts: [{ type: i0.Input, args: [{ isSignal: true, alias: "sorts", required: false }] }, { type: i0.Output, args: ["sortsChange"] }], currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPage", required: false }] }, { type: i0.Output, args: ["currentPageChange"] }], columnControls: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SdSheetColumn), { isSignal: true }] }] }); })();
|
|
1053
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdSheet, { className: "SdSheet", filePath: "packages/angular/src/data/sheet/sd-sheet.ts", lineNumber: 564 }); })();
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import "@simplysm/core-browser";
|
|
2
|
-
export { TXT_CHANGE_IGNORE_CONFIRM } from "./core/commons";
|
|
3
2
|
export { provideSdAngular } from "./core/provideSdAngular";
|
|
4
3
|
export { setupBgTheme } from "./core/setupBgTheme";
|
|
5
4
|
export { setSafeStyle } from "./core/setSafeStyle";
|
|
6
5
|
export { setupModelHook } from "./core/setupModelHook";
|
|
7
|
-
export { injectParent } from "./core/injectParent";
|
|
8
|
-
export { withBusy } from "./core/withBusy";
|
|
9
6
|
export { mark } from "./core/mark";
|
|
10
7
|
export { FormatPipe } from "./core/format.pipe";
|
|
11
8
|
export type { SelectModalOutputResult } from "./core/select-modal-output-result";
|
|
@@ -43,7 +40,6 @@ export type { SdMenu, SdFlatMenu, SdPermission, } from "./core/app-structure/sd-
|
|
|
43
40
|
export { SdFileDialogProvider } from "./core/file-dialog/sd-file-dialog.provider";
|
|
44
41
|
export { SdServiceClientFactoryProvider } from "./core/service-client/sd-service-client-factory.provider";
|
|
45
42
|
export { SdSharedDataProvider, SdSharedDataChangeEvent, type SharedDataBase, type SharedDataInfo, type SharedDataHandle, } from "./core/shared-data/sd-shared-data.provider";
|
|
46
|
-
export { setupCumulateSelectedKeys } from "./core/selection/setupCumulateSelectedKeys";
|
|
47
43
|
export { useExpandingManager, type ExpandItemDef, } from "./core/selection/useExpandingManager";
|
|
48
44
|
export { useSelectionManager } from "./core/selection/useSelectionManager";
|
|
49
45
|
export { useSortingManager, type SortingDef } from "./core/selection/useSortingManager";
|
|
@@ -88,7 +84,6 @@ export { SdGap } from "./controls/gap/sd-gap";
|
|
|
88
84
|
export { SdPagination } from "./controls/pagination/sd-pagination";
|
|
89
85
|
export { SdDockContainer } from "./layout/dock/sd-dock-container";
|
|
90
86
|
export { SdDock } from "./layout/dock/sd-dock";
|
|
91
|
-
export { SdBaseContainer } from "./layout/base-container/sd-base-container";
|
|
92
87
|
export { SdSidebarContainer } from "./layout/sidebar/sd-sidebar-container";
|
|
93
88
|
export { SdSidebar } from "./layout/sidebar/sd-sidebar";
|
|
94
89
|
export { SdSidebarMenu } from "./layout/sidebar/sd-sidebar-menu";
|
|
@@ -102,15 +97,7 @@ export { SdSheetColumn, type SdSheetCellContext } from "./data/sheet/sd-sheet-co
|
|
|
102
97
|
export { SdSheetColumnCellTemplate } from "./data/sheet/sd-sheet-column-cell-template";
|
|
103
98
|
export { SdSheetConfigModal } from "./data/sheet/sd-sheet-config.modal";
|
|
104
99
|
export type { SdSheetColumnDef, SdSheetConfig, SdSheetHeaderDef, SdSheetItemKeydownEventParam, SdSheetCellKeydownEventParam, } from "./data/sheet/types";
|
|
105
|
-
export { SdDataSheet } from "./data/data-sheet/sd-data-sheet";
|
|
106
|
-
export { SdDataSheetBase, type SdDataSheetItemPropInfo, type SdDataSheetItemInfo, type SdDataSheetSearchResult, } from "./data/data-sheet/sd-data-sheet.base";
|
|
107
|
-
export { SdDataSheetColumn } from "./data/data-sheet/sd-data-sheet-column";
|
|
108
|
-
export { setupCloserWhenSingleSelectionChange } from "./data/data-sheet/setupCloserWhenSingleSelectionChange";
|
|
109
|
-
export { SdDataDetail } from "./data/data-detail/sd-data-detail";
|
|
110
|
-
export { SdDataDetailBase, type SdDataDetailDataInfo, } from "./data/data-detail/sd-data-detail.base";
|
|
111
100
|
export { getOrmDataEditToastErrorMessage } from "./data/getOrmDataEditToastErrorMessage";
|
|
112
|
-
export { SdDataSelectButton } from "./data/data-select-button/sd-data-select-button";
|
|
113
|
-
export { SdDataSelectButtonBase } from "./data/data-select-button/sd-data-select-button.base";
|
|
114
101
|
export { SdSharedDataSelect } from "./data/shared-data/sd-shared-data-select";
|
|
115
102
|
export { SdSharedDataSelectButton } from "./data/shared-data/sd-shared-data-select-button";
|
|
116
103
|
export { SdSharedDataSelectList } from "./data/shared-data/sd-shared-data-select-list";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAGhC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|