@sdcorejs/angular 21.0.8 → 21.0.10
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 +270 -140
- package/assets/scss/core/utilities/_grid.scss +25 -19
- package/fesm2022/sdcorejs-angular-components-anchor.mjs +15 -18
- package/fesm2022/sdcorejs-angular-components-anchor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-autoid-inspector.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-avatar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-badge.mjs +0 -1
- package/fesm2022/sdcorejs-angular-components-badge.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-button.mjs +6 -7
- package/fesm2022/sdcorejs-angular-components-button.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-chart.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-ckeditor-styles.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-code-editor.mjs +1 -1
- package/fesm2022/sdcorejs-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-document-builder.mjs +17 -26
- package/fesm2022/sdcorejs-angular-components-document-builder.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-editor.mjs +7 -2
- package/fesm2022/sdcorejs-angular-components-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs +712 -427
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs +35 -18
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-inform.mjs +0 -1
- package/fesm2022/sdcorejs-angular-components-inform.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-mini-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-modal-resizable.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-modal.mjs +21 -14
- package/fesm2022/sdcorejs-angular-components-modal.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-operator.mjs +1 -1
- package/fesm2022/sdcorejs-angular-components-operator.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-org-chart.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-preview.mjs +33 -29
- package/fesm2022/sdcorejs-angular-components-preview.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs +15 -28
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs +2 -3
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-quick-action.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-section.mjs +0 -1
- package/fesm2022/sdcorejs-angular-components-section.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-splitter.mjs +4 -4
- package/fesm2022/sdcorejs-angular-components-splitter.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-stepper.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tab-router.mjs +31 -31
- package/fesm2022/sdcorejs-angular-components-tab-router.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tab.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-table.mjs +800 -855
- package/fesm2022/sdcorejs-angular-components-table.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tree.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs +6 -6
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-view.mjs +3 -9
- package/fesm2022/sdcorejs-angular-components-view.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-configurations.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-directives.mjs +2 -7
- package/fesm2022/sdcorejs-angular-directives.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs +0 -3
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs +2 -2
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip.mjs +2 -2
- package/fesm2022/sdcorejs-angular-forms-chip.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs +11 -5
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date.mjs +2 -4
- package/fesm2022/sdcorejs-angular-forms-date.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs +2 -6
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input-color.mjs +4 -4
- package/fesm2022/sdcorejs-angular-forms-input-color.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs +1 -1
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-label.mjs +0 -1
- package/fesm2022/sdcorejs-angular-forms-label.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-models.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-radio.mjs +12 -2
- package/fesm2022/sdcorejs-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-select.mjs +45 -14
- package/fesm2022/sdcorejs-angular-forms-select.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-switch.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs +2 -2
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-handlers.mjs +3 -6
- package/fesm2022/sdcorejs-angular-handlers.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-i18n.mjs +11 -7
- package/fesm2022/sdcorejs-angular-i18n.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-interceptors.mjs +0 -2
- package/fesm2022/sdcorejs-angular-interceptors.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-auth.mjs +14 -38
- package/fesm2022/sdcorejs-angular-modules-auth.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-authom.mjs +14 -14
- package/fesm2022/sdcorejs-angular-modules-authom.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-keycloak.mjs +22 -11
- package/fesm2022/sdcorejs-angular-modules-keycloak.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-layout.mjs +30 -27
- package/fesm2022/sdcorejs-angular-modules-layout.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-permission.mjs +5 -12
- package/fesm2022/sdcorejs-angular-modules-permission.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-pipes.mjs +71 -17
- package/fesm2022/sdcorejs-angular-pipes.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-api.mjs +0 -2
- package/fesm2022/sdcorejs-angular-services-api.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-cache.mjs +5 -11
- package/fesm2022/sdcorejs-angular-services-cache.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-confirm.mjs +16 -21
- package/fesm2022/sdcorejs-angular-services-confirm.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-docx.mjs +2 -8
- package/fesm2022/sdcorejs-angular-services-docx.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-excel.mjs +2 -2
- package/fesm2022/sdcorejs-angular-services-excel.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-license.mjs +5 -12
- package/fesm2022/sdcorejs-angular-services-license.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-notify.mjs +70 -87
- package/fesm2022/sdcorejs-angular-services-notify.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-storage.mjs +6 -15
- package/fesm2022/sdcorejs-angular-services-storage.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-utilities-data-state.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-utilities-extensions.mjs +47 -5
- package/fesm2022/sdcorejs-angular-utilities-extensions.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-utilities-models.mjs +18 -3
- package/fesm2022/sdcorejs-angular-utilities-models.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/types/sdcorejs-angular-components-document-builder.d.ts +2 -2
- package/types/sdcorejs-angular-components-form-generic.d.ts +45 -23
- package/types/sdcorejs-angular-components-import-excel.d.ts +2 -2
- package/types/sdcorejs-angular-components-mini-editor.d.ts +4 -4
- package/types/sdcorejs-angular-components-modal.d.ts +1 -1
- package/types/sdcorejs-angular-components-query-builder.d.ts +4 -4
- package/types/sdcorejs-angular-components-tab-router.d.ts +3 -3
- package/types/sdcorejs-angular-components-table.d.ts +8 -11
- package/types/sdcorejs-angular-components-view.d.ts +1 -1
- package/types/sdcorejs-angular-forms-chip-calendar.d.ts +2 -2
- package/types/sdcorejs-angular-forms-chip.d.ts +2 -2
- package/types/sdcorejs-angular-forms-date-range.d.ts +2 -0
- package/types/sdcorejs-angular-forms-input-color.d.ts +2 -1
- package/types/sdcorejs-angular-forms-select.d.ts +10 -2
- package/types/sdcorejs-angular-modules-auth.d.ts +7 -9
- package/types/sdcorejs-angular-modules-permission.d.ts +5 -6
- package/types/sdcorejs-angular-pipes.d.ts +22 -4
- package/types/sdcorejs-angular-services-confirm.d.ts +3 -3
- package/types/sdcorejs-angular-services-license.d.ts +2 -3
- package/types/sdcorejs-angular-services-notify.d.ts +4 -5
- package/types/sdcorejs-angular-services-storage.d.ts +2 -3
- package/types/sdcorejs-angular-utilities-extensions.d.ts +9 -1
|
@@ -150,7 +150,7 @@ interface QbDateModeOption {
|
|
|
150
150
|
icon: string;
|
|
151
151
|
}
|
|
152
152
|
/** Stable option list for the date-mode select (module ref — never reallocated). */
|
|
153
|
-
declare const QB_DATE_MODES:
|
|
153
|
+
declare const QB_DATE_MODES: readonly QbDateModeOption[];
|
|
154
154
|
/** One value-source option for field-to-field comparison UI. */
|
|
155
155
|
interface QbValueSourceOption {
|
|
156
156
|
value: QbValueSource;
|
|
@@ -159,12 +159,12 @@ interface QbValueSourceOption {
|
|
|
159
159
|
icon: string;
|
|
160
160
|
}
|
|
161
161
|
/** Stable option list for choosing between a literal value and another field. */
|
|
162
|
-
declare const QB_VALUE_SOURCE_OPTIONS:
|
|
162
|
+
declare const QB_VALUE_SOURCE_OPTIONS: readonly QbValueSourceOption[];
|
|
163
163
|
/** Stable combined direction×unit option list (token `'unit:direction'`). */
|
|
164
|
-
declare const QB_RELATIVE_UNIT_OPTIONS:
|
|
164
|
+
declare const QB_RELATIVE_UNIT_OPTIONS: readonly {
|
|
165
165
|
value: string;
|
|
166
166
|
display: string;
|
|
167
|
-
}
|
|
167
|
+
}[];
|
|
168
168
|
/** Shared empty option array — stable ref for fallbacks (avoids per-call allocation). */
|
|
169
169
|
declare const QB_EMPTY_OPTIONS: SdQueryBuilderFieldOption[];
|
|
170
170
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Type, ElementRef, ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
2
|
+
import { InjectionToken, Type, ElementRef, ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
3
3
|
import { Color } from '@sdcorejs/utils/models';
|
|
4
4
|
import { Subject, BehaviorSubject } from 'rxjs';
|
|
5
5
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
@@ -22,6 +22,7 @@ interface SdTab {
|
|
|
22
22
|
tabInfoChanges: Subject<SdTabInfo>;
|
|
23
23
|
beforeClose?: () => boolean | Promise<boolean>;
|
|
24
24
|
}
|
|
25
|
+
declare const SD_TAB: InjectionToken<SdTab>;
|
|
25
26
|
|
|
26
27
|
declare class SdTabRouterNavComponent {
|
|
27
28
|
tabRouterNav: i0.Signal<ElementRef<any> | undefined>;
|
|
@@ -87,7 +88,6 @@ declare class SdTabRouterService {
|
|
|
87
88
|
currentTabChanges: BehaviorSubject<SdTab | undefined>;
|
|
88
89
|
newTabs: BehaviorSubject<SdTab | undefined>;
|
|
89
90
|
updateTabs: BehaviorSubject<SdTab | undefined>;
|
|
90
|
-
constructor();
|
|
91
91
|
addBuilder: (builder: SdTabComponentBuilder) => void;
|
|
92
92
|
get currentTab(): SdTab | undefined;
|
|
93
93
|
get currentKey(): string | null;
|
|
@@ -100,5 +100,5 @@ declare class SdTabRouterService {
|
|
|
100
100
|
static ɵprov: i0.ɵɵInjectableDeclaration<SdTabRouterService>;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
export { SdTabComponent, SdTabRouterOutletComponent, SdTabRouterService };
|
|
103
|
+
export { SD_TAB, SdTabComponent, SdTabRouterOutletComponent, SdTabRouterService };
|
|
104
104
|
export type { SdTab, SdTabComponentArgs, SdTabComponentBuilder, SdTabInfo };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { TemplateRef, Signal, EventEmitter, ChangeDetectorRef, InjectionToken,
|
|
2
|
+
import { TemplateRef, Signal, EventEmitter, ChangeDetectorRef, InjectionToken, AfterViewInit, OnDestroy } from '@angular/core';
|
|
3
3
|
import { SdBadge } from '@sdcorejs/angular/components/badge';
|
|
4
4
|
import { SdSearch } from '@sdcorejs/angular/forms';
|
|
5
5
|
import { Operator, NestedKeyOf, Order, PagingReq, Color } from '@sdcorejs/utils/models';
|
|
@@ -60,6 +60,7 @@ interface SdTableColumnBase<T = any> {
|
|
|
60
60
|
filter?: {
|
|
61
61
|
disabled?: boolean;
|
|
62
62
|
default?: any;
|
|
63
|
+
onChange?: (value: any, column?: SdTableColumn<T>, columnFilter?: Record<string, any>) => void;
|
|
63
64
|
operator?: {
|
|
64
65
|
default?: Operator;
|
|
65
66
|
enable?: boolean;
|
|
@@ -81,7 +82,7 @@ interface SdTableColumnNumber<T = any> extends SdTableColumnBase<T> {
|
|
|
81
82
|
field: NestedKeyOf<T>;
|
|
82
83
|
type: 'number';
|
|
83
84
|
useBadge?: UseBadgeFunc<T>;
|
|
84
|
-
filter?: SdTableColumnBase['filter'] & {
|
|
85
|
+
filter?: SdTableColumnBase<T>['filter'] & {
|
|
85
86
|
type?: 'split-number';
|
|
86
87
|
};
|
|
87
88
|
}
|
|
@@ -98,7 +99,7 @@ interface SdTableColumnDate<T = any> extends SdTableColumnBase<T> {
|
|
|
98
99
|
field: NestedKeyOf<T>;
|
|
99
100
|
type: 'date' | 'datetime' | 'time';
|
|
100
101
|
useBadge?: UseBadgeFunc<T>;
|
|
101
|
-
filter?: SdTableColumnBase['filter'] & {
|
|
102
|
+
filter?: SdTableColumnBase<T>['filter'] & {
|
|
102
103
|
type?: 'daterange' | 'date' | 'split-date';
|
|
103
104
|
};
|
|
104
105
|
}
|
|
@@ -1146,7 +1147,7 @@ declare class MatPaginatorIntlCro extends MatPaginatorIntl {
|
|
|
1146
1147
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MatPaginatorIntlCro, never>;
|
|
1147
1148
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MatPaginatorIntlCro>;
|
|
1148
1149
|
}
|
|
1149
|
-
declare class SdTable<T = unknown> implements
|
|
1150
|
+
declare class SdTable<T = unknown> implements AfterViewInit, OnDestroy {
|
|
1150
1151
|
#private;
|
|
1151
1152
|
autoIdInput: _angular_core.InputSignal<string | null | undefined>;
|
|
1152
1153
|
autoId: _angular_core.Signal<string | undefined>;
|
|
@@ -1182,14 +1183,13 @@ declare class SdTable<T = unknown> implements OnInit, AfterViewInit, OnDestroy {
|
|
|
1182
1183
|
filterRegister: TableFilterRegister;
|
|
1183
1184
|
key: string;
|
|
1184
1185
|
columnOperator: Record<string, Operator>;
|
|
1185
|
-
columnFilter?:
|
|
1186
|
-
cacheValues: Record<string,
|
|
1186
|
+
columnFilter?: NonNullable<TableFilterValue['columnFilter']>;
|
|
1187
|
+
cacheValues: Record<string, unknown[]>;
|
|
1187
1188
|
treeRevision: _angular_core.WritableSignal<number>;
|
|
1188
1189
|
exporting: _angular_core.WritableSignal<boolean>;
|
|
1189
1190
|
exportTitle: _angular_core.WritableSignal<string>;
|
|
1190
1191
|
tableConfiguration: ISdTableConfiguration | null;
|
|
1191
1192
|
constructor();
|
|
1192
|
-
ngOnInit(): void;
|
|
1193
1193
|
ngAfterViewInit(): void;
|
|
1194
1194
|
ngOnDestroy(): void;
|
|
1195
1195
|
getFilterRequest: () => SdTableFilterRequest;
|
|
@@ -1229,10 +1229,7 @@ declare class SdTable<T = unknown> implements OnInit, AfterViewInit, OnDestroy {
|
|
|
1229
1229
|
groupContext: (header: SdTableItem<T>) => SdTableGroupDefContext<T>;
|
|
1230
1230
|
rowStyle: (row: SdTableItem<T>, index?: number) => Record<string, string> | null;
|
|
1231
1231
|
clearFilter: () => void;
|
|
1232
|
-
setFilter: (args
|
|
1233
|
-
columnFilter?: Record<string, any>;
|
|
1234
|
-
externalFilter?: Record<string, any>;
|
|
1235
|
-
}) => void;
|
|
1232
|
+
setFilter: (args?: Pick<TableFilterValue, "columnFilter" | "externalFilter">) => void;
|
|
1236
1233
|
get dataItems(): T[];
|
|
1237
1234
|
get selectedItems(): T[];
|
|
1238
1235
|
detectChanges: () => void;
|
|
@@ -21,7 +21,7 @@ declare class SdView {
|
|
|
21
21
|
* why: `input.required()` forces the parent to bind `[display]` (compile error otherwise),
|
|
22
22
|
* so the component never has to guess a fallback string from `value`.
|
|
23
23
|
*/
|
|
24
|
-
display: _angular_core.InputSignal<
|
|
24
|
+
display: _angular_core.InputSignal<unknown>;
|
|
25
25
|
/** When set, the value renders as a link (`<a [sdHref]>`) instead of plain text. */
|
|
26
26
|
hyperlink: _angular_core.InputSignal<string | null | undefined>;
|
|
27
27
|
/** Label template handed down by a parent control (wins over `label` + `#sdLabel`). */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { AfterViewInit, ElementRef, TemplateRef } from '@angular/core';
|
|
2
|
+
import { AfterViewInit, OnDestroy, ElementRef, TemplateRef } from '@angular/core';
|
|
3
3
|
import { FormGroup, FormControl, FormGroupDirective, NgForm } from '@angular/forms';
|
|
4
4
|
import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
|
|
5
5
|
import { ErrorStateMatcher } from '@angular/material/core';
|
|
@@ -15,7 +15,7 @@ declare class SdChipCalendarErrorStateMatcher implements ErrorStateMatcher {
|
|
|
15
15
|
constructor(formControl: FormControl);
|
|
16
16
|
isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;
|
|
17
17
|
}
|
|
18
|
-
declare class SdChipCalendar implements AfterViewInit {
|
|
18
|
+
declare class SdChipCalendar implements AfterViewInit, OnDestroy {
|
|
19
19
|
#private;
|
|
20
20
|
menuTrigger: _angular_core.Signal<MatMenuTrigger | undefined>;
|
|
21
21
|
calendar: _angular_core.Signal<MatCalendar<Date> | undefined>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { PipeTransform, AfterViewInit, ElementRef, TemplateRef } from '@angular/core';
|
|
2
|
+
import { PipeTransform, AfterViewInit, OnDestroy, ElementRef, TemplateRef } from '@angular/core';
|
|
3
3
|
import { FormGroup, FormControl, FormGroupDirective, NgForm } from '@angular/forms';
|
|
4
4
|
import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
|
|
5
5
|
import { MatChipInputEvent } from '@angular/material/chips';
|
|
@@ -21,7 +21,7 @@ declare class SdChipErrorStateMatcher implements ErrorStateMatcher {
|
|
|
21
21
|
constructor(formControl: FormControl);
|
|
22
22
|
isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;
|
|
23
23
|
}
|
|
24
|
-
declare class SdChip implements AfterViewInit {
|
|
24
|
+
declare class SdChip implements AfterViewInit, OnDestroy {
|
|
25
25
|
#private;
|
|
26
26
|
autoIdInput: _angular_core.InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
27
27
|
autoId: _angular_core.Signal<string | undefined>;
|
|
@@ -21,6 +21,8 @@ declare class SdDateRange implements OnDestroy, OnInit {
|
|
|
21
21
|
private formConfig;
|
|
22
22
|
autoIdInput: _angular_core.InputSignal<string | null | undefined>;
|
|
23
23
|
autoId: _angular_core.Signal<string | undefined>;
|
|
24
|
+
fromAutoId: _angular_core.Signal<string | undefined>;
|
|
25
|
+
toAutoId: _angular_core.Signal<string | undefined>;
|
|
24
26
|
readonly dataDisabled: _angular_core.Signal<"true" | "false">;
|
|
25
27
|
readonly dataInvalid: _angular_core.Signal<"true" | "false">;
|
|
26
28
|
readonly dataEmpty: _angular_core.Signal<"true" | "false">;
|
|
@@ -19,6 +19,7 @@ declare class SdInputColor {
|
|
|
19
19
|
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
20
20
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
21
21
|
readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
22
|
+
readonly hideInlineError: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
22
23
|
/** Display mode — forwarded to the inner `<sd-input>`. `'inline'` = borderless inline-edit; disabled `'inline'` → static. */
|
|
23
24
|
readonly viewed: _angular_core.InputSignalWithTransform<SdViewed, SdViewedInput>;
|
|
24
25
|
readonly valueModel: _angular_core.ModelSignal<string | null | undefined>;
|
|
@@ -31,7 +32,7 @@ declare class SdInputColor {
|
|
|
31
32
|
onPickerChange: (ev: Event) => void;
|
|
32
33
|
clear: (ev?: Event) => void;
|
|
33
34
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdInputColor, never>;
|
|
34
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdInputColor, "sd-input-color", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "autoId": { "alias": "autoId"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; }, never, never, true, never>;
|
|
35
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdInputColor, "sd-input-color", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "autoId": { "alias": "autoId"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; }, never, never, true, never>;
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
export { SD_INPUT_COLOR_HEX_PATTERN, SdInputColor };
|
|
@@ -10,10 +10,14 @@ import { Size } from '@sdcorejs/utils/models';
|
|
|
10
10
|
|
|
11
11
|
interface SdSelectFooterActionContext {
|
|
12
12
|
searchText: string;
|
|
13
|
+
filteredItems: unknown[];
|
|
14
|
+
selectedItems: unknown[];
|
|
13
15
|
}
|
|
16
|
+
type SdSelectFooterActionWhenFn = (ctx: SdSelectFooterActionContext) => boolean | Promise<boolean>;
|
|
17
|
+
type SdSelectFooterActionWhen = 'always' | 'empty' | 'has-result' | SdSelectFooterActionWhenFn;
|
|
14
18
|
declare class SdSelectFooterActionDirective {
|
|
15
19
|
readonly templateRef: TemplateRef<any>;
|
|
16
|
-
readonly when: _angular_core.InputSignal<
|
|
20
|
+
readonly when: _angular_core.InputSignal<SdSelectFooterActionWhen>;
|
|
17
21
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdSelectFooterActionDirective, never>;
|
|
18
22
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SdSelectFooterActionDirective, "ng-template[sdSelectFooterAction]", never, { "when": { "alias": "when"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
19
23
|
}
|
|
@@ -109,6 +113,8 @@ declare class SdSelect<T extends object | string | number = Record<string, unkno
|
|
|
109
113
|
readonly searchText: _angular_core.WritableSignal<string>;
|
|
110
114
|
readonly footerActionContext: Signal<{
|
|
111
115
|
searchText: string;
|
|
116
|
+
filteredItems: T[];
|
|
117
|
+
selectedItems: T[];
|
|
112
118
|
}>;
|
|
113
119
|
readonly visibleFooterActions: Signal<SdSelectFooterActionDirective[]>;
|
|
114
120
|
normalizedValue: Signal<string | number | boolean | (string | number | boolean)[] | null | undefined>;
|
|
@@ -128,6 +134,8 @@ declare class SdSelect<T extends object | string | number = Record<string, unkno
|
|
|
128
134
|
clear: ($event?: any) => void;
|
|
129
135
|
onClick: () => void;
|
|
130
136
|
focus: () => void;
|
|
137
|
+
/** Clears the panel search/filter input and resets `searchText`. */
|
|
138
|
+
clearSearch: () => void;
|
|
131
139
|
/** Open the select panel programmatically (anchors to the mat-select trigger). */
|
|
132
140
|
open: () => void;
|
|
133
141
|
onOpenedChange: (isOpened: boolean) => void;
|
|
@@ -136,4 +144,4 @@ declare class SdSelect<T extends object | string | number = Record<string, unkno
|
|
|
136
144
|
}
|
|
137
145
|
|
|
138
146
|
export { SdSelect, SdSelectFooterActionDirective };
|
|
139
|
-
export type { SdSelectFooterActionContext };
|
|
147
|
+
export type { SdSelectFooterActionContext, SdSelectFooterActionWhen, SdSelectFooterActionWhenFn };
|
|
@@ -16,14 +16,14 @@ interface SdAuthInfo<T = any> {
|
|
|
16
16
|
|
|
17
17
|
declare class SdAuthService {
|
|
18
18
|
#private;
|
|
19
|
-
private authConfiguration;
|
|
20
19
|
getAuthInfo?: Signal<SdAuthInfo | undefined>;
|
|
21
20
|
signout$?: Observable<void>;
|
|
22
21
|
changePassword$?: Observable<void>;
|
|
23
|
-
|
|
22
|
+
private readonly authConfiguration;
|
|
23
|
+
constructor();
|
|
24
24
|
signout: () => void;
|
|
25
25
|
changePassword: () => void;
|
|
26
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdAuthService,
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdAuthService, never>;
|
|
27
27
|
static ɵprov: i0.ɵɵInjectableDeclaration<SdAuthService>;
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -43,20 +43,18 @@ interface IAuthConfigurationGuard {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
declare class SdAuthGuard implements CanActivate {
|
|
46
|
-
private authConfiguration;
|
|
46
|
+
private readonly authConfiguration;
|
|
47
47
|
protected readonly router: Router;
|
|
48
|
-
constructor(authConfiguration: ISdAuthConfiguration, router: Router);
|
|
49
48
|
canActivate: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => _angular_router.MaybeAsync<_angular_router.GuardResult>;
|
|
50
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdAuthGuard,
|
|
49
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdAuthGuard, never>;
|
|
51
50
|
static ɵprov: i0.ɵɵInjectableDeclaration<SdAuthGuard>;
|
|
52
51
|
}
|
|
53
52
|
|
|
54
53
|
declare class SdPortalGuard implements CanActivate {
|
|
55
|
-
private authConfiguration;
|
|
54
|
+
private readonly authConfiguration;
|
|
56
55
|
protected readonly router: Router;
|
|
57
|
-
constructor(authConfiguration: ISdAuthConfiguration, router: Router);
|
|
58
56
|
canActivate: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => _angular_router.MaybeAsync<_angular_router.GuardResult>;
|
|
59
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdPortalGuard,
|
|
57
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdPortalGuard, never>;
|
|
60
58
|
static ɵprov: i0.ɵɵInjectableDeclaration<SdPortalGuard>;
|
|
61
59
|
}
|
|
62
60
|
|
|
@@ -18,9 +18,9 @@ import { CanActivate, CanActivateChild, ActivatedRouteSnapshot, RouterStateSnaps
|
|
|
18
18
|
interface ISdPermissionConfiguration {
|
|
19
19
|
/**
|
|
20
20
|
* Khóa định danh cấu hình.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
* Dùng để phân biệt khi hệ thống mở rộng theo nhiều profile permission.
|
|
22
|
+
*
|
|
23
|
+
* Lưu ý: `undefined` cũng được xem là một key hợp lệ (cấu hình mặc định).
|
|
24
24
|
*/
|
|
25
25
|
key?: string;
|
|
26
26
|
/**
|
|
@@ -88,9 +88,8 @@ declare class SdPermissionDirective {
|
|
|
88
88
|
|
|
89
89
|
declare class SdPermissionGuard implements CanActivate, CanActivateChild {
|
|
90
90
|
#private;
|
|
91
|
-
private configuration;
|
|
92
|
-
private permissionService;
|
|
93
|
-
constructor(configuration: ISdPermissionConfiguration | ISdPermissionConfiguration[], permissionService: SdPermissionService);
|
|
91
|
+
private readonly configuration;
|
|
92
|
+
private readonly permissionService;
|
|
94
93
|
canActivate: (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => Promise<boolean>;
|
|
95
94
|
canActivateChild: (activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) => Promise<boolean>;
|
|
96
95
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdPermissionGuard, never>;
|
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { PipeTransform } from '@angular/core';
|
|
3
|
-
import { ISdCoreConfiguration } from '@sdcorejs/angular/configurations';
|
|
4
3
|
import * as _angular_platform_browser from '@angular/platform-browser';
|
|
5
4
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
6
5
|
import { Observable } from 'rxjs';
|
|
7
6
|
|
|
7
|
+
declare class SdFormatDatePipe implements PipeTransform {
|
|
8
|
+
transform(value: unknown, format?: string): string | null;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdFormatDatePipe, never>;
|
|
10
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SdFormatDatePipe, "sdFormatDate", true>;
|
|
11
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SdFormatDatePipe>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
declare class SdFormatDatetimePipe implements PipeTransform {
|
|
15
|
+
transform(value: unknown, format?: string): string | null;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdFormatDatetimePipe, never>;
|
|
17
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SdFormatDatetimePipe, "sdFormatDatetime", true>;
|
|
18
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SdFormatDatetimePipe>;
|
|
19
|
+
}
|
|
20
|
+
|
|
8
21
|
declare class SdFormatNumberPipe implements PipeTransform {
|
|
9
22
|
private readonly coreConfiguration;
|
|
10
|
-
constructor(coreConfiguration: ISdCoreConfiguration | undefined);
|
|
11
23
|
transform(value: any, digits?: number, format?: '1,234,567.89' | '1.234.567,89'): string | null;
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdFormatNumberPipe,
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdFormatNumberPipe, never>;
|
|
13
25
|
static ɵpipe: i0.ɵɵPipeDeclaration<SdFormatNumberPipe, "sdFormatNumber", true>;
|
|
14
26
|
static ɵprov: i0.ɵɵInjectableDeclaration<SdFormatNumberPipe>;
|
|
15
27
|
}
|
|
@@ -40,4 +52,10 @@ declare class SdEmptyPipe implements PipeTransform {
|
|
|
40
52
|
static ɵpipe: i0.ɵɵPipeDeclaration<SdEmptyPipe, "sdEmpty", true>;
|
|
41
53
|
}
|
|
42
54
|
|
|
43
|
-
|
|
55
|
+
declare class SdViewPipe implements PipeTransform {
|
|
56
|
+
transform(value: unknown): string;
|
|
57
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdViewPipe, never>;
|
|
58
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SdViewPipe, "sdView", true>;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export { SdEmptyPipe, SdFormatDatePipe, SdFormatDatetimePipe, SdFormatNumberPipe, SdSafeHtmlPipe, SdTimeDifferentPipe, SdViewPipe };
|
|
@@ -34,12 +34,12 @@ interface DialogData {
|
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
36
|
declare class DialogConfirmComponent {
|
|
37
|
-
dialogRef: MatDialogRef<DialogConfirmComponent>;
|
|
38
|
-
data: DialogData;
|
|
39
37
|
value: any;
|
|
40
38
|
required: boolean;
|
|
41
39
|
id: string;
|
|
42
|
-
|
|
40
|
+
readonly dialogRef: MatDialogRef<any, any>;
|
|
41
|
+
readonly data: DialogData;
|
|
42
|
+
constructor();
|
|
43
43
|
onCancel: () => void;
|
|
44
44
|
onAccept: () => void;
|
|
45
45
|
static ɵfac: i0.ɵɵFactoryDeclaration<DialogConfirmComponent, never>;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { ISdCoreConfiguration } from '@sdcorejs/angular/configurations';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
2
|
|
|
4
3
|
declare class SdLicenseService {
|
|
5
4
|
#private;
|
|
6
5
|
private readonly coreConfiguration;
|
|
7
|
-
constructor(
|
|
6
|
+
constructor();
|
|
8
7
|
enforceLicense: () => void;
|
|
9
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdLicenseService,
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdLicenseService, never>;
|
|
10
9
|
static ɵprov: i0.ɵɵInjectableDeclaration<SdLicenseService>;
|
|
11
10
|
}
|
|
12
11
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ApplicationRef, EnvironmentInjector } from '@angular/core';
|
|
3
2
|
|
|
4
3
|
type ToastType = 'success' | 'info' | 'warning' | 'error';
|
|
5
4
|
interface ToastData {
|
|
@@ -37,11 +36,11 @@ interface NotifyOption {
|
|
|
37
36
|
|
|
38
37
|
declare class SdNotifyService {
|
|
39
38
|
#private;
|
|
40
|
-
private appRef;
|
|
41
|
-
private injector;
|
|
42
|
-
private document;
|
|
43
39
|
readonly toasts: i0.WritableSignal<ToastData[]>;
|
|
44
|
-
|
|
40
|
+
private readonly appRef;
|
|
41
|
+
private readonly injector;
|
|
42
|
+
private readonly document;
|
|
43
|
+
constructor();
|
|
45
44
|
success(message: string, option?: NotifyOption): void;
|
|
46
45
|
info(message: string, option?: NotifyOption): void;
|
|
47
46
|
warning(message: string | string[], option?: NotifyOption): void;
|
|
@@ -23,10 +23,9 @@ declare const SD_STORAGE_CONFIG: InjectionToken<ISdStorageConfiguration>;
|
|
|
23
23
|
|
|
24
24
|
declare class SdStorageService {
|
|
25
25
|
#private;
|
|
26
|
-
private configuration;
|
|
27
|
-
constructor(configuration: ISdStorageConfiguration);
|
|
26
|
+
private readonly configuration;
|
|
28
27
|
create<T = any>(key: string | object, option?: SdStorageOption<T>): SdStorage<T>;
|
|
29
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdStorageService,
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdStorageService, never>;
|
|
30
29
|
static ɵprov: i0.ɵɵInjectableDeclaration<SdStorageService>;
|
|
31
30
|
}
|
|
32
31
|
|
|
@@ -84,4 +84,12 @@ declare const hslToHex: (h: number, s: number, l: number) => string;
|
|
|
84
84
|
/** @deprecated Use {@link ColorUtilities.rgbToHex} from `@sdcorejs/utils/fns` instead */
|
|
85
85
|
declare const rgbToHex: (r: number, g: number, b: number) => string;
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
type PlainObject = Record<PropertyKey, unknown>;
|
|
88
|
+
declare const ObjectUtilities: {
|
|
89
|
+
isPlainObject: (value: unknown) => value is PlainObject;
|
|
90
|
+
clone: <T>(value: T) => T;
|
|
91
|
+
merge: <T extends PlainObject, U extends PlainObject>(target: T, source: U) => T & U;
|
|
92
|
+
deepMerge: <T extends PlainObject>(...sources: T[]) => T;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export { ObjectUtilities, SdUtilities, StringUtilities, hslToHex, rgbToHex };
|