@sdcorejs/angular 20.0.10 → 20.1.0
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 +32 -23
- package/assets/STYLE-GUIDE.md +58 -72
- package/assets/scss/core/_inline-edit.scss +1 -1
- package/assets/scss/core/color.scss +56 -45
- package/assets/scss/core/form.scss +21 -9
- package/assets/scss/core/utilities/_base.scss +3 -3
- package/assets/scss/core/utilities/_border.scss +1 -1
- package/assets/scss/themes/default.scss +46 -32
- package/assets/scss/themes/material-theme.scss +8 -87
- package/components/badge/index.d.ts +5 -16
- package/components/button/index.d.ts +7 -5
- package/components/inform/index.d.ts +2 -8
- package/components/modal/index.d.ts +1 -1
- package/components/query-builder/index.d.ts +6 -6
- package/components/section/index.d.ts +1 -5
- package/components/side-drawer/index.d.ts +1 -1
- package/components/table/index.d.ts +9 -10
- package/components/tree/index.d.ts +3 -2
- package/fesm2022/sdcorejs-angular-components-anchor.mjs +5 -6
- package/fesm2022/sdcorejs-angular-components-anchor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-autoid-inspector.mjs +10 -11
- package/fesm2022/sdcorejs-angular-components-autoid-inspector.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-badge.mjs +15 -13
- package/fesm2022/sdcorejs-angular-components-badge.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-button.mjs +10 -11
- package/fesm2022/sdcorejs-angular-components-button.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-code-editor.mjs +4 -5
- package/fesm2022/sdcorejs-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-document-builder.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-document-builder.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-editor.mjs +4 -5
- package/fesm2022/sdcorejs-angular-components-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs +21 -24
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-history.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-history.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs +5 -7
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-inform.mjs +5 -15
- package/fesm2022/sdcorejs-angular-components-inform.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-mini-editor.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-mini-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-modal-resizable.mjs +5 -6
- package/fesm2022/sdcorejs-angular-components-modal-resizable.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-modal.mjs +25 -7
- package/fesm2022/sdcorejs-angular-components-modal.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-org-chart.mjs +4 -5
- package/fesm2022/sdcorejs-angular-components-org-chart.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-preview.mjs +7 -8
- package/fesm2022/sdcorejs-angular-components-preview.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs +24 -28
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs +3 -4
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-section.mjs +8 -13
- package/fesm2022/sdcorejs-angular-components-section.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs +3 -4
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-splitter.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-splitter.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-stepper.mjs +3 -4
- package/fesm2022/sdcorejs-angular-components-stepper.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tab-router.mjs +5 -6
- package/fesm2022/sdcorejs-angular-components-tab-router.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tab.mjs +3 -4
- package/fesm2022/sdcorejs-angular-components-tab.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-table.mjs +23 -27
- package/fesm2022/sdcorejs-angular-components-table.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tree.mjs +6 -8
- package/fesm2022/sdcorejs-angular-components-tree.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs +8 -9
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-view.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-view.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-directives.mjs +1 -1
- package/fesm2022/sdcorejs-angular-directives.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs +5 -7
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-checkbox.mjs +2 -2
- package/fesm2022/sdcorejs-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs +7 -9
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip.mjs +5 -7
- package/fesm2022/sdcorejs-angular-forms-chip.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs +7 -9
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date.mjs +7 -9
- package/fesm2022/sdcorejs-angular-forms-date.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs +466 -344
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-inline-text.mjs +4 -5
- package/fesm2022/sdcorejs-angular-forms-inline-text.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs +5 -7
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input.mjs +5 -7
- package/fesm2022/sdcorejs-angular-forms-input.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-label.mjs +4 -5
- package/fesm2022/sdcorejs-angular-forms-label.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-radio.mjs +2 -4
- package/fesm2022/sdcorejs-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-select.mjs +6 -8
- package/fesm2022/sdcorejs-angular-forms-select.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-switch.mjs +2 -2
- package/fesm2022/sdcorejs-angular-forms-switch.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs +5 -7
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-icon.mjs +523 -0
- package/fesm2022/sdcorejs-angular-modules-icon.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-modules-layout.mjs +29 -29
- package/fesm2022/sdcorejs-angular-modules-layout.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules.mjs +1 -0
- package/fesm2022/sdcorejs-angular-modules.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-confirm.mjs +85 -5
- package/fesm2022/sdcorejs-angular-services-confirm.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-excel.mjs +22 -14
- package/fesm2022/sdcorejs-angular-services-excel.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-loading.mjs +1 -1
- package/fesm2022/sdcorejs-angular-services-loading.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-utilities-models.mjs +3 -2
- package/fesm2022/sdcorejs-angular-utilities-models.mjs.map +1 -1
- package/forms/datetime/index.d.ts +4 -4
- package/modules/icon/index.d.ts +191 -0
- package/modules/index.d.ts +1 -0
- package/package.json +6 -1
- package/services/confirm/index.d.ts +49 -1
- package/utilities/models/index.d.ts +6 -4
|
@@ -1,101 +1,22 @@
|
|
|
1
1
|
@use '@angular/material' as mat;
|
|
2
|
-
@use './default.scss' as default;
|
|
3
|
-
@use 'sass:map';
|
|
4
2
|
|
|
5
|
-
// --------------------------------------------------
|
|
6
|
-
// Palette M2 — generated từ hex color
|
|
7
|
-
// --------------------------------------------------
|
|
8
|
-
$custom-primary-palette: mat.m2-define-palette(
|
|
9
|
-
(
|
|
10
|
-
50: #f0f1f5,
|
|
11
|
-
100: #d7dcea,
|
|
12
|
-
200: #abbce3,
|
|
13
|
-
300: #6e90e3,
|
|
14
|
-
400: #346aea,
|
|
15
|
-
500: #2a66f4,
|
|
16
|
-
600: #0645db,
|
|
17
|
-
700: #0131a3,
|
|
18
|
-
800: #00216d,
|
|
19
|
-
900: #001546,
|
|
20
|
-
contrast: (
|
|
21
|
-
400: white,
|
|
22
|
-
500: white,
|
|
23
|
-
600: white,
|
|
24
|
-
700: white,
|
|
25
|
-
800: white,
|
|
26
|
-
900: white,
|
|
27
|
-
),
|
|
28
|
-
)
|
|
29
|
-
);
|
|
30
|
-
|
|
31
|
-
$custom-accent-palette: mat.m2-define-palette(
|
|
32
|
-
(
|
|
33
|
-
50: #f1f3f1,
|
|
34
|
-
100: #dce5dd,
|
|
35
|
-
200: #bbd3bc,
|
|
36
|
-
300: #8fc291,
|
|
37
|
-
400: #67b76a,
|
|
38
|
-
500: #4caf50,
|
|
39
|
-
600: #3a8c3d,
|
|
40
|
-
700: #29692c,
|
|
41
|
-
800: #1c471e,
|
|
42
|
-
900: #132f14,
|
|
43
|
-
contrast: (
|
|
44
|
-
700: white,
|
|
45
|
-
800: white,
|
|
46
|
-
900: white,
|
|
47
|
-
),
|
|
48
|
-
)
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
$custom-warn-palette: mat.m2-define-palette(
|
|
52
|
-
(
|
|
53
|
-
50: #f5f0f0,
|
|
54
|
-
100: #ead9d6,
|
|
55
|
-
200: #e4b0aa,
|
|
56
|
-
300: #e6786b,
|
|
57
|
-
400: #ee4430,
|
|
58
|
-
500: #f82c13,
|
|
59
|
-
600: #d11801,
|
|
60
|
-
700: #9a1100,
|
|
61
|
-
800: #680b00,
|
|
62
|
-
900: #440700,
|
|
63
|
-
contrast: (
|
|
64
|
-
600: white,
|
|
65
|
-
700: white,
|
|
66
|
-
800: white,
|
|
67
|
-
900: white,
|
|
68
|
-
),
|
|
69
|
-
)
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
// --------------------------------------------------
|
|
73
|
-
// Theme
|
|
74
|
-
// --------------------------------------------------
|
|
75
|
-
$custom-theme: mat.m2-define-light-theme(
|
|
76
|
-
(
|
|
77
|
-
color: (
|
|
78
|
-
primary: $custom-primary-palette,
|
|
79
|
-
accent: $custom-accent-palette,
|
|
80
|
-
warn: $custom-warn-palette,
|
|
81
|
-
),
|
|
82
|
-
density: -3,
|
|
83
|
-
)
|
|
84
|
-
);
|
|
85
|
-
|
|
86
|
-
@include mat.all-component-themes($custom-theme);
|
|
87
|
-
|
|
88
|
-
// Fix paginator density riêng về 0 để không bị lệch
|
|
89
3
|
html {
|
|
4
|
+
color-scheme: light;
|
|
5
|
+
|
|
90
6
|
@include mat.theme(
|
|
91
7
|
(
|
|
92
8
|
color: (
|
|
93
9
|
theme-type: light,
|
|
94
10
|
primary: mat.$azure-palette,
|
|
95
|
-
tertiary: mat.$
|
|
11
|
+
tertiary: mat.$green-palette,
|
|
96
12
|
),
|
|
97
13
|
typography: Roboto,
|
|
98
14
|
density: 0,
|
|
99
15
|
)
|
|
100
16
|
);
|
|
101
17
|
}
|
|
18
|
+
|
|
19
|
+
body {
|
|
20
|
+
background: var(--mat-sys-surface);
|
|
21
|
+
color: var(--mat-sys-on-surface);
|
|
22
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { EventEmitter } from '@angular/core';
|
|
3
|
+
import { SdIconSet } from '@sdcorejs/angular/modules/icon';
|
|
3
4
|
import { Color, Size } from '@sdcorejs/utils/models';
|
|
4
|
-
import { MaterialIconFontSet } from '@sdcorejs/angular/utilities/models';
|
|
5
5
|
|
|
6
6
|
type SdBadgeType = 'tag' | 'round' | 'icon';
|
|
7
7
|
declare class SdBadge {
|
|
@@ -14,7 +14,7 @@ declare class SdBadge {
|
|
|
14
14
|
info: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15
15
|
warning: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
16
16
|
error: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
17
|
-
fontSet: _angular_core.InputSignalWithTransform<
|
|
17
|
+
fontSet: _angular_core.InputSignalWithTransform<SdIconSet | undefined, SdIconSet | null | undefined>;
|
|
18
18
|
title: _angular_core.InputSignal<string | number | null | undefined>;
|
|
19
19
|
description: _angular_core.InputSignal<string | null | undefined>;
|
|
20
20
|
tooltip: _angular_core.InputSignal<string | null | undefined>;
|
|
@@ -33,7 +33,7 @@ declare class SdBadge {
|
|
|
33
33
|
}>;
|
|
34
34
|
iconColorClasses: _angular_core.Signal<{
|
|
35
35
|
'c-primary': boolean;
|
|
36
|
-
'c-
|
|
36
|
+
'c-secondary': boolean;
|
|
37
37
|
'c-info': boolean;
|
|
38
38
|
'c-success': boolean;
|
|
39
39
|
'c-warning': boolean;
|
|
@@ -43,11 +43,8 @@ declare class SdBadge {
|
|
|
43
43
|
'c-sm': boolean;
|
|
44
44
|
'c-md': boolean;
|
|
45
45
|
'c-lg': boolean;
|
|
46
|
-
'material-icons': boolean;
|
|
47
|
-
'material-icons-outlined': boolean;
|
|
48
|
-
'material-icons-round': boolean;
|
|
49
|
-
'material-icons-sharp': boolean;
|
|
50
46
|
}>;
|
|
47
|
+
iconCssSize: _angular_core.Signal<"18px" | "24px" | "16px">;
|
|
51
48
|
containerSizeClasses: _angular_core.Signal<{
|
|
52
49
|
'c-badge--sm': boolean;
|
|
53
50
|
'c-badge--md': boolean;
|
|
@@ -63,10 +60,6 @@ declare class SdBadge {
|
|
|
63
60
|
'c-sm': boolean;
|
|
64
61
|
'c-md': boolean;
|
|
65
62
|
'c-lg': boolean;
|
|
66
|
-
'material-icons': boolean;
|
|
67
|
-
'material-icons-outlined': boolean;
|
|
68
|
-
'material-icons-round': boolean;
|
|
69
|
-
'material-icons-sharp': boolean;
|
|
70
63
|
}>;
|
|
71
64
|
containerCombinedClasses: _angular_core.Signal<{
|
|
72
65
|
'c-badge--sm': boolean;
|
|
@@ -81,7 +74,7 @@ declare class SdBadge {
|
|
|
81
74
|
}>;
|
|
82
75
|
iconCombinedClasses: _angular_core.Signal<{
|
|
83
76
|
'c-primary': boolean;
|
|
84
|
-
'c-
|
|
77
|
+
'c-secondary': boolean;
|
|
85
78
|
'c-info': boolean;
|
|
86
79
|
'c-success': boolean;
|
|
87
80
|
'c-warning': boolean;
|
|
@@ -89,10 +82,6 @@ declare class SdBadge {
|
|
|
89
82
|
'c-sm': boolean;
|
|
90
83
|
'c-md': boolean;
|
|
91
84
|
'c-lg': boolean;
|
|
92
|
-
'material-icons': boolean;
|
|
93
|
-
'material-icons-outlined': boolean;
|
|
94
|
-
'material-icons-round': boolean;
|
|
95
|
-
'material-icons-sharp': boolean;
|
|
96
85
|
}>;
|
|
97
86
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdBadge, never>;
|
|
98
87
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdBadge, "sd-badge", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "primary": { "alias": "primary"; "required": false; "isSignal": true; }; "secondary": { "alias": "secondary"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "info": { "alias": "info"; "required": false; "isSignal": true; }; "warning": { "alias": "warning"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "fontSet": { "alias": "fontSet"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "click": "click"; }, never, never, true, never>;
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { OnInit, OnDestroy } from '@angular/core';
|
|
3
3
|
import { Color } from '@sdcorejs/utils/models';
|
|
4
|
-
import {
|
|
4
|
+
import { SdIconSet } from '@sdcorejs/angular/modules/icon';
|
|
5
5
|
|
|
6
|
-
type SdButtonType = 'fill' | 'light' | 'outline' | '
|
|
6
|
+
type SdButtonType = 'fill' | 'light' | 'outline' | 'text';
|
|
7
7
|
type SdButtonSize = 'sm' | 'md' | 'lg';
|
|
8
8
|
type SdButtonHtmlType = 'button' | 'submit' | 'reset';
|
|
9
|
+
type SdButtonColor = Color | 'black';
|
|
9
10
|
declare class SdButton implements OnInit, OnDestroy {
|
|
10
11
|
#private;
|
|
11
12
|
private el;
|
|
12
13
|
autoIdInput: _angular_core.InputSignal<string | null | undefined>;
|
|
13
14
|
type: _angular_core.InputSignalWithTransform<SdButtonType, SdButtonType | null | undefined>;
|
|
14
|
-
color: _angular_core.InputSignalWithTransform<
|
|
15
|
+
color: _angular_core.InputSignalWithTransform<SdButtonColor, SdButtonColor | null | undefined>;
|
|
15
16
|
size: _angular_core.InputSignalWithTransform<SdButtonSize, SdButtonSize | null | undefined>;
|
|
16
|
-
fontSet: _angular_core.InputSignalWithTransform<
|
|
17
|
+
fontSet: _angular_core.InputSignalWithTransform<SdIconSet | undefined, SdIconSet | null | undefined>;
|
|
17
18
|
title: _angular_core.InputSignal<string | null | undefined>;
|
|
18
19
|
width: _angular_core.InputSignal<string | null | undefined>;
|
|
19
20
|
tooltip: _angular_core.InputSignal<string | null | undefined>;
|
|
@@ -29,6 +30,7 @@ declare class SdButton implements OnInit, OnDestroy {
|
|
|
29
30
|
'c-sm': boolean;
|
|
30
31
|
'c-md': boolean;
|
|
31
32
|
'c-lg': boolean;
|
|
33
|
+
'c-black': boolean;
|
|
32
34
|
'c-disabled': boolean;
|
|
33
35
|
'c-block': boolean;
|
|
34
36
|
}>;
|
|
@@ -42,4 +44,4 @@ declare class SdButton implements OnInit, OnDestroy {
|
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
export { SdButton };
|
|
45
|
-
export type { SdButtonHtmlType, SdButtonSize, SdButtonType };
|
|
47
|
+
export type { SdButtonColor, SdButtonHtmlType, SdButtonSize, SdButtonType };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { ElementRef } from '@angular/core';
|
|
3
3
|
import { Color } from '@sdcorejs/utils/models';
|
|
4
|
-
import {
|
|
4
|
+
import { SdIconSet } from '@sdcorejs/angular/modules/icon';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Marker cho vùng action custom chiếu vào <sd-inform>.
|
|
@@ -25,7 +25,7 @@ declare class SdInform {
|
|
|
25
25
|
description: _angular_core.InputSignal<string | undefined>;
|
|
26
26
|
icon: _angular_core.InputSignal<string | undefined>;
|
|
27
27
|
hideIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
28
|
-
fontSet: _angular_core.InputSignalWithTransform<
|
|
28
|
+
fontSet: _angular_core.InputSignalWithTransform<SdIconSet | undefined, SdIconSet | null | undefined>;
|
|
29
29
|
closable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
30
30
|
actionLabel: _angular_core.InputSignal<string | undefined>;
|
|
31
31
|
lineClamp: _angular_core.InputSignal<number | undefined>;
|
|
@@ -47,12 +47,6 @@ declare class SdInform {
|
|
|
47
47
|
'c-error': boolean;
|
|
48
48
|
}>;
|
|
49
49
|
effectiveIcon: _angular_core.Signal<string | null>;
|
|
50
|
-
fontSetClasses: _angular_core.Signal<{
|
|
51
|
-
'material-icons': boolean;
|
|
52
|
-
'material-icons-outlined': boolean;
|
|
53
|
-
'material-icons-round': boolean;
|
|
54
|
-
'material-icons-sharp': boolean;
|
|
55
|
-
}>;
|
|
56
50
|
hasActionSlot: _angular_core.Signal<boolean>;
|
|
57
51
|
clampLines: _angular_core.Signal<number | null>;
|
|
58
52
|
showToggle: _angular_core.Signal<boolean>;
|
|
@@ -27,7 +27,7 @@ declare class SdModal {
|
|
|
27
27
|
open: () => void;
|
|
28
28
|
close: () => void;
|
|
29
29
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdModal, never>;
|
|
30
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdModal, "sd-modal", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "modalClass": { "alias": "modalClass"; "required": false; "isSignal": true; }; "lazyLoadContent": { "alias": "lazyLoadContent"; "required": false; "isSignal": true; }; "hideClose": { "alias": "hideClose"; "required": false; "isSignal": true; }; "disableBackdropClose": { "alias": "disableBackdropClose"; "required": false; "isSignal": true; }; }, { "sdClosed": "sdClosed"; }, never, ["[sdHeaderLeft]", "[sdHeaderRight]", "
|
|
30
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdModal, "sd-modal", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "modalClass": { "alias": "modalClass"; "required": false; "isSignal": true; }; "lazyLoadContent": { "alias": "lazyLoadContent"; "required": false; "isSignal": true; }; "hideClose": { "alias": "hideClose"; "required": false; "isSignal": true; }; "disableBackdropClose": { "alias": "disableBackdropClose"; "required": false; "isSignal": true; }; }, { "sdClosed": "sdClosed"; }, never, ["[sdHeaderLeft]", "[sdHeaderRight]", "*", "[sdFooterLeft]", "[sdFooterRight]"], true, never>;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export { SdModal };
|
|
@@ -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: QbDateModeOption[];
|
|
154
154
|
/** One value-source option for field-to-field comparison UI. */
|
|
155
155
|
interface QbValueSourceOption {
|
|
156
156
|
value: QbValueSource;
|
|
@@ -159,9 +159,9 @@ 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: 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: {
|
|
165
165
|
value: string;
|
|
166
166
|
display: string;
|
|
167
167
|
}[];
|
|
@@ -204,11 +204,11 @@ declare class SdQueryBuilder {
|
|
|
204
204
|
readonly resolvedAutoId: _angular_core.Signal<string | undefined>;
|
|
205
205
|
readonly fieldByKey: _angular_core.Signal<Record<string, SdQueryBuilderField>>;
|
|
206
206
|
/** Stable option list for the date-mode select. */
|
|
207
|
-
readonly dateModes:
|
|
207
|
+
readonly dateModes: _sdcorejs_angular_components_query_builder.QbDateModeOption[];
|
|
208
208
|
/** Stable option list for the literal-vs-field operand select. */
|
|
209
|
-
readonly valueSourceOptions:
|
|
209
|
+
readonly valueSourceOptions: _sdcorejs_angular_components_query_builder.QbValueSourceOption[];
|
|
210
210
|
/** Stable combined unit×direction option list for the relative select. */
|
|
211
|
-
readonly relativeUnitOptions:
|
|
211
|
+
readonly relativeUnitOptions: {
|
|
212
212
|
value: string;
|
|
213
213
|
display: string;
|
|
214
214
|
}[];
|
|
@@ -9,15 +9,11 @@ declare class SdSection {
|
|
|
9
9
|
iconColor: _angular_core.InputSignal<Color>;
|
|
10
10
|
collapsed: _angular_core.ModelSignal<boolean>;
|
|
11
11
|
collapsible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12
|
-
/** @deprecated Use `collapsible` instead. */
|
|
13
|
-
collapsable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
14
|
-
readonly isCollapsible: _angular_core.Signal<boolean>;
|
|
15
12
|
hideHeader: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
16
|
-
noPaddingBody: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
17
13
|
constructor();
|
|
18
14
|
toggleCollapse: () => void;
|
|
19
15
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdSection, never>;
|
|
20
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdSection, "sd-section", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subTitle": { "alias": "subTitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "
|
|
16
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdSection, "sd-section", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subTitle": { "alias": "subTitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "hideHeader": { "alias": "hideHeader"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, ["[sdHeaderLeft]", "[sdHeaderRight]", "*", "[sdFooterLeft]", "[sdFooterRight]"], true, never>;
|
|
21
17
|
}
|
|
22
18
|
|
|
23
19
|
declare class SdSectionItem {
|
|
@@ -26,7 +26,7 @@ declare class SdSideDrawer {
|
|
|
26
26
|
stopLoading: () => void;
|
|
27
27
|
preventScroll: (event: Event) => void;
|
|
28
28
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdSideDrawer, never>;
|
|
29
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdSideDrawer, "sd-side-drawer", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "hideClose": { "alias": "hideClose"; "required": false; "isSignal": true; }; "disableBackdropClose": { "alias": "disableBackdropClose"; "required": false; "isSignal": true; }; "drawerClass": { "alias": "drawerClass"; "required": false; "isSignal": true; }; "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; }, { "sdClosed": "sdClosed"; }, never, ["[sdHeaderLeft]", "[sdHeaderRight]", "*", "[
|
|
29
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdSideDrawer, "sd-side-drawer", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "hideClose": { "alias": "hideClose"; "required": false; "isSignal": true; }; "disableBackdropClose": { "alias": "disableBackdropClose"; "required": false; "isSignal": true; }; "drawerClass": { "alias": "drawerClass"; "required": false; "isSignal": true; }; "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; }, { "sdClosed": "sdClosed"; }, never, ["[sdHeaderLeft]", "[sdHeaderRight]", "*", "[sdFooterLeft]", "[sdFooterRight]"], true, never>;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export { SdSideDrawer };
|
|
@@ -3,12 +3,13 @@ import { TemplateRef, Signal, EventEmitter, ChangeDetectorRef, InjectionToken, A
|
|
|
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';
|
|
6
|
-
import { SdUnwrapSignal
|
|
6
|
+
import { SdUnwrapSignal } from '@sdcorejs/angular/utilities/models';
|
|
7
7
|
import { MatPaginatorIntl, MatPaginator } from '@angular/material/paginator';
|
|
8
8
|
import { MatSort } from '@angular/material/sort';
|
|
9
9
|
import { MatTable } from '@angular/material/table';
|
|
10
10
|
import { SdExcelColumn, SdLoadingService, SdExcelService, SdNotifyService, SdConfirmService } from '@sdcorejs/angular/services';
|
|
11
11
|
import { Observable } from 'rxjs';
|
|
12
|
+
import { SdIconSet } from '@sdcorejs/angular/modules/icon';
|
|
12
13
|
import { SdButton } from '@sdcorejs/angular/components/button';
|
|
13
14
|
import { CdkDrag, CdkDropList, CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
14
15
|
import { SdQuickAction } from '@sdcorejs/angular/components/quick-action';
|
|
@@ -341,8 +342,6 @@ interface SdTableOptionFilter<T = any> {
|
|
|
341
342
|
manualFilter?: boolean;
|
|
342
343
|
/** Có thể thu gọn bộ lọc hay không */
|
|
343
344
|
collapsible?: boolean;
|
|
344
|
-
/** @deprecated Use `collapsible` instead. */
|
|
345
|
-
collapsable?: boolean;
|
|
346
345
|
/** Ẩn toolbar (xóa bộ lọc, thiết lập) của external filter, khi có ít external filter user không cần chức năng này */
|
|
347
346
|
hideExternalFilterToolbar?: boolean;
|
|
348
347
|
/** Hàm xử lý khi trigger clear filter từ external filter */
|
|
@@ -451,7 +450,7 @@ type SdTableCommand<T = any> = SdTableCommandNormal<T> | SdTableCommandChildren<
|
|
|
451
450
|
interface SdTableCommandNormal<T = any> {
|
|
452
451
|
color?: Color;
|
|
453
452
|
icon?: string | ((rowData: T) => string);
|
|
454
|
-
fontSet?:
|
|
453
|
+
fontSet?: SdIconSet;
|
|
455
454
|
title?: string | ((rowData: T) => string);
|
|
456
455
|
disabled?: boolean | ((rowData: T) => boolean);
|
|
457
456
|
hidden?: boolean | ((rowData: T) => boolean | Promise<boolean>);
|
|
@@ -460,7 +459,7 @@ interface SdTableCommandNormal<T = any> {
|
|
|
460
459
|
}
|
|
461
460
|
interface SdTableCommandChildren<T = any> {
|
|
462
461
|
icon?: string | ((rowData: T) => string);
|
|
463
|
-
fontSet?:
|
|
462
|
+
fontSet?: SdIconSet;
|
|
464
463
|
title?: string | ((rowData: T) => string);
|
|
465
464
|
disabled?: boolean | ((rowData: T) => boolean);
|
|
466
465
|
hidden?: boolean | ((rowData: T) => boolean | Promise<boolean>);
|
|
@@ -635,13 +634,13 @@ type SdTableAction<T = any> = SdTableActionNormal<T> | SdTableActionChildren<T>;
|
|
|
635
634
|
interface SdTableActionNormal<T = any> {
|
|
636
635
|
/**
|
|
637
636
|
* Tên icon hiển thị trên action button.
|
|
638
|
-
* Giá trị này được render qua `
|
|
637
|
+
* Giá trị này được render qua `sd-icon`, vì vậy nên dùng đúng tên glyph của configured icon set.
|
|
639
638
|
* Tra cứu icon tại: https://fonts.google.com/icons
|
|
640
639
|
*/
|
|
641
640
|
icon?: string;
|
|
642
641
|
/**
|
|
643
|
-
* Font set của
|
|
644
|
-
* Kiểu thực tế lấy từ `SdButton['fontSet']` và chỉ hỗ trợ các giá trị thuộc `
|
|
642
|
+
* Font set của icon.
|
|
643
|
+
* Kiểu thực tế lấy từ `SdButton['fontSet']` và chỉ hỗ trợ các giá trị thuộc `SdIconSet`,
|
|
645
644
|
* ví dụ: `material-icons`, `material-icons-outlined`, `material-icons-round`,
|
|
646
645
|
* `material-icons-sharp`.
|
|
647
646
|
* Nếu không truyền, `SdButton` sẽ dùng font set mặc định của nó.
|
|
@@ -672,11 +671,11 @@ interface SdTableActionNormal<T = any> {
|
|
|
672
671
|
interface SdTableActionChildren<T = any> {
|
|
673
672
|
/**
|
|
674
673
|
* Tên icon của action cha (group action).
|
|
675
|
-
* Giá trị nên là tên glyph
|
|
674
|
+
* Giá trị nên là tên glyph configured icon set: https://fonts.google.com/icons
|
|
676
675
|
*/
|
|
677
676
|
icon?: string;
|
|
678
677
|
/**
|
|
679
|
-
* Font set của
|
|
678
|
+
* Font set của icon cho action cha.
|
|
680
679
|
* Dùng cùng kiểu dữ liệu với `SdButton['fontSet']`.
|
|
681
680
|
*/
|
|
682
681
|
fontSet?: SdUnwrapSignal<SdButton['fontSet']>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { Signal, TemplateRef } from '@angular/core';
|
|
3
3
|
import { SdButton } from '@sdcorejs/angular/components/button';
|
|
4
|
-
import {
|
|
4
|
+
import { SdIconSet } from '@sdcorejs/angular/modules/icon';
|
|
5
|
+
import { SdUnwrapSignal } from '@sdcorejs/angular/utilities/models';
|
|
5
6
|
import { Color } from '@sdcorejs/utils/models';
|
|
6
7
|
|
|
7
8
|
type SdTreeDataSource<TItem = any> = TItem[] | Signal<TItem[]> | (() => TItem[] | Promise<TItem[]>);
|
|
@@ -60,7 +61,7 @@ interface SdTreeCommand<T = any> {
|
|
|
60
61
|
title: string | ((item: T) => string);
|
|
61
62
|
icon?: string | ((item: T) => string | undefined | null);
|
|
62
63
|
color?: Color;
|
|
63
|
-
fontSet?:
|
|
64
|
+
fontSet?: SdIconSet;
|
|
64
65
|
disabled?: boolean | ((item: T) => boolean);
|
|
65
66
|
hidden?: boolean | ((item: T) => boolean);
|
|
66
67
|
click: (item: T) => void;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import * as i1
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { input, inject, ElementRef, effect, Component, computed, output, ChangeDetectionStrategy, viewChild, contentChildren, booleanAttribute, signal, afterNextRender, untracked } from '@angular/core';
|
|
5
5
|
import { Utilities, BrowserUtilities } from '@sdcorejs/utils/fns';
|
|
6
6
|
import { Subject, Subscription, debounceTime, fromEvent, take } from 'rxjs';
|
|
7
|
-
import
|
|
8
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
+
import { SdIcon } from '@sdcorejs/angular/modules/icon';
|
|
9
8
|
|
|
10
9
|
class SdAnchorItem {
|
|
11
10
|
title = input.required(...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
@@ -59,11 +58,11 @@ class AnchorNav {
|
|
|
59
58
|
this.#subscription.unsubscribe();
|
|
60
59
|
}
|
|
61
60
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AnchorNav, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: AnchorNav, isStandalone: true, selector: "anchor-nav", inputs: { sections: { classPropertyName: "sections", publicName: "sections", isSignal: true, isRequired: true, transformFunction: null }, activeSectionId: { classPropertyName: "activeSectionId", publicName: "activeSectionId", isSignal: true, isRequired: false, transformFunction: null }, ellipsis: { classPropertyName: "ellipsis", publicName: "ellipsis", isSignal: true, isRequired: false, transformFunction: null }, sidebarWidth: { classPropertyName: "sidebarWidth", publicName: "sidebarWidth", isSignal: true, isRequired: false, transformFunction: null }, parentAutoId: { classPropertyName: "parentAutoId", publicName: "parentAutoId", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickSection: "clickSection" }, ngImport: i0, template: "<div\n class=\"c-anchor-list\"\n [style.width]=\"sidebarWidth()\"\n [style.--anchor-active-color]=\"cssActiveVar()\">\n @for (section of sections(); track section.id) {\n <div\n class=\"c-anchor-list-item\"\n [class.active]=\"section.id === activeSectionId()\"\n (click)=\"onClickSection(section.id)\"\n (keydown.enter)=\"onClickSection(section.id)\"\n [attr.data-autoId]=\"itemAutoId(section)\"\n tabindex=\"0\">\n @if (section.icon()) {\n <
|
|
61
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: AnchorNav, isStandalone: true, selector: "anchor-nav", inputs: { sections: { classPropertyName: "sections", publicName: "sections", isSignal: true, isRequired: true, transformFunction: null }, activeSectionId: { classPropertyName: "activeSectionId", publicName: "activeSectionId", isSignal: true, isRequired: false, transformFunction: null }, ellipsis: { classPropertyName: "ellipsis", publicName: "ellipsis", isSignal: true, isRequired: false, transformFunction: null }, sidebarWidth: { classPropertyName: "sidebarWidth", publicName: "sidebarWidth", isSignal: true, isRequired: false, transformFunction: null }, parentAutoId: { classPropertyName: "parentAutoId", publicName: "parentAutoId", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickSection: "clickSection" }, ngImport: i0, template: "<div\n class=\"c-anchor-list\"\n [style.width]=\"sidebarWidth()\"\n [style.--anchor-active-color]=\"cssActiveVar()\">\n @for (section of sections(); track section.id) {\n <div\n class=\"c-anchor-list-item\"\n [class.active]=\"section.id === activeSectionId()\"\n (click)=\"onClickSection(section.id)\"\n (keydown.enter)=\"onClickSection(section.id)\"\n [attr.data-autoId]=\"itemAutoId(section)\"\n tabindex=\"0\">\n @if (section.icon()) {\n <sd-icon class=\"c-anchor-list-item-icon\" [name]=\"section.icon()\"></sd-icon>\n }\n <div class=\"c-anchor-list-item-text\" [class.ellipsis]=\"ellipsis()\">\n {{ section.title() }}\n </div>\n </div>\n }\n</div>\n", styles: [".text-primary{color:var(--sd-primary)!important}.bg-primary{background:var(--sd-primary)!important}.border-primary{border-color:var(--sd-primary)!important}.text-primary-light{color:var(--sd-primary-light)!important}.bg-primary-light{background:var(--sd-primary-light)!important}.border-primary-light{border-color:var(--sd-primary-light)!important}.text-primary-dark{color:var(--sd-primary-dark)!important}.bg-primary-dark{background:var(--sd-primary-dark)!important}.border-primary-dark{border-color:var(--sd-primary-dark)!important}.text-primary-contrast{color:var(--sd-primary-contrast)!important}.bg-primary-contrast{background:var(--sd-primary-contrast)!important}.border-primary-contrast{border-color:var(--sd-primary-contrast)!important}.text-secondary{color:var(--sd-secondary)!important}.bg-secondary{background:var(--sd-secondary)!important}.border-secondary{border-color:var(--sd-secondary)!important}.text-secondary-light{color:var(--sd-secondary-light)!important}.bg-secondary-light{background:var(--sd-secondary-light)!important}.border-secondary-light{border-color:var(--sd-secondary-light)!important}.text-secondary-dark{color:var(--sd-secondary-dark)!important}.bg-secondary-dark{background:var(--sd-secondary-dark)!important}.border-secondary-dark{border-color:var(--sd-secondary-dark)!important}.text-secondary-contrast{color:var(--sd-secondary-contrast)!important}.bg-secondary-contrast{background:var(--sd-secondary-contrast)!important}.border-secondary-contrast{border-color:var(--sd-secondary-contrast)!important}.text-info{color:var(--sd-info)!important}.bg-info{background:var(--sd-info)!important}.border-info{border-color:var(--sd-info)!important}.text-info-light{color:var(--sd-info-light)!important}.bg-info-light{background:var(--sd-info-light)!important}.border-info-light{border-color:var(--sd-info-light)!important}.text-info-dark{color:var(--sd-info-dark)!important}.bg-info-dark{background:var(--sd-info-dark)!important}.border-info-dark{border-color:var(--sd-info-dark)!important}.text-info-contrast{color:var(--sd-info-contrast)!important}.bg-info-contrast{background:var(--sd-info-contrast)!important}.border-info-contrast{border-color:var(--sd-info-contrast)!important}.text-success{color:var(--sd-success)!important}.bg-success{background:var(--sd-success)!important}.border-success{border-color:var(--sd-success)!important}.text-success-light{color:var(--sd-success-light)!important}.bg-success-light{background:var(--sd-success-light)!important}.border-success-light{border-color:var(--sd-success-light)!important}.text-success-dark{color:var(--sd-success-dark)!important}.bg-success-dark{background:var(--sd-success-dark)!important}.border-success-dark{border-color:var(--sd-success-dark)!important}.text-success-contrast{color:var(--sd-success-contrast)!important}.bg-success-contrast{background:var(--sd-success-contrast)!important}.border-success-contrast{border-color:var(--sd-success-contrast)!important}.text-warning{color:var(--sd-warning)!important}.bg-warning{background:var(--sd-warning)!important}.border-warning{border-color:var(--sd-warning)!important}.text-warning-light{color:var(--sd-warning-light)!important}.bg-warning-light{background:var(--sd-warning-light)!important}.border-warning-light{border-color:var(--sd-warning-light)!important}.text-warning-dark{color:var(--sd-warning-dark)!important}.bg-warning-dark{background:var(--sd-warning-dark)!important}.border-warning-dark{border-color:var(--sd-warning-dark)!important}.text-warning-contrast{color:var(--sd-warning-contrast)!important}.bg-warning-contrast{background:var(--sd-warning-contrast)!important}.border-warning-contrast{border-color:var(--sd-warning-contrast)!important}.text-error{color:var(--sd-error)!important}.bg-error{background:var(--sd-error)!important}.border-error{border-color:var(--sd-error)!important}.text-error-light{color:var(--sd-error-light)!important}.bg-error-light{background:var(--sd-error-light)!important}.border-error-light{border-color:var(--sd-error-light)!important}.text-error-dark{color:var(--sd-error-dark)!important}.bg-error-dark{background:var(--sd-error-dark)!important}.border-error-dark{border-color:var(--sd-error-dark)!important}.text-error-contrast{color:var(--sd-error-contrast)!important}.bg-error-contrast{background:var(--sd-error-contrast)!important}.border-error-contrast{border-color:var(--sd-error-contrast)!important}.text-surface{color:var(--sd-surface)!important}.bg-surface{background:var(--sd-surface)!important}.border-surface{border-color:var(--sd-surface)!important}.text-surface-muted{color:var(--sd-surface-muted)!important}.bg-surface-muted{background:var(--sd-surface-muted)!important}.border-surface-muted{border-color:var(--sd-surface-muted)!important}.text-text{color:var(--sd-text)!important}.bg-text{background:var(--sd-text)!important}.border-text{border-color:var(--sd-text)!important}.text-text-secondary{color:var(--sd-text-secondary)!important}.bg-text-secondary{background:var(--sd-text-secondary)!important}.border-text-secondary{border-color:var(--sd-text-secondary)!important}.text-text-muted{color:var(--sd-text-muted)!important}.bg-text-muted{background:var(--sd-text-muted)!important}.border-text-muted{border-color:var(--sd-text-muted)!important}.text-border{color:var(--sd-border)!important}.bg-border{background:var(--sd-border)!important}.border-border{border-color:var(--sd-border)!important}.text-border-strong{color:var(--sd-border-strong)!important}.bg-border-strong{background:var(--sd-border-strong)!important}.border-border-strong{border-color:var(--sd-border-strong)!important}.text-disabled-bg{color:var(--sd-disabled-bg)!important}.bg-disabled-bg{background:var(--sd-disabled-bg)!important}.border-disabled-bg{border-color:var(--sd-disabled-bg)!important}.text-disabled-text{color:var(--sd-disabled-text)!important}.bg-disabled-text{background:var(--sd-disabled-text)!important}.border-disabled-text{border-color:var(--sd-disabled-text)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.border-white{border-color:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.border-black{border-color:#000!important}.text-secondary{color:var(--sd-text-secondary)!important}.text-muted{color:var(--sd-text-muted)!important}.text-body{color:var(--sd-text)!important}.bg-muted{background:var(--sd-surface-muted)!important}.c-anchor-list{height:100%;display:flex;flex-direction:column}.c-anchor-list .c-anchor-list-item{border-left:2px solid var(--sd-secondary-light);color:var(--sd-text);padding:.5rem 1.5rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;min-width:0;overflow:hidden}.c-anchor-list .c-anchor-list-item .c-anchor-list-item-icon{flex:0 0 auto}.c-anchor-list .c-anchor-list-item .c-anchor-list-item-text{flex:1 1 0;min-width:0;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.c-anchor-list .c-anchor-list-item .c-anchor-list-item-text.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-anchor-list .c-anchor-list-item.active{border-left:2px solid var(--anchor-active-color, var(--sd-primary));color:var(--anchor-active-color, var(--sd-primary));font-weight:700}.c-anchor-list .c-anchor-list-item.active .c-anchor-list-item-icon{color:var(--anchor-active-color, var(--sd-primary))}.c-anchor-list .c-anchor-list-item:not(.active){border-left:2px solid var(--sd-secondary-light);font-weight:400}\n"], dependencies: [{ kind: "component", type: SdIcon, selector: "sd-icon", inputs: ["name", "fontIcon", "color", "set", "fontSet", "size", "strokeWidth", "absoluteStrokeWidth", "ariaLabel"] }, { kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
63
62
|
}
|
|
64
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AnchorNav, decorators: [{
|
|
65
64
|
type: Component,
|
|
66
|
-
args: [{ selector: 'anchor-nav', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
65
|
+
args: [{ selector: 'anchor-nav', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdIcon, CommonModule], standalone: true, template: "<div\n class=\"c-anchor-list\"\n [style.width]=\"sidebarWidth()\"\n [style.--anchor-active-color]=\"cssActiveVar()\">\n @for (section of sections(); track section.id) {\n <div\n class=\"c-anchor-list-item\"\n [class.active]=\"section.id === activeSectionId()\"\n (click)=\"onClickSection(section.id)\"\n (keydown.enter)=\"onClickSection(section.id)\"\n [attr.data-autoId]=\"itemAutoId(section)\"\n tabindex=\"0\">\n @if (section.icon()) {\n <sd-icon class=\"c-anchor-list-item-icon\" [name]=\"section.icon()\"></sd-icon>\n }\n <div class=\"c-anchor-list-item-text\" [class.ellipsis]=\"ellipsis()\">\n {{ section.title() }}\n </div>\n </div>\n }\n</div>\n", styles: [".text-primary{color:var(--sd-primary)!important}.bg-primary{background:var(--sd-primary)!important}.border-primary{border-color:var(--sd-primary)!important}.text-primary-light{color:var(--sd-primary-light)!important}.bg-primary-light{background:var(--sd-primary-light)!important}.border-primary-light{border-color:var(--sd-primary-light)!important}.text-primary-dark{color:var(--sd-primary-dark)!important}.bg-primary-dark{background:var(--sd-primary-dark)!important}.border-primary-dark{border-color:var(--sd-primary-dark)!important}.text-primary-contrast{color:var(--sd-primary-contrast)!important}.bg-primary-contrast{background:var(--sd-primary-contrast)!important}.border-primary-contrast{border-color:var(--sd-primary-contrast)!important}.text-secondary{color:var(--sd-secondary)!important}.bg-secondary{background:var(--sd-secondary)!important}.border-secondary{border-color:var(--sd-secondary)!important}.text-secondary-light{color:var(--sd-secondary-light)!important}.bg-secondary-light{background:var(--sd-secondary-light)!important}.border-secondary-light{border-color:var(--sd-secondary-light)!important}.text-secondary-dark{color:var(--sd-secondary-dark)!important}.bg-secondary-dark{background:var(--sd-secondary-dark)!important}.border-secondary-dark{border-color:var(--sd-secondary-dark)!important}.text-secondary-contrast{color:var(--sd-secondary-contrast)!important}.bg-secondary-contrast{background:var(--sd-secondary-contrast)!important}.border-secondary-contrast{border-color:var(--sd-secondary-contrast)!important}.text-info{color:var(--sd-info)!important}.bg-info{background:var(--sd-info)!important}.border-info{border-color:var(--sd-info)!important}.text-info-light{color:var(--sd-info-light)!important}.bg-info-light{background:var(--sd-info-light)!important}.border-info-light{border-color:var(--sd-info-light)!important}.text-info-dark{color:var(--sd-info-dark)!important}.bg-info-dark{background:var(--sd-info-dark)!important}.border-info-dark{border-color:var(--sd-info-dark)!important}.text-info-contrast{color:var(--sd-info-contrast)!important}.bg-info-contrast{background:var(--sd-info-contrast)!important}.border-info-contrast{border-color:var(--sd-info-contrast)!important}.text-success{color:var(--sd-success)!important}.bg-success{background:var(--sd-success)!important}.border-success{border-color:var(--sd-success)!important}.text-success-light{color:var(--sd-success-light)!important}.bg-success-light{background:var(--sd-success-light)!important}.border-success-light{border-color:var(--sd-success-light)!important}.text-success-dark{color:var(--sd-success-dark)!important}.bg-success-dark{background:var(--sd-success-dark)!important}.border-success-dark{border-color:var(--sd-success-dark)!important}.text-success-contrast{color:var(--sd-success-contrast)!important}.bg-success-contrast{background:var(--sd-success-contrast)!important}.border-success-contrast{border-color:var(--sd-success-contrast)!important}.text-warning{color:var(--sd-warning)!important}.bg-warning{background:var(--sd-warning)!important}.border-warning{border-color:var(--sd-warning)!important}.text-warning-light{color:var(--sd-warning-light)!important}.bg-warning-light{background:var(--sd-warning-light)!important}.border-warning-light{border-color:var(--sd-warning-light)!important}.text-warning-dark{color:var(--sd-warning-dark)!important}.bg-warning-dark{background:var(--sd-warning-dark)!important}.border-warning-dark{border-color:var(--sd-warning-dark)!important}.text-warning-contrast{color:var(--sd-warning-contrast)!important}.bg-warning-contrast{background:var(--sd-warning-contrast)!important}.border-warning-contrast{border-color:var(--sd-warning-contrast)!important}.text-error{color:var(--sd-error)!important}.bg-error{background:var(--sd-error)!important}.border-error{border-color:var(--sd-error)!important}.text-error-light{color:var(--sd-error-light)!important}.bg-error-light{background:var(--sd-error-light)!important}.border-error-light{border-color:var(--sd-error-light)!important}.text-error-dark{color:var(--sd-error-dark)!important}.bg-error-dark{background:var(--sd-error-dark)!important}.border-error-dark{border-color:var(--sd-error-dark)!important}.text-error-contrast{color:var(--sd-error-contrast)!important}.bg-error-contrast{background:var(--sd-error-contrast)!important}.border-error-contrast{border-color:var(--sd-error-contrast)!important}.text-surface{color:var(--sd-surface)!important}.bg-surface{background:var(--sd-surface)!important}.border-surface{border-color:var(--sd-surface)!important}.text-surface-muted{color:var(--sd-surface-muted)!important}.bg-surface-muted{background:var(--sd-surface-muted)!important}.border-surface-muted{border-color:var(--sd-surface-muted)!important}.text-text{color:var(--sd-text)!important}.bg-text{background:var(--sd-text)!important}.border-text{border-color:var(--sd-text)!important}.text-text-secondary{color:var(--sd-text-secondary)!important}.bg-text-secondary{background:var(--sd-text-secondary)!important}.border-text-secondary{border-color:var(--sd-text-secondary)!important}.text-text-muted{color:var(--sd-text-muted)!important}.bg-text-muted{background:var(--sd-text-muted)!important}.border-text-muted{border-color:var(--sd-text-muted)!important}.text-border{color:var(--sd-border)!important}.bg-border{background:var(--sd-border)!important}.border-border{border-color:var(--sd-border)!important}.text-border-strong{color:var(--sd-border-strong)!important}.bg-border-strong{background:var(--sd-border-strong)!important}.border-border-strong{border-color:var(--sd-border-strong)!important}.text-disabled-bg{color:var(--sd-disabled-bg)!important}.bg-disabled-bg{background:var(--sd-disabled-bg)!important}.border-disabled-bg{border-color:var(--sd-disabled-bg)!important}.text-disabled-text{color:var(--sd-disabled-text)!important}.bg-disabled-text{background:var(--sd-disabled-text)!important}.border-disabled-text{border-color:var(--sd-disabled-text)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.border-white{border-color:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.border-black{border-color:#000!important}.text-secondary{color:var(--sd-text-secondary)!important}.text-muted{color:var(--sd-text-muted)!important}.text-body{color:var(--sd-text)!important}.bg-muted{background:var(--sd-surface-muted)!important}.c-anchor-list{height:100%;display:flex;flex-direction:column}.c-anchor-list .c-anchor-list-item{border-left:2px solid var(--sd-secondary-light);color:var(--sd-text);padding:.5rem 1.5rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;min-width:0;overflow:hidden}.c-anchor-list .c-anchor-list-item .c-anchor-list-item-icon{flex:0 0 auto}.c-anchor-list .c-anchor-list-item .c-anchor-list-item-text{flex:1 1 0;min-width:0;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.c-anchor-list .c-anchor-list-item .c-anchor-list-item-text.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-anchor-list .c-anchor-list-item.active{border-left:2px solid var(--anchor-active-color, var(--sd-primary));color:var(--anchor-active-color, var(--sd-primary));font-weight:700}.c-anchor-list .c-anchor-list-item.active .c-anchor-list-item-icon{color:var(--anchor-active-color, var(--sd-primary))}.c-anchor-list .c-anchor-list-item:not(.active){border-left:2px solid var(--sd-secondary-light);font-weight:400}\n"] }]
|
|
67
66
|
}], ctorParameters: () => [], propDecorators: { sections: [{ type: i0.Input, args: [{ isSignal: true, alias: "sections", required: true }] }], activeSectionId: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeSectionId", required: false }] }], ellipsis: [{ type: i0.Input, args: [{ isSignal: true, alias: "ellipsis", required: false }] }], sidebarWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "sidebarWidth", required: false }] }], parentAutoId: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentAutoId", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], clickSection: [{ type: i0.Output, args: ["clickSection"] }] } });
|
|
68
67
|
|
|
69
68
|
class SdAnchor {
|
|
@@ -178,7 +177,7 @@ class SdAnchor {
|
|
|
178
177
|
this.#cleanIntersectionObserver();
|
|
179
178
|
}
|
|
180
179
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdAnchor, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdAnchor, isStandalone: true, selector: "sd-anchor", inputs: { autoIdInput: { classPropertyName: "autoIdInput", publicName: "autoId", isSignal: true, isRequired: false, transformFunction: null }, sidebarWidth: { classPropertyName: "sidebarWidth", publicName: "sidebarWidth", isSignal: true, isRequired: false, transformFunction: null }, ellipsis: { classPropertyName: "ellipsis", publicName: "ellipsis", isSignal: true, isRequired: false, transformFunction: null }, overScroll: { classPropertyName: "overScroll", publicName: "overScroll", isSignal: true, isRequired: false, transformFunction: null }, hideNav: { classPropertyName: "hideNav", publicName: "hideNav", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "sections", predicate: SdAnchorItem, isSignal: true }], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"c-anchor-vertical\" [ngClass]=\"{ 'c-stop-scroll-propagation': !overScroll() }\" #wrapper>\n <div class=\"c-anchor-content\">\n <ng-content></ng-content>\n </div>\n\n @if (!hideNav()) {\n <div class=\"c-anchor-list\" [style.flex-basis]=\"sidebarWidth()\">\n <anchor-nav\n [sections]=\"sections()\"\n [ellipsis]=\"ellipsis()\"\n [sidebarWidth]=\"sidebarWidth()\"\n [activeSectionId]=\"activeSectionId()\"\n [parentAutoId]=\"autoId()\"\n [color]=\"color()\"\n (clickSection)=\"scrollSectionByClick($event)\">\n </anchor-nav>\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.c-anchor-vertical{position:relative;display:flex;height:100%;width:100%;gap:16px;overflow-y:auto}.c-anchor-vertical.c-stop-scroll-propagation{overscroll-behavior:contain}.c-anchor-vertical .c-anchor-content{flex:1 1 auto;min-width:0}.c-anchor-vertical .c-anchor-list{flex:0 0 auto;position:sticky;top:0;right:6px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1
|
|
180
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdAnchor, isStandalone: true, selector: "sd-anchor", inputs: { autoIdInput: { classPropertyName: "autoIdInput", publicName: "autoId", isSignal: true, isRequired: false, transformFunction: null }, sidebarWidth: { classPropertyName: "sidebarWidth", publicName: "sidebarWidth", isSignal: true, isRequired: false, transformFunction: null }, ellipsis: { classPropertyName: "ellipsis", publicName: "ellipsis", isSignal: true, isRequired: false, transformFunction: null }, overScroll: { classPropertyName: "overScroll", publicName: "overScroll", isSignal: true, isRequired: false, transformFunction: null }, hideNav: { classPropertyName: "hideNav", publicName: "hideNav", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "sections", predicate: SdAnchorItem, isSignal: true }], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"c-anchor-vertical\" [ngClass]=\"{ 'c-stop-scroll-propagation': !overScroll() }\" #wrapper>\n <div class=\"c-anchor-content\">\n <ng-content></ng-content>\n </div>\n\n @if (!hideNav()) {\n <div class=\"c-anchor-list\" [style.flex-basis]=\"sidebarWidth()\">\n <anchor-nav\n [sections]=\"sections()\"\n [ellipsis]=\"ellipsis()\"\n [sidebarWidth]=\"sidebarWidth()\"\n [activeSectionId]=\"activeSectionId()\"\n [parentAutoId]=\"autoId()\"\n [color]=\"color()\"\n (clickSection)=\"scrollSectionByClick($event)\">\n </anchor-nav>\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.c-anchor-vertical{position:relative;display:flex;height:100%;width:100%;gap:16px;overflow-y:auto}.c-anchor-vertical.c-stop-scroll-propagation{overscroll-behavior:contain}.c-anchor-vertical .c-anchor-content{flex:1 1 auto;min-width:0}.c-anchor-vertical .c-anchor-list{flex:0 0 auto;position:sticky;top:0;right:6px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: AnchorNav, selector: "anchor-nav", inputs: ["sections", "activeSectionId", "ellipsis", "sidebarWidth", "parentAutoId", "color"], outputs: ["clickSection"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
182
181
|
}
|
|
183
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdAnchor, decorators: [{
|
|
184
183
|
type: Component,
|