@sd-angular/core 19.0.0-beta.93 → 19.0.0-beta.95

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 (143) hide show
  1. package/README.md +2 -1
  2. package/components/anchor/src/components/anchor/anchor.component.d.ts +4 -1
  3. package/components/anchor/src/components/anchor-item/anchor-item.component.d.ts +2 -1
  4. package/components/anchor/src/components/anchor-vertical/anchor-vertical-list.component.d.ts +3 -1
  5. package/components/document-builder/src/components/header-footer-builder/header-footer-builder.component.d.ts +4 -1
  6. package/components/document-builder/src/document-builder.model.d.ts +2 -0
  7. package/components/editor/src/models/editor.model.d.ts +2 -0
  8. package/components/editor/src/plugins/image-upload/utils/validate.utils.d.ts +2 -1
  9. package/components/form-generic/src/components/form-builder/components/attribute-table/attribute-table.component.d.ts +4 -2
  10. package/components/form-generic/src/components/form-builder/components/attribute-template/attribute-template.component.d.ts +2 -2
  11. package/components/form-generic/src/components/form-builder/components/configure-validation/configure-validation.component.d.ts +2 -2
  12. package/components/form-generic/src/components/form-builder/components/group/attribute/group-attribute.component.d.ts +23 -0
  13. package/components/form-generic/src/components/form-builder/components/group/index.d.ts +1 -0
  14. package/components/form-generic/src/components/form-builder/components/index.d.ts +1 -0
  15. package/components/form-generic/src/components/form-builder/components/table/control/table-control.component.d.ts +3 -0
  16. package/components/form-generic/src/components/form-builder/form-builder.component.d.ts +61 -18
  17. package/components/form-generic/src/components/form-render/form-render.component.d.ts +2 -2
  18. package/components/form-generic/src/models/form-generic-component.model.d.ts +22 -2
  19. package/components/index.d.ts +1 -0
  20. package/components/modal/src/modal.component.d.ts +4 -1
  21. package/components/preview/index.d.ts +3 -0
  22. package/components/preview/src/preview-image/preview-image.component.d.ts +84 -24
  23. package/components/preview/src/preview-image/preview-image.types.d.ts +53 -0
  24. package/components/preview/src/preview-pdf/preview-pdf.component.d.ts +186 -0
  25. package/components/preview/src/preview-pdf/preview-pdf.types.d.ts +84 -0
  26. package/components/quick-action/src/quick-action.component.d.ts +5 -6
  27. package/components/splitter/src/splitter.component.d.ts +15 -2
  28. package/components/table/src/components/selector-action/selector-action.component.d.ts +1 -0
  29. package/components/table/src/table.component.d.ts +3 -2
  30. package/components/upload-file/src/upload-file.component.d.ts +4 -1
  31. package/configurations/src/sd-core.configuration.d.ts +2 -0
  32. package/fesm2022/sd-angular-core-components-anchor.mjs +19 -6
  33. package/fesm2022/sd-angular-core-components-anchor.mjs.map +1 -1
  34. package/fesm2022/sd-angular-core-components-button.mjs +1 -1
  35. package/fesm2022/sd-angular-core-components-button.mjs.map +1 -1
  36. package/fesm2022/sd-angular-core-components-code-editor.mjs +3 -2
  37. package/fesm2022/sd-angular-core-components-code-editor.mjs.map +1 -1
  38. package/fesm2022/sd-angular-core-components-document-builder.mjs +29 -8
  39. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  40. package/fesm2022/sd-angular-core-components-editor.mjs +32 -17
  41. package/fesm2022/sd-angular-core-components-editor.mjs.map +1 -1
  42. package/fesm2022/sd-angular-core-components-form-generic.mjs +632 -315
  43. package/fesm2022/sd-angular-core-components-form-generic.mjs.map +1 -1
  44. package/fesm2022/sd-angular-core-components-history.mjs +3 -2
  45. package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
  46. package/fesm2022/sd-angular-core-components-import-excel.mjs +25 -23
  47. package/fesm2022/sd-angular-core-components-import-excel.mjs.map +1 -1
  48. package/fesm2022/sd-angular-core-components-modal.mjs +8 -3
  49. package/fesm2022/sd-angular-core-components-modal.mjs.map +1 -1
  50. package/fesm2022/sd-angular-core-components-preview.mjs +1963 -89
  51. package/fesm2022/sd-angular-core-components-preview.mjs.map +1 -1
  52. package/fesm2022/sd-angular-core-components-quick-action.mjs +8 -19
  53. package/fesm2022/sd-angular-core-components-quick-action.mjs.map +1 -1
  54. package/fesm2022/sd-angular-core-components-splitter.mjs +188 -18
  55. package/fesm2022/sd-angular-core-components-splitter.mjs.map +1 -1
  56. package/fesm2022/sd-angular-core-components-tab-router.mjs +3 -1
  57. package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
  58. package/fesm2022/sd-angular-core-components-table.mjs +42 -32
  59. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  60. package/fesm2022/sd-angular-core-components-upload-file.mjs +28 -21
  61. package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
  62. package/fesm2022/sd-angular-core-components.mjs +1 -0
  63. package/fesm2022/sd-angular-core-components.mjs.map +1 -1
  64. package/fesm2022/sd-angular-core-configurations.mjs.map +1 -1
  65. package/fesm2022/sd-angular-core-directives.mjs +6 -2
  66. package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
  67. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +3 -1
  68. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  69. package/fesm2022/sd-angular-core-forms-checkbox.mjs +6 -13
  70. package/fesm2022/sd-angular-core-forms-checkbox.mjs.map +1 -1
  71. package/fesm2022/sd-angular-core-forms-chip-calendar.mjs +9 -6
  72. package/fesm2022/sd-angular-core-forms-chip-calendar.mjs.map +1 -1
  73. package/fesm2022/sd-angular-core-forms-chip.mjs +9 -13
  74. package/fesm2022/sd-angular-core-forms-chip.mjs.map +1 -1
  75. package/fesm2022/sd-angular-core-forms-date-range.mjs +36 -26
  76. package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
  77. package/fesm2022/sd-angular-core-forms-date.mjs +34 -22
  78. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  79. package/fesm2022/sd-angular-core-forms-datetime.mjs +102 -59
  80. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  81. package/fesm2022/sd-angular-core-forms-input-number.mjs +5 -3
  82. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  83. package/fesm2022/sd-angular-core-forms-input.mjs +13 -6
  84. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  85. package/fesm2022/sd-angular-core-forms-radio.mjs +7 -14
  86. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  87. package/fesm2022/sd-angular-core-forms-select.mjs +3 -1
  88. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  89. package/fesm2022/sd-angular-core-forms-switch.mjs +6 -14
  90. package/fesm2022/sd-angular-core-forms-switch.mjs.map +1 -1
  91. package/fesm2022/sd-angular-core-forms-textarea.mjs +8 -5
  92. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  93. package/fesm2022/sd-angular-core-handlers.mjs +7 -6
  94. package/fesm2022/sd-angular-core-handlers.mjs.map +1 -1
  95. package/fesm2022/sd-angular-core-i18n.mjs +2327 -0
  96. package/fesm2022/sd-angular-core-i18n.mjs.map +1 -0
  97. package/fesm2022/sd-angular-core-interceptors.mjs +10 -6
  98. package/fesm2022/sd-angular-core-interceptors.mjs.map +1 -1
  99. package/fesm2022/sd-angular-core-models.mjs +9 -0
  100. package/fesm2022/sd-angular-core-models.mjs.map +1 -0
  101. package/fesm2022/sd-angular-core-modules-authom.mjs +1 -0
  102. package/fesm2022/sd-angular-core-modules-authom.mjs.map +1 -1
  103. package/fesm2022/sd-angular-core-modules-keycloak.mjs +1 -0
  104. package/fesm2022/sd-angular-core-modules-keycloak.mjs.map +1 -1
  105. package/fesm2022/sd-angular-core-modules-layout.mjs +112 -63
  106. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  107. package/fesm2022/sd-angular-core-services-confirm.mjs +15 -13
  108. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  109. package/fesm2022/sd-angular-core-services-docx.mjs +7 -7
  110. package/fesm2022/sd-angular-core-services-docx.mjs.map +1 -1
  111. package/fesm2022/sd-angular-core-services-excel.mjs +30 -24
  112. package/fesm2022/sd-angular-core-services-excel.mjs.map +1 -1
  113. package/fesm2022/sd-angular-core-utilities-extensions.mjs +52 -11
  114. package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
  115. package/fesm2022/sd-angular-core-utilities-models.mjs +30 -28
  116. package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
  117. package/forms/checkbox/src/checkbox.component.d.ts +3 -3
  118. package/forms/chip/src/chip.component.d.ts +3 -2
  119. package/forms/chip-calendar/src/chip-calendar.component.d.ts +3 -2
  120. package/forms/date/src/date.component.d.ts +2 -3
  121. package/forms/date-range/src/date-range.component.d.ts +2 -3
  122. package/forms/datetime/src/datetime.component.d.ts +1 -0
  123. package/forms/datetime/src/popup/sd-datetime-picker.component.d.ts +10 -11
  124. package/forms/radio/src/radio.component.d.ts +3 -3
  125. package/forms/switch/src/switch.component.d.ts +3 -3
  126. package/i18n/index.d.ts +5 -0
  127. package/i18n/src/en.d.ts +400 -0
  128. package/i18n/src/i18n.messages.d.ts +2 -0
  129. package/i18n/src/i18n.pipe.d.ts +9 -0
  130. package/i18n/src/i18n.service.d.ts +14 -0
  131. package/i18n/src/i18n.token.d.ts +1 -0
  132. package/i18n/src/i18n.types.d.ts +31 -0
  133. package/i18n/src/ja.d.ts +2 -0
  134. package/i18n/src/ko.d.ts +2 -0
  135. package/i18n/src/vi.d.ts +2 -0
  136. package/i18n/src/zh.d.ts +2 -0
  137. package/models/index.d.ts +1 -0
  138. package/models/src/language.model.d.ts +4 -0
  139. package/modules/layout/modules/home/components/home-page/home-page.component.d.ts +25 -0
  140. package/package.json +74 -66
  141. package/sd-angular-core-19.0.0-beta.95.tgz +0 -0
  142. package/services/confirm/src/lib/confirm.service.d.ts +1 -0
  143. package/sd-angular-core-19.0.0-beta.93.tgz +0 -0
@@ -6,45 +6,45 @@ const DefaultMaterialIconFontSet = 'material-icons-outlined';
6
6
  const SdPatternCommons = [
7
7
  {
8
8
  type: 'EMAIL',
9
- name: 'Email',
9
+ name: 'core.validator.email.name',
10
10
  regex: StringUtilities.REGEX_EMAIL,
11
- errorMessage: 'Email không hợp lệ',
11
+ errorMessage: 'core.validator.email.error',
12
12
  },
13
13
  {
14
14
  type: 'PHONE',
15
- name: 'SĐT',
15
+ name: 'core.validator.phone.name',
16
16
  regex: StringUtilities.REGEX_PHONE,
17
- errorMessage: 'Số điện thoại không hợp lệ',
17
+ errorMessage: 'core.validator.phone.error',
18
18
  },
19
19
  {
20
20
  type: 'PHONE_VN',
21
- name: 'SĐT VN',
21
+ name: 'core.validator.phone-vn.name',
22
22
  regex: StringUtilities.REGEX_PHONE_VN,
23
- errorMessage: 'Số điện thoại không hợp lệ',
23
+ errorMessage: 'core.validator.phone-vn.error',
24
24
  },
25
25
  {
26
26
  type: 'IDVN',
27
- name: 'CCCD',
27
+ name: 'core.validator.cccd.name',
28
28
  regex: StringUtilities.REGEX_IDVN,
29
- errorMessage: 'CCCD không hợp lệ (9 hoặc 12 chữ số)',
29
+ errorMessage: 'core.validator.cccd.error',
30
30
  },
31
31
  {
32
32
  type: 'PASSPORT',
33
- name: 'Hộ chiếu',
33
+ name: 'core.validator.passport.name',
34
34
  regex: StringUtilities.REGEX_PASSPORT,
35
- errorMessage: 'Hộ chiếu không hợp lệ (1 chữ cái + 7 chữ số)',
35
+ errorMessage: 'core.validator.passport.error',
36
36
  },
37
37
  {
38
38
  type: 'IDVN_OR_PASSPORT',
39
- name: 'CCCD/Hộ chiếu',
39
+ name: 'core.validator.id-vn.name',
40
40
  regex: StringUtilities.REGEX_IDVN_OR_PASSPORT,
41
- errorMessage: 'CCCD/CMND hoặc Hộ chiếu không hợp lệ',
41
+ errorMessage: 'core.validator.id-vn.error',
42
42
  },
43
43
  {
44
44
  type: 'TIME',
45
- name: 'Giờ',
45
+ name: 'core.validator.time.name',
46
46
  regex: StringUtilities.REGEX_TIME,
47
- errorMessage: 'Giờ không hợp lệ (định dạng HH:mm)',
47
+ errorMessage: 'core.validator.time.error',
48
48
  },
49
49
  ];
50
50
 
@@ -72,76 +72,78 @@ function isObservable(obj) {
72
72
  return obj && typeof obj.subscribe === 'function';
73
73
  }
74
74
 
75
+ // `display` chứa i18n KEY (không phải chuỗi đã dịch).
76
+ // Consumer phải gọi i18n.t(display) trước khi render ra UI.
75
77
  const SdOperators = [
76
78
  {
77
79
  value: 'EQUAL',
78
80
  symbol: '=',
79
- display: 'Bằng',
81
+ display: 'core.operator.equal.display',
80
82
  },
81
83
  {
82
84
  value: 'NOT_EQUAL',
83
85
  symbol: '≠',
84
- display: 'Không bằng',
86
+ display: 'core.operator.not-equal.display',
85
87
  },
86
88
  {
87
89
  value: 'GREATER_THAN',
88
90
  symbol: '>',
89
- display: 'Lớn hơn',
91
+ display: 'core.operator.greater-than.display',
90
92
  },
91
93
  {
92
94
  value: 'LESS_THAN',
93
95
  symbol: '<',
94
- display: 'Nhỏ hơn',
96
+ display: 'core.operator.less-than.display',
95
97
  },
96
98
  {
97
99
  value: 'GREATER_OR_EQUAL',
98
100
  symbol: '≥',
99
- display: 'Lớn hơn, hoặc bằng',
101
+ display: 'core.operator.greater-or-equal.display',
100
102
  },
101
103
  {
102
104
  value: 'LESS_OR_EQUAL',
103
105
  symbol: '≤',
104
- display: 'Nhỏ hơn, hoặc bằng',
106
+ display: 'core.operator.less-or-equal.display',
105
107
  },
106
108
  {
107
109
  value: 'CONTAIN',
108
110
  symbol: 'join_inner',
109
- display: 'Chứa',
111
+ display: 'core.operator.contain.display',
110
112
  },
111
113
  {
112
114
  value: 'NOT_CONTAIN',
113
115
  symbol: 'join',
114
- display: 'Không chứa',
116
+ display: 'core.operator.not-contain.display',
115
117
  },
116
118
  {
117
119
  value: 'START_WITH',
118
120
  symbol: 'line_start_circle',
119
- display: 'Bắt đầu bởi',
121
+ display: 'core.operator.start-with.display',
120
122
  },
121
123
  {
122
124
  value: 'END_WITH',
123
125
  symbol: 'line_end_circle',
124
- display: 'Kết thúc bởi',
126
+ display: 'core.operator.end-with.display',
125
127
  },
126
128
  {
127
129
  value: 'IN',
128
130
  symbol: 'checklist_rtl',
129
- display: 'Nằm trong',
131
+ display: 'core.operator.in.display',
130
132
  },
131
133
  {
132
134
  value: 'NOT_IN',
133
135
  symbol: 'event_list',
134
- display: 'Không nằm trong',
136
+ display: 'core.operator.not-in.display',
135
137
  },
136
138
  {
137
139
  value: 'NULL',
138
140
  symbol: 'motion_photos_off',
139
- display: 'Là rỗng',
141
+ display: 'core.operator.null.display',
140
142
  },
141
143
  {
142
144
  value: 'NOT_NULL',
143
145
  symbol: 'adjust',
144
- display: 'Không rỗng',
146
+ display: 'core.operator.not-null.display',
145
147
  },
146
148
  ];
147
149
 
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core-utilities-models.mjs","sources":["../../../projects/sd-angular/utilities/models/src/icon.model.ts","../../../projects/sd-angular/utilities/models/src/pattern.model.ts","../../../projects/sd-angular/utilities/models/src/empty.model.ts","../../../projects/sd-angular/utilities/models/src/maybe-async.model.ts","../../../projects/sd-angular/utilities/models/src/operator.model.ts","../../../projects/sd-angular/utilities/models/sd-angular-core-utilities-models.ts"],"sourcesContent":["export type MaterialIconFontSet = 'material-icons' | 'material-icons-outlined' | 'material-icons-round' | 'material-icons-sharp' | 'material-symbols-outlined';\nexport const DefaultMaterialIconFontSet: MaterialIconFontSet = 'material-icons-outlined';\n","import { StringUtilities } from \"@sd-angular/core/utilities/extensions\";\r\n\r\nexport type SdPatternType = 'EMAIL' | 'PHONE' | 'PHONE_VN' | 'IDVN' | 'PASSPORT' | 'IDVN_OR_PASSPORT' | 'TIME';\r\n\r\nexport interface SdPatternCommon {\r\n type: SdPatternType;\r\n name: string;\r\n regex: string;\r\n errorMessage: string;\r\n}\r\n\r\nexport const SdPatternCommons: SdPatternCommon[] = [\r\n {\r\n type: 'EMAIL',\r\n name: 'Email',\r\n regex: StringUtilities.REGEX_EMAIL,\r\n errorMessage: 'Email không hợp lệ',\r\n },\r\n {\r\n type: 'PHONE',\r\n name: 'SĐT',\r\n regex: StringUtilities.REGEX_PHONE,\r\n errorMessage: 'Số điện thoại không hợp lệ',\r\n },\r\n {\r\n type: 'PHONE_VN',\r\n name: 'SĐT VN',\r\n regex: StringUtilities.REGEX_PHONE_VN,\r\n errorMessage: 'Số điện thoại không hợp lệ',\r\n },\r\n {\r\n type: 'IDVN',\r\n name: 'CCCD',\r\n regex: StringUtilities.REGEX_IDVN,\r\n errorMessage: 'CCCD không hợp lệ (9 hoặc 12 chữ số)',\r\n },\r\n {\r\n type: 'PASSPORT',\r\n name: 'Hộ chiếu',\r\n regex: StringUtilities.REGEX_PASSPORT,\r\n errorMessage: 'Hộ chiếu không hợp lệ (1 chữ cái + 7 chữ số)',\r\n },\r\n {\r\n type: 'IDVN_OR_PASSPORT',\r\n name: 'CCCD/Hộ chiếu',\r\n regex: StringUtilities.REGEX_IDVN_OR_PASSPORT,\r\n errorMessage: 'CCCD/CMND hoặc Hộ chiếu không hợp lệ',\r\n },\r\n {\r\n type: 'TIME',\r\n name: 'Giờ',\r\n regex: StringUtilities.REGEX_TIME,\r\n errorMessage: 'Giờ không hợp lệ (định dạng HH:mm)',\r\n },\r\n];\r\n","export const SD_EMPTY_STR = '--';\r\n","import { firstValueFrom, from, Observable, of } from 'rxjs';\r\n\r\nexport type SdMaybeAsync<T> = T | Promise<T> | Observable<T>;\r\n\r\nexport const SdResolveMaybeAsync = <T>(value: SdMaybeAsync<T>): Promise<T> => {\r\n if (value instanceof Promise) {\r\n return value;\r\n }\r\n if (isObservable(value)) {\r\n return firstValueFrom(value);\r\n }\r\n return Promise.resolve(value);\r\n};\r\n\r\nexport const SdNormalizeAsync = <T>(value: SdMaybeAsync<T>): Observable<T> => {\r\n if (isObservable(value)) {\r\n return value; // Nếu là Observable, giữ nguyên\r\n }\r\n if (value instanceof Promise) {\r\n return from(value); // Nếu là Promise, chuyển sang Observable\r\n }\r\n return of(value); // Nếu là giá trị thuần (Object, string...), bọc lại bằng of\r\n};\r\n\r\nfunction isObservable(obj: any): obj is Observable<any> {\r\n return obj && typeof obj.subscribe === 'function';\r\n}","export type SdOperator = SdOperatorHasData | SdOperatorNoData;\r\n\r\nexport type SdOperatorHasData =\r\n | 'EQUAL'\r\n | 'NOT_EQUAL'\r\n | 'CONTAIN'\r\n | 'NOT_CONTAIN'\r\n | 'IN'\r\n | 'NOT_IN'\r\n | 'START_WITH'\r\n | 'END_WITH'\r\n | 'GREATER_THAN'\r\n | 'LESS_THAN'\r\n | 'GREATER_OR_EQUAL'\r\n | 'LESS_OR_EQUAL'\r\n | 'BETWEEN';\r\n\r\nexport type SdOperatorNoData = 'NULL' | 'NOT_NULL';\r\n\r\nexport const SdOperators: {\r\n value: SdOperator;\r\n symbol?: string;\r\n display: string;\r\n}[] = [\r\n {\r\n value: 'EQUAL',\r\n symbol: '=',\r\n display: 'Bằng',\r\n },\r\n {\r\n value: 'NOT_EQUAL',\r\n symbol: '≠',\r\n display: 'Không bằng',\r\n },\r\n {\r\n value: 'GREATER_THAN',\r\n symbol: '>',\r\n display: 'Lớn hơn',\r\n },\r\n {\r\n value: 'LESS_THAN',\r\n symbol: '<',\r\n display: 'Nhỏ hơn',\r\n },\r\n {\r\n value: 'GREATER_OR_EQUAL',\r\n symbol: '≥',\r\n display: 'Lớn hơn, hoặc bằng',\r\n },\r\n {\r\n value: 'LESS_OR_EQUAL',\r\n symbol: '≤',\r\n display: 'Nhỏ hơn, hoặc bằng',\r\n },\r\n {\r\n value: 'CONTAIN',\r\n symbol: 'join_inner',\r\n display: 'Chứa',\r\n },\r\n {\r\n value: 'NOT_CONTAIN',\r\n symbol: 'join',\r\n display: 'Không chứa',\r\n },\r\n {\r\n value: 'START_WITH',\r\n symbol: 'line_start_circle',\r\n display: 'Bắt đầu bởi',\r\n },\r\n {\r\n value: 'END_WITH',\r\n symbol: 'line_end_circle',\r\n display: 'Kết thúc bởi',\r\n },\r\n {\r\n value: 'IN',\r\n symbol: 'checklist_rtl',\r\n display: 'Nằm trong',\r\n },\r\n {\r\n value: 'NOT_IN',\r\n symbol: 'event_list',\r\n display: 'Không nằm trong',\r\n },\r\n {\r\n value: 'NULL',\r\n symbol: 'motion_photos_off',\r\n display: 'Là rỗng',\r\n },\r\n {\r\n value: 'NOT_NULL',\r\n symbol: 'adjust',\r\n display: 'Không rỗng',\r\n },\r\n];\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core-utilities-models.mjs","sources":["../../../projects/sd-angular/utilities/models/src/icon.model.ts","../../../projects/sd-angular/utilities/models/src/pattern.model.ts","../../../projects/sd-angular/utilities/models/src/empty.model.ts","../../../projects/sd-angular/utilities/models/src/maybe-async.model.ts","../../../projects/sd-angular/utilities/models/src/operator.model.ts","../../../projects/sd-angular/utilities/models/sd-angular-core-utilities-models.ts"],"sourcesContent":["export type MaterialIconFontSet = 'material-icons' | 'material-icons-outlined' | 'material-icons-round' | 'material-icons-sharp' | 'material-symbols-outlined';\nexport const DefaultMaterialIconFontSet: MaterialIconFontSet = 'material-icons-outlined';\n","import { StringUtilities } from \"@sd-angular/core/utilities/extensions\";\n\nexport type SdPatternType = 'EMAIL' | 'PHONE' | 'PHONE_VN' | 'IDVN' | 'PASSPORT' | 'IDVN_OR_PASSPORT' | 'TIME';\n\n// `name` và `errorMessage` chứa i18n KEY (không phải chuỗi đã dịch).\n// Consumer phải gọi i18n.t(value) trước khi hiển thị ra UI.\nexport interface SdPatternCommon {\n type: SdPatternType;\n name: string;\n regex: string;\n errorMessage: string;\n}\n\nexport const SdPatternCommons: SdPatternCommon[] = [\n {\n type: 'EMAIL',\n name: 'core.validator.email.name',\n regex: StringUtilities.REGEX_EMAIL,\n errorMessage: 'core.validator.email.error',\n },\n {\n type: 'PHONE',\n name: 'core.validator.phone.name',\n regex: StringUtilities.REGEX_PHONE,\n errorMessage: 'core.validator.phone.error',\n },\n {\n type: 'PHONE_VN',\n name: 'core.validator.phone-vn.name',\n regex: StringUtilities.REGEX_PHONE_VN,\n errorMessage: 'core.validator.phone-vn.error',\n },\n {\n type: 'IDVN',\n name: 'core.validator.cccd.name',\n regex: StringUtilities.REGEX_IDVN,\n errorMessage: 'core.validator.cccd.error',\n },\n {\n type: 'PASSPORT',\n name: 'core.validator.passport.name',\n regex: StringUtilities.REGEX_PASSPORT,\n errorMessage: 'core.validator.passport.error',\n },\n {\n type: 'IDVN_OR_PASSPORT',\n name: 'core.validator.id-vn.name',\n regex: StringUtilities.REGEX_IDVN_OR_PASSPORT,\n errorMessage: 'core.validator.id-vn.error',\n },\n {\n type: 'TIME',\n name: 'core.validator.time.name',\n regex: StringUtilities.REGEX_TIME,\n errorMessage: 'core.validator.time.error',\n },\n];\n","export const SD_EMPTY_STR = '--';\r\n","import { firstValueFrom, from, Observable, of } from 'rxjs';\r\n\r\nexport type SdMaybeAsync<T> = T | Promise<T> | Observable<T>;\r\n\r\nexport const SdResolveMaybeAsync = <T>(value: SdMaybeAsync<T>): Promise<T> => {\r\n if (value instanceof Promise) {\r\n return value;\r\n }\r\n if (isObservable(value)) {\r\n return firstValueFrom(value);\r\n }\r\n return Promise.resolve(value);\r\n};\r\n\r\nexport const SdNormalizeAsync = <T>(value: SdMaybeAsync<T>): Observable<T> => {\r\n if (isObservable(value)) {\r\n return value; // Nếu là Observable, giữ nguyên\r\n }\r\n if (value instanceof Promise) {\r\n return from(value); // Nếu là Promise, chuyển sang Observable\r\n }\r\n return of(value); // Nếu là giá trị thuần (Object, string...), bọc lại bằng of\r\n};\r\n\r\nfunction isObservable(obj: any): obj is Observable<any> {\r\n return obj && typeof obj.subscribe === 'function';\r\n}","export type SdOperator = SdOperatorHasData | SdOperatorNoData;\n\nexport type SdOperatorHasData =\n | 'EQUAL'\n | 'NOT_EQUAL'\n | 'CONTAIN'\n | 'NOT_CONTAIN'\n | 'IN'\n | 'NOT_IN'\n | 'START_WITH'\n | 'END_WITH'\n | 'GREATER_THAN'\n | 'LESS_THAN'\n | 'GREATER_OR_EQUAL'\n | 'LESS_OR_EQUAL'\n | 'BETWEEN';\n\nexport type SdOperatorNoData = 'NULL' | 'NOT_NULL';\n\n// `display` chứa i18n KEY (không phải chuỗi đã dịch).\n// Consumer phải gọi i18n.t(display) trước khi render ra UI.\nexport const SdOperators: {\n value: SdOperator;\n symbol?: string;\n display: string;\n}[] = [\n {\n value: 'EQUAL',\n symbol: '=',\n display: 'core.operator.equal.display',\n },\n {\n value: 'NOT_EQUAL',\n symbol: '≠',\n display: 'core.operator.not-equal.display',\n },\n {\n value: 'GREATER_THAN',\n symbol: '>',\n display: 'core.operator.greater-than.display',\n },\n {\n value: 'LESS_THAN',\n symbol: '<',\n display: 'core.operator.less-than.display',\n },\n {\n value: 'GREATER_OR_EQUAL',\n symbol: '≥',\n display: 'core.operator.greater-or-equal.display',\n },\n {\n value: 'LESS_OR_EQUAL',\n symbol: '≤',\n display: 'core.operator.less-or-equal.display',\n },\n {\n value: 'CONTAIN',\n symbol: 'join_inner',\n display: 'core.operator.contain.display',\n },\n {\n value: 'NOT_CONTAIN',\n symbol: 'join',\n display: 'core.operator.not-contain.display',\n },\n {\n value: 'START_WITH',\n symbol: 'line_start_circle',\n display: 'core.operator.start-with.display',\n },\n {\n value: 'END_WITH',\n symbol: 'line_end_circle',\n display: 'core.operator.end-with.display',\n },\n {\n value: 'IN',\n symbol: 'checklist_rtl',\n display: 'core.operator.in.display',\n },\n {\n value: 'NOT_IN',\n symbol: 'event_list',\n display: 'core.operator.not-in.display',\n },\n {\n value: 'NULL',\n symbol: 'motion_photos_off',\n display: 'core.operator.null.display',\n },\n {\n value: 'NOT_NULL',\n symbol: 'adjust',\n display: 'core.operator.not-null.display',\n },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AACO,MAAM,0BAA0B,GAAwB;;ACYxD,MAAM,gBAAgB,GAAsB;AACjD,IAAA;AACE,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,eAAe,CAAC,WAAW;AAClC,QAAA,YAAY,EAAE,4BAA4B;AAC3C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,eAAe,CAAC,WAAW;AAClC,QAAA,YAAY,EAAE,4BAA4B;AAC3C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,eAAe,CAAC,cAAc;AACrC,QAAA,YAAY,EAAE,+BAA+B;AAC9C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE,eAAe,CAAC,UAAU;AACjC,QAAA,YAAY,EAAE,2BAA2B;AAC1C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,eAAe,CAAC,cAAc;AACrC,QAAA,YAAY,EAAE,+BAA+B;AAC9C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,eAAe,CAAC,sBAAsB;AAC7C,QAAA,YAAY,EAAE,4BAA4B;AAC3C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE,eAAe,CAAC,UAAU;AACjC,QAAA,YAAY,EAAE,2BAA2B;AAC1C,KAAA;;;ACvDI,MAAM,YAAY,GAAG;;ACIrB,MAAM,mBAAmB,GAAG,CAAI,KAAsB,KAAgB;AAC3E,IAAA,IAAI,KAAK,YAAY,OAAO,EAAE;AAC5B,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AACvB,QAAA,OAAO,cAAc,CAAC,KAAK,CAAC;IAC9B;AACA,IAAA,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/B;AAEO,MAAM,gBAAgB,GAAG,CAAI,KAAsB,KAAmB;AAC3E,IAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,KAAK,CAAC;IACf;AACA,IAAA,IAAI,KAAK,YAAY,OAAO,EAAE;AAC5B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB;AACA,IAAA,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACnB;AAEA,SAAS,YAAY,CAAC,GAAQ,EAAA;IAC5B,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU;AACnD;;ACPA;AACA;AACO,MAAM,WAAW,GAIlB;AACJ,IAAA;AACE,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,OAAO,EAAE,6BAA6B;AACvC,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,OAAO,EAAE,iCAAiC;AAC3C,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,OAAO,EAAE,oCAAoC;AAC9C,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,OAAO,EAAE,iCAAiC;AAC3C,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,OAAO,EAAE,wCAAwC;AAClD,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,OAAO,EAAE,qCAAqC;AAC/C,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,OAAO,EAAE,+BAA+B;AACzC,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,mCAAmC;AAC7C,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,OAAO,EAAE,kCAAkC;AAC5C,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,OAAO,EAAE,gCAAgC;AAC1C,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,OAAO,EAAE,0BAA0B;AACpC,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,OAAO,EAAE,8BAA8B;AACxC,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,OAAO,EAAE,4BAA4B;AACtC,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,OAAO,EAAE,gCAAgC;AAC1C,KAAA;;;AC/FH;;AAEG;;;;"}
@@ -5,8 +5,8 @@ export declare class SdCheckbox implements OnDestroy, OnInit, AfterViewInit {
5
5
  #private;
6
6
  private ref;
7
7
  id: string;
8
- autoId?: string;
9
- set _autoId(val: string | undefined | null);
8
+ readonly autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
9
+ readonly autoId: import("@angular/core").Signal<string | undefined>;
10
10
  set name(val: string);
11
11
  set form(val: NgForm | FormGroup);
12
12
  formControl: FormControl<any>;
@@ -24,5 +24,5 @@ export declare class SdCheckbox implements OnDestroy, OnInit, AfterViewInit {
24
24
  ngOnDestroy(): void;
25
25
  customInlineErrorValidator(): ValidatorFn;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<SdCheckbox, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<SdCheckbox, "sd-checkbox", never, { "_autoId": { "alias": "autoId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "model": { "alias": "model"; "required": false; }; "_inlineError": { "alias": "inlineError"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, never, never, true, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdCheckbox, "sd-checkbox", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "model": { "alias": "model"; "required": false; }; "_inlineError": { "alias": "inlineError"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, never, never, true, never>;
28
28
  }
@@ -15,7 +15,8 @@ declare class SdChipErrorStateMatcher implements ErrorStateMatcher {
15
15
  }
16
16
  export declare class SdChip implements AfterViewInit {
17
17
  #private;
18
- autoId: import("@angular/core").InputSignal<string | undefined>;
18
+ autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
19
+ autoId: import("@angular/core").Signal<string | undefined>;
19
20
  name: import("@angular/core").InputSignal<string | undefined>;
20
21
  appearance: import("@angular/core").InputSignal<MatFormFieldAppearance>;
21
22
  floatLabel: import("@angular/core").InputSignal<FloatLabelType>;
@@ -60,6 +61,6 @@ export declare class SdChip implements AfterViewInit {
60
61
  focus: () => void;
61
62
  onClear: ($event?: any) => void;
62
63
  static ɵfac: i0.ɵɵFactoryDeclaration<SdChip, never>;
63
- static ɵcmp: i0.ɵɵComponentDeclaration<SdChip, "sd-chip", never, { "autoId": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "addable": { "alias": "addable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, ["sdViewDef", "sdLabelDef", "sdLabelTemplate", "sdValueTemplate"], never, true, never>;
64
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdChip, "sd-chip", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "addable": { "alias": "addable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, ["sdViewDef", "sdLabelDef", "sdLabelTemplate", "sdValueTemplate"], never, true, never>;
64
65
  }
65
66
  export {};
@@ -18,7 +18,8 @@ export declare class SdChipCalendar implements AfterViewInit {
18
18
  #private;
19
19
  menuTrigger: MatMenuTrigger;
20
20
  calendar: MatCalendar<Date>;
21
- autoId: import("@angular/core").InputSignal<string | undefined>;
21
+ autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
22
+ autoId: import("@angular/core").Signal<string | undefined>;
22
23
  name: import("@angular/core").InputSignal<string | undefined>;
23
24
  appearance: import("@angular/core").InputSignal<MatFormFieldAppearance>;
24
25
  floatLabel: import("@angular/core").InputSignal<FloatLabelType>;
@@ -60,6 +61,6 @@ export declare class SdChipCalendar implements AfterViewInit {
60
61
  onCloseCalendar: () => void;
61
62
  dateClass: (cellDate: Date) => "" | "sd-chip-calendar-selected-date";
62
63
  static ɵfac: i0.ɵɵFactoryDeclaration<SdChipCalendar, never>;
63
- static ɵcmp: i0.ɵɵComponentDeclaration<SdChipCalendar, "sd-chip-calendar", never, { "autoId": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, ["sdViewDef", "sdLabelDef", "sdLabelTemplate", "sdValueTemplate"], never, true, never>;
64
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdChipCalendar, "sd-chip-calendar", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, ["sdViewDef", "sdLabelDef", "sdLabelTemplate", "sdValueTemplate"], never, true, never>;
64
65
  }
65
66
  export {};
@@ -5,13 +5,12 @@ import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-f
5
5
  import { SdLabelDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
6
6
  import { SdFormControl } from '@sd-angular/core/forms/models';
7
7
  import { SdSize } from '@sd-angular/core/utilities';
8
- import moment, { Moment } from 'moment';
9
8
  import * as i0 from "@angular/core";
10
9
  export declare class SdDate implements OnDestroy, OnInit {
11
10
  #private;
12
11
  id: string;
13
12
  inputRef: import("@angular/core").Signal<ElementRef<HTMLInputElement> | undefined>;
14
- datePicker: import("@angular/core").Signal<MatDatepicker<moment.Moment> | undefined>;
13
+ datePicker: import("@angular/core").Signal<MatDatepicker<Date> | undefined>;
15
14
  sdLabelTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
16
15
  sdValueTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
17
16
  sdViewDef: import("@angular/core").Signal<SdViewDefDirective | undefined>;
@@ -65,7 +64,7 @@ export declare class SdDate implements OnDestroy, OnInit {
65
64
  focusInputElement(): void;
66
65
  onKeyDown: (event: KeyboardEvent) => boolean;
67
66
  onKeyup: (event: any) => void;
68
- onChange: (event: MatDatepickerInputEvent<Moment>) => void;
67
+ onChange: (event: MatDatepickerInputEvent<Date>) => void;
69
68
  clear: ($event: any) => void;
70
69
  static ɵfac: i0.ɵɵFactoryDeclaration<SdDate, never>;
71
70
  static ɵcmp: i0.ɵɵComponentDeclaration<SdDate, "sd-date", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "minInput": { "alias": "min"; "required": false; "isSignal": true; }; "minDateInput": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxInput": { "alias": "max"; "required": false; "isSignal": true; }; "maxDateInput": { "alias": "maxDate"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; "sdFocus": "sdFocus"; }, ["sdLabelTemplate", "sdValueTemplate", "sdViewDef", "sdLabelDef"], ["[sdLabel]"], true, never>;
@@ -4,7 +4,6 @@ import { MatDatepickerInputEvent, MatDateRangePicker } from '@angular/material/d
4
4
  import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
5
5
  import { SdLabelDefDirective } from '@sd-angular/core/forms/directives';
6
6
  import { SdSize } from '@sd-angular/core/utilities/models';
7
- import { Moment } from 'moment';
8
7
  import * as i0 from "@angular/core";
9
8
  interface Daterange {
10
9
  from?: string | null;
@@ -49,8 +48,8 @@ export declare class SdDateRange implements OnDestroy, OnInit {
49
48
  constructor();
50
49
  ngOnInit(): void;
51
50
  ngOnDestroy(): void;
52
- onStartChange: (event: MatDatepickerInputEvent<Moment>) => void;
53
- onEndChange: (event: MatDatepickerInputEvent<Moment>) => void;
51
+ onStartChange: (event: MatDatepickerInputEvent<Date>) => void;
52
+ onEndChange: (event: MatDatepickerInputEvent<Date>) => void;
54
53
  clear: () => void;
55
54
  onEnter: () => void;
56
55
  onFocus: () => void;
@@ -47,6 +47,7 @@ export declare class SdDatetime implements OnDestroy, OnInit {
47
47
  maxDateInput: import("@angular/core").InputSignal<any>;
48
48
  resolvedMax: import("@angular/core").Signal<Date | null>;
49
49
  valueModel: import("@angular/core").ModelSignal<string | number | Date | null | undefined>;
50
+ viewedDate: import("@angular/core").Signal<Date | null>;
50
51
  sdChange: import("@angular/core").OutputEmitterRef<any>;
51
52
  sdFocus: import("@angular/core").OutputEmitterRef<void>;
52
53
  isMobileOrTablet: boolean;
@@ -1,5 +1,4 @@
1
1
  import { EventEmitter } from '@angular/core';
2
- import moment, { Moment } from 'moment';
3
2
  import * as i0 from "@angular/core";
4
3
  /**
5
4
  * Datetime picker popup — Calendar (Angular Material) + Time Spinner + Footer.
@@ -9,30 +8,30 @@ import * as i0 from "@angular/core";
9
8
  */
10
9
  export declare class SdDatetimePicker {
11
10
  #private;
12
- /** Giá trị khởi tạo của picker (Moment, có thể null). */
13
- initialValue: import("@angular/core").InputSignal<moment.Moment | null>;
14
- /** Min/max boundary (Moment hoặc Date). */
15
- minDate: import("@angular/core").InputSignal<moment.Moment | Date | null>;
16
- maxDate: import("@angular/core").InputSignal<moment.Moment | Date | null>;
11
+ /** Giá trị khởi tạo của picker (native Date, có thể null). */
12
+ initialValue: import("@angular/core").InputSignal<Date | null>;
13
+ /** Min/max boundary (Date hoặc bất kỳ giá trị nào hợp lệ cho `new Date(...)`). */
14
+ minDate: import("@angular/core").InputSignal<string | number | Date | null>;
15
+ maxDate: import("@angular/core").InputSignal<string | number | Date | null>;
17
16
  /** Hiển thị thêm cột giây (mặc định ẩn — chỉ HH:MM). */
18
17
  showSeconds: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
19
18
  /** Disabled state. */
20
19
  disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
21
- confirmed: EventEmitter<moment.Moment>;
20
+ confirmed: EventEmitter<Date>;
22
21
  cancelled: EventEmitter<void>;
23
- selectedDate: import("@angular/core").WritableSignal<moment.Moment>;
22
+ selectedDate: import("@angular/core").WritableSignal<Date>;
24
23
  hours: import("@angular/core").WritableSignal<number>;
25
24
  minutes: import("@angular/core").WritableSignal<number>;
26
25
  seconds: import("@angular/core").WritableSignal<number>;
27
26
  constructor();
28
27
  /** Khi user chọn ngày trên MatCalendar. */
29
- onDateSelected(date: Moment | null): void;
28
+ onDateSelected(date: Date | null): void;
30
29
  onConfirm(): void;
31
30
  onCancel(): void;
32
31
  /** Đặt nhanh thời gian "Bây giờ". */
33
32
  onNow(): void;
34
- get _minMoment(): Moment | null;
35
- get _maxMoment(): Moment | null;
33
+ get _minDate(): Date | null;
34
+ get _maxDate(): Date | null;
36
35
  static ɵfac: i0.ɵɵFactoryDeclaration<SdDatetimePicker, never>;
37
36
  static ɵcmp: i0.ɵɵComponentDeclaration<SdDatetimePicker, "sd-datetime-picker", never, { "initialValue": { "alias": "initialValue"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "confirmed": "confirmed"; "cancelled": "cancelled"; }, never, never, true, never>;
38
37
  }
@@ -7,8 +7,8 @@ export declare class SdRadio implements OnInit, AfterViewInit, OnDestroy {
7
7
  #private;
8
8
  ref: ChangeDetectorRef;
9
9
  id: string;
10
- autoId?: string;
11
- set _autoId(val: string | undefined | null);
10
+ readonly autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
11
+ readonly autoId: import("@angular/core").Signal<string | undefined>;
12
12
  set name(val: string | undefined);
13
13
  formControl: SdFormControl;
14
14
  set form(val: NgForm | FormGroup | undefined | null);
@@ -46,5 +46,5 @@ export declare class SdRadio implements OnInit, AfterViewInit, OnDestroy {
46
46
  customInlineErrorValidator(): ValidatorFn;
47
47
  reValidate: () => void;
48
48
  static ɵfac: i0.ɵɵFactoryDeclaration<SdRadio, never>;
49
- static ɵcmp: i0.ɵɵComponentDeclaration<SdRadio, "sd-radio", never, { "_autoId": { "alias": "autoId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "_display": { "alias": "display"; "required": false; }; "model": { "alias": "model"; "required": false; }; "pItems": { "alias": "items"; "required": false; }; "valueField": { "alias": "valueField"; "required": true; }; "displayField": { "alias": "displayField"; "required": true; }; "_required": { "alias": "required"; "required": false; }; "_inlineError": { "alias": "inlineError"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "_viewed": { "alias": "viewed"; "required": false; }; "hyperlink": { "alias": "hyperlink"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdSuffixDef", "sdLabelDef", "sdViewDef"], never, true, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdRadio, "sd-radio", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "_display": { "alias": "display"; "required": false; }; "model": { "alias": "model"; "required": false; }; "pItems": { "alias": "items"; "required": false; }; "valueField": { "alias": "valueField"; "required": true; }; "displayField": { "alias": "displayField"; "required": true; }; "_required": { "alias": "required"; "required": false; }; "_inlineError": { "alias": "inlineError"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "_viewed": { "alias": "viewed"; "required": false; }; "hyperlink": { "alias": "hyperlink"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdSuffixDef", "sdLabelDef", "sdViewDef"], never, true, never>;
50
50
  }
@@ -7,8 +7,8 @@ export declare class SdSwitch implements OnInit, AfterViewInit, OnDestroy {
7
7
  #private;
8
8
  private ref;
9
9
  id: string;
10
- autoId?: string;
11
- set _autoId(val: string | undefined | null);
10
+ readonly autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
11
+ readonly autoId: import("@angular/core").Signal<string | undefined>;
12
12
  set _name(val: string | undefined);
13
13
  set form(val: NgForm | FormGroup | undefined | null);
14
14
  label?: string;
@@ -29,5 +29,5 @@ export declare class SdSwitch implements OnInit, AfterViewInit, OnDestroy {
29
29
  ngAfterViewInit(): void;
30
30
  ngOnDestroy(): void;
31
31
  static ɵfac: i0.ɵɵFactoryDeclaration<SdSwitch, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<SdSwitch, "sd-switch", never, { "_autoId": { "alias": "autoId"; "required": false; }; "_name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "_label": { "alias": "label"; "required": false; }; "_color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "model": { "alias": "model"; "required": false; }; "_hideInlineError": { "alias": "hideInlineError"; "required": false; }; "_required": { "alias": "required"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, never, never, true, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdSwitch, "sd-switch", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "_name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "_label": { "alias": "label"; "required": false; }; "_color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "model": { "alias": "model"; "required": false; }; "_hideInlineError": { "alias": "hideInlineError"; "required": false; }; "_required": { "alias": "required"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, never, never, true, never>;
33
33
  }
@@ -0,0 +1,5 @@
1
+ export * from './src/i18n.token';
2
+ export * from './src/i18n.types';
3
+ export * from './src/i18n.messages';
4
+ export * from './src/i18n.service';
5
+ export * from './src/i18n.pipe';