@sdcorejs/angular 20.1.3 → 20.1.4
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 +17 -14
- package/components/audit-diff/index.d.ts +74 -0
- package/components/badge/index.d.ts +1 -1
- package/components/breadcrumb/index.d.ts +53 -0
- package/components/data-state/index.d.ts +44 -0
- package/components/document-builder/index.d.ts +5 -5
- package/components/form-generic/index.d.ts +67 -104
- package/components/import-excel/index.d.ts +4 -14
- package/components/index.d.ts +4 -0
- package/components/job-progress/index.d.ts +38 -0
- package/components/mini-editor/index.d.ts +9 -9
- package/components/modal/index.d.ts +7 -1
- package/components/preview/index.d.ts +181 -28
- package/components/side-drawer/index.d.ts +7 -1
- package/components/tab/index.d.ts +9 -2
- package/components/table/index.d.ts +8 -7
- package/components/tree/index.d.ts +24 -2
- package/components/upload-file/index.d.ts +5 -4
- package/directives/index.d.ts +10 -8
- package/fesm2022/sdcorejs-angular-components-anchor.mjs +14 -14
- package/fesm2022/sdcorejs-angular-components-anchor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-audit-diff.mjs +332 -0
- package/fesm2022/sdcorejs-angular-components-audit-diff.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-components-badge.mjs +1 -0
- package/fesm2022/sdcorejs-angular-components-badge.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-breadcrumb.mjs +121 -0
- package/fesm2022/sdcorejs-angular-components-breadcrumb.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-components-data-state.mjs +68 -0
- package/fesm2022/sdcorejs-angular-components-data-state.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-components-document-builder.mjs +18 -23
- package/fesm2022/sdcorejs-angular-components-document-builder.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-editor.mjs +6 -4
- package/fesm2022/sdcorejs-angular-components-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs +495 -838
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs +24 -34
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-job-progress.mjs +97 -0
- package/fesm2022/sdcorejs-angular-components-job-progress.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-components-mini-editor.mjs +10 -20
- package/fesm2022/sdcorejs-angular-components-mini-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-modal.mjs +61 -4
- package/fesm2022/sdcorejs-angular-components-modal.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-preview.mjs +1438 -218
- package/fesm2022/sdcorejs-angular-components-preview.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs +4 -4
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs +1 -1
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs +39 -2
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tab-router.mjs +16 -22
- package/fesm2022/sdcorejs-angular-components-tab-router.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tab.mjs +48 -4
- package/fesm2022/sdcorejs-angular-components-tab.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-table.mjs +96 -63
- package/fesm2022/sdcorejs-angular-components-table.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tree.mjs +186 -17
- package/fesm2022/sdcorejs-angular-components-tree.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs +15 -22
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components.mjs +4 -0
- package/fesm2022/sdcorejs-angular-components.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-directives.mjs +29 -41
- package/fesm2022/sdcorejs-angular-directives.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs +7 -7
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-checkbox.mjs +20 -83
- package/fesm2022/sdcorejs-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs +6 -3
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip.mjs +6 -3
- package/fesm2022/sdcorejs-angular-forms-chip.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs +16 -13
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date.mjs +42 -65
- package/fesm2022/sdcorejs-angular-forms-date.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs +51 -66
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-entity-picker.mjs +384 -0
- package/fesm2022/sdcorejs-angular-forms-entity-picker.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-forms-input-color.mjs +1 -1
- package/fesm2022/sdcorejs-angular-forms-input-color.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs +7 -5
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input.mjs +290 -56
- package/fesm2022/sdcorejs-angular-forms-input.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-models.mjs +155 -2
- package/fesm2022/sdcorejs-angular-forms-models.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-radio.mjs +44 -78
- package/fesm2022/sdcorejs-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-select.mjs +6 -20
- package/fesm2022/sdcorejs-angular-forms-select.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-switch.mjs +19 -76
- package/fesm2022/sdcorejs-angular-forms-switch.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs +6 -5
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-time-range.mjs +280 -0
- package/fesm2022/sdcorejs-angular-forms-time-range.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-forms-time.mjs +310 -0
- package/fesm2022/sdcorejs-angular-forms-time.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-forms-tree-select.mjs +210 -0
- package/fesm2022/sdcorejs-angular-forms-tree-select.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-forms.mjs +73 -4
- package/fesm2022/sdcorejs-angular-forms.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-i18n.mjs +355 -10
- package/fesm2022/sdcorejs-angular-i18n.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-interceptors.mjs +12 -17
- package/fesm2022/sdcorejs-angular-interceptors.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-layout.mjs +861 -80
- package/fesm2022/sdcorejs-angular-modules-layout.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-pipes.mjs +5 -7
- package/fesm2022/sdcorejs-angular-pipes.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-api.mjs +407 -137
- package/fesm2022/sdcorejs-angular-services-api.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-cache.mjs +515 -105
- package/fesm2022/sdcorejs-angular-services-cache.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-confirm.mjs +5 -7
- package/fesm2022/sdcorejs-angular-services-confirm.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-docx.mjs +7 -10
- package/fesm2022/sdcorejs-angular-services-docx.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-loading.mjs +339 -74
- package/fesm2022/sdcorejs-angular-services-loading.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-notify.mjs +7 -10
- package/fesm2022/sdcorejs-angular-services-notify.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-persistence.mjs +899 -0
- package/fesm2022/sdcorejs-angular-services-persistence.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-services-storage.mjs +324 -122
- package/fesm2022/sdcorejs-angular-services-storage.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-task.mjs +389 -0
- package/fesm2022/sdcorejs-angular-services-task.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-services-unsaved-changes.mjs +255 -0
- package/fesm2022/sdcorejs-angular-services-unsaved-changes.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-services-viewport.mjs +76 -0
- package/fesm2022/sdcorejs-angular-services-viewport.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-services.mjs +4 -0
- package/fesm2022/sdcorejs-angular-services.mjs.map +1 -1
- package/forms/autocomplete/index.d.ts +3 -4
- package/forms/checkbox/index.d.ts +4 -8
- package/forms/date/index.d.ts +2 -2
- package/forms/date-range/index.d.ts +6 -7
- package/forms/datetime/index.d.ts +2 -2
- package/forms/entity-picker/index.d.ts +128 -0
- package/forms/index.d.ts +15 -5
- package/forms/input/index.d.ts +74 -11
- package/forms/input-number/index.d.ts +1 -1
- package/forms/models/index.d.ts +86 -3
- package/forms/radio/index.d.ts +12 -8
- package/forms/switch/index.d.ts +4 -7
- package/forms/time/index.d.ts +117 -0
- package/forms/time-range/index.d.ts +98 -0
- package/forms/tree-select/index.d.ts +76 -0
- package/i18n/index.d.ts +68 -2
- package/interceptors/index.d.ts +5 -6
- package/modules/layout/index.d.ts +288 -15
- package/package.json +49 -1
- package/pipes/index.d.ts +2 -2
- package/services/api/index.d.ts +68 -24
- package/services/cache/index.d.ts +52 -16
- package/services/confirm/index.d.ts +3 -2
- package/services/docx/index.d.ts +2 -3
- package/services/index.d.ts +4 -0
- package/services/loading/index.d.ts +16 -8
- package/services/persistence/index.d.ts +159 -0
- package/services/storage/index.d.ts +26 -8
- package/services/task/index.d.ts +104 -0
- package/services/unsaved-changes/index.d.ts +83 -0
- package/services/viewport/index.d.ts +42 -0
package/README.md
CHANGED
|
@@ -79,10 +79,10 @@ Replace the timer with your typed service call and reset `saving` in a `finally`
|
|
|
79
79
|
|
|
80
80
|
| Area | Representative APIs |
|
|
81
81
|
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
82
|
-
| UI components |
|
|
83
|
-
| Data and workflow | Local
|
|
84
|
-
| Form controls | Text, number,
|
|
85
|
-
| Services |
|
|
82
|
+
| UI components | Navigation/data state, PDF preview, job progress, audit diff, modals, drawers, tabs, charts, editors, and document tooling |
|
|
83
|
+
| Data and workflow | Local/server tables, entity/tree pickers, query builders, unsaved-change guards, background tasks, upload, and Excel import |
|
|
84
|
+
| Form controls | Text/mask, number, time/time range, date/date range, datetime, select, autocomplete, checkbox, radio, switch, chip, and color |
|
|
85
|
+
| Services | Typed API/retry/cancel, ref-counted loading, graph-safe persistence/cache/storage, viewport signals, notifications, and exports |
|
|
86
86
|
| Portal modules | Auth, Keycloak, permission, layout, and icon modules |
|
|
87
87
|
| Localization | Built-in `vi`, `en`, `ja`, `ko`, and `zh` catalogs, plus a synchronous custom-catalog provider |
|
|
88
88
|
|
|
@@ -165,22 +165,25 @@ export const appConfig: ApplicationConfig = {
|
|
|
165
165
|
|
|
166
166
|
## Documentation and examples
|
|
167
167
|
|
|
168
|
-
| Resource
|
|
169
|
-
|
|
|
170
|
-
| [Live showcase](https://sdcorejs.github.io/sdcorejs-angular/)
|
|
171
|
-
| [Button example source](https://github.com/sdcorejs/sdcorejs-angular/blob/main/versions/v19/projects/showcase/src/app/pages/components/button/button-demo.component.ts)
|
|
172
|
-
| [Input example source](https://github.com/sdcorejs/sdcorejs-angular/blob/main/versions/v19/projects/showcase/src/app/pages/forms/input/input-demo.component.ts)
|
|
173
|
-
| [Table example source](https://github.com/sdcorejs/sdcorejs-angular/blob/main/versions/v19/projects/showcase/src/app/pages/components/table/table-demo.component.ts)
|
|
174
|
-
| [
|
|
175
|
-
| [
|
|
176
|
-
| [
|
|
177
|
-
| [
|
|
168
|
+
| Resource | Purpose |
|
|
169
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
|
|
170
|
+
| [Live showcase](https://sdcorejs.github.io/sdcorejs-angular/) | Interactive component, form, and service demos |
|
|
171
|
+
| [Button example source](https://github.com/sdcorejs/sdcorejs-angular/blob/main/versions/v19/projects/showcase/src/app/pages/components/button/button-demo.component.ts) | Action variants, icons, disabled state, and loading state |
|
|
172
|
+
| [Input example source](https://github.com/sdcorejs/sdcorejs-angular/blob/main/versions/v19/projects/showcase/src/app/pages/forms/input/input-demo.component.ts) | Model binding, validation, and viewed states |
|
|
173
|
+
| [Table example source](https://github.com/sdcorejs/sdcorejs-angular/blob/main/versions/v19/projects/showcase/src/app/pages/components/table/table-demo.component.ts) | Data, selection, filters, grouping, paging, and tree workflows |
|
|
174
|
+
| [Persistence example source](https://github.com/sdcorejs/sdcorejs-angular/blob/main/versions/v19/projects/showcase/src/app/pages/services/persistence/persistence-demo.component.ts) | Graph round-trip, identity, envelopes, and error containment |
|
|
175
|
+
| [Latest API manifest](https://sdcorejs.github.io/sdcorejs-angular/docs/latest/index.json) | Discover all Markdown docs for the latest release |
|
|
176
|
+
| [Versions registry](https://sdcorejs.github.io/sdcorejs-angular/docs/versions.json) | Select docs matching an installed package version |
|
|
177
|
+
| [Machine-readable catalog](https://sdcorejs.github.io/sdcorejs-angular/docs/catalog.json) | Discover documentation across maintained package lines |
|
|
178
|
+
| [E2E attributes](https://github.com/sdcorejs/sdcorejs-angular/blob/main/versions/v19/projects/sdcorejs-angular/docs/E2E-ATTRIBUTES.md) | Stable runtime selectors and state attributes |
|
|
179
|
+
| [1.4 migration guide](https://github.com/sdcorejs/sdcorejs-angular/blob/main/docs/migrations/1.4.md) | Dedupe, loading, persistence, connector, responsive, and signal migrations |
|
|
178
180
|
|
|
179
181
|
## Versioning
|
|
180
182
|
|
|
181
183
|
- Use `@sdcorejs/angular@^19`, `@^20`, or `@^21` to match the application's Angular major.
|
|
182
184
|
- Maintained package lines are released from the same feature surface with required Angular-major adaptations.
|
|
183
185
|
- Consumer-breaking changes and migration notes are recorded in the [changelog](https://github.com/sdcorejs/sdcorejs-angular/blob/main/CHANGELOG.md).
|
|
186
|
+
- Before adopting the `1.4` suffix, follow the [1.4 migration guide](https://github.com/sdcorejs/sdcorejs-angular/blob/main/docs/migrations/1.4.md).
|
|
184
187
|
- Version-pinned reference docs remain available under `https://sdcorejs.github.io/sdcorejs-angular/docs/<package-version>/`.
|
|
185
188
|
|
|
186
189
|
## Contributing
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
type SdAuditDiffKind = 'added' | 'removed' | 'changed' | 'unchanged';
|
|
5
|
+
type SdAuditDiffSide = 'before' | 'after';
|
|
6
|
+
type SdAuditDiffArrayKey = string | ((item: unknown) => unknown);
|
|
7
|
+
interface SdAuditDiffFormatContext {
|
|
8
|
+
readonly path: string;
|
|
9
|
+
readonly configPath: string;
|
|
10
|
+
readonly side: SdAuditDiffSide;
|
|
11
|
+
readonly kind: SdAuditDiffKind;
|
|
12
|
+
readonly before: unknown;
|
|
13
|
+
readonly after: unknown;
|
|
14
|
+
}
|
|
15
|
+
interface SdAuditDiffField {
|
|
16
|
+
readonly path: string;
|
|
17
|
+
readonly label?: string;
|
|
18
|
+
readonly order?: number;
|
|
19
|
+
readonly hidden?: boolean;
|
|
20
|
+
readonly redacted?: boolean;
|
|
21
|
+
readonly arrayKey?: SdAuditDiffArrayKey;
|
|
22
|
+
readonly enumMap?: Readonly<Record<string, unknown>>;
|
|
23
|
+
readonly format?: (value: unknown, context: SdAuditDiffFormatContext) => unknown;
|
|
24
|
+
}
|
|
25
|
+
interface SdAuditDiffOptions {
|
|
26
|
+
readonly fields?: readonly SdAuditDiffField[];
|
|
27
|
+
readonly includeUnchanged?: boolean;
|
|
28
|
+
readonly redactedValue?: unknown;
|
|
29
|
+
readonly rootLabel?: string;
|
|
30
|
+
}
|
|
31
|
+
interface SdAuditDiffRow {
|
|
32
|
+
readonly id: string;
|
|
33
|
+
readonly path: string;
|
|
34
|
+
readonly configPath: string;
|
|
35
|
+
readonly label: string;
|
|
36
|
+
readonly kind: SdAuditDiffKind;
|
|
37
|
+
readonly before: unknown;
|
|
38
|
+
readonly after: unknown;
|
|
39
|
+
readonly beforePresent: boolean;
|
|
40
|
+
readonly afterPresent: boolean;
|
|
41
|
+
readonly redacted: boolean;
|
|
42
|
+
}
|
|
43
|
+
declare function sdBuildAuditDiff(before: unknown, after: unknown, options?: SdAuditDiffOptions): SdAuditDiffRow[];
|
|
44
|
+
|
|
45
|
+
type SdAuditDiffMode = 'table' | 'detail-list';
|
|
46
|
+
interface SdAuditDiffValueTemplateContext {
|
|
47
|
+
readonly $implicit: unknown;
|
|
48
|
+
readonly row: SdAuditDiffRow;
|
|
49
|
+
readonly side: SdAuditDiffSide;
|
|
50
|
+
}
|
|
51
|
+
declare class SdAuditDiffValueTemplateDirective {
|
|
52
|
+
readonly template: TemplateRef<SdAuditDiffValueTemplateContext>;
|
|
53
|
+
static ngTemplateContextGuard(_directive: SdAuditDiffValueTemplateDirective, _context: unknown): _context is SdAuditDiffValueTemplateContext;
|
|
54
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdAuditDiffValueTemplateDirective, never>;
|
|
55
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SdAuditDiffValueTemplateDirective, "ng-template[sdAuditDiffValue]", never, {}, {}, never, never, true, never>;
|
|
56
|
+
}
|
|
57
|
+
declare class SdAuditDiff {
|
|
58
|
+
#private;
|
|
59
|
+
readonly before: _angular_core.InputSignal<unknown>;
|
|
60
|
+
readonly after: _angular_core.InputSignal<unknown>;
|
|
61
|
+
readonly options: _angular_core.InputSignal<SdAuditDiffOptions>;
|
|
62
|
+
readonly mode: _angular_core.InputSignal<SdAuditDiffMode>;
|
|
63
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
64
|
+
readonly rows: _angular_core.Signal<SdAuditDiffRow[]>;
|
|
65
|
+
protected readonly valueTemplate: _angular_core.Signal<SdAuditDiffValueTemplateDirective | undefined>;
|
|
66
|
+
protected text(key: string): string;
|
|
67
|
+
protected valueContext(row: SdAuditDiffRow, side: SdAuditDiffSide): SdAuditDiffValueTemplateContext;
|
|
68
|
+
protected displayValue(row: SdAuditDiffRow, side: SdAuditDiffSide): string;
|
|
69
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdAuditDiff, never>;
|
|
70
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdAuditDiff, "sd-audit-diff", never, { "before": { "alias": "before"; "required": false; "isSignal": true; }; "after": { "alias": "after"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, ["valueTemplate"], never, true, never>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { SdAuditDiff, SdAuditDiffValueTemplateDirective, sdBuildAuditDiff };
|
|
74
|
+
export type { SdAuditDiffArrayKey, SdAuditDiffField, SdAuditDiffFormatContext, SdAuditDiffKind, SdAuditDiffMode, SdAuditDiffOptions, SdAuditDiffRow, SdAuditDiffSide, SdAuditDiffValueTemplateContext };
|
|
@@ -20,7 +20,7 @@ declare class SdBadge {
|
|
|
20
20
|
tooltip: _angular_core.InputSignal<string | null | undefined>;
|
|
21
21
|
icon: _angular_core.InputSignal<string | null | undefined>;
|
|
22
22
|
size: _angular_core.InputSignalWithTransform<Size, Size | null | undefined>;
|
|
23
|
-
click: EventEmitter<Event>;
|
|
23
|
+
readonly click: EventEmitter<Event>;
|
|
24
24
|
onClick: (event: Event) => void;
|
|
25
25
|
effectiveColor: _angular_core.Signal<Color>;
|
|
26
26
|
baseColorClasses: _angular_core.Signal<{
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef } from '@angular/core';
|
|
3
|
+
import { ActivatedRouteSnapshot } from '@angular/router';
|
|
4
|
+
import { MaybeAsync } from '@sdcorejs/utils/models';
|
|
5
|
+
import { SdIconSet } from '@sdcorejs/angular/modules/icon';
|
|
6
|
+
|
|
7
|
+
type SdBreadcrumbLabel = MaybeAsync<string | null | undefined> | ((route?: ActivatedRouteSnapshot) => MaybeAsync<string | null | undefined>);
|
|
8
|
+
interface SdBreadcrumbItem {
|
|
9
|
+
readonly label: SdBreadcrumbLabel;
|
|
10
|
+
readonly url?: string | unknown[];
|
|
11
|
+
readonly icon?: string;
|
|
12
|
+
readonly fontSet?: SdIconSet;
|
|
13
|
+
readonly disabled?: boolean;
|
|
14
|
+
readonly clickable?: boolean;
|
|
15
|
+
}
|
|
16
|
+
interface SdBreadcrumbRouteConfig extends Omit<SdBreadcrumbItem, 'url'> {
|
|
17
|
+
readonly url?: string | unknown[];
|
|
18
|
+
}
|
|
19
|
+
interface SdBreadcrumbResolvedItem extends Omit<SdBreadcrumbItem, 'label'> {
|
|
20
|
+
readonly label: string;
|
|
21
|
+
readonly source: SdBreadcrumbItem;
|
|
22
|
+
}
|
|
23
|
+
interface SdBreadcrumbItemTemplateContext {
|
|
24
|
+
readonly $implicit: SdBreadcrumbResolvedItem;
|
|
25
|
+
readonly item: SdBreadcrumbResolvedItem;
|
|
26
|
+
}
|
|
27
|
+
interface SdBreadcrumbItemEntry {
|
|
28
|
+
readonly kind: 'item';
|
|
29
|
+
readonly item: SdBreadcrumbResolvedItem;
|
|
30
|
+
}
|
|
31
|
+
interface SdBreadcrumbEllipsisEntry {
|
|
32
|
+
readonly kind: 'ellipsis';
|
|
33
|
+
}
|
|
34
|
+
type SdBreadcrumbEntry = SdBreadcrumbItemEntry | SdBreadcrumbEllipsisEntry;
|
|
35
|
+
declare class SdBreadcrumb {
|
|
36
|
+
#private;
|
|
37
|
+
readonly items: _angular_core.InputSignal<readonly SdBreadcrumbItem[] | null | undefined>;
|
|
38
|
+
readonly maxItems: _angular_core.InputSignalWithTransform<number, string | number | null | undefined>;
|
|
39
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
40
|
+
readonly separator: _angular_core.InputSignal<string>;
|
|
41
|
+
readonly sdItemActivate: _angular_core.OutputEmitterRef<SdBreadcrumbItem>;
|
|
42
|
+
protected readonly itemTemplate: _angular_core.Signal<TemplateRef<SdBreadcrumbItemTemplateContext> | undefined>;
|
|
43
|
+
protected readonly visibleEntries: _angular_core.Signal<readonly SdBreadcrumbEntry[]>;
|
|
44
|
+
constructor();
|
|
45
|
+
protected activate(item: SdBreadcrumbResolvedItem, event: Event): void;
|
|
46
|
+
protected href(item: SdBreadcrumbResolvedItem): string | null;
|
|
47
|
+
protected templateContext(item: SdBreadcrumbResolvedItem): SdBreadcrumbItemTemplateContext;
|
|
48
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdBreadcrumb, never>;
|
|
49
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdBreadcrumb, "sd-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "maxItems": { "alias": "maxItems"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; }, { "sdItemActivate": "sdItemActivate"; }, ["itemTemplate"], never, true, never>;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { SdBreadcrumb };
|
|
53
|
+
export type { SdBreadcrumbItem, SdBreadcrumbItemTemplateContext, SdBreadcrumbLabel, SdBreadcrumbResolvedItem, SdBreadcrumbRouteConfig };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef } from '@angular/core';
|
|
3
|
+
import { SdIconSet } from '@sdcorejs/angular/modules/icon';
|
|
4
|
+
|
|
5
|
+
type SdDataStateKind = 'loading' | 'empty' | 'error' | 'forbidden' | 'success';
|
|
6
|
+
interface SdDataStateTemplateContext {
|
|
7
|
+
readonly $implicit: SdDataStateKind;
|
|
8
|
+
readonly state: SdDataStateKind;
|
|
9
|
+
readonly retry: () => void;
|
|
10
|
+
readonly action: () => void;
|
|
11
|
+
}
|
|
12
|
+
declare class SdDataStateTemplateDirective {
|
|
13
|
+
readonly template: TemplateRef<SdDataStateTemplateContext>;
|
|
14
|
+
static ngTemplateContextGuard(_directive: SdDataStateTemplateDirective, _context: unknown): _context is SdDataStateTemplateContext;
|
|
15
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdDataStateTemplateDirective, never>;
|
|
16
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SdDataStateTemplateDirective, "ng-template[sdDataStateTemplate]", never, {}, {}, never, never, true, never>;
|
|
17
|
+
}
|
|
18
|
+
declare class SdDataState {
|
|
19
|
+
readonly state: _angular_core.InputSignal<SdDataStateKind>;
|
|
20
|
+
readonly title: _angular_core.InputSignal<string | null | undefined>;
|
|
21
|
+
readonly message: _angular_core.InputSignal<string | null | undefined>;
|
|
22
|
+
readonly icon: _angular_core.InputSignal<string | null | undefined>;
|
|
23
|
+
readonly fontSet: _angular_core.InputSignal<SdIconSet | undefined>;
|
|
24
|
+
readonly retryable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
25
|
+
readonly retryLabel: _angular_core.InputSignal<string | null | undefined>;
|
|
26
|
+
readonly actionLabel: _angular_core.InputSignal<string | null | undefined>;
|
|
27
|
+
readonly compact: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
28
|
+
readonly fullPage: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
29
|
+
readonly sdRetry: _angular_core.OutputEmitterRef<void>;
|
|
30
|
+
readonly sdAction: _angular_core.OutputEmitterRef<void>;
|
|
31
|
+
protected readonly customTemplate: _angular_core.Signal<SdDataStateTemplateDirective | undefined>;
|
|
32
|
+
protected readonly effectiveIcon: _angular_core.Signal<string | null>;
|
|
33
|
+
protected readonly titleKey: _angular_core.Signal<string>;
|
|
34
|
+
protected readonly messageKey: _angular_core.Signal<string>;
|
|
35
|
+
protected readonly role: _angular_core.Signal<"alert" | "status">;
|
|
36
|
+
protected readonly retry: () => void;
|
|
37
|
+
protected readonly action: () => void;
|
|
38
|
+
protected readonly templateContext: _angular_core.Signal<SdDataStateTemplateContext>;
|
|
39
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdDataState, never>;
|
|
40
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdDataState, "sd-data-state", never, { "state": { "alias": "state"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "fontSet": { "alias": "fontSet"; "required": false; "isSignal": true; }; "retryable": { "alias": "retryable"; "required": false; "isSignal": true; }; "retryLabel": { "alias": "retryLabel"; "required": false; "isSignal": true; }; "actionLabel": { "alias": "actionLabel"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "fullPage": { "alias": "fullPage"; "required": false; "isSignal": true; }; }, { "sdRetry": "sdRetry"; "sdAction": "sdAction"; }, ["customTemplate"], ["*"], true, never>;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { SdDataState, SdDataStateTemplateDirective };
|
|
44
|
+
export type { SdDataStateKind, SdDataStateTemplateContext };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { OnInit, OnDestroy } from '@angular/core';
|
|
3
3
|
import { ModelRange, EditorConfig, ModelDocumentSelection, EventInfo, ViewDataTransfer, ClassicEditor, Plugin, Widget, ContextualBalloon } from 'ckeditor5';
|
|
4
4
|
import { I18nParams } from '@sdcorejs/angular/i18n';
|
|
5
5
|
|
|
@@ -103,7 +103,7 @@ declare class SdHeaderFooterBuilder {
|
|
|
103
103
|
#private;
|
|
104
104
|
Editor: typeof ClassicEditor;
|
|
105
105
|
set model(value: string | undefined | null);
|
|
106
|
-
modelChange:
|
|
106
|
+
readonly modelChange: i0.OutputEmitterRef<string>;
|
|
107
107
|
config: EditorConfig & {
|
|
108
108
|
_i18n?: DocumentBuilderI18n;
|
|
109
109
|
};
|
|
@@ -201,10 +201,10 @@ declare class CkCommentPlugin extends Plugin {
|
|
|
201
201
|
|
|
202
202
|
declare class SdDocumentBuilder implements OnInit, OnDestroy {
|
|
203
203
|
#private;
|
|
204
|
-
option: SdDocumentBuilderOption
|
|
204
|
+
readonly option: i0.InputSignal<SdDocumentBuilderOption>;
|
|
205
205
|
disabled: boolean;
|
|
206
206
|
set _disabled(val: boolean | '' | undefined | null);
|
|
207
|
-
contentChange:
|
|
207
|
+
readonly contentChange: i0.OutputEmitterRef<string>;
|
|
208
208
|
Editor: typeof ClassicEditor;
|
|
209
209
|
config: DocumentBuilderOption;
|
|
210
210
|
ngOnInit(): void;
|
|
@@ -245,7 +245,7 @@ declare class SdDocumentBuilder implements OnInit, OnDestroy {
|
|
|
245
245
|
hightSelectRange: (range: ModelRange) => void;
|
|
246
246
|
removeHighlightSeclectRange: () => void;
|
|
247
247
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdDocumentBuilder, never>;
|
|
248
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdDocumentBuilder, "sd-document-builder", never, { "option": { "alias": "option"; "required": true; }; "_disabled": { "alias": "disabled"; "required": false; }; }, { "contentChange": "contentChange"; }, never, never, true, never>;
|
|
248
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdDocumentBuilder, "sd-document-builder", never, { "option": { "alias": "option"; "required": true; "isSignal": true; }; "_disabled": { "alias": "disabled"; "required": false; }; }, { "contentChange": "contentChange"; }, never, never, true, never>;
|
|
249
249
|
}
|
|
250
250
|
|
|
251
251
|
export { SdDocumentBuilder, SdHeaderFooterBuilder };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { InjectionToken,
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InjectionToken, OnDestroy, OnInit, AfterViewInit, QueryList } from '@angular/core';
|
|
3
3
|
import { SdSearch, SdCustomValidator } from '@sdcorejs/angular/forms/models';
|
|
4
4
|
import { SdTableColumn, SdTableOption, SdTable } from '@sdcorejs/angular/components/table';
|
|
5
5
|
import { SdUploadFile } from '@sdcorejs/angular/components/upload-file';
|
|
@@ -12,7 +12,6 @@ import { Subject } from 'rxjs';
|
|
|
12
12
|
import { SdSideDrawer } from '@sdcorejs/angular/components/side-drawer';
|
|
13
13
|
import { SdSearch as SdSearch$1 } from '@sdcorejs/angular/forms';
|
|
14
14
|
import * as _sdcorejs_angular_components_form_generic from '@sdcorejs/angular/components/form-generic';
|
|
15
|
-
import { SdFormatNumberPipe } from '@sdcorejs/angular/pipes';
|
|
16
15
|
|
|
17
16
|
type SdFormRenderEntity = Record<string, any> & {
|
|
18
17
|
sdRaw?: Record<string, any>;
|
|
@@ -541,63 +540,15 @@ interface ISdFormGenericConfiguration {
|
|
|
541
540
|
}
|
|
542
541
|
declare const SD_FORM_GENERIC_CONFIGURATION: InjectionToken<ISdFormGenericConfiguration>;
|
|
543
542
|
|
|
544
|
-
declare class FormGenericService {
|
|
545
|
-
#private;
|
|
546
|
-
private readonly configuration;
|
|
547
|
-
get selections(): (() => Promise<SdFormGenericDefinitionSelection[]>) | SdFormGenericDefinitionSelection<any, any>[] | (() => SdFormGenericDefinitionSelection<any, any>[]);
|
|
548
|
-
get tables(): _sdcorejs_angular_components_form_generic.SdFormGenericDefinitionTable<any>[];
|
|
549
|
-
getSelection: (valuesKey: string | undefined | null) => Promise<SdFormGenericDefinitionSelection | undefined>;
|
|
550
|
-
selection: {
|
|
551
|
-
definitions: () => Promise<SdFormGenericDefinitionSelection[]>;
|
|
552
|
-
getDefinition: (valuesKey: string | undefined | null) => Promise<SdFormGenericDefinitionSelection | undefined>;
|
|
553
|
-
items: (valuesKey: string | undefined | null, args: SdFormGenericArgs) => Promise<SdFormGenericSelectionItem[] | SdSearch$1<SdFormGenericSelectionItem>>;
|
|
554
|
-
variables: {
|
|
555
|
-
detail: (valuesKey: string, values: string | number | string[] | number[], args: SdFormGenericArgs) => Promise<any>;
|
|
556
|
-
};
|
|
557
|
-
};
|
|
558
|
-
html: {
|
|
559
|
-
definitions: () => Promise<SdFormGenericDefinitionHtml[]>;
|
|
560
|
-
getContent: (template: string, query?: Record<string, any>) => Promise<string>;
|
|
561
|
-
};
|
|
562
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FormGenericService, never>;
|
|
563
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<FormGenericService>;
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
declare class ComponentViewedPipe implements PipeTransform {
|
|
567
|
-
private readonly formatNumberPipe;
|
|
568
|
-
private readonly formGenericService;
|
|
569
|
-
constructor(formatNumberPipe: SdFormatNumberPipe, formGenericService: FormGenericService);
|
|
570
|
-
transform: (value: any, entity: Record<string, any>, component: Exclude<SdFormGenericComponent, SdFormGenericHtml>) => Promise<string>;
|
|
571
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentViewedPipe, never>;
|
|
572
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<ComponentViewedPipe, "componentViewed", true>;
|
|
573
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ComponentViewedPipe>;
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
declare class ExpressionFeelPipe implements PipeTransform {
|
|
577
|
-
#private;
|
|
578
|
-
transform(condition: SdFormGenericExpression | SdFormGenericExpressionCondition): string | undefined;
|
|
579
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ExpressionFeelPipe, never>;
|
|
580
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<ExpressionFeelPipe, "expressionFeel", true>;
|
|
581
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ExpressionFeelPipe>;
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
declare class SdFormRenderService {
|
|
585
|
-
private readonly componentViewedPipe;
|
|
586
|
-
constructor(componentViewedPipe: ComponentViewedPipe);
|
|
587
|
-
viewEntities: (form: SdFormGeneric, entities: Record<string, any>[]) => Promise<Record<string, any>[]>;
|
|
588
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdFormRenderService, never>;
|
|
589
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<SdFormRenderService>;
|
|
590
|
-
}
|
|
591
|
-
|
|
592
543
|
declare class UploadComponent implements OnDestroy, OnInit {
|
|
593
544
|
#private;
|
|
594
545
|
private readonly ref;
|
|
595
|
-
setVariables: Subject<{
|
|
546
|
+
readonly setVariables: _angular_core.InputSignal<Subject<{
|
|
596
547
|
key: string;
|
|
597
548
|
value: any;
|
|
598
|
-
}
|
|
549
|
+
}>>;
|
|
599
550
|
sdUploadFile?: SdUploadFile;
|
|
600
|
-
form: FormGroup<{}
|
|
551
|
+
readonly form: _angular_core.InputSignal<FormGroup<{}>>;
|
|
601
552
|
value: any;
|
|
602
553
|
entity: Record<string, any>;
|
|
603
554
|
set _entity(val: Record<string, any>);
|
|
@@ -611,12 +562,13 @@ declare class UploadComponent implements OnDestroy, OnInit {
|
|
|
611
562
|
set _viewed(val: boolean | '' | undefined | null);
|
|
612
563
|
validator?: SdCustomValidator;
|
|
613
564
|
set _validator(validator: SdCustomValidator | undefined | null);
|
|
614
|
-
|
|
565
|
+
/** Inserted by Angular inject() migration for backwards compatibility */
|
|
566
|
+
constructor(...args: unknown[]);
|
|
615
567
|
ngOnDestroy(): void;
|
|
616
568
|
ngOnInit(): void;
|
|
617
569
|
upload: () => Promise<void | undefined>;
|
|
618
|
-
static ɵfac:
|
|
619
|
-
static ɵcmp:
|
|
570
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UploadComponent, never>;
|
|
571
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UploadComponent, "lib-upload", never, { "setVariables": { "alias": "setVariables"; "required": true; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "_entity": { "alias": "entity"; "required": true; }; "_component": { "alias": "component"; "required": true; }; "_disabled": { "alias": "disabled"; "required": false; }; "_required": { "alias": "required"; "required": false; }; "_viewed": { "alias": "viewed"; "required": false; }; "_validator": { "alias": "validator"; "required": false; }; }, {}, never, never, true, never>;
|
|
620
572
|
}
|
|
621
573
|
|
|
622
574
|
declare class TableComponent implements AfterViewInit, OnDestroy, OnInit {
|
|
@@ -626,11 +578,11 @@ declare class TableComponent implements AfterViewInit, OnDestroy, OnInit {
|
|
|
626
578
|
uploadFiles?: QueryList<SdUploadFile>;
|
|
627
579
|
table?: SdTable;
|
|
628
580
|
sideDrawer?: SdSideDrawer;
|
|
629
|
-
setVariables: Subject<{
|
|
581
|
+
readonly setVariables: _angular_core.InputSignal<Subject<{
|
|
630
582
|
key: string;
|
|
631
583
|
value: any;
|
|
632
|
-
}
|
|
633
|
-
form: FormGroup<{}
|
|
584
|
+
}>>;
|
|
585
|
+
readonly form: _angular_core.InputSignal<FormGroup<{}>>;
|
|
634
586
|
component?: SdFormGenericTable;
|
|
635
587
|
col: string;
|
|
636
588
|
set _component(val: SdFormGenericTable);
|
|
@@ -640,14 +592,15 @@ declare class TableComponent implements AfterViewInit, OnDestroy, OnInit {
|
|
|
640
592
|
set _viewed(val: boolean | '' | undefined | null);
|
|
641
593
|
model: any[];
|
|
642
594
|
set _model(val: any[] | undefined | null);
|
|
643
|
-
modelChange:
|
|
595
|
+
readonly modelChange: _angular_core.OutputEmitterRef<any[]>;
|
|
644
596
|
tableOption?: SdTableOption;
|
|
645
597
|
row: any;
|
|
646
598
|
columnValues: Record<string, SdFormGenericSelectionItem[] | SdSearch$1>;
|
|
647
599
|
formRenderColumn: Record<string, SdFormGenericTableColumn>;
|
|
648
600
|
fileKeys: string[];
|
|
649
601
|
imageKeys: string[];
|
|
650
|
-
|
|
602
|
+
/** Inserted by Angular inject() migration for backwards compatibility */
|
|
603
|
+
constructor(...args: unknown[]);
|
|
651
604
|
ngOnInit(): void;
|
|
652
605
|
ngAfterViewInit(): void;
|
|
653
606
|
ngOnDestroy(): void;
|
|
@@ -657,18 +610,18 @@ declare class TableComponent implements AfterViewInit, OnDestroy, OnInit {
|
|
|
657
610
|
onFileUploadChange(item: any, key: string, newValue: any): void;
|
|
658
611
|
getArgs(key: string): Record<string, any> | undefined;
|
|
659
612
|
upload: () => Promise<void>;
|
|
660
|
-
static ɵfac:
|
|
661
|
-
static ɵcmp:
|
|
613
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableComponent, never>;
|
|
614
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableComponent, "lib-table", never, { "setVariables": { "alias": "setVariables"; "required": true; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "_component": { "alias": "component"; "required": true; }; "_required": { "alias": "required"; "required": false; }; "_viewed": { "alias": "viewed"; "required": false; }; "_model": { "alias": "model"; "required": false; }; }, { "modelChange": "modelChange"; }, never, never, true, never>;
|
|
662
615
|
}
|
|
663
616
|
|
|
664
617
|
declare class LibItemComponent {
|
|
665
618
|
itemUpload?: UploadComponent;
|
|
666
619
|
itemTable?: TableComponent;
|
|
667
|
-
setVariables: Subject<{
|
|
620
|
+
readonly setVariables: _angular_core.InputSignal<Subject<{
|
|
668
621
|
key: string;
|
|
669
622
|
value: any;
|
|
670
|
-
}
|
|
671
|
-
form: FormGroup<{}
|
|
623
|
+
}>>;
|
|
624
|
+
readonly form: _angular_core.InputSignal<FormGroup<{}>>;
|
|
672
625
|
value: any;
|
|
673
626
|
entity: Record<string, any>;
|
|
674
627
|
set _entity(val: Record<string, any>);
|
|
@@ -684,8 +637,8 @@ declare class LibItemComponent {
|
|
|
684
637
|
validator?: SdCustomValidator;
|
|
685
638
|
set _validator(validator: SdCustomValidator);
|
|
686
639
|
upload: () => Promise<void>;
|
|
687
|
-
static ɵfac:
|
|
688
|
-
static ɵcmp:
|
|
640
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LibItemComponent, never>;
|
|
641
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LibItemComponent, "lib-item", never, { "setVariables": { "alias": "setVariables"; "required": true; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "_entity": { "alias": "entity"; "required": true; }; "_component": { "alias": "component"; "required": true; }; "_disabled": { "alias": "disabled"; "required": false; }; "_required": { "alias": "required"; "required": false; }; "_viewed": { "alias": "viewed"; "required": false; }; "_validator": { "alias": "validator"; "required": false; }; }, {}, never, never, true, never>;
|
|
689
642
|
}
|
|
690
643
|
|
|
691
644
|
declare class SdFormRender implements OnDestroy, AfterViewInit {
|
|
@@ -714,8 +667,8 @@ declare class SdFormRender implements OnDestroy, AfterViewInit {
|
|
|
714
667
|
ngOnDestroy(): void;
|
|
715
668
|
upload: () => Promise<void>;
|
|
716
669
|
getValidationMessages: (alert: SdFormGenericValidation["alert"]) => Promise<string[] | undefined>;
|
|
717
|
-
static ɵfac:
|
|
718
|
-
static ɵcmp:
|
|
670
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdFormRender, never>;
|
|
671
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdFormRender, "sd-form-render", never, { "form": { "alias": "form"; "required": false; }; "_configuration": { "alias": "configuration"; "required": true; }; "_default": { "alias": "defaultEntity"; "required": false; }; "_entity": { "alias": "entity"; "required": false; }; "_properties": { "alias": "properties"; "required": false; }; "_viewed": { "alias": "viewed"; "required": false; }; }, {}, never, never, true, never>;
|
|
719
672
|
}
|
|
720
673
|
|
|
721
674
|
declare class ConfigureValidationComponent implements AfterViewInit, OnDestroy {
|
|
@@ -728,7 +681,7 @@ declare class ConfigureValidationComponent implements AfterViewInit, OnDestroy {
|
|
|
728
681
|
value: string;
|
|
729
682
|
display: string;
|
|
730
683
|
}[];
|
|
731
|
-
accept:
|
|
684
|
+
readonly accept: _angular_core.OutputEmitterRef<SdFormGenericValidation[]>;
|
|
732
685
|
private readonly ref;
|
|
733
686
|
private readonly formGenericConfiguration;
|
|
734
687
|
constructor();
|
|
@@ -738,8 +691,8 @@ declare class ConfigureValidationComponent implements AfterViewInit, OnDestroy {
|
|
|
738
691
|
addValidation: (type: SdFormGenericValidation["type"]) => void;
|
|
739
692
|
removaValidation: (index: number) => void;
|
|
740
693
|
updateValidations: () => void;
|
|
741
|
-
static ɵfac:
|
|
742
|
-
static ɵcmp:
|
|
694
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfigureValidationComponent, never>;
|
|
695
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConfigureValidationComponent, "configure-validation", never, {}, { "accept": "accept"; }, never, never, true, never>;
|
|
743
696
|
}
|
|
744
697
|
|
|
745
698
|
type FormBuilderLayoutItem = SdFormGenericComponent | SdFormGenericGroup;
|
|
@@ -772,23 +725,23 @@ type PaletteDropTarget = {
|
|
|
772
725
|
};
|
|
773
726
|
declare class SdFormBuilder implements OnInit, OnDestroy {
|
|
774
727
|
#private;
|
|
775
|
-
readonly popupViewJSON:
|
|
776
|
-
readonly popupConfigureVariables:
|
|
777
|
-
readonly configureValidation:
|
|
778
|
-
readonly formRender:
|
|
728
|
+
readonly popupViewJSON: _angular_core.Signal<SdModal | undefined>;
|
|
729
|
+
readonly popupConfigureVariables: _angular_core.Signal<SdModal | undefined>;
|
|
730
|
+
readonly configureValidation: _angular_core.Signal<ConfigureValidationComponent | undefined>;
|
|
731
|
+
readonly formRender: _angular_core.Signal<SdFormRender | undefined>;
|
|
779
732
|
private readonly canvasDropZone;
|
|
780
|
-
readonly rowDropLists:
|
|
781
|
-
readonly connectedRowDropLists:
|
|
733
|
+
readonly rowDropLists: _angular_core.Signal<readonly CdkDropList<any>[]>;
|
|
734
|
+
readonly connectedRowDropLists: _angular_core.Signal<CdkDropList<any>[]>;
|
|
782
735
|
form: FormGroup<{}>;
|
|
783
736
|
/** Input chính: schema form. Mỗi lần ref thay đổi → effect sẽ clone về local arrays. */
|
|
784
|
-
readonly formGeneric:
|
|
737
|
+
readonly formGeneric: _angular_core.InputSignal<SdFormGeneric | undefined>;
|
|
785
738
|
readonly formBuilderComponents: FormBuilderComponent[];
|
|
786
739
|
readonly componentIcons: Record<string, {
|
|
787
740
|
symbol: string;
|
|
788
741
|
label: string;
|
|
789
742
|
}>;
|
|
790
|
-
readonly paletteSearch:
|
|
791
|
-
readonly paletteGroups:
|
|
743
|
+
readonly paletteSearch: _angular_core.WritableSignal<string>;
|
|
744
|
+
readonly paletteGroups: _angular_core.Signal<{
|
|
792
745
|
key: FormBuilderComponentGroup;
|
|
793
746
|
label: string;
|
|
794
747
|
items: FormBuilderComponent[];
|
|
@@ -798,23 +751,23 @@ declare class SdFormBuilder implements OnInit, OnDestroy {
|
|
|
798
751
|
validations: Required<SdFormGeneric>['validations'];
|
|
799
752
|
/** Cloned variables — dùng cho modal "Configure variables" (huỷ thì discard, ok thì gán ngược). */
|
|
800
753
|
clonedVariables: SdFormGenericVariable[];
|
|
801
|
-
readonly selectedComponent:
|
|
802
|
-
readonly isPreview:
|
|
803
|
-
readonly editingGroupId:
|
|
754
|
+
readonly selectedComponent: _angular_core.WritableSignal<SdFormGenericComponent | SdFormGenericGroup | undefined>;
|
|
755
|
+
readonly isPreview: _angular_core.WritableSignal<boolean>;
|
|
756
|
+
readonly editingGroupId: _angular_core.WritableSignal<string | undefined>;
|
|
804
757
|
/** Group đang được Detail (tìm ở TOP-LEVEL theo id), undefined = đang ở canvas chính. */
|
|
805
|
-
readonly editingGroup:
|
|
758
|
+
readonly editingGroup: _angular_core.Signal<SdFormGenericGroup | undefined>;
|
|
806
759
|
/** Signal toàn cục: TRUE khi BẤT KỲ cdkDrag nào đang active (palette, canvas, group, resize).
|
|
807
760
|
* Trigger class `.fb-shell--dragging` để ẩn hover/actions/resize toàn diện, không phụ thuộc :has(). */
|
|
808
|
-
readonly isAnyDragging:
|
|
809
|
-
readonly dragSource:
|
|
810
|
-
readonly draggedPaletteItem:
|
|
811
|
-
readonly paletteDropTarget:
|
|
761
|
+
readonly isAnyDragging: _angular_core.WritableSignal<boolean>;
|
|
762
|
+
readonly dragSource: _angular_core.WritableSignal<"row" | "palette" | "canvas" | "resize" | undefined>;
|
|
763
|
+
readonly draggedPaletteItem: _angular_core.WritableSignal<FormBuilderComponent | undefined>;
|
|
764
|
+
readonly paletteDropTarget: _angular_core.WritableSignal<PaletteDropTarget | undefined>;
|
|
812
765
|
/** @deprecated Internal drag-preview compatibility mirror; use no application code. */
|
|
813
|
-
readonly rowInsertionEdge:
|
|
766
|
+
readonly rowInsertionEdge: _angular_core.WritableSignal<RowInsertionEdge>;
|
|
814
767
|
/** @deprecated Internal drag-preview compatibility mirror; use no application code. */
|
|
815
|
-
readonly inlineDropTargetRow:
|
|
816
|
-
readonly resizeState:
|
|
817
|
-
readonly isResizing:
|
|
768
|
+
readonly inlineDropTargetRow: _angular_core.WritableSignal<DragDropRowItem | undefined>;
|
|
769
|
+
readonly resizeState: _angular_core.WritableSignal<ResizeState | undefined>;
|
|
770
|
+
readonly isResizing: _angular_core.Signal<boolean>;
|
|
818
771
|
expand: boolean;
|
|
819
772
|
dragDropRows: DragDropRowItem[];
|
|
820
773
|
isDragging: boolean;
|
|
@@ -902,8 +855,8 @@ declare class SdFormBuilder implements OnInit, OnDestroy {
|
|
|
902
855
|
openConfigureValidation: () => void;
|
|
903
856
|
onUpdateValidations: (validations: SdFormGenericValidation[]) => void;
|
|
904
857
|
onValidate: () => Promise<void>;
|
|
905
|
-
static ɵfac:
|
|
906
|
-
static ɵcmp:
|
|
858
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdFormBuilder, never>;
|
|
859
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdFormBuilder, "sd-form-builder", never, { "formGeneric": { "alias": "formGeneric"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
907
860
|
}
|
|
908
861
|
|
|
909
862
|
declare class SdFeelExpression implements OnInit {
|
|
@@ -920,26 +873,36 @@ declare class SdFeelExpression implements OnInit {
|
|
|
920
873
|
}[]>;
|
|
921
874
|
attributes: Attribute[];
|
|
922
875
|
attribute: Record<string, Attribute>;
|
|
923
|
-
components: (SdFormGenericComponent | SdFormGenericGroup)[]
|
|
876
|
+
readonly components: _angular_core.InputSignal<(SdFormGenericComponent | SdFormGenericGroup)[]>;
|
|
924
877
|
expression?: SdFormGenericExpression;
|
|
925
878
|
set _expression(expression: SdFormGenericExpression | undefined);
|
|
926
|
-
expressionChange:
|
|
879
|
+
readonly expressionChange: _angular_core.OutputEmitterRef<SdFormGenericExpression>;
|
|
927
880
|
model?: string;
|
|
928
881
|
set _model(model: string | undefined);
|
|
929
|
-
modelChange:
|
|
930
|
-
sdChange:
|
|
882
|
+
readonly modelChange: _angular_core.OutputEmitterRef<string | undefined>;
|
|
883
|
+
readonly sdChange: _angular_core.OutputEmitterRef<{
|
|
931
884
|
model?: string;
|
|
932
885
|
expression?: SdFormGenericExpression;
|
|
933
886
|
}>;
|
|
934
|
-
|
|
887
|
+
/** Inserted by Angular inject() migration for backwards compatibility */
|
|
888
|
+
constructor(...args: unknown[]);
|
|
935
889
|
ngOnInit(): void;
|
|
936
890
|
edit: () => Promise<void>;
|
|
937
891
|
addCondition: (conditions: SdFormGenericExpression["conditions"]) => void;
|
|
938
892
|
addCombinator: (conditions: SdFormGenericExpression["conditions"]) => void;
|
|
939
893
|
remove: (conditions: SdFormGenericExpression["conditions"], idx: number) => void;
|
|
940
894
|
onAccept: () => void;
|
|
941
|
-
static ɵfac:
|
|
942
|
-
static ɵcmp:
|
|
895
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdFeelExpression, never>;
|
|
896
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdFeelExpression, "sd-feel-expression", never, { "components": { "alias": "components"; "required": true; "isSignal": true; }; "_expression": { "alias": "expression"; "required": true; }; "_model": { "alias": "model"; "required": true; }; }, { "expressionChange": "expressionChange"; "modelChange": "modelChange"; "sdChange": "sdChange"; }, never, never, true, never>;
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
declare class SdFormRenderService {
|
|
900
|
+
private readonly componentViewedPipe;
|
|
901
|
+
/** Inserted by Angular inject() migration for backwards compatibility */
|
|
902
|
+
constructor(...args: unknown[]);
|
|
903
|
+
viewEntities: (form: SdFormGeneric, entities: Record<string, any>[]) => Promise<Record<string, any>[]>;
|
|
904
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdFormRenderService, never>;
|
|
905
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<SdFormRenderService>;
|
|
943
906
|
}
|
|
944
907
|
|
|
945
908
|
export { AttributeOperators, COMPONENT_ICONS, DayInfoPreviouses, DayInfoTypes, EvaluateExpression, ExpressionToJavascriptExpression, FormBuilderComponents, GenerateId, GenerateKey, GetAttributes, GetComponentAttributes, GetDatetimeValue, GetVariableAttributes, Operators, SD_FORM_GENERIC_CONFIGURATION, SdFeelExpression, SdFormBuilder, SdFormRender, SdFormRenderService, SdFormatComponent, TableColumnTypes, TemplateToCondition };
|