@sd-angular/core 19.0.0-beta.4 → 19.0.0-beta.41

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.
Files changed (177) hide show
  1. package/assets/scss/ckeditor5.scss +60 -2
  2. package/assets/scss/core/bootstrap.scss +17 -0
  3. package/assets/scss/core/grid.scss +40 -0
  4. package/assets/scss/sd-core.scss +1 -0
  5. package/components/avatar/index.d.ts +1 -0
  6. package/components/avatar/src/avatar.component.d.ts +15 -0
  7. package/components/badge/src/badge.component.d.ts +77 -19
  8. package/components/button/src/button.component.d.ts +26 -28
  9. package/components/document-builder/index.d.ts +1 -0
  10. package/components/document-builder/src/document-builder.component.d.ts +20 -37
  11. package/components/document-builder/src/document-builder.model.d.ts +11 -10
  12. package/components/document-builder/src/plugins/block-space/block-space.plugin.d.ts +9 -0
  13. package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.d.ts +43 -0
  14. package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.model.d.ts +50 -0
  15. package/components/document-builder/src/plugins/heading/heading.plugin.d.ts +5 -0
  16. package/components/document-builder/src/plugins/highlight-range/highlight-range.plugin.d.ts +4 -0
  17. package/components/document-builder/src/plugins/image-custom/image-custom.plugin.d.ts +31 -0
  18. package/components/document-builder/src/plugins/{image-upload.plugin.d.ts → image-upload/image-upload.plugin.d.ts} +0 -4
  19. package/components/document-builder/src/plugins/index.d.ts +11 -5
  20. package/components/document-builder/src/plugins/{page-orientation.plugin.d.ts → page-orientation/page-orientation.plugin.d.ts} +2 -2
  21. package/components/document-builder/src/plugins/paste-handler/filters/bookmark.d.ts +14 -0
  22. package/components/document-builder/src/plugins/paste-handler/filters/br.d.ts +15 -0
  23. package/components/document-builder/src/plugins/paste-handler/filters/image.d.ts +25 -0
  24. package/components/document-builder/src/plugins/paste-handler/filters/list.d.ts +29 -0
  25. package/components/document-builder/src/plugins/paste-handler/filters/parse.d.ts +35 -0
  26. package/components/document-builder/src/plugins/paste-handler/filters/removeboldwrapper.d.ts +15 -0
  27. package/components/document-builder/src/plugins/paste-handler/filters/removegooglesheetstag.d.ts +15 -0
  28. package/components/document-builder/src/plugins/paste-handler/filters/removeinvalidtablewidth.d.ts +15 -0
  29. package/components/document-builder/src/plugins/paste-handler/filters/removemsattributes.d.ts +15 -0
  30. package/components/document-builder/src/plugins/paste-handler/filters/removestyleblock.d.ts +15 -0
  31. package/components/document-builder/src/plugins/paste-handler/filters/removexmlns.d.ts +15 -0
  32. package/components/document-builder/src/plugins/paste-handler/filters/replacemsfootnotes.d.ts +54 -0
  33. package/components/document-builder/src/plugins/paste-handler/filters/replacetabswithinprewithspaces.d.ts +24 -0
  34. package/components/document-builder/src/plugins/paste-handler/filters/space.d.ts +27 -0
  35. package/components/document-builder/src/plugins/paste-handler/filters/table.d.ts +16 -0
  36. package/components/document-builder/src/plugins/paste-handler/filters/utils.d.ts +25 -0
  37. package/components/document-builder/src/plugins/paste-handler/index.d.ts +35 -0
  38. package/components/document-builder/src/plugins/paste-handler/normalizers/googledocsnormalizer.d.ts +31 -0
  39. package/components/document-builder/src/plugins/paste-handler/normalizers/googlesheetsnormalizer.d.ts +31 -0
  40. package/components/document-builder/src/plugins/paste-handler/normalizers/mswordnormalizer.d.ts +29 -0
  41. package/components/document-builder/src/plugins/paste-handler/types.d.ts +30 -0
  42. package/components/document-builder/src/plugins/table-custom/index.d.ts +34 -0
  43. package/components/index.d.ts +3 -0
  44. package/components/mini-editor/index.d.ts +2 -0
  45. package/components/mini-editor/src/mini-editor.component.d.ts +90 -0
  46. package/components/mini-editor/src/mini-editor.model.d.ts +42 -0
  47. package/components/side-drawer/src/side-drawer.component.d.ts +1 -2
  48. package/components/table/src/components/selector-action/action-filter.pipe.d.ts +11 -10
  49. package/components/table/src/directives/index.d.ts +2 -0
  50. package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts +9 -0
  51. package/components/table/src/directives/sticky-shadow.directive.d.ts +17 -0
  52. package/components/table/src/models/table-column.model.d.ts +32 -32
  53. package/components/table/src/models/table-command.model.d.ts +7 -3
  54. package/components/table/src/models/table-item.model.d.ts +5 -3
  55. package/components/table/src/models/table-option-export.model.d.ts +3 -2
  56. package/components/table/src/models/table-option-selector.model.d.ts +11 -10
  57. package/components/table/src/models/table-option.model.d.ts +10 -8
  58. package/components/table/src/services/table-filter/table-filter.model.d.ts +2 -2
  59. package/components/table/src/table.component.d.ts +33 -35
  60. package/components/view/index.d.ts +1 -0
  61. package/components/view/src/view.component.d.ts +16 -0
  62. package/components/workflow/src/models/index.d.ts +1 -0
  63. package/directives/index.d.ts +1 -0
  64. package/directives/src/sd-href.directive.d.ts +9 -0
  65. package/fesm2022/sd-angular-core-components-avatar.mjs +90 -0
  66. package/fesm2022/sd-angular-core-components-avatar.mjs.map +1 -0
  67. package/fesm2022/sd-angular-core-components-badge.mjs +102 -91
  68. package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
  69. package/fesm2022/sd-angular-core-components-button.mjs +64 -96
  70. package/fesm2022/sd-angular-core-components-button.mjs.map +1 -1
  71. package/fesm2022/sd-angular-core-components-document-builder.mjs +3860 -963
  72. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  73. package/fesm2022/sd-angular-core-components-history.mjs +1 -1
  74. package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
  75. package/fesm2022/sd-angular-core-components-import-excel.mjs +1 -1
  76. package/fesm2022/sd-angular-core-components-import-excel.mjs.map +1 -1
  77. package/fesm2022/sd-angular-core-components-mini-editor.mjs +326 -0
  78. package/fesm2022/sd-angular-core-components-mini-editor.mjs.map +1 -0
  79. package/fesm2022/sd-angular-core-components-preview.mjs +1 -1
  80. package/fesm2022/sd-angular-core-components-preview.mjs.map +1 -1
  81. package/fesm2022/sd-angular-core-components-side-drawer.mjs +21 -8
  82. package/fesm2022/sd-angular-core-components-side-drawer.mjs.map +1 -1
  83. package/fesm2022/sd-angular-core-components-tab-router.mjs +1 -1
  84. package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
  85. package/fesm2022/sd-angular-core-components-table.mjs +724 -472
  86. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  87. package/fesm2022/sd-angular-core-components-upload-file.mjs +1 -1
  88. package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
  89. package/fesm2022/sd-angular-core-components-view.mjs +45 -0
  90. package/fesm2022/sd-angular-core-components-view.mjs.map +1 -0
  91. package/fesm2022/sd-angular-core-components-workflow.mjs +33 -43
  92. package/fesm2022/sd-angular-core-components-workflow.mjs.map +1 -1
  93. package/fesm2022/sd-angular-core-components.mjs +3 -0
  94. package/fesm2022/sd-angular-core-components.mjs.map +1 -1
  95. package/fesm2022/sd-angular-core-directives.mjs +80 -27
  96. package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
  97. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +257 -361
  98. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  99. package/fesm2022/sd-angular-core-forms-date-range.mjs +145 -245
  100. package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
  101. package/fesm2022/sd-angular-core-forms-date.mjs +137 -271
  102. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  103. package/fesm2022/sd-angular-core-forms-datetime.mjs +138 -276
  104. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  105. package/fesm2022/sd-angular-core-forms-input-number.mjs +174 -336
  106. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  107. package/fesm2022/sd-angular-core-forms-input.mjs +130 -283
  108. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  109. package/fesm2022/sd-angular-core-forms-radio.mjs +5 -2
  110. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  111. package/fesm2022/sd-angular-core-forms-select.mjs +303 -419
  112. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  113. package/fesm2022/sd-angular-core-forms-textarea.mjs +133 -226
  114. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  115. package/fesm2022/sd-angular-core-modules-keycloak.mjs +126 -0
  116. package/fesm2022/sd-angular-core-modules-keycloak.mjs.map +1 -0
  117. package/fesm2022/sd-angular-core-modules-layout.mjs +54 -19
  118. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  119. package/fesm2022/sd-angular-core-modules.mjs +1 -1
  120. package/fesm2022/sd-angular-core-pipes.mjs +21 -1
  121. package/fesm2022/sd-angular-core-pipes.mjs.map +1 -1
  122. package/fesm2022/sd-angular-core-services-confirm.mjs +2 -2
  123. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  124. package/fesm2022/sd-angular-core-services-docx.mjs +173 -0
  125. package/fesm2022/sd-angular-core-services-docx.mjs.map +1 -0
  126. package/fesm2022/sd-angular-core-services-notify.mjs +2 -2
  127. package/fesm2022/sd-angular-core-services-notify.mjs.map +1 -1
  128. package/fesm2022/sd-angular-core-services.mjs +1 -0
  129. package/fesm2022/sd-angular-core-services.mjs.map +1 -1
  130. package/fesm2022/sd-angular-core-utilities-extensions.mjs +10 -6
  131. package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
  132. package/fesm2022/sd-angular-core-utilities-models.mjs +15 -1
  133. package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
  134. package/forms/autocomplete/src/autocomplete.component.d.ts +51 -56
  135. package/forms/date/src/date.component.d.ts +41 -45
  136. package/forms/date-range/src/date-range.component.d.ts +28 -33
  137. package/forms/datetime/src/datetime.component.d.ts +41 -45
  138. package/forms/input/src/input.component.d.ts +46 -56
  139. package/forms/input-number/src/input-number.component.d.ts +47 -54
  140. package/forms/select/src/select.component.d.ts +54 -58
  141. package/forms/textarea/src/textarea.component.d.ts +34 -41
  142. package/modules/index.d.ts +1 -1
  143. package/modules/keycloak/index.d.ts +4 -0
  144. package/modules/keycloak/keycloak.configuration.d.ts +11 -0
  145. package/modules/keycloak/keycloak.interceptor.d.ts +2 -0
  146. package/modules/keycloak/keycloak.module.d.ts +18 -0
  147. package/modules/keycloak/keycloak.service.d.ts +14 -0
  148. package/modules/layout/components/sidebar-v1/components/sidebar/sidebar.component.d.ts +1 -0
  149. package/modules/layout/components/sidebar-v1/components/user/user.component.d.ts +5 -2
  150. package/modules/layout/configurations/layout.configuration.d.ts +3 -0
  151. package/modules/layout/services/storage/storage.service.d.ts +1 -0
  152. package/package.json +96 -78
  153. package/pipes/index.d.ts +1 -0
  154. package/pipes/src/empty.pipe.d.ts +7 -0
  155. package/sd-angular-core-19.0.0-beta.41.tgz +0 -0
  156. package/services/confirm/src/lib/confirm.service.d.ts +1 -0
  157. package/services/docx/index.d.ts +1 -0
  158. package/services/docx/src/lib/docx.model.d.ts +9 -0
  159. package/services/docx/src/lib/docx.service.d.ts +13 -0
  160. package/services/docx/src/public-api.d.ts +2 -0
  161. package/services/index.d.ts +1 -0
  162. package/utilities/extensions/src/string.extension.d.ts +2 -0
  163. package/utilities/models/index.d.ts +3 -0
  164. package/utilities/models/src/filter.model.d.ts +14 -2
  165. package/utilities/models/src/icon.model.d.ts +2 -0
  166. package/utilities/models/src/nested-key-of.model.d.ts +5 -0
  167. package/utilities/models/src/pattern.model.d.ts +1 -1
  168. package/utilities/models/src/unwrap-signal.model.d.ts +6 -0
  169. package/components/document-builder/src/plugins/comment.plugin.d.ts +0 -4
  170. package/components/document-builder/src/plugins/table-fit.plugin.d.ts +0 -4
  171. package/fesm2022/sd-angular-core-modules-oidc.mjs +0 -127
  172. package/fesm2022/sd-angular-core-modules-oidc.mjs.map +0 -1
  173. package/modules/oidc/dynamic-sts.loader.d.ts +0 -11
  174. package/modules/oidc/index.d.ts +0 -2
  175. package/modules/oidc/oidc.configuration.d.ts +0 -11
  176. package/modules/oidc/oidc.module.d.ts +0 -14
  177. /package/components/document-builder/src/plugins/{variable.plugin.d.ts → variable/variable.plugin.d.ts} +0 -0
@@ -0,0 +1,90 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { ClassicEditor } from 'ckeditor5';
3
+ import { ControlValueAccessor } from '@angular/forms';
4
+ import { SdMiniEditorOption, SdMiniEditorConfig } from './mini-editor.model';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Component sd-mini-editor - Editor đơn giản cho comment input
8
+ * Sử dụng CKEditor với chế độ đơn giản (bold, italic, link)
9
+ * Hỗ trợ mention và output format (html/markdown)
10
+ *
11
+ * @example
12
+ * ```html
13
+ * <sd-mini-editor
14
+ * [option]="editorOption"
15
+ * [(ngModel)]="content"
16
+ * (contentChange)="onContentChange($event)"
17
+ * >
18
+ * </sd-mini-editor>
19
+ * ```
20
+ */
21
+ export declare class SdMiniEditor implements ControlValueAccessor {
22
+ #private;
23
+ /** Cấu hình option cho editor */
24
+ option: SdMiniEditorOption;
25
+ /** NgModel binding - nội dung HTML/Markdown */
26
+ value: string;
27
+ valueChange: EventEmitter<string>;
28
+ /** Event emitter khi content thay đổi */
29
+ contentChange: EventEmitter<string>;
30
+ /** Event emitter khi blur */
31
+ blur: EventEmitter<FocusEvent>;
32
+ /** Event emitter khi focus */
33
+ focus: EventEmitter<FocusEvent>;
34
+ /** Disabled state */
35
+ disabled: boolean;
36
+ Editor: typeof ClassicEditor;
37
+ get editorConfig(): SdMiniEditorConfig;
38
+ constructor();
39
+ ngOnDestroy(): void;
40
+ /**
41
+ * Xử lý khi editor ready
42
+ */
43
+ onReady(editor: ClassicEditor): void;
44
+ /**
45
+ * Set nội dung cho editor
46
+ */
47
+ setContent(content: string): void;
48
+ /**
49
+ * Get nội dung từ editor
50
+ */
51
+ getContent(): string;
52
+ /**
53
+ * Get nội dung HTML gốc (không convert)
54
+ */
55
+ getHtmlContent(): string;
56
+ /**
57
+ * Focus vào editor
58
+ */
59
+ focusEditor(): void;
60
+ /**
61
+ * Insert mention vào vị trí con trỏ hiện tại
62
+ */
63
+ insertMention(item: {
64
+ id: string;
65
+ name: string;
66
+ marker?: string;
67
+ }): void;
68
+ /**
69
+ * Get danh sách mentions trong nội dung
70
+ */
71
+ getMentions(): Array<{
72
+ id: string;
73
+ name: string;
74
+ marker: string;
75
+ }>;
76
+ /**
77
+ * ControlValueAccessor: Write value
78
+ */
79
+ writeValue(value: string): void;
80
+ /**
81
+ * ControlValueAccessor: Register change callback
82
+ */
83
+ registerOnChange(fn: (value: string) => void): void;
84
+ /**
85
+ * ControlValueAccessor: Register touched callback
86
+ */
87
+ registerOnTouched(fn: () => void): void;
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdMiniEditor, never>;
89
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdMiniEditor, "sd-mini-editor", never, { "option": { "alias": "option"; "required": true; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "valueChange": "valueChange"; "contentChange": "contentChange"; "blur": "blur"; "focus": "focus"; }, never, never, true, never>;
90
+ }
@@ -0,0 +1,42 @@
1
+ import { EditorConfig, MentionFeed, MentionFeedObjectItem } from 'ckeditor5';
2
+ export type { MentionFeedObjectItem };
3
+ export type SdMiniEditorOutputFormat = 'html' | 'markdown';
4
+ export interface SdMiniEditorMentionConfig {
5
+ /** Feed data cho mention - có thể là array hoặc function trả về Promise
6
+ * CKEditor MentionFeed đã hỗ trợ: marker, minChars, dropdownLimit, itemRenderer
7
+ */
8
+ feeds?: MentionFeed[];
9
+ /** Custom render function cho giá trị mention khi chèn vào editor
10
+ * Trả về object với text và các attributes tùy chỉnh
11
+ */
12
+ valueRender?: (item: MentionFeedObjectItem) => {
13
+ text: string;
14
+ attributes?: Record<string, string>;
15
+ };
16
+ }
17
+ export type SdMiniEditorMentionItem<T = any> = MentionFeedObjectItem & {
18
+ data?: T;
19
+ };
20
+ export interface SdMiniEditorOption {
21
+ /** Output format: 'html' hoặc 'markdown' (mặc định: 'html') */
22
+ outputFormat?: SdMiniEditorOutputFormat;
23
+ /** Placeholder text */
24
+ placeholder?: string;
25
+ /** Chiều cao editor (mặc định: auto) */
26
+ height?: string;
27
+ /** Bật/tắt mention plugin */
28
+ enableMention?: boolean;
29
+ /** Cấu hình mention */
30
+ mentionConfig?: SdMiniEditorMentionConfig;
31
+ /** Callback khi nội dung thay đổi */
32
+ onChange?: (content: string) => void;
33
+ /** Callback khi blur */
34
+ onBlur?: (event: FocusEvent) => void;
35
+ /** Callback khi focus */
36
+ onFocus?: (event: FocusEvent) => void;
37
+ /** Callback khi mention được chọn */
38
+ onMentionSelect?: (item: SdMiniEditorMentionItem) => void;
39
+ }
40
+ export type SdMiniEditorConfig = EditorConfig & {
41
+ getOption?: () => SdMiniEditorOption;
42
+ };
@@ -1,5 +1,5 @@
1
1
  import { CdkPortal } from '@angular/cdk/portal';
2
- import { AfterViewInit, ApplicationRef, ChangeDetectorRef, EventEmitter, Injector, OnDestroy, ElementRef, ViewContainerRef } from '@angular/core';
2
+ import { AfterViewInit, ApplicationRef, ChangeDetectorRef, EventEmitter, Injector, OnDestroy, ViewContainerRef } from '@angular/core';
3
3
  import { SdBaseSecureComponent } from '@sd-angular/core/components/base';
4
4
  import { SdLoadingService } from '@sd-angular/core/services';
5
5
  import { Observable } from 'rxjs';
@@ -13,7 +13,6 @@ export declare class SdSideDrawer extends SdBaseSecureComponent implements After
13
13
  private loadingService;
14
14
  id: string;
15
15
  portal: CdkPortal;
16
- drawerContainerRef: ElementRef;
17
16
  title: string;
18
17
  set _title(val: string | null | undefined);
19
18
  width: string;
@@ -2,6 +2,7 @@ import { PipeTransform } from '@angular/core';
2
2
  import { SdTableAction } from '../../models/table-option-selector.model';
3
3
  import { SdTableItem } from '../../models/table-item.model';
4
4
  import { SdButton } from '@sd-angular/core/components/button';
5
+ import { SdUnwrapSignal } from '@sd-angular/core/utilities/models';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class ActionFilterPipe implements PipeTransform {
7
8
  #private;
@@ -13,21 +14,21 @@ export type Action<T = any> = ActionNormal<T> | ActionChildren<T>;
13
14
  interface ActionNormal<T = any> {
14
15
  variant: 'normal';
15
16
  icon?: string;
16
- fontSet?: SdButton['fontSet'];
17
- tooltip?: SdButton['tooltip'];
18
- title?: SdButton['title'];
19
- color?: SdButton['color'];
20
- type?: SdButton['type'];
17
+ fontSet?: SdUnwrapSignal<SdButton['fontSet']>;
18
+ tooltip?: SdUnwrapSignal<SdButton['tooltip']>;
19
+ title?: SdUnwrapSignal<SdButton['title']>;
20
+ color?: SdUnwrapSignal<SdButton['color']>;
21
+ type?: SdUnwrapSignal<SdButton['type']>;
21
22
  click: (selectedItems?: T[]) => void;
22
23
  }
23
24
  interface ActionChildren<T = any> {
24
25
  variant: 'children';
25
26
  icon?: string;
26
- fontSet?: SdButton['fontSet'];
27
- tooltip?: SdButton['tooltip'];
28
- title?: SdButton['title'];
29
- color?: SdButton['color'];
30
- type?: SdButton['type'];
27
+ fontSet?: SdUnwrapSignal<SdButton['fontSet']>;
28
+ tooltip?: SdUnwrapSignal<SdButton['tooltip']>;
29
+ title?: SdUnwrapSignal<SdButton['title']>;
30
+ color?: SdUnwrapSignal<SdButton['color']>;
31
+ type?: SdUnwrapSignal<SdButton['type']>;
31
32
  children: ActionNormal<T>[];
32
33
  }
33
34
  export {};
@@ -0,0 +1,2 @@
1
+ export * from './sd-table-column-filter-def.directive';
2
+ export * from './sticky-shadow.directive';
@@ -0,0 +1,9 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SdTableColumnFilterDefDirective {
4
+ templateRef: TemplateRef<any>;
5
+ sdTableColumnFilterDef?: string;
6
+ constructor(templateRef: TemplateRef<any>);
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdTableColumnFilterDefDirective, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdTableColumnFilterDefDirective, "[sdTableColumnFilterDef]", never, { "sdTableColumnFilterDef": { "alias": "sdTableColumnFilterDef"; "required": false; }; }, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,17 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Directive thêm hiệu ứng đổ bóng (elevation-2) vào cột sticky cuối cùng bên trái
4
+ * và cột sticky đầu tiên bên phải, tạo ngăn cách trực quan với phần được scroll.
5
+ *
6
+ * Chỉ dùng nội bộ trong sd-table, không chìa ra ngoài.
7
+ *
8
+ * Gắn vào scroll container của table:
9
+ * @example
10
+ * <div class="c-table" stickyShadow>...</div>
11
+ */
12
+ export declare class StickyShadowDirective {
13
+ #private;
14
+ constructor();
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<StickyShadowDirective, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<StickyShadowDirective, "[stickyShadow]", never, {}, {}, never, never, true, never>;
17
+ }
@@ -1,11 +1,20 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import { SdBadge } from '@sd-angular/core/components/badge';
3
3
  import { SdSearch } from '@sd-angular/core/forms';
4
- import { SdColor, SdOperator } from '@sd-angular/core/utilities';
4
+ import { SdNestedKeyOf, SdOperator } from '@sd-angular/core/utilities';
5
+ import { SdUnwrapSignal } from '@sd-angular/core/utilities/models';
5
6
  export type SdTableColumn<T = any> = SdTableColumnText<T> | SdTableColumnNumber<T> | SdTableColumnBool<T> | SdTableColumnDate<T> | SdTableColumnValues<T> | SdTableColumnLazyValues<T> | SdTableColumnChildren<T>;
6
7
  export type SdTableColumnTransformFunc<T = any> = (value: any, rowData: T, args?: {
7
8
  isExport?: boolean;
8
9
  }) => string | Promise<string>;
10
+ interface Badge {
11
+ type?: SdUnwrapSignal<SdBadge['type']>;
12
+ color?: SdUnwrapSignal<SdBadge['color']>;
13
+ icon?: SdUnwrapSignal<SdBadge['icon']>;
14
+ title?: SdUnwrapSignal<SdBadge['title']>;
15
+ }
16
+ type UseBadgeFunc<T = any> = (value: any, rowData: T) => Badge;
17
+ type UseBadgeValuesFunc<T = any, K = any> = (value: any, rowData: T, items: K[]) => Badge;
9
18
  interface SdTableColumnBase<T = any> {
10
19
  title: string;
11
20
  titleHtml?: string;
@@ -17,12 +26,6 @@ interface SdTableColumnBase<T = any> {
17
26
  invisible?: boolean;
18
27
  fixed?: boolean;
19
28
  align?: 'right';
20
- useBadge?: (value: any, rowData: T) => {
21
- type?: SdBadge['type'];
22
- color?: SdBadge['color'];
23
- icon?: SdBadge['icon'];
24
- title?: SdBadge['title'];
25
- };
26
29
  cellStyle?: (value: any, rowData: T) => Record<string, string>;
27
30
  htmlTemplate?: (value: any, rowData: T) => string;
28
31
  transform?: SdTableColumnTransformFunc<T>;
@@ -45,58 +48,55 @@ interface SdTableColumnBase<T = any> {
45
48
  copiable?: boolean;
46
49
  }
47
50
  interface SdTableColumnText<T = any> extends SdTableColumnBase<T> {
48
- field: Extract<keyof T, string>;
51
+ field: SdNestedKeyOf<T>;
49
52
  type: 'string';
50
- badge?: (value: any, rowData: T) => SdColor;
51
- badgeIcon?: (value: any, rowData: T) => string;
52
- badgeType?: SdBadge['type'];
53
+ useBadge?: UseBadgeFunc<T>;
53
54
  }
54
55
  interface SdTableColumnNumber<T = any> extends SdTableColumnBase<T> {
55
- field: Extract<keyof T, string>;
56
+ field: SdNestedKeyOf<T>;
56
57
  type: 'number';
57
- badge?: (value: any, rowData: T) => SdColor;
58
- badgeIcon?: (value: any, rowData: T) => string;
59
- badgeType?: SdBadge['type'];
58
+ useBadge?: UseBadgeFunc<T>;
60
59
  filter?: SdTableColumnBase['filter'] & {
61
60
  type?: 'split-number';
62
61
  };
63
62
  }
64
63
  interface SdTableColumnBool<T = any> extends SdTableColumnBase<T> {
65
- field: Extract<keyof T, string>;
64
+ field: SdNestedKeyOf<T>;
66
65
  type: 'boolean';
66
+ useBadge?: UseBadgeFunc<T>;
67
67
  option?: {
68
68
  displayOnTrue?: string;
69
69
  displayOnFalse?: string;
70
70
  };
71
71
  }
72
72
  interface SdTableColumnDate<T = any> extends SdTableColumnBase<T> {
73
- field: Extract<keyof T, string>;
73
+ field: SdNestedKeyOf<T>;
74
74
  type: 'date' | 'datetime' | 'time';
75
+ useBadge?: UseBadgeFunc<T>;
75
76
  filter?: SdTableColumnBase['filter'] & {
76
77
  type?: 'daterange' | 'date' | 'split-date';
77
78
  };
78
79
  }
79
- export interface SdTableColumnValues<T = any> extends SdTableColumnBase<T> {
80
- field: Extract<keyof T, string>;
80
+ export interface SdTableColumnValues<T = any, K = Record<string, any>> extends SdTableColumnBase<T> {
81
+ field: SdNestedKeyOf<T>;
81
82
  type: 'values';
82
- badge?: (value: any, rowData: T) => SdColor;
83
- badgeIcon?: (value: any, rowData: T) => string;
84
- badgeType?: SdBadge['type'];
83
+ useBadge?: UseBadgeValuesFunc<T, K>;
85
84
  option: {
86
- valueField: string;
87
- displayField: string;
88
- items: any[] | (() => Promise<any[]>);
89
- selection?: 'AUTOCOMPLETE' | 'MULTIPLE' | 'MULTIPLEAUTOCOMPLETE';
85
+ items: K[] | (() => Promise<K[]>);
86
+ valueField: Extract<keyof K, string>;
87
+ displayField: Extract<keyof K, string>;
88
+ selection?: 'MULTIPLE';
90
89
  };
91
90
  }
92
- export interface SdTableColumnLazyValues<T = any> extends SdTableColumnBase<T> {
93
- field: Extract<keyof T, string>;
91
+ export interface SdTableColumnLazyValues<T = any, K = Record<string, any>> extends SdTableColumnBase<T> {
92
+ field: SdNestedKeyOf<T>;
94
93
  type: 'lazy-values';
94
+ useBadge?: UseBadgeFunc<T>;
95
95
  option: {
96
- valueField: string;
97
- displayField: string;
98
- items: SdSearch;
99
- views?: (values: string[]) => Promise<any[]>;
96
+ items: SdSearch<K>;
97
+ valueField: Extract<keyof K, string>;
98
+ displayField: Extract<keyof K, string>;
99
+ views?: (values: string[]) => Promise<K[]>;
100
100
  mapValue?: (value: any, rowData?: T) => string | string[];
101
101
  selection?: 'MULTIPLE';
102
102
  };
@@ -1,9 +1,13 @@
1
- import { SdColor } from '@sd-angular/core/utilities/models';
1
+ import { MaterialIconFontSet, SdColor } from '@sd-angular/core/utilities/models';
2
+ export interface SdTableCommandOption<T = any> {
3
+ align?: 'left' | 'right';
4
+ commands?: SdTableCommand<T>[];
5
+ }
2
6
  export type SdTableCommand<T = any> = SdTableCommandNormal<T> | SdTableCommandChildren<T>;
3
7
  export interface SdTableCommandNormal<T = any> {
4
8
  color?: SdColor;
5
9
  icon?: string | ((rowData: T) => string);
6
- fontSet?: 'material-icons' | 'material-icons-outlined' | 'material-icons-round' | 'material-icons-sharp';
10
+ fontSet?: MaterialIconFontSet;
7
11
  title?: string | ((rowData: T) => string);
8
12
  disabled?: boolean | ((rowData: T) => boolean);
9
13
  hidden?: boolean | ((rowData: T) => boolean | Promise<boolean>);
@@ -12,7 +16,7 @@ export interface SdTableCommandNormal<T = any> {
12
16
  }
13
17
  export interface SdTableCommandChildren<T = any> {
14
18
  icon?: string | ((rowData: T) => string);
15
- fontSet?: 'material-icons' | 'material-icons-outlined' | 'material-icons-round' | 'material-icons-sharp';
19
+ fontSet?: MaterialIconFontSet;
16
20
  title?: string | ((rowData: T) => string);
17
21
  disabled?: boolean | ((rowData: T) => boolean);
18
22
  hidden?: boolean | ((rowData: T) => boolean | Promise<boolean>);
@@ -1,4 +1,5 @@
1
1
  import { SdBadge } from '@sd-angular/core/components/badge';
2
+ import { SdUnwrapSignal } from '@sd-angular/core/utilities/models';
2
3
  export interface SdTableMetaSelector {
3
4
  selectable?: boolean;
4
5
  isSelected?: boolean;
@@ -12,9 +13,10 @@ export interface SdTableMetaExpand {
12
13
  export interface SdTableDisplay {
13
14
  tooltip?: string;
14
15
  badge?: {
15
- type: SdBadge['type'] | undefined | null;
16
- color: SdBadge['color'] | undefined | null;
17
- icon: string | undefined | null;
16
+ type: SdUnwrapSignal<SdBadge['type']>;
17
+ color: SdUnwrapSignal<SdBadge['color']>;
18
+ icon?: SdUnwrapSignal<SdBadge['icon']>;
19
+ title?: SdUnwrapSignal<SdBadge['title']>;
18
20
  };
19
21
  cellStyle?: Record<string, string>;
20
22
  data: string | number | undefined | null;
@@ -1,3 +1,4 @@
1
+ import { SdNestedKeyOf } from '@sd-angular/core/utilities';
1
2
  import { SdTableFilterRequest } from '../services/table-filter/table-filter.model';
2
3
  export type SdTableOptionExport<T = any> = SdTableOptionExportDefault<T> | SdTableOptionExportCustom;
3
4
  export interface SdTableOptionExportDefault<T = any> {
@@ -22,7 +23,7 @@ export interface SdTableOptionExportCustom {
22
23
  onExport: (filterRequest: SdTableFilterRequest) => Promise<void>;
23
24
  }
24
25
  export interface SdTableOptionExportColumn<T = any> {
25
- field: Extract<keyof T, string>;
26
+ field: SdNestedKeyOf<T>;
26
27
  title: string;
27
28
  description?: string;
28
29
  width?: string;
@@ -35,7 +36,7 @@ export interface SdTableOptionExportSheet<T = any> {
35
36
  name: string;
36
37
  items: T[] | (() => T[] | Promise<T[]>);
37
38
  headers: {
38
- value: Extract<keyof T, string>;
39
+ value: SdNestedKeyOf<T>;
39
40
  display: string;
40
41
  }[];
41
42
  }
@@ -1,4 +1,5 @@
1
1
  import { SdButton } from '@sd-angular/core/components/button';
2
+ import { SdUnwrapSignal } from '@sd-angular/core/utilities/models';
2
3
  export interface SdTableOptionSelector<T = any> {
3
4
  visible?: boolean;
4
5
  single?: boolean;
@@ -11,22 +12,22 @@ export interface SdTableOptionSelector<T = any> {
11
12
  export type SdTableAction<T = any> = SdTableActionNormal<T> | SdTableActionChildren<T>;
12
13
  export interface SdTableActionNormal<T = any> {
13
14
  icon?: string;
14
- fontSet?: SdButton['fontSet'];
15
- tooltip?: SdButton['tooltip'];
16
- title?: SdButton['title'];
17
- color?: SdButton['color'];
18
- type?: SdButton['type'];
15
+ fontSet?: SdUnwrapSignal<SdButton['fontSet']>;
16
+ tooltip?: SdUnwrapSignal<SdButton['tooltip']>;
17
+ title?: SdUnwrapSignal<SdButton['title']>;
18
+ color?: SdUnwrapSignal<SdButton['color']>;
19
+ type?: SdUnwrapSignal<SdButton['type']>;
19
20
  hidden?: boolean | ((rowData?: T) => boolean);
20
21
  isGrouped?: boolean;
21
22
  click: (selectedItems?: T[]) => void;
22
23
  }
23
24
  interface SdTableActionChildren<T = any> {
24
25
  icon?: string;
25
- fontSet?: SdButton['fontSet'];
26
- tooltip?: SdButton['tooltip'];
27
- title?: SdButton['title'];
28
- color?: SdButton['color'];
29
- type?: SdButton['type'];
26
+ fontSet?: SdUnwrapSignal<SdButton['fontSet']>;
27
+ tooltip?: SdUnwrapSignal<SdButton['tooltip']>;
28
+ title?: SdUnwrapSignal<SdButton['title']>;
29
+ color?: SdUnwrapSignal<SdButton['color']>;
30
+ type?: SdUnwrapSignal<SdButton['type']>;
30
31
  hidden?: boolean | ((rowData?: T) => boolean);
31
32
  isGrouped?: boolean;
32
33
  children: SdTableActionNormal<T>[];
@@ -1,15 +1,16 @@
1
- import { SdTableColumn } from './table-column.model';
2
- import { SdTableCommand } from './table-command.model';
1
+ import { SdPagingReq } from '@sd-angular/core/utilities';
3
2
  import { SdTableFilterRequest, SdTableOptionFilter } from '../services/table-filter/table-filter.model';
3
+ import { SdTableColumn } from './table-column.model';
4
+ import { SdTableCommand, SdTableCommandOption } from './table-command.model';
5
+ import { TableOptionConfig } from './table-option-config.model';
6
+ import { SdTableOptionExpand } from './table-option-expand.model';
4
7
  import { SdTableOptionExport } from './table-option-export.model';
8
+ import { SdTableOptionGroup } from './table-option-group.model';
9
+ import { SdTableOptionPaginate } from './table-option-paginate.model';
5
10
  import { SdTableOptionReload } from './table-option-reload.model';
6
- import { SdTableOptionExpand } from './table-option-expand.model';
7
11
  import { SdTableOptionSelector } from './table-option-selector.model';
8
- import { SdTableOptionStyle } from './table-option-style.model';
9
- import { SdTableOptionGroup } from './table-option-group.model';
10
12
  import { SdTableOptionSort } from './table-option-sort.model';
11
- import { SdTableOptionPaginate } from './table-option-paginate.model';
12
- import { TableOptionConfig } from './table-option-config.model';
13
+ import { SdTableOptionStyle } from './table-option-style.model';
13
14
  export type SdTableOption<T = any> = SdTableLocalOption<T> | SdTableServerOption<T>;
14
15
  interface SdTableBaseOption<T = any> {
15
16
  key?: string;
@@ -23,6 +24,7 @@ interface SdTableBaseOption<T = any> {
23
24
  group?: SdTableOptionGroup<T>;
24
25
  filter?: SdTableOptionFilter;
25
26
  commands?: SdTableCommand<T>[];
27
+ command?: SdTableCommandOption<T>;
26
28
  columns: SdTableColumn<T>[];
27
29
  style?: SdTableOptionStyle<T>;
28
30
  }
@@ -32,7 +34,7 @@ interface SdTableLocalOption<T = any> extends SdTableBaseOption<T> {
32
34
  }
33
35
  interface SdTableServerOption<T = any> extends SdTableBaseOption<T> {
34
36
  type: 'server';
35
- items: (filterRequest: SdTableFilterRequest<T>) => Promise<{
37
+ items: (filterRequest: SdTableFilterRequest<T>, pagingReq: SdPagingReq<T>) => Promise<{
36
38
  items: T[];
37
39
  total: number;
38
40
  }>;
@@ -2,7 +2,7 @@ import { Observable } from 'rxjs';
2
2
  import { SdTableColumn } from '../../models/table-column.model';
3
3
  import { TemplateRef } from '@angular/core';
4
4
  import { SdSearch } from '@sd-angular/core/forms';
5
- import { SdOperator, SdOrder, SdPagingReq } from '@sd-angular/core/utilities';
5
+ import { SdNestedKeyOf, SdOperator, SdOrder, SdPagingReq } from '@sd-angular/core/utilities';
6
6
  export interface SdTableQuickFilter {
7
7
  code: string;
8
8
  columnFilter: Record<string, any>;
@@ -20,7 +20,7 @@ export interface TableFilterValue {
20
20
  }
21
21
  export interface SdTableFilterRequest<T = any> {
22
22
  columnOperator: Record<string, SdOperator>;
23
- rawColumnFilter: Record<keyof T, any>;
23
+ rawColumnFilter: Record<SdNestedKeyOf<T>, any>;
24
24
  rawExternalFilter: Record<string, any>;
25
25
  pageNumber: number;
26
26
  pageSize: number;
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, ChangeDetectorRef, OnDestroy, OnInit, QueryList } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator';
3
3
  import { MatSort } from '@angular/material/sort';
4
4
  import { MatTable } from '@angular/material/table';
@@ -43,53 +43,51 @@ export declare class SdTable<T = unknown> extends SdBaseSecureComponent implemen
43
43
  private excelService;
44
44
  private notifyService;
45
45
  private gridFilterService;
46
- autoId?: string;
47
- set _autoId(val: string | undefined | null);
48
- table?: MatTable<any>;
49
- configComponent?: ConfigComponent;
50
- sdPopupExport?: SdPopupExport;
51
- scroll?: SdScrollDirective;
46
+ autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
47
+ autoId: import("@angular/core").Signal<string | undefined>;
48
+ option: import("@angular/core").InputSignal<SdTableOption<T>>;
49
+ table: import("@angular/core").Signal<MatTable<any> | undefined>;
50
+ configComponent: import("@angular/core").Signal<ConfigComponent | undefined>;
51
+ sdPopupExport: import("@angular/core").Signal<SdPopupExport | undefined>;
52
+ scroll: import("@angular/core").Signal<SdScrollDirective | undefined>;
53
+ quickAction: import("@angular/core").Signal<SdQuickAction | undefined>;
54
+ externalFilter: import("@angular/core").Signal<ExternalFilterComponent | undefined>;
55
+ paginator: import("@angular/core").Signal<MatPaginator | undefined>;
56
+ sort: import("@angular/core").Signal<MatSort | undefined>;
57
+ sdSubInformation: import("@angular/core").Signal<SdMaterialSubInformationDefDirective | undefined>;
58
+ sdCellDefs: import("@angular/core").Signal<readonly SdTabelCellDefDirective[]>;
59
+ sdFooterDefs: import("@angular/core").Signal<readonly SdMaterialFooterDefDirective[]>;
60
+ sdFilterDefs: import("@angular/core").Signal<readonly SdTableFilterDefDirective[]>;
61
+ cellDef: import("@angular/core").Signal<Record<string, SdTabelCellDefDirective>>;
62
+ footerDef: import("@angular/core").Signal<Record<string, SdMaterialFooterDefDirective>>;
63
+ hasFooter: import("@angular/core").Signal<boolean>;
64
+ tableOption: import("@angular/core").WritableSignal<SdTableOption<T> | undefined>;
65
+ configuration: import("@angular/core").WritableSignal<ConfiguredTableResult | undefined>;
66
+ items: import("@angular/core").WritableSignal<SdTableItem<T>[]>;
67
+ selectedTableItems: import("@angular/core").WritableSignal<SdTableItem<T>[]>;
68
+ total: import("@angular/core").WritableSignal<number | undefined>;
69
+ loading: import("@angular/core").WritableSignal<boolean>;
70
+ exporting: import("@angular/core").WritableSignal<boolean>;
71
+ isSelectAll: import("@angular/core").WritableSignal<boolean>;
72
+ exportTitle: import("@angular/core").WritableSignal<string>;
73
+ isFiltered: import("@angular/core").WritableSignal<boolean>;
74
+ requireFiltered: import("@angular/core").WritableSignal<boolean>;
52
75
  filterRegister: TableFilterRegister;
53
76
  key: string;
54
- quickAction?: SdQuickAction;
55
- externalFilter?: ExternalFilterComponent;
56
- tableOption: SdTableOption<T>;
57
- configuration?: ConfiguredTableResult;
58
- set option(option: SdTableOption);
59
- items: SdTableItem<T>[];
60
- selectedTableItems: SdTableItem<T>[];
61
- total?: number;
62
- loading: boolean;
63
- isHiddenPaginator: boolean;
64
- set paginator(paginator: MatPaginator);
65
- set sort(sort: MatSort);
66
- sdSubInformation?: SdMaterialSubInformationDefDirective;
67
- sdCellDefs: QueryList<SdTabelCellDefDirective>;
68
- cellDef: Record<string, SdTabelCellDefDirective>;
69
- sdFooterDefs: QueryList<SdMaterialFooterDefDirective>;
70
- footerDef: Record<string, SdMaterialFooterDefDirective>;
71
- hasFooter: boolean;
72
- sdFilterDefs: QueryList<SdTableFilterDefDirective>;
73
- filterDefs: SdTableFilterDefDirective[];
74
77
  columnOperator: Record<string, SdOperator>;
75
78
  columnFilter?: Record<string, any>;
76
- exporting: boolean;
77
- isSelectAll: boolean;
78
- exportTitle: string;
79
79
  cacheValues: Record<string, any[]>;
80
80
  constructor(ref: ChangeDetectorRef, formatNumberPipe: SdFormatNumberPipe, tableConfiguration: ISdTableConfiguration | undefined, configService: ConfigService, excelService: SdExcelService, notifyService: SdNotifyService, gridFilterService: SdTableFilterService);
81
81
  ngOnInit(): void;
82
82
  ngAfterViewInit(): void;
83
83
  ngOnDestroy(): void;
84
- isFiltered: boolean;
85
- requireFiltered: boolean;
86
84
  reload: (force?: boolean, scrollTop?: boolean) => Promise<void>;
87
85
  onExport: (args?: {
88
86
  columns?: SdExcelColumn[];
89
87
  isCSV?: boolean;
90
88
  }) => Promise<void>;
91
- exportExcel: () => void;
92
- exportCSV: () => void;
89
+ exportExcel: () => Promise<void>;
90
+ exportCSV: () => Promise<void>;
93
91
  exportCustom: () => void;
94
92
  onFilterChange: () => void;
95
93
  onExpand: (rowData: SdTableItem<T>) => Promise<void>;
@@ -107,5 +105,5 @@ export declare class SdTable<T = unknown> extends SdBaseSecureComponent implemen
107
105
  onOperatorChange: (column: SdTableColumn, operator: SdOperator) => void;
108
106
  trackBy: (index: number, item: SdTableItem) => string;
109
107
  static ɵfac: i0.ɵɵFactoryDeclaration<SdTable<any>, [null, null, { optional: true; }, null, null, null, null]>;
110
- static ɵcmp: i0.ɵɵComponentDeclaration<SdTable<any>, "sd-table", never, { "_autoId": { "alias": "autoId"; "required": false; }; "option": { "alias": "option"; "required": false; }; }, {}, ["sdSubInformation", "sdCellDefs", "sdFooterDefs", "sdFilterDefs"], ["[sdTableTop]"], true, never>;
108
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdTable<any>, "sd-table", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "option": { "alias": "option"; "required": true; "isSignal": true; }; }, {}, ["sdSubInformation", "sdCellDefs", "sdFooterDefs", "sdFilterDefs"], ["[sdTableTop]"], true, never>;
111
109
  }
@@ -0,0 +1 @@
1
+ export * from './src/view.component';
@@ -0,0 +1,16 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SdView {
4
+ label: import("@angular/core").InputSignal<string | null | undefined>;
5
+ value: import("@angular/core").InputSignal<any>;
6
+ display: import("@angular/core").InputSignal<string | null | undefined>;
7
+ hyperlink: import("@angular/core").InputSignal<string | null | undefined>;
8
+ labelTemplate: import("@angular/core").InputSignal<TemplateRef<any> | undefined>;
9
+ valueTemplate: import("@angular/core").InputSignal<TemplateRef<any> | undefined>;
10
+ contentLabelTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
11
+ contentValueTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
12
+ activeLabelTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
13
+ activeValueTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdView, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdView, "sd-view", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": true; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "labelTemplate": { "alias": "labelTemplate"; "required": false; "isSignal": true; }; "valueTemplate": { "alias": "valueTemplate"; "required": false; "isSignal": true; }; }, {}, ["contentLabelTemplate", "contentValueTemplate"], never, true, never>;
16
+ }
@@ -1,4 +1,5 @@
1
1
  export * from './form-render';
2
+ export * from './form-generic.model';
2
3
  export * from './form-generic-component.model';
3
4
  export * from './form-generic-template.model';
4
5
  export * from './form-generic-definition-selection.model';
@@ -2,3 +2,4 @@ export * from './src/sd-scroll.directive';
2
2
  export * from './src/sd-desktop.directive';
3
3
  export * from './src/sd-mobile.directive';
4
4
  export * from './src/sd-hover-copy.directive';
5
+ export * from './src/sd-href.directive';