@sd-angular/core 1.3.150 → 1.3.152

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 (659) hide show
  1. package/api/sd-angular-core-api.metadata.json +1 -1
  2. package/api/src/lib/api.service.d.ts +1 -5
  3. package/assets/img/file-types/eps/001-file.eps +143 -143
  4. package/assets/img/file-types/eps/002-file-1.eps +136 -136
  5. package/assets/img/file-types/eps/003-file-2.eps +130 -130
  6. package/assets/img/file-types/eps/004-file-3.eps +127 -127
  7. package/assets/img/file-types/eps/005-file-4.eps +120 -120
  8. package/assets/img/file-types/eps/006-file-5.eps +133 -133
  9. package/assets/img/file-types/eps/007-file-6.eps +133 -133
  10. package/assets/img/file-types/eps/008-file-7.eps +144 -144
  11. package/assets/img/file-types/eps/009-file-8.eps +150 -150
  12. package/assets/img/file-types/eps/010-file-9.eps +155 -155
  13. package/assets/img/file-types/eps/011-file-10.eps +124 -124
  14. package/assets/img/file-types/eps/012-file-11.eps +147 -147
  15. package/assets/img/file-types/eps/013-file-12.eps +125 -125
  16. package/assets/img/file-types/eps/014-file-13.eps +129 -129
  17. package/assets/img/file-types/eps/015-file-14.eps +143 -143
  18. package/assets/img/file-types/eps/016-file-15.eps +130 -130
  19. package/assets/img/file-types/eps/017-file-16.eps +197 -197
  20. package/assets/img/file-types/eps/018-file-17.eps +146 -146
  21. package/assets/img/file-types/eps/019-file-18.eps +131 -131
  22. package/assets/img/file-types/eps/020-file-19.eps +137 -137
  23. package/assets/img/file-types/eps/021-file-20.eps +134 -134
  24. package/assets/img/file-types/eps/022-file-21.eps +130 -130
  25. package/assets/img/file-types/eps/023-file-22.eps +161 -161
  26. package/assets/img/file-types/eps/024-file-23.eps +144 -144
  27. package/assets/img/file-types/eps/025-file-24.eps +164 -164
  28. package/assets/img/file-types/eps/026-file-25.eps +135 -135
  29. package/assets/img/file-types/eps/027-file-26.eps +124 -124
  30. package/assets/img/file-types/eps/028-file-27.eps +120 -120
  31. package/assets/img/file-types/eps/029-file-28.eps +141 -141
  32. package/assets/img/file-types/eps/030-file-29.eps +130 -130
  33. package/assets/img/file-types/eps/031-file-30.eps +157 -157
  34. package/assets/img/file-types/eps/032-file-31.eps +139 -139
  35. package/assets/img/file-types/eps/033-file-32.eps +139 -139
  36. package/assets/img/file-types/eps/034-file-33.eps +189 -189
  37. package/assets/img/file-types/eps/035-file-34.eps +162 -162
  38. package/assets/img/file-types/eps/036-file-35.eps +142 -142
  39. package/assets/img/file-types/eps/037-file-36.eps +123 -123
  40. package/assets/img/file-types/eps/038-file-37.eps +127 -127
  41. package/assets/img/file-types/eps/039-file-38.eps +146 -146
  42. package/assets/img/file-types/eps/040-file-39.eps +126 -126
  43. package/assets/img/file-types/eps/041-file-40.eps +117 -117
  44. package/assets/img/file-types/eps/042-file-41.eps +156 -156
  45. package/assets/img/file-types/eps/043-file-42.eps +118 -118
  46. package/assets/img/file-types/eps/044-file-43.eps +172 -172
  47. package/assets/img/file-types/eps/045-file-44.eps +201 -201
  48. package/assets/img/file-types/eps/046-file-45.eps +94 -94
  49. package/assets/img/file-types/eps/047-file-46.eps +176 -176
  50. package/assets/img/file-types/eps/048-file-47.eps +238 -238
  51. package/assets/img/file-types/eps/049-file-48.eps +187 -187
  52. package/assets/img/file-types/eps/050-file-49.eps +137 -137
  53. package/bundles/sd-angular-core-api.umd.js +27 -59
  54. package/bundles/sd-angular-core-api.umd.js.map +1 -1
  55. package/bundles/sd-angular-core-api.umd.min.js +1 -1
  56. package/bundles/sd-angular-core-api.umd.min.js.map +1 -1
  57. package/bundles/sd-angular-core-common.umd.js +92 -0
  58. package/bundles/sd-angular-core-common.umd.js.map +1 -1
  59. package/bundles/sd-angular-core-common.umd.min.js +1 -1
  60. package/bundles/sd-angular-core-common.umd.min.js.map +1 -1
  61. package/bundles/sd-angular-core-input-dropdown.umd.js +9 -12
  62. package/bundles/sd-angular-core-input-dropdown.umd.js.map +1 -1
  63. package/bundles/sd-angular-core-input-dropdown.umd.min.js +2 -2
  64. package/bundles/sd-angular-core-input-dropdown.umd.min.js.map +1 -1
  65. package/bundles/sd-angular-core-table.umd.js +588 -990
  66. package/bundles/sd-angular-core-table.umd.js.map +1 -1
  67. package/bundles/sd-angular-core-table.umd.min.js +1 -1
  68. package/bundles/sd-angular-core-table.umd.min.js.map +1 -1
  69. package/bundles/sd-angular-core-utility.umd.js +10 -56
  70. package/bundles/sd-angular-core-utility.umd.js.map +1 -1
  71. package/bundles/sd-angular-core-utility.umd.min.js +1 -1
  72. package/bundles/sd-angular-core-utility.umd.min.js.map +1 -1
  73. package/common/sd-angular-core-common.d.ts +1 -0
  74. package/common/sd-angular-core-common.metadata.json +1 -1
  75. package/common/src/lib/directives/sd-for.directive.d.ts +16 -0
  76. package/common/src/lib/typings/array.extension.d.ts +1 -1
  77. package/esm2015/api/index.js +1 -1
  78. package/esm2015/api/sd-angular-core-api.js +1 -1
  79. package/esm2015/api/src/lib/api.model.js +1 -1
  80. package/esm2015/api/src/lib/api.module.js +1 -1
  81. package/esm2015/api/src/lib/api.service.js +3 -36
  82. package/esm2015/api/src/lib/http.interceptor.js +1 -1
  83. package/esm2015/api/src/lib/http.service.js +1 -1
  84. package/esm2015/api/src/lib/token.service.js +1 -1
  85. package/esm2015/api/src/public-api.js +1 -1
  86. package/esm2015/autocomplete/index.js +1 -1
  87. package/esm2015/autocomplete/sd-angular-core-autocomplete.js +1 -1
  88. package/esm2015/autocomplete/src/lib/autocomplete-display-def.directive.js +1 -1
  89. package/esm2015/autocomplete/src/lib/autocomplete.component.js +1 -1
  90. package/esm2015/autocomplete/src/lib/autocomplete.module.js +1 -1
  91. package/esm2015/autocomplete/src/public-api.js +1 -1
  92. package/esm2015/badge/index.js +1 -1
  93. package/esm2015/badge/sd-angular-core-badge.js +1 -1
  94. package/esm2015/badge/src/lib/badge.component.js +1 -1
  95. package/esm2015/badge/src/lib/badge.module.js +1 -1
  96. package/esm2015/badge/src/public-api.js +1 -1
  97. package/esm2015/button/index.js +1 -1
  98. package/esm2015/button/sd-angular-core-button.js +1 -1
  99. package/esm2015/button/src/lib/button.component.js +1 -1
  100. package/esm2015/button/src/lib/button.module.js +1 -1
  101. package/esm2015/button/src/public-api.js +1 -1
  102. package/esm2015/cache/index.js +1 -1
  103. package/esm2015/cache/sd-angular-core-cache.js +1 -1
  104. package/esm2015/cache/src/lib/cache.model.js +1 -1
  105. package/esm2015/cache/src/lib/cache.service.js +1 -1
  106. package/esm2015/cache/src/public-api.js +1 -1
  107. package/esm2015/chart/index.js +1 -1
  108. package/esm2015/chart/sd-angular-core-chart.js +1 -1
  109. package/esm2015/chart/src/lib/chart.component.js +1 -1
  110. package/esm2015/chart/src/lib/chart.model.js +1 -1
  111. package/esm2015/chart/src/lib/chart.module.js +1 -1
  112. package/esm2015/chart/src/public-api.js +1 -1
  113. package/esm2015/checkbox/index.js +1 -1
  114. package/esm2015/checkbox/sd-angular-core-checkbox.js +1 -1
  115. package/esm2015/checkbox/src/lib/checkbox.component.js +1 -1
  116. package/esm2015/checkbox/src/lib/checkbox.module.js +1 -1
  117. package/esm2015/checkbox/src/public-api.js +1 -1
  118. package/esm2015/chip/index.js +1 -1
  119. package/esm2015/chip/sd-angular-core-chip.js +1 -1
  120. package/esm2015/chip/src/lib/chip.component.js +1 -1
  121. package/esm2015/chip/src/lib/chip.model.js +1 -1
  122. package/esm2015/chip/src/lib/chip.module.js +1 -1
  123. package/esm2015/chip/src/lib/directives/sd-chip-display-def.directive.js +1 -1
  124. package/esm2015/chip/src/lib/pipes/removable-chip.pipe.js +1 -1
  125. package/esm2015/chip/src/public-api.js +1 -1
  126. package/esm2015/comment/index.js +1 -1
  127. package/esm2015/comment/sd-angular-core-comment.js +1 -1
  128. package/esm2015/comment/src/lib/comment.component.js +1 -1
  129. package/esm2015/comment/src/lib/comment.model.js +1 -1
  130. package/esm2015/comment/src/lib/comment.module.js +1 -1
  131. package/esm2015/comment/src/public-api.js +1 -1
  132. package/esm2015/common/index.js +1 -1
  133. package/esm2015/common/sd-angular-core-common.js +2 -1
  134. package/esm2015/common/src/lib/common.module.js +4 -1
  135. package/esm2015/common/src/lib/configurations/firebase.configuration.js +1 -1
  136. package/esm2015/common/src/lib/configurations/form.configuration.js +1 -1
  137. package/esm2015/common/src/lib/directives/sd-for.directive.js +82 -0
  138. package/esm2015/common/src/lib/directives/sd-lable.directive.js +1 -1
  139. package/esm2015/common/src/lib/directives/sd-let.directive.js +1 -1
  140. package/esm2015/common/src/lib/directives/sd-scroll.directive.js +1 -1
  141. package/esm2015/common/src/lib/directives/sd-suffix.directive.js +1 -1
  142. package/esm2015/common/src/lib/directives/view-def.directive.js +1 -1
  143. package/esm2015/common/src/lib/models/sd-form-control.js +1 -1
  144. package/esm2015/common/src/lib/others/detectIncognito.js +1 -1
  145. package/esm2015/common/src/lib/services/browser.service.js +1 -1
  146. package/esm2015/common/src/lib/typings/array.extension.js +1 -1
  147. package/esm2015/common/src/lib/typings/date.extension.js +1 -1
  148. package/esm2015/common/src/lib/typings/index.js +1 -1
  149. package/esm2015/common/src/lib/typings/number.extension.js +1 -1
  150. package/esm2015/common/src/lib/typings/string.extension.js +1 -1
  151. package/esm2015/common/src/lib/typings/utility.extension.js +1 -1
  152. package/esm2015/common/src/public-api.js +1 -1
  153. package/esm2015/confirm/index.js +1 -1
  154. package/esm2015/confirm/sd-angular-core-confirm.js +1 -1
  155. package/esm2015/confirm/src/lib/components/dialog-confirm/dialog-confirm.component.js +1 -1
  156. package/esm2015/confirm/src/lib/confirm.module.js +1 -1
  157. package/esm2015/confirm/src/lib/confirm.service.js +1 -1
  158. package/esm2015/confirm/src/public-api.js +1 -1
  159. package/esm2015/date-month/index.js +1 -1
  160. package/esm2015/date-month/sd-angular-core-date-month.js +1 -1
  161. package/esm2015/date-month/src/lib/date-month.component.js +1 -1
  162. package/esm2015/date-month/src/lib/date-month.module.js +1 -1
  163. package/esm2015/date-month/src/public-api.js +1 -1
  164. package/esm2015/date-range/index.js +1 -1
  165. package/esm2015/date-range/sd-angular-core-date-range.js +1 -1
  166. package/esm2015/date-range/src/lib/date-range.component.js +1 -1
  167. package/esm2015/date-range/src/lib/date-range.module.js +1 -1
  168. package/esm2015/date-range/src/public-api.js +1 -1
  169. package/esm2015/date-time/index.js +1 -1
  170. package/esm2015/date-time/sd-angular-core-date-time.js +1 -1
  171. package/esm2015/date-time/src/lib/date-time.component.js +1 -1
  172. package/esm2015/date-time/src/lib/date-time.module.js +1 -1
  173. package/esm2015/date-time/src/public-api.js +1 -1
  174. package/esm2015/db/index.js +1 -1
  175. package/esm2015/db/sd-angular-core-db.js +1 -1
  176. package/esm2015/db/src/lib/db.model.js +1 -1
  177. package/esm2015/db/src/lib/db.service.js +1 -1
  178. package/esm2015/db/src/public-api.js +1 -1
  179. package/esm2015/dynamic-report/index.js +1 -1
  180. package/esm2015/dynamic-report/sd-angular-core-dynamic-report.js +1 -1
  181. package/esm2015/dynamic-report/src/lib/dynamic-report.component.js +1 -1
  182. package/esm2015/dynamic-report/src/lib/dynamic-report.module.js +1 -1
  183. package/esm2015/dynamic-report/src/public-api.js +1 -1
  184. package/esm2015/editor/index.js +1 -1
  185. package/esm2015/editor/sd-angular-core-editor.js +1 -1
  186. package/esm2015/editor/src/lib/constant.js +1 -1
  187. package/esm2015/editor/src/lib/editor.component.js +1 -1
  188. package/esm2015/editor/src/lib/editor.model.js +1 -1
  189. package/esm2015/editor/src/lib/editor.module.js +1 -1
  190. package/esm2015/editor/src/public-api.js +1 -1
  191. package/esm2015/export/index.js +1 -1
  192. package/esm2015/export/sd-angular-core-export.js +1 -1
  193. package/esm2015/export/src/lib/excel.model.js +1 -1
  194. package/esm2015/export/src/lib/export.model.js +1 -1
  195. package/esm2015/export/src/lib/export.service.js +1 -1
  196. package/esm2015/export/src/public-api.js +1 -1
  197. package/esm2015/filter/index.js +1 -1
  198. package/esm2015/filter/sd-angular-core-filter.js +1 -1
  199. package/esm2015/filter/src/lib/directives/sd-filter-def.directive.js +1 -1
  200. package/esm2015/filter/src/lib/filter.component.js +1 -1
  201. package/esm2015/filter/src/lib/filter.model.js +1 -1
  202. package/esm2015/filter/src/lib/filter.module.js +1 -1
  203. package/esm2015/filter/src/lib/filter.service.js +1 -1
  204. package/esm2015/filter/src/lib/pipes/values-local.pipe.js +1 -1
  205. package/esm2015/filter/src/lib/pipes/values-server.pipe.js +1 -1
  206. package/esm2015/filter/src/public-api.js +1 -1
  207. package/esm2015/form/index.js +1 -1
  208. package/esm2015/form/sd-angular-core-form.js +1 -1
  209. package/esm2015/form/src/lib/form.module.js +1 -1
  210. package/esm2015/form/src/public-api.js +1 -1
  211. package/esm2015/grid/index.js +1 -1
  212. package/esm2015/grid/sd-angular-core-grid.js +1 -1
  213. package/esm2015/grid/src/lib/components/grid-config/grid-config.component.js +1 -1
  214. package/esm2015/grid/src/lib/components/grid-config/grid-config.model.js +1 -1
  215. package/esm2015/grid/src/lib/components/grid-desktop-column-children-view/grid-desktop-column-children-view.component.js +1 -1
  216. package/esm2015/grid/src/lib/components/grid-desktop-column-edit/grid-desktop-column-edit.component.js +1 -1
  217. package/esm2015/grid/src/lib/components/grid-desktop-column-view/grid-desktop-column-view.component.js +1 -1
  218. package/esm2015/grid/src/lib/components/grid-desktop-inline-filter/grid-desktop-inline-filter.component.js +1 -1
  219. package/esm2015/grid/src/lib/components/grid-import-excel/grid-import-excel.component.js +1 -1
  220. package/esm2015/grid/src/lib/components/grid-mobile-item-view/grid-mobile-item-view.component.js +1 -1
  221. package/esm2015/grid/src/lib/components/grid-popup-editor/grid-popup-editor.component.js +1 -1
  222. package/esm2015/grid/src/lib/components/grid-popup-export-excel/grid-popup-export-excel.component.js +1 -1
  223. package/esm2015/grid/src/lib/components/grid-popup-export-excel/grid-popup-export-excel.model.js +1 -1
  224. package/esm2015/grid/src/lib/components/grid-popup-filter/grid-popup-filter.component.js +1 -1
  225. package/esm2015/grid/src/lib/components/grid-popup-filter/grid-popup-filter.model.js +1 -1
  226. package/esm2015/grid/src/lib/components/grid-popup-quick-filter-detail/grid-popup-quick-filter-detail.component.js +1 -1
  227. package/esm2015/grid/src/lib/components/grid-sub-information/grid-sub-information.component.js +1 -1
  228. package/esm2015/grid/src/lib/directives/cell-def.directive.js +1 -1
  229. package/esm2015/grid/src/lib/directives/cell-editor-def.directive.js +1 -1
  230. package/esm2015/grid/src/lib/directives/cell-footer-def.directive.js +1 -1
  231. package/esm2015/grid/src/lib/directives/sub-information-header-def.directive.js +1 -1
  232. package/esm2015/grid/src/lib/grid.component.js +1 -1
  233. package/esm2015/grid/src/lib/grid.model.js +1 -1
  234. package/esm2015/grid/src/lib/grid.module.js +1 -1
  235. package/esm2015/grid/src/lib/models/filter-info.model.js +1 -1
  236. package/esm2015/grid/src/lib/models/grid-configuration.model.js +1 -1
  237. package/esm2015/grid/src/lib/models/handler-dotnet.js +1 -1
  238. package/esm2015/grid/src/lib/models/handler-local.js +1 -1
  239. package/esm2015/grid/src/lib/models/handler.js +1 -1
  240. package/esm2015/grid/src/lib/pipes/cell-desktop-class-name.pipe.js +1 -1
  241. package/esm2015/grid/src/lib/pipes/cell-mobile-class-name.pipe.js +1 -1
  242. package/esm2015/grid/src/lib/pipes/column-command-filter.pipe.js +1 -1
  243. package/esm2015/grid/src/lib/pipes/column-html-template.pipe.js +1 -1
  244. package/esm2015/grid/src/lib/pipes/column-title.pipe.js +1 -1
  245. package/esm2015/grid/src/lib/pipes/column-values.pipe.js +1 -1
  246. package/esm2015/grid/src/lib/pipes/command-disabled.pipe.js +1 -1
  247. package/esm2015/grid/src/lib/pipes/command-filter.pipe.js +1 -1
  248. package/esm2015/grid/src/lib/pipes/command-hidden.pipe.js +1 -1
  249. package/esm2015/grid/src/lib/pipes/command-icon.pipe.js +1 -1
  250. package/esm2015/grid/src/lib/pipes/command-title.pipe.js +1 -1
  251. package/esm2015/grid/src/lib/pipes/dynamic-items.pipe.js +1 -1
  252. package/esm2015/grid/src/lib/pipes/editor-dynamic-item.pipe.js +1 -1
  253. package/esm2015/grid/src/lib/pipes/editor-handler.pipe.js +1 -1
  254. package/esm2015/grid/src/lib/pipes/editor-popup-visible.pipe.js +1 -1
  255. package/esm2015/grid/src/lib/pipes/editor-sub-information-handler.pipe.js +1 -1
  256. package/esm2015/grid/src/lib/pipes/editor-validate.pipe.js +1 -1
  257. package/esm2015/grid/src/lib/pipes/filter-mobile.pipe.js +1 -1
  258. package/esm2015/grid/src/lib/pipes/mobile-command-filter.js +1 -1
  259. package/esm2015/grid/src/lib/pipes/mobile-view-html-template.pipe.js +1 -1
  260. package/esm2015/grid/src/lib/pipes/value-transform.pipe.js +1 -1
  261. package/esm2015/grid/src/public-api.js +1 -1
  262. package/esm2015/grid-material/index.js +1 -1
  263. package/esm2015/grid-material/sd-angular-core-grid-material.js +1 -1
  264. package/esm2015/grid-material/src/lib/components/column-inline-filter/column-inline-filter.component.js +1 -1
  265. package/esm2015/grid-material/src/lib/components/desktop-cell/desktop-cell.component.js +1 -1
  266. package/esm2015/grid-material/src/lib/components/desktop-cell-children-view/desktop-cell-children-view.component.js +1 -1
  267. package/esm2015/grid-material/src/lib/components/desktop-cell-editor/desktop-cell-editor.component.js +1 -1
  268. package/esm2015/grid-material/src/lib/components/desktop-cell-view/desktop-cell-view.component.js +1 -1
  269. package/esm2015/grid-material/src/lib/components/desktop-command/desktop-command.component.js +1 -1
  270. package/esm2015/grid-material/src/lib/components/desktop-editor-validation/desktop-editor-validation.component.js +1 -1
  271. package/esm2015/grid-material/src/lib/components/dynamic-column/dynamic-column.component.js +1 -1
  272. package/esm2015/grid-material/src/lib/components/grid-filter/grid-filter.component.js +1 -1
  273. package/esm2015/grid-material/src/lib/components/popup-export/popup-export.component.js +1 -1
  274. package/esm2015/grid-material/src/lib/components/popup-filter/popup-filter.component.js +1 -1
  275. package/esm2015/grid-material/src/lib/components/popup-grid-configuration/popup-grid-configuration.component.js +1 -1
  276. package/esm2015/grid-material/src/lib/components/quick-action/quick-action.component.js +1 -1
  277. package/esm2015/grid-material/src/lib/directives/sd-material-cell-def.directive.js +1 -1
  278. package/esm2015/grid-material/src/lib/directives/sd-material-empty-data-def.directive.js +1 -1
  279. package/esm2015/grid-material/src/lib/directives/sd-material-filter-def.directive.js +1 -1
  280. package/esm2015/grid-material/src/lib/directives/sd-material-footer-def.directive.js +1 -1
  281. package/esm2015/grid-material/src/lib/directives/sd-material-sub-information-def.directive.js +1 -1
  282. package/esm2015/grid-material/src/lib/functions/calculate-sd-id.js +1 -1
  283. package/esm2015/grid-material/src/lib/grid-material.component.js +1 -1
  284. package/esm2015/grid-material/src/lib/grid-material.module.js +1 -1
  285. package/esm2015/grid-material/src/lib/models/grid-action.model.js +1 -1
  286. package/esm2015/grid-material/src/lib/models/grid-cell.model.js +1 -1
  287. package/esm2015/grid-material/src/lib/models/grid-column.model.js +1 -1
  288. package/esm2015/grid-material/src/lib/models/grid-command.model.js +1 -1
  289. package/esm2015/grid-material/src/lib/models/grid-config.model.js +1 -1
  290. package/esm2015/grid-material/src/lib/models/grid-configuration.model.js +1 -1
  291. package/esm2015/grid-material/src/lib/models/grid-editor.model.js +1 -1
  292. package/esm2015/grid-material/src/lib/models/grid-export.model.js +1 -1
  293. package/esm2015/grid-material/src/lib/models/grid-group.model.js +1 -1
  294. package/esm2015/grid-material/src/lib/models/grid-option.model.js +1 -1
  295. package/esm2015/grid-material/src/lib/models/grid-reload.model.js +1 -1
  296. package/esm2015/grid-material/src/lib/models/grid-selection.model.js +1 -1
  297. package/esm2015/grid-material/src/lib/models/grid-style.model.js +1 -1
  298. package/esm2015/grid-material/src/lib/models/grid-sub-information.model.js +1 -1
  299. package/esm2015/grid-material/src/lib/models/grid.model.js +1 -1
  300. package/esm2015/grid-material/src/lib/pipes/cell-view.pipe.js +1 -1
  301. package/esm2015/grid-material/src/lib/pipes/column-badge.pipe.js +1 -1
  302. package/esm2015/grid-material/src/lib/pipes/column-children-filter.pipe.js +1 -1
  303. package/esm2015/grid-material/src/lib/pipes/column-html-template.pipe.js +1 -1
  304. package/esm2015/grid-material/src/lib/pipes/column-title.pipe.js +1 -1
  305. package/esm2015/grid-material/src/lib/pipes/column-tooltip.pipe.js +1 -1
  306. package/esm2015/grid-material/src/lib/pipes/column-transform.pipe.js +1 -1
  307. package/esm2015/grid-material/src/lib/pipes/column-values.pipe.js +1 -1
  308. package/esm2015/grid-material/src/lib/pipes/command-disable.pipe.js +1 -1
  309. package/esm2015/grid-material/src/lib/pipes/command-filter.pipe.js +1 -1
  310. package/esm2015/grid-material/src/lib/pipes/command-icon.pipe.js +1 -1
  311. package/esm2015/grid-material/src/lib/pipes/command-title.pipe.js +1 -1
  312. package/esm2015/grid-material/src/lib/pipes/editor-handler-column.pipe.js +1 -1
  313. package/esm2015/grid-material/src/lib/pipes/editor-handler-row.pipe.js +1 -1
  314. package/esm2015/grid-material/src/lib/pipes/editor-validate.pipe.js +1 -1
  315. package/esm2015/grid-material/src/lib/pipes/filter-column.pipe.js +1 -1
  316. package/esm2015/grid-material/src/lib/pipes/filter-external.pipe.js +1 -1
  317. package/esm2015/grid-material/src/lib/pipes/grid-configuration-result.pipe.js +1 -1
  318. package/esm2015/grid-material/src/lib/pipes/sd-group.pipe.js +1 -1
  319. package/esm2015/grid-material/src/lib/pipes/selection-action-filter.pipe.js +1 -1
  320. package/esm2015/grid-material/src/lib/pipes/selection-disable.pipe.js +1 -1
  321. package/esm2015/grid-material/src/lib/pipes/selection-visible-select-all.pipe.js +1 -1
  322. package/esm2015/grid-material/src/lib/pipes/selection-visible.pipe.js +1 -1
  323. package/esm2015/grid-material/src/lib/pipes/style-row-css.pipe.js +1 -1
  324. package/esm2015/grid-material/src/lib/services/generated-column/generated-column.model.js +1 -1
  325. package/esm2015/grid-material/src/lib/services/generated-column/generated-column.service.js +1 -1
  326. package/esm2015/grid-material/src/lib/services/grid-configuration.service.js +1 -1
  327. package/esm2015/grid-material/src/lib/services/grid-filter/grid-filter.model.js +1 -1
  328. package/esm2015/grid-material/src/lib/services/grid-filter/grid-filter.service.js +1 -1
  329. package/esm2015/grid-material/src/public-api.js +1 -1
  330. package/esm2015/group/index.js +1 -1
  331. package/esm2015/group/sd-angular-core-group.js +1 -1
  332. package/esm2015/group/src/lib/group.component.js +1 -1
  333. package/esm2015/group/src/lib/group.module.js +1 -1
  334. package/esm2015/group/src/public-api.js +1 -1
  335. package/esm2015/header-title/index.js +1 -1
  336. package/esm2015/header-title/sd-angular-core-header-title.js +1 -1
  337. package/esm2015/header-title/src/lib/header-title.component.js +1 -1
  338. package/esm2015/header-title/src/lib/header-title.module.js +1 -1
  339. package/esm2015/header-title/src/public-api.js +1 -1
  340. package/esm2015/image-preview/index.js +1 -1
  341. package/esm2015/image-preview/sd-angular-core-image-preview.js +1 -1
  342. package/esm2015/image-preview/src/lib/directives/image-preview.directive.js +1 -1
  343. package/esm2015/image-preview/src/lib/image-preview/image-preview-sdmodal.component.js +1 -1
  344. package/esm2015/image-preview/src/lib/image-preview/image-preview.component.js +1 -1
  345. package/esm2015/image-preview/src/lib/image-preview/image-preview.module.js +1 -1
  346. package/esm2015/image-preview/src/lib/models/image-preview.model.js +1 -1
  347. package/esm2015/image-preview/src/public-api.js +1 -1
  348. package/esm2015/input/index.js +1 -1
  349. package/esm2015/input/sd-angular-core-input.js +1 -1
  350. package/esm2015/input/src/lib/directives/input-suffix.directive.js +1 -1
  351. package/esm2015/input/src/lib/directives/touch.directive.js +1 -1
  352. package/esm2015/input/src/lib/input-tooltip.pipe.js +1 -1
  353. package/esm2015/input/src/lib/input.component.js +1 -1
  354. package/esm2015/input/src/lib/input.module.js +1 -1
  355. package/esm2015/input/src/public-api.js +1 -1
  356. package/esm2015/input-currency/index.js +1 -1
  357. package/esm2015/input-currency/sd-angular-core-input-currency.js +1 -1
  358. package/esm2015/input-currency/src/lib/input-currency-tooltip.pipe.js +1 -1
  359. package/esm2015/input-currency/src/lib/input-currency.component.js +1 -1
  360. package/esm2015/input-currency/src/lib/input-currency.module.js +1 -1
  361. package/esm2015/input-currency/src/public-api.js +1 -1
  362. package/esm2015/input-dropdown/index.js +1 -1
  363. package/esm2015/input-dropdown/sd-angular-core-input-dropdown.js +1 -1
  364. package/esm2015/input-dropdown/src/lib/input-tooltip.pipe.js +1 -1
  365. package/esm2015/input-dropdown/src/lib/input.component.js +3 -3
  366. package/esm2015/input-dropdown/src/lib/input.module.js +1 -1
  367. package/esm2015/input-dropdown/src/public-api.js +1 -1
  368. package/esm2015/input-number/index.js +1 -1
  369. package/esm2015/input-number/sd-angular-core-input-number.js +1 -1
  370. package/esm2015/input-number/src/lib/input-number.component.js +1 -1
  371. package/esm2015/input-number/src/lib/input-number.module.js +1 -1
  372. package/esm2015/input-number/src/public-api.js +1 -1
  373. package/esm2015/input-upload-file/index.js +1 -1
  374. package/esm2015/input-upload-file/sd-angular-core-input-upload-file.js +1 -1
  375. package/esm2015/input-upload-file/src/lib/input-upload-file.component.js +1 -1
  376. package/esm2015/input-upload-file/src/lib/input-upload-file.module.js +1 -1
  377. package/esm2015/input-upload-file/src/public-api.js +1 -1
  378. package/esm2015/json-editor/index.js +1 -1
  379. package/esm2015/json-editor/sd-angular-core-json-editor.js +1 -1
  380. package/esm2015/json-editor/src/lib/json-editor.component.js +1 -1
  381. package/esm2015/json-editor/src/lib/json-editor.module.js +1 -1
  382. package/esm2015/json-editor/src/public-api.js +1 -1
  383. package/esm2015/konva/index.js +1 -1
  384. package/esm2015/konva/sd-angular-core-konva.js +1 -1
  385. package/esm2015/konva/src/lib/konva.module.js +1 -1
  386. package/esm2015/konva/src/lib/merge-images/merge-images.component.js +1 -1
  387. package/esm2015/konva/src/public-api.js +1 -1
  388. package/esm2015/label/index.js +1 -1
  389. package/esm2015/label/sd-angular-core-label.js +1 -1
  390. package/esm2015/label/src/lib/label.component.js +1 -1
  391. package/esm2015/label/src/lib/label.module.js +1 -1
  392. package/esm2015/label/src/public-api.js +1 -1
  393. package/esm2015/lib/core.module.js +1 -1
  394. package/esm2015/lib/material.module.js +1 -1
  395. package/esm2015/loading/index.js +1 -1
  396. package/esm2015/loading/sd-angular-core-loading.js +1 -1
  397. package/esm2015/loading/src/lib/loading.service.js +1 -1
  398. package/esm2015/loading/src/public-api.js +1 -1
  399. package/esm2015/modal/index.js +1 -1
  400. package/esm2015/modal/sd-angular-core-modal.js +1 -1
  401. package/esm2015/modal/src/lib/bottom-sheet/bottom-sheet-body/bottom-sheet-body.component.js +1 -1
  402. package/esm2015/modal/src/lib/bottom-sheet/bottom-sheet-footer/bottom-sheet-footer.component.js +1 -1
  403. package/esm2015/modal/src/lib/bottom-sheet/bottom-sheet-header/bottom-sheet-header.component.js +1 -1
  404. package/esm2015/modal/src/lib/bottom-sheet/bottom-sheet.component.js +1 -1
  405. package/esm2015/modal/src/lib/modal/modal-body/modal-body.component.js +1 -1
  406. package/esm2015/modal/src/lib/modal/modal-footer/modal-footer.component.js +1 -1
  407. package/esm2015/modal/src/lib/modal/modal-header/modal-header.component.js +1 -1
  408. package/esm2015/modal/src/lib/modal/modal.component.js +1 -1
  409. package/esm2015/modal/src/lib/modal.module.js +1 -1
  410. package/esm2015/modal/src/public-api.js +1 -1
  411. package/esm2015/modal-resizable/index.js +1 -1
  412. package/esm2015/modal-resizable/sd-angular-core-modal-resizable.js +1 -1
  413. package/esm2015/modal-resizable/src/lib/modal-resizable/modal-resizable.component.js +1 -1
  414. package/esm2015/modal-resizable/src/lib/modal-resizable.module.js +1 -1
  415. package/esm2015/modal-resizable/src/public-api.js +1 -1
  416. package/esm2015/notify/index.js +1 -1
  417. package/esm2015/notify/sd-angular-core-notify.js +1 -1
  418. package/esm2015/notify/src/lib/components/dialog-confirm/dialog-confirm.component.js +1 -1
  419. package/esm2015/notify/src/lib/configurations/notify.configuration.js +1 -1
  420. package/esm2015/notify/src/lib/notify.module.js +1 -1
  421. package/esm2015/notify/src/lib/notify.service.js +1 -1
  422. package/esm2015/notify/src/public-api.js +1 -1
  423. package/esm2015/pdf/index.js +1 -1
  424. package/esm2015/pdf/sd-angular-core-pdf.js +1 -1
  425. package/esm2015/pdf/src/lib/pdf.module.js +1 -1
  426. package/esm2015/pdf/src/lib/pdf.service.js +1 -1
  427. package/esm2015/pdf/src/public-api.js +1 -1
  428. package/esm2015/popover/index.js +1 -1
  429. package/esm2015/popover/sd-angular-core-popover.js +1 -1
  430. package/esm2015/popover/src/lib/directives/popover-content.directive.js +1 -1
  431. package/esm2015/popover/src/lib/directives/popover-trigger.directive.js +1 -1
  432. package/esm2015/popover/src/lib/popover/popover.component.js +1 -1
  433. package/esm2015/popover/src/lib/popover.model.js +1 -1
  434. package/esm2015/popover/src/lib/popover.module.js +1 -1
  435. package/esm2015/popover/src/public-api.js +1 -1
  436. package/esm2015/print/index.js +1 -1
  437. package/esm2015/print/sd-angular-core-print.js +1 -1
  438. package/esm2015/print/src/lib/fonts/times/bold-italic.js +1 -1
  439. package/esm2015/print/src/lib/fonts/times/bold.js +1 -1
  440. package/esm2015/print/src/lib/fonts/times/italic.js +1 -1
  441. package/esm2015/print/src/lib/fonts/times/normal.js +1 -1
  442. package/esm2015/print/src/lib/print.component.js +1 -1
  443. package/esm2015/print/src/lib/print.module.js +1 -1
  444. package/esm2015/print/src/public-api.js +1 -1
  445. package/esm2015/public-api.js +1 -1
  446. package/esm2015/quick-action/index.js +1 -1
  447. package/esm2015/quick-action/sd-angular-core-quick-action.js +1 -1
  448. package/esm2015/quick-action/src/lib/quick-action.component.js +1 -1
  449. package/esm2015/quick-action/src/lib/quick-action.module.js +1 -1
  450. package/esm2015/quick-action/src/public-api.js +1 -1
  451. package/esm2015/radio/index.js +1 -1
  452. package/esm2015/radio/sd-angular-core-radio.js +1 -1
  453. package/esm2015/radio/src/lib/radio.component.js +1 -1
  454. package/esm2015/radio/src/lib/radio.module.js +1 -1
  455. package/esm2015/radio/src/public-api.js +1 -1
  456. package/esm2015/sd-angular-core.js +1 -1
  457. package/esm2015/select/index.js +1 -1
  458. package/esm2015/select/sd-angular-core-select.js +1 -1
  459. package/esm2015/select/src/lib/select-display-def.directive.js +1 -1
  460. package/esm2015/select/src/lib/select.component.js +1 -1
  461. package/esm2015/select/src/lib/select.module.js +1 -1
  462. package/esm2015/select/src/public-api.js +1 -1
  463. package/esm2015/select-badge/index.js +1 -1
  464. package/esm2015/select-badge/sd-angular-core-select-badge.js +1 -1
  465. package/esm2015/select-badge/src/lib/select-badge-display-def.directive.js +1 -1
  466. package/esm2015/select-badge/src/lib/select-badge.component.js +1 -1
  467. package/esm2015/select-badge/src/lib/select-badge.module.js +1 -1
  468. package/esm2015/select-badge/src/public-api.js +1 -1
  469. package/esm2015/select-editor/index.js +1 -1
  470. package/esm2015/select-editor/sd-angular-core-select-editor.js +1 -1
  471. package/esm2015/select-editor/src/lib/select-editor.component.js +1 -1
  472. package/esm2015/select-editor/src/lib/select-editor.module.js +1 -1
  473. package/esm2015/select-editor/src/public-api.js +1 -1
  474. package/esm2015/service/index.js +1 -1
  475. package/esm2015/service/sd-angular-core-service.js +1 -1
  476. package/esm2015/service/src/lib/service.module.js +1 -1
  477. package/esm2015/service/src/public-api.js +1 -1
  478. package/esm2015/setting/index.js +1 -1
  479. package/esm2015/setting/sd-angular-core-setting.js +1 -1
  480. package/esm2015/setting/src/lib/setting.model.js +1 -1
  481. package/esm2015/setting/src/lib/setting.service.js +1 -1
  482. package/esm2015/setting/src/public-api.js +1 -1
  483. package/esm2015/side-drawer/index.js +1 -1
  484. package/esm2015/side-drawer/sd-angular-core-side-drawer.js +1 -1
  485. package/esm2015/side-drawer/src/lib/side-drawer/side-drawer.component.js +1 -1
  486. package/esm2015/side-drawer/src/lib/side-drawer.module.js +1 -1
  487. package/esm2015/side-drawer/src/public-api.js +1 -1
  488. package/esm2015/switch/index.js +1 -1
  489. package/esm2015/switch/sd-angular-core-switch.js +1 -1
  490. package/esm2015/switch/src/lib/switch.component.js +1 -1
  491. package/esm2015/switch/src/lib/switch.module.js +1 -1
  492. package/esm2015/switch/src/public-api.js +1 -1
  493. package/esm2015/tab-router/index.js +1 -1
  494. package/esm2015/tab-router/sd-angular-core-tab-router.js +1 -1
  495. package/esm2015/tab-router/src/lib/actions/tab-router.action.js +1 -1
  496. package/esm2015/tab-router/src/lib/components/tab-router-item/tab-router-item.component.js +1 -1
  497. package/esm2015/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.js +1 -1
  498. package/esm2015/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.js +1 -1
  499. package/esm2015/tab-router/src/lib/decorators/tab.decorator.js +1 -1
  500. package/esm2015/tab-router/src/lib/directives/router-link-mouse-down.directive.js +1 -1
  501. package/esm2015/tab-router/src/lib/events/tab-router.event.js +1 -1
  502. package/esm2015/tab-router/src/lib/models/tab-router.model.js +1 -1
  503. package/esm2015/tab-router/src/lib/pipes/tab-info.pipe.js +1 -1
  504. package/esm2015/tab-router/src/lib/services/tab-decorator.service.js +1 -1
  505. package/esm2015/tab-router/src/lib/services/tab-router.service.js +1 -1
  506. package/esm2015/tab-router/src/lib/tab-router.module.js +1 -1
  507. package/esm2015/tab-router/src/public-api.js +1 -1
  508. package/esm2015/table/index.js +1 -1
  509. package/esm2015/table/sd-angular-core-table.js +24 -31
  510. package/esm2015/table/src/lib/components/column-inline-filter/column-inline-filter.component.js +17 -4
  511. package/esm2015/table/src/lib/components/desktop-cell/desktop-cell.component.js +1 -1
  512. package/esm2015/table/src/lib/components/desktop-cell-view/desktop-cell-view.component.js +2 -2
  513. package/esm2015/table/src/lib/components/desktop-command/desktop-command.component.js +1 -1
  514. package/esm2015/table/src/lib/components/popup-configuration/popup-configuration.component.js +69 -0
  515. package/esm2015/table/src/lib/components/popup-filter/popup-filter.component.js +2 -2
  516. package/esm2015/table/src/lib/components/quick-action/quick-action.component.js +6 -6
  517. package/esm2015/table/src/lib/components/table-filter/table-filter.component.js +99 -0
  518. package/esm2015/table/src/lib/directives/sd-material-cell-def.directive.js +1 -1
  519. package/esm2015/table/src/lib/directives/sd-material-empty-data-def.directive.js +1 -1
  520. package/esm2015/table/src/lib/directives/sd-material-filter-def.directive.js +1 -1
  521. package/esm2015/table/src/lib/directives/sd-material-footer-def.directive.js +1 -1
  522. package/esm2015/table/src/lib/directives/sd-material-sub-information-def.directive.js +1 -1
  523. package/esm2015/table/src/lib/models/index.js +1 -1
  524. package/esm2015/table/src/lib/models/table-column.model.js +7 -7
  525. package/esm2015/table/src/lib/models/table-command.model.js +1 -1
  526. package/esm2015/table/src/lib/models/table-configuration.model.js +1 -1
  527. package/esm2015/table/src/lib/models/table-item.model.js +3 -3
  528. package/esm2015/table/src/lib/models/table-option-config.model.js +1 -1
  529. package/esm2015/table/src/lib/models/table-option-expand.model.js +1 -1
  530. package/esm2015/table/src/lib/models/table-option-export.model.js +1 -1
  531. package/esm2015/table/src/lib/models/table-option-group.model.js +1 -1
  532. package/esm2015/table/src/lib/models/table-option-paginate.model.js +1 -1
  533. package/esm2015/table/src/lib/models/table-option-reload.model.js +1 -1
  534. package/esm2015/table/src/lib/models/table-option-selector.model.js +1 -1
  535. package/esm2015/table/src/lib/models/table-option-sort.model.js +1 -1
  536. package/esm2015/table/src/lib/models/table-option-style.model.js +1 -1
  537. package/esm2015/table/src/lib/models/table-option.model.js +1 -1
  538. package/esm2015/table/src/lib/pipes/column-tooltip.pipe.js +1 -1
  539. package/esm2015/table/src/lib/pipes/command-disable.pipe.js +1 -1
  540. package/esm2015/table/src/lib/pipes/command-filter.pipe.js +1 -1
  541. package/esm2015/table/src/lib/pipes/command-icon.pipe.js +1 -1
  542. package/esm2015/table/src/lib/pipes/command-title.pipe.js +1 -1
  543. package/esm2015/table/src/lib/pipes/filter-column.pipe.js +1 -1
  544. package/esm2015/table/src/lib/pipes/filter-external.pipe.js +1 -1
  545. package/esm2015/table/src/lib/pipes/sd-group.pipe.js +1 -1
  546. package/esm2015/table/src/lib/pipes/selection-action-filter.pipe.js +1 -1
  547. package/esm2015/table/src/lib/pipes/selection-disable.pipe.js +1 -1
  548. package/esm2015/table/src/lib/pipes/selection-visible-select-all.pipe.js +1 -1
  549. package/esm2015/table/src/lib/pipes/selection-visible.pipe.js +1 -1
  550. package/esm2015/table/src/lib/services/table-configuration.service.js +37 -207
  551. package/esm2015/table/src/lib/services/table-filter/table-filter.model.js +1 -1
  552. package/esm2015/table/src/lib/services/table-filter/table-filter.service.js +1 -1
  553. package/esm2015/table/src/lib/table.component.js +201 -86
  554. package/esm2015/table/src/lib/table.module.js +7 -22
  555. package/esm2015/table/src/public-api.js +1 -1
  556. package/esm2015/textarea/index.js +1 -1
  557. package/esm2015/textarea/sd-angular-core-textarea.js +1 -1
  558. package/esm2015/textarea/src/lib/textarea.component.js +1 -1
  559. package/esm2015/textarea/src/lib/textarea.module.js +1 -1
  560. package/esm2015/textarea/src/public-api.js +1 -1
  561. package/esm2015/time/index.js +1 -1
  562. package/esm2015/time/sd-angular-core-time.js +1 -1
  563. package/esm2015/time/src/lib/time.component.js +1 -1
  564. package/esm2015/time/src/lib/time.module.js +1 -1
  565. package/esm2015/time/src/public-api.js +1 -1
  566. package/esm2015/timeline/index.js +1 -1
  567. package/esm2015/timeline/sd-angular-core-timeline.js +1 -1
  568. package/esm2015/timeline/src/lib/components/timeline.component.js +1 -1
  569. package/esm2015/timeline/src/lib/directives/timeline-def.directive.js +1 -1
  570. package/esm2015/timeline/src/lib/timeline.module.js +1 -1
  571. package/esm2015/timeline/src/public-api.js +1 -1
  572. package/esm2015/translate/index.js +1 -1
  573. package/esm2015/translate/sd-angular-core-translate.js +1 -1
  574. package/esm2015/translate/src/lib/translate.model.js +1 -1
  575. package/esm2015/translate/src/lib/translate.module.js +1 -1
  576. package/esm2015/translate/src/lib/translate.pipe.js +1 -1
  577. package/esm2015/translate/src/lib/translate.service.js +1 -1
  578. package/esm2015/upload-excel/index.js +1 -1
  579. package/esm2015/upload-excel/sd-angular-core-upload-excel.js +1 -1
  580. package/esm2015/upload-excel/src/lib/pipes/columm-hidden.pipe.js +1 -1
  581. package/esm2015/upload-excel/src/lib/pipes/column-transform.pipe.js +1 -1
  582. package/esm2015/upload-excel/src/lib/upload-excel.component.js +1 -1
  583. package/esm2015/upload-excel/src/lib/upload-excel.model.js +1 -1
  584. package/esm2015/upload-excel/src/lib/upload-excel.module.js +1 -1
  585. package/esm2015/upload-excel/src/public-api.js +1 -1
  586. package/esm2015/upload-file/index.js +1 -1
  587. package/esm2015/upload-file/sd-angular-core-upload-file.js +1 -1
  588. package/esm2015/upload-file/src/lib/upload-file.component.js +1 -1
  589. package/esm2015/upload-file/src/lib/upload-file.module.js +1 -1
  590. package/esm2015/upload-file/src/public-api.js +1 -1
  591. package/esm2015/utility/index.js +1 -1
  592. package/esm2015/utility/sd-angular-core-utility.js +1 -1
  593. package/esm2015/utility/src/lib/directives/desktop.directive.js +1 -1
  594. package/esm2015/utility/src/lib/directives/mobile-tablet.directive.js +1 -1
  595. package/esm2015/utility/src/lib/directives/mobile.directive.js +1 -1
  596. package/esm2015/utility/src/lib/directives/tablet.directive.js +1 -1
  597. package/esm2015/utility/src/lib/pipes/currency.pipe.js +1 -1
  598. package/esm2015/utility/src/lib/pipes/safe-html.pipe.js +1 -1
  599. package/esm2015/utility/src/lib/pipes/time-different.pipe.js +1 -1
  600. package/esm2015/utility/src/lib/utility.module.js +1 -3
  601. package/esm2015/utility/src/lib/utility.service.js +7 -54
  602. package/esm2015/utility/src/public-api.js +1 -1
  603. package/esm2015/view/index.js +1 -1
  604. package/esm2015/view/sd-angular-core-view.js +1 -1
  605. package/esm2015/view/src/lib/view.module.js +1 -1
  606. package/esm2015/view/src/public-api.js +1 -1
  607. package/esm2015/zip/index.js +1 -1
  608. package/esm2015/zip/sd-angular-core-zip.js +1 -1
  609. package/esm2015/zip/src/lib/zip.module.js +1 -1
  610. package/esm2015/zip/src/lib/zip.service.js +1 -1
  611. package/esm2015/zip/src/public-api.js +1 -1
  612. package/fesm2015/sd-angular-core-api.js +2 -35
  613. package/fesm2015/sd-angular-core-api.js.map +1 -1
  614. package/fesm2015/sd-angular-core-common.js +85 -2
  615. package/fesm2015/sd-angular-core-common.js.map +1 -1
  616. package/fesm2015/sd-angular-core-input-dropdown.js +2 -2
  617. package/fesm2015/sd-angular-core-input-dropdown.js.map +1 -1
  618. package/fesm2015/sd-angular-core-table.js +352 -803
  619. package/fesm2015/sd-angular-core-table.js.map +1 -1
  620. package/fesm2015/sd-angular-core-utility.js +7 -54
  621. package/fesm2015/sd-angular-core-utility.js.map +1 -1
  622. package/input-dropdown/sd-angular-core-input-dropdown.metadata.json +1 -1
  623. package/package.json +1 -1
  624. package/{sd-angular-core-1.3.150.tgz → sd-angular-core-1.3.152.tgz} +0 -0
  625. package/table/sd-angular-core-table.d.ts +23 -30
  626. package/table/sd-angular-core-table.metadata.json +1 -1
  627. package/table/src/lib/components/column-inline-filter/column-inline-filter.component.d.ts +2 -0
  628. package/table/src/lib/components/{popup-grid-configuration/popup-grid-configuration.component.d.ts → popup-configuration/popup-configuration.component.d.ts} +5 -10
  629. package/table/src/lib/components/popup-filter/popup-filter.component.d.ts +2 -2
  630. package/table/src/lib/components/quick-action/quick-action.component.d.ts +1 -1
  631. package/table/src/lib/components/{grid-filter/grid-filter.component.d.ts → table-filter/table-filter.component.d.ts} +5 -5
  632. package/table/src/lib/models/table-column.model.d.ts +15 -48
  633. package/table/src/lib/models/table-item.model.d.ts +15 -2
  634. package/table/src/lib/models/table-option-config.model.d.ts +2 -11
  635. package/table/src/lib/models/table-option.model.d.ts +0 -4
  636. package/table/src/lib/services/table-configuration.service.d.ts +5 -5
  637. package/table/src/lib/services/table-filter/table-filter.model.d.ts +1 -2
  638. package/table/src/lib/services/table-filter/table-filter.service.d.ts +2 -2
  639. package/table/src/lib/table.component.d.ts +12 -13
  640. package/utility/sd-angular-core-utility.metadata.json +1 -1
  641. package/utility/src/lib/utility.service.d.ts +2 -4
  642. package/esm2015/table/src/lib/components/grid-filter/grid-filter.component.js +0 -99
  643. package/esm2015/table/src/lib/components/popup-grid-configuration/popup-grid-configuration.component.js +0 -96
  644. package/esm2015/table/src/lib/models/grid-cell.model.js +0 -2
  645. package/esm2015/table/src/lib/pipes/cell-view.pipe.js +0 -180
  646. package/esm2015/table/src/lib/pipes/column-badge.pipe.js +0 -43
  647. package/esm2015/table/src/lib/pipes/column-children-filter.pipe.js +0 -31
  648. package/esm2015/table/src/lib/pipes/column-html-template.pipe.js +0 -23
  649. package/esm2015/table/src/lib/pipes/column-transform.pipe.js +0 -35
  650. package/esm2015/table/src/lib/pipes/column-values.pipe.js +0 -63
  651. package/esm2015/table/src/lib/pipes/grid-configuration-result.pipe.js +0 -21
  652. package/table/src/lib/models/grid-cell.model.d.ts +0 -16
  653. package/table/src/lib/pipes/cell-view.pipe.d.ts +0 -15
  654. package/table/src/lib/pipes/column-badge.pipe.d.ts +0 -11
  655. package/table/src/lib/pipes/column-children-filter.pipe.d.ts +0 -8
  656. package/table/src/lib/pipes/column-html-template.pipe.d.ts +0 -8
  657. package/table/src/lib/pipes/column-transform.pipe.d.ts +0 -8
  658. package/table/src/lib/pipes/column-values.pipe.d.ts +0 -6
  659. package/table/src/lib/pipes/grid-configuration-result.pipe.d.ts +0 -10
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@sd-angular/core/common'), require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/icon'), require('@angular/material/input'), require('@angular/material/paginator'), require('@angular/material/sort'), require('@angular/animations'), require('uuid'), require('rxjs'), require('@sd-angular/core/notify'), require('rxjs/operators'), require('@sd-angular/core/modal'), require('ngx-device-detector'), require('@sd-angular/core/export'), require('object-hash'), require('@sd-angular/core/setting'), require('@sd-angular/core/quick-action'), require('@angular/material/table'), require('@angular/material/progress-spinner'), require('@angular/cdk/table'), require('@angular/cdk/scrolling'), require('@angular/cdk/drag-drop'), require('@angular/material/menu'), require('@angular/material/slider'), require('@angular/material/button'), require('@sd-angular/core/service'), require('@angular/material/tooltip'), require('@angular/material/chips'), require('@angular/material/radio'), require('@angular/material/slide-toggle'), require('@sd-angular/core/form'), require('@angular/material/checkbox'), require('@sd-angular/core/translate'), require('@angular/material/list'), require('@angular/material/divider'), require('@sd-angular/core/utility'), require('@sd-angular/core/group')) :
3
- typeof define === 'function' && define.amd ? define('@sd-angular/core/table', ['exports', '@sd-angular/core/common', '@angular/core', '@angular/common', '@angular/forms', '@angular/material/form-field', '@angular/material/icon', '@angular/material/input', '@angular/material/paginator', '@angular/material/sort', '@angular/animations', 'uuid', 'rxjs', '@sd-angular/core/notify', 'rxjs/operators', '@sd-angular/core/modal', 'ngx-device-detector', '@sd-angular/core/export', 'object-hash', '@sd-angular/core/setting', '@sd-angular/core/quick-action', '@angular/material/table', '@angular/material/progress-spinner', '@angular/cdk/table', '@angular/cdk/scrolling', '@angular/cdk/drag-drop', '@angular/material/menu', '@angular/material/slider', '@angular/material/button', '@sd-angular/core/service', '@angular/material/tooltip', '@angular/material/chips', '@angular/material/radio', '@angular/material/slide-toggle', '@sd-angular/core/form', '@angular/material/checkbox', '@sd-angular/core/translate', '@angular/material/list', '@angular/material/divider', '@sd-angular/core/utility', '@sd-angular/core/group'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['sd-angular'] = global['sd-angular'] || {}, global['sd-angular'].core = global['sd-angular'].core || {}, global['sd-angular'].core.table = {}), global['sd-angular'].core.common, global.ng.core, global.ng.common, global.ng.forms, global.ng.material.formField, global.ng.material.icon, global.ng.material.input, global.ng.material.paginator, global.ng.material.sort, global.ng.animations, global.uuid, global.rxjs, global['sd-angular'].core.notify, global.rxjs.operators, global['sd-angular'].core.modal, global['ngx-device-detector'], global['sd-angular'].core.export, global['object-hash'], global['sd-angular'].core.setting, global['sd-angular'].core['quick-action'], global.ng.material.table, global.ng.material.progressSpinner, global.ng.cdk.table, global.ng.cdk.scrolling, global.ng.cdk.dragDrop, global.ng.material.menu, global.ng.material.slider, global.ng.material.button, global['sd-angular'].core.service, global.ng.material.tooltip, global.ng.material.chips, global.ng.material.radio, global.ng.material.slideToggle, global['sd-angular'].core.form, global.ng.material.checkbox, global['sd-angular'].core.translate, global.ng.material.list, global.ng.material.divider, global['sd-angular'].core.utility, global['sd-angular'].core.group));
5
- }(this, (function (exports, common, core, common$1, forms, formField, icon, input, paginator, sort, animations, uuid, rxjs, notify, operators, modal, ngxDeviceDetector, _export, hash, setting, quickAction, table, progressSpinner, table$1, scrolling, dragDrop, menu, slider, button, service, tooltip, chips, radio, slideToggle, form, checkbox, translate, list, divider, utility, group) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@sd-angular/core/common'), require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/icon'), require('@angular/material/input'), require('@angular/material/paginator'), require('@angular/material/sort'), require('@angular/animations'), require('uuid'), require('rxjs'), require('@sd-angular/core/notify'), require('rxjs/operators'), require('@sd-angular/core/modal'), require('ngx-device-detector'), require('@sd-angular/core/export'), require('@sd-angular/core/setting'), require('@sd-angular/core/quick-action'), require('object-hash'), require('@angular/cdk/drag-drop'), require('@angular/material/table'), require('@angular/material/progress-spinner'), require('@angular/cdk/table'), require('@angular/cdk/scrolling'), require('@angular/material/menu'), require('@angular/material/slider'), require('@angular/material/button'), require('@sd-angular/core/service'), require('@angular/material/tooltip'), require('@angular/material/chips'), require('@angular/material/radio'), require('@angular/material/slide-toggle'), require('@sd-angular/core/form'), require('@angular/material/checkbox'), require('@angular/material/list'), require('@angular/material/divider'), require('@sd-angular/core/group')) :
3
+ typeof define === 'function' && define.amd ? define('@sd-angular/core/table', ['exports', '@sd-angular/core/common', '@angular/core', '@angular/common', '@angular/forms', '@angular/material/form-field', '@angular/material/icon', '@angular/material/input', '@angular/material/paginator', '@angular/material/sort', '@angular/animations', 'uuid', 'rxjs', '@sd-angular/core/notify', 'rxjs/operators', '@sd-angular/core/modal', 'ngx-device-detector', '@sd-angular/core/export', '@sd-angular/core/setting', '@sd-angular/core/quick-action', 'object-hash', '@angular/cdk/drag-drop', '@angular/material/table', '@angular/material/progress-spinner', '@angular/cdk/table', '@angular/cdk/scrolling', '@angular/material/menu', '@angular/material/slider', '@angular/material/button', '@sd-angular/core/service', '@angular/material/tooltip', '@angular/material/chips', '@angular/material/radio', '@angular/material/slide-toggle', '@sd-angular/core/form', '@angular/material/checkbox', '@angular/material/list', '@angular/material/divider', '@sd-angular/core/group'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['sd-angular'] = global['sd-angular'] || {}, global['sd-angular'].core = global['sd-angular'].core || {}, global['sd-angular'].core.table = {}), global['sd-angular'].core.common, global.ng.core, global.ng.common, global.ng.forms, global.ng.material.formField, global.ng.material.icon, global.ng.material.input, global.ng.material.paginator, global.ng.material.sort, global.ng.animations, global.uuid, global.rxjs, global['sd-angular'].core.notify, global.rxjs.operators, global['sd-angular'].core.modal, global['ngx-device-detector'], global['sd-angular'].core.export, global['sd-angular'].core.setting, global['sd-angular'].core['quick-action'], global['object-hash'], global.ng.cdk.dragDrop, global.ng.material.table, global.ng.material.progressSpinner, global.ng.cdk.table, global.ng.cdk.scrolling, global.ng.material.menu, global.ng.material.slider, global.ng.material.button, global['sd-angular'].core.service, global.ng.material.tooltip, global.ng.material.chips, global.ng.material.radio, global.ng.material.slideToggle, global['sd-angular'].core.form, global.ng.material.checkbox, global.ng.material.list, global.ng.material.divider, global['sd-angular'].core.group));
5
+ }(this, (function (exports, common, core, common$1, forms, formField, icon, input, paginator, sort, animations, uuid, rxjs, notify, operators, modal, ngxDeviceDetector, _export, setting, quickAction, hash, dragDrop, table, progressSpinner, table$1, scrolling, menu, slider, button, service, tooltip, chips, radio, slideToggle, form, checkbox, list, divider, group) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -27,8 +27,8 @@
27
27
  }
28
28
  }
29
29
 
30
- var hash__default = /*#__PURE__*/_interopDefaultLegacy(hash);
31
30
  var hash__namespace = /*#__PURE__*/_interopNamespace(hash);
31
+ var hash__default = /*#__PURE__*/_interopDefaultLegacy(hash);
32
32
 
33
33
  /*! *****************************************************************************
34
34
  Copyright (c) Microsoft Corporation.
@@ -440,7 +440,7 @@
440
440
  SdPopupFilter.decorators = [
441
441
  { type: core.Component, args: [{
442
442
  selector: 'sd-popup-filter',
443
- template: "<sd-modal width=\"500px\" [title]=\"'Filter' | sdTranslate\">\r\n <sd-modal-body class=\"c-popup-filter\">\r\n <ng-container *ngFor=\"let column of columns | sdFilterColumn\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineColumn[column.field]\" color=\"primary\"></mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input\r\n *ngIf=\"column.type === 'string'\"\r\n [label]=\"column.title\"\r\n type=\"text\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-input>\r\n <sd-input\r\n *ngIf=\"column.type === 'number'\"\r\n [label]=\"column.title\"\r\n type=\" number\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-input>\r\n <sd-select\r\n *ngIf=\"column.type === 'bool'\"\r\n [label]=\"column.title\"\r\n [items]=\"[\r\n { value: '1', display: column.trueValue || 'True' },\r\n { value: '0', display: column.falseValue || 'False' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-select>\r\n <sd-select\r\n *ngIf=\"column.type === 'values' && !column?.editor?.autocomplete\"\r\n [label]=\"column.title\"\r\n [items]=\"column.option.items\"\r\n [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-select>\r\n <sd-autocomplete\r\n *ngIf=\"column.type === 'values' && column?.editor?.autocomplete\"\r\n [label]=\"column.title\"\r\n [items]=\"column.option.items\"\r\n [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-autocomplete>\r\n <sd-date-time\r\n *ngIf=\"column.type === 'date' || column.type === 'datetime' || column.type === 'time'\"\r\n [label]=\"column.title\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n type=\"date\"\r\n appearance=\"outline\">\r\n </sd-date-time>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineExternal[item.field]\" color=\"primary\"></mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'string'\"\r\n type=\"text\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n appearance=\"outline\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"externalFilter[item.field]\" appearance=\"outline\">\r\n </sd-input-number>\r\n <sd-select\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'bool'\"\r\n [items]=\"[\r\n { value: '1', display: item.option?.displayOnTrue || 'True' },\r\n { value: '0', display: item.option?.displayOnFalse || 'False' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n appearance=\"outline\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values'\">\r\n <sd-select\r\n *ngIf=\"item.option?.selection === 'MULTIPLE'\"\r\n [label]=\"item.title\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n appearance=\"outline\"\r\n multiple>\r\n </sd-select>\r\n <sd-autocomplete\r\n *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\"\r\n [label]=\"item.title\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n appearance=\"outline\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-autocomplete>\r\n <sd-select\r\n *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\"\r\n [label]=\"item.title\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n appearance=\"outline\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n filtered=\"true\"\r\n multiple>\r\n </sd-select>\r\n <sd-select\r\n *ngIf=\"!item.option?.selection\"\r\n [label]=\"item.title\"\r\n [items]=\"item.values\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n appearance=\"outline\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-select>\r\n </ng-container>\r\n <sd-date-time\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'date' || item.type === 'datetime'\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n [type]=\"item.type\"\r\n appearance=\"outline\">\r\n </sd-date-time>\r\n <sd-date-range\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'daterange' && externalFilter[item.field]\"\r\n [(from)]=\"externalFilter[item.field].from\"\r\n [(to)]=\"externalFilter[item.field].to\"\r\n [min]=\"item.minDate\"\r\n [max]=\"item.maxDate\"\r\n appearance=\"outline\">\r\n </sd-date-range>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let filter of filterDefs\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineFilterDef[filter.sdMaterialFilterDef]\" color=\"primary\"> </mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <ng-container *ngTemplateOutlet=\"filter.templateRef; context: { filterDef: filterDef }\"> </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </sd-modal-body>\r\n <sd-modal-footer *sdDesktop>\r\n <sd-button class=\"mr-auto\" (action)=\"onClear()\" title=\"M\u1EB7c \u0111\u1ECBnh\" size=\"sm\" type=\"link\"> </sd-button>\r\n <sd-button (action)=\"onApply()\" title=\"\u0110\u1ED3ng \u00FD\" color=\"primary\" size=\"sm\" type=\"fill\"></sd-button>\r\n </sd-modal-footer>\r\n <sd-modal-footer *sdMobileTablet>\r\n <sd-button style=\"flex: 1; padding-right: 5px\" (action)=\"onClear()\" title=\"M\u1EB7c \u0111\u1ECBnh\" width=\"100%\" size=\"sm\" type=\"link\"></sd-button>\r\n <sd-button\r\n style=\"flex: 1; padding-left: 5px\"\r\n (action)=\"onApply()\"\r\n title=\"\u0110\u1ED3ng \u00FD\"\r\n color=\"primary\"\r\n width=\"100%\"\r\n size=\"sm\"\r\n type=\"fill\"></sd-button>\r\n </sd-modal-footer>\r\n</sd-modal>\r\n",
443
+ template: "<sd-modal width=\"500px\" [title]=\"'Filter' | sdTranslate\">\r\n <sd-modal-body class=\"c-popup-filter\">\r\n <ng-container *ngFor=\"let column of columns | sdFilterColumn\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineColumn[column.field]\" color=\"primary\"></mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input\r\n *ngIf=\"column.type === 'string'\"\r\n [label]=\"column.title\"\r\n type=\"text\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-input>\r\n <sd-input\r\n *ngIf=\"column.type === 'number'\"\r\n [label]=\"column.title\"\r\n type=\" number\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-input>\r\n <sd-select\r\n *ngIf=\"column.type === 'bool'\"\r\n [label]=\"column.title\"\r\n [items]=\"[\r\n { value: '1', display: column.trueValue || 'True' },\r\n { value: '0', display: column.falseValue || 'False' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-select>\r\n <sd-autocomplete\r\n *ngIf=\"column.type === 'values' || column.type === 'lazy-values'\"\r\n [label]=\"column.title\"\r\n [items]=\"column.option.items\"\r\n [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-autocomplete>\r\n <sd-date-time\r\n *ngIf=\"column.type === 'date' || column.type === 'datetime' || column.type === 'time'\"\r\n [label]=\"column.title\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n type=\"date\"\r\n appearance=\"outline\">\r\n </sd-date-time>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineExternal[item.field]\" color=\"primary\"></mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'string'\"\r\n type=\"text\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n appearance=\"outline\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"externalFilter[item.field]\" appearance=\"outline\">\r\n </sd-input-number>\r\n <sd-select\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'bool'\"\r\n [items]=\"[\r\n { value: '1', display: item.option?.displayOnTrue || 'True' },\r\n { value: '0', display: item.option?.displayOnFalse || 'False' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n appearance=\"outline\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values'\">\r\n <sd-select\r\n *ngIf=\"item.option?.selection === 'MULTIPLE'\"\r\n [label]=\"item.title\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n appearance=\"outline\"\r\n multiple>\r\n </sd-select>\r\n <sd-autocomplete\r\n *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\"\r\n [label]=\"item.title\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n appearance=\"outline\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-autocomplete>\r\n <sd-select\r\n *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\"\r\n [label]=\"item.title\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n appearance=\"outline\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n filtered=\"true\"\r\n multiple>\r\n </sd-select>\r\n <sd-select\r\n *ngIf=\"!item.option?.selection\"\r\n [label]=\"item.title\"\r\n [items]=\"item.values\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n appearance=\"outline\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-select>\r\n </ng-container>\r\n <sd-date-time\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'date' || item.type === 'datetime'\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n [type]=\"item.type\"\r\n appearance=\"outline\">\r\n </sd-date-time>\r\n <sd-date-range\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'daterange' && externalFilter[item.field]\"\r\n [(from)]=\"externalFilter[item.field].from\"\r\n [(to)]=\"externalFilter[item.field].to\"\r\n [min]=\"item.minDate\"\r\n [max]=\"item.maxDate\"\r\n appearance=\"outline\">\r\n </sd-date-range>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let filter of filterDefs\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineFilterDef[filter.sdMaterialFilterDef]\" color=\"primary\"> </mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <ng-container *ngTemplateOutlet=\"filter.templateRef; context: { filterDef: filterDef }\"> </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </sd-modal-body>\r\n <sd-modal-footer *sdDesktop>\r\n <sd-button class=\"mr-auto\" (action)=\"onClear()\" title=\"M\u1EB7c \u0111\u1ECBnh\" size=\"sm\" type=\"link\"> </sd-button>\r\n <sd-button (action)=\"onApply()\" title=\"\u0110\u1ED3ng \u00FD\" color=\"primary\" size=\"sm\" type=\"fill\"></sd-button>\r\n </sd-modal-footer>\r\n <sd-modal-footer *sdMobileTablet>\r\n <sd-button style=\"flex: 1; padding-right: 5px\" (action)=\"onClear()\" title=\"M\u1EB7c \u0111\u1ECBnh\" width=\"100%\" size=\"sm\" type=\"link\"></sd-button>\r\n <sd-button\r\n style=\"flex: 1; padding-left: 5px\"\r\n (action)=\"onApply()\"\r\n title=\"\u0110\u1ED3ng \u00FD\"\r\n color=\"primary\"\r\n width=\"100%\"\r\n size=\"sm\"\r\n type=\"fill\"></sd-button>\r\n </sd-modal-footer>\r\n</sd-modal>\r\n",
444
444
  changeDetection: core.ChangeDetectionStrategy.OnPush,
445
445
  styles: [".c-checkable{width:50px}.c-filterable{flex:1}::ng-deep sd-modal-body.c-popup-filter .mat-form-field-wrapper{padding-bottom:0}"]
446
446
  },] }
@@ -457,8 +457,8 @@
457
457
  };
458
458
 
459
459
  var _subscription;
460
- var SdGridFilter = /** @class */ (function () {
461
- function SdGridFilter(ref, deviceService) {
460
+ var SdTableFilter = /** @class */ (function () {
461
+ function SdTableFilter(ref, deviceService) {
462
462
  var _this = this;
463
463
  this.ref = ref;
464
464
  this.deviceService = deviceService;
@@ -494,21 +494,21 @@
494
494
  this.isMobileOrTablet = !this.deviceService.isDesktop();
495
495
  this.ref.markForCheck();
496
496
  }
497
- Object.defineProperty(SdGridFilter.prototype, "_filter", {
497
+ Object.defineProperty(SdTableFilter.prototype, "_filter", {
498
498
  set: function (filter) {
499
499
  this.filter = filter;
500
500
  },
501
501
  enumerable: false,
502
502
  configurable: true
503
503
  });
504
- Object.defineProperty(SdGridFilter.prototype, "_externalFilters", {
504
+ Object.defineProperty(SdTableFilter.prototype, "_externalFilters", {
505
505
  set: function (value) {
506
506
  this.externalFilters = value || [];
507
507
  },
508
508
  enumerable: false,
509
509
  configurable: true
510
510
  });
511
- Object.defineProperty(SdGridFilter.prototype, "_filterRegister", {
511
+ Object.defineProperty(SdTableFilter.prototype, "_filterRegister", {
512
512
  set: function (value) {
513
513
  this.filterRegister = value;
514
514
  this.filterRegisterChange.next(this.filterRegister);
@@ -516,7 +516,7 @@
516
516
  enumerable: false,
517
517
  configurable: true
518
518
  });
519
- SdGridFilter.prototype.ngAfterViewInit = function () {
519
+ SdTableFilter.prototype.ngAfterViewInit = function () {
520
520
  var _this = this;
521
521
  __classPrivateFieldGet(this, _subscription).add(this.filterRegisterChange.pipe(operators.startWith(this.filterRegister)).subscribe(function (filterRegister) {
522
522
  if (_this.filterRegister) {
@@ -537,25 +537,25 @@
537
537
  }
538
538
  }));
539
539
  };
540
- SdGridFilter.prototype.ngOnDestroy = function () {
540
+ SdTableFilter.prototype.ngOnDestroy = function () {
541
541
  __classPrivateFieldGet(this, _subscription).unsubscribe();
542
542
  };
543
- return SdGridFilter;
543
+ return SdTableFilter;
544
544
  }());
545
545
  _subscription = new WeakMap();
546
- SdGridFilter.decorators = [
546
+ SdTableFilter.decorators = [
547
547
  { type: core.Component, args: [{
548
- selector: 'sd-grid-filter',
549
- template: "<ng-container *ngIf=\"!filter?.disabled\">\r\n <ng-container *ngIf=\"filter?.enableCollapse;else noCollapse\">\r\n <sd-group class=\"p-12\" [isExpanded]=\"false\" title=\"T\u00ECm ki\u1EBFm\" expandable>\r\n <div sdGroupBody>\r\n <ng-container *ngTemplateOutlet=\"noCollapse\"></ng-container>\r\n </div>\r\n </sd-group>\r\n </ng-container>\r\n <ng-template #noCollapse>\r\n <div\r\n *ngIf=\"!isMobileOrTablet && ((columns?.length && !filter?.inlineColumn) || externalFilters?.length || filterDefs?.length)\"\r\n class=\"row mx-0\">\r\n <ng-container *ngIf=\"filter?.sorts?.length\">\r\n <ng-container *ngFor=\"let field of filter?.sorts\">\r\n <ng-container *ngIf=\"columns?.length && !filter?.inlineColumn\">\r\n <ng-container *ngFor=\"let item of columns | sdFilterColumn:field\">\r\n <ng-container *ngTemplateOutlet=\"filterColumn; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"externalFilters?.length\">\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal:field\">\r\n <ng-container *ngTemplateOutlet=\"filterExternal; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of filterDefs\">\r\n <div *ngIf=\"inlineFilterDef[item.sdMaterialFilterDef] && item.sdMaterialFilterDef === field\"\r\n class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <ng-container *ngTemplateOutlet=\"item.templateRef;context:{filterDef:filterDef, isInline: true}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!filter?.sorts?.length\">\r\n <ng-container *ngIf=\"columns?.length && !filter?.inlineColumn\">\r\n <ng-container *ngFor=\"let item of columns | sdFilterColumn\">\r\n <ng-container *ngTemplateOutlet=\"filterColumn; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"externalFilters?.length\">\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal\">\r\n <ng-container *ngTemplateOutlet=\"filterExternal; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of filterDefs\">\r\n <div *ngIf=\"inlineFilterDef[item.sdMaterialFilterDef]\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <ng-container *ngTemplateOutlet=\"item.templateRef;context:{filterDef:filterDef, isInline: true}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #filterColumn let-item=\"item\">\r\n <div *ngIf=\"inlineColumn[item.field]\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\" [(model)]=\"columnFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"columnFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input-number>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'bool'\" [items]=\"[{value:'1',display:item.option?.displayOnTrue || 'True' },\r\n {value:'0',display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"columnFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-select>\r\n <sd-select *ngIf=\"item.type === 'values' && item?.option?.selection !== 'AUTOCOMPLETE'\"\r\n [items]=\"item.option?.items\" [valueField]=\"item.option?.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"columnFilter[item.field]\" (sdChange)=\"onFilter(item)\" [disabled]=\"item.filter?.disabled\"\r\n [multiple]=\"item?.option?.selection === 'MULTIPLE' || item?.item?.selection === 'MULTIPLEAUTOCOMPLETE'\"\r\n [filtered]=\"item?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" appearance=\"outline\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.type === 'values' && item?.option?.selection === 'AUTOCOMPLETE'\"\r\n [items]=\"item.option?.items\" [valueField]=\"item.option?.valueField\" [displayField]=\"item.option?.displayField\"\r\n [(model)]=\"columnFilter[item.field]\" (sdChange)=\"onFilter(item)\" [disabled]=\"item.filter?.disabled\"\r\n appearance=\"outline\">\r\n </sd-autocomplete>\r\n <sd-date-time *ngIf=\"item.type === 'date' || item.type === 'datetime' || item.type === 'time'\"\r\n [label]=\"item.title\" [(model)]=\"columnFilter[item.field]\" [type]=\"item.type\" (sdChange)=\"onFilter(item)\"\r\n appearance=\"outline\">\r\n </sd-date-time>\r\n </div>\r\n </ng-template>\r\n <ng-template #filterExternal let-item=\"item\">\r\n <div *ngIf=\"inlineExternal[item.field]\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\" [(model)]=\"externalFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"externalFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input-number>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'bool'\" [items]=\"[{value:'1',display:item.option?.displayOnTrue || 'True' },\r\n {value:'0',display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values' && item.option\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\" [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" [selectAll]=\"item.option.selectAll\"\r\n appearance=\"outline\" multiple>\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.option.items\" [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.option.items\" [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" filtered=\"true\" appearance=\"outline\"\r\n multiple>\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-select>\r\n </ng-container>\r\n <sd-date-time [label]=\"item.title\" *ngIf=\"item.type ==='date' || item.type ==='datetime'\"\r\n [(model)]=\"externalFilter[item.field]\" [type]=\"item.type\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-date-time>\r\n <sd-date-range [label]=\"item.title\" *ngIf=\"item.type ==='daterange' && externalFilter[item.field]\"\r\n [(from)]=\"externalFilter[item.field].from\" [(to)]=\"externalFilter[item.field].to\" [min]=\"item.minDate\"\r\n [max]=\"item.maxDate\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-date-range>\r\n </div>\r\n </ng-template>\r\n <sd-popup-filter [filterRegister]=\"filterRegister\" [columns]=\"columns\"\r\n [externalFilters]=\"externalFilters\" [filterDefs]=\"filterDefs\">\r\n </sd-popup-filter>\r\n </ng-template>\r\n</ng-container>",
548
+ selector: 'sd-table-filter',
549
+ template: "<ng-container *ngIf=\"!filter?.disabled\">\r\n <ng-container *ngIf=\"filter?.enableCollapse;else noCollapse\">\r\n <sd-group class=\"p-12\" [isExpanded]=\"false\" title=\"T\u00ECm ki\u1EBFm\" expandable>\r\n <div sdGroupBody>\r\n <ng-container *ngTemplateOutlet=\"noCollapse\"></ng-container>\r\n </div>\r\n </sd-group>\r\n </ng-container>\r\n <ng-template #noCollapse>\r\n <div\r\n *ngIf=\"!isMobileOrTablet && (externalFilters?.length || filterDefs?.length)\"\r\n class=\"row mx-0\">\r\n <ng-container *ngIf=\"filter?.sorts?.length\">\r\n <ng-container *ngFor=\"let field of filter?.sorts\">\r\n <ng-container *ngIf=\"externalFilters?.length\">\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal:field\">\r\n <ng-container *ngTemplateOutlet=\"filterExternal; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of filterDefs\">\r\n <div *ngIf=\"inlineFilterDef[item.sdMaterialFilterDef] && item.sdMaterialFilterDef === field\"\r\n class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <ng-container *ngTemplateOutlet=\"item.templateRef;context:{filterDef:filterDef, isInline: true}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!filter?.sorts?.length\">\r\n <ng-container *ngIf=\"externalFilters?.length\">\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal\">\r\n <ng-container *ngTemplateOutlet=\"filterExternal; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of filterDefs\">\r\n <div *ngIf=\"inlineFilterDef[item.sdMaterialFilterDef]\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <ng-container *ngTemplateOutlet=\"item.templateRef;context:{filterDef:filterDef, isInline: true}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #filterExternal let-item=\"item\">\r\n <div *ngIf=\"inlineExternal[item.field]\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\" [(model)]=\"externalFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"externalFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input-number>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'bool'\" [items]=\"[{value:'1',display:item.option?.displayOnTrue || 'True' },\r\n {value:'0',display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-select>\r\n <ng-container *ngIf=\"(item.type === 'values' || item.type === 'lazy-values') && item.option\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\" [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" [selectAll]=\"item.option.selectAll\"\r\n appearance=\"outline\" multiple>\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.option.items\" [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.option.items\" [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" filtered=\"true\" appearance=\"outline\"\r\n multiple>\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-select>\r\n </ng-container>\r\n <sd-date-time [label]=\"item.title\" *ngIf=\"item.type ==='date' || item.type ==='datetime'\"\r\n [(model)]=\"externalFilter[item.field]\" [type]=\"item.type\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-date-time>\r\n <sd-date-range [label]=\"item.title\" *ngIf=\"item.type ==='daterange' && externalFilter[item.field]\"\r\n [(from)]=\"externalFilter[item.field].from\" [(to)]=\"externalFilter[item.field].to\" [min]=\"item.minDate\"\r\n [max]=\"item.maxDate\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-date-range>\r\n </div>\r\n </ng-template>\r\n <sd-popup-filter [filterRegister]=\"filterRegister\" [columns]=\"columns\"\r\n [externalFilters]=\"externalFilters\" [filterDefs]=\"filterDefs\">\r\n </sd-popup-filter>\r\n </ng-template>\r\n</ng-container>",
550
550
  changeDetection: core.ChangeDetectionStrategy.OnPush,
551
551
  styles: [":host{display:block;padding-bottom:10px;padding-left:0;padding-right:0}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:0}"]
552
552
  },] }
553
553
  ];
554
- SdGridFilter.ctorParameters = function () { return [
554
+ SdTableFilter.ctorParameters = function () { return [
555
555
  { type: core.ChangeDetectorRef },
556
556
  { type: ngxDeviceDetector.DeviceDetectorService }
557
557
  ]; };
558
- SdGridFilter.propDecorators = {
558
+ SdTableFilter.propDecorators = {
559
559
  popupFilter: [{ type: core.ViewChild, args: [SdPopupFilter,] }],
560
560
  _filter: [{ type: core.Input, args: ['filter',] }],
561
561
  columns: [{ type: core.Input }],
@@ -638,239 +638,35 @@
638
638
  { type: core.TemplateRef }
639
639
  ]; };
640
640
 
641
- var _COLUMNS, _cache, _getKey, _default, _load, _get, _set, _remove;
641
+ var _COLUMNS, _prefix, _getSetting, _default;
642
642
  var SdTableConfigurationService = /** @class */ (function () {
643
643
  function SdTableConfigurationService(settingService, gridMaterialConfiguration) {
644
644
  var _this = this;
645
645
  this.settingService = settingService;
646
646
  this.gridMaterialConfiguration = gridMaterialConfiguration;
647
647
  _COLUMNS.set(this, {
648
- EDITORVALIDATION: 'sdEditorValidation',
649
- EDITOR: 'sdEditor',
650
648
  SUBINFORMATION: 'sdSubInformationAction',
651
649
  COMMAND: 'sdCommand',
652
650
  SELECTION: 'sdSelection',
653
651
  GROUP: 'sdGroup',
654
652
  });
655
- _cache.set(this, {});
656
- this.init = function (key, gridOption) {
657
- if (!__classPrivateFieldGet(_this, _cache)[key]) {
658
- var subject_1 = new rxjs.Subject();
659
- __classPrivateFieldGet(_this, _cache)[key] = {
660
- load: __classPrivateFieldGet(_this, _load).call(_this, gridOption, subject_1),
661
- get: __classPrivateFieldGet(_this, _get).call(_this, gridOption),
662
- set: function (configuration) {
663
- configuration = __classPrivateFieldGet(_this, _set).call(_this, gridOption, configuration);
664
- subject_1.next(Object.assign({}, configuration));
665
- return configuration;
666
- },
667
- remove: function () {
668
- __classPrivateFieldGet(_this, _remove).call(_this, gridOption)();
669
- subject_1.next(__classPrivateFieldGet(_this, _default).call(_this, gridOption));
670
- },
671
- observer: subject_1,
672
- };
653
+ _prefix.set(this, 'bd364e28-fe67-48b9-a537-1a306f7d195c');
654
+ _getSetting.set(this, function (gridOption) {
655
+ if (gridOption === null || gridOption === void 0 ? void 0 : gridOption.key) {
656
+ throw new Error('Invalid key');
673
657
  }
674
- return __classPrivateFieldGet(_this, _cache)[key];
675
- };
676
- _getKey.set(this, function (gridOption) {
677
- var _a, _b;
678
- var prefix = 'c9e94836-6ace-4aeb-b148-4f0be63589ee';
679
- if (!((_a = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _a === void 0 ? void 0 : _a.key) && !(gridOption === null || gridOption === void 0 ? void 0 : gridOption.key)) {
680
- return null;
681
- }
682
- return hash__default['default']({
683
- prefix: prefix,
684
- key: ((_b = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _b === void 0 ? void 0 : _b.key) || !(gridOption === null || gridOption === void 0 ? void 0 : gridOption.key),
658
+ return _this.settingService.create({ prefix: __classPrivateFieldGet(_this, _prefix), key: gridOption.key }, {
659
+ default: __classPrivateFieldGet(_this, _default).call(_this, gridOption),
685
660
  });
686
661
  });
687
- _default.set(this, function (gridOption) {
688
- var _a;
689
- var columns = ((_a = gridOption === null || gridOption === void 0 ? void 0 : gridOption.columns) === null || _a === void 0 ? void 0 : _a.filter(function (e) { return !e.hidden; }).map(function (e) { return ({
690
- origin: {
691
- field: e.field,
692
- title: e.title,
693
- width: e.width,
694
- invisible: e.invisible,
695
- },
696
- invisible: e.invisible,
697
- fixed: false,
698
- }); })) || [];
699
- return {
700
- columns: columns,
701
- };
702
- });
703
- _load.set(this, function (gridOption, subject) {
704
- return function () { return __awaiter(_this, void 0, void 0, function () {
705
- var get, configuration;
706
- return __generator(this, function (_e) {
707
- switch (_e.label) {
708
- case 0:
709
- get = __classPrivateFieldGet(this, _get).call(this, gridOption);
710
- return [4 /*yield*/, get()];
711
- case 1:
712
- configuration = _e.sent();
713
- subject.next(Object.assign({}, configuration));
714
- return [2 /*return*/];
715
- }
716
- });
717
- }); };
718
- });
719
- _get.set(this, function (gridOption) {
720
- return function () { return __awaiter(_this, void 0, void 0, function () {
721
- var key, columns, config, configuration, _e, get, remove, _f, get, remove;
722
- return __generator(this, function (_g) {
723
- switch (_g.label) {
724
- case 0:
725
- key = __classPrivateFieldGet(this, _getKey).call(this, gridOption);
726
- if (!key) {
727
- return [2 /*return*/, __classPrivateFieldGet(this, _default).call(this, gridOption)];
728
- }
729
- columns = gridOption.columns, config = gridOption.config;
730
- if (!((config === null || config === void 0 ? void 0 : config.storage) === 'server')) return [3 /*break*/, 2];
731
- _e = this.settingService.createServer(key, {
732
- args: config === null || config === void 0 ? void 0 : config.args,
733
- }), get = _e.get, remove = _e.remove;
734
- return [4 /*yield*/, get().catch(function () { return undefined; })];
735
- case 1:
736
- configuration = _g.sent();
737
- if (!(configuration === null || configuration === void 0 ? void 0 : configuration.columns)) {
738
- remove().catch(console.error);
739
- return [2 /*return*/, __classPrivateFieldGet(this, _default).call(this, gridOption)];
740
- }
741
- return [3 /*break*/, 3];
742
- case 2:
743
- _f = this.settingService.create(key, {
744
- type: config === null || config === void 0 ? void 0 : config.storage,
745
- args: config === null || config === void 0 ? void 0 : config.args,
746
- }), get = _f.get, remove = _f.remove;
747
- configuration = get();
748
- if (!(configuration === null || configuration === void 0 ? void 0 : configuration.columns)) {
749
- remove();
750
- return [2 /*return*/, __classPrivateFieldGet(this, _default).call(this, gridOption)];
751
- }
752
- _g.label = 3;
753
- case 3:
754
- configuration.columns = configuration.columns.filter(function (column) { return columns.some(function (e) { return !e.hidden && e.field === column.origin.field; }); });
755
- // Thêm những column mới vào storage nếu có
756
- columns.forEach(function (column) {
757
- var col = configuration.columns.find(function (e) { var _a; return ((_a = e.origin) === null || _a === void 0 ? void 0 : _a.field) === column.field; });
758
- if (!col) {
759
- configuration.columns.push({
760
- origin: {
761
- field: column.field,
762
- title: column.title,
763
- width: column.width,
764
- invisible: column.invisible,
765
- },
766
- invisible: column.invisible,
767
- fixed: false,
768
- });
769
- }
770
- else {
771
- col.origin = {
772
- field: column.field,
773
- title: column.title,
774
- width: column.width,
775
- invisible: column.invisible,
776
- };
777
- }
778
- });
779
- return [2 /*return*/, configuration];
780
- }
781
- });
782
- }); };
783
- });
784
- _set.set(this, function (gridOption, configuration) {
785
- var _a, _b, _c, _d;
786
- var key = __classPrivateFieldGet(_this, _getKey).call(_this, gridOption);
787
- if (key) {
788
- if (((_a = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _a === void 0 ? void 0 : _a.storage) === 'server') {
789
- var set = _this.settingService.createServer(key, {
790
- args: (_b = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _b === void 0 ? void 0 : _b.args,
791
- }).set;
792
- set(configuration);
793
- }
794
- else {
795
- var set = _this.settingService.create(key, {
796
- type: (_c = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _c === void 0 ? void 0 : _c.storage,
797
- args: (_d = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _d === void 0 ? void 0 : _d.args,
798
- }).set;
799
- set(configuration);
800
- }
662
+ this.loadConfiguration = function (gridOption) {
663
+ if (!(gridOption === null || gridOption === void 0 ? void 0 : gridOption.key)) {
664
+ return __classPrivateFieldGet(_this, _default).call(_this, gridOption);
801
665
  }
802
- return JSON.parse(JSON.stringify(configuration));
803
- });
804
- _remove.set(this, function (gridOption) {
805
- return function () {
806
- var _a, _b, _c, _d;
807
- var key = __classPrivateFieldGet(_this, _getKey).call(_this, gridOption);
808
- if (key) {
809
- if (((_a = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _a === void 0 ? void 0 : _a.storage) === 'server') {
810
- var remove = _this.settingService.createServer(key, {
811
- args: (_b = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _b === void 0 ? void 0 : _b.args,
812
- }).remove;
813
- remove();
814
- }
815
- else {
816
- var remove = _this.settingService.create(key, {
817
- type: (_c = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _c === void 0 ? void 0 : _c.storage,
818
- args: (_d = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _d === void 0 ? void 0 : _d.args,
819
- }).remove;
820
- remove();
821
- }
822
- }
823
- };
824
- });
825
- // get = async (gridOption: SdGridMaterialOption): Promise<SdGridConfiguration> => {
826
- // if (!gridOption?.key) {
827
- // return this.#getDefaultConfiguration(gridOption);
828
- // }
829
- // const { key, columns } = gridOption;
830
- // const configuration: SdGridConfiguration = await this.settingService.get(this.#getKey(key)).catch(() => undefined);
831
- // if (!configuration?.columns) {
832
- // this.settingService.remove(this.#getKey(key)).catch(console.error);
833
- // return this.#getDefaultConfiguration(gridOption);
834
- // }
835
- // configuration.columns = configuration.columns
836
- // .filter(column => columns.some(e => !e.hidden && e.field === column.origin.field));
837
- // // Thêm những column mới vào storage nếu có
838
- // columns.forEach(column => {
839
- // const col = configuration.columns.find(e => e.origin?.field === column.field);
840
- // if (!col) {
841
- // configuration.columns.push({
842
- // origin: {
843
- // field: column.field,
844
- // title: column.title,
845
- // width: column.width,
846
- // invisible: column.invisible,
847
- // },
848
- // invisible: column.invisible,
849
- // fixed: false
850
- // });
851
- // } else {
852
- // col.origin = {
853
- // field: column.field,
854
- // title: column.title,
855
- // width: column.width,
856
- // invisible: column.invisible
857
- // };
858
- // }
859
- // });
860
- // return configuration;
861
- // }
862
- // set = async (key: string, configuration: SdGridConfiguration): Promise<SdGridConfiguration> => {
863
- // if (key) {
864
- // this.settingService.set(this.#getKey(key), configuration);
865
- // }
866
- // return configuration;
867
- // }
868
- // remove = (key: string) => {
869
- // if (key) {
870
- // this.settingService.remove(this.#getKey(key));
871
- // }
872
- // }
873
- this.generateConfigurationResult = function (configuration, gridOption, sdSubInformation) {
666
+ var setting = __classPrivateFieldGet(_this, _getSetting).call(_this, gridOption);
667
+ return setting.get();
668
+ };
669
+ this.loadConfigurationResult = function (gridOption, configuration) {
874
670
  var _a, _b;
875
671
  var result = {
876
672
  column: {},
@@ -883,7 +679,7 @@
883
679
  displayedFooters: [],
884
680
  multipleHeader: false,
885
681
  };
886
- var _e = gridOption || {}, selector = _e.selector, commands = _e.commands, group = _e.group;
682
+ var _c = gridOption || {}, selector = _c.selector, commands = _c.commands, group = _c.group;
887
683
  if (selector === null || selector === void 0 ? void 0 : selector.visible) {
888
684
  result.firstHeaders.push(__classPrivateFieldGet(_this, _COLUMNS).SELECTION);
889
685
  result.displayedColumns.push(__classPrivateFieldGet(_this, _COLUMNS).SELECTION);
@@ -922,7 +718,7 @@
922
718
  }
923
719
  }
924
720
  });
925
- if (sdSubInformation === null || sdSubInformation === void 0 ? void 0 : sdSubInformation.templateRef) {
721
+ if (gridOption.expand) {
926
722
  result.firstHeaders.push(__classPrivateFieldGet(_this, _COLUMNS).SUBINFORMATION);
927
723
  result.displayedColumns.push(__classPrivateFieldGet(_this, _COLUMNS).SUBINFORMATION);
928
724
  }
@@ -931,10 +727,29 @@
931
727
  result.displayedFooters = result.displayedColumns.filter(function (val) { return val !== __classPrivateFieldGet(_this, _COLUMNS).SUBINFORMATION; });
932
728
  return result;
933
729
  };
730
+ this.init = function (gridOption) {
731
+ return __classPrivateFieldGet(_this, _getSetting).call(_this, gridOption);
732
+ };
733
+ _default.set(this, function (gridOption) {
734
+ var _a;
735
+ var columns = ((_a = gridOption === null || gridOption === void 0 ? void 0 : gridOption.columns) === null || _a === void 0 ? void 0 : _a.filter(function (e) { return !e.hidden; }).map(function (e) { return ({
736
+ origin: {
737
+ field: e.field,
738
+ title: e.title,
739
+ width: e.width,
740
+ invisible: e.invisible,
741
+ },
742
+ invisible: e.invisible,
743
+ fixed: false,
744
+ }); })) || [];
745
+ return {
746
+ columns: columns,
747
+ };
748
+ });
934
749
  }
935
750
  return SdTableConfigurationService;
936
751
  }());
937
- _COLUMNS = new WeakMap(), _cache = new WeakMap(), _getKey = new WeakMap(), _default = new WeakMap(), _load = new WeakMap(), _get = new WeakMap(), _set = new WeakMap(), _remove = new WeakMap();
752
+ _COLUMNS = new WeakMap(), _prefix = new WeakMap(), _getSetting = new WeakMap(), _default = new WeakMap();
938
753
  SdTableConfigurationService.decorators = [
939
754
  { type: core.Injectable }
940
755
  ];
@@ -944,10 +759,10 @@
944
759
  ]; };
945
760
 
946
761
  var MapToSdTableItem = function (item) { return ({
947
- current: JSON.parse(JSON.stringify(item)),
948
- origin: item,
762
+ data: item,
949
763
  meta: {
950
764
  id: hash__namespace(item),
765
+ display: {},
951
766
  expand: {
952
767
  isExpanding: false,
953
768
  isExpanded: false,
@@ -957,83 +772,14 @@
957
772
  },
958
773
  }); };
959
774
 
960
- var _prefix, _cache$1;
961
- var SdColumnValuesPipe = /** @class */ (function () {
962
- function SdColumnValuesPipe() {
963
- var _this = this;
964
- _prefix.set(this, 'a1e67660-8aa2-4c11-b02d-71a32188719f');
965
- _cache$1.set(this, {});
966
- this.transform = function (value, column) { return __awaiter(_this, void 0, void 0, function () {
967
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, items, valueField, displayField, selection, remain, key, isMultible, values, result, result;
968
- return __generator(this, function (_m) {
969
- switch (_m.label) {
970
- case 0:
971
- if (column.type !== 'values' || !((_a = column.option) === null || _a === void 0 ? void 0 : _a.items) || !((_b = column.option) === null || _b === void 0 ? void 0 : _b.valueField) || !((_c = column.option) === null || _c === void 0 ? void 0 : _c.displayField)) {
972
- return [2 /*return*/, value];
973
- }
974
- _l = column.option, items = _l.items, valueField = _l.valueField, displayField = _l.displayField, selection = _l.selection, remain = __rest(_l, ["items", "valueField", "displayField", "selection"]);
975
- key = hash__default['default']({
976
- prefix: __classPrivateFieldGet(this, _prefix),
977
- valueField: valueField,
978
- displayField: displayField,
979
- selection: selection,
980
- remain: remain,
981
- value: value
982
- });
983
- isMultible = ['MULTIPLE', 'MULTIPLEAUTOCOMPLETE', 'MULTIPLE_EDITOR', 'MULTIPLEAUTOCOMPLETE_EDITOR'].includes(selection);
984
- if (!(typeof (items) === 'function')) return [3 /*break*/, 3];
985
- if (!!__classPrivateFieldGet(this, _cache$1)[key]) return [3 /*break*/, 2];
986
- return [4 /*yield*/, items(value, true)];
987
- case 1:
988
- values = _m.sent();
989
- result = '';
990
- if (isMultible && Array.isArray(value)) {
991
- result = ((_e = (_d = values === null || values === void 0 ? void 0 : values.filter(function (e) { return value === null || value === void 0 ? void 0 : value.includes(e === null || e === void 0 ? void 0 : e[valueField]); })) === null || _d === void 0 ? void 0 : _d.map(function (e) { return e === null || e === void 0 ? void 0 : e[displayField]; })) === null || _e === void 0 ? void 0 : _e.join(', ')) || (value === null || value === void 0 ? void 0 : value.join(', '));
992
- }
993
- else {
994
- result = ((_f = values === null || values === void 0 ? void 0 : values.find(function (e) { return (e === null || e === void 0 ? void 0 : e[valueField]) === value; })) === null || _f === void 0 ? void 0 : _f[displayField]) || value;
995
- }
996
- __classPrivateFieldGet(this, _cache$1)[key] = {
997
- result: result
998
- };
999
- _m.label = 2;
1000
- case 2: return [3 /*break*/, 4];
1001
- case 3:
1002
- if (!__classPrivateFieldGet(this, _cache$1)[key]) {
1003
- result = '';
1004
- if (isMultible && Array.isArray(value)) {
1005
- result = (_j = (_h = (_g = items === null || items === void 0 ? void 0 : items.filter(function (e) { return value === null || value === void 0 ? void 0 : value.includes(e === null || e === void 0 ? void 0 : e[valueField]); })) === null || _g === void 0 ? void 0 : _g.map(function (e) { return e === null || e === void 0 ? void 0 : e[displayField]; })) === null || _h === void 0 ? void 0 : _h.join(', ')) !== null && _j !== void 0 ? _j : value === null || value === void 0 ? void 0 : value.join(', ');
1006
- }
1007
- else {
1008
- result = ((_k = items === null || items === void 0 ? void 0 : items.find(function (e) { return (e === null || e === void 0 ? void 0 : e[valueField]) === value; })) === null || _k === void 0 ? void 0 : _k[displayField]) || value;
1009
- }
1010
- __classPrivateFieldGet(this, _cache$1)[key] = {
1011
- result: result
1012
- };
1013
- }
1014
- _m.label = 4;
1015
- case 4: return [2 /*return*/, __classPrivateFieldGet(this, _cache$1)[key].result];
1016
- }
1017
- });
1018
- }); };
1019
- }
1020
- return SdColumnValuesPipe;
1021
- }());
1022
- _prefix = new WeakMap(), _cache$1 = new WeakMap();
1023
- SdColumnValuesPipe.decorators = [
1024
- { type: core.Pipe, args: [{
1025
- name: 'columnValues'
1026
- },] }
1027
- ];
1028
-
1029
- var _filterConfiguration, _filterValue, _cache$2, _defaultConfiguration, _defaultValue, _initConfiguration, _initValue;
775
+ var _filterConfiguration, _filterValue, _cache, _defaultConfiguration, _defaultValue, _initConfiguration, _initValue;
1030
776
  var SdTableFilterService = /** @class */ (function () {
1031
777
  function SdTableFilterService(settingService) {
1032
778
  var _this = this;
1033
779
  this.settingService = settingService;
1034
780
  _filterConfiguration.set(this, 'GRID-FILTER-CONFIGURATION');
1035
781
  _filterValue.set(this, 'GRID-FILTER-VALUE');
1036
- _cache$2.set(this, {});
782
+ _cache.set(this, {});
1037
783
  this.register = function (filter, args) {
1038
784
  var cacheSession = false;
1039
785
  var id = args.id, columns = args.columns, externalFilters = args.externalFilters;
@@ -1046,7 +792,7 @@
1046
792
  if (!(filter === null || filter === void 0 ? void 0 : filter.key)) {
1047
793
  cacheSession = true; // Nếu không có key thì chỉ lưu theo session
1048
794
  }
1049
- if (!__classPrivateFieldGet(_this, _cache$2)[key]) {
795
+ if (!__classPrivateFieldGet(_this, _cache)[key]) {
1050
796
  // Setting của filter configuration
1051
797
  var filterConfiguration_1 = _this.settingService.create({
1052
798
  prefix: __classPrivateFieldGet(_this, _filterConfiguration),
@@ -1067,7 +813,7 @@
1067
813
  });
1068
814
  // Lấy giá trị value merge với giá trị default của args nếu như args có thay đổi
1069
815
  filterValue_1.set(__classPrivateFieldGet(_this, _initValue).call(_this, args, filterValue_1.get()));
1070
- __classPrivateFieldGet(_this, _cache$2)[key] = {
816
+ __classPrivateFieldGet(_this, _cache)[key] = {
1071
817
  configuration: {
1072
818
  get: function () {
1073
819
  return filterConfiguration_1.get();
@@ -1123,7 +869,7 @@
1123
869
  },
1124
870
  };
1125
871
  }
1126
- return __classPrivateFieldGet(_this, _cache$2)[key];
872
+ return __classPrivateFieldGet(_this, _cache)[key];
1127
873
  };
1128
874
  _defaultConfiguration.set(this, function (args) {
1129
875
  var e_1, _r, e_2, _s, e_3, _t;
@@ -1368,7 +1114,7 @@
1368
1114
  }
1369
1115
  return SdTableFilterService;
1370
1116
  }());
1371
- _filterConfiguration = new WeakMap(), _filterValue = new WeakMap(), _cache$2 = new WeakMap(), _defaultConfiguration = new WeakMap(), _defaultValue = new WeakMap(), _initConfiguration = new WeakMap(), _initValue = new WeakMap();
1117
+ _filterConfiguration = new WeakMap(), _filterValue = new WeakMap(), _cache = new WeakMap(), _defaultConfiguration = new WeakMap(), _defaultValue = new WeakMap(), _initConfiguration = new WeakMap(), _initValue = new WeakMap();
1372
1118
  SdTableFilterService.decorators = [
1373
1119
  { type: core.Injectable }
1374
1120
  ];
@@ -1376,16 +1122,88 @@
1376
1122
  { type: setting.SdSettingService }
1377
1123
  ]; };
1378
1124
 
1379
- var _gridId, _optionChanges, _localItems, _paginator, _sort, _subscription$1, _reload, _loadCompleted, _initCellDef, _initFilterDef, _initFooterDef, _filterExportInfo, _initConfiguration$1, _loadFilterRegister, _filterLocal, _getFilter, _load$1, _render, _exportedItems, _allColumns, _allExportedColumns, _onExport, _getExportColumns, _updateSelectedItems;
1125
+ var _setting;
1126
+ var SdPopupConfiguration = /** @class */ (function () {
1127
+ function SdPopupConfiguration(ref, notifyService, gridConfigurationService) {
1128
+ var _this = this;
1129
+ this.ref = ref;
1130
+ this.notifyService = notifyService;
1131
+ this.gridConfigurationService = gridConfigurationService;
1132
+ this.changes = new core.EventEmitter();
1133
+ _setting.set(this, void 0);
1134
+ this.isCreatingColumn = false;
1135
+ this.selected = {};
1136
+ this.disabledDrag = true;
1137
+ this.open = function () { return __awaiter(_this, void 0, void 0, function () {
1138
+ return __generator(this, function (_a) {
1139
+ __classPrivateFieldSet(this, _setting, this.gridConfigurationService.init(this.gridOption));
1140
+ this.configuration = __classPrivateFieldGet(this, _setting).get();
1141
+ this.modal.open();
1142
+ return [2 /*return*/];
1143
+ });
1144
+ }); };
1145
+ this.onSave = function () {
1146
+ __classPrivateFieldGet(_this, _setting).set(_this.configuration);
1147
+ _this.modal.close();
1148
+ _this.ref.detectChanges();
1149
+ };
1150
+ this.onReset = function () { return __awaiter(_this, void 0, void 0, function () {
1151
+ var _this = this;
1152
+ return __generator(this, function (_a) {
1153
+ this.notifyService.confirm('Xác nhận đưa tất cả thiết lập về mặc định').then(function () {
1154
+ __classPrivateFieldGet(_this, _setting).remove();
1155
+ _this.modal.close();
1156
+ _this.ref.detectChanges();
1157
+ });
1158
+ return [2 /*return*/];
1159
+ });
1160
+ }); };
1161
+ }
1162
+ SdPopupConfiguration.prototype.ngOnInit = function () { };
1163
+ SdPopupConfiguration.prototype.mouseUp = function (event) {
1164
+ this.disabledDrag = true;
1165
+ };
1166
+ SdPopupConfiguration.prototype.dropTable = function (event) {
1167
+ dragDrop.moveItemInArray(this.configuration.columns, event.previousIndex, event.currentIndex);
1168
+ this.table.renderRows();
1169
+ };
1170
+ SdPopupConfiguration.prototype.handleMouseDown = function () {
1171
+ this.disabledDrag = false;
1172
+ };
1173
+ SdPopupConfiguration.prototype.handleMouseUp = function () {
1174
+ this.disabledDrag = true;
1175
+ };
1176
+ return SdPopupConfiguration;
1177
+ }());
1178
+ _setting = new WeakMap();
1179
+ SdPopupConfiguration.decorators = [
1180
+ { type: core.Component, args: [{
1181
+ selector: 'sd-popup-configuration',
1182
+ template: "<sd-modal width=\"sm\" [title]=\"'Configuration' | sdTranslate\" #modal>\r\n <sd-modal-body *ngIf=\"configuration\">\r\n <div class=\"c-container\">\r\n <div class=\"c-table\" style=\"max-height: 70vh\">\r\n <table\r\n #table\r\n mat-table\r\n [dataSource]=\"configuration.columns\"\r\n cdkDropList\r\n [cdkDropListData]=\"configuration.columns\"\r\n (cdkDropListDropped)=\"dropTable($event)\">\r\n >\r\n <ng-container matColumnDef=\"stt\">\r\n <th mat-header-cell class=\"c-th text-center px-5\" *matHeaderCellDef style=\"width: 50px\">#</th>\r\n <td class=\"text-center px-5\" mat-cell *matCellDef=\"let item; let idx = index\">\r\n <div class=\"c-handle\" (mousedown)=\"handleMouseDown()\" (mouseup)=\"handleMouseUp()\">\r\n <svg width=\"24px\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\"></path>\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n </svg>\r\n </div>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"title\">\r\n <th mat-header-cell class=\"c-th px-5\" *matHeaderCellDef>{{ 'Title' | sdTranslate }}</th>\r\n <td class=\"px-5\" mat-cell *matCellDef=\"let item\">\r\n <sd-input [placeholder]=\"item?.origin?.title\" [(model)]=\"item.title\" disableErrorMessage></sd-input>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"width\">\r\n <th mat-header-cell class=\"c-th px-5\" *matHeaderCellDef style=\"width: 80px\">{{ 'Width' | sdTranslate }}</th>\r\n <td class=\"px-5\" mat-cell *matCellDef=\"let item\">\r\n <!-- <span>{{item.width}}</span>\r\n <mat-slider\r\n step=\"1\"\r\n min=\"0\"\r\n [max]=\"+item?.origin?.width*3\"\r\n [(ngModel)]=\"+item.width\"\r\n aria-label=\"units\">\r\n </mat-slider> -->\r\n <sd-input [placeholder]=\"item?.origin?.width\" [(model)]=\"item.width\" disableErrorMessage></sd-input>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"invisible\">\r\n <th mat-header-cell class=\"c-th text-center px-5\" *matHeaderCellDef style=\"width: 80px\">{{ 'Hidden' | sdTranslate }}</th>\r\n <td class=\"text-center px-5\" mat-cell *matCellDef=\"let item\">\r\n <mat-slide-toggle [(ngModel)]=\"item.invisible\" color=\"primary\"> </mat-slide-toggle>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"fixed\">\r\n <th mat-header-cell class=\"c-th text-center px-5\" *matHeaderCellDef style=\"width: 80px\">{{ 'Freeze' | sdTranslate }}</th>\r\n <td class=\"text-center px-5\" mat-cell *matCellDef=\"let item\">\r\n <mat-slide-toggle [(ngModel)]=\"item.fixed\" color=\"primary\"></mat-slide-toggle>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"['stt', 'title', 'width', 'invisible', 'fixed']; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: ['stt', 'title', 'width', 'invisible', 'fixed']\"\r\n cdkDrag\r\n [cdkDragData]=\"row\"\r\n cdkDragLockAxis=\"y\"\r\n [cdkDragDisabled]=\"disabledDrag\"></tr>\r\n </table>\r\n </div>\r\n </div>\r\n </sd-modal-body>\r\n <sd-modal-footer>\r\n <sd-button class=\"mr-8s\" (action)=\"onReset()\" title=\"M\u1EB7c \u0111\u1ECBnh\" color=\"info\" size=\"sm\"> </sd-button>\r\n <sd-button (action)=\"onSave()\" title=\"L\u01B0u\" type=\"fill\" color=\"info\" size=\"sm\"> </sd-button>\r\n </sd-modal-footer>\r\n</sd-modal>\r\n",
1183
+ styles: [".c-table{overflow:auto;position:relative}.c-table table{width:100%}.c-table .c-th{color:#000;font-size:14px;font-weight:500;line-height:20px}.c-container{min-height:200px;position:relative}.c-handle{color:#ccc;cursor:move}"]
1184
+ },] }
1185
+ ];
1186
+ SdPopupConfiguration.ctorParameters = function () { return [
1187
+ { type: core.ChangeDetectorRef },
1188
+ { type: notify.SdNotifyService },
1189
+ { type: SdTableConfigurationService }
1190
+ ]; };
1191
+ SdPopupConfiguration.propDecorators = {
1192
+ gridOption: [{ type: core.Input }],
1193
+ modal: [{ type: core.ViewChild, args: ['modal',] }],
1194
+ table: [{ type: core.ViewChild, args: ['table',] }],
1195
+ mouseUp: [{ type: core.HostListener, args: ['window:mouseup', ['$event'],] }]
1196
+ };
1197
+
1198
+ var _gridId, _optionChanges, _localItems, _paginator, _sort, _subscription$1, _reload, _loadCompleted, _cacheObjValues, _initCellDef, _initFilterDef, _initFooterDef, _filterExportInfo, _initConfiguration$1, _loadFilterRegister, _filterLocal, _getFilter, _load, _render, _exportedItems, _allColumns, _allExportedColumns, _onExport, _getExportColumns, _updateSelectedItems, _loadValues, _format;
1380
1199
  var SdTable = /** @class */ (function () {
1381
- function SdTable(ref, configuration, gridConfigurationService, exportService, notifyService, columnValuesPipe, gridFilterService) {
1200
+ function SdTable(ref, tableConfiguration, gridConfigurationService, exportService, notifyService, gridFilterService) {
1382
1201
  var _this = this;
1383
1202
  this.ref = ref;
1384
- this.configuration = configuration;
1203
+ this.tableConfiguration = tableConfiguration;
1385
1204
  this.gridConfigurationService = gridConfigurationService;
1386
1205
  this.exportService = exportService;
1387
1206
  this.notifyService = notifyService;
1388
- this.columnValuesPipe = columnValuesPipe;
1389
1207
  this.gridFilterService = gridFilterService;
1390
1208
  _gridId.set(this, uuid.v4());
1391
1209
  this.key = uuid.v4();
@@ -1420,6 +1238,8 @@
1420
1238
  this.isSelectAll = false;
1421
1239
  this.exportTitle = 'Export';
1422
1240
  _loadCompleted.set(this, false);
1241
+ this.cacheValues = {};
1242
+ _cacheObjValues.set(this, {});
1423
1243
  _initCellDef.set(this, function () {
1424
1244
  var e_1, _8;
1425
1245
  _this.cellDef = {};
@@ -1498,8 +1318,8 @@
1498
1318
  // Init pagination
1499
1319
  option.paginate = {
1500
1320
  hidden: (_a = option === null || option === void 0 ? void 0 : option.paginate) === null || _a === void 0 ? void 0 : _a.hidden,
1501
- pageSize: (_f = (_c = (_b = option === null || option === void 0 ? void 0 : option.paginate) === null || _b === void 0 ? void 0 : _b.pageSize) !== null && _c !== void 0 ? _c : (_e = (_d = _this.configuration) === null || _d === void 0 ? void 0 : _d.paginate) === null || _e === void 0 ? void 0 : _e.pageSize) !== null && _f !== void 0 ? _f : (_g = DEFAULT_TABLE_CONFIG.paginate) === null || _g === void 0 ? void 0 : _g.pageSize,
1502
- pages: (_m = (_j = (_h = option === null || option === void 0 ? void 0 : option.paginate) === null || _h === void 0 ? void 0 : _h.pages) !== null && _j !== void 0 ? _j : (_l = (_k = _this.configuration) === null || _k === void 0 ? void 0 : _k.paginate) === null || _l === void 0 ? void 0 : _l.pages) !== null && _m !== void 0 ? _m : (_o = DEFAULT_TABLE_CONFIG.paginate) === null || _o === void 0 ? void 0 : _o.pages,
1321
+ pageSize: (_f = (_c = (_b = option === null || option === void 0 ? void 0 : option.paginate) === null || _b === void 0 ? void 0 : _b.pageSize) !== null && _c !== void 0 ? _c : (_e = (_d = _this.tableConfiguration) === null || _d === void 0 ? void 0 : _d.paginate) === null || _e === void 0 ? void 0 : _e.pageSize) !== null && _f !== void 0 ? _f : (_g = DEFAULT_TABLE_CONFIG.paginate) === null || _g === void 0 ? void 0 : _g.pageSize,
1322
+ pages: (_m = (_j = (_h = option === null || option === void 0 ? void 0 : option.paginate) === null || _h === void 0 ? void 0 : _h.pages) !== null && _j !== void 0 ? _j : (_l = (_k = _this.tableConfiguration) === null || _k === void 0 ? void 0 : _k.paginate) === null || _l === void 0 ? void 0 : _l.pages) !== null && _m !== void 0 ? _m : (_o = DEFAULT_TABLE_CONFIG.paginate) === null || _o === void 0 ? void 0 : _o.pages,
1503
1323
  showFirstLastButtons: (_q = (_p = option === null || option === void 0 ? void 0 : option.paginate) === null || _p === void 0 ? void 0 : _p.showFirstLastButtons) !== null && _q !== void 0 ? _q : false,
1504
1324
  };
1505
1325
  try {
@@ -1507,16 +1327,16 @@
1507
1327
  var column = _10.value;
1508
1328
  if (((_s = (_r = column.filter) === null || _r === void 0 ? void 0 : _r.operator) === null || _s === void 0 ? void 0 : _s.enable) && !((_v = (_u = (_t = column.filter) === null || _t === void 0 ? void 0 : _t.operator) === null || _u === void 0 ? void 0 : _u.list) === null || _v === void 0 ? void 0 : _v.length)) {
1509
1329
  if (column.type === 'string') {
1510
- column.filter.operator.list = ((_y = (_x = (_w = _this.configuration) === null || _w === void 0 ? void 0 : _w.filter) === null || _x === void 0 ? void 0 : _x.operator) === null || _y === void 0 ? void 0 : _y.defaultListString) || [];
1330
+ column.filter.operator.list = ((_y = (_x = (_w = _this.tableConfiguration) === null || _w === void 0 ? void 0 : _w.filter) === null || _x === void 0 ? void 0 : _x.operator) === null || _y === void 0 ? void 0 : _y.defaultListString) || [];
1511
1331
  }
1512
1332
  if (column.type === 'number') {
1513
- column.filter.operator.list = ((_1 = (_0 = (_z = _this.configuration) === null || _z === void 0 ? void 0 : _z.filter) === null || _0 === void 0 ? void 0 : _0.operator) === null || _1 === void 0 ? void 0 : _1.defaultListNumber) || [];
1333
+ column.filter.operator.list = ((_1 = (_0 = (_z = _this.tableConfiguration) === null || _z === void 0 ? void 0 : _z.filter) === null || _0 === void 0 ? void 0 : _0.operator) === null || _1 === void 0 ? void 0 : _1.defaultListNumber) || [];
1514
1334
  }
1515
- if (column.type === 'values') {
1516
- column.filter.operator.list = ((_4 = (_3 = (_2 = _this.configuration) === null || _2 === void 0 ? void 0 : _2.filter) === null || _3 === void 0 ? void 0 : _3.operator) === null || _4 === void 0 ? void 0 : _4.defaultListValues) || [];
1335
+ if (column.type === 'values' || column.type === 'lazy-values') {
1336
+ column.filter.operator.list = ((_4 = (_3 = (_2 = _this.tableConfiguration) === null || _2 === void 0 ? void 0 : _2.filter) === null || _3 === void 0 ? void 0 : _3.operator) === null || _4 === void 0 ? void 0 : _4.defaultListValues) || [];
1517
1337
  }
1518
1338
  if (column.type === 'date' || column.type === 'datetime') {
1519
- column.filter.operator.list = ((_7 = (_6 = (_5 = _this.configuration) === null || _5 === void 0 ? void 0 : _5.filter) === null || _6 === void 0 ? void 0 : _6.operator) === null || _7 === void 0 ? void 0 : _7.defaultListDate) || [];
1339
+ column.filter.operator.list = ((_7 = (_6 = (_5 = _this.tableConfiguration) === null || _5 === void 0 ? void 0 : _5.filter) === null || _6 === void 0 ? void 0 : _6.operator) === null || _7 === void 0 ? void 0 : _7.defaultListDate) || [];
1520
1340
  }
1521
1341
  }
1522
1342
  }
@@ -1563,7 +1383,7 @@
1563
1383
  var items = localItems.filter(function (tableItem) {
1564
1384
  var e_5, _8;
1565
1385
  var _a, _b, _c, _d;
1566
- var item = tableItem.current;
1386
+ var item = tableItem.data;
1567
1387
  try {
1568
1388
  for (var columns_1 = __values(columns), columns_1_1 = columns_1.next(); !columns_1_1.done; columns_1_1 = columns_1.next()) {
1569
1389
  var column = columns_1_1.value;
@@ -1579,7 +1399,7 @@
1579
1399
  return false;
1580
1400
  }
1581
1401
  }
1582
- else if (type === 'values') {
1402
+ else if (type === 'values' || type === 'lazy-values') {
1583
1403
  if (columnValue !== filterValue) {
1584
1404
  return false;
1585
1405
  }
@@ -1654,17 +1474,17 @@
1654
1474
  if (column) {
1655
1475
  var type_1 = column.type, field_1 = column.field;
1656
1476
  items.sort(function (tableItemCurrent, tableItemNext) {
1657
- var current = tableItemCurrent.current;
1658
- var next = tableItemNext.current;
1477
+ var data = tableItemCurrent.data;
1478
+ var next = tableItemNext.data;
1659
1479
  if (type_1 === 'number') {
1660
- return (current[field_1] || 0) - (next[field_1] || 0);
1480
+ return (data[field_1] || 0) - (next[field_1] || 0);
1661
1481
  }
1662
1482
  if (type_1 === 'date' || type_1 === 'datetime' || type_1 === 'time') {
1663
- var d1 = new Date(current[field_1] || '').getTime();
1664
- var d2 = new Date(current[field_1] || '').getTime();
1483
+ var d1 = new Date(data[field_1] || '').getTime();
1484
+ var d2 = new Date(data[field_1] || '').getTime();
1665
1485
  return d1 - d2;
1666
1486
  }
1667
- var s1 = (current[field_1] || '').toString();
1487
+ var s1 = (data[field_1] || '').toString();
1668
1488
  var s2 = (next[field_1] || '').toString();
1669
1489
  if (s1 > s2) {
1670
1490
  return 1;
@@ -1700,16 +1520,16 @@
1700
1520
  pageSize: ((_d = __classPrivateFieldGet(_this, _paginator)) === null || _d === void 0 ? void 0 : _d.pageSize) || ((_f = (_e = _this.gridOption) === null || _e === void 0 ? void 0 : _e.paginate) === null || _f === void 0 ? void 0 : _f.pageSize) || 50,
1701
1521
  };
1702
1522
  });
1703
- _load$1.set(this, function (filterReq, force) {
1523
+ _load.set(this, function (filterReq, force) {
1704
1524
  if (force === void 0) { force = true; }
1705
1525
  return __awaiter(_this, void 0, void 0, function () {
1706
- var items, data, items, results, data;
1526
+ var items, data, _8, items, results, data, _9, _10;
1707
1527
  var _this = this;
1708
- return __generator(this, function (_8) {
1709
- switch (_8.label) {
1528
+ return __generator(this, function (_11) {
1529
+ switch (_11.label) {
1710
1530
  case 0:
1711
1531
  this.isLoading = true;
1712
- if (!(this.gridOption.type === 'server')) return [3 /*break*/, 2];
1532
+ if (!(this.gridOption.type === 'server')) return [3 /*break*/, 3];
1713
1533
  items = this.gridOption.items;
1714
1534
  return [4 /*yield*/, items(filterReq).catch(function (err) {
1715
1535
  _this.notifyService.notify.warning('Có lỗi xảy ra');
@@ -1720,38 +1540,44 @@
1720
1540
  };
1721
1541
  })];
1722
1542
  case 1:
1723
- data = _8.sent();
1543
+ data = _11.sent();
1724
1544
  this.isLoading = false;
1725
- return [2 /*return*/, {
1726
- items: (data === null || data === void 0 ? void 0 : data.items.map(MapToSdTableItem)) || [],
1727
- total: (data === null || data === void 0 ? void 0 : data.total) || 0,
1728
- }];
1729
- case 2:
1730
- if (!force) return [3 /*break*/, 6];
1545
+ _8 = {};
1546
+ return [4 /*yield*/, __classPrivateFieldGet(this, _format).call(this, data === null || data === void 0 ? void 0 : data.items, this.gridOption.columns)];
1547
+ case 2: return [2 /*return*/, (_8.items = _11.sent(),
1548
+ _8.total = (data === null || data === void 0 ? void 0 : data.total) || 0,
1549
+ _8)];
1550
+ case 3:
1551
+ if (!force) return [3 /*break*/, 8];
1731
1552
  items = this.gridOption.items;
1732
1553
  results = items();
1733
1554
  data = [];
1734
- if (!(results instanceof Promise)) return [3 /*break*/, 4];
1555
+ if (!(results instanceof Promise)) return [3 /*break*/, 5];
1735
1556
  return [4 /*yield*/, results.catch(function (err) {
1736
1557
  _this.notifyService.notify.warning('Có lỗi xảy ra');
1737
1558
  console.error(err);
1738
1559
  return [];
1739
1560
  })];
1740
- case 3:
1741
- data = _8.sent();
1742
- return [3 /*break*/, 5];
1743
1561
  case 4:
1744
- data = results;
1745
- _8.label = 5;
1562
+ data = _11.sent();
1563
+ return [3 /*break*/, 6];
1746
1564
  case 5:
1565
+ data = results;
1566
+ _11.label = 6;
1567
+ case 6:
1747
1568
  if (!Array.isArray(data)) {
1748
1569
  this.notifyService.notify.warning('Dữ liệu không phải là một mảng');
1749
1570
  data = [];
1750
1571
  }
1751
- __classPrivateFieldSet(this, _localItems, data.map(MapToSdTableItem));
1572
+ _9 = __classPrivateFieldSet;
1573
+ _10 = [this, _localItems];
1574
+ return [4 /*yield*/, __classPrivateFieldGet(this, _format).call(this, data, this.gridOption.columns)];
1575
+ case 7:
1576
+ _9.apply(void 0, _10.concat([_11.sent()]));
1577
+ _11.label = 8;
1578
+ case 8:
1752
1579
  this.isLoading = false;
1753
- _8.label = 6;
1754
- case 6: return [2 /*return*/, __classPrivateFieldGet(this, _filterLocal).call(this, __classPrivateFieldGet(this, _localItems), filterReq)];
1580
+ return [2 /*return*/, __classPrivateFieldGet(this, _filterLocal).call(this, __classPrivateFieldGet(this, _localItems), filterReq)];
1755
1581
  }
1756
1582
  });
1757
1583
  });
@@ -1780,8 +1606,8 @@
1780
1606
  return __generator(this, function (_8) {
1781
1607
  switch (_8.label) {
1782
1608
  case 0:
1783
- (_f = (_e = this.gridFilter) === null || _e === void 0 ? void 0 : _e.updateFilter) === null || _f === void 0 ? void 0 : _f.call(_e);
1784
- return [4 /*yield*/, __classPrivateFieldGet(this, _load$1).call(this, __classPrivateFieldGet(this, _getFilter).call(this), force)];
1609
+ (_f = (_e = this.tableFilter) === null || _e === void 0 ? void 0 : _e.updateFilter) === null || _f === void 0 ? void 0 : _f.call(_e);
1610
+ return [4 /*yield*/, __classPrivateFieldGet(this, _load).call(this, __classPrivateFieldGet(this, _getFilter).call(this), force)];
1785
1611
  case 1:
1786
1612
  data = _8.sent();
1787
1613
  __classPrivateFieldGet(this, _render).call(this, data);
@@ -1929,9 +1755,9 @@
1929
1755
  case 0:
1930
1756
  obj = {};
1931
1757
  handle = function (exportColumn) { return __awaiter(_this, void 0, void 0, function () {
1932
- var _v, _w, _x, column, exportedColumn, transform, _8, _9, date, transformDate, date, transformDate, date, transformDate, _10, _11;
1933
- return __generator(this, function (_12) {
1934
- switch (_12.label) {
1758
+ var _v, _w, _x, _y, column, exportedColumn, transform, _8, _9, date, date, date;
1759
+ return __generator(this, function (_10) {
1760
+ switch (_10.label) {
1935
1761
  case 0:
1936
1762
  obj[exportColumn.field] = item[exportColumn.field];
1937
1763
  column = allColumns.find(function (e) { return e.field === exportColumn.field; });
@@ -1959,77 +1785,55 @@
1959
1785
  _9 = column.field;
1960
1786
  return [4 /*yield*/, transform];
1961
1787
  case 1:
1962
- _8[_9] = _12.sent();
1788
+ _8[_9] = _10.sent();
1963
1789
  return [3 /*break*/, 3];
1964
1790
  case 2:
1965
1791
  obj[column.field] = transform;
1966
- _12.label = 3;
1792
+ _10.label = 3;
1967
1793
  case 3:
1968
1794
  obj[column.field] = (_v = obj[column.field]) !== null && _v !== void 0 ? _v : '';
1969
- return [3 /*break*/, 13];
1795
+ return [3 /*break*/, 5];
1970
1796
  case 4:
1971
- if (!(item[column.field] === undefined || item[column.field] === null || item[column.field] === '')) return [3 /*break*/, 5];
1972
- obj[column.field] = '';
1973
- return [3 /*break*/, 13];
1974
- case 5:
1975
- if (!(column.type === 'string' || column.type === 'number')) return [3 /*break*/, 6];
1976
- // Nếu cell là string hoặc number thì gán bằng chính nó
1977
- obj[column.field] = item[column.field];
1978
- return [3 /*break*/, 13];
1979
- case 6:
1980
- if (!(column.type === 'bool')) return [3 /*break*/, 7];
1981
- // Nếu là bool thì gán bằng giá trị trueValue và falseValue (nếu có), mặc định là TRUE/FALSE
1982
- if (item[column.field]) {
1983
- obj[column.field] = ((_w = column.option) === null || _w === void 0 ? void 0 : _w.displayOnTrue) || 'True';
1797
+ if (item[column.field] === undefined || item[column.field] === null || item[column.field] === '') {
1798
+ obj[column.field] = '';
1799
+ }
1800
+ else if (column.type === 'string' || column.type === 'number') {
1801
+ // Nếu cell string hoặc number thì gán bằng chính
1802
+ obj[column.field] = item[column.field];
1984
1803
  }
1985
- else if (obj[column.field] !== undefined && obj[column.field] !== null) {
1986
- obj[column.field] = ((_x = column.option) === null || _x === void 0 ? void 0 : _x.displayOnFalse) || 'False';
1804
+ else if (column.type === 'bool') {
1805
+ // Nếu bool thì gán bằng giá trị trueValue falseValue (nếu có), mặc định TRUE/FALSE
1806
+ if (item[column.field]) {
1807
+ obj[column.field] = ((_w = column.option) === null || _w === void 0 ? void 0 : _w.displayOnTrue) || 'True';
1808
+ }
1809
+ else if (obj[column.field] !== undefined && obj[column.field] !== null) {
1810
+ obj[column.field] = ((_x = column.option) === null || _x === void 0 ? void 0 : _x.displayOnFalse) || 'False';
1811
+ }
1987
1812
  }
1988
- return [3 /*break*/, 13];
1989
- case 7:
1990
- if (!(column.type === 'date')) return [3 /*break*/, 8];
1991
- date = item[column.field];
1992
- transformDate = column.transformDate;
1993
- if (transformDate) {
1994
- date = transformDate(date, item);
1813
+ else if (column.type === 'date') {
1814
+ date = item[column.field];
1815
+ // Nếu date thì convert theo đúng format
1816
+ obj[column.field] = Date.toFormat(date, 'dd/MM/yyyy');
1995
1817
  }
1996
- // Nếu date thì convert theo đúng format
1997
- obj[column.field] = Date.toFormat(date, 'dd/MM/yyyy');
1998
- return [3 /*break*/, 13];
1999
- case 8:
2000
- if (!(column.type === 'datetime')) return [3 /*break*/, 9];
2001
- date = item[column.field];
2002
- transformDate = column.transformDate;
2003
- if (transformDate) {
2004
- date = transformDate(date, item);
1818
+ else if (column.type === 'datetime') {
1819
+ date = item[column.field];
1820
+ // Nếu datetime thì convert theo đúng format
1821
+ obj[column.field] = Date.toFormat(date, 'dd/MM/yyyy HH:mm');
2005
1822
  }
2006
- // Nếu datetime thì convert theo đúng format
2007
- obj[column.field] = Date.toFormat(date, 'dd/MM/yyyy HH:mm');
2008
- return [3 /*break*/, 13];
2009
- case 9:
2010
- if (!(column.type === 'time')) return [3 /*break*/, 10];
2011
- date = item[column.field];
2012
- transformDate = column.transformDate;
2013
- if (transformDate) {
2014
- date = transformDate(date, item);
1823
+ else if (column.type === 'time') {
1824
+ date = item[column.field];
1825
+ // Nếu time thì convert theo đúng format
1826
+ obj[column.field] = Date.toFormat(date, 'HH:mm');
2015
1827
  }
2016
- // Nếu time thì convert theo đúng format
2017
- obj[column.field] = Date.toFormat(date, 'HH:mm');
2018
- return [3 /*break*/, 13];
2019
- case 10:
2020
- if (!(column.type === 'values')) return [3 /*break*/, 12];
2021
- // Nếu là values thì lấy giá trị của value được chọn
2022
- _10 = obj;
2023
- _11 = column.field;
2024
- return [4 /*yield*/, this.columnValuesPipe.transform(item[column.field], column)];
2025
- case 11:
2026
- // Nếu là values thì lấy giá trị của value được chọn
2027
- _10[_11] = _12.sent();
2028
- return [3 /*break*/, 13];
2029
- case 12:
2030
- obj[column.field] = item[column.field];
2031
- _12.label = 13;
2032
- case 13: return [2 /*return*/];
1828
+ else if (column.type === 'values') {
1829
+ // Nếu values thì lấy giá trị của value được chọn
1830
+ obj[column.field] = ((_y = __classPrivateFieldGet(this, _cacheObjValues)[column.field]) === null || _y === void 0 ? void 0 : _y[item[column.field]]) || item[column.field];
1831
+ }
1832
+ else {
1833
+ obj[column.field] = item[column.field];
1834
+ }
1835
+ _10.label = 5;
1836
+ case 5: return [2 /*return*/];
2033
1837
  }
2034
1838
  });
2035
1839
  }); };
@@ -2197,22 +2001,17 @@
2197
2001
  __classPrivateFieldGet(_this, _onExport).call(_this, true);
2198
2002
  };
2199
2003
  this.onFilterChange = function () {
2200
- var _a, _b, _c, _d;
2201
- (_b = (_a = _this.gridFilter) === null || _a === void 0 ? void 0 : _a.updateFilter) === null || _b === void 0 ? void 0 : _b.call(_a);
2202
- if ((_d = (_c = _this.gridOption) === null || _c === void 0 ? void 0 : _c.filter) === null || _d === void 0 ? void 0 : _d.inlineColumn) {
2203
- _this.filterRegister.value.set({
2204
- columnOperator: _this.columnOperator || {},
2205
- columnFilter: _this.columnFilter,
2206
- });
2207
- }
2208
- else {
2209
- _this.filterRegister.value.set({});
2210
- }
2004
+ var _a, _b;
2005
+ (_b = (_a = _this.tableFilter) === null || _a === void 0 ? void 0 : _a.updateFilter) === null || _b === void 0 ? void 0 : _b.call(_a);
2006
+ _this.filterRegister.value.set({
2007
+ columnOperator: _this.columnOperator || {},
2008
+ columnFilter: _this.columnFilter,
2009
+ });
2211
2010
  };
2212
2011
  this.onExpand = function (rowData) { return __awaiter(_this, void 0, void 0, function () {
2213
- var _y, _z, _0, _1, _2, data;
2012
+ var _z, _0, _1, _2, _3, data;
2214
2013
  return __generator(this, function (_8) {
2215
- if ((_y = this.gridOption.expand) === null || _y === void 0 ? void 0 : _y.always) {
2014
+ if ((_z = this.gridOption.expand) === null || _z === void 0 ? void 0 : _z.always) {
2216
2015
  return [2 /*return*/];
2217
2016
  }
2218
2017
  if (rowData.meta.expand.isExpanding) {
@@ -2222,8 +2021,8 @@
2222
2021
  rowData.meta.expand.isExpanded = false;
2223
2022
  return [2 /*return*/];
2224
2023
  }
2225
- data = (_1 = (_0 = (_z = this.gridOption) === null || _z === void 0 ? void 0 : _z.expand) === null || _0 === void 0 ? void 0 : _0.onExpand) === null || _1 === void 0 ? void 0 : _1.call(_0, rowData.current);
2226
- if (!((_2 = this.gridOption.expand) === null || _2 === void 0 ? void 0 : _2.multiple)) {
2024
+ data = (_2 = (_1 = (_0 = this.gridOption) === null || _0 === void 0 ? void 0 : _0.expand) === null || _1 === void 0 ? void 0 : _1.onExpand) === null || _2 === void 0 ? void 0 : _2.call(_1, rowData.data);
2025
+ if (!((_3 = this.gridOption.expand) === null || _3 === void 0 ? void 0 : _3.multiple)) {
2227
2026
  this.items.forEach(function (item) { return (item.meta.expand.isExpanding = item.meta.expand.isExpanded = false); });
2228
2027
  }
2229
2028
  if (data instanceof Promise) {
@@ -2246,7 +2045,7 @@
2246
2045
  var _a, _b, _c, _d, _e, _f, _g;
2247
2046
  if ((_b = (_a = rowData.meta.group) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.length) {
2248
2047
  rowData.meta.group.items.forEach(function (e) { return (e.meta.selector.isSelected = rowData.meta.selector.isSelected); });
2249
- (_d = (_c = _this.gridOption.selector) === null || _c === void 0 ? void 0 : _c.onSelect) === null || _d === void 0 ? void 0 : _d.call(_c, rowData.current, _this.items.filter(function (e) { return e.meta.selector.isSelected; }).map(function (e) { return e.current; }));
2048
+ (_d = (_c = _this.gridOption.selector) === null || _c === void 0 ? void 0 : _c.onSelect) === null || _d === void 0 ? void 0 : _d.call(_c, rowData.data, _this.items.filter(function (e) { return e.meta.selector.isSelected; }).map(function (e) { return e.data; }));
2250
2049
  _this.isSelectAll = _this.items.every(function (e) { return e.meta.selector.isSelected; });
2251
2050
  __classPrivateFieldGet(_this, _updateSelectedItems).call(_this);
2252
2051
  }
@@ -2256,7 +2055,7 @@
2256
2055
  __classPrivateFieldGet(_this, _updateSelectedItems).call(_this);
2257
2056
  return;
2258
2057
  }
2259
- (_g = (_f = _this.gridOption.selector) === null || _f === void 0 ? void 0 : _f.onSelect) === null || _g === void 0 ? void 0 : _g.call(_f, rowData.current, _this.items.filter(function (e) { return e.meta.selector.isSelected; }).map(function (e) { return e.current; }));
2058
+ (_g = (_f = _this.gridOption.selector) === null || _f === void 0 ? void 0 : _f.onSelect) === null || _g === void 0 ? void 0 : _g.call(_f, rowData.data, _this.items.filter(function (e) { return e.meta.selector.isSelected; }).map(function (e) { return e.data; }));
2260
2059
  _this.isSelectAll = _this.items.every(function (e) { return e.meta.selector.isSelected; });
2261
2060
  __classPrivateFieldGet(_this, _updateSelectedItems).call(_this);
2262
2061
  }
@@ -2269,7 +2068,7 @@
2269
2068
  e.meta.selector.isSelected = _this.isSelectAll;
2270
2069
  }
2271
2070
  });
2272
- (_c = (_b = _this.gridOption.selector) === null || _b === void 0 ? void 0 : _b.onSelectAll) === null || _c === void 0 ? void 0 : _c.call(_b, _this.items.filter(function (e) { return e.meta.selector.isSelected; }).map(function (e) { return e.current; }));
2071
+ (_c = (_b = _this.gridOption.selector) === null || _b === void 0 ? void 0 : _b.onSelectAll) === null || _c === void 0 ? void 0 : _c.call(_b, _this.items.filter(function (e) { return e.meta.selector.isSelected; }).map(function (e) { return e.data; }));
2273
2072
  __classPrivateFieldGet(_this, _updateSelectedItems).call(_this);
2274
2073
  };
2275
2074
  this.onClearSelection = function (items) {
@@ -2279,16 +2078,15 @@
2279
2078
  __classPrivateFieldGet(_this, _updateSelectedItems).call(_this);
2280
2079
  };
2281
2080
  _updateSelectedItems.set(this, function () {
2282
- _this.selectedItems = _this.items.filter(function (item) { return item.meta.selector.isSelected; }).map(function (item) { return item.current; });
2081
+ _this.selectedItems = _this.items.filter(function (item) { return item.meta.selector.isSelected; }).map(function (item) { return item.data; });
2283
2082
  _this.ref.detectChanges();
2284
2083
  });
2285
2084
  this.clearFilter = function () {
2286
2085
  _this.filterRegister.value.remove();
2287
2086
  };
2288
2087
  this.setFilter = function (args) {
2289
- var _a, _b;
2290
2088
  var _8 = args || {}, columnFilter = _8.columnFilter, externalFilter = _8.externalFilter, filterDef = _8.filterDef;
2291
- if (((_b = (_a = _this.gridOption) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.inlineColumn) && columnFilter) {
2089
+ if (columnFilter) {
2292
2090
  _this.columnFilter = columnFilter;
2293
2091
  }
2294
2092
  _this.filterRegister.value.set({
@@ -2298,37 +2096,298 @@
2298
2096
  });
2299
2097
  };
2300
2098
  this.detectChanges = function () { return _this.ref.detectChanges(); };
2099
+ _loadValues.set(this, function (columns) { return __awaiter(_this, void 0, void 0, function () {
2100
+ var promises, _loop_2, this_1, columns_4, columns_4_1, column, results, _loop_3, this_2, results_3, results_3_1, result;
2101
+ var e_10, _8, e_11, _9;
2102
+ return __generator(this, function (_10) {
2103
+ switch (_10.label) {
2104
+ case 0:
2105
+ promises = [];
2106
+ _loop_2 = function (column) {
2107
+ if (column.type === 'values' && !this_1.cacheValues[column.field]) {
2108
+ if (typeof column.option.items === 'function') {
2109
+ promises.push(column.option
2110
+ .items()
2111
+ .then(function (data) { return ({
2112
+ key: column.field,
2113
+ valueField: column.option.valueField,
2114
+ displayField: column.option.displayField,
2115
+ data: Array.isArray(data) ? data : [],
2116
+ }); })
2117
+ .catch(function (err) {
2118
+ console.error(err);
2119
+ return {
2120
+ key: column.field,
2121
+ valueField: column.option.valueField,
2122
+ displayField: column.option.displayField,
2123
+ data: [],
2124
+ };
2125
+ }));
2126
+ }
2127
+ else {
2128
+ this_1.cacheValues[column.field] = column.option.items.map(function (e) {
2129
+ var _8;
2130
+ return (_8 = {},
2131
+ _8[column.option.valueField] = e === null || e === void 0 ? void 0 : e[column.option.valueField],
2132
+ _8[column.option.displayField] = e === null || e === void 0 ? void 0 : e[column.option.displayField],
2133
+ _8);
2134
+ });
2135
+ __classPrivateFieldGet(this_1, _cacheObjValues)[column.field] = Array.toObject(this_1.cacheValues[column.field], column.option.valueField);
2136
+ }
2137
+ }
2138
+ };
2139
+ this_1 = this;
2140
+ try {
2141
+ for (columns_4 = __values(columns), columns_4_1 = columns_4.next(); !columns_4_1.done; columns_4_1 = columns_4.next()) {
2142
+ column = columns_4_1.value;
2143
+ _loop_2(column);
2144
+ }
2145
+ }
2146
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
2147
+ finally {
2148
+ try {
2149
+ if (columns_4_1 && !columns_4_1.done && (_8 = columns_4.return)) _8.call(columns_4);
2150
+ }
2151
+ finally { if (e_10) throw e_10.error; }
2152
+ }
2153
+ if (!promises.length) return [3 /*break*/, 2];
2154
+ return [4 /*yield*/, Promise.all(promises)];
2155
+ case 1:
2156
+ results = _10.sent();
2157
+ _loop_3 = function (result) {
2158
+ this_2.cacheValues[result.key] = result.data.map(function (e) {
2159
+ var _8;
2160
+ return (_8 = {},
2161
+ _8[result.valueField] = e === null || e === void 0 ? void 0 : e[result.valueField],
2162
+ _8[result.displayField] = e === null || e === void 0 ? void 0 : e[result.displayField],
2163
+ _8);
2164
+ });
2165
+ __classPrivateFieldGet(this_2, _cacheObjValues)[result.key] = Array.toObject(this_2.cacheValues[result.key], result.valueField);
2166
+ };
2167
+ this_2 = this;
2168
+ try {
2169
+ for (results_3 = __values(results), results_3_1 = results_3.next(); !results_3_1.done; results_3_1 = results_3.next()) {
2170
+ result = results_3_1.value;
2171
+ _loop_3(result);
2172
+ }
2173
+ }
2174
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
2175
+ finally {
2176
+ try {
2177
+ if (results_3_1 && !results_3_1.done && (_9 = results_3.return)) _9.call(results_3);
2178
+ }
2179
+ finally { if (e_11) throw e_11.error; }
2180
+ }
2181
+ _10.label = 2;
2182
+ case 2: return [2 /*return*/];
2183
+ }
2184
+ });
2185
+ }); });
2186
+ _format.set(this, function (rawItems, columns) { return __awaiter(_this, void 0, void 0, function () {
2187
+ var _4, _5, items, _loop_4, this_3, columns_5, columns_5_1, column, e_12_1;
2188
+ var e_12, _8;
2189
+ return __generator(this, function (_9) {
2190
+ switch (_9.label) {
2191
+ case 0:
2192
+ items = rawItems.map(MapToSdTableItem);
2193
+ _loop_4 = function (column) {
2194
+ var field, cellStyle, click, tooltip, htmlTemplate, transform, objValues, values, views, _8, _9, _loop_5, items_2, items_2_1, item, e_13_1;
2195
+ var e_13, _10;
2196
+ return __generator(this, function (_11) {
2197
+ switch (_11.label) {
2198
+ case 0:
2199
+ field = column.field, cellStyle = column.cellStyle, click = column.click, tooltip = column.tooltip, htmlTemplate = column.htmlTemplate, transform = column.transform;
2200
+ objValues = {};
2201
+ if (column.type === 'values') {
2202
+ objValues = __classPrivateFieldGet(this_3, _cacheObjValues)[field] || {};
2203
+ }
2204
+ if (!(column.type === 'lazy-values')) return [3 /*break*/, 2];
2205
+ values = items.map(function (e) { var _a; return (_a = e.data) === null || _a === void 0 ? void 0 : _a[field]; }).filter(function (val) { return !!val || val === 0; }).union();
2206
+ views = column.option.views;
2207
+ if (!(views && values.length)) return [3 /*break*/, 2];
2208
+ _9 = (_8 = Array).toObject;
2209
+ return [4 /*yield*/, views(values).catch(function (err) {
2210
+ console.error(err);
2211
+ return [];
2212
+ })];
2213
+ case 1:
2214
+ objValues = _9.apply(_8, [_11.sent(), column.option.valueField]) || {};
2215
+ _11.label = 2;
2216
+ case 2:
2217
+ _loop_5 = function (item) {
2218
+ var rowData, value, display, newValue, _8, date, time, option;
2219
+ return __generator(this, function (_9) {
2220
+ switch (_9.label) {
2221
+ case 0:
2222
+ rowData = item.data;
2223
+ value = rowData === null || rowData === void 0 ? void 0 : rowData[field];
2224
+ item.meta.display[field] = {
2225
+ badge: undefined,
2226
+ cellStyle: column.type === 'number' && { 'text-align': 'right!important' },
2227
+ data: value,
2228
+ isHtml: false,
2229
+ tooltip: typeof tooltip === 'function' ? tooltip(value, rowData) : undefined,
2230
+ click: typeof click === 'function' ? function () { return click(value, rowData); } : undefined,
2231
+ };
2232
+ display = item.meta.display[field];
2233
+ if (!(typeof htmlTemplate === 'function')) return [3 /*break*/, 1];
2234
+ display.isHtml = true;
2235
+ display.data = htmlTemplate(value, rowData);
2236
+ return [3 /*break*/, 6];
2237
+ case 1:
2238
+ if (!(typeof transform === 'function')) return [3 /*break*/, 5];
2239
+ newValue = transform(value, rowData);
2240
+ if (!(newValue instanceof Promise)) return [3 /*break*/, 3];
2241
+ _8 = display;
2242
+ return [4 /*yield*/, newValue];
2243
+ case 2:
2244
+ _8.data = _9.sent();
2245
+ return [3 /*break*/, 4];
2246
+ case 3:
2247
+ display.data = newValue;
2248
+ _9.label = 4;
2249
+ case 4: return [3 /*break*/, 6];
2250
+ case 5:
2251
+ if (column.type === 'date' || column.type === 'datetime' || column.type === 'time') {
2252
+ date = Date.toFormat(value, 'dd/MM/yyyy');
2253
+ time = Date.toFormat(value, 'HH:mm:ss');
2254
+ if (time === null || time === void 0 ? void 0 : time.endsWith('00')) {
2255
+ time = Date.toFormat(value, 'HH:mm');
2256
+ }
2257
+ if (column.type === 'date' || column.type === 'datetime') {
2258
+ if (column.type === 'datetime') {
2259
+ display.isHtml = true;
2260
+ display.data = "<span class=\"d-block T14R text-black400\">" + time + "</span><span class=\"d-block T14R\">" + date + "</span>";
2261
+ }
2262
+ else {
2263
+ display.data = date;
2264
+ }
2265
+ }
2266
+ if (column.type === 'time') {
2267
+ display.data = time;
2268
+ }
2269
+ }
2270
+ if (column.type === 'values' || column.type === 'lazy-values') {
2271
+ display.data = ((_4 = objValues[value]) === null || _4 === void 0 ? void 0 : _4[column.option.displayField]) || value;
2272
+ }
2273
+ if (column.type === 'number' && Number.isNumber(value)) {
2274
+ display.data = Number.toVNCurrency(value);
2275
+ }
2276
+ if (column.type === 'bool') {
2277
+ option = column.option;
2278
+ if (value !== undefined && value !== null && value !== '') {
2279
+ display.data = value === true ? (option === null || option === void 0 ? void 0 : option.displayOnTrue) || 'True' : (option === null || option === void 0 ? void 0 : option.displayOnFalse) || 'False';
2280
+ }
2281
+ else {
2282
+ display.data = null;
2283
+ }
2284
+ }
2285
+ // Badge
2286
+ if ((column.type === 'string' || column.type === 'number' || column.type === 'values') && column.badge) {
2287
+ display.badge = {
2288
+ type: !(column === null || column === void 0 ? void 0 : column.badgeType) ? 'round' : column.badgeType,
2289
+ color: column.badge(value, rowData),
2290
+ icon: (_5 = column.badgeIcon) === null || _5 === void 0 ? void 0 : _5.call(column, value, rowData),
2291
+ };
2292
+ }
2293
+ else if (column.type === 'bool') {
2294
+ display.badge = {
2295
+ type: 'circle',
2296
+ color: !!value ? 'success' : 'danger',
2297
+ icon: null,
2298
+ };
2299
+ }
2300
+ _9.label = 6;
2301
+ case 6: return [2 /*return*/];
2302
+ }
2303
+ });
2304
+ };
2305
+ _11.label = 3;
2306
+ case 3:
2307
+ _11.trys.push([3, 8, 9, 10]);
2308
+ items_2 = (e_13 = void 0, __values(items)), items_2_1 = items_2.next();
2309
+ _11.label = 4;
2310
+ case 4:
2311
+ if (!!items_2_1.done) return [3 /*break*/, 7];
2312
+ item = items_2_1.value;
2313
+ return [5 /*yield**/, _loop_5(item)];
2314
+ case 5:
2315
+ _11.sent();
2316
+ _11.label = 6;
2317
+ case 6:
2318
+ items_2_1 = items_2.next();
2319
+ return [3 /*break*/, 4];
2320
+ case 7: return [3 /*break*/, 10];
2321
+ case 8:
2322
+ e_13_1 = _11.sent();
2323
+ e_13 = { error: e_13_1 };
2324
+ return [3 /*break*/, 10];
2325
+ case 9:
2326
+ try {
2327
+ if (items_2_1 && !items_2_1.done && (_10 = items_2.return)) _10.call(items_2);
2328
+ }
2329
+ finally { if (e_13) throw e_13.error; }
2330
+ return [7 /*endfinally*/];
2331
+ case 10: return [2 /*return*/];
2332
+ }
2333
+ });
2334
+ };
2335
+ this_3 = this;
2336
+ _9.label = 1;
2337
+ case 1:
2338
+ _9.trys.push([1, 6, 7, 8]);
2339
+ columns_5 = __values(columns), columns_5_1 = columns_5.next();
2340
+ _9.label = 2;
2341
+ case 2:
2342
+ if (!!columns_5_1.done) return [3 /*break*/, 5];
2343
+ column = columns_5_1.value;
2344
+ return [5 /*yield**/, _loop_4(column)];
2345
+ case 3:
2346
+ _9.sent();
2347
+ _9.label = 4;
2348
+ case 4:
2349
+ columns_5_1 = columns_5.next();
2350
+ return [3 /*break*/, 2];
2351
+ case 5: return [3 /*break*/, 8];
2352
+ case 6:
2353
+ e_12_1 = _9.sent();
2354
+ e_12 = { error: e_12_1 };
2355
+ return [3 /*break*/, 8];
2356
+ case 7:
2357
+ try {
2358
+ if (columns_5_1 && !columns_5_1.done && (_8 = columns_5.return)) _8.call(columns_5);
2359
+ }
2360
+ finally { if (e_12) throw e_12.error; }
2361
+ return [7 /*endfinally*/];
2362
+ case 8: return [2 /*return*/, items];
2363
+ }
2364
+ });
2365
+ }); });
2301
2366
  }
2302
- Object.defineProperty(SdTable.prototype, "_gridFilter", {
2303
- set: function (gridFilter) {
2304
- if (gridFilter && this.gridFilter !== gridFilter) {
2305
- this.gridFilter = gridFilter;
2306
- // this.#subscription.add(gridFilter.filterChange.pipe(
2307
- // filter(reload => reload),
2308
- // debounceTime(500),
2309
- // map(() => {
2310
- // this.#paginator.pageIndex = 0;
2311
- // this.#reload.next({
2312
- // force: false,
2313
- // source: 'FILTER'
2314
- // });
2315
- // }),
2316
- // ).subscribe());
2317
- }
2318
- },
2319
- enumerable: false,
2320
- configurable: true
2321
- });
2322
2367
  Object.defineProperty(SdTable.prototype, "option", {
2323
2368
  set: function (option) {
2369
+ var _this = this;
2324
2370
  if (option) {
2325
2371
  option = __classPrivateFieldGet(this, _initConfiguration$1).call(this, option);
2326
2372
  this.gridOption = option;
2327
2373
  __classPrivateFieldSet(this, _loadCompleted, false);
2328
- var configuration = this.gridConfigurationService.init(this.key, this.gridOption);
2329
- this.gridConfigurationObserver = configuration.observer;
2330
- configuration.load();
2331
- __classPrivateFieldGet(this, _optionChanges).next(this.gridOption);
2374
+ var setting = this.gridConfigurationService.init(this.gridOption);
2375
+ __classPrivateFieldGet(this, _subscription$1).add(setting.observer.pipe(operators.startWith(setting.subject.getValue())).subscribe(function (configuration) { return __awaiter(_this, void 0, void 0, function () {
2376
+ var configurationResult, displayColumns;
2377
+ return __generator(this, function (_8) {
2378
+ switch (_8.label) {
2379
+ case 0:
2380
+ configurationResult = this.gridConfigurationService.loadConfigurationResult(this.gridOption, configuration);
2381
+ displayColumns = configurationResult.displayedColumns || [];
2382
+ return [4 /*yield*/, __classPrivateFieldGet(this, _loadValues).call(this, this.gridOption.columns.filter(function (column) { return displayColumns.includes(column.field); }))];
2383
+ case 1:
2384
+ _8.sent();
2385
+ this.configuration = configurationResult;
2386
+ __classPrivateFieldGet(this, _optionChanges).next(this.gridOption);
2387
+ return [2 /*return*/];
2388
+ }
2389
+ });
2390
+ }); }));
2332
2391
  }
2333
2392
  },
2334
2393
  enumerable: false,
@@ -2379,7 +2438,7 @@
2379
2438
  switch (_8.label) {
2380
2439
  case 0:
2381
2440
  filterInfo = __classPrivateFieldGet(this, _getFilter).call(this);
2382
- return [4 /*yield*/, __classPrivateFieldGet(this, _load$1).call(this, filterInfo, !__classPrivateFieldGet(this, _loadCompleted) || data.force)];
2441
+ return [4 /*yield*/, __classPrivateFieldGet(this, _load).call(this, filterInfo, !__classPrivateFieldGet(this, _loadCompleted) || data.force)];
2383
2442
  case 1:
2384
2443
  result = _8.sent();
2385
2444
  __classPrivateFieldSet(this, _loadCompleted, true);
@@ -2411,18 +2470,18 @@
2411
2470
  };
2412
2471
  Object.defineProperty(SdTable.prototype, "gridItems", {
2413
2472
  get: function () {
2414
- return this.items.map(function (item) { return item.current; });
2473
+ return this.items.map(function (item) { return item.data; });
2415
2474
  },
2416
2475
  enumerable: false,
2417
2476
  configurable: true
2418
2477
  });
2419
2478
  return SdTable;
2420
2479
  }());
2421
- _gridId = new WeakMap(), _optionChanges = new WeakMap(), _localItems = new WeakMap(), _paginator = new WeakMap(), _sort = new WeakMap(), _subscription$1 = new WeakMap(), _reload = new WeakMap(), _loadCompleted = new WeakMap(), _initCellDef = new WeakMap(), _initFilterDef = new WeakMap(), _initFooterDef = new WeakMap(), _filterExportInfo = new WeakMap(), _initConfiguration$1 = new WeakMap(), _loadFilterRegister = new WeakMap(), _filterLocal = new WeakMap(), _getFilter = new WeakMap(), _load$1 = new WeakMap(), _render = new WeakMap(), _exportedItems = new WeakMap(), _allColumns = new WeakMap(), _allExportedColumns = new WeakMap(), _onExport = new WeakMap(), _getExportColumns = new WeakMap(), _updateSelectedItems = new WeakMap();
2480
+ _gridId = new WeakMap(), _optionChanges = new WeakMap(), _localItems = new WeakMap(), _paginator = new WeakMap(), _sort = new WeakMap(), _subscription$1 = new WeakMap(), _reload = new WeakMap(), _loadCompleted = new WeakMap(), _cacheObjValues = new WeakMap(), _initCellDef = new WeakMap(), _initFilterDef = new WeakMap(), _initFooterDef = new WeakMap(), _filterExportInfo = new WeakMap(), _initConfiguration$1 = new WeakMap(), _loadFilterRegister = new WeakMap(), _filterLocal = new WeakMap(), _getFilter = new WeakMap(), _load = new WeakMap(), _render = new WeakMap(), _exportedItems = new WeakMap(), _allColumns = new WeakMap(), _allExportedColumns = new WeakMap(), _onExport = new WeakMap(), _getExportColumns = new WeakMap(), _updateSelectedItems = new WeakMap(), _loadValues = new WeakMap(), _format = new WeakMap();
2422
2481
  SdTable.decorators = [
2423
2482
  { type: core.Component, args: [{
2424
2483
  selector: 'sd-table',
2425
- template: "<ng-container *ngIf=\"gridConfigurationObserver | async as gridConfiguration\">\r\n <ng-container *ngIf=\"gridConfiguration | sdGridConfigurationResult : gridOption : sdSubInformation as configuration\">\r\n <sd-grid-filter\r\n *ngIf=\"!gridOption.filter?.disabled && filterRegister\"\r\n [filterRegister]=\"filterRegister\"\r\n [filter]=\"gridOption?.filter\"\r\n [columns]=\"configuration.firstColumns\"\r\n [externalFilters]=\"gridOption?.filter?.externalFilters\"\r\n [filterDefs]=\"filterDefs\"\r\n #gridFilter>\r\n </sd-grid-filter>\r\n <ng-container *ngIf=\"items | sdGroup : gridOption; $implicit as groupedItems\">\r\n <div class=\"c-container\">\r\n <div class=\"c-loading\" *ngIf=\"isLoading\">\r\n <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\r\n </div>\r\n <ng-container>\r\n <div\r\n class=\"c-table\"\r\n sdScroll\r\n [ngStyle]=\"{\r\n 'max-height': gridOption?.style?.maxHeight,\r\n 'min-height': gridOption?.style?.minHeight\r\n }\">\r\n <table\r\n *ngIf=\"items?.length; else elseEmpty\"\r\n mat-table\r\n [dataSource]=\"groupedItems\"\r\n matSort\r\n [matSortDisabled]=\"!gridOption.sort?.enable\"\r\n multiTemplateDataRows>\r\n <ng-container matColumnDef=\"sdSubInformation\" sticky>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\" [attr.colspan]=\"configuration.displayedColumns.length\">\r\n <ng-container *ngIf=\"sdSubInformation?.templateRef\">\r\n <ng-container *ngIf=\"gridOption?.expand?.always; else useExpandCollapse\">\r\n <ng-container *ngTemplateOutlet=\"sdSubInformation.templateRef; context: { item: item }\"> </ng-container>\r\n </ng-container>\r\n <ng-template #useExpandCollapse>\r\n <div [@detailExpand]=\"item.isExpanded ? 'expanded' : 'collapsed'\">\r\n <ng-container *ngIf=\"item.isExpanded\">\r\n <ng-container *ngTemplateOutlet=\"sdSubInformation.templateRef; context: { item: item }\"> </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSubInformationAction\" stickyEnd>\r\n <th\r\n class=\"p-0\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"width: 1px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button\r\n *ngIf=\"!element.isExpanding && !gridOption?.expand?.always\"\r\n mat-icon-button\r\n aria-label=\"Expand & Collapse\"\r\n (click)=\"onExpand(element)\">\r\n <mat-icon *ngIf=\"!element.isExpanded\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"element.isExpanded\">expand_less</mat-icon>\r\n </button>\r\n <div *ngIf=\"element.isExpanding\" class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSelection\" sticky>\r\n <th\r\n class=\"text-center px-15\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n <ng-container *ngIf=\"items | selectionVisibleSelectAll : gridOption?.selector | async\">\r\n <mat-checkbox\r\n *ngIf=\"!gridOption.selector?.single\"\r\n class=\"c-selection\"\r\n color=\"primary\"\r\n [(ngModel)]=\"isSelectAll\"\r\n (change)=\"onSelectAll()\">\r\n </mat-checkbox>\r\n </ng-container>\r\n </th>\r\n <td class=\"text-center px-15\" mat-cell *matCellDef=\"let item\" style=\"min-width: 50px; max-width: 50px\">\r\n <ng-container *ngIf=\"item | selectionVisible : gridOption?.selector\">\r\n <mat-checkbox\r\n class=\"c-selection\"\r\n color=\"primary\"\r\n [(ngModel)]=\"item.isSelected\"\r\n (change)=\"onSelect(item)\"\r\n [disabled]=\"selectedItems | selectionDisable : item : gridOption?.selector\">\r\n </mat-checkbox>\r\n </ng-container>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdCommand\">\r\n <th\r\n class=\"px-8 py-8\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td class=\"px-8\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-command [commands]=\"gridOption.commands\" [item]=\"item\"></sd-desktop-command>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdGroup\">\r\n <th mat-header-cell *matHeaderCellDef class=\"px-8 py-8\" [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\" [attr.colspan]=\"!item?.sdGroup ? 1 : configuration.displayedColumns.length\">\r\n <div [innerHtml]=\"item?.sdGroup?.htmlTemplate | safeHtml\"></div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container\r\n *ngFor=\"let column of configuration.firstColumns; let i = index\"\r\n [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n cdkDrag\r\n class=\"px-8 py-8 c-th\"\r\n [ngStyle]=\"{ 'min-width': configuration.firstColumns[i].width }\"\r\n [attr.rowspan]=\"configuration.multipleHeader && column.type !== 'children-col' ? 2 : 1\"\r\n [attr.colspan]=\"column.type === 'children-col' ? column.children?.length : 1\">\r\n <div>\r\n <div\r\n aria-hidden=\"false\"\r\n role=\"presentation\"\r\n mat-sort-header\r\n [disabled]=\"!column.sortable || column.type === 'children-col'\"\r\n [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\"\r\n [innerHTML]=\"configuration.firstColumns[i].titleHtml || configuration.firstColumns[i].title\"></div>\r\n <sd-column-inline-filter\r\n *ngIf=\"gridOption.filter?.inlineColumn && columnOperator\"\r\n [value]=\"columnFilter[column.field]\"\r\n [(inlineOperator)]=\"columnOperator[column.field]\"\r\n [columnFilter]=\"columnFilter\"\r\n [column]=\"column\"\r\n (filterChange)=\"onFilterChange()\">\r\n </sd-column-inline-filter>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-0\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-cell\r\n class=\"d-block px-8\"\r\n *ngIf=\"!item?.sdGroup\"\r\n [sdId]=\"item.meta.id\"\r\n [key]=\"key\"\r\n [value]=\"item[column.field]\"\r\n [column]=\"column\"\r\n [item]=\"item\"\r\n [idx]=\"i\"\r\n [cellDef]=\"cellDef\"\r\n [gridOption]=\"gridOption\">\r\n </sd-desktop-cell>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container *ngTemplateOutlet=\"footerDef[column.field].templateRef; context: { items: items, column: column }\">\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.secondColumns; let i = index\" [matColumnDef]=\"column.field\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header class=\"c-th px-8\" [ngStyle]=\"{ 'min-width': column.width }\">\r\n <div>\r\n <div\r\n [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\"\r\n [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n <sd-column-inline-filter\r\n *ngIf=\"gridOption.filter?.inlineColumn && columnOperator\"\r\n [value]=\"columnFilter[column.field]\"\r\n [(inlineOperator)]=\"columnOperator[column.field]\"\r\n [columnFilter]=\"columnFilter\"\r\n [column]=\"column\"\r\n (filterChange)=\"onFilterChange()\">\r\n </sd-column-inline-filter>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-0\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-cell\r\n class=\"d-block px-8\"\r\n [sdId]=\"item.meta.id\"\r\n [key]=\"key\"\r\n [value]=\"item[column.field]\"\r\n [column]=\"column\"\r\n [item]=\"item\"\r\n [idx]=\"i\"\r\n [cellDef]=\"cellDef\"\r\n [gridOption]=\"gridOption\">\r\n </sd-desktop-cell>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container *ngTemplateOutlet=\"footerDef[column.field].templateRef; context: { items: items, column: column }\">\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <tr class=\"c-first-header\" mat-header-row *matHeaderRowDef=\"configuration.firstHeaders; sticky: true\"></tr>\r\n <ng-container *ngIf=\"configuration.secondHeaders?.length\">\r\n <tr class=\"c-second-header\" mat-header-row *matHeaderRowDef=\"configuration.secondHeaders; sticky: true\"></tr>\r\n </ng-container>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: configuration.displayedColumns\"\r\n matRipple\r\n class=\"c-row\"\r\n [class.selected]=\"row.isSelected\"></tr>\r\n\r\n <tr mat-row *matRowDef=\"let row; columns: ['sdSubInformation']\" class=\"c-detail-row\"></tr>\r\n <ng-container *ngIf=\"hasFooter && configuration.displayedFooters?.length\">\r\n <tr mat-footer-row *matFooterRowDef=\"configuration.displayedFooters; sticky: true\"></tr>\r\n </ng-container>\r\n </table>\r\n <ng-template #elseEmpty>\r\n <table mat-table [dataSource]=\"[{}]\">\r\n <ng-container matColumnDef=\"sdSelection\" sticky>\r\n <th\r\n class=\"px-15\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdCommand\">\r\n <th\r\n class=\"px-8\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSubInformationAction\">\r\n <th\r\n class=\"p-0\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"width: 1px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdEmpty\">\r\n <td class=\"c-empty\" mat-cell *matCellDef=\"let item\" [attr.colspan]=\"configuration.displayedColumns.length\">\r\n <ng-container *ngIf=\"sdEmptyData?.templateRef; else sdEmptyDataNoRef\">\r\n <ng-container *ngTemplateOutlet=\"sdEmptyData.templateRef; context: { item: item }\"> </ng-container>\r\n </ng-container>\r\n <ng-template #sdEmptyDataNoRef>\r\n <mat-icon fontSet=\"material-icons-outlined\">leaderboard</mat-icon>\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdGroup\">\r\n <th mat-header-cell *matHeaderCellDef class=\"px-8 py-8\" [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\"></td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container\r\n *ngFor=\"let column of configuration.columns\"\r\n [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th mat-header-cell *matHeaderCellDef class=\"c-th px-8 py-8\" [ngStyle]=\"{ 'min-width': column.width }\">\r\n <div\r\n [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\"\r\n [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n </th>\r\n </ng-container>\r\n <ng-container\r\n *ngFor=\"let column of configuration.firstColumns; let i = index\"\r\n [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n class=\"c-th px-8 py-8\"\r\n [ngStyle]=\"{ 'min-width': configuration.firstColumns[i].width }\"\r\n [attr.rowspan]=\"configuration.multipleHeader && column.type !== 'children-col' ? 2 : 1\"\r\n [attr.colspan]=\"column.type === 'children-col' ? column.children?.length : 1\">\r\n <div>\r\n <div\r\n [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\"\r\n [innerHTML]=\"configuration.firstColumns[i].titleHtml || configuration.firstColumns[i].title\"></div>\r\n <sd-column-inline-filter\r\n *ngIf=\"gridOption.filter?.inlineColumn && columnOperator\"\r\n [value]=\"columnFilter[column.field]\"\r\n [(inlineOperator)]=\"columnOperator[column.field]\"\r\n [columnFilter]=\"columnFilter\"\r\n [column]=\"column\"\r\n (filterChange)=\"onFilterChange()\">\r\n </sd-column-inline-filter>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.secondColumns\" [matColumnDef]=\"column.field\">\r\n <th mat-header-cell *matHeaderCellDef class=\"c-th px-8 py-8\" [ngStyle]=\"{ 'min-width': column.width }\">\r\n <div>\r\n <div\r\n [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\"\r\n [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n <sd-column-inline-filter\r\n *ngIf=\"gridOption.filter?.inlineColumn\"\r\n [value]=\"columnFilter[column.field]\"\r\n [columnFilter]=\"columnFilter\"\r\n [column]=\"column\"\r\n (filterChange)=\"onFilterChange()\"></sd-column-inline-filter>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <tr class=\"c-first-header\" mat-header-row *matHeaderRowDef=\"configuration.firstHeaders; sticky: true\"></tr>\r\n <tr class=\"c-second-header\" mat-header-row *matHeaderRowDef=\"configuration.secondHeaders; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['sdEmpty']\"></tr>\r\n </table>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-paginator\">\r\n <div class=\"c-action\">\r\n <sd-button\r\n *ngIf=\"gridFilter && !gridOption.filter?.inlineColumn\"\r\n class=\"mr-10\"\r\n [title]=\"'Filter' | sdTranslate\"\r\n icon=\"filter_alt\"\r\n size=\"sm\"\r\n (action)=\"gridFilter.open()\"\r\n type=\"link\">\r\n </sd-button>\r\n <sd-button\r\n *ngIf=\"gridOption.reload?.visible\"\r\n class=\"mr-10\"\r\n [title]=\"'Reload' | sdTranslate\"\r\n icon=\"refresh\"\r\n size=\"sm\"\r\n (action)=\"reload()\"\r\n [disabled]=\"!items?.length\"\r\n type=\"link\">\r\n </sd-button>\r\n <ng-container *ngIf=\"gridOption.export?.visible && items?.length\">\r\n <ng-container *ngIf=\"isExporting; else unExporting\">\r\n <sd-button class=\"mr-10\" [loading]=\"isExporting\" [title]=\"exportTitle | sdTranslate\" icon=\"get_app\" size=\"sm\" type=\"link\">\r\n </sd-button>\r\n </ng-container>\r\n <ng-template #unExporting>\r\n <sd-button\r\n class=\"mr-10\"\r\n [title]=\"exportTitle | sdTranslate\"\r\n icon=\"get_app\"\r\n size=\"sm\"\r\n [matMenuTriggerFor]=\"menu\"\r\n type=\"link\">\r\n </sd-button>\r\n </ng-template>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item (click)=\"exportExcel()\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">file_download</mat-icon>\r\n <span> Xu\u1EA5t excel</span>\r\n </button>\r\n <button mat-menu-item (click)=\"exportCSV()\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">file_download</mat-icon>\r\n <span> Xu\u1EA5t CSV</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n <sd-button\r\n *ngIf=\"gridOption.config?.visible\"\r\n class=\"mr-10\"\r\n [title]=\"'Configure' | sdTranslate\"\r\n icon=\"settings\"\r\n size=\"sm\"\r\n (action)=\"popupGridConfiguration.open()\"\r\n type=\"link\">\r\n </sd-button>\r\n </div>\r\n <mat-paginator\r\n [class.d-none]=\"gridOption.paginate?.hidden\"\r\n [length]=\"total\"\r\n [pageSize]=\"gridOption.paginate?.pageSize\"\r\n [pageSizeOptions]=\"gridOption.paginate?.pages\"\r\n [showFirstLastButtons]=\"gridOption.paginate?.showFirstLastButtons\"></mat-paginator>\r\n </div>\r\n </div>\r\n <sd-grid-quick-action [gridOption]=\"gridOption\" [selectedItems]=\"selectedItems\" (clear)=\"onClearSelection(groupedItems)\">\r\n </sd-grid-quick-action>\r\n <sd-popup-grid-configuration [gridOption]=\"gridOption\" [key]=\"key\" #popupGridConfiguration> </sd-popup-grid-configuration>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n",
2484
+ template: "<ng-container *ngIf=\"configuration\">\r\n <sd-table-filter\r\n *ngIf=\"!gridOption.filter?.disabled && filterRegister\"\r\n [filterRegister]=\"filterRegister\"\r\n [filter]=\"gridOption?.filter\"\r\n [columns]=\"configuration.firstColumns\"\r\n [externalFilters]=\"gridOption?.filter?.externalFilters\"\r\n [filterDefs]=\"filterDefs\">\r\n </sd-table-filter>\r\n <ng-container *ngIf=\"items | sdGroup : gridOption; $implicit as groupedItems\">\r\n <div class=\"c-container\">\r\n <div class=\"c-loading\" *ngIf=\"isLoading\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n <ng-container>\r\n <div\r\n class=\"c-table\"\r\n sdScroll\r\n [ngStyle]=\"{\r\n 'max-height': gridOption?.style?.maxHeight,\r\n 'min-height': gridOption?.style?.minHeight\r\n }\">\r\n <table\r\n mat-table\r\n [dataSource]=\"groupedItems\"\r\n matSort\r\n [matSortDisabled]=\"!gridOption.sort?.enable\"\r\n multiTemplateDataRows>\r\n <ng-container matColumnDef=\"sdSubInformation\" sticky>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\" [attr.colspan]=\"configuration.displayedColumns.length\">\r\n <ng-container *ngIf=\"sdSubInformation?.templateRef\">\r\n <ng-container *ngIf=\"gridOption?.expand?.always; else useExpandCollapse\">\r\n <ng-container *ngTemplateOutlet=\"sdSubInformation.templateRef; context: { item: item }\"> </ng-container>\r\n </ng-container>\r\n <ng-template #useExpandCollapse>\r\n <div [@detailExpand]=\"item.isExpanded ? 'expanded' : 'collapsed'\">\r\n <ng-container *ngIf=\"item.isExpanded\">\r\n <ng-container *ngTemplateOutlet=\"sdSubInformation.templateRef; context: { item: item }\"> </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSubInformationAction\" stickyEnd>\r\n <th\r\n class=\"p-0\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"width: 1px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button\r\n *ngIf=\"!element.isExpanding && !gridOption?.expand?.always\"\r\n mat-icon-button\r\n aria-label=\"Expand & Collapse\"\r\n (click)=\"onExpand(element)\">\r\n <mat-icon *ngIf=\"!element.isExpanded\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"element.isExpanded\">expand_less</mat-icon>\r\n </button>\r\n <div *ngIf=\"element.isExpanding\" class=\"lds-ring\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdSelection\" sticky>\r\n <th\r\n class=\"text-center px-15\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"min-width: 50px; max-width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\">\r\n <ng-container *ngIf=\"items | selectionVisibleSelectAll : gridOption?.selector | async\">\r\n <mat-checkbox\r\n *ngIf=\"!gridOption.selector?.single\"\r\n class=\"c-selection\"\r\n color=\"primary\"\r\n [(ngModel)]=\"isSelectAll\"\r\n (change)=\"onSelectAll()\">\r\n </mat-checkbox>\r\n </ng-container>\r\n </th>\r\n <td class=\"text-center px-15\" mat-cell *matCellDef=\"let item\" style=\"min-width: 50px; max-width: 50px\">\r\n <ng-container *ngIf=\"item | selectionVisible : gridOption?.selector\">\r\n <mat-checkbox\r\n class=\"c-selection\"\r\n color=\"primary\"\r\n [(ngModel)]=\"item.isSelected\"\r\n (change)=\"onSelect(item)\"\r\n [disabled]=\"selectedItems | selectionDisable : item : gridOption?.selector\">\r\n </mat-checkbox>\r\n </ng-container>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdCommand\">\r\n <th\r\n class=\"px-8 py-8\"\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"width: 50px\"\r\n [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td class=\"px-8\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-command [commands]=\"gridOption.commands\" [item]=\"item\"></sd-desktop-command>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sdGroup\">\r\n <th mat-header-cell *matHeaderCellDef class=\"px-8 py-8\" [attr.rowspan]=\"configuration.multipleHeader ? 2 : 1\"></th>\r\n <td class=\"p-0\" mat-cell *matCellDef=\"let item\" [attr.colspan]=\"!item?.sdGroup ? 1 : configuration.displayedColumns.length\">\r\n <div [innerHtml]=\"item?.sdGroup?.htmlTemplate | safeHtml\"></div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n <ng-container\r\n *ngFor=\"let column of configuration.firstColumns; let i = index\"\r\n [matColumnDef]=\"column.field\"\r\n [sticky]=\"configuration.fixedColumn[column.field]\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n class=\"px-8 py-8 c-th\"\r\n [ngStyle]=\"{ 'min-width': configuration.firstColumns[i].width }\"\r\n [attr.rowspan]=\"configuration.multipleHeader && column.type !== 'children-col' ? 2 : 1\"\r\n [attr.colspan]=\"column.type === 'children-col' ? column.children?.length : 1\">\r\n <div>\r\n <div\r\n aria-hidden=\"false\"\r\n role=\"presentation\"\r\n mat-sort-header\r\n [disabled]=\"!column.sortable || column.type === 'children-col'\"\r\n [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\"\r\n [innerHTML]=\"configuration.firstColumns[i].titleHtml || configuration.firstColumns[i].title\"></div>\r\n <sd-column-inline-filter\r\n *ngIf=\"columnOperator\"\r\n [value]=\"columnFilter[column.field]\"\r\n [(inlineOperator)]=\"columnOperator[column.field]\"\r\n [columnFilter]=\"columnFilter\"\r\n [cacheValues]=\"cacheValues\"\r\n [column]=\"column\"\r\n (filterChange)=\"onFilterChange()\">\r\n </sd-column-inline-filter>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-0\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-cell\r\n class=\"d-block px-8\"\r\n *ngIf=\"!item?.sdGroup\"\r\n [sdId]=\"item.meta.id\"\r\n [key]=\"key\"\r\n [value]=\"item[column.field]\"\r\n [column]=\"column\"\r\n [item]=\"item\"\r\n [idx]=\"i\"\r\n [cellDef]=\"cellDef\"\r\n [gridOption]=\"gridOption\">\r\n </sd-desktop-cell>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container *ngTemplateOutlet=\"footerDef[column.field].templateRef; context: { items: items, column: column }\">\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of configuration.secondColumns; let i = index\" [matColumnDef]=\"column.field\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header class=\"c-th px-8\" [ngStyle]=\"{ 'min-width': column.width }\">\r\n <div>\r\n <div\r\n [class.text-right]=\"column.align === 'right' || (!column.align && column.type === 'number')\"\r\n [class.text-center]=\"column.align === 'center'\"\r\n [innerHTML]=\"column.titleHtml || column.title\"></div>\r\n <sd-column-inline-filter\r\n *ngIf=\"columnOperator\"\r\n [value]=\"columnFilter[column.field]\"\r\n [(inlineOperator)]=\"columnOperator[column.field]\"\r\n [columnFilter]=\"columnFilter\"\r\n [cacheValues]=\"cacheValues\"\r\n [column]=\"column\"\r\n (filterChange)=\"onFilterChange()\">\r\n </sd-column-inline-filter>\r\n </div>\r\n </th>\r\n <td class=\"c-td px-0\" mat-cell *matCellDef=\"let item\">\r\n <sd-desktop-cell\r\n class=\"d-block px-8\"\r\n [sdId]=\"item.meta.id\"\r\n [key]=\"key\"\r\n [value]=\"item[column.field]\"\r\n [column]=\"column\"\r\n [item]=\"item\"\r\n [idx]=\"i\"\r\n [cellDef]=\"cellDef\"\r\n [gridOption]=\"gridOption\">\r\n </sd-desktop-cell>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef>\r\n <ng-container *ngIf=\"footerDef[column.field]\">\r\n <ng-container *ngTemplateOutlet=\"footerDef[column.field].templateRef; context: { items: items, column: column }\">\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <tr class=\"c-first-header\" mat-header-row *matHeaderRowDef=\"configuration.firstHeaders; sticky: true\"></tr>\r\n <ng-container *ngIf=\"configuration.secondHeaders?.length\">\r\n <tr class=\"c-second-header\" mat-header-row *matHeaderRowDef=\"configuration.secondHeaders; sticky: true\"></tr>\r\n </ng-container>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: configuration.displayedColumns\"\r\n matRipple\r\n class=\"c-row\"\r\n [class.selected]=\"row.isSelected\"></tr>\r\n\r\n <tr mat-row *matRowDef=\"let row; columns: ['sdSubInformation']\" class=\"c-detail-row\"></tr>\r\n <ng-container *ngIf=\"hasFooter && configuration.displayedFooters?.length\">\r\n <tr mat-footer-row *matFooterRowDef=\"configuration.displayedFooters; sticky: true\"></tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-paginator\">\r\n <div class=\"c-action\">\r\n <sd-button\r\n *ngIf=\"tableFilter\"\r\n class=\"mr-8\"\r\n [title]=\"'Filter' | sdTranslate\"\r\n icon=\"filter_alt\"\r\n size=\"sm\"\r\n (action)=\"tableFilter.open()\"\r\n type=\"link\">\r\n </sd-button>\r\n <sd-button\r\n *ngIf=\"gridOption.reload?.visible\"\r\n class=\"mr-8\"\r\n [title]=\"'Reload' | sdTranslate\"\r\n icon=\"refresh\"\r\n size=\"sm\"\r\n (action)=\"reload()\"\r\n [disabled]=\"!items?.length\"\r\n type=\"link\">\r\n </sd-button>\r\n <ng-container *ngIf=\"gridOption.export?.visible && items?.length\">\r\n <ng-container *ngIf=\"isExporting; else unExporting\">\r\n <sd-button class=\"mr-10\" [loading]=\"isExporting\" [title]=\"exportTitle | sdTranslate\" icon=\"get_app\" size=\"sm\" type=\"link\">\r\n </sd-button>\r\n </ng-container>\r\n <ng-template #unExporting>\r\n <sd-button class=\"mr-10\" [title]=\"exportTitle | sdTranslate\" icon=\"get_app\" size=\"sm\" [matMenuTriggerFor]=\"menu\" type=\"link\">\r\n </sd-button>\r\n </ng-template>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item (click)=\"exportExcel()\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">file_download</mat-icon>\r\n <span> Xu\u1EA5t excel</span>\r\n </button>\r\n <button mat-menu-item (click)=\"exportCSV()\" type=\"button\">\r\n <mat-icon fontSet=\"material-icons-outlined\">file_download</mat-icon>\r\n <span> Xu\u1EA5t CSV</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n <sd-button\r\n *ngIf=\"popupConfiguration\"\r\n class=\"mr-8\"\r\n [title]=\"'Configure' | sdTranslate\"\r\n icon=\"settings\"\r\n size=\"sm\"\r\n (action)=\"popupConfiguration.open()\"\r\n type=\"link\">\r\n </sd-button>\r\n </div>\r\n <mat-paginator\r\n [class.d-none]=\"gridOption.paginate?.hidden\"\r\n [length]=\"total\"\r\n [pageSize]=\"gridOption.paginate?.pageSize\"\r\n [pageSizeOptions]=\"gridOption.paginate?.pages\"\r\n [showFirstLastButtons]=\"gridOption.paginate?.showFirstLastButtons\"></mat-paginator>\r\n </div>\r\n </div>\r\n <sd-table-quick-action [gridOption]=\"gridOption\" [selectedItems]=\"selectedItems\" (clear)=\"onClearSelection(groupedItems)\">\r\n </sd-table-quick-action>\r\n <sd-popup-configuration *ngIf=\"gridOption?.key && gridOption.config?.visible\" [gridOption]=\"gridOption\">\r\n </sd-popup-configuration>\r\n </ng-container>\r\n</ng-container>\r\n",
2426
2485
  changeDetection: core.ChangeDetectionStrategy.OnPush,
2427
2486
  animations: [
2428
2487
  animations.trigger('detailExpand', [
@@ -2440,13 +2499,13 @@
2440
2499
  { type: SdTableConfigurationService },
2441
2500
  { type: _export.SdExportService },
2442
2501
  { type: notify.SdNotifyService },
2443
- { type: SdColumnValuesPipe },
2444
2502
  { type: SdTableFilterService }
2445
2503
  ]; };
2446
2504
  SdTable.propDecorators = {
2505
+ popupConfiguration: [{ type: core.ViewChild, args: [SdPopupConfiguration,] }],
2447
2506
  sdScroll: [{ type: core.ViewChild, args: [common.SdScrollDirective,] }],
2448
2507
  quickAction: [{ type: core.ViewChild, args: [quickAction.SdQuickAction,] }],
2449
- _gridFilter: [{ type: core.ViewChild, args: [SdGridFilter,] }],
2508
+ tableFilter: [{ type: core.ViewChild, args: [SdTableFilter,] }],
2450
2509
  option: [{ type: core.Input }],
2451
2510
  paginator: [{ type: core.ViewChild, args: [paginator.MatPaginator,] }],
2452
2511
  sort: [{ type: core.ViewChild, args: [sort.MatSort,] }],
@@ -2649,28 +2708,6 @@
2649
2708
  },] }
2650
2709
  ];
2651
2710
 
2652
- var SdColumnHtmlTemplatePipe = /** @class */ (function () {
2653
- function SdColumnHtmlTemplatePipe(deviceService) {
2654
- this.isMobileOrTablet = false;
2655
- this.isMobileOrTablet = !deviceService.isDesktop();
2656
- }
2657
- SdColumnHtmlTemplatePipe.prototype.transform = function (value, rowData, column) {
2658
- if (typeof (column === null || column === void 0 ? void 0 : column.htmlTemplate) !== 'function') {
2659
- return value;
2660
- }
2661
- return column === null || column === void 0 ? void 0 : column.htmlTemplate(value, rowData, this.isMobileOrTablet);
2662
- };
2663
- return SdColumnHtmlTemplatePipe;
2664
- }());
2665
- SdColumnHtmlTemplatePipe.decorators = [
2666
- { type: core.Pipe, args: [{
2667
- name: 'columnHtmlTemplate'
2668
- },] }
2669
- ];
2670
- SdColumnHtmlTemplatePipe.ctorParameters = function () { return [
2671
- { type: ngxDeviceDetector.DeviceDetectorService }
2672
- ]; };
2673
-
2674
2711
  var SdDesktopCellView = /** @class */ (function () {
2675
2712
  function SdDesktopCellView() {
2676
2713
  }
@@ -2679,7 +2716,7 @@
2679
2716
  SdDesktopCellView.decorators = [
2680
2717
  { type: core.Component, args: [{
2681
2718
  selector: 'sd-desktop-cell-view',
2682
- template: "<ng-container *ngIf=\"item.current[column.field] | cellView : item : column : gridOption | async as view\">\r\n <ng-container *ngIf=\"view.display.hasHtml; else useValue\">\r\n <div\r\n *ngIf=\"view.click\"\r\n (click)=\"view.click()\"\r\n class=\"text-break cursor-pointer\"\r\n [matTooltip]=\"view.tooltip\"\r\n [class.text-center]=\"view.display.align === 'center'\"\r\n [class.text-right]=\"view.display.align === 'right'\"\r\n [innerHTML]=\"view.display.html | safeHtml\"></div>\r\n <div\r\n *ngIf=\"!view.click\"\r\n class=\"text-break\"\r\n [matTooltip]=\"view.tooltip\"\r\n [class.text-center]=\"view.display.align === 'center'\"\r\n [class.text-right]=\"view.display.align === 'right'\"\r\n [innerHTML]=\"view.display.html | safeHtml\"></div>\r\n </ng-container>\r\n <ng-template #useValue>\r\n <ng-container *ngIf=\"!!view.badge; else noBadge\">\r\n <sd-badge\r\n *ngIf=\"view.display.value\"\r\n [type]=\"view.badge.type\"\r\n [title]=\"view.display.value\"\r\n [color]=\"view.badge.color\"\r\n [icon]=\"view.badge.icon\"\r\n [tooltip]=\"view.tooltip\"\r\n (sdClick)=\"!!view.click && view.click()\"></sd-badge>\r\n </ng-container>\r\n <ng-template #noBadge>\r\n <div\r\n class=\"text-break\"\r\n [class.text-center]=\"view.display.align === 'center'\"\r\n [class.text-right]=\"view.display.align === 'right'\"\r\n [matTooltip]=\"view.tooltip\">\r\n <a *ngIf=\"!!view.click\" href=\"javascript:;\" (click)=\"view.click()\">{{ view.display.value }}</a>\r\n <ng-container *ngIf=\"!view.click\">{{ view.display.value }} </ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n</ng-container>\r\n",
2719
+ template: "<ng-container *sdLet=\"item.meta.display[column.field] as view\">\r\n <ng-container *ngIf=\"view.isHtml; else useValue\">\r\n <div\r\n *ngIf=\"view.click\"\r\n (click)=\"view.click()\"\r\n class=\"text-break cursor-pointer\"\r\n [matTooltip]=\"view.tooltip\"\r\n [style]=\"view.cellStyle\"\r\n [innerHTML]=\"view.data | safeHtml\"></div>\r\n <div\r\n *ngIf=\"!view.click\"\r\n class=\"text-break\"\r\n [matTooltip]=\"view.tooltip\"\r\n [style]=\"view.cellStyle\"\r\n [innerHTML]=\"view.data | safeHtml\"></div>\r\n </ng-container>\r\n <ng-template #useValue>\r\n <ng-container *ngIf=\"!!view.badge; else noBadge\">\r\n <sd-badge\r\n *ngIf=\"view.data\"\r\n [type]=\"view.badge.type\"\r\n [title]=\"view.data\"\r\n [color]=\"view.badge.color\"\r\n [icon]=\"view.badge.icon\"\r\n [tooltip]=\"view.tooltip\"\r\n (sdClick)=\"!!view.click && view.click()\"></sd-badge>\r\n </ng-container>\r\n <ng-template #noBadge>\r\n <div\r\n class=\"text-break\"\r\n [style]=\"view.cellStyle\"\r\n [matTooltip]=\"view.tooltip\">\r\n <a *ngIf=\"!!view.click\" href=\"javascript:;\" (click)=\"view.click()\">{{ view.data }}</a>\r\n <ng-container *ngIf=\"!view.click\">{{ view.data }} </ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n</ng-container>\r\n",
2683
2720
  changeDetection: core.ChangeDetectionStrategy.OnPush,
2684
2721
  styles: [".text-black400{color:#757575}.c-color-success{color:#4caf50}.c-color-danger{color:#f82c13}.c-image{-o-object-fit:contain;margin:5px 0;object-fit:contain}.c-img{font-size:30px;opacity:.5}.c-img.pointer:hover{opacity:.9}"]
2685
2722
  },] }
@@ -2693,45 +2730,6 @@
2693
2730
  gridOption: [{ type: core.Input }]
2694
2731
  };
2695
2732
 
2696
- var SdColumnTransformPipe = /** @class */ (function () {
2697
- function SdColumnTransformPipe(columnValuesPipe) {
2698
- this.columnValuesPipe = columnValuesPipe;
2699
- }
2700
- SdColumnTransformPipe.prototype.transform = function (value, rowData, column, key) {
2701
- var _a, _b;
2702
- return __awaiter(this, void 0, void 0, function () {
2703
- return __generator(this, function (_c) {
2704
- switch (_c.label) {
2705
- case 0:
2706
- if (column === null || column === void 0 ? void 0 : column.transform) {
2707
- return [2 /*return*/, column.transform(value, rowData)];
2708
- }
2709
- if (!(column.type === 'values')) return [3 /*break*/, 2];
2710
- return [4 /*yield*/, this.columnValuesPipe.transform(value, column)];
2711
- case 1: return [2 /*return*/, _c.sent()];
2712
- case 2:
2713
- if (column.type === 'number' && Number.isNumber(value)) {
2714
- return [2 /*return*/, Number.toVNCurrency(value)]; // this.decimalPipe.transform(value, '1.0-2');
2715
- }
2716
- if (column.type === 'bool') {
2717
- return [2 /*return*/, value === true ? (((_a = column.option) === null || _a === void 0 ? void 0 : _a.displayOnTrue) || 'True') : (((_b = column.option) === null || _b === void 0 ? void 0 : _b.displayOnFalse) || 'False')];
2718
- }
2719
- return [2 /*return*/, value];
2720
- }
2721
- });
2722
- });
2723
- };
2724
- return SdColumnTransformPipe;
2725
- }());
2726
- SdColumnTransformPipe.decorators = [
2727
- { type: core.Pipe, args: [{
2728
- name: 'columnTransform'
2729
- },] }
2730
- ];
2731
- SdColumnTransformPipe.ctorParameters = function () { return [
2732
- { type: SdColumnValuesPipe }
2733
- ]; };
2734
-
2735
2733
  var SdFilterExternalPipe = /** @class */ (function () {
2736
2734
  function SdFilterExternalPipe() {
2737
2735
  }
@@ -2817,36 +2815,6 @@
2817
2815
  },] }
2818
2816
  ];
2819
2817
 
2820
- var _isMobileOrTablet;
2821
- var SdColumnChildrenFilterPipe = /** @class */ (function () {
2822
- function SdColumnChildrenFilterPipe(deviceService) {
2823
- _isMobileOrTablet.set(this, false);
2824
- __classPrivateFieldSet(this, _isMobileOrTablet, !deviceService.isDesktop());
2825
- }
2826
- SdColumnChildrenFilterPipe.prototype.transform = function (columns, item) {
2827
- var _this = this;
2828
- return columns.filter(function (column) {
2829
- var _a, _b;
2830
- var value = item === null || item === void 0 ? void 0 : item[column.field];
2831
- var transformValue = (_a = column.transform) === null || _a === void 0 ? void 0 : _a.call(column, item[column.field], item);
2832
- var templateValue = (_b = column.htmlTemplate) === null || _b === void 0 ? void 0 : _b.call(column, item[column.field], item, __classPrivateFieldGet(_this, _isMobileOrTablet));
2833
- return (value !== undefined && value !== null && value !== '')
2834
- || (transformValue !== undefined && transformValue !== null && transformValue !== '')
2835
- || (templateValue !== undefined && templateValue !== null && templateValue !== '');
2836
- });
2837
- };
2838
- return SdColumnChildrenFilterPipe;
2839
- }());
2840
- _isMobileOrTablet = new WeakMap();
2841
- SdColumnChildrenFilterPipe.decorators = [
2842
- { type: core.Pipe, args: [{
2843
- name: 'columnChildrenFilter'
2844
- },] }
2845
- ];
2846
- SdColumnChildrenFilterPipe.ctorParameters = function () { return [
2847
- { type: ngxDeviceDetector.DeviceDetectorService }
2848
- ]; };
2849
-
2850
2818
  var SdDesktopCommand = /** @class */ (function () {
2851
2819
  function SdDesktopCommand() {
2852
2820
  this.commands = [];
@@ -2867,182 +2835,6 @@
2867
2835
  commands: [{ type: core.Input }]
2868
2836
  };
2869
2837
 
2870
- var SdColumnBadgePipe = /** @class */ (function () {
2871
- function SdColumnBadgePipe() {
2872
- }
2873
- SdColumnBadgePipe.prototype.transform = function (value, rowData, column) {
2874
- var _a, _b, _c;
2875
- if (column.type === 'string' && (column === null || column === void 0 ? void 0 : column.badge)) {
2876
- return {
2877
- type: !(column === null || column === void 0 ? void 0 : column.badgeType) ? 'round' : column.badgeType,
2878
- color: column.badge(value, rowData),
2879
- icon: (_a = column === null || column === void 0 ? void 0 : column.badgeIcon) === null || _a === void 0 ? void 0 : _a.call(column, value, rowData)
2880
- };
2881
- }
2882
- if (column.type === 'number' && (column === null || column === void 0 ? void 0 : column.badge)) {
2883
- return {
2884
- type: !(column === null || column === void 0 ? void 0 : column.badgeType) ? 'round' : column.badgeType,
2885
- color: column.badge(value, rowData),
2886
- icon: (_b = column === null || column === void 0 ? void 0 : column.badgeIcon) === null || _b === void 0 ? void 0 : _b.call(column, value, rowData)
2887
- };
2888
- }
2889
- if (column.type === 'bool') {
2890
- return {
2891
- type: !(column === null || column === void 0 ? void 0 : column.badgeType) ? 'round' : column.badgeType,
2892
- color: !!value ? 'success' : 'danger',
2893
- icon: null
2894
- };
2895
- }
2896
- if (column.type === 'values' && (column === null || column === void 0 ? void 0 : column.badge)) {
2897
- return {
2898
- type: !(column === null || column === void 0 ? void 0 : column.badgeType) ? 'round' : column.badgeType,
2899
- color: column.badge(value, rowData),
2900
- icon: (_c = column === null || column === void 0 ? void 0 : column.badgeIcon) === null || _c === void 0 ? void 0 : _c.call(column, value, rowData)
2901
- };
2902
- }
2903
- return null;
2904
- };
2905
- return SdColumnBadgePipe;
2906
- }());
2907
- SdColumnBadgePipe.decorators = [
2908
- { type: core.Pipe, args: [{
2909
- name: 'columnBadge'
2910
- },] }
2911
- ];
2912
- SdColumnBadgePipe.ctorParameters = function () { return []; };
2913
-
2914
- var SdGridConfigurationResultPipe = /** @class */ (function () {
2915
- function SdGridConfigurationResultPipe(gridConfigurationService) {
2916
- this.gridConfigurationService = gridConfigurationService;
2917
- }
2918
- SdGridConfigurationResultPipe.prototype.transform = function (configuration, gridOption, sdSubInformation) {
2919
- var a = this.gridConfigurationService.generateConfigurationResult(configuration, gridOption, sdSubInformation);
2920
- console.log(a);
2921
- return a;
2922
- };
2923
- return SdGridConfigurationResultPipe;
2924
- }());
2925
- SdGridConfigurationResultPipe.decorators = [
2926
- { type: core.Pipe, args: [{
2927
- name: 'sdGridConfigurationResult'
2928
- },] }
2929
- ];
2930
- SdGridConfigurationResultPipe.ctorParameters = function () { return [
2931
- { type: SdTableConfigurationService }
2932
- ]; };
2933
-
2934
- var _cache$3;
2935
- var SdPopupGridConfiguration = /** @class */ (function () {
2936
- function SdPopupGridConfiguration(ref, notifyService, translateService, gridConfigurationService) {
2937
- var _this = this;
2938
- this.ref = ref;
2939
- this.notifyService = notifyService;
2940
- this.translateService = translateService;
2941
- this.gridConfigurationService = gridConfigurationService;
2942
- this.changes = new core.EventEmitter();
2943
- _cache$3.set(this, void 0);
2944
- this.isCreatingColumn = false;
2945
- this.selected = {};
2946
- this.disabledDrag = true;
2947
- this.open = function () { return __awaiter(_this, void 0, void 0, function () {
2948
- var _a;
2949
- return __generator(this, function (_b) {
2950
- switch (_b.label) {
2951
- case 0:
2952
- __classPrivateFieldSet(this, _cache$3, this.gridConfigurationService.init(this.key, this.gridOption));
2953
- _a = this;
2954
- return [4 /*yield*/, __classPrivateFieldGet(this, _cache$3).get()];
2955
- case 1:
2956
- _a.configuration = _b.sent();
2957
- this.modal.open();
2958
- return [2 /*return*/];
2959
- }
2960
- });
2961
- }); };
2962
- this.onSave = function () {
2963
- __classPrivateFieldGet(_this, _cache$3).set(_this.configuration);
2964
- _this.modal.close();
2965
- _this.ref.detectChanges();
2966
- };
2967
- this.onReset = function () { return __awaiter(_this, void 0, void 0, function () {
2968
- var translate;
2969
- var _this = this;
2970
- return __generator(this, function (_a) {
2971
- translate = this.translateService.translate;
2972
- this.notifyService.confirm(translate('Reset grid configuration to default')).then(function () {
2973
- __classPrivateFieldGet(_this, _cache$3).remove();
2974
- _this.modal.close();
2975
- _this.ref.detectChanges();
2976
- });
2977
- return [2 /*return*/];
2978
- });
2979
- }); };
2980
- this.createColumn = function () { return __awaiter(_this, void 0, void 0, function () {
2981
- return __generator(this, function (_a) {
2982
- this.selected = {};
2983
- this.isCreatingColumn = true;
2984
- return [2 /*return*/];
2985
- });
2986
- }); };
2987
- this.confirm = function () { return __awaiter(_this, void 0, void 0, function () {
2988
- var generatedColumn;
2989
- return __generator(this, function (_a) {
2990
- generatedColumn = {
2991
- origin: {
2992
- field: uuid.v4(),
2993
- title: 'Generated',
2994
- width: '300px',
2995
- },
2996
- fixed: false,
2997
- invisible: false,
2998
- title: 'Generated',
2999
- width: '300px',
3000
- };
3001
- this.configuration.columns.push(generatedColumn);
3002
- this.configuration = __classPrivateFieldGet(this, _cache$3).set(this.configuration);
3003
- this.isCreatingColumn = false;
3004
- return [2 /*return*/];
3005
- });
3006
- }); };
3007
- }
3008
- SdPopupGridConfiguration.prototype.ngOnInit = function () { };
3009
- SdPopupGridConfiguration.prototype.mouseUp = function (event) {
3010
- this.disabledDrag = true;
3011
- };
3012
- SdPopupGridConfiguration.prototype.dropTable = function (event) {
3013
- dragDrop.moveItemInArray(this.configuration.columns, event.previousIndex, event.currentIndex);
3014
- this.table.renderRows();
3015
- };
3016
- SdPopupGridConfiguration.prototype.handleMouseDown = function () {
3017
- this.disabledDrag = false;
3018
- };
3019
- SdPopupGridConfiguration.prototype.handleMouseUp = function () {
3020
- this.disabledDrag = true;
3021
- };
3022
- return SdPopupGridConfiguration;
3023
- }());
3024
- _cache$3 = new WeakMap();
3025
- SdPopupGridConfiguration.decorators = [
3026
- { type: core.Component, args: [{
3027
- selector: 'sd-popup-grid-configuration',
3028
- template: "<sd-modal width=\"sm\" [title]=\"'Configuration' | sdTranslate\" #modal>\r\n <sd-modal-body *ngIf=\"configuration\">\r\n <div *ngIf=\"!isCreatingColumn\" class=\"c-container\">\r\n <div class=\"c-table\" style=\"max-height:70vh\">\r\n <table #table mat-table [dataSource]=\"configuration.columns\"\r\n cdkDropList\r\n [cdkDropListData]=\"configuration.columns\"\r\n (cdkDropListDropped)=\"dropTable($event)\">\r\n >\r\n <ng-container matColumnDef=\"stt\">\r\n <th mat-header-cell class=\"c-th text-center px-5\" *matHeaderCellDef style=\"width:50px\">#\r\n </th>\r\n <td class=\"text-center px-5\" mat-cell *matCellDef=\"let item; let idx = index\">\r\n <div class=\"c-handle\" (mousedown) = \"handleMouseDown()\" (mouseup)=\"handleMouseUp()\">\r\n <svg width=\"24px\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path d=\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\"></path>\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n </svg>\r\n </div>\r\n\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"title\">\r\n <th mat-header-cell class=\"c-th px-5\" *matHeaderCellDef>{{'Title' | sdTranslate}}\r\n </th>\r\n <td class=\"px-5\" mat-cell *matCellDef=\"let item;\">\r\n <sd-input [placeholder]=\"item?.origin?.title\" [(model)]=\"item.title\" disableErrorMessage></sd-input>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"width\">\r\n <th mat-header-cell class=\"c-th px-5\" *matHeaderCellDef style=\"width:80px\">{{'Width' | sdTranslate}}\r\n </th>\r\n <td class=\"px-5\" mat-cell *matCellDef=\"let item;\">\r\n <!-- <span>{{item.width}}</span>\r\n <mat-slider\r\n step=\"1\"\r\n min=\"0\"\r\n [max]=\"+item?.origin?.width*3\"\r\n [(ngModel)]=\"+item.width\"\r\n aria-label=\"units\">\r\n </mat-slider> -->\r\n <sd-input [placeholder]=\"item?.origin?.width\" [(model)]=\"item.width\" disableErrorMessage></sd-input>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"invisible\">\r\n <th mat-header-cell class=\"c-th text-center px-5\" *matHeaderCellDef style=\"width:80px\">{{'Hidden' |\r\n sdTranslate}}\r\n </th>\r\n <td class=\"text-center px-5\" mat-cell *matCellDef=\"let item;\">\r\n <mat-slide-toggle [(ngModel)]=\"item.invisible\" color=\"primary\">\r\n </mat-slide-toggle>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"fixed\">\r\n <th mat-header-cell class=\"c-th text-center px-5\" *matHeaderCellDef style=\"width:80px\">{{'Freeze' |\r\n sdTranslate}}\r\n </th>\r\n <td class=\"text-center px-5\" mat-cell *matCellDef=\"let item;\">\r\n <mat-slide-toggle [(ngModel)]=\"item.fixed\" color=\"primary\"></mat-slide-toggle>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"['stt', 'title', 'width', 'invisible', 'fixed']; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['stt', 'title', 'width', 'invisible', 'fixed'];\" cdkDrag [cdkDragData]=\"row\" cdkDragLockAxis=\"y\" [cdkDragDisabled] = \"disabledDrag\"></tr>\r\n </table>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isCreatingColumn\">\r\n <div class=\"c-table\" style=\"max-height:50vh\">\r\n <table mat-table [dataSource]=\"configuration.columns\">\r\n <ng-container matColumnDef=\"stt\">\r\n <th mat-header-cell class=\"c-th text-center px-5\" *matHeaderCellDef style=\"width:50px\">#\r\n </th>\r\n <td class=\"text-center px-5\" mat-cell *matCellDef=\"let item; let idx = index\">\r\n <sd-checkbox *ngIf=\"isCreatingColumn\" [(model)]=\"selected[item.origin?.field]\"></sd-checkbox>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"title\">\r\n <th mat-header-cell class=\"c-th px-5\" *matHeaderCellDef>{{'Title' | sdTranslate}}\r\n </th>\r\n <td class=\"px-5\" mat-cell *matCellDef=\"let item;\">\r\n <span *ngIf=\"isCreatingColumn\">{{item.title || item?.origin?.title}}</span>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"['stt', 'title']; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: ['stt', 'title'];\"></tr>\r\n </table>\r\n </div>\r\n </div>\r\n </sd-modal-body>\r\n <sd-modal-footer>\r\n <ng-container *ngIf=\"!isCreatingColumn\">\r\n <!-- <sd-button class=\"mr-auto\" (action)=\"createColumn()\" [title]=\"'Create column' | sdTranslate\" color=\"info\"\r\n size=\"sm\">\r\n </sd-button> -->\r\n <sd-button class=\"mr-5\" (action)=\"onReset()\" [title]=\"'Default' | sdTranslate\" color=\"info\" size=\"sm\">\r\n </sd-button>\r\n <sd-button (action)=\"onSave()\" [title]=\"'Save' | sdTranslate\" type=\"fill\" color=\"info\" size=\"sm\">\r\n </sd-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"isCreatingColumn\">\r\n <sd-button class=\"mr-auto\" (action)=\"isCreatingColumn = false\" [title]=\"'Cancel' | sdTranslate\" color=\"info\"\r\n size=\"sm\">\r\n </sd-button>\r\n <sd-button (action)=\"confirm()\" [title]=\"'Confirm' | sdTranslate\" type=\"fill\" color=\"info\" size=\"sm\">\r\n </sd-button>\r\n </ng-container>\r\n </sd-modal-footer>\r\n</sd-modal>",
3029
- styles: [".c-table{overflow:auto;position:relative}.c-table table{width:100%}.c-table .c-th{color:#000;font-size:14px;font-weight:500;line-height:20px}.c-container{min-height:200px;position:relative}.c-handle{color:#ccc;cursor:move}"]
3030
- },] }
3031
- ];
3032
- SdPopupGridConfiguration.ctorParameters = function () { return [
3033
- { type: core.ChangeDetectorRef },
3034
- { type: notify.SdNotifyService },
3035
- { type: translate.SdTranslateService },
3036
- { type: SdTableConfigurationService }
3037
- ]; };
3038
- SdPopupGridConfiguration.propDecorators = {
3039
- gridOption: [{ type: core.Input }],
3040
- key: [{ type: core.Input }],
3041
- modal: [{ type: core.ViewChild, args: ['modal',] }],
3042
- table: [{ type: core.ViewChild, args: ['table',] }],
3043
- mouseUp: [{ type: core.HostListener, args: ['window:mouseup', ['$event'],] }]
3044
- };
3045
-
3046
2838
  var SdColumnTooltipPipe = /** @class */ (function () {
3047
2839
  function SdColumnTooltipPipe() {
3048
2840
  }
@@ -3358,12 +3150,12 @@
3358
3150
  {
3359
3151
  value: 'GREATER_OR_EQUAL',
3360
3152
  symbol: '≥',
3361
- display: 'Lớn hơn, hoặc bằng'
3153
+ display: 'Lớn hơn, hoặc bằng',
3362
3154
  },
3363
3155
  {
3364
3156
  value: 'LESS_OR_EQUAL',
3365
3157
  symbol: '≤',
3366
- display: 'Nhỏ hơn, hoặc bằng'
3158
+ display: 'Nhỏ hơn, hoặc bằng',
3367
3159
  },
3368
3160
  {
3369
3161
  value: 'CONTAIN',
@@ -3378,22 +3170,22 @@
3378
3170
  {
3379
3171
  value: 'START_WITH',
3380
3172
  symbol: 'line_start_circle',
3381
- display: 'Bắt đầu bởi'
3173
+ display: 'Bắt đầu bởi',
3382
3174
  },
3383
3175
  {
3384
3176
  value: 'END_WITH',
3385
3177
  symbol: 'line_end_circle',
3386
- display: 'Kết thúc bởi'
3178
+ display: 'Kết thúc bởi',
3387
3179
  },
3388
3180
  {
3389
3181
  value: 'IN',
3390
3182
  symbol: 'checklist_rtl',
3391
- display: 'Nằm trong'
3183
+ display: 'Nằm trong',
3392
3184
  },
3393
3185
  {
3394
3186
  value: 'NOT_IN',
3395
3187
  symbol: 'event_list',
3396
- display: 'Không nằm trong'
3188
+ display: 'Không nằm trong',
3397
3189
  },
3398
3190
  ];
3399
3191
 
@@ -3407,6 +3199,7 @@
3407
3199
  this.inlineOperatorChange = new core.EventEmitter();
3408
3200
  this.columnFilter = {};
3409
3201
  this.operators = [];
3202
+ this.items = [];
3410
3203
  this.filterChange = new core.EventEmitter();
3411
3204
  _valueChanges.set(this, new rxjs.Subject());
3412
3205
  _subcription.set(this, new rxjs.Subscription());
@@ -3451,7 +3244,7 @@
3451
3244
  });
3452
3245
  Object.defineProperty(SdColumnInlineFilter.prototype, "_column", {
3453
3246
  set: function (column) {
3454
- var _a, _b, _c;
3247
+ var _a, _b, _c, _d;
3455
3248
  this.column = column;
3456
3249
  if (!((_a = column === null || column === void 0 ? void 0 : column.filter) === null || _a === void 0 ? void 0 : _a.disabled) && ((_c = (_b = column === null || column === void 0 ? void 0 : column.filter) === null || _b === void 0 ? void 0 : _b.operator) === null || _c === void 0 ? void 0 : _c.enable)) {
3457
3250
  this.operators = SdFilterOperators.filter(function (e) { var _a, _b; return (_b = (_a = column.filter.operator.list) === null || _a === void 0 ? void 0 : _a.includes) === null || _b === void 0 ? void 0 : _b.call(_a, e.value); });
@@ -3459,6 +3252,17 @@
3459
3252
  else {
3460
3253
  this.operators = [];
3461
3254
  }
3255
+ if (this.column.type === 'values') {
3256
+ if (Array.isArray(this.column.option.items)) {
3257
+ this.items = this.column.option.items;
3258
+ }
3259
+ else {
3260
+ this.items = ((_d = this.cacheValues) === null || _d === void 0 ? void 0 : _d[column.field]) || [];
3261
+ }
3262
+ }
3263
+ else if (this.column.type === 'lazy-values') {
3264
+ this.items = this.column.option.items;
3265
+ }
3462
3266
  },
3463
3267
  enumerable: false,
3464
3268
  configurable: true
@@ -3468,7 +3272,7 @@
3468
3272
  __classPrivateFieldGet(this, _subcription).add(__classPrivateFieldGet(this, _valueChanges).pipe(operators.startWith(this.columnFilter)).subscribe(function () {
3469
3273
  var _a, _b;
3470
3274
  if (_this.column.type === 'date' || _this.column.type === 'time' || _this.column.type === 'datetime') {
3471
- if (!((_b = (_a = _this.column) === null || _a === void 0 ? void 0 : _a.option) === null || _b === void 0 ? void 0 : _b.useFilterDate)) {
3275
+ if (!((_b = (_a = _this.column) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.useFilterDate)) {
3472
3276
  _this.columnFilter[_this.column.field] = _this.columnFilter[_this.column.field] || {
3473
3277
  from: null,
3474
3278
  to: null,
@@ -3486,7 +3290,7 @@
3486
3290
  SdColumnInlineFilter.decorators = [
3487
3291
  { type: core.Component, args: [{
3488
3292
  selector: 'sd-column-inline-filter',
3489
- template: "<div class=\"d-flex c-inline-column\">\r\n <ng-container\r\n *ngIf=\"\r\n column.type === 'string' ||\r\n column.type === 'number' ||\r\n column.type === 'bool' ||\r\n column.type === 'values' ||\r\n column.type === 'date' ||\r\n column.type === 'datetime' ||\r\n column.type === 'time';\r\n else noFilter\r\n \">\r\n <div class=\"d-flex align-items-center\" *ngIf=\"operators.length\">\r\n <!-- Only number column icon broken. add mb when not default symbol -->\r\n <sd-button class=\"{{ (column.type === 'number' && inlineSymbol !== 'filter_alt') ? 'mb-4 mr-2 ' :'mr-2 '}}\" fontSet=\"material-symbols-outlined\" [icon]=\"inlineSymbol\" size=\"sm\"\r\n [matMenuTriggerFor]=\"menu\" type=\"link\"> </sd-button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button *ngFor=\"let operator of operators\" (click)=\"onChangeOperator(operator)\" mat-menu-item type=\"button\">\r\n <mat-icon fontSet=\"material-symbols-outlined\" class=\"{{column.type === 'number' ? 'mb-8 ':''}}\">{{ operator.symbol }}</mat-icon>\r\n <span> {{ operator.display }}</span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <sd-input\r\n *ngIf=\"column.type === 'string'\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n type=\"text\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-input>\r\n <sd-input-number\r\n *ngIf=\"column.type === 'number'\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-input-number>\r\n <sd-select\r\n *ngIf=\"column.type === 'bool'\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n [items]=\"[\r\n { value: '1', display: column.option?.displayOnTrue || 'True' },\r\n { value: '0', display: column.option?.displayOnFalse || 'False' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n <ng-template sdSelectDisplayDef let-item=\"item\">\r\n <sd-badge *ngIf=\"item.value === '1'\" color=\"success\" [title]=\"column.option?.displayOnTrue || 'True'\"> </sd-badge>\r\n <sd-badge *ngIf=\"item.value === '0'\" color=\"danger\" [title]=\"column.option?.displayOnFalse || 'False'\"> </sd-badge>\r\n </ng-template>\r\n </sd-select>\r\n <sd-select\r\n *ngIf=\"column.type === 'values' && column?.option?.selection !== 'AUTOCOMPLETE'\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n [items]=\"column.option.items\"\r\n [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\"\r\n [multiple]=\"column?.option?.selection === 'MULTIPLE' || column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\"\r\n [filtered]=\"column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\">\r\n </sd-select>\r\n <sd-autocomplete\r\n *ngIf=\"column.type === 'values' && column?.option?.selection === 'AUTOCOMPLETE'\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n [items]=\"column.option.items\"\r\n [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-autocomplete>\r\n <ng-container *ngIf=\"column.type === 'date' || column.type === 'datetime' || column.type === 'time'\">\r\n <sd-date-range\r\n *ngIf=\"!column.option?.useFilterDate\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n [(from)]=\"columnFilter[column.field].from\"\r\n [(to)]=\"columnFilter[column.field].to\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-date-range>\r\n <sd-date-time\r\n *ngIf=\"column.option?.useFilterDate\"\r\n style=\"flex: 1\"\r\n type=\"date\"\r\n size=\"sm\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-date-time>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #noFilter>\r\n <sd-input type=\"text\" size=\"sm\" disabled> </sd-input>\r\n </ng-template>\r\n</div>\r\n",
3293
+ template: "<div class=\"d-flex c-inline-column align-items-end\">\r\n <ng-container\r\n *ngIf=\"\r\n column.type === 'string' ||\r\n column.type === 'number' ||\r\n column.type === 'bool' ||\r\n column.type === 'values' ||\r\n column.type === 'lazy-values' ||\r\n column.type === 'date' ||\r\n column.type === 'datetime' ||\r\n column.type === 'time';\r\n else noFilter\r\n \">\r\n <div class=\"d-flex align-items-center\" *ngIf=\"operators.length\">\r\n <!-- Only number column icon broken. add mb when not default symbol -->\r\n <sd-button class=\"{{ (column.type === 'number' && inlineSymbol !== 'filter_alt') ? 'mb-4 mr-2 ' :'mr-2 '}}\" fontSet=\"material-symbols-outlined\" [icon]=\"inlineSymbol\" size=\"sm\"\r\n [matMenuTriggerFor]=\"menu\" type=\"link\"> </sd-button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button *ngFor=\"let operator of operators\" (click)=\"onChangeOperator(operator)\" mat-menu-item type=\"button\">\r\n <mat-icon fontSet=\"material-symbols-outlined\" class=\"{{column.type === 'number' ? 'mb-8 ':''}}\">{{ operator.symbol }}</mat-icon>\r\n <span> {{ operator.display }}</span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <sd-input\r\n *ngIf=\"column.type === 'string'\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n type=\"text\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-input>\r\n <sd-input-number\r\n *ngIf=\"column.type === 'number'\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-input-number>\r\n <sd-select\r\n *ngIf=\"column.type === 'bool'\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n [items]=\"[\r\n { value: '1', display: column.option?.displayOnTrue || 'True' },\r\n { value: '0', display: column.option?.displayOnFalse || 'False' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n <ng-template sdSelectDisplayDef let-item=\"item\">\r\n <sd-badge *ngIf=\"item.value === '1'\" color=\"success\" [title]=\"column.option?.displayOnTrue || 'True'\"> </sd-badge>\r\n <sd-badge *ngIf=\"item.value === '0'\" color=\"danger\" [title]=\"column.option?.displayOnFalse || 'False'\"> </sd-badge>\r\n </ng-template>\r\n </sd-select>\r\n <sd-select\r\n *ngIf=\"(column.type === 'values' || column.type === 'lazy-values') && column?.option?.selection !== 'AUTOCOMPLETE'\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n [items]=\"items\"\r\n [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\"\r\n [multiple]=\"column?.option?.selection === 'MULTIPLE' || column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\"\r\n [filtered]=\"column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\">\r\n </sd-select>\r\n <sd-autocomplete\r\n *ngIf=\"(column.type === 'values' || column.type === 'lazy-values') && column?.option?.selection === 'AUTOCOMPLETE'\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n [items]=\"items\"\r\n [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-autocomplete>\r\n <ng-container *ngIf=\"column.type === 'date' || column.type === 'datetime' || column.type === 'time'\">\r\n <sd-date-range\r\n *ngIf=\"!column.filter?.useFilterDate\"\r\n style=\"flex: 1\"\r\n size=\"sm\"\r\n [(from)]=\"columnFilter[column.field].from\"\r\n [(to)]=\"columnFilter[column.field].to\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-date-range>\r\n <sd-date-time\r\n *ngIf=\"column.filter?.useFilterDate\"\r\n style=\"flex: 1\"\r\n type=\"date\"\r\n size=\"sm\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-date-time>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #noFilter>\r\n <sd-input type=\"text\" size=\"sm\" disabled> </sd-input>\r\n </ng-template>\r\n</div>\r\n",
3490
3294
  changeDetection: core.ChangeDetectionStrategy.OnPush,
3491
3295
  styles: [":host ::ng-deep .c-inline-column .mat-form-field-wrapper{background-color:#fff;border-radius:8px;margin:8px 0 0!important;padding:0!important}"]
3492
3296
  },] }
@@ -3499,6 +3303,7 @@
3499
3303
  _inlineOperator: [{ type: core.Input, args: ['inlineOperator',] }],
3500
3304
  inlineOperatorChange: [{ type: core.Output }],
3501
3305
  _columnFilter: [{ type: core.Input, args: ['columnFilter',] }],
3306
+ cacheValues: [{ type: core.Input }],
3502
3307
  _column: [{ type: core.Input, args: ['column',] }],
3503
3308
  filterChange: [{ type: core.Output }]
3504
3309
  };
@@ -3605,223 +3410,31 @@
3605
3410
  },] }
3606
3411
  ];
3607
3412
 
3608
- var SdGridQuickAction = /** @class */ (function () {
3609
- function SdGridQuickAction() {
3413
+ var SdTableQuickAction = /** @class */ (function () {
3414
+ function SdTableQuickAction() {
3610
3415
  var _this = this;
3611
3416
  this.clear = new core.EventEmitter();
3612
3417
  this.onClear = function () {
3613
3418
  _this.clear.emit();
3614
3419
  };
3615
3420
  }
3616
- return SdGridQuickAction;
3421
+ return SdTableQuickAction;
3617
3422
  }());
3618
- SdGridQuickAction.decorators = [
3423
+ SdTableQuickAction.decorators = [
3619
3424
  { type: core.Component, args: [{
3620
- selector: 'sd-grid-quick-action',
3425
+ selector: 'sd-table-quick-action',
3621
3426
  template: "<sd-quick-action *ngIf=\"selectedItems | selectionActionFilter: gridOption?.selector?.actions as actions\"\r\n [isOpened]=\"actions?.length\">\r\n <div class=\"d-flex align-items-center\" sdMessage>\r\n <div class=\"c-bg-length\">\r\n <span class=\"c-length\">{{ selectedItems.length }}</span>\r\n </div>\r\n <div class=\"c-message\">{{ gridOption?.selector?.message || 'd\u1EEF li\u1EC7u \u0111\u01B0\u1EE3c ch\u1ECDn' }}</div>\r\n </div>\r\n <div class=\"d-flex align-items-center mr-8\" sdAction>\r\n <ng-container *ngFor=\"let action of actions\">\r\n <sd-button *ngIf=\"action.click\" class=\"ml-5\" [tooltip]=\"action.tooltip\" [icon]=\"action.icon\"\r\n [color]=\"action.color || 'secondary'\" [type]=\"action.type || 'light'\" [fontSet]=\"action.fontSet\"\r\n [title]=\"action.title\" size=\"sm\" (action)=\"action.click(selectedItems)\"></sd-button>\r\n <ng-container *ngIf=\"action.children?.length\">\r\n <sd-button class=\"ml-5\" [tooltip]=\"action.tooltip\" [icon]=\"action.icon || 'more_vert'\"\r\n [color]=\"action.color || 'secondary'\" [type]=\"action.type || 'light'\" [fontSet]=\"action.fontSet\"\r\n [title]=\"action.title\" size=\"sm\" [matMenuTriggerFor]=\"menu\">\r\n </sd-button>\r\n <mat-menu #menu=\"matMenu\">\r\n <span>\r\n <button *ngFor=\"let childAction of action.children\" mat-menu-item (click)=\"childAction.click(selectedItems)\"\r\n [disabled]=\"childAction.disabled\">\r\n <mat-icon [fontSet]=\"childAction.fontSet\" class=\"c-icon\">{{ childAction.icon }}\r\n </mat-icon>\r\n <span> {{ childAction.title }}</span>\r\n </button>\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n <sd-button class=\"ml-5\" icon=\"close\" color=\"secondary\" type=\"outline\" size=\"sm\"\r\n (action)=\"onClear()\" width=\"35px\"></sd-button>\r\n </div>\r\n</sd-quick-action>",
3622
3427
  changeDetection: core.ChangeDetectionStrategy.OnPush,
3623
3428
  styles: [".c-bg-length{align-items:flex-start;background:#2962ff;border-radius:4px 0 0 4px;display:flex;flex-direction:column;height:48px;left:0;min-width:48px;padding:12px 8px;position:static;top:0;width:auto}.c-bg-length .c-length{color:#fff;font-size:16px;font-weight:500;height:24px;left:8px;line-height:24px;min-width:32px;text-align:center;top:12px;width:auto}.c-bg-length .c-length,.c-message{font-family:Roboto;font-style:normal;position:static}.c-message{color:#000;font-size:14px;font-weight:400;height:20px;left:0;line-height:20px;margin:0 0 0 16px;min-width:200px;top:6px}"]
3624
3429
  },] }
3625
3430
  ];
3626
- SdGridQuickAction.ctorParameters = function () { return []; };
3627
- SdGridQuickAction.propDecorators = {
3431
+ SdTableQuickAction.ctorParameters = function () { return []; };
3432
+ SdTableQuickAction.propDecorators = {
3628
3433
  gridOption: [{ type: core.Input }],
3629
3434
  selectedItems: [{ type: core.Input }],
3630
3435
  clear: [{ type: core.Output }]
3631
3436
  };
3632
3437
 
3633
- var _maxSecond, _maxMinute, _maxHour, _maxDay, _maxMonth, _isMobileOrTablet$1;
3634
- var SdCellViewPipe = /** @class */ (function () {
3635
- function SdCellViewPipe(deviceService, utilityService, columnValuesPipe) {
3636
- this.utilityService = utilityService;
3637
- this.columnValuesPipe = columnValuesPipe;
3638
- _maxSecond.set(this, 60);
3639
- _maxMinute.set(this, __classPrivateFieldGet(this, _maxSecond) * 60);
3640
- _maxHour.set(this, __classPrivateFieldGet(this, _maxMinute) * 24);
3641
- _maxDay.set(this, __classPrivateFieldGet(this, _maxHour) * 30);
3642
- _maxMonth.set(this, __classPrivateFieldGet(this, _maxHour) * 365);
3643
- _isMobileOrTablet$1.set(this, false);
3644
- __classPrivateFieldSet(this, _isMobileOrTablet$1, !deviceService.isDesktop());
3645
- }
3646
- SdCellViewPipe.prototype.transform = function (value, tableItem, column, gridOption) {
3647
- var _a;
3648
- return __awaiter(this, void 0, void 0, function () {
3649
- var displayOnEmpty, rowData, align, click, tooltip, htmlTemplate, transform, result, transformDate, val, _b, option, seconds, date, time, dateTime, _c, option, values, display, emptyValues;
3650
- return __generator(this, function (_d) {
3651
- switch (_d.label) {
3652
- case 0:
3653
- displayOnEmpty = gridOption.displayOnEmpty;
3654
- rowData = tableItem.current;
3655
- align = column.align, click = column.click, tooltip = column.tooltip, htmlTemplate = column.htmlTemplate, transform = column.transform;
3656
- result = {
3657
- badge: null,
3658
- tooltip: null,
3659
- display: {
3660
- align: align || (column.type === 'number' ? 'right' : 'left'),
3661
- value: value
3662
- },
3663
- click: null
3664
- };
3665
- if (!(typeof (htmlTemplate) === 'function')) return [3 /*break*/, 1];
3666
- result.display.hasHtml = true;
3667
- result.display.html = htmlTemplate(value, rowData, __classPrivateFieldGet(this, _isMobileOrTablet$1));
3668
- return [3 /*break*/, 10];
3669
- case 1:
3670
- if (column.type === 'datetime' || column.type === 'date' || column.type === 'time') {
3671
- transformDate = column.transformDate;
3672
- if (transformDate) {
3673
- value = transformDate(value, rowData);
3674
- }
3675
- }
3676
- if (!(typeof (transform) === 'function')) return [3 /*break*/, 5];
3677
- val = transform(value, rowData);
3678
- if (!(val instanceof Promise)) return [3 /*break*/, 3];
3679
- _b = result.display;
3680
- return [4 /*yield*/, val];
3681
- case 2:
3682
- _b.value = _d.sent();
3683
- return [3 /*break*/, 4];
3684
- case 3:
3685
- result.display.value = val;
3686
- _d.label = 4;
3687
- case 4: return [3 /*break*/, 9];
3688
- case 5:
3689
- if (column.type === 'date' || column.type === 'datetime') {
3690
- option = column.option;
3691
- seconds = Math.round((new Date().getTime() - new Date(value).getTime()) / 1000);
3692
- if ((option === null || option === void 0 ? void 0 : option.timeDifferent) === 'month' && seconds < __classPrivateFieldGet(this, _maxMonth)) {
3693
- result.display.value = this.utilityService.timeDifference(value);
3694
- result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');
3695
- }
3696
- else if ((option === null || option === void 0 ? void 0 : option.timeDifferent) === 'day' && seconds < __classPrivateFieldGet(this, _maxDay)) {
3697
- result.display.value = this.utilityService.timeDifference(value);
3698
- result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');
3699
- }
3700
- else if ((option === null || option === void 0 ? void 0 : option.timeDifferent) === 'hour' && seconds < __classPrivateFieldGet(this, _maxHour)) {
3701
- result.display.value = this.utilityService.timeDifference(value);
3702
- result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');
3703
- }
3704
- else if ((option === null || option === void 0 ? void 0 : option.timeDifferent) === 'minute' && seconds < __classPrivateFieldGet(this, _maxMinute)) {
3705
- result.display.value = this.utilityService.timeDifference(value);
3706
- result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');
3707
- }
3708
- else if ((option === null || option === void 0 ? void 0 : option.timeDifferent) === 'second' && seconds < __classPrivateFieldGet(this, _maxSecond)) {
3709
- result.display.value = this.utilityService.timeDifference(value);
3710
- result.tooltip = Date.toFormat(value, column.type === 'date' ? 'dd/MM/yyyy' : 'dd/MM/yyyy HH:mm');
3711
- }
3712
- else {
3713
- date = Date.toFormat(value, 'dd/MM/yyyy');
3714
- time = Date.toFormat(value, 'HH:mm');
3715
- dateTime = Date.toFormat(value, 'HH:mm');
3716
- if (column.type === 'datetime' && time && time !== '00:00') {
3717
- result.display.value = dateTime;
3718
- result.display.hasHtml = true;
3719
- result.display.html = "<span class=\"d-block T14R text-black400\">" + Date.toFormat(value, 'HH:mm') + "</span><span class=\"d-block T14R\">" + Date.toFormat(value, 'dd/MM/yyyy') + "</span>";
3720
- }
3721
- else {
3722
- result.display.value = date;
3723
- }
3724
- }
3725
- }
3726
- if (column.type === 'time') {
3727
- result.display.value = Date.toFormat(value, 'HH:mm');
3728
- }
3729
- if (!(column.type === 'values')) return [3 /*break*/, 7];
3730
- _c = result.display;
3731
- return [4 /*yield*/, this.columnValuesPipe.transform(value, column)];
3732
- case 6:
3733
- _c.value = _d.sent();
3734
- return [3 /*break*/, 8];
3735
- case 7:
3736
- if (column.type === 'number' && Number.isNumber(value)) {
3737
- result.display.value = Number.toVNCurrency(value);
3738
- }
3739
- _d.label = 8;
3740
- case 8:
3741
- if (column.type === 'bool') {
3742
- option = column.option;
3743
- if (value !== undefined && value !== null && value !== '') {
3744
- result.display.value = value === true ? ((option === null || option === void 0 ? void 0 : option.displayOnTrue) || 'True') : ((option === null || option === void 0 ? void 0 : option.displayOnFalse) || 'False');
3745
- }
3746
- else {
3747
- result.display.value = null;
3748
- }
3749
- }
3750
- _d.label = 9;
3751
- case 9:
3752
- if (displayOnEmpty) {
3753
- values = [null, undefined, ''];
3754
- if (typeof (displayOnEmpty) === 'object') {
3755
- display = displayOnEmpty.display, emptyValues = displayOnEmpty.emptyValues;
3756
- values = __spread([null, undefined, ''], emptyValues);
3757
- if (values.includes(result.display.value)) {
3758
- if (typeof (display) === 'function') {
3759
- result.display.hasHtml = true;
3760
- result.display.html = display(rowData, column);
3761
- }
3762
- else {
3763
- result.display.hasHtml = true;
3764
- result.display.html = "<div class=\"T16R text-black400\">--</div>";
3765
- }
3766
- }
3767
- }
3768
- else {
3769
- if (values.includes(result.display.value)) {
3770
- if (typeof (displayOnEmpty) === 'function') {
3771
- result.display.hasHtml = true;
3772
- result.display.html = displayOnEmpty(rowData, column);
3773
- }
3774
- else {
3775
- result.display.hasHtml = true;
3776
- result.display.html = "<div class=\"T16R text-black400\">--</div>";
3777
- }
3778
- }
3779
- }
3780
- }
3781
- _d.label = 10;
3782
- case 10:
3783
- // Badge
3784
- if ((column.type === 'string' || column.type === 'number' || column.type === 'values') && column.badge) {
3785
- result.badge = {
3786
- type: !(column === null || column === void 0 ? void 0 : column.badgeType) ? 'round' : column.badgeType,
3787
- color: column.badge(value, rowData),
3788
- icon: (_a = column === null || column === void 0 ? void 0 : column.badgeIcon) === null || _a === void 0 ? void 0 : _a.call(column, value, rowData)
3789
- };
3790
- }
3791
- else if (column.type === 'bool') {
3792
- result.badge = {
3793
- type: !(column === null || column === void 0 ? void 0 : column.badgeType) ? 'round' : column.badgeType,
3794
- color: !!value ? 'success' : 'danger',
3795
- icon: null
3796
- };
3797
- }
3798
- // Tooltip
3799
- if (typeof (tooltip) === 'function') {
3800
- result.tooltip = tooltip(value, rowData);
3801
- }
3802
- // Clickable
3803
- if (typeof (click) === 'function') {
3804
- result.click = function () { return click(value, rowData); };
3805
- }
3806
- return [2 /*return*/, result];
3807
- }
3808
- });
3809
- });
3810
- };
3811
- return SdCellViewPipe;
3812
- }());
3813
- _maxSecond = new WeakMap(), _maxMinute = new WeakMap(), _maxHour = new WeakMap(), _maxDay = new WeakMap(), _maxMonth = new WeakMap(), _isMobileOrTablet$1 = new WeakMap();
3814
- SdCellViewPipe.decorators = [
3815
- { type: core.Pipe, args: [{
3816
- name: 'cellView'
3817
- },] }
3818
- ];
3819
- SdCellViewPipe.ctorParameters = function () { return [
3820
- { type: ngxDeviceDetector.DeviceDetectorService },
3821
- { type: utility.SdUtilityService },
3822
- { type: SdColumnValuesPipe }
3823
- ]; };
3824
-
3825
3438
  var SdGroupPipe = /** @class */ (function () {
3826
3439
  function SdGroupPipe() {
3827
3440
  }
@@ -3969,7 +3582,7 @@
3969
3582
  group.SdGroupModule,
3970
3583
  ],
3971
3584
  declarations: [
3972
- SdGridQuickAction,
3585
+ SdTableQuickAction,
3973
3586
  SdDesktopCell,
3974
3587
  SdDesktopCellView,
3975
3588
  SdDesktopCommand,
@@ -3980,28 +3593,21 @@
3980
3593
  SdMaterialFilterDefDirective,
3981
3594
  SdMaterialSubInformationDefDirective,
3982
3595
  SdMaterialEmptyDataDefDirective,
3983
- SdPopupGridConfiguration,
3984
- SdGridFilter,
3596
+ SdPopupConfiguration,
3597
+ SdTableFilter,
3985
3598
  SdPopupFilter,
3986
3599
  // Pipes
3987
- SdGridConfigurationResultPipe,
3988
- SdColumnChildrenFilterPipe,
3989
3600
  SdCommandFilterPipe,
3990
3601
  SdCommandDisablePipe,
3991
3602
  SdCommandIconPipe,
3992
3603
  SdCommandTitlePipe,
3993
- SdColumnValuesPipe,
3994
- SdColumnHtmlTemplatePipe,
3995
- SdColumnTransformPipe,
3996
3604
  SdColumnTooltipPipe,
3997
- SdColumnBadgePipe,
3998
3605
  SdFilterColumnPipe,
3999
3606
  SdFilterExternalPipe,
4000
3607
  SdSelectionActionFilterPipe,
4001
3608
  SdSelectionVisiblePipe,
4002
3609
  SdSelectionDisablePipe,
4003
3610
  SdSelectionVisibleSelectAllPipe,
4004
- SdCellViewPipe,
4005
3611
  SdGroupPipe,
4006
3612
  ],
4007
3613
  exports: [
@@ -4018,7 +3624,6 @@
4018
3624
  table$1.CdkColumnDef,
4019
3625
  SdTableFilterService,
4020
3626
  SdTableConfigurationService,
4021
- SdColumnValuesPipe,
4022
3627
  {
4023
3628
  provide: paginator.MatPaginatorIntl,
4024
3629
  useClass: MatPaginatorIntlCro,
@@ -4037,41 +3642,34 @@
4037
3642
  exports.SdTable = SdTable;
4038
3643
  exports.SdTableModule = SdTableModule;
4039
3644
  exports.TABLE_CONFIG = TABLE_CONFIG;
4040
- exports.ɵa = SdGridQuickAction;
3645
+ exports.ɵa = SdTableQuickAction;
4041
3646
  exports.ɵb = SdDesktopCell;
4042
- exports.ɵba = SdColumnTooltipPipe;
4043
- exports.ɵbb = SdColumnBadgePipe;
4044
- exports.ɵbc = SdFilterColumnPipe;
4045
- exports.ɵbd = SdFilterExternalPipe;
4046
- exports.ɵbe = SdSelectionActionFilterPipe;
4047
- exports.ɵbf = SdSelectionVisiblePipe;
4048
- exports.ɵbg = SdSelectionDisablePipe;
4049
- exports.ɵbh = SdSelectionVisibleSelectAllPipe;
4050
- exports.ɵbi = SdCellViewPipe;
4051
- exports.ɵbj = SdGroupPipe;
3647
+ exports.ɵba = SdSelectionDisablePipe;
3648
+ exports.ɵbb = SdSelectionVisibleSelectAllPipe;
3649
+ exports.ɵbc = SdGroupPipe;
4052
3650
  exports.ɵc = SdDesktopCellView;
4053
3651
  exports.ɵd = SdDesktopCommand;
4054
3652
  exports.ɵe = SdColumnInlineFilter;
4055
- exports.ɵf = SdGridFilter;
4056
- exports.ɵg = SdPopupFilter;
4057
- exports.ɵh = SdMaterialSubInformationDefDirective;
4058
- exports.ɵi = SdMaterialEmptyDataDefDirective;
4059
- exports.ɵj = SdMaterialCellDefDirective;
4060
- exports.ɵk = SdMaterialFooterDefDirective;
4061
- exports.ɵl = SdMaterialFilterDefDirective;
4062
- exports.ɵn = TABLE_CONFIG;
4063
- exports.ɵo = SdTableConfigurationService;
4064
- exports.ɵp = SdColumnValuesPipe;
3653
+ exports.ɵf = SdPopupConfiguration;
3654
+ exports.ɵg = SdTableConfigurationService;
3655
+ exports.ɵi = TABLE_CONFIG;
3656
+ exports.ɵj = SdTableFilter;
3657
+ exports.ɵk = SdPopupFilter;
3658
+ exports.ɵl = SdMaterialSubInformationDefDirective;
3659
+ exports.ɵm = SdMaterialEmptyDataDefDirective;
3660
+ exports.ɵn = SdMaterialCellDefDirective;
3661
+ exports.ɵo = SdMaterialFooterDefDirective;
3662
+ exports.ɵp = SdMaterialFilterDefDirective;
4065
3663
  exports.ɵq = SdTableFilterService;
4066
- exports.ɵr = SdPopupGridConfiguration;
4067
- exports.ɵs = SdGridConfigurationResultPipe;
4068
- exports.ɵt = SdColumnChildrenFilterPipe;
4069
- exports.ɵu = SdCommandFilterPipe;
4070
- exports.ɵv = SdCommandDisablePipe;
4071
- exports.ɵw = SdCommandIconPipe;
4072
- exports.ɵx = SdCommandTitlePipe;
4073
- exports.ɵy = SdColumnHtmlTemplatePipe;
4074
- exports.ɵz = SdColumnTransformPipe;
3664
+ exports.ɵr = SdCommandFilterPipe;
3665
+ exports.ɵs = SdCommandDisablePipe;
3666
+ exports.ɵt = SdCommandIconPipe;
3667
+ exports.ɵu = SdCommandTitlePipe;
3668
+ exports.ɵv = SdColumnTooltipPipe;
3669
+ exports.ɵw = SdFilterColumnPipe;
3670
+ exports.ɵx = SdFilterExternalPipe;
3671
+ exports.ɵy = SdSelectionActionFilterPipe;
3672
+ exports.ɵz = SdSelectionVisiblePipe;
4075
3673
 
4076
3674
  Object.defineProperty(exports, '__esModule', { value: true });
4077
3675