@sd-angular/core 19.0.0-beta.90 → 19.0.0-beta.91

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 (257) hide show
  1. package/assets/scss/README.md +524 -0
  2. package/assets/scss/core/bootstrap.scss +0 -125
  3. package/assets/scss/core/utilities/_base.scss +333 -0
  4. package/assets/scss/core/utilities/_border.scss +22 -0
  5. package/assets/scss/core/utilities/_display.scss +10 -0
  6. package/assets/scss/core/utilities/_elevation.scss +80 -0
  7. package/assets/scss/core/utilities/_flexbox.scss +54 -0
  8. package/assets/scss/core/utilities/_gap.scss +9 -0
  9. package/assets/scss/core/utilities/_grid.scss +142 -0
  10. package/assets/scss/core/utilities/_index.scss +17 -0
  11. package/assets/scss/core/utilities/_misc.scss +20 -0
  12. package/assets/scss/core/utilities/_overflow.scss +9 -0
  13. package/assets/scss/core/utilities/_position.scss +8 -0
  14. package/assets/scss/core/utilities/_sizing.scss +28 -0
  15. package/assets/scss/core/utilities/_spacing.scss +31 -0
  16. package/assets/scss/core/utilities/_typography.scss +99 -0
  17. package/assets/scss/sd-core.scss +4 -6
  18. package/fesm2022/sd-angular-core-components-import-excel.mjs +2 -2
  19. package/fesm2022/sd-angular-core-components-import-excel.mjs.map +1 -1
  20. package/fesm2022/sd-angular-core-components-modal.mjs +2 -2
  21. package/fesm2022/sd-angular-core-components-modal.mjs.map +1 -1
  22. package/fesm2022/sd-angular-core-components-table.mjs +3 -3
  23. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  24. package/fesm2022/sd-angular-core-components-upload-file.mjs +4 -4
  25. package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
  26. package/fesm2022/sd-angular-core-components-workflow.mjs +6 -6
  27. package/fesm2022/sd-angular-core-components-workflow.mjs.map +1 -1
  28. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +2 -2
  29. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  30. package/fesm2022/sd-angular-core-forms-date-range.mjs +2 -2
  31. package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
  32. package/fesm2022/sd-angular-core-forms-date.mjs +2 -2
  33. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  34. package/fesm2022/sd-angular-core-forms-datetime.mjs +428 -70
  35. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  36. package/fesm2022/sd-angular-core-forms-select.mjs +2 -2
  37. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  38. package/fesm2022/sd-angular-core-modules-layout.mjs +1 -1
  39. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  40. package/forms/datetime/src/datetime.component.d.ts +16 -6
  41. package/forms/datetime/src/popup/sd-datetime-picker.component.d.ts +38 -0
  42. package/forms/datetime/src/popup/sd-time-spinner.component.d.ts +41 -0
  43. package/package.json +53 -53
  44. package/sd-angular-core-19.0.0-beta.91.tgz +0 -0
  45. package/assets/img/1D UX System.zip +0 -0
  46. package/assets/img/Popup/Vector.png +0 -0
  47. package/assets/img/empty.png +0 -0
  48. package/assets/img/empty.svg +0 -27
  49. package/assets/img/file-types/eps/001-file.eps +0 -143
  50. package/assets/img/file-types/eps/002-file-1.eps +0 -136
  51. package/assets/img/file-types/eps/003-file-2.eps +0 -130
  52. package/assets/img/file-types/eps/004-file-3.eps +0 -127
  53. package/assets/img/file-types/eps/005-file-4.eps +0 -120
  54. package/assets/img/file-types/eps/006-file-5.eps +0 -133
  55. package/assets/img/file-types/eps/007-file-6.eps +0 -133
  56. package/assets/img/file-types/eps/008-file-7.eps +0 -144
  57. package/assets/img/file-types/eps/009-file-8.eps +0 -150
  58. package/assets/img/file-types/eps/010-file-9.eps +0 -155
  59. package/assets/img/file-types/eps/011-file-10.eps +0 -124
  60. package/assets/img/file-types/eps/012-file-11.eps +0 -147
  61. package/assets/img/file-types/eps/013-file-12.eps +0 -125
  62. package/assets/img/file-types/eps/014-file-13.eps +0 -129
  63. package/assets/img/file-types/eps/015-file-14.eps +0 -143
  64. package/assets/img/file-types/eps/016-file-15.eps +0 -130
  65. package/assets/img/file-types/eps/017-file-16.eps +0 -197
  66. package/assets/img/file-types/eps/018-file-17.eps +0 -146
  67. package/assets/img/file-types/eps/019-file-18.eps +0 -131
  68. package/assets/img/file-types/eps/020-file-19.eps +0 -137
  69. package/assets/img/file-types/eps/021-file-20.eps +0 -134
  70. package/assets/img/file-types/eps/022-file-21.eps +0 -130
  71. package/assets/img/file-types/eps/023-file-22.eps +0 -161
  72. package/assets/img/file-types/eps/024-file-23.eps +0 -144
  73. package/assets/img/file-types/eps/025-file-24.eps +0 -164
  74. package/assets/img/file-types/eps/026-file-25.eps +0 -135
  75. package/assets/img/file-types/eps/027-file-26.eps +0 -124
  76. package/assets/img/file-types/eps/028-file-27.eps +0 -120
  77. package/assets/img/file-types/eps/029-file-28.eps +0 -141
  78. package/assets/img/file-types/eps/030-file-29.eps +0 -130
  79. package/assets/img/file-types/eps/031-file-30.eps +0 -157
  80. package/assets/img/file-types/eps/032-file-31.eps +0 -139
  81. package/assets/img/file-types/eps/033-file-32.eps +0 -139
  82. package/assets/img/file-types/eps/034-file-33.eps +0 -189
  83. package/assets/img/file-types/eps/035-file-34.eps +0 -162
  84. package/assets/img/file-types/eps/036-file-35.eps +0 -142
  85. package/assets/img/file-types/eps/037-file-36.eps +0 -123
  86. package/assets/img/file-types/eps/038-file-37.eps +0 -127
  87. package/assets/img/file-types/eps/039-file-38.eps +0 -146
  88. package/assets/img/file-types/eps/040-file-39.eps +0 -126
  89. package/assets/img/file-types/eps/041-file-40.eps +0 -117
  90. package/assets/img/file-types/eps/042-file-41.eps +0 -156
  91. package/assets/img/file-types/eps/043-file-42.eps +0 -118
  92. package/assets/img/file-types/eps/044-file-43.eps +0 -172
  93. package/assets/img/file-types/eps/045-file-44.eps +0 -201
  94. package/assets/img/file-types/eps/046-file-45.eps +0 -94
  95. package/assets/img/file-types/eps/047-file-46.eps +0 -176
  96. package/assets/img/file-types/eps/048-file-47.eps +0 -238
  97. package/assets/img/file-types/eps/049-file-48.eps +0 -187
  98. package/assets/img/file-types/eps/050-file-49.eps +0 -137
  99. package/assets/img/file-types/license/license.pdf +0 -0
  100. package/assets/img/file-types/png/3ds.png +0 -0
  101. package/assets/img/file-types/png/ai.png +0 -0
  102. package/assets/img/file-types/png/asp.png +0 -0
  103. package/assets/img/file-types/png/avi.png +0 -0
  104. package/assets/img/file-types/png/bin.png +0 -0
  105. package/assets/img/file-types/png/com.png +0 -0
  106. package/assets/img/file-types/png/css.png +0 -0
  107. package/assets/img/file-types/png/csv.png +0 -0
  108. package/assets/img/file-types/png/dbf.png +0 -0
  109. package/assets/img/file-types/png/dll.png +0 -0
  110. package/assets/img/file-types/png/doc.png +0 -0
  111. package/assets/img/file-types/png/docx.png +0 -0
  112. package/assets/img/file-types/png/dwg.png +0 -0
  113. package/assets/img/file-types/png/eml.png +0 -0
  114. package/assets/img/file-types/png/eps.png +0 -0
  115. package/assets/img/file-types/png/exe.png +0 -0
  116. package/assets/img/file-types/png/file.png +0 -0
  117. package/assets/img/file-types/png/fla.png +0 -0
  118. package/assets/img/file-types/png/gif.png +0 -0
  119. package/assets/img/file-types/png/htm.png +0 -0
  120. package/assets/img/file-types/png/ico.png +0 -0
  121. package/assets/img/file-types/png/ini.png +0 -0
  122. package/assets/img/file-types/png/iso.png +0 -0
  123. package/assets/img/file-types/png/jar.png +0 -0
  124. package/assets/img/file-types/png/jpg.png +0 -0
  125. package/assets/img/file-types/png/js.png +0 -0
  126. package/assets/img/file-types/png/mkv.png +0 -0
  127. package/assets/img/file-types/png/mov.png +0 -0
  128. package/assets/img/file-types/png/mp3.png +0 -0
  129. package/assets/img/file-types/png/mp4.png +0 -0
  130. package/assets/img/file-types/png/nfo.png +0 -0
  131. package/assets/img/file-types/png/obj.png +0 -0
  132. package/assets/img/file-types/png/otf.png +0 -0
  133. package/assets/img/file-types/png/pdf.png +0 -0
  134. package/assets/img/file-types/png/pkg.png +0 -0
  135. package/assets/img/file-types/png/png.png +0 -0
  136. package/assets/img/file-types/png/ppt.png +0 -0
  137. package/assets/img/file-types/png/pptx.png +0 -0
  138. package/assets/img/file-types/png/psd.png +0 -0
  139. package/assets/img/file-types/png/rtf.png +0 -0
  140. package/assets/img/file-types/png/svg.png +0 -0
  141. package/assets/img/file-types/png/tiff.png +0 -0
  142. package/assets/img/file-types/png/ttf.png +0 -0
  143. package/assets/img/file-types/png/txt.png +0 -0
  144. package/assets/img/file-types/png/vcf.png +0 -0
  145. package/assets/img/file-types/png/wav.png +0 -0
  146. package/assets/img/file-types/png/wmv.png +0 -0
  147. package/assets/img/file-types/png/xls.png +0 -0
  148. package/assets/img/file-types/png/xlsx.png +0 -0
  149. package/assets/img/file-types/png/xml.png +0 -0
  150. package/assets/img/file-types/png/zip.png +0 -0
  151. package/assets/img/file-types/psd/001-file.psd +0 -0
  152. package/assets/img/file-types/psd/002-file-1.psd +0 -0
  153. package/assets/img/file-types/psd/003-file-2.psd +0 -0
  154. package/assets/img/file-types/psd/004-file-3.psd +0 -0
  155. package/assets/img/file-types/psd/005-file-4.psd +0 -0
  156. package/assets/img/file-types/psd/006-file-5.psd +0 -0
  157. package/assets/img/file-types/psd/007-file-6.psd +0 -0
  158. package/assets/img/file-types/psd/008-file-7.psd +0 -0
  159. package/assets/img/file-types/psd/009-file-8.psd +0 -0
  160. package/assets/img/file-types/psd/010-file-9.psd +0 -0
  161. package/assets/img/file-types/psd/011-file-10.psd +0 -0
  162. package/assets/img/file-types/psd/012-file-11.psd +0 -0
  163. package/assets/img/file-types/psd/013-file-12.psd +0 -0
  164. package/assets/img/file-types/psd/014-file-13.psd +0 -0
  165. package/assets/img/file-types/psd/015-file-14.psd +0 -0
  166. package/assets/img/file-types/psd/016-file-15.psd +0 -0
  167. package/assets/img/file-types/psd/017-file-16.psd +0 -0
  168. package/assets/img/file-types/psd/018-file-17.psd +0 -0
  169. package/assets/img/file-types/psd/019-file-18.psd +0 -0
  170. package/assets/img/file-types/psd/020-file-19.psd +0 -0
  171. package/assets/img/file-types/psd/021-file-20.psd +0 -0
  172. package/assets/img/file-types/psd/022-file-21.psd +0 -0
  173. package/assets/img/file-types/psd/023-file-22.psd +0 -0
  174. package/assets/img/file-types/psd/024-file-23.psd +0 -0
  175. package/assets/img/file-types/psd/025-file-24.psd +0 -0
  176. package/assets/img/file-types/psd/026-file-25.psd +0 -0
  177. package/assets/img/file-types/psd/027-file-26.psd +0 -0
  178. package/assets/img/file-types/psd/028-file-27.psd +0 -0
  179. package/assets/img/file-types/psd/029-file-28.psd +0 -0
  180. package/assets/img/file-types/psd/030-file-29.psd +0 -0
  181. package/assets/img/file-types/psd/031-file-30.psd +0 -0
  182. package/assets/img/file-types/psd/032-file-31.psd +0 -0
  183. package/assets/img/file-types/psd/033-file-32.psd +0 -0
  184. package/assets/img/file-types/psd/034-file-33.psd +0 -0
  185. package/assets/img/file-types/psd/035-file-34.psd +0 -0
  186. package/assets/img/file-types/psd/036-file-35.psd +0 -0
  187. package/assets/img/file-types/psd/037-file-36.psd +0 -0
  188. package/assets/img/file-types/psd/038-file-37.psd +0 -0
  189. package/assets/img/file-types/psd/039-file-38.psd +0 -0
  190. package/assets/img/file-types/psd/040-file-39.psd +0 -0
  191. package/assets/img/file-types/psd/041-file-40.psd +0 -0
  192. package/assets/img/file-types/psd/042-file-41.psd +0 -0
  193. package/assets/img/file-types/psd/043-file-42.psd +0 -0
  194. package/assets/img/file-types/psd/044-file-43.psd +0 -0
  195. package/assets/img/file-types/psd/045-file-44.psd +0 -0
  196. package/assets/img/file-types/psd/046-file-45.psd +0 -0
  197. package/assets/img/file-types/psd/047-file-46.psd +0 -0
  198. package/assets/img/file-types/psd/048-file-47.psd +0 -0
  199. package/assets/img/file-types/psd/049-file-48.psd +0 -0
  200. package/assets/img/file-types/psd/050-file-49.psd +0 -0
  201. package/assets/img/file-types/svg/001-file.svg +0 -1
  202. package/assets/img/file-types/svg/002-file-1.svg +0 -1
  203. package/assets/img/file-types/svg/003-file-2.svg +0 -1
  204. package/assets/img/file-types/svg/004-file-3.svg +0 -1
  205. package/assets/img/file-types/svg/005-file-4.svg +0 -1
  206. package/assets/img/file-types/svg/006-file-5.svg +0 -1
  207. package/assets/img/file-types/svg/007-file-6.svg +0 -1
  208. package/assets/img/file-types/svg/008-file-7.svg +0 -1
  209. package/assets/img/file-types/svg/009-file-8.svg +0 -1
  210. package/assets/img/file-types/svg/010-file-9.svg +0 -1
  211. package/assets/img/file-types/svg/011-file-10.svg +0 -1
  212. package/assets/img/file-types/svg/012-file-11.svg +0 -1
  213. package/assets/img/file-types/svg/013-file-12.svg +0 -1
  214. package/assets/img/file-types/svg/014-file-13.svg +0 -1
  215. package/assets/img/file-types/svg/015-file-14.svg +0 -1
  216. package/assets/img/file-types/svg/016-file-15.svg +0 -1
  217. package/assets/img/file-types/svg/017-file-16.svg +0 -1
  218. package/assets/img/file-types/svg/018-file-17.svg +0 -1
  219. package/assets/img/file-types/svg/019-file-18.svg +0 -1
  220. package/assets/img/file-types/svg/020-file-19.svg +0 -1
  221. package/assets/img/file-types/svg/021-file-20.svg +0 -1
  222. package/assets/img/file-types/svg/022-file-21.svg +0 -1
  223. package/assets/img/file-types/svg/023-file-22.svg +0 -1
  224. package/assets/img/file-types/svg/024-file-23.svg +0 -1
  225. package/assets/img/file-types/svg/025-file-24.svg +0 -1
  226. package/assets/img/file-types/svg/026-file-25.svg +0 -1
  227. package/assets/img/file-types/svg/027-file-26.svg +0 -1
  228. package/assets/img/file-types/svg/028-file-27.svg +0 -1
  229. package/assets/img/file-types/svg/029-file-28.svg +0 -1
  230. package/assets/img/file-types/svg/030-file-29.svg +0 -1
  231. package/assets/img/file-types/svg/031-file-30.svg +0 -1
  232. package/assets/img/file-types/svg/032-file-31.svg +0 -1
  233. package/assets/img/file-types/svg/033-file-32.svg +0 -1
  234. package/assets/img/file-types/svg/034-file-33.svg +0 -1
  235. package/assets/img/file-types/svg/035-file-34.svg +0 -1
  236. package/assets/img/file-types/svg/036-file-35.svg +0 -1
  237. package/assets/img/file-types/svg/037-file-36.svg +0 -1
  238. package/assets/img/file-types/svg/038-file-37.svg +0 -1
  239. package/assets/img/file-types/svg/039-file-38.svg +0 -1
  240. package/assets/img/file-types/svg/040-file-39.svg +0 -1
  241. package/assets/img/file-types/svg/041-file-40.svg +0 -1
  242. package/assets/img/file-types/svg/042-file-41.svg +0 -1
  243. package/assets/img/file-types/svg/043-file-42.svg +0 -1
  244. package/assets/img/file-types/svg/044-file-43.svg +0 -1
  245. package/assets/img/file-types/svg/045-file-44.svg +0 -1
  246. package/assets/img/file-types/svg/046-file-45.svg +0 -1
  247. package/assets/img/file-types/svg/047-file-46.svg +0 -1
  248. package/assets/img/file-types/svg/048-file-47.svg +0 -1
  249. package/assets/img/file-types/svg/049-file-48.svg +0 -1
  250. package/assets/img/file-types/svg/050-file-49.svg +0 -1
  251. package/assets/img/plus-search-zoom-white.png +0 -0
  252. package/assets/scss/core/cursor.scss +0 -3
  253. package/assets/scss/core/elevation.scss +0 -57
  254. package/assets/scss/core/grid.scss +0 -40
  255. package/assets/scss/core/print.scss +0 -47
  256. package/assets/scss/core/typography.scss +0 -121
  257. package/sd-angular-core-19.0.0-beta.90.tgz +0 -0
@@ -1795,7 +1795,7 @@ class DatetimeComponent {
1795
1795
  }
1796
1796
  };
1797
1797
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: DatetimeComponent, deps: [{ token: i1$3.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1798
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: DatetimeComponent, isStandalone: true, selector: "lib-datetime", inputs: { setVariables: "setVariables", form: "form", _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"] }, ngImport: i0, template: "@if (component && entity) {\r\n @if (subtype === 'date') {\r\n <sd-date\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [helperText]=\"component.helperText\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [min]=\"component.validate?.min\"\r\n [max]=\"component.validate?.max\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed || component.properties?.viewed\"></sd-date>\r\n } @else {\r\n <sd-datetime\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [helperText]=\"component.helperText\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [min]=\"component.validate?.min\"\r\n [max]=\"component.validate?.max\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed || component.properties?.viewed\"></sd-datetime>\r\n }\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SdDate, selector: "sd-date", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }, { kind: "component", type: SdDatetime, selector: "sd-datetime", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1798
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: DatetimeComponent, isStandalone: true, selector: "lib-datetime", inputs: { setVariables: "setVariables", form: "form", _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"] }, ngImport: i0, template: "@if (component && entity) {\r\n @if (subtype === 'date') {\r\n <sd-date\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [helperText]=\"component.helperText\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [min]=\"component.validate?.min\"\r\n [max]=\"component.validate?.max\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed || component.properties?.viewed\"></sd-date>\r\n } @else {\r\n <sd-datetime\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [helperText]=\"component.helperText\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [min]=\"component.validate?.min\"\r\n [max]=\"component.validate?.max\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed || component.properties?.viewed\"></sd-datetime>\r\n }\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SdDate, selector: "sd-date", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }, { kind: "component", type: SdDatetime, selector: "sd-datetime", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "showSeconds", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1799
1799
  }
1800
1800
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: DatetimeComponent, decorators: [{
1801
1801
  type: Component,
@@ -2608,7 +2608,7 @@ class TableComponent {
2608
2608
  }
2609
2609
  };
2610
2610
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: FormGenericService }], target: i0.ɵɵFactoryTarget.Component });
2611
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TableComponent, isStandalone: true, selector: "lib-table", inputs: { setVariables: "setVariables", form: "form", _component: ["component", "_component"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange" }, viewQueries: [{ propertyName: "table", first: true, predicate: SdTable, descendants: true }, { propertyName: "sideDrawer", first: true, predicate: SdSideDrawer, descendants: true }, { propertyName: "uploadFiles", predicate: SdUploadFile, descendants: true }], ngImport: i0, template: "@if(component && tableOption) {\r\n <div style=\"width: 100%\">\r\n <sd-table [option]=\"tableOption\">\r\n @for(key of imageKeys; track key) {\r\n <ng-template [sdTableCellDef]=\"key\" let-item=\"item\">\r\n <sd-upload-file\r\n type=\"image\"\r\n [model]=\"item[key]\"\r\n [args]=\"getArgs(key)\"\r\n (modelChange)=\"onFileUploadChange(item, key, $event)\"\r\n align=\"left\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n </ng-template>\r\n }\r\n @for(key of fileKeys; track key) {\r\n <ng-template [sdTableCellDef]=\"key\" let-item=\"item\">\r\n <sd-upload-file\r\n [model]=\"item[key]\"\r\n [args]=\"getArgs(key)\"\r\n (modelChange)=\"onFileUploadChange(item, key, $event)\"\r\n align=\"left\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n </ng-template>\r\n }\r\n </sd-table>\r\n @if(!viewed && !component.properties?.viewed) {\r\n <sd-button\r\n prefixIcon=\"add\"\r\n color=\"primary\"\r\n (click)=\"onDetail()\"\r\n [title]=\"component.properties?.titleButtonCreate || 'Th\u00EAm m\u1EDBi'\"></sd-button>\r\n }\r\n @if(!viewed && !component.properties?.viewed) {\r\n <sd-side-drawer title=\"Chi ti\u1EBFt\" width=\"500px\">\r\n <div sdTitle>\r\n <span>T\u1EA1o m\u1EDBi/c\u1EADp nh\u1EADt</span>\r\n </div>\r\n <div sdBody class=\"c-table-create-update\">\r\n @if(!!component.columns?.length) {\r\n <div class=\"row mx-0\">\r\n @for(column of component.columns;track column.key) {\r\n @let validate = formRenderColumn[column.key].validate;\r\n <div class=\"col-12 px-0 mt-16\">\r\n @if(column.type === 'string') {\r\n <sd-input\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"\r\n [pattern]=\"column.validate?.pattern\"\r\n [patternErrorMessage]=\"column.validate?.patternErrorMessage\"></sd-input>\r\n }@else if(column.type === 'number') {\r\n <sd-input-number\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"\r\n [min]=\"column.validate?.min\"></sd-input-number>\r\n }@else if(column.type === 'radio') {\r\n <sd-radio\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [name]=\"column.key\"\r\n [items]=\"column.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [required]=\"validate?.required\"></sd-radio>\r\n }@else if(column.type === 'values') {\r\n <sd-autocomplete\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [items]=\"columnValues[column.key]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [required]=\"validate?.required\"></sd-autocomplete>\r\n }@else if(column.type === 'date') {\r\n <sd-date\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"></sd-date>\r\n }@else if(column.type === 'datetime') {\r\n <sd-datetime\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"></sd-datetime>\r\n }@else if(column.type === 'image') {\r\n <sd-upload-file\r\n [label]=\"column.label\"\r\n type=\"image\"\r\n [(model)]=\"row[column.key]\"\r\n [args]=\"column.args\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"\r\n align=\"left\"></sd-upload-file>\r\n }@else if (column.type === 'file') {\r\n <sd-upload-file\r\n [label]=\"column.label\"\r\n type=\"file\"\r\n [(model)]=\"row[column.key]\"\r\n [args]=\"column.args\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"\r\n align=\"left\"></sd-upload-file>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n </div>\r\n <div sdFooter class=\"text-right pr-16\">\r\n <sd-button title=\"L\u01B0u\" prefixIcon=\"save\" color=\"primary\" type=\"fill\" (click)=\"onAccept()\"></sd-button>\r\n </div>\r\n </sd-side-drawer>\r\n }\r\n </div>\r\n}\r\n\r\n", styles: [":host{display:contents}.c-table-create-update{background:#fff;margin:-16px;padding:16px;height:calc(100vh - 97px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SdInput, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdInputNumber$1, selector: "sd-input-number", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "type", "precision", "format", "min", "max", "validator", "inlineError", "hyperlink", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdAutocomplete, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdUploadFile, selector: "sd-upload-file", inputs: ["args", "label", "key", "description", "previewWidth", "previewHeight", "align", "upload", "details", "download", "imageValidator", "maxSize", "maxWidth", "maxHeight", "scaleToPixel", "form", "name", "required", "type", "helperText", "max", "maxOfImage", "extensions", "disabled", "model"], outputs: ["loaded", "filesChanged", "modelChange"] }, { kind: "component", type: SdTable, selector: "sd-table", inputs: ["autoId", "option"] }, { kind: "directive", type: SdTabelCellDefDirective, selector: "[sdTableCellDef]", inputs: ["sdTableCellDef"] }, { kind: "component", type: SdSideDrawer, selector: "sd-side-drawer", inputs: ["title", "width", "hideClose", "disableBackdropClose", "drawerClass"], outputs: ["sdClosed"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdRadio, selector: "sd-radio", inputs: ["autoId", "name", "form", "label", "placeholder", "display", "model", "items", "valueField", "displayField", "required", "inlineError", "disabled", "viewed", "hyperlink"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "component", type: SdDate, selector: "sd-date", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }, { kind: "component", type: SdDatetime, selector: "sd-datetime", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2611
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TableComponent, isStandalone: true, selector: "lib-table", inputs: { setVariables: "setVariables", form: "form", _component: ["component", "_component"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange" }, viewQueries: [{ propertyName: "table", first: true, predicate: SdTable, descendants: true }, { propertyName: "sideDrawer", first: true, predicate: SdSideDrawer, descendants: true }, { propertyName: "uploadFiles", predicate: SdUploadFile, descendants: true }], ngImport: i0, template: "@if(component && tableOption) {\r\n <div style=\"width: 100%\">\r\n <sd-table [option]=\"tableOption\">\r\n @for(key of imageKeys; track key) {\r\n <ng-template [sdTableCellDef]=\"key\" let-item=\"item\">\r\n <sd-upload-file\r\n type=\"image\"\r\n [model]=\"item[key]\"\r\n [args]=\"getArgs(key)\"\r\n (modelChange)=\"onFileUploadChange(item, key, $event)\"\r\n align=\"left\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n </ng-template>\r\n }\r\n @for(key of fileKeys; track key) {\r\n <ng-template [sdTableCellDef]=\"key\" let-item=\"item\">\r\n <sd-upload-file\r\n [model]=\"item[key]\"\r\n [args]=\"getArgs(key)\"\r\n (modelChange)=\"onFileUploadChange(item, key, $event)\"\r\n align=\"left\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n </ng-template>\r\n }\r\n </sd-table>\r\n @if(!viewed && !component.properties?.viewed) {\r\n <sd-button\r\n prefixIcon=\"add\"\r\n color=\"primary\"\r\n (click)=\"onDetail()\"\r\n [title]=\"component.properties?.titleButtonCreate || 'Th\u00EAm m\u1EDBi'\"></sd-button>\r\n }\r\n @if(!viewed && !component.properties?.viewed) {\r\n <sd-side-drawer title=\"Chi ti\u1EBFt\" width=\"500px\">\r\n <div sdTitle>\r\n <span>T\u1EA1o m\u1EDBi/c\u1EADp nh\u1EADt</span>\r\n </div>\r\n <div sdBody class=\"c-table-create-update\">\r\n @if(!!component.columns?.length) {\r\n <div class=\"sd-grid-container grid-cols-1\">\r\n @for(column of component.columns;track column.key) {\r\n @let validate = formRenderColumn[column.key].validate;\r\n <div class=\"col-span-full mt-16\">\r\n @if(column.type === 'string') {\r\n <sd-input\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"\r\n [pattern]=\"column.validate?.pattern\"\r\n [patternErrorMessage]=\"column.validate?.patternErrorMessage\"></sd-input>\r\n }@else if(column.type === 'number') {\r\n <sd-input-number\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"\r\n [min]=\"column.validate?.min\"></sd-input-number>\r\n }@else if(column.type === 'radio') {\r\n <sd-radio\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [name]=\"column.key\"\r\n [items]=\"column.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [required]=\"validate?.required\"></sd-radio>\r\n }@else if(column.type === 'values') {\r\n <sd-autocomplete\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [items]=\"columnValues[column.key]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [required]=\"validate?.required\"></sd-autocomplete>\r\n }@else if(column.type === 'date') {\r\n <sd-date\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"></sd-date>\r\n }@else if(column.type === 'datetime') {\r\n <sd-datetime\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"></sd-datetime>\r\n }@else if(column.type === 'image') {\r\n <sd-upload-file\r\n [label]=\"column.label\"\r\n type=\"image\"\r\n [(model)]=\"row[column.key]\"\r\n [args]=\"column.args\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"\r\n align=\"left\"></sd-upload-file>\r\n }@else if (column.type === 'file') {\r\n <sd-upload-file\r\n [label]=\"column.label\"\r\n type=\"file\"\r\n [(model)]=\"row[column.key]\"\r\n [args]=\"column.args\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"\r\n align=\"left\"></sd-upload-file>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n </div>\r\n <div sdFooter class=\"d-flex justify-content-end pr-16\">\r\n <sd-button title=\"L\u01B0u\" prefixIcon=\"save\" color=\"primary\" type=\"fill\" (click)=\"onAccept()\"></sd-button>\r\n </div>\r\n </sd-side-drawer>\r\n }\r\n </div>\r\n}\r\n\r\n", styles: [":host{display:contents}.c-table-create-update{background:#fff;margin:-16px;padding:16px;height:calc(100vh - 97px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SdInput, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdInputNumber$1, selector: "sd-input-number", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "type", "precision", "format", "min", "max", "validator", "inlineError", "hyperlink", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdAutocomplete, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdUploadFile, selector: "sd-upload-file", inputs: ["args", "label", "key", "description", "previewWidth", "previewHeight", "align", "upload", "details", "download", "imageValidator", "maxSize", "maxWidth", "maxHeight", "scaleToPixel", "form", "name", "required", "type", "helperText", "max", "maxOfImage", "extensions", "disabled", "model"], outputs: ["loaded", "filesChanged", "modelChange"] }, { kind: "component", type: SdTable, selector: "sd-table", inputs: ["autoId", "option"] }, { kind: "directive", type: SdTabelCellDefDirective, selector: "[sdTableCellDef]", inputs: ["sdTableCellDef"] }, { kind: "component", type: SdSideDrawer, selector: "sd-side-drawer", inputs: ["title", "width", "hideClose", "disableBackdropClose", "drawerClass"], outputs: ["sdClosed"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdRadio, selector: "sd-radio", inputs: ["autoId", "name", "form", "label", "placeholder", "display", "model", "items", "valueField", "displayField", "required", "inlineError", "disabled", "viewed", "hyperlink"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "component", type: SdDate, selector: "sd-date", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }, { kind: "component", type: SdDatetime, selector: "sd-datetime", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "showSeconds", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2612
2612
  }
2613
2613
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TableComponent, decorators: [{
2614
2614
  type: Component,
@@ -2627,7 +2627,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
2627
2627
  SdDate,
2628
2628
  SdDatetime,
2629
2629
  // Pipe cho phần viewed
2630
- ], template: "@if(component && tableOption) {\r\n <div style=\"width: 100%\">\r\n <sd-table [option]=\"tableOption\">\r\n @for(key of imageKeys; track key) {\r\n <ng-template [sdTableCellDef]=\"key\" let-item=\"item\">\r\n <sd-upload-file\r\n type=\"image\"\r\n [model]=\"item[key]\"\r\n [args]=\"getArgs(key)\"\r\n (modelChange)=\"onFileUploadChange(item, key, $event)\"\r\n align=\"left\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n </ng-template>\r\n }\r\n @for(key of fileKeys; track key) {\r\n <ng-template [sdTableCellDef]=\"key\" let-item=\"item\">\r\n <sd-upload-file\r\n [model]=\"item[key]\"\r\n [args]=\"getArgs(key)\"\r\n (modelChange)=\"onFileUploadChange(item, key, $event)\"\r\n align=\"left\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n </ng-template>\r\n }\r\n </sd-table>\r\n @if(!viewed && !component.properties?.viewed) {\r\n <sd-button\r\n prefixIcon=\"add\"\r\n color=\"primary\"\r\n (click)=\"onDetail()\"\r\n [title]=\"component.properties?.titleButtonCreate || 'Th\u00EAm m\u1EDBi'\"></sd-button>\r\n }\r\n @if(!viewed && !component.properties?.viewed) {\r\n <sd-side-drawer title=\"Chi ti\u1EBFt\" width=\"500px\">\r\n <div sdTitle>\r\n <span>T\u1EA1o m\u1EDBi/c\u1EADp nh\u1EADt</span>\r\n </div>\r\n <div sdBody class=\"c-table-create-update\">\r\n @if(!!component.columns?.length) {\r\n <div class=\"row mx-0\">\r\n @for(column of component.columns;track column.key) {\r\n @let validate = formRenderColumn[column.key].validate;\r\n <div class=\"col-12 px-0 mt-16\">\r\n @if(column.type === 'string') {\r\n <sd-input\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"\r\n [pattern]=\"column.validate?.pattern\"\r\n [patternErrorMessage]=\"column.validate?.patternErrorMessage\"></sd-input>\r\n }@else if(column.type === 'number') {\r\n <sd-input-number\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"\r\n [min]=\"column.validate?.min\"></sd-input-number>\r\n }@else if(column.type === 'radio') {\r\n <sd-radio\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [name]=\"column.key\"\r\n [items]=\"column.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [required]=\"validate?.required\"></sd-radio>\r\n }@else if(column.type === 'values') {\r\n <sd-autocomplete\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [items]=\"columnValues[column.key]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [required]=\"validate?.required\"></sd-autocomplete>\r\n }@else if(column.type === 'date') {\r\n <sd-date\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"></sd-date>\r\n }@else if(column.type === 'datetime') {\r\n <sd-datetime\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"></sd-datetime>\r\n }@else if(column.type === 'image') {\r\n <sd-upload-file\r\n [label]=\"column.label\"\r\n type=\"image\"\r\n [(model)]=\"row[column.key]\"\r\n [args]=\"column.args\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"\r\n align=\"left\"></sd-upload-file>\r\n }@else if (column.type === 'file') {\r\n <sd-upload-file\r\n [label]=\"column.label\"\r\n type=\"file\"\r\n [(model)]=\"row[column.key]\"\r\n [args]=\"column.args\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"\r\n align=\"left\"></sd-upload-file>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n </div>\r\n <div sdFooter class=\"text-right pr-16\">\r\n <sd-button title=\"L\u01B0u\" prefixIcon=\"save\" color=\"primary\" type=\"fill\" (click)=\"onAccept()\"></sd-button>\r\n </div>\r\n </sd-side-drawer>\r\n }\r\n </div>\r\n}\r\n\r\n", styles: [":host{display:contents}.c-table-create-update{background:#fff;margin:-16px;padding:16px;height:calc(100vh - 97px)}\n"] }]
2630
+ ], template: "@if(component && tableOption) {\r\n <div style=\"width: 100%\">\r\n <sd-table [option]=\"tableOption\">\r\n @for(key of imageKeys; track key) {\r\n <ng-template [sdTableCellDef]=\"key\" let-item=\"item\">\r\n <sd-upload-file\r\n type=\"image\"\r\n [model]=\"item[key]\"\r\n [args]=\"getArgs(key)\"\r\n (modelChange)=\"onFileUploadChange(item, key, $event)\"\r\n align=\"left\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n </ng-template>\r\n }\r\n @for(key of fileKeys; track key) {\r\n <ng-template [sdTableCellDef]=\"key\" let-item=\"item\">\r\n <sd-upload-file\r\n [model]=\"item[key]\"\r\n [args]=\"getArgs(key)\"\r\n (modelChange)=\"onFileUploadChange(item, key, $event)\"\r\n align=\"left\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n </ng-template>\r\n }\r\n </sd-table>\r\n @if(!viewed && !component.properties?.viewed) {\r\n <sd-button\r\n prefixIcon=\"add\"\r\n color=\"primary\"\r\n (click)=\"onDetail()\"\r\n [title]=\"component.properties?.titleButtonCreate || 'Th\u00EAm m\u1EDBi'\"></sd-button>\r\n }\r\n @if(!viewed && !component.properties?.viewed) {\r\n <sd-side-drawer title=\"Chi ti\u1EBFt\" width=\"500px\">\r\n <div sdTitle>\r\n <span>T\u1EA1o m\u1EDBi/c\u1EADp nh\u1EADt</span>\r\n </div>\r\n <div sdBody class=\"c-table-create-update\">\r\n @if(!!component.columns?.length) {\r\n <div class=\"sd-grid-container grid-cols-1\">\r\n @for(column of component.columns;track column.key) {\r\n @let validate = formRenderColumn[column.key].validate;\r\n <div class=\"col-span-full mt-16\">\r\n @if(column.type === 'string') {\r\n <sd-input\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"\r\n [pattern]=\"column.validate?.pattern\"\r\n [patternErrorMessage]=\"column.validate?.patternErrorMessage\"></sd-input>\r\n }@else if(column.type === 'number') {\r\n <sd-input-number\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"\r\n [min]=\"column.validate?.min\"></sd-input-number>\r\n }@else if(column.type === 'radio') {\r\n <sd-radio\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [name]=\"column.key\"\r\n [items]=\"column.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [required]=\"validate?.required\"></sd-radio>\r\n }@else if(column.type === 'values') {\r\n <sd-autocomplete\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [items]=\"columnValues[column.key]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [required]=\"validate?.required\"></sd-autocomplete>\r\n }@else if(column.type === 'date') {\r\n <sd-date\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"></sd-date>\r\n }@else if(column.type === 'datetime') {\r\n <sd-datetime\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"></sd-datetime>\r\n }@else if(column.type === 'image') {\r\n <sd-upload-file\r\n [label]=\"column.label\"\r\n type=\"image\"\r\n [(model)]=\"row[column.key]\"\r\n [args]=\"column.args\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"\r\n align=\"left\"></sd-upload-file>\r\n }@else if (column.type === 'file') {\r\n <sd-upload-file\r\n [label]=\"column.label\"\r\n type=\"file\"\r\n [(model)]=\"row[column.key]\"\r\n [args]=\"column.args\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"\r\n align=\"left\"></sd-upload-file>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n </div>\r\n <div sdFooter class=\"d-flex justify-content-end pr-16\">\r\n <sd-button title=\"L\u01B0u\" prefixIcon=\"save\" color=\"primary\" type=\"fill\" (click)=\"onAccept()\"></sd-button>\r\n </div>\r\n </sd-side-drawer>\r\n }\r\n </div>\r\n}\r\n\r\n", styles: [":host{display:contents}.c-table-create-update{background:#fff;margin:-16px;padding:16px;height:calc(100vh - 97px)}\n"] }]
2631
2631
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: FormGenericService }], propDecorators: { uploadFiles: [{
2632
2632
  type: ViewChildren,
2633
2633
  args: [SdUploadFile]
@@ -3100,11 +3100,11 @@ class SdFormRender extends SdBaseSecureComponent {
3100
3100
  return messages;
3101
3101
  };
3102
3102
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SdFormRender, deps: [{ token: i0.ChangeDetectorRef }, { token: SD_WORKFLOW_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Component });
3103
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: SdFormRender, isStandalone: true, selector: "sd-form-render", inputs: { form: "form", _configuration: ["configuration", "_configuration"], _default: ["defaultEntity", "_default"], _entity: ["entity", "_entity"], _properties: ["properties", "_properties"], _viewed: ["viewed", "_viewed"] }, viewQueries: [{ propertyName: "formRenderItems", predicate: LibItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (form && loadCompleted && hashedValues) {\r\n <div class=\"row mx-0\">\r\n @for (component of configuration.components; track component.id) {\r\n @let expression = hashedValues | whenExpression: component : formValue;\r\n @if (!expression.hidden) {\r\n @if (component.type === 'group') {\r\n @if (!!component.components.length) {\r\n <div class=\"col-12 mt-16\">\r\n <sd-section [title]=\"component.label\" [icon]=\"component.properties.icon\">\r\n <div class=\"row mx-0\">\r\n @for (childComponent of component.components; track childComponent.id) {\r\n @let childExpression = hashedValues | whenExpression: childComponent : formValue;\r\n @if (!childExpression.hidden) {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"childComponent\"\r\n [required]=\"childExpression.required\"\r\n [disabled]=\"childExpression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n </div>\r\n </sd-section>\r\n </div>\r\n }\r\n } @else {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [required]=\"expression.required\"\r\n [disabled]=\"expression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n }\r\n <variable [variables]=\"configuration.variables\" [setVariables]=\"setVariables\" [form]=\"form\" [entity]=\"entity\" ></variable>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: LibItemComponent, selector: "lib-item", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed", "validator"] }, { kind: "pipe", type: WhenExpressionPipe, name: "whenExpression" }, { kind: "component", type: VariableComponent, selector: "variable", inputs: ["variables", "setVariables", "form", "entity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3103
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: SdFormRender, isStandalone: true, selector: "sd-form-render", inputs: { form: "form", _configuration: ["configuration", "_configuration"], _default: ["defaultEntity", "_default"], _entity: ["entity", "_entity"], _properties: ["properties", "_properties"], _viewed: ["viewed", "_viewed"] }, viewQueries: [{ propertyName: "formRenderItems", predicate: LibItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (form && loadCompleted && hashedValues) {\r\n <div class=\"sd-grid-container grid-cols-1\">\r\n @for (component of configuration.components; track component.id) {\r\n @let expression = hashedValues | whenExpression: component : formValue;\r\n @if (!expression.hidden) {\r\n @if (component.type === 'group') {\r\n @if (!!component.components.length) {\r\n <div class=\"col-span-full mt-16\">\r\n <sd-section [title]=\"component.label\" [icon]=\"component.properties.icon\">\r\n <div class=\"sd-grid-container grid-cols-1\">\r\n @for (childComponent of component.components; track childComponent.id) {\r\n @let childExpression = hashedValues | whenExpression: childComponent : formValue;\r\n @if (!childExpression.hidden) {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"childComponent\"\r\n [required]=\"childExpression.required\"\r\n [disabled]=\"childExpression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n </div>\r\n </sd-section>\r\n </div>\r\n }\r\n } @else {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [required]=\"expression.required\"\r\n [disabled]=\"expression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n }\r\n <variable [variables]=\"configuration.variables\" [setVariables]=\"setVariables\" [form]=\"form\" [entity]=\"entity\" ></variable>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: LibItemComponent, selector: "lib-item", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed", "validator"] }, { kind: "pipe", type: WhenExpressionPipe, name: "whenExpression" }, { kind: "component", type: VariableComponent, selector: "variable", inputs: ["variables", "setVariables", "form", "entity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3104
3104
  }
3105
3105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SdFormRender, decorators: [{
3106
3106
  type: Component,
3107
- args: [{ selector: 'sd-form-render', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, LibItemComponent, WhenExpressionPipe, VariableComponent], template: "@if (form && loadCompleted && hashedValues) {\r\n <div class=\"row mx-0\">\r\n @for (component of configuration.components; track component.id) {\r\n @let expression = hashedValues | whenExpression: component : formValue;\r\n @if (!expression.hidden) {\r\n @if (component.type === 'group') {\r\n @if (!!component.components.length) {\r\n <div class=\"col-12 mt-16\">\r\n <sd-section [title]=\"component.label\" [icon]=\"component.properties.icon\">\r\n <div class=\"row mx-0\">\r\n @for (childComponent of component.components; track childComponent.id) {\r\n @let childExpression = hashedValues | whenExpression: childComponent : formValue;\r\n @if (!childExpression.hidden) {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"childComponent\"\r\n [required]=\"childExpression.required\"\r\n [disabled]=\"childExpression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n </div>\r\n </sd-section>\r\n </div>\r\n }\r\n } @else {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [required]=\"expression.required\"\r\n [disabled]=\"expression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n }\r\n <variable [variables]=\"configuration.variables\" [setVariables]=\"setVariables\" [form]=\"form\" [entity]=\"entity\" ></variable>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"] }]
3107
+ args: [{ selector: 'sd-form-render', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, LibItemComponent, WhenExpressionPipe, VariableComponent], template: "@if (form && loadCompleted && hashedValues) {\r\n <div class=\"sd-grid-container grid-cols-1\">\r\n @for (component of configuration.components; track component.id) {\r\n @let expression = hashedValues | whenExpression: component : formValue;\r\n @if (!expression.hidden) {\r\n @if (component.type === 'group') {\r\n @if (!!component.components.length) {\r\n <div class=\"col-span-full mt-16\">\r\n <sd-section [title]=\"component.label\" [icon]=\"component.properties.icon\">\r\n <div class=\"sd-grid-container grid-cols-1\">\r\n @for (childComponent of component.components; track childComponent.id) {\r\n @let childExpression = hashedValues | whenExpression: childComponent : formValue;\r\n @if (!childExpression.hidden) {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"childComponent\"\r\n [required]=\"childExpression.required\"\r\n [disabled]=\"childExpression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n </div>\r\n </sd-section>\r\n </div>\r\n }\r\n } @else {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [required]=\"expression.required\"\r\n [disabled]=\"expression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n }\r\n <variable [variables]=\"configuration.variables\" [setVariables]=\"setVariables\" [form]=\"form\" [entity]=\"entity\" ></variable>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"] }]
3108
3108
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
3109
3109
  type: Inject,
3110
3110
  args: [SD_WORKFLOW_CONFIGURATION]
@@ -3253,7 +3253,7 @@ class ExpressionBuilderComponent {
3253
3253
  }
3254
3254
  };
3255
3255
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionBuilderComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3256
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: ExpressionBuilderComponent, isStandalone: true, selector: "expression-builder", inputs: { label: "label", _attributes: ["attributes", "_attributes"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange", sdChange: "sdChange", edit: "edit" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], ngImport: i0, template: "<!-- <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ (model | expressionQuery) || '--' }}</a> -->\r\n<sd-input [label]=\"label\" style=\"width: 100%;\" [model]=\"(model | expressionQuery) || '--'\" disabled hideInlineError>\r\n <ng-template sdSuffixDef>\r\n <sd-button\r\n prefixIcon=\"edit\"\r\n color=\"primary\"\r\n (click)=\"onEdit()\"\r\n type=\"link\"></sd-button>\r\n </ng-template>\r\n</sd-input>\r\n@if (expression) {\r\n <sd-modal title=\"Thi\u1EBFt l\u1EADp bi\u1EC3u th\u1EE9c\">\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button\r\n prefixIcon=\"calculate\"\r\n class=\"mr-4\"\r\n title=\"Nh\u00F3m \u0111i\u1EC1u ki\u1EC7n\"\r\n color=\"primary\"\r\n (click)=\"addCombinator(expression.conditions)\"></sd-button>\r\n <sd-button\r\n prefixIcon=\"add\"\r\n title=\"\u0110i\u1EC1u ki\u1EC7n\"\r\n color=\"primary\"\r\n (click)=\"addCondition(expression.conditions)\"\r\n type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 1 -->\r\n @for (conditionLv1 of expression.conditions; track conditionLv1.key; let idxLv1 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv1 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv1 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"expression.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv1.type === 'condition') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 200px\"\r\n [(model)]=\"conditionLv1.field\"\r\n [items]=\"attributes\"\r\n (sdChange)=\"onChangeAttribute(conditionLv1)\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv1.field!];\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 100px\"\r\n [(model)]=\"conditionLv1.operator\"\r\n [items]=\"attributeOperators[fieldAttribute?.type || 'string']\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"!fieldAttribute?.type\"\r\n required\r\n hideInlineError></sd-select>\r\n @if (\r\n !!fieldAttribute?.type && conditionLv1.operator && conditionLv1.operator !== 'NULL' && conditionLv1.operator !== 'NOT_NULL'\r\n ) {\r\n @if (fieldAttribute.type === 'string') {\r\n <sd-input size=\"sm\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"conditionLv1.value\" required hideInlineError></sd-input>\r\n } @else if (fieldAttribute.type === 'number') {\r\n <sd-input-number size=\"sm\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"conditionLv1.value\" hideInlineError></sd-input-number>\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"numberAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n } @else if (fieldAttribute.type === 'datetime' && conditionLv1.dayInfo) {\r\n <sd-select\r\n size=\"sm\"\r\n placeholder=\"Th\u1EDDi \u0111i\u1EC3m\"\r\n [form]=\"form\"\r\n style=\"width: 150px\"\r\n [items]=\"types\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv1.dayInfo.type\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n @if (conditionLv1.dayInfo.type === 'RELATED') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 80px\"\r\n [(model)]=\"conditionLv1.dayInfo.relatedValue\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n [min]=\"1\"\r\n required\r\n hideInlineError>\r\n </sd-input-number>\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [items]=\"previouses\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv1.dayInfo.related\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n } @else if (conditionLv1.dayInfo.type === 'DATETIME') {\r\n <sd-datetime\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-datetime>\r\n } @else if (conditionLv1.dayInfo.type === 'ATTRIBUTE') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"dateAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n }\r\n } @else if (fieldAttribute.type === 'boolean') {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"[\r\n { value: true, display: fieldAttribute.displayOnTrue },\r\n { value: false, display: fieldAttribute.displayOnFalse }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-select>\r\n } @else if (fieldAttribute.type === 'values') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"fieldAttribute.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button class=\"ml-auto\" prefixIcon=\"delete\" tooltip=\"X\u00F3a\" (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n } @else if (conditionLv1.type === 'combinator') {\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button class=\"mr-4\" prefixIcon=\"delete\" tooltip=\"X\u00F3a\" (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n <sd-button\r\n prefixIcon=\"add\"\r\n title=\"\u0110i\u1EC1u ki\u1EC7n\"\r\n size=\"sm\"\r\n color=\"primary\"\r\n (click)=\"addCondition(conditionLv1.conditions)\"\r\n type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 2 -->\r\n @for (conditionLv2 of conditionLv1.conditions; track conditionLv2.key; let idxLv2 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv2 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv2 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"conditionLv1.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv2.type === 'condition') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 200px\"\r\n [(model)]=\"conditionLv2.field\"\r\n [items]=\"attributes\"\r\n (sdChange)=\"onChangeAttribute(conditionLv2)\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv2.field!];\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 100px\"\r\n [(model)]=\"conditionLv2.operator\"\r\n [items]=\"attributeOperators[fieldAttribute?.type || 'string']\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"!fieldAttribute?.type\"\r\n required\r\n hideInlineError></sd-select>\r\n @if (\r\n !!fieldAttribute?.type &&\r\n conditionLv2.operator &&\r\n conditionLv2.operator !== 'NULL' &&\r\n conditionLv2.operator !== 'NOT_NULL'\r\n ) {\r\n @if (fieldAttribute.type === 'string') {\r\n <sd-input\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n required\r\n hideInlineError></sd-input>\r\n } @else if (fieldAttribute.type === 'number') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n hideInlineError></sd-input-number>\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"numberAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n } @else if (fieldAttribute.type === 'datetime' && conditionLv2.dayInfo) {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n placeholder=\"Th\u1EDDi \u0111i\u1EC3m\"\r\n style=\"width: 150px\"\r\n [items]=\"types\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv2.dayInfo.type\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n @if (conditionLv2.dayInfo.type === 'RELATED') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 80px\"\r\n [(model)]=\"conditionLv2.dayInfo.relatedValue\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n [min]=\"1\"\r\n required\r\n hideInlineError>\r\n </sd-input-number>\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [items]=\"previouses\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv2.dayInfo.related\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n } @else if (conditionLv2.dayInfo.type === 'DATETIME') {\r\n <sd-datetime\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-datetime>\r\n } @else if (conditionLv2.dayInfo.type === 'ATTRIBUTE') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"dateAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n }\r\n } @else if (fieldAttribute.type === 'boolean') {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"[\r\n { value: true, display: fieldAttribute.displayOnTrue },\r\n { value: false, display: fieldAttribute.displayOnFalse }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-select>\r\n } @else if (fieldAttribute.type === 'values') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"fieldAttribute.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button\r\n class=\"ml-auto\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(conditionLv1.conditions, idxLv1)\"></sd-button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n </sd-modal>\r\n}\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"], dependencies: [{ kind: "component", type: SdInput$1, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdInputNumber, selector: "sd-input-number", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "type", "precision", "format", "min", "max", "validator", "inlineError", "hyperlink", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdSelect$1, selector: "sd-select", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "cacheChecksum", "limit", "hyperlink", "minWidthPanel", "hideInlineError", "required", "disabled", "viewed", "multiple", "validator", "inlineError", "appearance", "floatLabel", "items", "model"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }, { kind: "pipe", type: ExpressionQueryPipe, name: "expressionQuery" }, { kind: "component", type: SdDatetime, selector: "sd-datetime", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }, { kind: "directive", type: SdSuffixDefDirective, selector: "[sdSuffixDef]" }, { kind: "ngmodule", type: MatIconModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3256
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: ExpressionBuilderComponent, isStandalone: true, selector: "expression-builder", inputs: { label: "label", _attributes: ["attributes", "_attributes"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange", sdChange: "sdChange", edit: "edit" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], ngImport: i0, template: "<!-- <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ (model | expressionQuery) || '--' }}</a> -->\r\n<sd-input [label]=\"label\" style=\"width: 100%;\" [model]=\"(model | expressionQuery) || '--'\" disabled hideInlineError>\r\n <ng-template sdSuffixDef>\r\n <sd-button\r\n prefixIcon=\"edit\"\r\n color=\"primary\"\r\n (click)=\"onEdit()\"\r\n type=\"link\"></sd-button>\r\n </ng-template>\r\n</sd-input>\r\n@if (expression) {\r\n <sd-modal title=\"Thi\u1EBFt l\u1EADp bi\u1EC3u th\u1EE9c\">\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button\r\n prefixIcon=\"calculate\"\r\n class=\"mr-4\"\r\n title=\"Nh\u00F3m \u0111i\u1EC1u ki\u1EC7n\"\r\n color=\"primary\"\r\n (click)=\"addCombinator(expression.conditions)\"></sd-button>\r\n <sd-button\r\n prefixIcon=\"add\"\r\n title=\"\u0110i\u1EC1u ki\u1EC7n\"\r\n color=\"primary\"\r\n (click)=\"addCondition(expression.conditions)\"\r\n type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 1 -->\r\n @for (conditionLv1 of expression.conditions; track conditionLv1.key; let idxLv1 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv1 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv1 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"expression.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv1.type === 'condition') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 200px\"\r\n [(model)]=\"conditionLv1.field\"\r\n [items]=\"attributes\"\r\n (sdChange)=\"onChangeAttribute(conditionLv1)\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv1.field!];\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 100px\"\r\n [(model)]=\"conditionLv1.operator\"\r\n [items]=\"attributeOperators[fieldAttribute?.type || 'string']\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"!fieldAttribute?.type\"\r\n required\r\n hideInlineError></sd-select>\r\n @if (\r\n !!fieldAttribute?.type && conditionLv1.operator && conditionLv1.operator !== 'NULL' && conditionLv1.operator !== 'NOT_NULL'\r\n ) {\r\n @if (fieldAttribute.type === 'string') {\r\n <sd-input size=\"sm\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"conditionLv1.value\" required hideInlineError></sd-input>\r\n } @else if (fieldAttribute.type === 'number') {\r\n <sd-input-number size=\"sm\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"conditionLv1.value\" hideInlineError></sd-input-number>\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"numberAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n } @else if (fieldAttribute.type === 'datetime' && conditionLv1.dayInfo) {\r\n <sd-select\r\n size=\"sm\"\r\n placeholder=\"Th\u1EDDi \u0111i\u1EC3m\"\r\n [form]=\"form\"\r\n style=\"width: 150px\"\r\n [items]=\"types\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv1.dayInfo.type\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n @if (conditionLv1.dayInfo.type === 'RELATED') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 80px\"\r\n [(model)]=\"conditionLv1.dayInfo.relatedValue\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n [min]=\"1\"\r\n required\r\n hideInlineError>\r\n </sd-input-number>\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [items]=\"previouses\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv1.dayInfo.related\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n } @else if (conditionLv1.dayInfo.type === 'DATETIME') {\r\n <sd-datetime\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-datetime>\r\n } @else if (conditionLv1.dayInfo.type === 'ATTRIBUTE') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"dateAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n }\r\n } @else if (fieldAttribute.type === 'boolean') {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"[\r\n { value: true, display: fieldAttribute.displayOnTrue },\r\n { value: false, display: fieldAttribute.displayOnFalse }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-select>\r\n } @else if (fieldAttribute.type === 'values') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"fieldAttribute.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button class=\"ml-auto\" prefixIcon=\"delete\" tooltip=\"X\u00F3a\" (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n } @else if (conditionLv1.type === 'combinator') {\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button class=\"mr-4\" prefixIcon=\"delete\" tooltip=\"X\u00F3a\" (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n <sd-button\r\n prefixIcon=\"add\"\r\n title=\"\u0110i\u1EC1u ki\u1EC7n\"\r\n size=\"sm\"\r\n color=\"primary\"\r\n (click)=\"addCondition(conditionLv1.conditions)\"\r\n type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 2 -->\r\n @for (conditionLv2 of conditionLv1.conditions; track conditionLv2.key; let idxLv2 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv2 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv2 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"conditionLv1.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv2.type === 'condition') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 200px\"\r\n [(model)]=\"conditionLv2.field\"\r\n [items]=\"attributes\"\r\n (sdChange)=\"onChangeAttribute(conditionLv2)\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv2.field!];\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 100px\"\r\n [(model)]=\"conditionLv2.operator\"\r\n [items]=\"attributeOperators[fieldAttribute?.type || 'string']\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"!fieldAttribute?.type\"\r\n required\r\n hideInlineError></sd-select>\r\n @if (\r\n !!fieldAttribute?.type &&\r\n conditionLv2.operator &&\r\n conditionLv2.operator !== 'NULL' &&\r\n conditionLv2.operator !== 'NOT_NULL'\r\n ) {\r\n @if (fieldAttribute.type === 'string') {\r\n <sd-input\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n required\r\n hideInlineError></sd-input>\r\n } @else if (fieldAttribute.type === 'number') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n hideInlineError></sd-input-number>\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"numberAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n } @else if (fieldAttribute.type === 'datetime' && conditionLv2.dayInfo) {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n placeholder=\"Th\u1EDDi \u0111i\u1EC3m\"\r\n style=\"width: 150px\"\r\n [items]=\"types\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv2.dayInfo.type\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n @if (conditionLv2.dayInfo.type === 'RELATED') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 80px\"\r\n [(model)]=\"conditionLv2.dayInfo.relatedValue\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n [min]=\"1\"\r\n required\r\n hideInlineError>\r\n </sd-input-number>\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [items]=\"previouses\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv2.dayInfo.related\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n } @else if (conditionLv2.dayInfo.type === 'DATETIME') {\r\n <sd-datetime\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-datetime>\r\n } @else if (conditionLv2.dayInfo.type === 'ATTRIBUTE') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"dateAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n }\r\n } @else if (fieldAttribute.type === 'boolean') {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"[\r\n { value: true, display: fieldAttribute.displayOnTrue },\r\n { value: false, display: fieldAttribute.displayOnFalse }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-select>\r\n } @else if (fieldAttribute.type === 'values') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"fieldAttribute.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button\r\n class=\"ml-auto\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(conditionLv1.conditions, idxLv1)\"></sd-button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n </sd-modal>\r\n}\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"], dependencies: [{ kind: "component", type: SdInput$1, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdInputNumber, selector: "sd-input-number", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "type", "precision", "format", "min", "max", "validator", "inlineError", "hyperlink", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdSelect$1, selector: "sd-select", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "cacheChecksum", "limit", "hyperlink", "minWidthPanel", "hideInlineError", "required", "disabled", "viewed", "multiple", "validator", "inlineError", "appearance", "floatLabel", "items", "model"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }, { kind: "pipe", type: ExpressionQueryPipe, name: "expressionQuery" }, { kind: "component", type: SdDatetime, selector: "sd-datetime", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "showSeconds", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }, { kind: "directive", type: SdSuffixDefDirective, selector: "[sdSuffixDef]" }, { kind: "ngmodule", type: MatIconModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3257
3257
  }
3258
3258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionBuilderComponent, decorators: [{
3259
3259
  type: Component,