@updevs/components 1.0.0-alpha.98 → 1.0.0-beta.1

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 (688) hide show
  1. package/fesm2022/updevs-components-badge.mjs +21 -21
  2. package/fesm2022/updevs-components-badge.mjs.map +1 -1
  3. package/fesm2022/updevs-components-button.mjs +39 -39
  4. package/fesm2022/updevs-components-button.mjs.map +1 -1
  5. package/fesm2022/updevs-components-calendar.mjs +41 -41
  6. package/fesm2022/updevs-components-calendar.mjs.map +1 -1
  7. package/fesm2022/updevs-components-card.mjs +24 -20
  8. package/fesm2022/updevs-components-card.mjs.map +1 -1
  9. package/fesm2022/updevs-components-drag-and-drop.mjs +17 -17
  10. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -1
  11. package/fesm2022/updevs-components-dropdown.mjs +10 -10
  12. package/fesm2022/updevs-components-dropdown.mjs.map +1 -1
  13. package/fesm2022/updevs-components-form-controls-abstractions.mjs +19 -19
  14. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -1
  15. package/fesm2022/updevs-components-form-controls-checkbox.mjs +16 -16
  16. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -1
  17. package/fesm2022/updevs-components-form-controls-date-picker.mjs +8 -8
  18. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -1
  19. package/fesm2022/updevs-components-form-controls-file-upload.mjs +26 -26
  20. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -1
  21. package/fesm2022/updevs-components-form-controls-input.mjs +16 -14
  22. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -1
  23. package/fesm2022/updevs-components-form-controls-radio.mjs +8 -8
  24. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -1
  25. package/fesm2022/updevs-components-form-controls-select.mjs +52 -48
  26. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -1
  27. package/fesm2022/updevs-components-form-controls-textarea.mjs +15 -15
  28. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -1
  29. package/fesm2022/updevs-components-form-controls-time-picker.mjs +12 -12
  30. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -1
  31. package/fesm2022/updevs-components-form.mjs +31 -31
  32. package/fesm2022/updevs-components-form.mjs.map +1 -1
  33. package/fesm2022/updevs-components-layout.mjs +112 -110
  34. package/fesm2022/updevs-components-layout.mjs.map +1 -1
  35. package/fesm2022/updevs-components-link.mjs +8 -8
  36. package/fesm2022/updevs-components-link.mjs.map +1 -1
  37. package/fesm2022/updevs-components-list.mjs +8 -8
  38. package/fesm2022/updevs-components-list.mjs.map +1 -1
  39. package/fesm2022/updevs-components-modal.mjs +25 -24
  40. package/fesm2022/updevs-components-modal.mjs.map +1 -1
  41. package/fesm2022/updevs-components-paginator.mjs +36 -36
  42. package/fesm2022/updevs-components-paginator.mjs.map +1 -1
  43. package/fesm2022/updevs-components-popover.mjs +13 -12
  44. package/fesm2022/updevs-components-popover.mjs.map +1 -1
  45. package/fesm2022/updevs-components-pricing.mjs +22 -22
  46. package/fesm2022/updevs-components-pricing.mjs.map +1 -1
  47. package/fesm2022/updevs-components-table.mjs +181 -208
  48. package/fesm2022/updevs-components-table.mjs.map +1 -1
  49. package/fesm2022/updevs-components.mjs +4 -4
  50. package/package.json +67 -111
  51. package/types/updevs-components-badge.d.ts +44 -0
  52. package/types/updevs-components-button.d.ts +75 -0
  53. package/types/updevs-components-calendar.d.ts +175 -0
  54. package/{card/card.component.d.ts → types/updevs-components-card.d.ts} +50 -12
  55. package/types/updevs-components-drag-and-drop.d.ts +74 -0
  56. package/{dropdown/dropdown.component.d.ts → types/updevs-components-dropdown.d.ts} +52 -8
  57. package/types/updevs-components-form-controls-abstractions.d.ts +49 -0
  58. package/types/updevs-components-form-controls-checkbox.d.ts +33 -0
  59. package/{form-controls/date-picker/date-picker.component.d.ts → types/updevs-components-form-controls-date-picker.d.ts} +17 -3
  60. package/types/updevs-components-form-controls-file-upload.d.ts +69 -0
  61. package/{form-controls/input/input.component.d.ts → types/updevs-components-form-controls-input.d.ts} +33 -7
  62. package/{form-controls/radio/radio.component.d.ts → types/updevs-components-form-controls-radio.d.ts} +14 -2
  63. package/types/updevs-components-form-controls-select.d.ts +200 -0
  64. package/types/updevs-components-form-controls-textarea.d.ts +31 -0
  65. package/types/updevs-components-form-controls-time-picker.d.ts +164 -0
  66. package/types/updevs-components-form.d.ts +356 -0
  67. package/types/updevs-components-layout.d.ts +490 -0
  68. package/{link/link.component.d.ts → types/updevs-components-link.d.ts} +16 -4
  69. package/types/updevs-components-list.d.ts +107 -0
  70. package/types/updevs-components-modal.d.ts +155 -0
  71. package/types/updevs-components-paginator.d.ts +58 -0
  72. package/types/updevs-components-popover.d.ts +63 -0
  73. package/types/updevs-components-pricing.d.ts +91 -0
  74. package/types/updevs-components-table.d.ts +619 -0
  75. package/types/updevs-components.d.ts +44 -0
  76. package/badge/badge-config.model.d.ts +0 -14
  77. package/badge/badge.component.d.ts +0 -23
  78. package/badge/badge.config.d.ts +0 -12
  79. package/badge/index.d.ts +0 -1
  80. package/badge/public-api.d.ts +0 -3
  81. package/badge/upd-badge.module.d.ts +0 -8
  82. package/button/button.component.d.ts +0 -62
  83. package/button/index.d.ts +0 -1
  84. package/button/public-api.d.ts +0 -2
  85. package/button/upd-button.module.d.ts +0 -10
  86. package/calendar/calendar.component.d.ts +0 -63
  87. package/calendar/index.d.ts +0 -1
  88. package/calendar/models/calendar-date.model.d.ts +0 -10
  89. package/calendar/models/calendar-month.model.d.ts +0 -7
  90. package/calendar/models/calendar-selected.model.d.ts +0 -5
  91. package/calendar/models/calendar-user-event.model.d.ts +0 -4
  92. package/calendar/models/calendar-year.model.d.ts +0 -6
  93. package/calendar/models/date-range.model.d.ts +0 -22
  94. package/calendar/models/enums/calendar-view.enum.d.ts +0 -5
  95. package/calendar/models/public-api.d.ts +0 -7
  96. package/calendar/public-api.d.ts +0 -5
  97. package/calendar/services/calendar-range-strategy.service.d.ts +0 -35
  98. package/calendar/services/calendar-signals.service.d.ts +0 -24
  99. package/calendar/services/public-api.d.ts +0 -1
  100. package/calendar/types/calendar-view.type.d.ts +0 -1
  101. package/calendar/types/public-api.d.ts +0 -1
  102. package/calendar/upd-calendar.module.d.ts +0 -13
  103. package/card/directives/card-actions.directive.d.ts +0 -7
  104. package/card/directives/card-footer.directive.d.ts +0 -7
  105. package/card/directives/card-header.directive.d.ts +0 -7
  106. package/card/directives/card-image.directive.d.ts +0 -7
  107. package/card/directives/public-api.d.ts +0 -4
  108. package/card/index.d.ts +0 -1
  109. package/card/public-api.d.ts +0 -4
  110. package/card/types/card-state.type.d.ts +0 -1
  111. package/card/types/card-style.type.d.ts +0 -1
  112. package/card/types/hover-effect.type.d.ts +0 -1
  113. package/card/types/public-api.d.ts +0 -5
  114. package/card/types/ribbon-style.type.d.ts +0 -1
  115. package/card/types/status-position.type.d.ts +0 -1
  116. package/card/upd-card.module.d.ts +0 -14
  117. package/drag-and-drop/drag-and-drop.component.d.ts +0 -26
  118. package/drag-and-drop/index.d.ts +0 -1
  119. package/drag-and-drop/models/drag-and-drop-column.config.d.ts +0 -8
  120. package/drag-and-drop/models/drag-and-drop-column.model.d.ts +0 -10
  121. package/drag-and-drop/models/drag-and-drop-item.d.ts +0 -7
  122. package/drag-and-drop/models/drag-and-drop-item.model.d.ts +0 -13
  123. package/drag-and-drop/models/drag-and-drop.config.d.ts +0 -6
  124. package/drag-and-drop/models/public-api.d.ts +0 -4
  125. package/drag-and-drop/public-api.d.ts +0 -3
  126. package/drag-and-drop/upd-drag-and-drop.module.d.ts +0 -9
  127. package/dropdown/index.d.ts +0 -1
  128. package/dropdown/models/dropdown-action-clicked.model.d.ts +0 -6
  129. package/dropdown/models/dropdown-item.d.ts +0 -25
  130. package/dropdown/models/dropdown-item.type.d.ts +0 -1
  131. package/dropdown/models/public-api.d.ts +0 -4
  132. package/dropdown/models/toolbar.type.d.ts +0 -1
  133. package/dropdown/public-api.d.ts +0 -3
  134. package/dropdown/upd-dropdown.module.d.ts +0 -12
  135. package/esm2022/badge/badge-config.model.mjs +0 -14
  136. package/esm2022/badge/badge.component.mjs +0 -48
  137. package/esm2022/badge/badge.config.mjs +0 -2
  138. package/esm2022/badge/index.mjs +0 -2
  139. package/esm2022/badge/public-api.mjs +0 -4
  140. package/esm2022/badge/upd-badge.module.mjs +0 -24
  141. package/esm2022/badge/updevs-components-badge.mjs +0 -5
  142. package/esm2022/button/button.component.mjs +0 -157
  143. package/esm2022/button/index.mjs +0 -2
  144. package/esm2022/button/public-api.mjs +0 -3
  145. package/esm2022/button/upd-button.module.mjs +0 -32
  146. package/esm2022/button/updevs-components-button.mjs +0 -5
  147. package/esm2022/calendar/assets/i18n/en.json +0 -16
  148. package/esm2022/calendar/assets/i18n/pt.json +0 -16
  149. package/esm2022/calendar/calendar.component.mjs +0 -318
  150. package/esm2022/calendar/index.mjs +0 -2
  151. package/esm2022/calendar/models/calendar-date.model.mjs +0 -2
  152. package/esm2022/calendar/models/calendar-month.model.mjs +0 -2
  153. package/esm2022/calendar/models/calendar-selected.model.mjs +0 -2
  154. package/esm2022/calendar/models/calendar-user-event.model.mjs +0 -2
  155. package/esm2022/calendar/models/calendar-year.model.mjs +0 -2
  156. package/esm2022/calendar/models/date-range.model.mjs +0 -18
  157. package/esm2022/calendar/models/enums/calendar-view.enum.mjs +0 -7
  158. package/esm2022/calendar/models/public-api.mjs +0 -8
  159. package/esm2022/calendar/public-api.mjs +0 -6
  160. package/esm2022/calendar/services/calendar-range-strategy.service.mjs +0 -99
  161. package/esm2022/calendar/services/calendar-signals.service.mjs +0 -47
  162. package/esm2022/calendar/services/public-api.mjs +0 -2
  163. package/esm2022/calendar/types/calendar-view.type.mjs +0 -2
  164. package/esm2022/calendar/types/public-api.mjs +0 -2
  165. package/esm2022/calendar/upd-calendar.module.mjs +0 -52
  166. package/esm2022/calendar/updevs-components-calendar.mjs +0 -5
  167. package/esm2022/card/card.component.mjs +0 -136
  168. package/esm2022/card/directives/card-actions.directive.mjs +0 -16
  169. package/esm2022/card/directives/card-footer.directive.mjs +0 -16
  170. package/esm2022/card/directives/card-header.directive.mjs +0 -16
  171. package/esm2022/card/directives/card-image.directive.mjs +0 -16
  172. package/esm2022/card/directives/public-api.mjs +0 -5
  173. package/esm2022/card/index.mjs +0 -2
  174. package/esm2022/card/public-api.mjs +0 -5
  175. package/esm2022/card/types/card-state.type.mjs +0 -2
  176. package/esm2022/card/types/card-style.type.mjs +0 -2
  177. package/esm2022/card/types/hover-effect.type.mjs +0 -2
  178. package/esm2022/card/types/public-api.mjs +0 -6
  179. package/esm2022/card/types/ribbon-style.type.mjs +0 -2
  180. package/esm2022/card/types/status-position.type.mjs +0 -2
  181. package/esm2022/card/upd-card.module.mjs +0 -50
  182. package/esm2022/card/updevs-components-card.mjs +0 -5
  183. package/esm2022/drag-and-drop/drag-and-drop.component.mjs +0 -134
  184. package/esm2022/drag-and-drop/index.mjs +0 -2
  185. package/esm2022/drag-and-drop/models/drag-and-drop-column.config.mjs +0 -2
  186. package/esm2022/drag-and-drop/models/drag-and-drop-column.model.mjs +0 -9
  187. package/esm2022/drag-and-drop/models/drag-and-drop-item.mjs +0 -2
  188. package/esm2022/drag-and-drop/models/drag-and-drop-item.model.mjs +0 -14
  189. package/esm2022/drag-and-drop/models/drag-and-drop.config.mjs +0 -2
  190. package/esm2022/drag-and-drop/models/public-api.mjs +0 -5
  191. package/esm2022/drag-and-drop/public-api.mjs +0 -4
  192. package/esm2022/drag-and-drop/upd-drag-and-drop.module.mjs +0 -28
  193. package/esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs +0 -5
  194. package/esm2022/dropdown/dropdown.component.mjs +0 -203
  195. package/esm2022/dropdown/index.mjs +0 -2
  196. package/esm2022/dropdown/models/dropdown-action-clicked.model.mjs +0 -2
  197. package/esm2022/dropdown/models/dropdown-item.mjs +0 -2
  198. package/esm2022/dropdown/models/dropdown-item.type.mjs +0 -2
  199. package/esm2022/dropdown/models/public-api.mjs +0 -5
  200. package/esm2022/dropdown/models/toolbar.type.mjs +0 -2
  201. package/esm2022/dropdown/public-api.mjs +0 -4
  202. package/esm2022/dropdown/upd-dropdown.module.mjs +0 -40
  203. package/esm2022/dropdown/updevs-components-dropdown.mjs +0 -5
  204. package/esm2022/form/assets/i18n/en.json +0 -17
  205. package/esm2022/form/assets/i18n/pt.json +0 -17
  206. package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +0 -180
  207. package/esm2022/form/form.component.mjs +0 -180
  208. package/esm2022/form/index.mjs +0 -2
  209. package/esm2022/form/models/attachment-rule.model.mjs +0 -2
  210. package/esm2022/form/models/button-field.model.mjs +0 -2
  211. package/esm2022/form/models/button-group-field.model.mjs +0 -2
  212. package/esm2022/form/models/checkbox-field.model.mjs +0 -2
  213. package/esm2022/form/models/checkbox-group-field.model.mjs +0 -2
  214. package/esm2022/form/models/dynamic-field.model.mjs +0 -2
  215. package/esm2022/form/models/enums/attachment-type.enum.mjs +0 -15
  216. package/esm2022/form/models/enums/dynamic-field.type.mjs +0 -17
  217. package/esm2022/form/models/enums/public-api.mjs +0 -3
  218. package/esm2022/form/models/file-upload-field.model.mjs +0 -2
  219. package/esm2022/form/models/form-config.mjs +0 -2
  220. package/esm2022/form/models/form-row.model.mjs +0 -2
  221. package/esm2022/form/models/form-update-on.type.mjs +0 -2
  222. package/esm2022/form/models/input-field.model.mjs +0 -2
  223. package/esm2022/form/models/masked-input-field.model.mjs +0 -2
  224. package/esm2022/form/models/public-api.mjs +0 -19
  225. package/esm2022/form/models/radio-field.model.mjs +0 -2
  226. package/esm2022/form/models/radio-group-field.model.mjs +0 -2
  227. package/esm2022/form/models/select-field.model.mjs +0 -2
  228. package/esm2022/form/models/single-select-field.model.mjs +0 -2
  229. package/esm2022/form/models/textarea-field.model.mjs +0 -2
  230. package/esm2022/form/models/validator-config.mjs +0 -2
  231. package/esm2022/form/public-api.mjs +0 -4
  232. package/esm2022/form/tools/errors-helper.mjs +0 -54
  233. package/esm2022/form/upd-form.module.mjs +0 -84
  234. package/esm2022/form/updevs-components-form.mjs +0 -5
  235. package/esm2022/form-controls/abstractions/base-control.mjs +0 -99
  236. package/esm2022/form-controls/abstractions/index.mjs +0 -2
  237. package/esm2022/form-controls/abstractions/public-api.mjs +0 -2
  238. package/esm2022/form-controls/abstractions/updevs-components-form-controls-abstractions.mjs +0 -5
  239. package/esm2022/form-controls/checkbox/checkbox.component.mjs +0 -63
  240. package/esm2022/form-controls/checkbox/index.mjs +0 -2
  241. package/esm2022/form-controls/checkbox/public-api.mjs +0 -3
  242. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +0 -32
  243. package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +0 -5
  244. package/esm2022/form-controls/date-picker/date-picker.component.mjs +0 -132
  245. package/esm2022/form-controls/date-picker/index.mjs +0 -2
  246. package/esm2022/form-controls/date-picker/public-api.mjs +0 -3
  247. package/esm2022/form-controls/date-picker/upd-date-picker.module.mjs +0 -40
  248. package/esm2022/form-controls/date-picker/updevs-components-form-controls-date-picker.mjs +0 -5
  249. package/esm2022/form-controls/file-upload/assets/i18n/en.json +0 -15
  250. package/esm2022/form-controls/file-upload/assets/i18n/pt.json +0 -15
  251. package/esm2022/form-controls/file-upload/file-upload-changed.event.mjs +0 -2
  252. package/esm2022/form-controls/file-upload/file-upload.component.mjs +0 -177
  253. package/esm2022/form-controls/file-upload/index.mjs +0 -2
  254. package/esm2022/form-controls/file-upload/public-api.mjs +0 -4
  255. package/esm2022/form-controls/file-upload/upd-file-upload.module.mjs +0 -48
  256. package/esm2022/form-controls/file-upload/updevs-components-form-controls-file-upload.mjs +0 -5
  257. package/esm2022/form-controls/input/directives/input-append.directive.mjs +0 -16
  258. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +0 -16
  259. package/esm2022/form-controls/input/directives/public-api.mjs +0 -3
  260. package/esm2022/form-controls/input/index.mjs +0 -2
  261. package/esm2022/form-controls/input/input.component.mjs +0 -205
  262. package/esm2022/form-controls/input/public-api.mjs +0 -5
  263. package/esm2022/form-controls/input/types/input.type.mjs +0 -2
  264. package/esm2022/form-controls/input/types/loader-position.type.mjs +0 -2
  265. package/esm2022/form-controls/input/types/public-api.mjs +0 -3
  266. package/esm2022/form-controls/input/upd-input.module.mjs +0 -46
  267. package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +0 -5
  268. package/esm2022/form-controls/radio/index.mjs +0 -2
  269. package/esm2022/form-controls/radio/public-api.mjs +0 -3
  270. package/esm2022/form-controls/radio/radio.component.mjs +0 -62
  271. package/esm2022/form-controls/radio/upd-radio.module.mjs +0 -32
  272. package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +0 -5
  273. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +0 -109
  274. package/esm2022/form-controls/select/components/single/select.component.mjs +0 -190
  275. package/esm2022/form-controls/select/index.mjs +0 -2
  276. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +0 -246
  277. package/esm2022/form-controls/select/models/defaults.mjs +0 -8
  278. package/esm2022/form-controls/select/models/public-api.mjs +0 -4
  279. package/esm2022/form-controls/select/models/select-item.mjs +0 -2
  280. package/esm2022/form-controls/select/models/types.mjs +0 -2
  281. package/esm2022/form-controls/select/public-api.mjs +0 -5
  282. package/esm2022/form-controls/select/upd-select.module.mjs +0 -57
  283. package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +0 -5
  284. package/esm2022/form-controls/textarea/index.mjs +0 -2
  285. package/esm2022/form-controls/textarea/public-api.mjs +0 -3
  286. package/esm2022/form-controls/textarea/textarea.component.mjs +0 -51
  287. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +0 -24
  288. package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +0 -5
  289. package/esm2022/form-controls/time-picker/assets/i18n/en.json +0 -5
  290. package/esm2022/form-controls/time-picker/assets/i18n/pt.json +0 -5
  291. package/esm2022/form-controls/time-picker/index.mjs +0 -2
  292. package/esm2022/form-controls/time-picker/public-api.mjs +0 -4
  293. package/esm2022/form-controls/time-picker/time-picker.component.mjs +0 -130
  294. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +0 -124
  295. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +0 -61
  296. package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +0 -5
  297. package/esm2022/index.mjs +0 -2
  298. package/esm2022/layout/abstractions/base-page.component.mjs +0 -23
  299. package/esm2022/layout/abstractions/base.layout.mjs +0 -31
  300. package/esm2022/layout/abstractions/public-api.mjs +0 -2
  301. package/esm2022/layout/assets/i18n/en.json +0 -27
  302. package/esm2022/layout/assets/i18n/pt.json +0 -27
  303. package/esm2022/layout/index.mjs +0 -2
  304. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +0 -22
  305. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +0 -50
  306. package/esm2022/layout/layouts/public-api.mjs +0 -5
  307. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +0 -17
  308. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +0 -78
  309. package/esm2022/layout/models/login-page-config.model.mjs +0 -20
  310. package/esm2022/layout/models/login-page.config.mjs +0 -2
  311. package/esm2022/layout/models/public-api.mjs +0 -3
  312. package/esm2022/layout/models/security-layout-config.model.mjs +0 -10
  313. package/esm2022/layout/models/security-layout.config.mjs +0 -2
  314. package/esm2022/layout/models/upd-layout-config.model.mjs +0 -24
  315. package/esm2022/layout/models/upd-layout.config.mjs +0 -2
  316. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +0 -28
  317. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +0 -73
  318. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +0 -11
  319. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +0 -110
  320. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +0 -11
  321. package/esm2022/layout/pages/auth-flow/public-api.mjs +0 -6
  322. package/esm2022/layout/pages/public-api.mjs +0 -2
  323. package/esm2022/layout/partials/footer/footer.component.mjs +0 -52
  324. package/esm2022/layout/partials/footer/footer.module.mjs +0 -28
  325. package/esm2022/layout/partials/footer/public-api.mjs +0 -3
  326. package/esm2022/layout/partials/header/header-style.type.mjs +0 -2
  327. package/esm2022/layout/partials/header/header.component.mjs +0 -140
  328. package/esm2022/layout/partials/header/header.module.mjs +0 -40
  329. package/esm2022/layout/partials/header/public-api.mjs +0 -4
  330. package/esm2022/layout/partials/page-header/page-header.component.mjs +0 -15
  331. package/esm2022/layout/partials/page-header/public-api.mjs +0 -2
  332. package/esm2022/layout/partials/public-api.mjs +0 -5
  333. package/esm2022/layout/partials/sidebar/public-api.mjs +0 -2
  334. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +0 -234
  335. package/esm2022/layout/public-api.mjs +0 -8
  336. package/esm2022/layout/services/public-api.mjs +0 -2
  337. package/esm2022/layout/services/upd-layout-config.service.mjs +0 -21
  338. package/esm2022/layout/tools/layout.constants.mjs +0 -15
  339. package/esm2022/layout/upd-layout.module.mjs +0 -47
  340. package/esm2022/layout/updevs-components-layout.mjs +0 -5
  341. package/esm2022/lib/index.mjs +0 -2
  342. package/esm2022/lib/models/public-api.mjs +0 -2
  343. package/esm2022/lib/models/row-column-size.mjs +0 -2
  344. package/esm2022/lib/public-api.mjs +0 -5
  345. package/esm2022/lib/tools/column-size.helper.mjs +0 -12
  346. package/esm2022/lib/tools/public-api.mjs +0 -2
  347. package/esm2022/lib/types/component-size.type.mjs +0 -2
  348. package/esm2022/lib/types/horizontal-vertical.type.mjs +0 -2
  349. package/esm2022/lib/types/public-api.mjs +0 -4
  350. package/esm2022/lib/types/validation-status.type.mjs +0 -2
  351. package/esm2022/lib/upd-components.module.mjs +0 -14
  352. package/esm2022/link/index.mjs +0 -2
  353. package/esm2022/link/link.component.mjs +0 -51
  354. package/esm2022/link/public-api.mjs +0 -4
  355. package/esm2022/link/target.type.mjs +0 -2
  356. package/esm2022/link/upd-link.module.mjs +0 -24
  357. package/esm2022/link/updevs-components-link.mjs +0 -5
  358. package/esm2022/list/assets/i18n/en.json +0 -9
  359. package/esm2022/list/assets/i18n/pt.json +0 -9
  360. package/esm2022/list/index.mjs +0 -2
  361. package/esm2022/list/list.component.mjs +0 -117
  362. package/esm2022/list/models/badge-position.type.mjs +0 -2
  363. package/esm2022/list/models/list-item.mjs +0 -2
  364. package/esm2022/list/models/list-item.model.mjs +0 -20
  365. package/esm2022/list/models/public-api.mjs +0 -3
  366. package/esm2022/list/public-api.mjs +0 -4
  367. package/esm2022/list/upd-list.module.mjs +0 -44
  368. package/esm2022/list/updevs-components-list.mjs +0 -5
  369. package/esm2022/modal/assets/i18n/en.json +0 -17
  370. package/esm2022/modal/assets/i18n/pt.json +0 -17
  371. package/esm2022/modal/components/modal-container/modal-container.component.mjs +0 -216
  372. package/esm2022/modal/index.mjs +0 -2
  373. package/esm2022/modal/models/base.modal.mjs +0 -14
  374. package/esm2022/modal/models/modal-config.model.mjs +0 -20
  375. package/esm2022/modal/models/modal-ref.mjs +0 -2
  376. package/esm2022/modal/models/modal.config.mjs +0 -2
  377. package/esm2022/modal/models/public-api.mjs +0 -4
  378. package/esm2022/modal/public-api.mjs +0 -4
  379. package/esm2022/modal/services/modal-alert.service.mjs +0 -99
  380. package/esm2022/modal/services/modal.service.mjs +0 -30
  381. package/esm2022/modal/services/public-api.mjs +0 -3
  382. package/esm2022/modal/types/modal-footer-style.type.mjs +0 -2
  383. package/esm2022/modal/types/modal-size.type.mjs +0 -2
  384. package/esm2022/modal/upd-modal.module.mjs +0 -90
  385. package/esm2022/modal/updevs-components-modal.mjs +0 -5
  386. package/esm2022/paginator/assets/i18n/en.json +0 -15
  387. package/esm2022/paginator/assets/i18n/pt.json +0 -15
  388. package/esm2022/paginator/index.mjs +0 -2
  389. package/esm2022/paginator/paginator.component.mjs +0 -66
  390. package/esm2022/paginator/public-api.mjs +0 -3
  391. package/esm2022/paginator/upd-paginator.module.mjs +0 -47
  392. package/esm2022/paginator/updevs-components-paginator.mjs +0 -5
  393. package/esm2022/popover/index.mjs +0 -2
  394. package/esm2022/popover/popover.component.mjs +0 -65
  395. package/esm2022/popover/popover.directive.mjs +0 -120
  396. package/esm2022/popover/public-api.mjs +0 -4
  397. package/esm2022/popover/upd-popover.module.mjs +0 -29
  398. package/esm2022/popover/updevs-components-popover.mjs +0 -5
  399. package/esm2022/pricing/index.mjs +0 -2
  400. package/esm2022/pricing/models/price-item-feature.model.mjs +0 -2
  401. package/esm2022/pricing/models/price-item-features-group.model.mjs +0 -2
  402. package/esm2022/pricing/models/price-item-tag.model.mjs +0 -2
  403. package/esm2022/pricing/models/price-item.model.mjs +0 -2
  404. package/esm2022/pricing/models/public-api.mjs +0 -5
  405. package/esm2022/pricing/pricing-cards/pricing-cards.component.mjs +0 -27
  406. package/esm2022/pricing/pricing-table/pricing-table.component.mjs +0 -57
  407. package/esm2022/pricing/public-api.mjs +0 -5
  408. package/esm2022/pricing/upd-pricing.module.mjs +0 -49
  409. package/esm2022/pricing/updevs-components-pricing.mjs +0 -5
  410. package/esm2022/public-api.mjs +0 -2
  411. package/esm2022/table/abstractions/base-column.model.mjs +0 -52
  412. package/esm2022/table/abstractions/base.column.mjs +0 -84
  413. package/esm2022/table/abstractions/filters-operands.service.mjs +0 -3
  414. package/esm2022/table/abstractions/public-api.mjs +0 -4
  415. package/esm2022/table/assets/i18n/en.json +0 -74
  416. package/esm2022/table/assets/i18n/pt.json +0 -74
  417. package/esm2022/table/components/columns/boolean-column/boolean-column.component.mjs +0 -26
  418. package/esm2022/table/components/columns/date-time-column/date-time-column.component.mjs +0 -13
  419. package/esm2022/table/components/columns/number-column/number-column.component.mjs +0 -13
  420. package/esm2022/table/components/columns/text-column/text-column.component.mjs +0 -31
  421. package/esm2022/table/components/columns-manager/columns-manager.component.mjs +0 -36
  422. package/esm2022/table/components/filter-row/filter-row.component.mjs +0 -124
  423. package/esm2022/table/components/save-search/save-search.component.mjs +0 -72
  424. package/esm2022/table/components/search-section/search-section.component.mjs +0 -84
  425. package/esm2022/table/directives/public-api.mjs +0 -2
  426. package/esm2022/table/directives/table-column.directive.mjs +0 -54
  427. package/esm2022/table/index.mjs +0 -2
  428. package/esm2022/table/models/columns/boolean-column.model.mjs +0 -22
  429. package/esm2022/table/models/columns/custom-column.model.mjs +0 -11
  430. package/esm2022/table/models/columns/date-time-column.model.mjs +0 -16
  431. package/esm2022/table/models/columns/guid-column.model.mjs +0 -13
  432. package/esm2022/table/models/columns/image-column.model.mjs +0 -11
  433. package/esm2022/table/models/columns/number-column.model.mjs +0 -17
  434. package/esm2022/table/models/columns/public-api.mjs +0 -8
  435. package/esm2022/table/models/columns/text-column.model.mjs +0 -11
  436. package/esm2022/table/models/enums/column-type.enum.mjs +0 -15
  437. package/esm2022/table/models/enums/public-api.mjs +0 -2
  438. package/esm2022/table/models/filter-item.model.mjs +0 -2
  439. package/esm2022/table/models/filter-operand.config.mjs +0 -2
  440. package/esm2022/table/models/operands-lists/boolean-filter-operands-list.model.mjs +0 -25
  441. package/esm2022/table/models/operands-lists/date-filter-operands-list.model.mjs +0 -25
  442. package/esm2022/table/models/operands-lists/date-or-number-operands-list.config.mjs +0 -31
  443. package/esm2022/table/models/operands-lists/filter-operands-list.config.mjs +0 -31
  444. package/esm2022/table/models/operands-lists/guid-filter-operands-list.model.mjs +0 -16
  445. package/esm2022/table/models/operands-lists/number-filter-operands-list.model.mjs +0 -25
  446. package/esm2022/table/models/operands-lists/select-filter-operands-list.model.mjs +0 -12
  447. package/esm2022/table/models/operands-lists/string-filter-operands-list.model.mjs +0 -45
  448. package/esm2022/table/models/public-api.mjs +0 -5
  449. package/esm2022/table/models/saved-view.model.mjs +0 -2
  450. package/esm2022/table/models/table-config.model.mjs +0 -40
  451. package/esm2022/table/models/table.config.mjs +0 -2
  452. package/esm2022/table/models/upd-table-config.model.mjs +0 -9
  453. package/esm2022/table/models/upd-table.config.mjs +0 -2
  454. package/esm2022/table/public-api.mjs +0 -6
  455. package/esm2022/table/services/current-search-request.service.mjs +0 -280
  456. package/esm2022/table/services/default-filters-operands.service.mjs +0 -64
  457. package/esm2022/table/services/storages/saved-views.storage.mjs +0 -56
  458. package/esm2022/table/services/stores/filters-operands.store.mjs +0 -19
  459. package/esm2022/table/services/upd-table-config.service.mjs +0 -18
  460. package/esm2022/table/table.component.mjs +0 -435
  461. package/esm2022/table/tools/filters.tools.mjs +0 -75
  462. package/esm2022/table/tools/table.constants.mjs +0 -15
  463. package/esm2022/table/upd-table.module.mjs +0 -150
  464. package/esm2022/table/updevs-components-table.mjs +0 -5
  465. package/esm2022/updevs-components.mjs +0 -5
  466. package/form/components/dynamic-field/dynamic-field.component.d.ts +0 -65
  467. package/form/form.component.d.ts +0 -64
  468. package/form/index.d.ts +0 -1
  469. package/form/models/attachment-rule.model.d.ts +0 -35
  470. package/form/models/button-field.model.d.ts +0 -5
  471. package/form/models/button-group-field.model.d.ts +0 -5
  472. package/form/models/checkbox-field.model.d.ts +0 -4
  473. package/form/models/checkbox-group-field.model.d.ts +0 -6
  474. package/form/models/dynamic-field.model.d.ts +0 -56
  475. package/form/models/enums/attachment-type.enum.d.ts +0 -13
  476. package/form/models/enums/dynamic-field.type.d.ts +0 -15
  477. package/form/models/enums/public-api.d.ts +0 -2
  478. package/form/models/file-upload-field.model.d.ts +0 -16
  479. package/form/models/form-config.d.ts +0 -2
  480. package/form/models/form-row.model.d.ts +0 -10
  481. package/form/models/form-update-on.type.d.ts +0 -1
  482. package/form/models/input-field.model.d.ts +0 -9
  483. package/form/models/masked-input-field.model.d.ts +0 -6
  484. package/form/models/public-api.d.ts +0 -18
  485. package/form/models/radio-field.model.d.ts +0 -4
  486. package/form/models/radio-group-field.model.d.ts +0 -6
  487. package/form/models/select-field.model.d.ts +0 -29
  488. package/form/models/single-select-field.model.d.ts +0 -4
  489. package/form/models/textarea-field.model.d.ts +0 -10
  490. package/form/models/validator-config.d.ts +0 -5
  491. package/form/public-api.d.ts +0 -3
  492. package/form/tools/errors-helper.d.ts +0 -11
  493. package/form/upd-form.module.d.ts +0 -22
  494. package/form-controls/abstractions/base-control.d.ts +0 -47
  495. package/form-controls/abstractions/index.d.ts +0 -2
  496. package/form-controls/abstractions/public-api.d.ts +0 -2
  497. package/form-controls/checkbox/checkbox.component.d.ts +0 -21
  498. package/form-controls/checkbox/index.d.ts +0 -1
  499. package/form-controls/checkbox/public-api.d.ts +0 -2
  500. package/form-controls/checkbox/upd-checkbox.module.d.ts +0 -10
  501. package/form-controls/date-picker/index.d.ts +0 -1
  502. package/form-controls/date-picker/public-api.d.ts +0 -2
  503. package/form-controls/date-picker/upd-date-picker.module.d.ts +0 -12
  504. package/form-controls/file-upload/file-upload-changed.event.d.ts +0 -4
  505. package/form-controls/file-upload/file-upload.component.d.ts +0 -48
  506. package/form-controls/file-upload/index.d.ts +0 -1
  507. package/form-controls/file-upload/public-api.d.ts +0 -3
  508. package/form-controls/file-upload/upd-file-upload.module.d.ts +0 -14
  509. package/form-controls/input/directives/input-append.directive.d.ts +0 -7
  510. package/form-controls/input/directives/input-prepend.directive.d.ts +0 -7
  511. package/form-controls/input/directives/public-api.d.ts +0 -2
  512. package/form-controls/input/index.d.ts +0 -1
  513. package/form-controls/input/public-api.d.ts +0 -4
  514. package/form-controls/input/types/input.type.d.ts +0 -1
  515. package/form-controls/input/types/loader-position.type.d.ts +0 -1
  516. package/form-controls/input/types/public-api.d.ts +0 -2
  517. package/form-controls/input/upd-input.module.d.ts +0 -13
  518. package/form-controls/radio/index.d.ts +0 -1
  519. package/form-controls/radio/public-api.d.ts +0 -2
  520. package/form-controls/radio/upd-radio.module.d.ts +0 -10
  521. package/form-controls/select/components/multiple/select-multiple.component.d.ts +0 -31
  522. package/form-controls/select/components/single/select.component.d.ts +0 -35
  523. package/form-controls/select/index.d.ts +0 -1
  524. package/form-controls/select/models/abstractions/base-select.component.d.ts +0 -88
  525. package/form-controls/select/models/defaults.d.ts +0 -8
  526. package/form-controls/select/models/public-api.d.ts +0 -3
  527. package/form-controls/select/models/select-item.d.ts +0 -25
  528. package/form-controls/select/models/types.d.ts +0 -4
  529. package/form-controls/select/public-api.d.ts +0 -4
  530. package/form-controls/select/upd-select.module.d.ts +0 -16
  531. package/form-controls/textarea/index.d.ts +0 -1
  532. package/form-controls/textarea/public-api.d.ts +0 -2
  533. package/form-controls/textarea/textarea.component.d.ts +0 -21
  534. package/form-controls/textarea/upd-textarea.module.d.ts +0 -8
  535. package/form-controls/time-picker/index.d.ts +0 -1
  536. package/form-controls/time-picker/public-api.d.ts +0 -3
  537. package/form-controls/time-picker/time-picker.component.d.ts +0 -78
  538. package/form-controls/time-picker/time-selector/time-selector.component.d.ts +0 -69
  539. package/form-controls/time-picker/upd-time-picker.module.d.ts +0 -17
  540. package/index.d.ts +0 -2
  541. package/layout/abstractions/base-page.component.d.ts +0 -12
  542. package/layout/abstractions/base.layout.d.ts +0 -15
  543. package/layout/abstractions/public-api.d.ts +0 -1
  544. package/layout/index.d.ts +0 -1
  545. package/layout/layouts/blank-layout/blank-layout.component.d.ts +0 -9
  546. package/layout/layouts/blank-layout/blank-layout.module.d.ts +0 -15
  547. package/layout/layouts/public-api.d.ts +0 -4
  548. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +0 -6
  549. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +0 -21
  550. package/layout/models/login-page-config.model.d.ts +0 -46
  551. package/layout/models/login-page.config.d.ts +0 -44
  552. package/layout/models/public-api.d.ts +0 -2
  553. package/layout/models/security-layout-config.model.d.ts +0 -12
  554. package/layout/models/security-layout.config.d.ts +0 -10
  555. package/layout/models/upd-layout-config.model.d.ts +0 -48
  556. package/layout/models/upd-layout.config.d.ts +0 -46
  557. package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +0 -12
  558. package/layout/pages/auth-flow/auth-flow.module.d.ts +0 -20
  559. package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +0 -5
  560. package/layout/pages/auth-flow/login/login.component.d.ts +0 -26
  561. package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +0 -5
  562. package/layout/pages/auth-flow/public-api.d.ts +0 -5
  563. package/layout/pages/public-api.d.ts +0 -1
  564. package/layout/partials/footer/footer.component.d.ts +0 -34
  565. package/layout/partials/footer/footer.module.d.ts +0 -9
  566. package/layout/partials/footer/public-api.d.ts +0 -2
  567. package/layout/partials/header/header-style.type.d.ts +0 -1
  568. package/layout/partials/header/header.component.d.ts +0 -51
  569. package/layout/partials/header/header.module.d.ts +0 -12
  570. package/layout/partials/header/public-api.d.ts +0 -3
  571. package/layout/partials/page-header/page-header.component.d.ts +0 -7
  572. package/layout/partials/page-header/public-api.d.ts +0 -1
  573. package/layout/partials/public-api.d.ts +0 -4
  574. package/layout/partials/sidebar/public-api.d.ts +0 -1
  575. package/layout/partials/sidebar/sidebar.component.d.ts +0 -46
  576. package/layout/public-api.d.ts +0 -7
  577. package/layout/services/public-api.d.ts +0 -1
  578. package/layout/services/upd-layout-config.service.d.ts +0 -15
  579. package/layout/tools/layout.constants.d.ts +0 -15
  580. package/layout/upd-layout.module.d.ts +0 -19
  581. package/lib/index.d.ts +0 -2
  582. package/lib/models/public-api.d.ts +0 -2
  583. package/lib/models/row-column-size.d.ts +0 -23
  584. package/lib/public-api.d.ts +0 -5
  585. package/lib/tools/column-size.helper.d.ts +0 -6
  586. package/lib/tools/public-api.d.ts +0 -2
  587. package/lib/types/component-size.type.d.ts +0 -2
  588. package/lib/types/horizontal-vertical.type.d.ts +0 -2
  589. package/lib/types/public-api.d.ts +0 -4
  590. package/lib/types/validation-status.type.d.ts +0 -2
  591. package/lib/upd-components.module.d.ts +0 -7
  592. package/link/index.d.ts +0 -1
  593. package/link/public-api.d.ts +0 -3
  594. package/link/target.type.d.ts +0 -1
  595. package/link/upd-link.module.d.ts +0 -8
  596. package/list/index.d.ts +0 -1
  597. package/list/list.component.d.ts +0 -47
  598. package/list/models/badge-position.type.d.ts +0 -1
  599. package/list/models/list-item.d.ts +0 -21
  600. package/list/models/list-item.model.d.ts +0 -26
  601. package/list/models/public-api.d.ts +0 -2
  602. package/list/public-api.d.ts +0 -3
  603. package/list/upd-list.module.d.ts +0 -13
  604. package/modal/components/modal-container/modal-container.component.d.ts +0 -74
  605. package/modal/index.d.ts +0 -1
  606. package/modal/models/base.modal.d.ts +0 -8
  607. package/modal/models/modal-config.model.d.ts +0 -32
  608. package/modal/models/modal-ref.d.ts +0 -6
  609. package/modal/models/modal.config.d.ts +0 -30
  610. package/modal/models/public-api.d.ts +0 -3
  611. package/modal/public-api.d.ts +0 -3
  612. package/modal/services/modal-alert.service.d.ts +0 -22
  613. package/modal/services/modal.service.d.ts +0 -12
  614. package/modal/services/public-api.d.ts +0 -2
  615. package/modal/types/modal-footer-style.type.d.ts +0 -1
  616. package/modal/types/modal-size.type.d.ts +0 -1
  617. package/modal/upd-modal.module.d.ts +0 -18
  618. package/paginator/index.d.ts +0 -1
  619. package/paginator/paginator.component.d.ts +0 -42
  620. package/paginator/public-api.d.ts +0 -2
  621. package/paginator/upd-paginator.module.d.ts +0 -14
  622. package/popover/index.d.ts +0 -1
  623. package/popover/popover.component.d.ts +0 -22
  624. package/popover/popover.directive.d.ts +0 -33
  625. package/popover/public-api.d.ts +0 -3
  626. package/popover/upd-popover.module.d.ts +0 -9
  627. package/pricing/index.d.ts +0 -1
  628. package/pricing/models/price-item-feature.model.d.ts +0 -7
  629. package/pricing/models/price-item-features-group.model.d.ts +0 -5
  630. package/pricing/models/price-item-tag.model.d.ts +0 -6
  631. package/pricing/models/price-item.model.d.ts +0 -22
  632. package/pricing/models/public-api.d.ts +0 -4
  633. package/pricing/pricing-cards/pricing-cards.component.d.ts +0 -12
  634. package/pricing/pricing-table/pricing-table.component.d.ts +0 -30
  635. package/pricing/public-api.d.ts +0 -4
  636. package/pricing/upd-pricing.module.d.ts +0 -14
  637. package/public-api.d.ts +0 -2
  638. package/table/abstractions/base-column.model.d.ts +0 -29
  639. package/table/abstractions/base.column.d.ts +0 -26
  640. package/table/abstractions/filters-operands.service.d.ts +0 -8
  641. package/table/abstractions/public-api.d.ts +0 -3
  642. package/table/components/columns/boolean-column/boolean-column.component.d.ts +0 -9
  643. package/table/components/columns/date-time-column/date-time-column.component.d.ts +0 -7
  644. package/table/components/columns/number-column/number-column.component.d.ts +0 -7
  645. package/table/components/columns/text-column/text-column.component.d.ts +0 -9
  646. package/table/components/columns-manager/columns-manager.component.d.ts +0 -15
  647. package/table/components/filter-row/filter-row.component.d.ts +0 -41
  648. package/table/components/save-search/save-search.component.d.ts +0 -17
  649. package/table/components/search-section/search-section.component.d.ts +0 -33
  650. package/table/directives/public-api.d.ts +0 -1
  651. package/table/directives/table-column.directive.d.ts +0 -14
  652. package/table/index.d.ts +0 -1
  653. package/table/models/columns/boolean-column.model.d.ts +0 -15
  654. package/table/models/columns/custom-column.model.d.ts +0 -5
  655. package/table/models/columns/date-time-column.model.d.ts +0 -8
  656. package/table/models/columns/guid-column.model.d.ts +0 -4
  657. package/table/models/columns/image-column.model.d.ts +0 -6
  658. package/table/models/columns/number-column.model.d.ts +0 -8
  659. package/table/models/columns/public-api.d.ts +0 -7
  660. package/table/models/columns/text-column.model.d.ts +0 -6
  661. package/table/models/enums/column-type.enum.d.ts +0 -13
  662. package/table/models/enums/public-api.d.ts +0 -1
  663. package/table/models/filter-item.model.d.ts +0 -7
  664. package/table/models/filter-operand.config.d.ts +0 -9
  665. package/table/models/operands-lists/boolean-filter-operands-list.model.d.ts +0 -6
  666. package/table/models/operands-lists/date-filter-operands-list.model.d.ts +0 -6
  667. package/table/models/operands-lists/date-or-number-operands-list.config.d.ts +0 -5
  668. package/table/models/operands-lists/filter-operands-list.config.d.ts +0 -5
  669. package/table/models/operands-lists/guid-filter-operands-list.model.d.ts +0 -6
  670. package/table/models/operands-lists/number-filter-operands-list.model.d.ts +0 -6
  671. package/table/models/operands-lists/select-filter-operands-list.model.d.ts +0 -6
  672. package/table/models/operands-lists/string-filter-operands-list.model.d.ts +0 -6
  673. package/table/models/public-api.d.ts +0 -4
  674. package/table/models/saved-view.model.d.ts +0 -11
  675. package/table/models/table-config.model.d.ts +0 -44
  676. package/table/models/table.config.d.ts +0 -42
  677. package/table/models/upd-table-config.model.d.ts +0 -6
  678. package/table/models/upd-table.config.d.ts +0 -6
  679. package/table/public-api.d.ts +0 -5
  680. package/table/services/current-search-request.service.d.ts +0 -174
  681. package/table/services/default-filters-operands.service.d.ts +0 -17
  682. package/table/services/storages/saved-views.storage.d.ts +0 -19
  683. package/table/services/stores/filters-operands.store.d.ts +0 -11
  684. package/table/services/upd-table-config.service.d.ts +0 -12
  685. package/table/table.component.d.ts +0 -77
  686. package/table/tools/filters.tools.d.ts +0 -9
  687. package/table/tools/table.constants.d.ts +0 -15
  688. package/table/upd-table.module.d.ts +0 -40
@@ -1,109 +0,0 @@
1
- import { Component, ViewEncapsulation, EventEmitter, Output, input, effect } from '@angular/core';
2
- import { BaseSelectComponent } from '../../models/abstractions/base-select.component';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@updevs/components/list";
6
- import * as i3 from "@updevs/components/form-controls/input";
7
- import * as i4 from "@updevs/icons";
8
- import * as i5 from "@updevs/components/button";
9
- import * as i6 from "@updevs/components/popover";
10
- export class SelectMultipleComponent extends BaseSelectComponent {
11
- constructor() {
12
- super();
13
- /**
14
- * Returns the selected items.
15
- * Triggered when items are selected.
16
- */
17
- this.selectedItems = new EventEmitter();
18
- /**
19
- * Returns the selected Ids.
20
- * Triggered when items are selected.
21
- */
22
- this.selectedIds = new EventEmitter();
23
- /**
24
- * An array of primitive values to set the selection programmatically.
25
- */
26
- this.selectedValues = input();
27
- this.currentSelection = [];
28
- effect(() => {
29
- const values = this.selectedValues();
30
- if (!!values && values.length > 0) {
31
- this.currentSelection = this._localBackupItems.filter(item => values.includes(item.value));
32
- this.updateActiveItemsOnList();
33
- }
34
- });
35
- }
36
- clearSelection() {
37
- this.currentSelection = [];
38
- this._currentTerm = undefined;
39
- this.updateActiveItemsOnList();
40
- this._updateFormControl([], true);
41
- }
42
- onSelectItem(item) {
43
- // eslint-disable-next-line eqeqeq
44
- const selectedItem = this.currentSelection.find(cs => cs.value == item.id);
45
- if (!!selectedItem) {
46
- this.onRemoveItem(selectedItem);
47
- return;
48
- }
49
- for (const localBackupItem of this._localBackupItems) {
50
- if ((localBackupItem.children?.length || 0) > 0) {
51
- // eslint-disable-next-line eqeqeq
52
- const child = localBackupItem.children?.find(c => c.value == item.id);
53
- if (!!child) {
54
- this.currentSelection.push(child);
55
- break;
56
- }
57
- // eslint-disable-next-line eqeqeq
58
- }
59
- else if (localBackupItem.value == item.id) {
60
- this.currentSelection.push(localBackupItem);
61
- break;
62
- }
63
- }
64
- this.updateActiveItemsOnList();
65
- const currentSelectedIds = this.currentSelection.map(cs => cs.value);
66
- this.selectedItems.emit(this.currentSelection);
67
- this.selectedIds.emit(currentSelectedIds);
68
- this._updateFormControl(currentSelectedIds, true);
69
- }
70
- onRemoveItem(item) {
71
- // eslint-disable-next-line eqeqeq
72
- const idx = this.currentSelection.findIndex(cs => cs.value == item.value);
73
- this.currentSelection.splice(idx, 1);
74
- this.updateActiveItemsOnList();
75
- this._updateFormControl(this.currentSelection.map(cs => cs.value), true);
76
- }
77
- _getValue() {
78
- return this.currentSelection.map(item => item.value);
79
- }
80
- _updateValue(value) {
81
- if (!Array.isArray(value)) {
82
- this.currentSelection = [];
83
- return;
84
- }
85
- this.currentSelection = this._localBackupItems.filter(item => value.includes(item.value));
86
- this.updateActiveItemsOnList();
87
- }
88
- updateActiveItemsOnList() {
89
- for (const backupItem of this._localBackupItems) {
90
- // eslint-disable-next-line eqeqeq
91
- const selectedItem = this.currentSelection.find(cs => cs.value == backupItem.value);
92
- if (!!backupItem.listItem) {
93
- backupItem.listItem.isActive = !!selectedItem;
94
- }
95
- }
96
- this._setupLocalItems(this._localBackupItems);
97
- }
98
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectMultipleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SelectMultipleComponent, selector: "upd-select-multiple", inputs: { selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedItems: "selectedItems", selectedIds: "selectedIds" }, usesInheritance: true, ngImport: i0, template: "@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n<div class=\"dropdown\" [attr.id]=\"name()\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @for (sel of currentSelection; track sel) {\n <span class=\"badge bg-primary select-multiple-value\">{{ sel.text }}\n <upd-button [isIcon]=\"true\" [shouldIgnoreBtnClass]=\"true\" (clicked)=\"onRemoveItem(sel)\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button></span>&nbsp;\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (currentSelection.length > 0) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\">\n <upd-icon tablerIcon=\"chevron-down\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n</div>\n", styles: [".select-dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e}.select-dropdown-content-open{display:block!important}.select-loader-wrapper{height:16px}.select-loader-wrapper .select-loader{height:16px;width:16px}.select-search-box{position:absolute;z-index:1;padding:.5rem;margin-top:-1px;background:var(--upd-body-bg);border:var(--upd-border-width) var(--upd-border-style) var(--upd-border-color)}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}.compact{padding:.25rem 2rem .25rem .75rem!important}.select-multiple-value{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.ListComponent, selector: "upd-list", inputs: ["items", "shouldOverflow", "isFlush", "isVisible", "isHoverable", "shouldDisplayItemsCounter", "wrapperClasses", "maxHeight"], outputs: ["checkboxChanged", "selectedItem"] }, { kind: "component", type: i3.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i3.InputPrependDirective, selector: "ng-template[updInputPrepend]" }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i5.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
100
- }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectMultipleComponent, decorators: [{
102
- type: Component,
103
- args: [{ selector: 'upd-select-multiple', encapsulation: ViewEncapsulation.None, template: "@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n<div class=\"dropdown\" [attr.id]=\"name()\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @for (sel of currentSelection; track sel) {\n <span class=\"badge bg-primary select-multiple-value\">{{ sel.text }}\n <upd-button [isIcon]=\"true\" [shouldIgnoreBtnClass]=\"true\" (clicked)=\"onRemoveItem(sel)\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button></span>&nbsp;\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (currentSelection.length > 0) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\">\n <upd-icon tablerIcon=\"chevron-down\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n</div>\n", styles: [".select-dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e}.select-dropdown-content-open{display:block!important}.select-loader-wrapper{height:16px}.select-loader-wrapper .select-loader{height:16px;width:16px}.select-search-box{position:absolute;z-index:1;padding:.5rem;margin-top:-1px;background:var(--upd-body-bg);border:var(--upd-border-width) var(--upd-border-style) var(--upd-border-color)}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}.compact{padding:.25rem 2rem .25rem .75rem!important}.select-multiple-value{display:inline-flex;align-items:center}\n"] }]
104
- }], ctorParameters: () => [], propDecorators: { selectedItems: [{
105
- type: Output
106
- }], selectedIds: [{
107
- type: Output
108
- }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW11bHRpcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdC9zcmMvY29tcG9uZW50cy9tdWx0aXBsZS9zZWxlY3QtbXVsdGlwbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvc2VsZWN0L3NyYy9jb21wb25lbnRzL211bHRpcGxlL3NlbGVjdC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7QUFTdEYsTUFBTSxPQUFPLHVCQUF3QixTQUFRLG1CQUFtQjtJQW1CNUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQW5CWjs7O1dBR0c7UUFDZ0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUNwRTs7O1dBR0c7UUFDZ0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBRTNEOztXQUVHO1FBQ00sbUJBQWMsR0FBRyxLQUFLLEVBQWdCLENBQUM7UUFFaEQscUJBQWdCLEdBQWlCLEVBQUUsQ0FBQztRQUtoQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBRXJDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixD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cUIsaUJBR2hCLGlCQUFpQixDQUFDLElBQUk7d0RBT2xCLGFBQWE7c0JBQS9CLE1BQU07Z0JBS1ksV0FBVztzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBpbnB1dCwgZWZmZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9saXN0JztcblxuaW1wb3J0IHsgQmFzZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vZGVscy9hYnN0cmFjdGlvbnMvYmFzZS1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0LWl0ZW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1zZWxlY3QtbXVsdGlwbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtbXVsdGlwbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC1tdWx0aXBsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0TXVsdGlwbGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VsZWN0Q29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzZWxlY3RlZCBpdGVtcy5cbiAgICAgKiBUcmlnZ2VyZWQgd2hlbiBpdGVtcyBhcmUgc2VsZWN0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGVkSXRlbXMgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdEl0ZW1bXT4oKTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzZWxlY3RlZCBJZHMuXG4gICAgICogVHJpZ2dlcmVkIHdoZW4gaXRlbXMgYXJlIHNlbGVjdGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZElkcyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG5cbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBwcmltaXRpdmUgdmFsdWVzIHRvIHNldCB0aGUgc2VsZWN0aW9uIHByb2dyYW1tYXRpY2FsbHkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VsZWN0ZWRWYWx1ZXMgPSBpbnB1dDxTZWxlY3RJdGVtW10+KCk7XG5cbiAgICBjdXJyZW50U2VsZWN0aW9uOiBTZWxlY3RJdGVtW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzKCk7XG5cbiAgICAgICAgICAgIGlmICghIXZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuX2xvY2FsQmFja3VwSXRlbXMuZmlsdGVyKGl0ZW0gPT4gdmFsdWVzLmluY2x1ZGVzKGl0ZW0udmFsdWUpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZUl0ZW1zT25MaXN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSBbXTtcbiAgICAgICAgdGhpcy5fY3VycmVudFRlcm0gPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVJdGVtc09uTGlzdCgpO1xuICAgICAgICB0aGlzLl91cGRhdGVGb3JtQ29udHJvbChbXSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RJdGVtKGl0ZW06IExpc3RJdGVtKTogdm9pZCB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy5jdXJyZW50U2VsZWN0aW9uLmZpbmQoY3MgPT4gY3MudmFsdWUgPT0gaXRlbS5pZCk7XG5cbiAgICAgICAgaWYgKCEhc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLm9uUmVtb3ZlSXRlbShzZWxlY3RlZEl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBsb2NhbEJhY2t1cEl0ZW0gb2YgdGhpcy5fbG9jYWxCYWNrdXBJdGVtcykge1xuICAgICAgICAgICAgaWYgKChsb2NhbEJhY2t1cEl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCB8fCAwKSA+IDApIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBsb2NhbEJhY2t1cEl0ZW0uY2hpbGRyZW4/LmZpbmQoYyA9PiBjLnZhbHVlID09IGl0ZW0uaWQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCEhY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgfSBlbHNlIGlmIChsb2NhbEJhY2t1cEl0ZW0udmFsdWUgPT0gaXRlbS5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbi5wdXNoKGxvY2FsQmFja3VwSXRlbSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZUl0ZW1zT25MaXN0KCk7XG5cbiAgICAgICAgY29uc3QgY3VycmVudFNlbGVjdGVkSWRzID0gdGhpcy5jdXJyZW50U2VsZWN0aW9uLm1hcChjcyA9PiBjcy52YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmVtaXQodGhpcy5jdXJyZW50U2VsZWN0aW9uKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5lbWl0KGN1cnJlbnRTZWxlY3RlZElkcyk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUZvcm1Db250cm9sKGN1cnJlbnRTZWxlY3RlZElkcywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgb25SZW1vdmVJdGVtKGl0ZW06IFNlbGVjdEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICBjb25zdCBpZHggPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb24uZmluZEluZGV4KGNzID0+IGNzLnZhbHVlID09IGl0ZW0udmFsdWUpO1xuXG4gICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbi5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVJdGVtc09uTGlzdCgpO1xuICAgICAgICB0aGlzLl91cGRhdGVGb3JtQ29udHJvbCh0aGlzLmN1cnJlbnRTZWxlY3Rpb24ubWFwKGNzID0+IGNzLnZhbHVlKSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9nZXRWYWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uLm1hcChpdGVtID0+IGl0ZW0udmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfdXBkYXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSBbXTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuX2xvY2FsQmFja3VwSXRlbXMuZmlsdGVyKGl0ZW0gPT4gdmFsdWUuaW5jbHVkZXMoaXRlbS52YWx1ZSkpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZUl0ZW1zT25MaXN0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVBY3RpdmVJdGVtc09uTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBiYWNrdXBJdGVtIG9mIHRoaXMuX2xvY2FsQmFja3VwSXRlbXMpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuY3VycmVudFNlbGVjdGlvbi5maW5kKGNzID0+IGNzLnZhbHVlID09IGJhY2t1cEl0ZW0udmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoISFiYWNrdXBJdGVtLmxpc3RJdGVtKSB7XG4gICAgICAgICAgICAgICAgYmFja3VwSXRlbS5saXN0SXRlbS5pc0FjdGl2ZSA9ICEhc2VsZWN0ZWRJdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0dXBMb2NhbEl0ZW1zKHRoaXMuX2xvY2FsQmFja3VwSXRlbXMpO1xuICAgIH1cbn1cbiIsIkBpZiAoISFsYWJlbFRleHQpIHtcbiAgICBAaWYgKCEhaGludFRleHQgfHwgISFoaW50VGVtcGxhdGUoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIFtuZ0NsYXNzXT1cImxhYmVsU2l6ZUNsYXNzZXNcIj57eyBsYWJlbFRleHQgfX08L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0taGVscFwiIFt1cGRQb3BvdmVyXT1cImhpbnRUZXh0XCIgW3VwZFBvcG92ZXJUZW1wbGF0ZV09XCJoaW50VGVtcGxhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFt1cGRQb3BvdmVyQWN0QXNUb29sdGlwXT1cImhpbnRBc1Rvb2x0aXAoKVwiPlxuICAgICAgICAgICAgICAgICAgICA/XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8bGFiZWwgW25nQ2xhc3NdPVwibGFiZWxTaXplQ2xhc3Nlc1wiPnt7IGxhYmVsVGV4dCB9fTwvbGFiZWw+XG4gICAgfVxufVxuXG48ZGl2IGNsYXNzPVwiZHJvcGRvd25cIiBbYXR0ci5pZF09XCJuYW1lKClcIj5cbiAgICA8ZGl2ICNjb21wb25lbnRCb3ggY2xhc3M9XCJpbnB1dC1ncm91cCBpbnB1dC1ncm91cC1mbGF0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbY2xhc3MucmVtb3ZlLWJvdHRvbS1yYWRpdXNdPVwiaXNEcm9wZG93bk9wZW5cIiBbY2xhc3MuZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCJcbiAgICAgICAgICAgIFtjbGFzcy5wZS1ub25lXT1cImlzRGlzYWJsZWQoKVwiIFthdHRyLmRpc2FibGVkXT1cImlzRGlzYWJsZWQoKSA/ICdkaXNhYmxlZCcgOiB1bmRlZmluZWRcIiAoY2xpY2spPVwib3BlbkRyb3Bkb3duKClcIj5cbiAgICAgICAgICAgIEBmb3IgKHNlbCBvZiBjdXJyZW50U2VsZWN0aW9uOyB0cmFjayBzZWwpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJnLXByaW1hcnkgc2VsZWN0LW11bHRpcGxlLXZhbHVlXCI+e3sgc2VsLnRleHQgfX1cbiAgICAgICAgICAgICAgICAgICAgPHVwZC1idXR0b24gW2lzSWNvbl09XCJ0cnVlXCIgW3Nob3VsZElnbm9yZUJ0bkNsYXNzXT1cInRydWVcIiAoY2xpY2tlZCk9XCJvblJlbW92ZUl0ZW0oc2VsKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1pY29uIHRhYmxlckljb249XCJ4XCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC91cGQtYnV0dG9uPjwvc3Bhbj4mbmJzcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCIgW2NsYXNzLnJlbW92ZS1ib3R0b20tcmFkaXVzXT1cImlzRHJvcGRvd25PcGVuXCI+XG4gICAgICAgICAgICBAaWYgKGN1cnJlbnRTZWxlY3Rpb24ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIFtzaG91bGRJZ25vcmVCdG5DbGFzc109XCJ0cnVlXCIgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCIgKGNsaWNrZWQpPVwiY2xlYXJTZWxlY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzZXM9XCJsaW5rLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cInhcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoIWlzTG9hZGluZykge1xuICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIFtzaG91bGRJZ25vcmVCdG5DbGFzc109XCJ0cnVlXCIgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCIgKGNsaWNrZWQpPVwib3BlbkRyb3Bkb3duKClcIlxuICAgICAgICAgICAgICAgICAgICBjdXN0b21DbGFzc2VzPVwibGluay1zZWNvbmRhcnkgbXMtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cImNoZXZyb24tZG93blwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgPC91cGQtYnV0dG9uPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1sb2FkZXItd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20gdGV4dC1tdXRlZCBzZWxlY3QtbG9hZGVyXCIgcm9sZT1cInN0YXR1c1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICNzZWFyY2hCb3g+XG4gICAgICAgIDxkaXYgI3NlYXJjaEJveENoaWxkIFtzdHlsZS52aXNpYmlsaXR5XT1cImlzRHJvcGRvd25PcGVuID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIiBjbGFzcz1cInNlbGVjdC1zZWFyY2gtYm94XCI+XG4gICAgICAgICAgICA8dXBkLWlucHV0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCIgW2lzSW5wdXRHcm91cEZsYXRdPVwidHJ1ZVwiICh2YWx1ZUNoYW5nZSk9XCJzZWFyY2goJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB1cGRJbnB1dFByZXBlbmQ+XG4gICAgICAgICAgICAgICAgICAgIDx1cGQtaWNvbiB0YWJsZXJJY29uPVwic2VhcmNoXCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC91cGQtaW5wdXQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDx1cGQtbGlzdCAjbGlzdCBbaXRlbXNdPVwibGlzdEl0ZW1zXCIgW21heEhlaWdodF09XCJkcm9wZG93bk1heEhlaWdodCgpICsgJ3B4J1wiIChzZWxlY3RlZEl0ZW0pPVwib25TZWxlY3RJdGVtKCRldmVudClcIlxuICAgICAgICBbd3JhcHBlckNsYXNzZXNdPVwiZHJvcGRvd25DbGFzc2VzXCIgW2lzVmlzaWJsZV09XCJpc0Ryb3Bkb3duT3BlblwiIFtzaG91bGRPdmVyZmxvd109XCJ0cnVlXCIgW3Nob3VsZERpc3BsYXlJdGVtc0NvdW50ZXJdPVwidHJ1ZVwiPlxuICAgIDwvdXBkLWxpc3Q+XG48L2Rpdj5cbiJdfQ==
@@ -1,190 +0,0 @@
1
- import { Component, ViewEncapsulation, computed, effect, input, model, output } from '@angular/core';
2
- import { BaseSelectComponent } from '../../models/abstractions/base-select.component';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@updevs/components/list";
6
- import * as i3 from "@updevs/components/form-controls/input";
7
- import * as i4 from "@updevs/icons";
8
- import * as i5 from "@updevs/components/button";
9
- import * as i6 from "@updevs/components/popover";
10
- export class SelectComponent extends BaseSelectComponent {
11
- get canTruncateText() {
12
- return this.shouldTruncateSelectedText() === true || this.shouldTruncateSelectedText() === undefined;
13
- }
14
- constructor() {
15
- super();
16
- /**
17
- * If true, it'll use the default style of the OS, no search capabilities.
18
- */
19
- this.useSystemStyle = input(false);
20
- this.shouldShowClearButton = input(true);
21
- this.shouldTruncateSelectedText = input(true);
22
- this.isCompact = input(false);
23
- this.value = model();
24
- this.shouldShowHintWithoutLabel = computed(() => !this.labelText && (!!this.hintText || !!this.hintTemplate()));
25
- /**
26
- * Triggered when an item is selected.
27
- */
28
- this.selectedItem = output();
29
- this.isFetchingMissingItem = false;
30
- // This effect is the single source of truth for syncing the value with the selection.
31
- effect(() => {
32
- const val = this.value();
33
- const items = this.localItems();
34
- const getItemFn = this.getItemById();
35
- // eslint-disable-next-line no-null/no-null
36
- if (val === undefined || val === null) {
37
- this.currentSelection = undefined;
38
- return;
39
- }
40
- // eslint-disable-next-line eqeqeq
41
- let item = items.find(i => i.value == val);
42
- if (!item) {
43
- for (const i of items) {
44
- if ((i.children?.length || 0) > 0) {
45
- // eslint-disable-next-line eqeqeq
46
- item = i.children?.find(c => c.value == val);
47
- if (!!item) {
48
- break;
49
- }
50
- }
51
- }
52
- }
53
- if (!!item) {
54
- this.currentSelection = item;
55
- this.isFetchingMissingItem = false;
56
- }
57
- else if (!!getItemFn) {
58
- this.fetchMissingItem(val, getItemFn);
59
- }
60
- else {
61
- this.currentSelection = undefined;
62
- }
63
- });
64
- effect(() => {
65
- const parentId = this.parentSelectedId();
66
- const loader = this.parentDependentLoader();
67
- const val = this.value();
68
- // eslint-disable-next-line eqeqeq
69
- const hasCurrent = val !== undefined && this.localItems().some(i => i.value == val);
70
- if (!!parentId && !!loader && !hasCurrent && !this.isFetchingMissingItem) {
71
- this.loadDependentData(parentId, loader);
72
- }
73
- else if (!parentId && !!loader) {
74
- this.clearData();
75
- }
76
- });
77
- }
78
- onSelectItem(item) {
79
- this._currentTerm = item.text;
80
- this.isDropdownOpen = false;
81
- let selectedItem;
82
- for (const localBackupItem of this._localBackupItems) {
83
- if ((localBackupItem.children?.length || 0) > 0) {
84
- // eslint-disable-next-line eqeqeq
85
- selectedItem = localBackupItem.children?.find(c => c.value == item.id);
86
- if (!!selectedItem) {
87
- break;
88
- }
89
- // eslint-disable-next-line eqeqeq
90
- }
91
- else if (localBackupItem.value == item.id) {
92
- selectedItem = localBackupItem;
93
- break;
94
- }
95
- }
96
- this.value.set(selectedItem?.value);
97
- this.selectedItem.emit(selectedItem);
98
- this._updateFormControl(selectedItem?.value, true);
99
- }
100
- search(term) {
101
- const parentId = this.parentSelectedId();
102
- const loader = this.parentDependentLoader();
103
- if (!!parentId && !!loader) {
104
- this.loadDependentData(parentId, loader, term);
105
- }
106
- else {
107
- super.search(term);
108
- }
109
- }
110
- clearSelection(isInternalCall = false) {
111
- if (this.isDisabled() && !isInternalCall) {
112
- return;
113
- }
114
- this._currentTerm = undefined;
115
- this.value.set(undefined);
116
- this.selectedItem.emit(undefined);
117
- this._updateFormControl(undefined, true);
118
- }
119
- onSystemSelect(event) {
120
- // eslint-disable-next-line eqeqeq
121
- const selectedItem = this.localItems().find(c => c.value == event.target.value);
122
- this.value.set(selectedItem?.value);
123
- this.selectedItem.emit(selectedItem);
124
- this._updateFormControl(selectedItem?.value, true);
125
- }
126
- _getValue() {
127
- return this.value();
128
- }
129
- _updateValue(value) {
130
- this.value.set(value);
131
- }
132
- loadDependentData(parentId, loader, term) {
133
- loader(parentId, term).subscribe({
134
- next: (items) => {
135
- this._setupLocalItems(items);
136
- const val = this.value();
137
- // eslint-disable-next-line eqeqeq
138
- if (val !== undefined && !items.some(i => i.value == val) && !this.getItemById()) {
139
- this.clearSelection(true);
140
- }
141
- },
142
- error: () => {
143
- this._setupLocalItems([]);
144
- this.clearSelection(true);
145
- }
146
- });
147
- }
148
- clearData() {
149
- this._setupLocalItems([]);
150
- this.clearSelection(true);
151
- }
152
- fetchMissingItem(id, getItemFn) {
153
- this.isFetchingMissingItem = true;
154
- getItemFn(id).subscribe({
155
- next: (item) => {
156
- if (!!item) {
157
- // eslint-disable-next-line eqeqeq
158
- if (this.value() == id) {
159
- this.currentSelection = item;
160
- }
161
- const currentItems = this.localItems();
162
- // eslint-disable-next-line eqeqeq
163
- if (!currentItems.find(i => i.value == item.value)) {
164
- this._setupLocalItems([...currentItems, item]);
165
- }
166
- // eslint-disable-next-line eqeqeq
167
- }
168
- else if (this.value() == id) {
169
- this.currentSelection = undefined;
170
- }
171
- this.isFetchingMissingItem = false;
172
- this.selectedItem.emit(this.currentSelection);
173
- },
174
- error: () => {
175
- // eslint-disable-next-line eqeqeq
176
- if (this.value() == id) {
177
- this.currentSelection = undefined;
178
- }
179
- this.isFetchingMissingItem = false;
180
- }
181
- });
182
- }
183
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
184
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SelectComponent, selector: "upd-select", inputs: { useSystemStyle: { classPropertyName: "useSystemStyle", publicName: "useSystemStyle", isSignal: true, isRequired: false, transformFunction: null }, shouldShowClearButton: { classPropertyName: "shouldShowClearButton", publicName: "shouldShowClearButton", isSignal: true, isRequired: false, transformFunction: null }, shouldTruncateSelectedText: { classPropertyName: "shouldTruncateSelectedText", publicName: "shouldTruncateSelectedText", isSignal: true, isRequired: false, transformFunction: null }, isCompact: { classPropertyName: "isCompact", publicName: "isCompact", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", selectedItem: "selectedItem" }, usesInheritance: true, ngImport: i0, template: "@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n@if (!useSystemStyle()) {\n <div class=\"dropdown\" [attr.id]=\"name()\" [ngClass]=\"layoutClasses()\">\n @if (shouldShowHintWithoutLabel()) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n </div>\n} @else {\n @if (shouldShowHintWithoutLabel()) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n }\n}\n\n<ng-template #hintTpl>\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #contentTpl>\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [class.select-cursor-default]=\"!isDisabled()\"\n [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @if (!!currentSelection) {\n <span [ngClass]=\"canTruncateText ? 'd-block text-truncate' : ''\">{{ currentSelection.text }}</span>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (!!currentSelection && shouldShowClearButton()) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\" [class.select-cursor-pointer]=\"!isDisabled()\"\n [iconModel]=\"{tablerIcon:'x', tablerIconSize: 16}\">\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\" [class.select-cursor-pointer]=\"!isDisabled()\"\n [iconModel]=\"{tablerIcon:'chevron-down', tablerIconSize: 16}\">\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #contentDefaultStyleTpl>\n <select class=\"form-select\" [class.compact]=\"isCompact()\" [attr.placeholder]=\"placeholder()\" [attr.name]=\"name()\"\n [class.select-cursor-pointer]=\"!isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\"\n [class.disabled]=\"isDisabled()\" (change)=\"onSystemSelect($event)\">\n @for (item of localItems(); track item) {\n @if ((item.children?.length || 0) > 0) {\n <optgroup [label]=\"item.text\">\n @for (child of item.children; track child) {\n <option [attr.selected]=\"!!currentSelection && child.value === currentSelection.value ? true : undefined\"\n [value]=\"child.value\">\n {{ child.text }}\n </option>\n }\n </optgroup>\n } @else {\n <option [attr.selected]=\"!!currentSelection && item.value === currentSelection.value ? true : undefined\"\n [value]=\"item.value\">\n {{ item.text }}\n </option>\n }\n }\n </select>\n</ng-template>\n", styles: [".select-dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e}.select-dropdown-content-open{display:block!important}.select-loader-wrapper{height:16px}.select-loader-wrapper .select-loader{height:16px;width:16px}.select-search-box{position:absolute;z-index:1;padding:.5rem;margin-top:-1px;background:var(--upd-body-bg);border:var(--upd-border-width) var(--upd-border-style) var(--upd-border-color)}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}.compact{padding:.25rem 2rem .25rem .75rem!important}.select-cursor-default{cursor:default}.select-cursor-pointer{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ListComponent, selector: "upd-list", inputs: ["items", "shouldOverflow", "isFlush", "isVisible", "isHoverable", "shouldDisplayItemsCounter", "wrapperClasses", "maxHeight"], outputs: ["checkboxChanged", "selectedItem"] }, { kind: "component", type: i3.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i3.InputPrependDirective, selector: "ng-template[updInputPrepend]" }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i5.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
185
- }
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectComponent, decorators: [{
187
- type: Component,
188
- args: [{ selector: 'upd-select', encapsulation: ViewEncapsulation.None, template: "@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n@if (!useSystemStyle()) {\n <div class=\"dropdown\" [attr.id]=\"name()\" [ngClass]=\"layoutClasses()\">\n @if (shouldShowHintWithoutLabel()) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n </div>\n} @else {\n @if (shouldShowHintWithoutLabel()) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n }\n}\n\n<ng-template #hintTpl>\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #contentTpl>\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [class.select-cursor-default]=\"!isDisabled()\"\n [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @if (!!currentSelection) {\n <span [ngClass]=\"canTruncateText ? 'd-block text-truncate' : ''\">{{ currentSelection.text }}</span>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (!!currentSelection && shouldShowClearButton()) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\" [class.select-cursor-pointer]=\"!isDisabled()\"\n [iconModel]=\"{tablerIcon:'x', tablerIconSize: 16}\">\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\" [class.select-cursor-pointer]=\"!isDisabled()\"\n [iconModel]=\"{tablerIcon:'chevron-down', tablerIconSize: 16}\">\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #contentDefaultStyleTpl>\n <select class=\"form-select\" [class.compact]=\"isCompact()\" [attr.placeholder]=\"placeholder()\" [attr.name]=\"name()\"\n [class.select-cursor-pointer]=\"!isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\"\n [class.disabled]=\"isDisabled()\" (change)=\"onSystemSelect($event)\">\n @for (item of localItems(); track item) {\n @if ((item.children?.length || 0) > 0) {\n <optgroup [label]=\"item.text\">\n @for (child of item.children; track child) {\n <option [attr.selected]=\"!!currentSelection && child.value === currentSelection.value ? true : undefined\"\n [value]=\"child.value\">\n {{ child.text }}\n </option>\n }\n </optgroup>\n } @else {\n <option [attr.selected]=\"!!currentSelection && item.value === currentSelection.value ? true : undefined\"\n [value]=\"item.value\">\n {{ item.text }}\n </option>\n }\n }\n </select>\n</ng-template>\n", styles: [".select-dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e}.select-dropdown-content-open{display:block!important}.select-loader-wrapper{height:16px}.select-loader-wrapper .select-loader{height:16px;width:16px}.select-search-box{position:absolute;z-index:1;padding:.5rem;margin-top:-1px;background:var(--upd-body-bg);border:var(--upd-border-width) var(--upd-border-style) var(--upd-border-color)}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}.compact{padding:.25rem 2rem .25rem .75rem!important}.select-cursor-default{cursor:default}.select-cursor-pointer{cursor:pointer}\n"] }]
189
- }], ctorParameters: () => [] });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdC9zcmMvY29tcG9uZW50cy9zaW5nbGUvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdC9zcmMvY29tcG9uZW50cy9zaW5nbGUvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtyRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7QUFVdEYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsbUJBQW1CO0lBa0JwRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxTQUFTLENBQUM7SUFDekcsQ0FBQztJQUlEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUF4Qlo7O1dBRUc7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QiwwQkFBcUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsK0JBQTBCLEdBQUcsS0FBSyxDQUF3QixJQUFJLENBQUMsQ0FBQztRQUNoRSxjQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLFVBQUssR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUVyQiwrQkFBMEIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMs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UCxDQUFDOzhHQXpNUSxlQUFlO2tHQUFmLGVBQWUsbzRCQ2Y1Qiw0OUtBcUhBOzsyRkR0R2EsZUFBZTtrQkFOM0IsU0FBUzsrQkFDSSxZQUFZLGlCQUdQLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCwgbW9kZWwsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9uYWxUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvbGlzdCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJhc2VTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWJzdHJhY3Rpb25zL2Jhc2Utc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdC1pdGVtJztcbmltcG9ydCB7IFBhcmVudExvYWRlclR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNlbGVjdENvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgaXQnbGwgdXNlIHRoZSBkZWZhdWx0IHN0eWxlIG9mIHRoZSBPUywgbm8gc2VhcmNoIGNhcGFiaWxpdGllcy5cbiAgICAgKi9cbiAgICByZWFkb25seSB1c2VTeXN0ZW1TdHlsZSA9IGlucHV0KGZhbHNlKTtcbiAgICByZWFkb25seSBzaG91bGRTaG93Q2xlYXJCdXR0b24gPSBpbnB1dCh0cnVlKTtcbiAgICByZWFkb25seSBzaG91bGRUcnVuY2F0ZVNlbGVjdGVkVGV4dCA9IGlucHV0PE9wdGlvbmFsVHlwZTxib29sZWFuPj4odHJ1ZSk7XG4gICAgcmVhZG9ubHkgaXNDb21wYWN0ID0gaW5wdXQoZmFsc2UpO1xuICAgIHJlYWRvbmx5IHZhbHVlID0gbW9kZWw8YW55PigpO1xuXG4gICAgcmVhZG9ubHkgc2hvdWxkU2hvd0hpbnRXaXRob3V0TGFiZWwgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5sYWJlbFRleHQgJiYgKCEhdGhpcy5oaW50VGV4dCB8fCAhIXRoaXMuaGludFRlbXBsYXRlKCkpKTtcblxuICAgIC8qKlxuICAgICAqIFRyaWdnZXJlZCB3aGVuIGFuIGl0ZW0gaXMgc2VsZWN0ZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtID0gb3V0cHV0PE9wdGlvbmFsVHlwZTxTZWxlY3RJdGVtPj4oKTtcblxuICAgIGN1cnJlbnRTZWxlY3Rpb24/OiBTZWxlY3RJdGVtO1xuICAgIGdldCBjYW5UcnVuY2F0ZVRleHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3VsZFRydW5jYXRlU2VsZWN0ZWRUZXh0KCkgPT09IHRydWUgfHwgdGhpcy5zaG91bGRUcnVuY2F0ZVNlbGVjdGVkVGV4dCgpID09PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0ZldGNoaW5nTWlzc2luZ0l0ZW0gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIC8vIFRoaXMgZWZmZWN0IGlzIHRoZSBzaW5nbGUgc291cmNlIG9mIHRydXRoIGZvciBzeW5jaW5nIHRoZSB2YWx1ZSB3aXRoIHRoZSBzZWxlY3Rpb24uXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLnZhbHVlKCk7XG4gICAgICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMubG9jYWxJdGVtcygpO1xuICAgICAgICAgICAgY29uc3QgZ2V0SXRlbUZuID0gdGhpcy5nZXRJdGVtQnlJZCgpO1xuXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbnVsbC9uby1udWxsXG4gICAgICAgICAgICBpZiAodmFsID09PSB1bmRlZmluZWQgfHwgdmFsID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBpdGVtcy5maW5kKGkgPT4gaS52YWx1ZSA9PSB2YWwpO1xuXG4gICAgICAgICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGkgb2YgaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKChpLmNoaWxkcmVuPy5sZW5ndGggfHwgMCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtID0gaS5jaGlsZHJlbj8uZmluZChjID0+IGMudmFsdWUgPT0gdmFsKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEhaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoISFpdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uID0gaXRlbTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRmV0Y2hpbmdNaXNzaW5nSXRlbSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghIWdldEl0ZW1Gbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hNaXNzaW5nSXRlbSh2YWwsIGdldEl0ZW1Gbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudElkID0gdGhpcy5wYXJlbnRTZWxlY3RlZElkKCk7XG4gICAgICAgICAgICBjb25zdCBsb2FkZXIgPSB0aGlzLnBhcmVudERlcGVuZGVudExvYWRlcigpO1xuICAgICAgICAgICAgY29uc3QgdmFsID0gdGhpcy52YWx1ZSgpO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgY29uc3QgaGFzQ3VycmVudCA9IHZhbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMubG9jYWxJdGVtcygpLnNvbWUoaSA9PiBpLnZhbHVlID09IHZhbCk7XG5cbiAgICAgICAgICAgIGlmICghIXBhcmVudElkICYmICEhbG9hZGVyICYmICFoYXNDdXJyZW50ICYmICF0aGlzLmlzRmV0Y2hpbmdNaXNzaW5nSXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZERlcGVuZGVudERhdGEocGFyZW50SWQsIGxvYWRlcik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFwYXJlbnRJZCAmJiAhIWxvYWRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJEYXRhKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG9uU2VsZWN0SXRlbShpdGVtOiBMaXN0SXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50VGVybSA9IGl0ZW0udGV4dDtcbiAgICAgICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgICAgICBsZXQgc2VsZWN0ZWRJdGVtOiBPcHRpb25hbFR5cGU8U2VsZWN0SXRlbT47XG5cbiAgICAgICAgZm9yIChjb25zdCBsb2NhbEJhY2t1cEl0ZW0gb2YgdGhpcy5fbG9jYWxCYWNrdXBJdGVtcykge1xuICAgICAgICAgICAgaWYgKChsb2NhbEJhY2t1cEl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCB8fCAwKSA+IDApIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtID0gbG9jYWxCYWNrdXBJdGVtLmNoaWxkcmVuPy5maW5kKGMgPT4gYy52YWx1ZSA9PSBpdGVtLmlkKTtcblxuICAgICAgICAgICAgICAgIGlmICghIXNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgfSBlbHNlIGlmIChsb2NhbEJhY2t1cEl0ZW0udmFsdWUgPT0gaXRlbS5pZCkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbSA9IGxvY2FsQmFja3VwSXRlbTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUuc2V0KHNlbGVjdGVkSXRlbT8udmFsdWUpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KHNlbGVjdGVkSXRlbSk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUZvcm1Db250cm9sKHNlbGVjdGVkSXRlbT8udmFsdWUsIHRydWUpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHNlYXJjaCh0ZXJtPzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhcmVudElkID0gdGhpcy5wYXJlbnRTZWxlY3RlZElkKCk7XG4gICAgICAgIGNvbnN0IGxvYWRlciA9IHRoaXMucGFyZW50RGVwZW5kZW50TG9hZGVyKCk7XG5cbiAgICAgICAgaWYgKCEhcGFyZW50SWQgJiYgISFsb2FkZXIpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZERlcGVuZGVudERhdGEocGFyZW50SWQsIGxvYWRlciwgdGVybSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5zZWFyY2godGVybSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvdmVycmlkZSBjbGVhclNlbGVjdGlvbihpc0ludGVybmFsQ2FsbCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSAmJiAhaXNJbnRlcm5hbENhbGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2N1cnJlbnRUZXJtID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIHRoaXMudmFsdWUuc2V0KHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQodW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlRm9ybUNvbnRyb2wodW5kZWZpbmVkLCB0cnVlKTtcbiAgICB9XG5cbiAgICBvblN5c3RlbVNlbGVjdChldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy5sb2NhbEl0ZW1zKCkuZmluZChjID0+IGMudmFsdWUgPT0gZXZlbnQudGFyZ2V0LnZhbHVlKTtcblxuICAgICAgICB0aGlzLnZhbHVlLnNldChzZWxlY3RlZEl0ZW0/LnZhbHVlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdChzZWxlY3RlZEl0ZW0pO1xuICAgICAgICB0aGlzLl91cGRhdGVGb3JtQ29udHJvbChzZWxlY3RlZEl0ZW0/LnZhbHVlLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2dldFZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF91cGRhdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWREZXBlbmRlbnREYXRhKHBhcmVudElkOiBhbnksIGxvYWRlcjogUGFyZW50TG9hZGVyVHlwZSwgdGVybT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBsb2FkZXIocGFyZW50SWQsIHRlcm0pLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAoaXRlbXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXR1cExvY2FsSXRlbXMoaXRlbXMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IHRoaXMudmFsdWUoKTtcblxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQgJiYgIWl0ZW1zLnNvbWUoaSA9PiBpLnZhbHVlID09IHZhbCkgJiYgIXRoaXMuZ2V0SXRlbUJ5SWQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldHVwTG9jYWxJdGVtcyhbXSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhclNlbGVjdGlvbih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckRhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldHVwTG9jYWxJdGVtcyhbXSk7XG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24odHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmZXRjaE1pc3NpbmdJdGVtKGlkOiBhbnksIGdldEl0ZW1GbjogKGlkOiBhbnkpID0+IE9ic2VydmFibGU8U2VsZWN0SXRlbT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ZldGNoaW5nTWlzc2luZ0l0ZW0gPSB0cnVlO1xuICAgICAgICBnZXRJdGVtRm4oaWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghIWl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy52YWx1ZSgpID09IGlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZW1zID0gdGhpcy5sb2NhbEl0ZW1zKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnRJdGVtcy5maW5kKGkgPT4gaS52YWx1ZSA9PSBpdGVtLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0dXBMb2NhbEl0ZW1zKFsuLi5jdXJyZW50SXRlbXMsIGl0ZW1dKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlKCkgPT0gaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuaXNGZXRjaGluZ01pc3NpbmdJdGVtID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdCh0aGlzLmN1cnJlbnRTZWxlY3Rpb24pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlKCkgPT0gaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuaXNGZXRjaGluZ01pc3NpbmdJdGVtID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIkBpZiAoISFsYWJlbFRleHQpIHtcbiAgICBAaWYgKCEhaGludFRleHQgfHwgISFoaW50VGVtcGxhdGUoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIFtuZ0NsYXNzXT1cImxhYmVsU2l6ZUNsYXNzZXNcIj57eyBsYWJlbFRleHQgfX08L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGludFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxsYWJlbCBbbmdDbGFzc109XCJsYWJlbFNpemVDbGFzc2VzXCI+e3sgbGFiZWxUZXh0IH19PC9sYWJlbD5cbiAgICB9XG59XG5cbkBpZiAoIXVzZVN5c3RlbVN0eWxlKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25cIiBbYXR0ci5pZF09XCJuYW1lKClcIiBbbmdDbGFzc109XCJsYXlvdXRDbGFzc2VzKClcIj5cbiAgICAgICAgQGlmIChzaG91bGRTaG93SGludFdpdGhvdXRMYWJlbCgpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBhbGlnbi1zZWxmLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGludFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2ICNzZWFyY2hCb3g+XG4gICAgICAgICAgICA8ZGl2ICNzZWFyY2hCb3hDaGlsZCBbc3R5bGUudmlzaWJpbGl0eV09XCJpc0Ryb3Bkb3duT3BlbiA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCIgY2xhc3M9XCJzZWxlY3Qtc2VhcmNoLWJveFwiPlxuICAgICAgICAgICAgICAgIDx1cGQtaW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIiBbaXNJbnB1dEdyb3VwRmxhdF09XCJ0cnVlXCIgKHZhbHVlQ2hhbmdlKT1cInNlYXJjaCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB1cGRJbnB1dFByZXBlbmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cInNlYXJjaFwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC91cGQtaW5wdXQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx1cGQtbGlzdCAjbGlzdCBbaXRlbXNdPVwibGlzdEl0ZW1zXCIgW21heEhlaWdodF09XCJkcm9wZG93bk1heEhlaWdodCgpICsgJ3B4J1wiIChzZWxlY3RlZEl0ZW0pPVwib25TZWxlY3RJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgW3dyYXBwZXJDbGFzc2VzXT1cImRyb3Bkb3duQ2xhc3Nlc1wiIFtpc1Zpc2libGVdPVwiaXNEcm9wZG93bk9wZW5cIiBbc2hvdWxkT3ZlcmZsb3ddPVwidHJ1ZVwiIFtzaG91bGREaXNwbGF5SXRlbXNDb3VudGVyXT1cInRydWVcIj5cbiAgICAgICAgPC91cGQtbGlzdD5cbiAgICA8L2Rpdj5cbn0gQGVsc2Uge1xuICAgIEBpZiAoc2hvdWxkU2hvd0hpbnRXaXRob3V0TGFiZWwoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50RGVmYXVsdFN0eWxlVHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIGFsaWduLXNlbGYtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhpbnRUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudERlZmF1bHRTdHlsZVRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxufVxuXG48bmctdGVtcGxhdGUgI2hpbnRUcGw+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWhlbHBcIiBbdXBkUG9wb3Zlcl09XCJoaW50VGV4dFwiIFt1cGRQb3BvdmVyVGVtcGxhdGVdPVwiaGludFRlbXBsYXRlKClcIiBbdXBkUG9wb3ZlckFjdEFzVG9vbHRpcF09XCJoaW50QXNUb29sdGlwKClcIj5cbiAgICAgICAgP1xuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudFRwbD5cbiAgICA8ZGl2ICNjb21wb25lbnRCb3ggY2xhc3M9XCJpbnB1dC1ncm91cCBpbnB1dC1ncm91cC1mbGF0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbY2xhc3MucmVtb3ZlLWJvdHRvbS1yYWRpdXNdPVwiaXNEcm9wZG93bk9wZW5cIiBbY2xhc3MuZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCJcbiAgICAgICAgICAgIFtjbGFzcy5wZS1ub25lXT1cImlzRGlzYWJsZWQoKVwiIFtjbGFzcy5zZWxlY3QtY3Vyc29yLWRlZmF1bHRdPVwiIWlzRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKCkgPyAnZGlzYWJsZWQnIDogdW5kZWZpbmVkXCIgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigpXCI+XG4gICAgICAgICAgICBAaWYgKCEhY3VycmVudFNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImNhblRydW5jYXRlVGV4dCA/ICdkLWJsb2NrIHRleHQtdHJ1bmNhdGUnIDogJydcIj57eyBjdXJyZW50U2VsZWN0aW9uLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiIFtjbGFzcy5yZW1vdmUtYm90dG9tLXJhZGl1c109XCJpc0Ryb3Bkb3duT3BlblwiPlxuICAgICAgICAgICAgQGlmICghIWN1cnJlbnRTZWxlY3Rpb24gJiYgc2hvdWxkU2hvd0NsZWFyQnV0dG9uKCkpIHtcbiAgICAgICAgICAgICAgICA8dXBkLWJ1dHRvbiBbc2hvdWxkSWdub3JlQnRuQ2xhc3NdPVwidHJ1ZVwiIFtpc0Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiIChjbGlja2VkKT1cImNsZWFyU2VsZWN0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICBjdXN0b21DbGFzc2VzPVwibGluay1zZWNvbmRhcnlcIiBbY2xhc3Muc2VsZWN0LWN1cnNvci1wb2ludGVyXT1cIiFpc0Rpc2FibGVkKClcIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbk1vZGVsXT1cInt0YWJsZXJJY29uOid4JywgdGFibGVySWNvblNpemU6IDE2fVwiPlxuICAgICAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoIWlzTG9hZGluZykge1xuICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIFtzaG91bGRJZ25vcmVCdG5DbGFzc109XCJ0cnVlXCIgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCIgKGNsaWNrZWQpPVwib3BlbkRyb3Bkb3duKClcIlxuICAgICAgICAgICAgICAgICAgICBjdXN0b21DbGFzc2VzPVwibGluay1zZWNvbmRhcnkgbXMtMlwiIFtjbGFzcy5zZWxlY3QtY3Vyc29yLXBvaW50ZXJdPVwiIWlzRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uTW9kZWxdPVwie3RhYmxlckljb246J2NoZXZyb24tZG93bicsIHRhYmxlckljb25TaXplOiAxNn1cIj5cbiAgICAgICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWxvYWRlci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSB0ZXh0LW11dGVkIHNlbGVjdC1sb2FkZXJcIiByb2xlPVwic3RhdHVzXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50RGVmYXVsdFN0eWxlVHBsPlxuICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIFtjbGFzcy5jb21wYWN0XT1cImlzQ29tcGFjdCgpXCIgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiIFthdHRyLm5hbWVdPVwibmFtZSgpXCJcbiAgICAgICAgW2NsYXNzLnNlbGVjdC1jdXJzb3ItcG9pbnRlcl09XCIhaXNEaXNhYmxlZCgpXCIgW2F0dHIuZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpID8gJ2Rpc2FibGVkJyA6IHVuZGVmaW5lZFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiAoY2hhbmdlKT1cIm9uU3lzdGVtU2VsZWN0KCRldmVudClcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBsb2NhbEl0ZW1zKCk7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgIEBpZiAoKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCB8fCAwKSA+IDApIHtcbiAgICAgICAgICAgICAgICA8b3B0Z3JvdXAgW2xhYmVsXT1cIml0ZW0udGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChjaGlsZCBvZiBpdGVtLmNoaWxkcmVuOyB0cmFjayBjaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbYXR0ci5zZWxlY3RlZF09XCIhIWN1cnJlbnRTZWxlY3Rpb24gJiYgY2hpbGQudmFsdWUgPT09IGN1cnJlbnRTZWxlY3Rpb24udmFsdWUgPyB0cnVlIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY2hpbGQudmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjaGlsZC50ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvb3B0Z3JvdXA+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFthdHRyLnNlbGVjdGVkXT1cIiEhY3VycmVudFNlbGVjdGlvbiAmJiBpdGVtLnZhbHVlID09PSBjdXJyZW50U2VsZWN0aW9uLnZhbHVlID8gdHJ1ZSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGV4dCB9fVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgPC9zZWxlY3Q+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,2 +0,0 @@
1
- export * from './public-api';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9zZWxlY3Qvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==