@updevs/components 1.0.0-alpha.3 → 1.0.0-alpha.30

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 (813) hide show
  1. package/README.md +5 -4
  2. package/assets/styles/_bootstrap-components.scss +18 -1
  3. package/assets/styles/_seven-columns.scss +73 -0
  4. package/assets/styles/_updevs.scss +4 -0
  5. package/assets/styles/_variables.scss +1 -1
  6. package/assets/styles/utils/_colors.scss +1 -1
  7. package/badge/badge-config.model.d.ts +14 -0
  8. package/badge/badge.component.d.ts +24 -0
  9. package/badge/badge.config.d.ts +12 -0
  10. package/badge/public-api.d.ts +3 -0
  11. package/badge/upd-badge.module.d.ts +8 -0
  12. package/button/button.component.d.ts +61 -0
  13. package/button/upd-button.module.d.ts +10 -0
  14. package/calendar/calendar.component.d.ts +127 -0
  15. package/calendar/components/calendar-body/calendar-body.component.d.ts +263 -0
  16. package/calendar/components/calendar-header/calendar-header.component.d.ts +57 -0
  17. package/calendar/components/calendar-month-view/calendar-month-view.component.d.ts +151 -0
  18. package/calendar/components/calendar-multi-year-view/calendar-multi-year-view.component.d.ts +10 -0
  19. package/calendar/components/calendar-year-view/calendar-year-view.component.d.ts +9 -0
  20. package/calendar/models/calendar-cell.model.d.ts +16 -0
  21. package/calendar/models/calendar-user-event.model.d.ts +4 -0
  22. package/calendar/models/date-range.model.d.ts +26 -0
  23. package/calendar/models/public-api.d.ts +2 -0
  24. package/calendar/public-api.d.ts +5 -0
  25. package/calendar/services/calendar-range-strategy.service.d.ts +35 -0
  26. package/calendar/services/calendar-signals.service.d.ts +24 -0
  27. package/calendar/services/calendar.service.d.ts +15 -0
  28. package/calendar/services/public-api.d.ts +1 -0
  29. package/calendar/tools/events-options.d.ts +12 -0
  30. package/calendar/tools/keyboard-tools.d.ts +9 -0
  31. package/calendar/tools/passive-listeners.d.ts +16 -0
  32. package/calendar/types/calendar-cell-class-function.type.d.ts +3 -0
  33. package/calendar/types/calendar-cell-css-classes.type.d.ts +3 -0
  34. package/calendar/types/calendar-view.type.d.ts +1 -0
  35. package/calendar/types/modifier-key.type.d.ts +1 -0
  36. package/calendar/types/public-api.d.ts +1 -0
  37. package/calendar/upd-calendar.module.d.ts +18 -0
  38. package/card/card.component.d.ts +54 -0
  39. package/card/directives/card-actions.directive.d.ts +7 -0
  40. package/card/directives/card-footer.directive.d.ts +7 -0
  41. package/card/directives/card-header.directive.d.ts +7 -0
  42. package/card/directives/card-image.directive.d.ts +7 -0
  43. package/card/upd-card.module.d.ts +14 -0
  44. package/drag-and-drop/drag-and-drop.component.d.ts +26 -0
  45. package/drag-and-drop/models/drag-and-drop-column.config.d.ts +8 -0
  46. package/drag-and-drop/models/drag-and-drop-column.model.d.ts +10 -0
  47. package/drag-and-drop/models/drag-and-drop-item.d.ts +7 -0
  48. package/drag-and-drop/models/drag-and-drop-item.model.d.ts +13 -0
  49. package/drag-and-drop/models/drag-and-drop.config.d.ts +6 -0
  50. package/drag-and-drop/models/public-api.d.ts +4 -0
  51. package/drag-and-drop/public-api.d.ts +3 -0
  52. package/drag-and-drop/upd-drag-and-drop.module.d.ts +9 -0
  53. package/dropdown/dropdown.component.d.ts +76 -0
  54. package/dropdown/models/dropdown-action-clicked.model.d.ts +6 -0
  55. package/dropdown/{src/models/dropdown-item.ts → models/dropdown-item.d.ts} +7 -4
  56. package/dropdown/{src/models/dropdown-item.type.ts → models/dropdown-item.type.d.ts} +1 -1
  57. package/dropdown/models/public-api.d.ts +4 -0
  58. package/dropdown/models/toolbar.type.d.ts +1 -0
  59. package/dropdown/upd-dropdown.module.d.ts +12 -0
  60. package/esm2022/badge/badge-config.model.mjs +14 -0
  61. package/esm2022/badge/badge.component.mjs +50 -0
  62. package/esm2022/badge/badge.config.mjs +2 -0
  63. package/esm2022/badge/index.mjs +2 -0
  64. package/esm2022/badge/public-api.mjs +4 -0
  65. package/esm2022/badge/upd-badge.module.mjs +24 -0
  66. package/esm2022/badge/updevs-components-badge.mjs +5 -0
  67. package/esm2022/button/button.component.mjs +157 -0
  68. package/esm2022/button/index.mjs +2 -0
  69. package/esm2022/button/public-api.mjs +3 -0
  70. package/esm2022/button/upd-button.module.mjs +32 -0
  71. package/esm2022/button/updevs-components-button.mjs +5 -0
  72. package/esm2022/calendar/assets/i18n/en.json +16 -0
  73. package/esm2022/calendar/assets/i18n/pt.json +16 -0
  74. package/esm2022/calendar/calendar.component.mjs +247 -0
  75. package/esm2022/calendar/components/calendar-body/calendar-body.component.mjs +515 -0
  76. package/esm2022/calendar/components/calendar-header/calendar-header.component.mjs +144 -0
  77. package/esm2022/calendar/components/calendar-month-view/calendar-month-view.component.mjs +423 -0
  78. package/esm2022/calendar/components/calendar-multi-year-view/calendar-multi-year-view.component.mjs +18 -0
  79. package/esm2022/calendar/components/calendar-year-view/calendar-year-view.component.mjs +17 -0
  80. package/esm2022/calendar/index.mjs +2 -0
  81. package/esm2022/calendar/models/calendar-cell.model.mjs +18 -0
  82. package/esm2022/calendar/models/calendar-user-event.model.mjs +2 -0
  83. package/esm2022/calendar/models/date-range.model.mjs +18 -0
  84. package/esm2022/calendar/models/public-api.mjs +3 -0
  85. package/esm2022/calendar/public-api.mjs +6 -0
  86. package/esm2022/calendar/services/calendar-range-strategy.service.mjs +99 -0
  87. package/esm2022/calendar/services/calendar-signals.service.mjs +47 -0
  88. package/esm2022/calendar/services/calendar.service.mjs +40 -0
  89. package/esm2022/calendar/services/public-api.mjs +2 -0
  90. package/esm2022/calendar/tools/events-options.mjs +14 -0
  91. package/esm2022/calendar/tools/keyboard-tools.mjs +14 -0
  92. package/esm2022/calendar/tools/passive-listeners.mjs +29 -0
  93. package/esm2022/calendar/types/calendar-cell-class-function.type.mjs +2 -0
  94. package/esm2022/calendar/types/calendar-cell-css-classes.type.mjs +2 -0
  95. package/esm2022/calendar/types/calendar-view.type.mjs +2 -0
  96. package/esm2022/calendar/types/modifier-key.type.mjs +2 -0
  97. package/esm2022/calendar/types/public-api.mjs +2 -0
  98. package/esm2022/calendar/upd-calendar.module.mjs +70 -0
  99. package/esm2022/calendar/updevs-components-calendar.mjs +5 -0
  100. package/esm2022/card/card.component.mjs +136 -0
  101. package/esm2022/card/directives/card-actions.directive.mjs +16 -0
  102. package/esm2022/card/directives/card-footer.directive.mjs +16 -0
  103. package/esm2022/card/directives/card-header.directive.mjs +16 -0
  104. package/esm2022/card/directives/card-image.directive.mjs +16 -0
  105. package/esm2022/card/directives/public-api.mjs +5 -0
  106. package/esm2022/card/index.mjs +2 -0
  107. package/esm2022/card/public-api.mjs +4 -0
  108. package/esm2022/card/types/card-state.type.mjs +2 -0
  109. package/esm2022/card/types/card-style.type.mjs +2 -0
  110. package/esm2022/card/types/hover-effect.type.mjs +2 -0
  111. package/esm2022/card/types/ribbon-style.type.mjs +2 -0
  112. package/esm2022/card/types/status-position.type.mjs +2 -0
  113. package/esm2022/card/upd-card.module.mjs +50 -0
  114. package/esm2022/card/updevs-components-card.mjs +5 -0
  115. package/esm2022/drag-and-drop/drag-and-drop.component.mjs +134 -0
  116. package/esm2022/drag-and-drop/index.mjs +2 -0
  117. package/esm2022/drag-and-drop/models/drag-and-drop-column.config.mjs +2 -0
  118. package/esm2022/drag-and-drop/models/drag-and-drop-column.model.mjs +9 -0
  119. package/esm2022/drag-and-drop/models/drag-and-drop-item.mjs +2 -0
  120. package/esm2022/drag-and-drop/models/drag-and-drop-item.model.mjs +14 -0
  121. package/esm2022/drag-and-drop/models/drag-and-drop.config.mjs +2 -0
  122. package/esm2022/drag-and-drop/models/public-api.mjs +5 -0
  123. package/esm2022/drag-and-drop/public-api.mjs +4 -0
  124. package/esm2022/drag-and-drop/upd-drag-and-drop.module.mjs +28 -0
  125. package/esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs +5 -0
  126. package/esm2022/dropdown/dropdown.component.mjs +182 -0
  127. package/esm2022/dropdown/index.mjs +2 -0
  128. package/esm2022/dropdown/models/dropdown-action-clicked.model.mjs +2 -0
  129. package/esm2022/dropdown/models/dropdown-item.mjs +2 -0
  130. package/esm2022/dropdown/models/dropdown-item.type.mjs +2 -0
  131. package/esm2022/dropdown/models/public-api.mjs +5 -0
  132. package/esm2022/dropdown/models/toolbar.type.mjs +2 -0
  133. package/esm2022/dropdown/public-api.mjs +4 -0
  134. package/esm2022/dropdown/upd-dropdown.module.mjs +40 -0
  135. package/esm2022/dropdown/updevs-components-dropdown.mjs +5 -0
  136. package/esm2022/form/assets/i18n/en.json +17 -0
  137. package/esm2022/form/assets/i18n/pt.json +17 -0
  138. package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +127 -0
  139. package/esm2022/form/form.component.mjs +122 -0
  140. package/esm2022/form/index.mjs +2 -0
  141. package/esm2022/form/models/checkbox-field.model.mjs +2 -0
  142. package/esm2022/form/models/checkbox-group-field.model.mjs +2 -0
  143. package/esm2022/form/models/dynamic-field.model.mjs +2 -0
  144. package/esm2022/form/models/enums/dynamic-field.type.mjs +14 -0
  145. package/esm2022/form/models/enums/public-api.mjs +2 -0
  146. package/esm2022/form/models/file-upload-field.model.mjs +2 -0
  147. package/esm2022/form/models/form-config.mjs +2 -0
  148. package/esm2022/form/models/form-row.model.mjs +2 -0
  149. package/esm2022/form/models/input-field.model.mjs +2 -0
  150. package/esm2022/form/models/public-api.mjs +15 -0
  151. package/esm2022/form/models/radio-field.model.mjs +2 -0
  152. package/esm2022/form/models/radio-group-field.model.mjs +2 -0
  153. package/esm2022/form/models/select-field.model.mjs +2 -0
  154. package/esm2022/form/models/single-select-field.model.mjs +2 -0
  155. package/esm2022/form/models/textarea-field.model.mjs +2 -0
  156. package/esm2022/form/models/validator-config.mjs +2 -0
  157. package/esm2022/form/public-api.mjs +4 -0
  158. package/esm2022/form/tools/errors-helper.mjs +54 -0
  159. package/esm2022/form/upd-form.module.mjs +84 -0
  160. package/esm2022/form/updevs-components-form.mjs +5 -0
  161. package/esm2022/form-controls/abstractions/base-control.mjs +46 -0
  162. package/esm2022/form-controls/abstractions/index.mjs +2 -0
  163. package/esm2022/form-controls/abstractions/public-api.mjs +2 -0
  164. package/esm2022/form-controls/abstractions/updevs-components-form-controls-abstractions.mjs +5 -0
  165. package/esm2022/form-controls/checkbox/checkbox.component.mjs +51 -0
  166. package/esm2022/form-controls/checkbox/index.mjs +2 -0
  167. package/esm2022/form-controls/checkbox/public-api.mjs +3 -0
  168. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +32 -0
  169. package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +5 -0
  170. package/esm2022/form-controls/date-picker/date-picker.component.mjs +147 -0
  171. package/esm2022/form-controls/date-picker/index.mjs +2 -0
  172. package/esm2022/form-controls/date-picker/public-api.mjs +3 -0
  173. package/esm2022/form-controls/date-picker/upd-date-picker.module.mjs +40 -0
  174. package/esm2022/form-controls/date-picker/updevs-components-form-controls-date-picker.mjs +5 -0
  175. package/esm2022/form-controls/file-upload/assets/i18n/en.json +15 -0
  176. package/esm2022/form-controls/file-upload/assets/i18n/pt.json +15 -0
  177. package/esm2022/form-controls/file-upload/file-upload-changed.event.mjs +2 -0
  178. package/esm2022/form-controls/file-upload/file-upload.component.mjs +169 -0
  179. package/esm2022/form-controls/file-upload/index.mjs +2 -0
  180. package/esm2022/form-controls/file-upload/public-api.mjs +4 -0
  181. package/esm2022/form-controls/file-upload/upd-file-upload.module.mjs +48 -0
  182. package/esm2022/form-controls/file-upload/updevs-components-form-controls-file-upload.mjs +5 -0
  183. package/esm2022/form-controls/input/directives/input-append.directive.mjs +16 -0
  184. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +16 -0
  185. package/esm2022/form-controls/input/directives/public-api.mjs +3 -0
  186. package/esm2022/form-controls/input/index.mjs +2 -0
  187. package/esm2022/form-controls/input/input.component.mjs +185 -0
  188. package/esm2022/form-controls/input/public-api.mjs +5 -0
  189. package/esm2022/form-controls/input/types/input.type.mjs +2 -0
  190. package/esm2022/form-controls/input/types/loader-position.type.mjs +2 -0
  191. package/esm2022/form-controls/input/types/public-api.mjs +3 -0
  192. package/esm2022/form-controls/input/upd-input.module.mjs +46 -0
  193. package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +5 -0
  194. package/esm2022/form-controls/radio/index.mjs +2 -0
  195. package/esm2022/form-controls/radio/public-api.mjs +3 -0
  196. package/esm2022/form-controls/radio/radio.component.mjs +51 -0
  197. package/esm2022/form-controls/radio/upd-radio.module.mjs +32 -0
  198. package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +5 -0
  199. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +76 -0
  200. package/esm2022/form-controls/select/components/single/select.component.mjs +72 -0
  201. package/esm2022/form-controls/select/index.mjs +2 -0
  202. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +215 -0
  203. package/esm2022/form-controls/select/models/defaults.mjs +8 -0
  204. package/esm2022/form-controls/select/models/public-api.mjs +3 -0
  205. package/esm2022/form-controls/select/models/select-item.mjs +2 -0
  206. package/esm2022/form-controls/select/public-api.mjs +5 -0
  207. package/esm2022/form-controls/select/upd-select.module.mjs +57 -0
  208. package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +5 -0
  209. package/esm2022/form-controls/textarea/index.mjs +2 -0
  210. package/esm2022/form-controls/textarea/public-api.mjs +3 -0
  211. package/esm2022/form-controls/textarea/textarea.component.mjs +44 -0
  212. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +24 -0
  213. package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +5 -0
  214. package/esm2022/form-controls/time-picker/index.mjs +2 -0
  215. package/esm2022/form-controls/time-picker/public-api.mjs +4 -0
  216. package/esm2022/form-controls/time-picker/time-picker.component.mjs +130 -0
  217. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +124 -0
  218. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +61 -0
  219. package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +5 -0
  220. package/esm2022/index.mjs +2 -0
  221. package/esm2022/layout/abstractions/base-page.component.mjs +23 -0
  222. package/esm2022/layout/abstractions/base.layout.mjs +31 -0
  223. package/esm2022/layout/abstractions/public-api.mjs +2 -0
  224. package/esm2022/layout/assets/i18n/en.json +27 -0
  225. package/esm2022/layout/assets/i18n/pt.json +27 -0
  226. package/esm2022/layout/index.mjs +2 -0
  227. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +22 -0
  228. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +50 -0
  229. package/esm2022/layout/layouts/public-api.mjs +5 -0
  230. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +17 -0
  231. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +83 -0
  232. package/esm2022/layout/models/login-page-config.model.mjs +20 -0
  233. package/esm2022/layout/models/login-page.config.mjs +2 -0
  234. package/esm2022/layout/models/public-api.mjs +3 -0
  235. package/esm2022/layout/models/security-layout-config.model.mjs +10 -0
  236. package/esm2022/layout/models/security-layout.config.mjs +2 -0
  237. package/esm2022/layout/models/upd-layout-config.model.mjs +24 -0
  238. package/esm2022/layout/models/upd-layout.config.mjs +2 -0
  239. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +28 -0
  240. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +73 -0
  241. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +11 -0
  242. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +110 -0
  243. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +11 -0
  244. package/esm2022/layout/pages/auth-flow/public-api.mjs +6 -0
  245. package/esm2022/layout/pages/public-api.mjs +2 -0
  246. package/esm2022/layout/partials/footer/footer-copyright.directive.mjs +13 -0
  247. package/esm2022/layout/partials/footer/footer.component.mjs +55 -0
  248. package/esm2022/layout/partials/footer/footer.module.mjs +28 -0
  249. package/esm2022/layout/partials/footer/public-api.mjs +4 -0
  250. package/esm2022/layout/partials/header/header-style.type.mjs +2 -0
  251. package/esm2022/layout/partials/header/header.component.mjs +129 -0
  252. package/esm2022/layout/partials/header/header.module.mjs +40 -0
  253. package/esm2022/layout/partials/header/public-api.mjs +4 -0
  254. package/esm2022/layout/partials/page-header/page-header.component.mjs +15 -0
  255. package/esm2022/layout/partials/page-header/public-api.mjs +2 -0
  256. package/esm2022/layout/partials/public-api.mjs +5 -0
  257. package/esm2022/layout/partials/sidebar/public-api.mjs +2 -0
  258. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +114 -0
  259. package/esm2022/layout/public-api.mjs +8 -0
  260. package/esm2022/layout/services/public-api.mjs +2 -0
  261. package/esm2022/layout/services/upd-layout-config.service.mjs +21 -0
  262. package/esm2022/layout/tools/layout.constants.mjs +15 -0
  263. package/esm2022/layout/upd-layout.module.mjs +47 -0
  264. package/esm2022/layout/updevs-components-layout.mjs +5 -0
  265. package/esm2022/lib/index.mjs +2 -0
  266. package/esm2022/lib/models/public-api.mjs +2 -0
  267. package/esm2022/lib/models/row-column-size.mjs +2 -0
  268. package/esm2022/lib/public-api.mjs +5 -0
  269. package/esm2022/lib/tools/column-size.helper.mjs +12 -0
  270. package/esm2022/lib/tools/public-api.mjs +2 -0
  271. package/esm2022/lib/types/component-size.type.mjs +2 -0
  272. package/esm2022/lib/types/horizontal-vertical.type.mjs +2 -0
  273. package/esm2022/lib/types/public-api.mjs +4 -0
  274. package/esm2022/lib/types/validation-status.type.mjs +2 -0
  275. package/esm2022/lib/upd-components.module.mjs +14 -0
  276. package/esm2022/link/index.mjs +2 -0
  277. package/esm2022/link/link.component.mjs +51 -0
  278. package/esm2022/link/public-api.mjs +4 -0
  279. package/esm2022/link/target.type.mjs +2 -0
  280. package/esm2022/link/upd-link.module.mjs +24 -0
  281. package/esm2022/link/updevs-components-link.mjs +5 -0
  282. package/esm2022/list/assets/i18n/en.json +9 -0
  283. package/esm2022/list/assets/i18n/pt.json +9 -0
  284. package/esm2022/list/index.mjs +2 -0
  285. package/esm2022/list/list.component.mjs +113 -0
  286. package/esm2022/list/models/badge-position.type.mjs +2 -0
  287. package/esm2022/list/models/list-item.mjs +2 -0
  288. package/esm2022/list/models/list-item.model.mjs +15 -0
  289. package/esm2022/list/models/public-api.mjs +3 -0
  290. package/esm2022/list/public-api.mjs +4 -0
  291. package/esm2022/list/upd-list.module.mjs +44 -0
  292. package/esm2022/list/updevs-components-list.mjs +5 -0
  293. package/esm2022/modal/assets/i18n/en.json +17 -0
  294. package/esm2022/modal/assets/i18n/pt.json +17 -0
  295. package/esm2022/modal/components/modal-container/modal-container.component.mjs +216 -0
  296. package/esm2022/modal/index.mjs +2 -0
  297. package/esm2022/modal/models/base.modal.mjs +14 -0
  298. package/esm2022/modal/models/modal-config.model.mjs +20 -0
  299. package/esm2022/modal/models/modal-ref.mjs +2 -0
  300. package/esm2022/modal/models/modal.config.mjs +2 -0
  301. package/esm2022/modal/models/public-api.mjs +4 -0
  302. package/esm2022/modal/public-api.mjs +4 -0
  303. package/esm2022/modal/services/modal-alert.service.mjs +99 -0
  304. package/esm2022/modal/services/modal.service.mjs +30 -0
  305. package/esm2022/modal/services/public-api.mjs +3 -0
  306. package/esm2022/modal/types/modal-footer-style.type.mjs +2 -0
  307. package/esm2022/modal/types/modal-size.type.mjs +2 -0
  308. package/esm2022/modal/upd-modal.module.mjs +90 -0
  309. package/esm2022/modal/updevs-components-modal.mjs +5 -0
  310. package/esm2022/paginator/assets/i18n/en.json +15 -0
  311. package/esm2022/paginator/assets/i18n/pt.json +15 -0
  312. package/esm2022/paginator/index.mjs +2 -0
  313. package/esm2022/paginator/paginator.component.mjs +66 -0
  314. package/esm2022/paginator/public-api.mjs +3 -0
  315. package/esm2022/paginator/upd-paginator.module.mjs +47 -0
  316. package/esm2022/paginator/updevs-components-paginator.mjs +5 -0
  317. package/esm2022/popover/index.mjs +2 -0
  318. package/esm2022/popover/popover.component.mjs +65 -0
  319. package/esm2022/popover/popover.directive.mjs +129 -0
  320. package/esm2022/popover/public-api.mjs +4 -0
  321. package/esm2022/popover/upd-popover.module.mjs +29 -0
  322. package/esm2022/popover/updevs-components-popover.mjs +5 -0
  323. package/esm2022/public-api.mjs +2 -0
  324. package/esm2022/table/abstractions/base-column.model.mjs +52 -0
  325. package/esm2022/table/abstractions/base.column.mjs +98 -0
  326. package/esm2022/table/abstractions/filters-operands.service.mjs +3 -0
  327. package/esm2022/table/abstractions/public-api.mjs +3 -0
  328. package/esm2022/table/assets/i18n/en.json +74 -0
  329. package/esm2022/table/assets/i18n/pt.json +74 -0
  330. package/esm2022/table/components/columns/boolean-column/boolean-column.component.mjs +26 -0
  331. package/esm2022/table/components/columns/date-time-column/date-time-column.component.mjs +13 -0
  332. package/esm2022/table/components/columns/number-column/number-column.component.mjs +13 -0
  333. package/esm2022/table/components/columns/text-column/text-column.component.mjs +31 -0
  334. package/esm2022/table/components/columns-manager/columns-manager.component.mjs +36 -0
  335. package/esm2022/table/components/filter-row/filter-row.component.mjs +114 -0
  336. package/esm2022/table/components/save-search/save-search.component.mjs +72 -0
  337. package/esm2022/table/components/search-section/search-section.component.mjs +93 -0
  338. package/esm2022/table/directives/public-api.mjs +2 -0
  339. package/esm2022/table/directives/table-column.directive.mjs +51 -0
  340. package/esm2022/table/index.mjs +2 -0
  341. package/esm2022/table/models/columns/boolean-column.model.mjs +22 -0
  342. package/esm2022/table/models/columns/date-time-column.model.mjs +16 -0
  343. package/esm2022/table/models/columns/guid-column.model.mjs +13 -0
  344. package/esm2022/table/models/columns/image-column.model.mjs +11 -0
  345. package/esm2022/table/models/columns/number-column.model.mjs +17 -0
  346. package/esm2022/table/models/columns/public-api.mjs +7 -0
  347. package/esm2022/table/models/columns/text-column.model.mjs +11 -0
  348. package/esm2022/table/models/enums/column-type.enum.mjs +15 -0
  349. package/esm2022/table/models/enums/public-api.mjs +2 -0
  350. package/esm2022/table/models/filter-item.model.mjs +2 -0
  351. package/esm2022/table/models/filter-operand.config.mjs +2 -0
  352. package/esm2022/table/models/operands-lists/boolean-filter-operands-list.model.mjs +25 -0
  353. package/esm2022/table/models/operands-lists/date-filter-operands-list.model.mjs +25 -0
  354. package/esm2022/table/models/operands-lists/date-or-number-operands-list.config.mjs +31 -0
  355. package/esm2022/table/models/operands-lists/filter-operands-list.config.mjs +31 -0
  356. package/esm2022/table/models/operands-lists/guid-filter-operands-list.model.mjs +16 -0
  357. package/esm2022/table/models/operands-lists/number-filter-operands-list.model.mjs +25 -0
  358. package/esm2022/table/models/operands-lists/string-filter-operands-list.model.mjs +45 -0
  359. package/esm2022/table/models/public-api.mjs +5 -0
  360. package/esm2022/table/models/saved-view.model.mjs +2 -0
  361. package/esm2022/table/models/table-config.model.mjs +21 -0
  362. package/esm2022/table/models/table.config.mjs +2 -0
  363. package/esm2022/table/models/upd-table-config.model.mjs +9 -0
  364. package/esm2022/table/models/upd-table.config.mjs +2 -0
  365. package/esm2022/table/public-api.mjs +6 -0
  366. package/esm2022/table/services/default-filters-operands.service.mjs +60 -0
  367. package/esm2022/table/services/storages/saved-views.storage.mjs +56 -0
  368. package/esm2022/table/services/stores/filters-operands.store.mjs +19 -0
  369. package/esm2022/table/services/upd-table-config.service.mjs +18 -0
  370. package/esm2022/table/table.component.mjs +382 -0
  371. package/esm2022/table/tools/filters.tools.mjs +48 -0
  372. package/esm2022/table/tools/table.constants.mjs +15 -0
  373. package/esm2022/table/upd-table.module.mjs +150 -0
  374. package/esm2022/table/updevs-components-table.mjs +5 -0
  375. package/esm2022/updevs-components.mjs +5 -0
  376. package/fesm2022/updevs-components-badge.mjs +91 -0
  377. package/fesm2022/updevs-components-badge.mjs.map +1 -0
  378. package/fesm2022/updevs-components-button.mjs +193 -0
  379. package/fesm2022/updevs-components-button.mjs.map +1 -0
  380. package/fesm2022/updevs-components-calendar.mjs +1712 -0
  381. package/fesm2022/updevs-components-calendar.mjs.map +1 -0
  382. package/fesm2022/updevs-components-card.mjs +238 -0
  383. package/fesm2022/updevs-components-card.mjs.map +1 -0
  384. package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
  385. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
  386. package/fesm2022/updevs-components-dropdown.mjs +226 -0
  387. package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
  388. package/fesm2022/updevs-components-form-controls-abstractions.mjs +53 -0
  389. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
  390. package/fesm2022/updevs-components-form-controls-checkbox.mjs +87 -0
  391. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
  392. package/fesm2022/updevs-components-form-controls-date-picker.mjs +190 -0
  393. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
  394. package/fesm2022/updevs-components-form-controls-file-upload.mjs +264 -0
  395. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  396. package/fesm2022/updevs-components-form-controls-input.mjs +259 -0
  397. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
  398. package/fesm2022/updevs-components-form-controls-radio.mjs +87 -0
  399. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
  400. package/fesm2022/updevs-components-form-controls-select.mjs +417 -0
  401. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
  402. package/fesm2022/updevs-components-form-controls-textarea.mjs +72 -0
  403. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
  404. package/fesm2022/updevs-components-form-controls-time-picker.mjs +345 -0
  405. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
  406. package/fesm2022/updevs-components-form.mjs +436 -0
  407. package/fesm2022/updevs-components-form.mjs.map +1 -0
  408. package/fesm2022/updevs-components-layout.mjs +940 -0
  409. package/fesm2022/updevs-components-layout.mjs.map +1 -0
  410. package/fesm2022/updevs-components-link.mjs +79 -0
  411. package/fesm2022/updevs-components-link.mjs.map +1 -0
  412. package/fesm2022/updevs-components-list.mjs +206 -0
  413. package/fesm2022/updevs-components-list.mjs.map +1 -0
  414. package/fesm2022/updevs-components-modal.mjs +504 -0
  415. package/fesm2022/updevs-components-modal.mjs.map +1 -0
  416. package/fesm2022/updevs-components-paginator.mjs +160 -0
  417. package/fesm2022/updevs-components-paginator.mjs.map +1 -0
  418. package/fesm2022/updevs-components-popover.mjs +223 -0
  419. package/fesm2022/updevs-components-popover.mjs.map +1 -0
  420. package/fesm2022/updevs-components-table.mjs +1709 -0
  421. package/fesm2022/updevs-components-table.mjs.map +1 -0
  422. package/fesm2022/updevs-components.mjs +33 -0
  423. package/fesm2022/updevs-components.mjs.map +1 -0
  424. package/form/components/dynamic-field/dynamic-field.component.d.ts +55 -0
  425. package/form/form.component.d.ts +60 -0
  426. package/form/models/checkbox-field.model.d.ts +4 -0
  427. package/form/models/checkbox-group-field.model.d.ts +6 -0
  428. package/form/models/dynamic-field.model.d.ts +28 -0
  429. package/form/models/enums/dynamic-field.type.d.ts +12 -0
  430. package/form/models/enums/public-api.d.ts +1 -0
  431. package/form/models/file-upload-field.model.d.ts +16 -0
  432. package/form/models/form-config.d.ts +2 -0
  433. package/form/models/form-row.model.d.ts +10 -0
  434. package/form/models/input-field.model.d.ts +9 -0
  435. package/form/models/public-api.d.ts +14 -0
  436. package/form/models/radio-field.model.d.ts +4 -0
  437. package/form/models/radio-group-field.model.d.ts +6 -0
  438. package/form/models/select-field.model.d.ts +28 -0
  439. package/form/models/single-select-field.model.d.ts +4 -0
  440. package/form/models/textarea-field.model.d.ts +10 -0
  441. package/form/models/validator-config.d.ts +5 -0
  442. package/form/public-api.d.ts +3 -0
  443. package/form/tools/errors-helper.d.ts +11 -0
  444. package/form/upd-form.module.d.ts +22 -0
  445. package/form-controls/abstractions/base-control.d.ts +29 -0
  446. package/form-controls/abstractions/index.d.ts +2 -0
  447. package/form-controls/abstractions/public-api.d.ts +2 -0
  448. package/form-controls/checkbox/checkbox.component.d.ts +19 -0
  449. package/form-controls/checkbox/{src/public-api.ts → public-api.d.ts} +0 -1
  450. package/form-controls/checkbox/upd-checkbox.module.d.ts +10 -0
  451. package/form-controls/date-picker/date-picker.component.d.ts +87 -0
  452. package/form-controls/date-picker/public-api.d.ts +2 -0
  453. package/form-controls/date-picker/upd-date-picker.module.d.ts +12 -0
  454. package/form-controls/file-upload/file-upload-changed.event.d.ts +4 -0
  455. package/form-controls/file-upload/file-upload.component.d.ts +46 -0
  456. package/form-controls/file-upload/public-api.d.ts +3 -0
  457. package/form-controls/file-upload/upd-file-upload.module.d.ts +14 -0
  458. package/form-controls/input/directives/input-append.directive.d.ts +7 -0
  459. package/form-controls/input/directives/input-prepend.directive.d.ts +7 -0
  460. package/form-controls/input/input.component.d.ts +64 -0
  461. package/form-controls/input/upd-input.module.d.ts +13 -0
  462. package/form-controls/radio/radio.component.d.ts +17 -0
  463. package/form-controls/radio/upd-radio.module.d.ts +10 -0
  464. package/form-controls/select/components/multiple/select-multiple.component.d.ts +25 -0
  465. package/form-controls/select/components/single/select.component.d.ts +26 -0
  466. package/form-controls/select/models/abstractions/base-select.component.d.ts +77 -0
  467. package/form-controls/select/models/defaults.d.ts +8 -0
  468. package/form-controls/select/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  469. package/form-controls/select/{src/models/select-item.ts → models/select-item.d.ts} +0 -1
  470. package/form-controls/select/upd-select.module.d.ts +16 -0
  471. package/form-controls/textarea/textarea.component.d.ts +19 -0
  472. package/form-controls/textarea/upd-textarea.module.d.ts +8 -0
  473. package/form-controls/time-picker/time-picker.component.d.ts +78 -0
  474. package/form-controls/time-picker/time-selector/time-selector.component.d.ts +69 -0
  475. package/form-controls/time-picker/upd-time-picker.module.d.ts +17 -0
  476. package/index.d.ts +2 -0
  477. package/layout/abstractions/base-page.component.d.ts +12 -0
  478. package/layout/abstractions/base.layout.d.ts +15 -0
  479. package/layout/index.d.ts +1 -0
  480. package/layout/layouts/blank-layout/blank-layout.component.d.ts +9 -0
  481. package/layout/layouts/blank-layout/blank-layout.module.d.ts +15 -0
  482. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +6 -0
  483. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +22 -0
  484. package/layout/models/login-page-config.model.d.ts +46 -0
  485. package/layout/models/login-page.config.d.ts +44 -0
  486. package/layout/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  487. package/layout/models/security-layout-config.model.d.ts +12 -0
  488. package/layout/models/security-layout.config.d.ts +10 -0
  489. package/layout/models/upd-layout-config.model.d.ts +48 -0
  490. package/layout/{src/models/upd-layout.config.ts → models/upd-layout.config.d.ts} +9 -0
  491. package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +12 -0
  492. package/layout/pages/auth-flow/auth-flow.module.d.ts +20 -0
  493. package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +5 -0
  494. package/layout/pages/auth-flow/login/login.component.d.ts +26 -0
  495. package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +5 -0
  496. package/layout/partials/footer/footer-copyright.directive.d.ts +5 -0
  497. package/layout/partials/footer/footer.component.d.ts +34 -0
  498. package/layout/partials/footer/footer.module.d.ts +9 -0
  499. package/layout/{src/partials/footer/public-api.ts → partials/footer/public-api.d.ts} +1 -0
  500. package/layout/partials/header/header.component.d.ts +48 -0
  501. package/layout/partials/header/header.module.d.ts +12 -0
  502. package/layout/{src/partials/header/public-api.ts → partials/header/public-api.d.ts} +1 -0
  503. package/layout/partials/page-header/page-header.component.d.ts +7 -0
  504. package/layout/partials/sidebar/sidebar.component.d.ts +24 -0
  505. package/layout/services/upd-layout-config.service.d.ts +15 -0
  506. package/layout/{src/tools/layout.constants.ts → tools/layout.constants.d.ts} +3 -6
  507. package/layout/upd-layout.module.d.ts +19 -0
  508. package/lib/index.d.ts +2 -0
  509. package/lib/models/public-api.d.ts +2 -0
  510. package/lib/models/row-column-size.d.ts +6 -0
  511. package/lib/public-api.d.ts +5 -0
  512. package/lib/tools/column-size.helper.d.ts +6 -0
  513. package/lib/tools/public-api.d.ts +2 -0
  514. package/{src/lib/types/component-size.type.ts → lib/types/component-size.type.d.ts} +1 -0
  515. package/lib/types/horizontal-vertical.type.d.ts +2 -0
  516. package/lib/types/public-api.d.ts +4 -0
  517. package/lib/types/validation-status.type.d.ts +2 -0
  518. package/lib/upd-components.module.d.ts +7 -0
  519. package/link/index.d.ts +1 -0
  520. package/link/link.component.d.ts +22 -0
  521. package/link/upd-link.module.d.ts +8 -0
  522. package/list/index.d.ts +1 -0
  523. package/list/list.component.d.ts +46 -0
  524. package/list/{src/models/list-item.ts → models/list-item.d.ts} +3 -4
  525. package/list/models/list-item.model.d.ts +25 -0
  526. package/list/upd-list.module.d.ts +13 -0
  527. package/modal/components/modal-container/modal-container.component.d.ts +74 -0
  528. package/modal/index.d.ts +1 -0
  529. package/modal/models/base.modal.d.ts +8 -0
  530. package/modal/models/modal-config.model.d.ts +32 -0
  531. package/modal/models/modal-ref.d.ts +6 -0
  532. package/modal/models/modal.config.d.ts +30 -0
  533. package/modal/models/public-api.d.ts +3 -0
  534. package/modal/public-api.d.ts +3 -0
  535. package/modal/services/modal-alert.service.d.ts +22 -0
  536. package/modal/services/modal.service.d.ts +12 -0
  537. package/modal/services/public-api.d.ts +2 -0
  538. package/modal/types/modal-footer-style.type.d.ts +1 -0
  539. package/modal/types/modal-size.type.d.ts +1 -0
  540. package/modal/upd-modal.module.d.ts +18 -0
  541. package/package.json +169 -21
  542. package/paginator/index.d.ts +1 -0
  543. package/paginator/paginator.component.d.ts +42 -0
  544. package/paginator/public-api.d.ts +2 -0
  545. package/paginator/upd-paginator.module.d.ts +14 -0
  546. package/popover/index.d.ts +1 -0
  547. package/popover/popover.component.d.ts +22 -0
  548. package/popover/popover.directive.d.ts +33 -0
  549. package/popover/upd-popover.module.d.ts +9 -0
  550. package/public-api.d.ts +2 -0
  551. package/table/abstractions/base-column.model.d.ts +31 -0
  552. package/table/abstractions/base.column.d.ts +22 -0
  553. package/table/abstractions/filters-operands.service.d.ts +8 -0
  554. package/table/abstractions/public-api.d.ts +2 -0
  555. package/table/components/columns/boolean-column/boolean-column.component.d.ts +9 -0
  556. package/table/components/columns/date-time-column/date-time-column.component.d.ts +7 -0
  557. package/table/components/columns/number-column/number-column.component.d.ts +7 -0
  558. package/table/components/columns/text-column/text-column.component.d.ts +9 -0
  559. package/table/components/columns-manager/columns-manager.component.d.ts +15 -0
  560. package/table/components/filter-row/filter-row.component.d.ts +40 -0
  561. package/table/components/save-search/save-search.component.d.ts +17 -0
  562. package/table/components/search-section/search-section.component.d.ts +36 -0
  563. package/table/directives/public-api.d.ts +1 -0
  564. package/table/directives/table-column.directive.d.ts +14 -0
  565. package/table/index.d.ts +1 -0
  566. package/table/models/columns/boolean-column.model.d.ts +15 -0
  567. package/table/models/columns/date-time-column.model.d.ts +8 -0
  568. package/table/models/columns/guid-column.model.d.ts +4 -0
  569. package/table/models/columns/image-column.model.d.ts +6 -0
  570. package/table/models/columns/number-column.model.d.ts +8 -0
  571. package/table/models/columns/public-api.d.ts +6 -0
  572. package/table/models/columns/text-column.model.d.ts +6 -0
  573. package/table/models/enums/column-type.enum.d.ts +13 -0
  574. package/table/models/enums/public-api.d.ts +1 -0
  575. package/table/models/filter-item.model.d.ts +6 -0
  576. package/table/models/filter-operand.config.d.ts +9 -0
  577. package/table/models/operands-lists/boolean-filter-operands-list.model.d.ts +6 -0
  578. package/table/models/operands-lists/date-filter-operands-list.model.d.ts +6 -0
  579. package/table/models/operands-lists/date-or-number-operands-list.config.d.ts +5 -0
  580. package/table/models/operands-lists/filter-operands-list.config.d.ts +5 -0
  581. package/table/models/operands-lists/guid-filter-operands-list.model.d.ts +6 -0
  582. package/table/models/operands-lists/number-filter-operands-list.model.d.ts +6 -0
  583. package/table/models/operands-lists/string-filter-operands-list.model.d.ts +6 -0
  584. package/table/models/public-api.d.ts +4 -0
  585. package/table/models/saved-view.model.d.ts +11 -0
  586. package/table/models/table-config.model.d.ts +24 -0
  587. package/table/models/table.config.d.ts +22 -0
  588. package/table/models/upd-table-config.model.d.ts +6 -0
  589. package/table/models/upd-table.config.d.ts +6 -0
  590. package/table/public-api.d.ts +5 -0
  591. package/table/services/default-filters-operands.service.d.ts +17 -0
  592. package/table/services/storages/saved-views.storage.d.ts +19 -0
  593. package/table/services/stores/filters-operands.store.d.ts +11 -0
  594. package/table/services/upd-table-config.service.d.ts +12 -0
  595. package/table/table.component.d.ts +78 -0
  596. package/table/tools/filters.tools.d.ts +9 -0
  597. package/table/tools/table.constants.d.ts +15 -0
  598. package/table/upd-table.module.d.ts +40 -0
  599. package/CHANGELOG.md +0 -8
  600. package/button/ng-package.json +0 -7
  601. package/button/src/button.component.html +0 -8
  602. package/button/src/button.component.scss +0 -5
  603. package/button/src/button.component.spec.ts +0 -23
  604. package/button/src/button.component.ts +0 -154
  605. package/button/src/upd-button.module.ts +0 -17
  606. package/card/ng-package.json +0 -7
  607. package/card/src/card.component.html +0 -105
  608. package/card/src/card.component.scss +0 -47
  609. package/card/src/card.component.spec.ts +0 -23
  610. package/card/src/card.component.ts +0 -112
  611. package/card/src/directives/card-actions.directive.spec.ts +0 -8
  612. package/card/src/directives/card-actions.directive.ts +0 -11
  613. package/card/src/directives/card-footer.directive.spec.ts +0 -8
  614. package/card/src/directives/card-footer.directive.ts +0 -11
  615. package/card/src/directives/card-header.directive.spec.ts +0 -8
  616. package/card/src/directives/card-header.directive.ts +0 -11
  617. package/card/src/directives/card-image.directive.spec.ts +0 -8
  618. package/card/src/directives/card-image.directive.ts +0 -11
  619. package/card/src/types/public-api.ts +0 -5
  620. package/card/src/upd-card.module.ts +0 -32
  621. package/dropdown/ng-package.json +0 -7
  622. package/dropdown/src/dropdown.component.html +0 -32
  623. package/dropdown/src/dropdown.component.scss +0 -19
  624. package/dropdown/src/dropdown.component.spec.ts +0 -23
  625. package/dropdown/src/dropdown.component.ts +0 -182
  626. package/dropdown/src/models/public-api.ts +0 -2
  627. package/dropdown/src/upd-dropdown.module.ts +0 -25
  628. package/form/ng-package.json +0 -7
  629. package/form/src/form.module.ts +0 -10
  630. package/form/src/public-api.ts +0 -1
  631. package/form-controls/checkbox/ng-package.json +0 -7
  632. package/form-controls/checkbox/src/checkbox.component.html +0 -7
  633. package/form-controls/checkbox/src/checkbox.component.scss +0 -0
  634. package/form-controls/checkbox/src/checkbox.component.spec.ts +0 -23
  635. package/form-controls/checkbox/src/checkbox.component.ts +0 -48
  636. package/form-controls/checkbox/src/upd-checkbox.module.ts +0 -19
  637. package/form-controls/input/ng-package.json +0 -7
  638. package/form-controls/input/src/directives/input-append.directive.spec.ts +0 -8
  639. package/form-controls/input/src/directives/input-append.directive.ts +0 -11
  640. package/form-controls/input/src/directives/input-prepend.directive.spec.ts +0 -8
  641. package/form-controls/input/src/directives/input-prepend.directive.ts +0 -11
  642. package/form-controls/input/src/input.component.html +0 -82
  643. package/form-controls/input/src/input.component.scss +0 -13
  644. package/form-controls/input/src/input.component.spec.ts +0 -23
  645. package/form-controls/input/src/input.component.ts +0 -124
  646. package/form-controls/input/src/upd-input.module.ts +0 -29
  647. package/form-controls/radio/ng-package.json +0 -7
  648. package/form-controls/radio/src/radio.component.html +0 -7
  649. package/form-controls/radio/src/radio.component.scss +0 -0
  650. package/form-controls/radio/src/radio.component.spec.ts +0 -23
  651. package/form-controls/radio/src/radio.component.ts +0 -47
  652. package/form-controls/radio/src/upd-radio.module.ts +0 -17
  653. package/form-controls/select/ng-package.json +0 -7
  654. package/form-controls/select/src/components/multiple/select-multiple.component.html +0 -41
  655. package/form-controls/select/src/components/multiple/select-multiple.component.scss +0 -6
  656. package/form-controls/select/src/components/multiple/select-multiple.component.spec.ts +0 -21
  657. package/form-controls/select/src/components/multiple/select-multiple.component.ts +0 -69
  658. package/form-controls/select/src/components/shared.scss +0 -40
  659. package/form-controls/select/src/components/single/select.component.html +0 -53
  660. package/form-controls/select/src/components/single/select.component.scss +0 -3
  661. package/form-controls/select/src/components/single/select.component.spec.ts +0 -23
  662. package/form-controls/select/src/components/single/select.component.ts +0 -58
  663. package/form-controls/select/src/models/abstractions/base-select.component.ts +0 -259
  664. package/form-controls/select/src/upd-select.module.ts +0 -32
  665. package/form-controls/textarea/ng-package.json +0 -7
  666. package/form-controls/textarea/src/textarea.component.html +0 -8
  667. package/form-controls/textarea/src/textarea.component.scss +0 -0
  668. package/form-controls/textarea/src/textarea.component.spec.ts +0 -23
  669. package/form-controls/textarea/src/textarea.component.ts +0 -47
  670. package/form-controls/textarea/src/upd-textarea.module.ts +0 -17
  671. package/form-controls/time-picker/ng-package.json +0 -7
  672. package/form-controls/time-picker/src/time-picker.component.html +0 -17
  673. package/form-controls/time-picker/src/time-picker.component.scss +0 -10
  674. package/form-controls/time-picker/src/time-picker.component.spec.ts +0 -21
  675. package/form-controls/time-picker/src/time-picker.component.ts +0 -110
  676. package/form-controls/time-picker/src/time-selector/time-selector.component.html +0 -44
  677. package/form-controls/time-picker/src/time-selector/time-selector.component.scss +0 -47
  678. package/form-controls/time-picker/src/time-selector/time-selector.component.spec.ts +0 -21
  679. package/form-controls/time-picker/src/time-selector/time-selector.component.ts +0 -107
  680. package/form-controls/time-picker/src/upd-time-picker.module.ts +0 -39
  681. package/layout/ng-package.json +0 -7
  682. package/layout/src/abstractions/base-page.component.ts +0 -21
  683. package/layout/src/assets/i18n/en.json +0 -5
  684. package/layout/src/assets/i18n/pt.json +0 -5
  685. package/layout/src/layouts/blank-layout/blank-layout.component.html +0 -1
  686. package/layout/src/layouts/blank-layout/blank-layout.component.scss +0 -0
  687. package/layout/src/layouts/blank-layout/blank-layout.component.spec.ts +0 -23
  688. package/layout/src/layouts/blank-layout/blank-layout.component.ts +0 -10
  689. package/layout/src/layouts/blank-layout/blank-layout.module.ts +0 -17
  690. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.html +0 -14
  691. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.scss +0 -0
  692. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.spec.ts +0 -23
  693. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.ts +0 -31
  694. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.ts +0 -52
  695. package/layout/src/models/upd-layout-config.model.ts +0 -71
  696. package/layout/src/pages/auth-flow/auth-flow-routing.module.ts +0 -21
  697. package/layout/src/pages/auth-flow/auth-flow.module.ts +0 -29
  698. package/layout/src/pages/auth-flow/logged-out/logged-out.component.html +0 -1
  699. package/layout/src/pages/auth-flow/logged-out/logged-out.component.scss +0 -0
  700. package/layout/src/pages/auth-flow/logged-out/logged-out.component.spec.ts +0 -23
  701. package/layout/src/pages/auth-flow/logged-out/logged-out.component.ts +0 -10
  702. package/layout/src/pages/auth-flow/login/login.component.html +0 -96
  703. package/layout/src/pages/auth-flow/login/login.component.scss +0 -0
  704. package/layout/src/pages/auth-flow/login/login.component.spec.ts +0 -23
  705. package/layout/src/pages/auth-flow/login/login.component.ts +0 -26
  706. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.html +0 -1
  707. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.scss +0 -0
  708. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.spec.ts +0 -23
  709. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.ts +0 -10
  710. package/layout/src/partials/footer/footer-copyright.directive.spec.ts +0 -8
  711. package/layout/src/partials/footer/footer-copyright.directive.ts +0 -9
  712. package/layout/src/partials/footer/footer.component.html +0 -30
  713. package/layout/src/partials/footer/footer.component.scss +0 -0
  714. package/layout/src/partials/footer/footer.component.spec.ts +0 -23
  715. package/layout/src/partials/footer/footer.component.ts +0 -73
  716. package/layout/src/partials/header/header.component.html +0 -163
  717. package/layout/src/partials/header/header.component.scss +0 -0
  718. package/layout/src/partials/header/header.component.spec.ts +0 -23
  719. package/layout/src/partials/header/header.component.ts +0 -86
  720. package/layout/src/partials/page-header/page-header.component.html +0 -19
  721. package/layout/src/partials/page-header/page-header.component.scss +0 -0
  722. package/layout/src/partials/page-header/page-header.component.spec.ts +0 -23
  723. package/layout/src/partials/page-header/page-header.component.ts +0 -11
  724. package/layout/src/partials/sidebar/sidebar.component.html +0 -62
  725. package/layout/src/partials/sidebar/sidebar.component.scss +0 -0
  726. package/layout/src/partials/sidebar/sidebar.component.spec.ts +0 -23
  727. package/layout/src/partials/sidebar/sidebar.component.ts +0 -161
  728. package/layout/src/services/upd-layout-config.service.spec.ts +0 -16
  729. package/layout/src/services/upd-layout-config.service.ts +0 -20
  730. package/layout/src/upd-layout.module.ts +0 -34
  731. package/link/ng-package.json +0 -7
  732. package/link/src/link.component.html +0 -3
  733. package/link/src/link.component.scss +0 -3
  734. package/link/src/link.component.spec.ts +0 -23
  735. package/link/src/link.component.ts +0 -48
  736. package/link/src/upd-link.module.ts +0 -17
  737. package/list/ng-package.json +0 -7
  738. package/list/src/assets/i18n/en.json +0 -5
  739. package/list/src/assets/i18n/pt.json +0 -5
  740. package/list/src/list.component.html +0 -58
  741. package/list/src/list.component.scss +0 -21
  742. package/list/src/list.component.spec.ts +0 -23
  743. package/list/src/list.component.ts +0 -147
  744. package/list/src/models/list-item.model.ts +0 -35
  745. package/list/src/upd-list.module.ts +0 -30
  746. package/ng-package.json +0 -10
  747. package/popover/ng-package.json +0 -7
  748. package/popover/src/popover.component.html +0 -20
  749. package/popover/src/popover.component.scss +0 -8
  750. package/popover/src/popover.component.spec.ts +0 -23
  751. package/popover/src/popover.component.ts +0 -53
  752. package/popover/src/popover.directive.spec.ts +0 -8
  753. package/popover/src/popover.directive.ts +0 -128
  754. package/popover/src/upd-popover.module.ts +0 -20
  755. package/src/lib/public-api.ts +0 -2
  756. package/src/lib/types/public-api.ts +0 -2
  757. package/src/lib/types/validation-status.type.ts +0 -1
  758. package/src/lib/upd-components.module.ts +0 -6
  759. package/src/public-api.ts +0 -1
  760. package/tsconfig.lib.json +0 -14
  761. package/tsconfig.lib.prod.json +0 -10
  762. package/tsconfig.spec.json +0 -14
  763. /package/{button/src/index.ts → badge/index.d.ts} +0 -0
  764. /package/{card/src/index.ts → button/index.d.ts} +0 -0
  765. /package/button/{src/public-api.ts → public-api.d.ts} +0 -0
  766. /package/{dropdown/src/index.ts → calendar/index.d.ts} +0 -0
  767. /package/card/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  768. /package/{form-controls/checkbox/src/index.ts → card/index.d.ts} +0 -0
  769. /package/card/{src/public-api.ts → public-api.d.ts} +0 -0
  770. /package/card/{src/types/card-state.type.ts → types/card-state.type.d.ts} +0 -0
  771. /package/card/{src/types/card-style.type.ts → types/card-style.type.d.ts} +0 -0
  772. /package/card/{src/types/hover-effect.type.ts → types/hover-effect.type.d.ts} +0 -0
  773. /package/card/{src/types/ribbon-style.type.ts → types/ribbon-style.type.d.ts} +0 -0
  774. /package/card/{src/types/status-position.type.ts → types/status-position.type.d.ts} +0 -0
  775. /package/{form-controls/input/src/index.ts → drag-and-drop/index.d.ts} +0 -0
  776. /package/{form-controls/radio/src/index.ts → dropdown/index.d.ts} +0 -0
  777. /package/dropdown/{src/public-api.ts → public-api.d.ts} +0 -0
  778. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/en.json +0 -0
  779. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/pt.json +0 -0
  780. /package/{src/lib/index.ts → form/index.d.ts} +0 -0
  781. /package/form-controls/{select/src/index.ts → checkbox/index.d.ts} +0 -0
  782. /package/form-controls/{textarea/src/index.ts → date-picker/index.d.ts} +0 -0
  783. /package/form-controls/{time-picker/src/index.ts → file-upload/index.d.ts} +0 -0
  784. /package/form-controls/input/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  785. /package/{form/src/index.ts → form-controls/input/index.d.ts} +0 -0
  786. /package/form-controls/input/{src/public-api.ts → public-api.d.ts} +0 -0
  787. /package/form-controls/input/{src/types/input.type.ts → types/input.type.d.ts} +0 -0
  788. /package/form-controls/input/{src/types/loader-position.type.ts → types/loader-position.type.d.ts} +0 -0
  789. /package/form-controls/input/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
  790. /package/{layout/src/index.ts → form-controls/radio/index.d.ts} +0 -0
  791. /package/form-controls/radio/{src/public-api.ts → public-api.d.ts} +0 -0
  792. /package/{link/src/index.ts → form-controls/select/index.d.ts} +0 -0
  793. /package/form-controls/select/{src/public-api.ts → public-api.d.ts} +0 -0
  794. /package/{list/src/index.ts → form-controls/textarea/index.d.ts} +0 -0
  795. /package/form-controls/textarea/{src/public-api.ts → public-api.d.ts} +0 -0
  796. /package/{popover/src/index.ts → form-controls/time-picker/index.d.ts} +0 -0
  797. /package/form-controls/time-picker/{src/public-api.ts → public-api.d.ts} +0 -0
  798. /package/layout/{src/abstractions/public-api.ts → abstractions/public-api.d.ts} +0 -0
  799. /package/layout/{src/layouts/public-api.ts → layouts/public-api.d.ts} +0 -0
  800. /package/layout/{src/pages/auth-flow/public-api.ts → pages/auth-flow/public-api.d.ts} +0 -0
  801. /package/layout/{src/pages/public-api.ts → pages/public-api.d.ts} +0 -0
  802. /package/layout/{src/partials/header/header-style.type.ts → partials/header/header-style.type.d.ts} +0 -0
  803. /package/layout/{src/partials/page-header/public-api.ts → partials/page-header/public-api.d.ts} +0 -0
  804. /package/layout/{src/partials/public-api.ts → partials/public-api.d.ts} +0 -0
  805. /package/layout/{src/partials/sidebar/public-api.ts → partials/sidebar/public-api.d.ts} +0 -0
  806. /package/layout/{src/public-api.ts → public-api.d.ts} +0 -0
  807. /package/layout/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
  808. /package/link/{src/public-api.ts → public-api.d.ts} +0 -0
  809. /package/link/{src/target.type.ts → target.type.d.ts} +0 -0
  810. /package/list/{src/models/badge-position.type.ts → models/badge-position.type.d.ts} +0 -0
  811. /package/list/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  812. /package/list/{src/public-api.ts → public-api.d.ts} +0 -0
  813. /package/popover/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,185 @@
1
+ import { Component, ViewEncapsulation, Input, ContentChild, HostBinding, Output, EventEmitter } from '@angular/core';
2
+ import { ColumnSizeHelper } from '@updevs/components';
3
+ import { BaseControl } from '@updevs/components/form-controls/abstractions';
4
+ import { Subject } from 'rxjs';
5
+ import { InputAppendDirective } from './directives/input-append.directive';
6
+ import { InputPrependDirective } from './directives/input-prepend.directive';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@updevs/icons";
10
+ import * as i3 from "@updevs/sdk/mask";
11
+ import * as i4 from "@updevs/components/popover";
12
+ export class InputComponent extends BaseControl {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.hostWrapperClasses = '';
16
+ this.type = 'text';
17
+ this.size = 'default';
18
+ this.isPlainText = false;
19
+ this.isReadOnly = false;
20
+ this.isLoading = false;
21
+ this.isRound = false;
22
+ this.isFlush = false;
23
+ this.isInputGroupFlat = false;
24
+ this.isPrependButton = false;
25
+ this.isAppendButton = false;
26
+ this.isFloating = false;
27
+ this.loaderPosition = 'append';
28
+ this.isValidationStatusLight = false;
29
+ this.layout = 'vertical';
30
+ this.valueChange = new EventEmitter();
31
+ this.blurred = new EventEmitter();
32
+ /**
33
+ * Emitted when any key is pressed.
34
+ */
35
+ this.keyDown = new EventEmitter();
36
+ /**
37
+ * Emitted when the ESC key is pressed.
38
+ */
39
+ this.keyDownEsc = new EventEmitter();
40
+ /**
41
+ * Emitted when the ENTER key is released.
42
+ */
43
+ this.keyUpEnter = new EventEmitter();
44
+ this.classes = [];
45
+ this.valueChangedSub = new Subject();
46
+ }
47
+ get shouldDisplayInnerLabel() {
48
+ return !!this.label()
49
+ && !this.prependIconModel
50
+ && !this.appendIconModel
51
+ && !this.isLoading
52
+ && !this.appendTemplate
53
+ && !this.prependTemplate;
54
+ }
55
+ get labelSizeClasses() {
56
+ if (this.layout !== 'horizontal') {
57
+ return 'form-label';
58
+ }
59
+ return ColumnSizeHelper.getClasses('col-form-label', ColumnSizeHelper.getSizeClasses(this.labelColSize(), 3));
60
+ }
61
+ get validationClass() {
62
+ return !!this.validationStatus() ? `is-${this.validationStatus()}` : '';
63
+ }
64
+ get validationBorderClass() {
65
+ return !!this.validationStatus() ? `border-${this.validationStatus() === 'invalid' ? 'danger' : 'success'}` : '';
66
+ }
67
+ ngOnInit() {
68
+ this.updateClasses();
69
+ }
70
+ ngOnChanges(changes) {
71
+ this.updateClasses();
72
+ if (changes['value'] && !!this.mask) {
73
+ this.valueChangedSub.next(changes['value'].currentValue);
74
+ }
75
+ }
76
+ onInputChange(evt) {
77
+ if (!evt.target) {
78
+ return;
79
+ }
80
+ this.valueChange.emit(evt.target.value);
81
+ }
82
+ updateClasses() {
83
+ const lClasses = !this.isPlainText ? ['form-control'] : ['form-control-plaintext'];
84
+ if (this.isRound) {
85
+ lClasses.push('form-control-rounded');
86
+ }
87
+ if (this.isFlush) {
88
+ lClasses.push('form-control-flush');
89
+ }
90
+ if (this.size !== 'default') {
91
+ lClasses.push(`form-control-${this.size === 'large' ? 'lg' : 'sm'}`);
92
+ }
93
+ if (!!this.validationStatus()) {
94
+ const statusCls = `is-${this.validationStatus()}`;
95
+ lClasses.push(statusCls);
96
+ if (this.isValidationStatusLight) {
97
+ lClasses.push(`${statusCls}-lite`);
98
+ }
99
+ }
100
+ if (this.layout === 'horizontal') {
101
+ this.hostWrapperClasses = 'row';
102
+ }
103
+ if (!!this.wrapperClasses) {
104
+ this.hostWrapperClasses += ` ${this.wrapperClasses}`;
105
+ }
106
+ if (this.isFloating) {
107
+ this.hostWrapperClasses += ' form-floating';
108
+ }
109
+ this.classes = [
110
+ ...lClasses,
111
+ ...(this.customClasses || '').split(' '),
112
+ this.layout === 'horizontal' ? 'col' : ''
113
+ ];
114
+ }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: InputComponent, selector: "upd-input", inputs: { type: "type", mask: "mask", maskConfig: "maskConfig", value: "value", size: "size", customClasses: "customClasses", wrapperClasses: "wrapperClasses", maxLength: "maxLength", isPlainText: "isPlainText", isReadOnly: "isReadOnly", isLoading: "isLoading", isRound: "isRound", isFlush: "isFlush", isInputGroupFlat: "isInputGroupFlat", isPrependButton: "isPrependButton", isAppendButton: "isAppendButton", isFloating: "isFloating", loaderPosition: "loaderPosition", prependIconModel: "prependIconModel", appendIconModel: "appendIconModel", isValidationStatusLight: "isValidationStatusLight", layout: "layout" }, outputs: { valueChange: "valueChange", blurred: "blurred", keyDown: "keyDown", keyDownEsc: "keyDownEsc", keyUpEnter: "keyUpEnter" }, host: { properties: { "class": "this.hostWrapperClasses" } }, queries: [{ propertyName: "appendTemplate", first: true, predicate: InputAppendDirective, descendants: true }, { propertyName: "prependTemplate", first: true, predicate: InputPrependDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\" [ngClass]=\"validationClass\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\" [ngClass]=\"validationBorderClass\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\" [ngClass]=\"validationBorderClass\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n</ng-template>\n\n<ng-template #feedbackTpl>\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\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.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i3.MaskDirective, selector: "[updMask]", inputs: ["updMask", "updMaskConfig", "specialCharacters", "patterns", "prefix", "thousandSeparator", "decimalMarker", "suffix", "shownMaskExpression", "removeSpecialCharacters", "placeholderCharacter", "isHiddenInput", "showMaskTyped", "showTemplate", "clearIfNoMatch", "shouldValidate", "shouldTriggerOnMaskChange", "allowNegativeNumbers", "leadZeroDateTime", "separatorLimit", "updateMaskValueSubject"], outputs: ["maskFilled"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
117
+ }
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputComponent, decorators: [{
119
+ type: Component,
120
+ args: [{ selector: 'upd-input', encapsulation: ViewEncapsulation.None, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\" [ngClass]=\"validationClass\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\" [ngClass]=\"validationBorderClass\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\" [ngClass]=\"validationBorderClass\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n</ng-template>\n\n<ng-template #feedbackTpl>\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"] }]
121
+ }], propDecorators: { hostWrapperClasses: [{
122
+ type: HostBinding,
123
+ args: ['class']
124
+ }], appendTemplate: [{
125
+ type: ContentChild,
126
+ args: [InputAppendDirective]
127
+ }], prependTemplate: [{
128
+ type: ContentChild,
129
+ args: [InputPrependDirective]
130
+ }], type: [{
131
+ type: Input
132
+ }], mask: [{
133
+ type: Input
134
+ }], maskConfig: [{
135
+ type: Input
136
+ }], value: [{
137
+ type: Input
138
+ }], size: [{
139
+ type: Input
140
+ }], customClasses: [{
141
+ type: Input
142
+ }], wrapperClasses: [{
143
+ type: Input
144
+ }], maxLength: [{
145
+ type: Input
146
+ }], isPlainText: [{
147
+ type: Input
148
+ }], isReadOnly: [{
149
+ type: Input
150
+ }], isLoading: [{
151
+ type: Input
152
+ }], isRound: [{
153
+ type: Input
154
+ }], isFlush: [{
155
+ type: Input
156
+ }], isInputGroupFlat: [{
157
+ type: Input
158
+ }], isPrependButton: [{
159
+ type: Input
160
+ }], isAppendButton: [{
161
+ type: Input
162
+ }], isFloating: [{
163
+ type: Input
164
+ }], loaderPosition: [{
165
+ type: Input
166
+ }], prependIconModel: [{
167
+ type: Input
168
+ }], appendIconModel: [{
169
+ type: Input
170
+ }], isValidationStatusLight: [{
171
+ type: Input
172
+ }], layout: [{
173
+ type: Input
174
+ }], valueChange: [{
175
+ type: Output
176
+ }], blurred: [{
177
+ type: Output
178
+ }], keyDown: [{
179
+ type: Output
180
+ }], keyDownEsc: [{
181
+ type: Output
182
+ }], keyUpEnter: [{
183
+ type: Output
184
+ }] } });
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvaW5wdXQvc3JjL2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2lucHV0L3NyYy9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixLQUFLLEVBSUwsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBNkMsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7O0FBUzdFLE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVztJQU4vQzs7UUFPMEIsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBSXJDLFNBQUksR0FBYyxNQUFNLENBQUM7UUFJekIsU0FBSSxHQUFzQixTQUFTLENBQUM7UUFJcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixtQkFBYyxHQUF1QixRQUFRLENBQUM7UUFHOUMsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLFdBQU0sR0FBMkIsVUFBVSxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RDs7V0FFRztRQUNnQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNyRDs7V0FFRztRQUNnQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6RDs7V0FFRztRQUNnQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RCxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBMEJkLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztLQWdFcEQ7SUF6RkcsSUFBSSx1QkFBdUI7UUFDdkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtlQUNkLENBQUMsSUFBSSxDQUFDLGdCQUFnQjtlQUN0QixDQUFDLElBQUksQ0FBQyxlQUFlO2VBQ3JCLENBQUMsSUFBSSxDQUFDLFNBQVM7ZUFDZixDQUFDLElBQUksQ0FBQyxjQUFjO2VBQ3BCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQy9CLE9BQU8sWUFBWSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxPQUFPLGdCQUFnQixDQUFDLFVBQVUsQ0FDOUIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQzFELENBQUM7SUFDTixDQUFDO0lBQ0QsSUFBSSxlQUFlO1FBQ2YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFDRCxJQUFJLHFCQUFxQjtRQUNyQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNySCxDQUFDO0lBSUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFFLEdBQUcsQ0FBQyxNQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLGFBQWE7UUFDakIsTUFBTSxRQUFRLEdBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFN0YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixRQUFRLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztZQUM1QixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7WUFDbEQsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV6QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUMvQixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxPQUFPLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsa0JBQWtCLElBQUksZ0JBQWdCLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDWCxHQUFHLFFBQVE7WUFDWCxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDNUMsQ0FBQztJQUNOLENBQUM7OEdBcElRLGNBQWM7a0dBQWQsY0FBYyx3NEJBRVQsb0JBQW9CLGtGQUNwQixxQkFBcUIsNEZDakN2QyxpeUtBK0hBOzsyRkRqR2EsY0FBYztrQkFOMUIsU0FBUzsrQkFDSSxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUk7OEJBR2Ysa0JBQWtCO3NCQUF2QyxXQUFXO3VCQUFDLE9BQU87Z0JBQ2dCLGNBQWM7c0JBQWpELFlBQVk7dUJBQUMsb0JBQW9CO2dCQUNHLGVBQWU7c0JBQW5ELFlBQVk7dUJBQUMscUJBQXFCO2dCQUUxQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRWEsV0FBVztzQkFBN0IsTUFBTTtnQkFDWSxPQUFPO3NCQUF6QixNQUFNO2dCQUlZLE9BQU87c0JBQXpCLE1BQU07Z0JBSVksVUFBVTtzQkFBNUIsTUFBTTtnQkFJWSxVQUFVO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5wdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbk1vZGVsIH0gZnJvbSAnQHVwZGV2cy9pY29ucyc7XG5pbXBvcnQgeyBVcGRNYXNrQ29uZmlnIH0gZnJvbSAnQHVwZGV2cy9zZGsvbWFzayc7XG5pbXBvcnQgeyBDb21wb25lbnRTaXplVHlwZSwgSG9yaXpvbnRhbFZlcnRpY2FsVHlwZSwgQ29sdW1uU2l6ZUhlbHBlciB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2Fic3RyYWN0aW9ucyc7XG5pbXBvcnQgeyBPcHRpb25hbFR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4vdHlwZXMvaW5wdXQudHlwZSc7XG5pbXBvcnQgeyBJbnB1dEFwcGVuZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pbnB1dC1hcHBlbmQuZGlyZWN0aXZlJztcbmltcG9ydCB7IElucHV0UHJlcGVuZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pbnB1dC1wcmVwZW5kLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMb2FkZXJQb3NpdGlvblR5cGUgfSBmcm9tICcuL3R5cGVzL2xvYWRlci1wb3NpdGlvbi50eXBlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1cGQtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbnRyb2wgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGhvc3RXcmFwcGVyQ2xhc3NlcyA9ICcnO1xuICAgIEBDb250ZW50Q2hpbGQoSW5wdXRBcHBlbmREaXJlY3RpdmUpIGFwcGVuZFRlbXBsYXRlPzogSW5wdXRBcHBlbmREaXJlY3RpdmU7XG4gICAgQENvbnRlbnRDaGlsZChJbnB1dFByZXBlbmREaXJlY3RpdmUpIHByZXBlbmRUZW1wbGF0ZT86IElucHV0UHJlcGVuZERpcmVjdGl2ZTtcblxuICAgIEBJbnB1dCgpIHR5cGU6IElucHV0VHlwZSA9ICd0ZXh0JztcbiAgICBASW5wdXQoKSBtYXNrPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1hc2tDb25maWc/OiBVcGRNYXNrQ29uZmlnO1xuICAgIEBJbnB1dCgpIHZhbHVlPzogYW55O1xuICAgIEBJbnB1dCgpIHNpemU6IENvbXBvbmVudFNpemVUeXBlID0gJ2RlZmF1bHQnO1xuICAgIEBJbnB1dCgpIGN1c3RvbUNsYXNzZXM/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgd3JhcHBlckNsYXNzZXM/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGlzUGxhaW5UZXh0ID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNSZWFkT25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzUm91bmQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0ZsdXNoID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNJbnB1dEdyb3VwRmxhdCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzUHJlcGVuZEJ1dHRvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzQXBwZW5kQnV0dG9uID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNGbG9hdGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGxvYWRlclBvc2l0aW9uOiBMb2FkZXJQb3NpdGlvblR5cGUgPSAnYXBwZW5kJztcbiAgICBASW5wdXQoKSBwcmVwZW5kSWNvbk1vZGVsPzogSWNvbk1vZGVsO1xuICAgIEBJbnB1dCgpIGFwcGVuZEljb25Nb2RlbD86IEljb25Nb2RlbDtcbiAgICBASW5wdXQoKSBpc1ZhbGlkYXRpb25TdGF0dXNMaWdodCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGxheW91dDogSG9yaXpvbnRhbFZlcnRpY2FsVHlwZSA9ICd2ZXJ0aWNhbCc7XG5cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgYmx1cnJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gYW55IGtleSBpcyBwcmVzc2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBrZXlEb3duID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBFU0Mga2V5IGlzIHByZXNzZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGtleURvd25Fc2MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBFTlRFUiBrZXkgaXMgcmVsZWFzZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGtleVVwRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGdldCBzaG91bGREaXNwbGF5SW5uZXJMYWJlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5sYWJlbCgpXG4gICAgICAgICAgICAmJiAhdGhpcy5wcmVwZW5kSWNvbk1vZGVsXG4gICAgICAgICAgICAmJiAhdGhpcy5hcHBlbmRJY29uTW9kZWxcbiAgICAgICAgICAgICYmICF0aGlzLmlzTG9hZGluZ1xuICAgICAgICAgICAgJiYgIXRoaXMuYXBwZW5kVGVtcGxhdGVcbiAgICAgICAgICAgICYmICF0aGlzLnByZXBlbmRUZW1wbGF0ZTtcbiAgICB9XG4gICAgZ2V0IGxhYmVsU2l6ZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMubGF5b3V0ICE9PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIHJldHVybiAnZm9ybS1sYWJlbCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQ29sdW1uU2l6ZUhlbHBlci5nZXRDbGFzc2VzKFxuICAgICAgICAgICAgJ2NvbC1mb3JtLWxhYmVsJyxcbiAgICAgICAgICAgIENvbHVtblNpemVIZWxwZXIuZ2V0U2l6ZUNsYXNzZXModGhpcy5sYWJlbENvbFNpemUoKSwgMylcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0IHZhbGlkYXRpb25DbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gISF0aGlzLnZhbGlkYXRpb25TdGF0dXMoKSA/IGBpcy0ke3RoaXMudmFsaWRhdGlvblN0YXR1cygpfWAgOiAnJztcbiAgICB9XG4gICAgZ2V0IHZhbGlkYXRpb25Cb3JkZXJDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gISF0aGlzLnZhbGlkYXRpb25TdGF0dXMoKSA/IGBib3JkZXItJHt0aGlzLnZhbGlkYXRpb25TdGF0dXMoKSA9PT0gJ2ludmFsaWQnID8gJ2RhbmdlcicgOiAnc3VjY2Vzcyd9YCA6ICcnO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IHZhbHVlQ2hhbmdlZFN1YiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuXG4gICAgICAgIGlmIChjaGFuZ2VzWyd2YWx1ZSddICYmICEhdGhpcy5tYXNrKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlZFN1Yi5uZXh0KGNoYW5nZXNbJ3ZhbHVlJ10uY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSW5wdXRDaGFuZ2UoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIWV2dC50YXJnZXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgoZXZ0LnRhcmdldCBhcyBhbnkpLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNsYXNzZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxDbGFzc2VzOiBzdHJpbmdbXSA9ICF0aGlzLmlzUGxhaW5UZXh0ID8gWydmb3JtLWNvbnRyb2wnXSA6IFsnZm9ybS1jb250cm9sLXBsYWludGV4dCddO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUm91bmQpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2Zvcm0tY29udHJvbC1yb3VuZGVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0ZsdXNoKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdmb3JtLWNvbnRyb2wtZmx1c2gnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNpemUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaChgZm9ybS1jb250cm9sLSR7dGhpcy5zaXplID09PSAnbGFyZ2UnID8gJ2xnJyA6ICdzbSd9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISF0aGlzLnZhbGlkYXRpb25TdGF0dXMoKSkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ2xzID0gYGlzLSR7dGhpcy52YWxpZGF0aW9uU3RhdHVzKCl9YDtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goc3RhdHVzQ2xzKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZGF0aW9uU3RhdHVzTGlnaHQpIHtcbiAgICAgICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKGAke3N0YXR1c0Nsc30tbGl0ZWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubGF5b3V0ID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFdyYXBwZXJDbGFzc2VzID0gJ3Jvdyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISF0aGlzLndyYXBwZXJDbGFzc2VzKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RXcmFwcGVyQ2xhc3NlcyArPSBgICR7dGhpcy53cmFwcGVyQ2xhc3Nlc31gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNGbG9hdGluZykge1xuICAgICAgICAgICAgdGhpcy5ob3N0V3JhcHBlckNsYXNzZXMgKz0gJyBmb3JtLWZsb2F0aW5nJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xhc3NlcyA9IFtcbiAgICAgICAgICAgIC4uLmxDbGFzc2VzLFxuICAgICAgICAgICAgLi4uKHRoaXMuY3VzdG9tQ2xhc3NlcyB8fCAnJykuc3BsaXQoJyAnKSxcbiAgICAgICAgICAgIHRoaXMubGF5b3V0ID09PSAnaG9yaXpvbnRhbCcgPyAnY29sJyA6ICcnXG4gICAgICAgIF07XG4gICAgfVxufVxuIiwiQGlmICghIWFwcGVuZFRlbXBsYXRlIHx8ICEhcHJlcGVuZFRlbXBsYXRlKSB7XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiBbY2xhc3MuaW5wdXQtZ3JvdXAtZmxhdF09XCJpc0lucHV0R3JvdXBGbGF0XCIgW25nQ2xhc3NdPVwidmFsaWRhdGlvbkNsYXNzXCI+XG4gICAgICAgIEBpZiAoISFwcmVwZW5kVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIEBpZiAoIWlzUHJlcGVuZEJ1dHRvbikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCIgW25nQ2xhc3NdPVwidmFsaWRhdGlvbkJvcmRlckNsYXNzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwcmVwZW5kVGVtcGxhdGUudGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByZXBlbmRUZW1wbGF0ZS50ZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRUcGxcIj48L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIEBpZiAoISFhcHBlbmRUZW1wbGF0ZSkge1xuICAgICAgICAgICAgQGlmICghaXNBcHBlbmRCdXR0b24pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiIFtuZ0NsYXNzXT1cInZhbGlkYXRpb25Cb3JkZXJDbGFzc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYXBwZW5kVGVtcGxhdGUudGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFwcGVuZFRlbXBsYXRlLnRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZlZWRiYWNrVHBsXCI+PC9uZy10ZW1wbGF0ZT5cbn0gQGVsc2UgaWYgKCEhcHJlcGVuZEljb25Nb2RlbCB8fCAhIWFwcGVuZEljb25Nb2RlbCB8fCBpc0xvYWRpbmcpIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRJY29uVHBsXCI+PC9uZy10ZW1wbGF0ZT5cbn0gQGVsc2Uge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnB1dFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZlZWRiYWNrVHBsXCI+PC9uZy10ZW1wbGF0ZT5cbn1cblxuPG5nLXRlbXBsYXRlICNpbnB1dFRwbD5cbiAgICBAaWYgKHNob3VsZERpc3BsYXlJbm5lckxhYmVsICYmICFpc0Zsb2F0aW5nKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuXG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJhc2ljSW5wdXRUcGxcIj48L25nLXRlbXBsYXRlPlxuXG4gICAgQGlmIChzaG91bGREaXNwbGF5SW5uZXJMYWJlbCAmJiBpc0Zsb2F0aW5nKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbnB1dEljb25UcGw+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2IFtjbGFzcy5jb2xdPVwibGF5b3V0ID09PSAnaG9yaXpvbnRhbCdcIiBbY2xhc3MuaW5wdXQtaWNvbl09XCJsYXlvdXQgPT09ICd2ZXJ0aWNhbCdcIj5cbiAgICAgICAgQGlmIChsYXlvdXQgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWljb25cIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRJY29uQmFzZVRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRJY29uQmFzZVRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRJY29uQmFzZVRwbD5cbiAgICBAaWYgKCEhcHJlcGVuZEljb25Nb2RlbCB8fCAoaXNMb2FkaW5nICYmIGxvYWRlclBvc2l0aW9uID09PSAncHJlcGVuZCcpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtaWNvbi1hZGRvblwiPlxuICAgICAgICAgICAgQGlmICghIXByZXBlbmRJY29uTW9kZWwpIHtcbiAgICAgICAgICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cInByZXBlbmRJY29uTW9kZWxcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxvYWRlclRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJmZWVkYmFja1RwbFwiPjwvbmctdGVtcGxhdGU+XG5cbiAgICBAaWYgKCEhYXBwZW5kSWNvbk1vZGVsIHx8IChpc0xvYWRpbmcgJiYgbG9hZGVyUG9zaXRpb24gPT09ICdhcHBlbmQnKSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWljb24tYWRkb25cIj5cbiAgICAgICAgICAgIEBpZiAoISFhcHBlbmRJY29uTW9kZWwpIHtcbiAgICAgICAgICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cImFwcGVuZEljb25Nb2RlbFwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibG9hZGVyVHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGVyVHBsPlxuICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSB0ZXh0LW11dGVkXCIgcm9sZT1cInN0YXR1c1wiPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNiYXNpY0lucHV0VHBsPlxuICAgIEBpZiAoISFtYXNrKSB7XG4gICAgICAgIDxpbnB1dCBbdXBkTWFza109XCJtYXNrXCIgW3VwZE1hc2tDb25maWddPVwibWFza0NvbmZpZ1wiIFt1cGRhdGVNYXNrVmFsdWVTdWJqZWN0XT1cInZhbHVlQ2hhbmdlZFN1YlwiIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiIFtuZ0NsYXNzXT1cImNsYXNzZXNcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJUZXh0XCIgW3ZhbHVlXT1cInZhbHVlIHx8ICcnXCJcbiAgICAgICAgICAgIFthdHRyLm5hbWVdPVwibmFtZSgpXCIgW2F0dHIucmVhZG9ubHldPVwiaXNSZWFkT25seSA/ICcnIDogdW5kZWZpbmVkXCIgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIChibHVyKT1cImJsdXJyZWQuZW1pdCgpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cImtleURvd24uZW1pdCgkZXZlbnQpXCIgKGtleWRvd24uZXNjYXBlKT1cImtleURvd25Fc2MuZW1pdCgpXCIgKGtleXVwLmVudGVyKT1cImtleVVwRW50ZXIuZW1pdCgpXCIgLz5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGlucHV0IFthdHRyLnR5cGVdPVwidHlwZVwiIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGhcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCIgW25nQ2xhc3NdPVwiY2xhc3Nlc1wiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclRleHRcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlIHx8ICcnXCIgW2F0dHIubmFtZV09XCJuYW1lKClcIiBbYXR0ci5yZWFkb25seV09XCJpc1JlYWRPbmx5ID8gJycgOiB1bmRlZmluZWRcIiAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChibHVyKT1cImJsdXJyZWQuZW1pdCgpXCIgKGtleWRvd24pPVwia2V5RG93bi5lbWl0KCRldmVudClcIiAoa2V5ZG93bi5lc2NhcGUpPVwia2V5RG93bkVzYy5lbWl0KClcIlxuICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImtleVVwRW50ZXIuZW1pdCgpXCIgLz5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZlZWRiYWNrVHBsPlxuICAgIEBpZiAodmFsaWRhdGlvblN0YXR1cygpID09PSAnaW52YWxpZCcgJiYgdmFsaWRhdGlvblN0YXR1c1RleHRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgQGZvciAoZGVzYyBvZiB2YWxpZGF0aW9uU3RhdHVzVGV4dHM7IHRyYWNrIGRlc2MpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+e3sgZGVzYyB9fTwvZGl2PlxuICAgICAgICB9XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoaW50VHBsPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1oZWxwIG1zLTJcIiBbdXBkUG9wb3Zlcl09XCJoaW50VGV4dFwiIFt1cGRQb3BvdmVyVGVtcGxhdGVdPVwiaGludFRlbXBsYXRlKClcIiBbdXBkUG9wb3ZlckFjdEFzVG9vbHRpcF09XCJoaW50QXNUb29sdGlwKClcIj5cbiAgICAgICAgP1xuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGFiZWxUcGw+XG4gICAgQGlmICghIWxhYmVsVGV4dCkge1xuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImxhYmVsU2l6ZUNsYXNzZXNcIj5cbiAgICAgICAgICAgIDxsYWJlbCBbY2xhc3MucmVxdWlyZWRdPVwiaXNSZXF1aXJlZCgpXCI+e3sgbGFiZWxUZXh0IH19PC9sYWJlbD5cblxuICAgICAgICAgICAgQGlmICghIWhpbnRUZXh0IHx8ICEhdGhpcy5oaW50VGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoaW50VHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './directives/public-api';
2
+ export * from './types/public-api';
3
+ export * from './input.component';
4
+ export * from './upd-input.module';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2lucHV0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91cGQtaW5wdXQubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2lucHV0L3NyYy90eXBlcy9pbnB1dC50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBJbnB1dFR5cGUgPSAndGV4dCcgfCAnbnVtYmVyJyB8ICdlbWFpbCcgfCAnZmlsZScgfCAnaGlkZGVuJyB8ICdwYXNzd29yZCc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLXBvc2l0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9pbnB1dC9zcmMvdHlwZXMvbG9hZGVyLXBvc2l0aW9uLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIExvYWRlclBvc2l0aW9uVHlwZSA9ICdhcHBlbmQnIHwgJ3ByZXBlbmQnO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './input.type';
2
+ export * from './loader-position.type';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2lucHV0L3NyYy90eXBlcy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lucHV0LnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkZXItcG9zaXRpb24udHlwZSc7XG4iXX0=
@@ -0,0 +1,46 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { UpdIconsModule } from '@updevs/icons';
4
+ import { UpdMaskModule } from '@updevs/sdk/mask';
5
+ import { UpdPopoverModule } from '@updevs/components/popover';
6
+ import { InputComponent } from './input.component';
7
+ import { InputAppendDirective } from './directives/input-append.directive';
8
+ import { InputPrependDirective } from './directives/input-prepend.directive';
9
+ import * as i0 from "@angular/core";
10
+ export class UpdInputModule {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UpdInputModule, declarations: [InputComponent,
13
+ InputAppendDirective,
14
+ InputPrependDirective], imports: [CommonModule,
15
+ UpdIconsModule,
16
+ UpdMaskModule,
17
+ UpdPopoverModule], exports: [InputComponent,
18
+ InputAppendDirective,
19
+ InputPrependDirective] }); }
20
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdInputModule, imports: [CommonModule,
21
+ UpdIconsModule,
22
+ UpdMaskModule,
23
+ UpdPopoverModule] }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdInputModule, decorators: [{
26
+ type: NgModule,
27
+ args: [{
28
+ imports: [
29
+ CommonModule,
30
+ UpdIconsModule,
31
+ UpdMaskModule,
32
+ UpdPopoverModule
33
+ ],
34
+ declarations: [
35
+ InputComponent,
36
+ InputAppendDirective,
37
+ InputPrependDirective
38
+ ],
39
+ exports: [
40
+ InputComponent,
41
+ InputAppendDirective,
42
+ InputPrependDirective
43
+ ]
44
+ }]
45
+ }] });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLWlucHV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2lucHV0L3NyYy91cGQtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFvQjdFLE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxpQkFWbkIsY0FBYztZQUNkLG9CQUFvQjtZQUNwQixxQkFBcUIsYUFSckIsWUFBWTtZQUNaLGNBQWM7WUFDZCxhQUFhO1lBQ2IsZ0JBQWdCLGFBUWhCLGNBQWM7WUFDZCxvQkFBb0I7WUFDcEIscUJBQXFCOytHQUdoQixjQUFjLFlBaEJuQixZQUFZO1lBQ1osY0FBYztZQUNkLGFBQWE7WUFDYixnQkFBZ0I7OzJGQWFYLGNBQWM7a0JBbEIxQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ25CO29CQUNELFlBQVksRUFBRTt3QkFDVixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIscUJBQXFCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLHFCQUFxQjtxQkFDeEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFVwZEljb25zTW9kdWxlIH0gZnJvbSAnQHVwZGV2cy9pY29ucyc7XG5pbXBvcnQgeyBVcGRNYXNrTW9kdWxlIH0gZnJvbSAnQHVwZGV2cy9zZGsvbWFzayc7XG5pbXBvcnQgeyBVcGRQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL3BvcG92ZXInO1xuXG5pbXBvcnQgeyBJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0QXBwZW5kRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lucHV0LWFwcGVuZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSW5wdXRQcmVwZW5kRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lucHV0LXByZXBlbmQuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVXBkSWNvbnNNb2R1bGUsXG4gICAgICAgIFVwZE1hc2tNb2R1bGUsXG4gICAgICAgIFVwZFBvcG92ZXJNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBJbnB1dENvbXBvbmVudCxcbiAgICAgICAgSW5wdXRBcHBlbmREaXJlY3RpdmUsXG4gICAgICAgIElucHV0UHJlcGVuZERpcmVjdGl2ZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBJbnB1dENvbXBvbmVudCxcbiAgICAgICAgSW5wdXRBcHBlbmREaXJlY3RpdmUsXG4gICAgICAgIElucHV0UHJlcGVuZERpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVXBkSW5wdXRNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkZXZzLWNvbXBvbmVudHMtZm9ybS1jb250cm9scy1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2lucHV0L3NyYy91cGRldnMtY29tcG9uZW50cy1mb3JtLWNvbnRyb2xzLWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9yYWRpby9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './radio.component';
2
+ export * from './upd-radio.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3JhZGlvL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcmFkaW8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXBkLXJhZGlvLm1vZHVsZSc7XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { Component, Input, HostBinding, ViewEncapsulation, Output, EventEmitter } from '@angular/core';
2
+ import { BaseControl } from '@updevs/components/form-controls/abstractions';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@updevs/components/popover";
6
+ export class RadioComponent extends BaseControl {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.wrapperClasses = '';
10
+ this.isChecked = false;
11
+ this.isInline = false;
12
+ this.selected = new EventEmitter();
13
+ this.classes = [];
14
+ }
15
+ ngOnInit() {
16
+ this.updateClasses();
17
+ }
18
+ ngOnChanges() {
19
+ this.updateClasses();
20
+ }
21
+ updateClasses() {
22
+ const lClasses = ['form-check-input'];
23
+ if (!!this.validationStatus()) {
24
+ const statusCls = `is-${this.validationStatus()}`;
25
+ lClasses.push(statusCls);
26
+ }
27
+ this.classes = [...lClasses, ...(this.customClasses || '').split(' ')];
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: RadioComponent, selector: "upd-radio", inputs: { wrapperClasses: "wrapperClasses", value: "value", customClasses: "customClasses", isChecked: "isChecked", isInline: "isInline" }, outputs: { selected: "selected" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"form-check\" [class.form-check-inline]=\"isInline\">\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n</label>\n\n<ng-template #contentTpl>\n <input type=\"radio\" (change)=\"selected.emit()\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [value]=\"value\" [attr.name]=\"name()\"\n [attr.readonly]=\"isDisabled() ? '' : undefined\" [checked]=\"isChecked\">\n\n @if (!!labelText) {\n <span class=\"form-check-label\">{{ labelText }}</span>\n }\n\n @if (!!descriptionText) {\n <span class=\"form-check-description\">{{ descriptionText }}</span>\n }\n\n @if (validationStatus() === 'invalid' && !!validationStatusTexts) {\n <div class=\"invalid-feedback\">{{ validationStatusTexts }}</div>\n }\n</ng-template>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RadioComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'upd-radio', encapsulation: ViewEncapsulation.None, template: "<label class=\"form-check\" [class.form-check-inline]=\"isInline\">\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n</label>\n\n<ng-template #contentTpl>\n <input type=\"radio\" (change)=\"selected.emit()\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [value]=\"value\" [attr.name]=\"name()\"\n [attr.readonly]=\"isDisabled() ? '' : undefined\" [checked]=\"isChecked\">\n\n @if (!!labelText) {\n <span class=\"form-check-label\">{{ labelText }}</span>\n }\n\n @if (!!descriptionText) {\n <span class=\"form-check-description\">{{ descriptionText }}</span>\n }\n\n @if (validationStatus() === 'invalid' && !!validationStatusTexts) {\n <div class=\"invalid-feedback\">{{ validationStatusTexts }}</div>\n }\n</ng-template>\n\n" }]
35
+ }], propDecorators: { wrapperClasses: [{
36
+ type: HostBinding,
37
+ args: ['class']
38
+ }, {
39
+ type: Input
40
+ }], value: [{
41
+ type: Input
42
+ }], customClasses: [{
43
+ type: Input
44
+ }], isChecked: [{
45
+ type: Input
46
+ }], isInline: [{
47
+ type: Input
48
+ }], selected: [{
49
+ type: Output
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvcmFkaW8vc3JjL3JhZGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3JhZGlvL3NyYy9yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBUTVFLE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVztJQU4vQzs7UUFPbUMsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFJMUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRVAsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdkQsWUFBTyxHQUFhLEVBQUUsQ0FBQztLQW9CMUI7SUFsQkcsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sYUFBYTtRQUNqQixNQUFNLFFBQVEsR0FBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFaEQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztZQUM1QixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7WUFDbEQsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7OEdBN0JRLGNBQWM7a0dBQWQsY0FBYyxzVUNUM0IsMjBDQW1DQTs7MkZEMUJhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0ksV0FBVyxpQkFHTixpQkFBaUIsQ0FBQyxJQUFJOzhCQUdOLGNBQWM7c0JBQTVDLFdBQVc7dUJBQUMsT0FBTzs7c0JBQUcsS0FBSztnQkFFbkIsS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVhLFFBQVE7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25DaGFuZ2VzLCBJbnB1dCwgSG9zdEJpbmRpbmcsIFZpZXdFbmNhcHN1bGF0aW9uLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbnRyb2wgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9hYnN0cmFjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1yYWRpbycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yYWRpby5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29udHJvbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgQElucHV0KCkgd3JhcHBlckNsYXNzZXMgPSAnJztcblxuICAgIEBJbnB1dCgpIHZhbHVlPzogYW55O1xuICAgIEBJbnB1dCgpIGN1c3RvbUNsYXNzZXM/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNDaGVja2VkID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNJbmxpbmUgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ2xhc3NlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbENsYXNzZXM6IHN0cmluZ1tdID0gWydmb3JtLWNoZWNrLWlucHV0J107XG5cbiAgICAgICAgaWYgKCEhdGhpcy52YWxpZGF0aW9uU3RhdHVzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXR1c0NscyA9IGBpcy0ke3RoaXMudmFsaWRhdGlvblN0YXR1cygpfWA7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKHN0YXR1c0Nscyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsYXNzZXMgPSBbLi4ubENsYXNzZXMsIC4uLih0aGlzLmN1c3RvbUNsYXNzZXMgfHwgJycpLnNwbGl0KCcgJyldO1xuICAgIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2tcIiBbY2xhc3MuZm9ybS1jaGVjay1pbmxpbmVdPVwiaXNJbmxpbmVcIj5cbiAgICBAaWYgKCEhaGludFRleHQgfHwgISFoaW50VGVtcGxhdGUoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gYWxpZ24tc2VsZi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0taGVscFwiIFt1cGRQb3BvdmVyXT1cImhpbnRUZXh0XCIgW3VwZFBvcG92ZXJUZW1wbGF0ZV09XCJoaW50VGVtcGxhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFt1cGRQb3BvdmVyQWN0QXNUb29sdGlwXT1cImhpbnRBc1Rvb2x0aXAoKVwiPlxuICAgICAgICAgICAgICAgICAgICA/XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuPC9sYWJlbD5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50VHBsPlxuICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiAoY2hhbmdlKT1cInNlbGVjdGVkLmVtaXQoKVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiBbbmdDbGFzc109XCJjbGFzc2VzXCIgW3ZhbHVlXT1cInZhbHVlXCIgW2F0dHIubmFtZV09XCJuYW1lKClcIlxuICAgICAgICBbYXR0ci5yZWFkb25seV09XCJpc0Rpc2FibGVkKCkgPyAnJyA6IHVuZGVmaW5lZFwiIFtjaGVja2VkXT1cImlzQ2hlY2tlZFwiPlxuXG4gICAgQGlmICghIWxhYmVsVGV4dCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj57eyBsYWJlbFRleHQgfX08L3NwYW4+XG4gICAgfVxuXG4gICAgQGlmICghIWRlc2NyaXB0aW9uVGV4dCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stZGVzY3JpcHRpb25cIj57eyBkZXNjcmlwdGlvblRleHQgfX08L3NwYW4+XG4gICAgfVxuXG4gICAgQGlmICh2YWxpZGF0aW9uU3RhdHVzKCkgPT09ICdpbnZhbGlkJyAmJiAhIXZhbGlkYXRpb25TdGF0dXNUZXh0cykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPnt7IHZhbGlkYXRpb25TdGF0dXNUZXh0cyB9fTwvZGl2PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==
@@ -0,0 +1,32 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { UpdPopoverModule } from '@updevs/components/popover';
4
+ import { RadioComponent } from './radio.component';
5
+ import { ReactiveFormsModule } from '@angular/forms';
6
+ import * as i0 from "@angular/core";
7
+ export class UpdRadioModule {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UpdRadioModule, declarations: [RadioComponent], imports: [CommonModule,
10
+ UpdPopoverModule,
11
+ ReactiveFormsModule], exports: [RadioComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdRadioModule, imports: [CommonModule,
13
+ UpdPopoverModule,
14
+ ReactiveFormsModule] }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdRadioModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ imports: [
20
+ CommonModule,
21
+ UpdPopoverModule,
22
+ ReactiveFormsModule
23
+ ],
24
+ declarations: [
25
+ RadioComponent
26
+ ],
27
+ exports: [
28
+ RadioComponent
29
+ ]
30
+ }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLXJhZGlvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3JhZGlvL3NyYy91cGQtcmFkaW8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFlckQsTUFBTSxPQUFPLGNBQWM7OEdBQWQsY0FBYzsrR0FBZCxjQUFjLGlCQU5uQixjQUFjLGFBTGQsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixtQkFBbUIsYUFNbkIsY0FBYzsrR0FHVCxjQUFjLFlBWG5CLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsbUJBQW1COzsyRkFTZCxjQUFjO2tCQWIxQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3FCQUN0QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsY0FBYztxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGNBQWM7cUJBQ2pCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBVcGRQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL3BvcG92ZXInO1xuXG5pbXBvcnQgeyBSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8uY29tcG9uZW50JztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFVwZFBvcG92ZXJNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBSYWRpb0NvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBSYWRpb0NvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVXBkUmFkaW9Nb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkZXZzLWNvbXBvbmVudHMtZm9ybS1jb250cm9scy1yYWRpby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3JhZGlvL3NyYy91cGRldnMtY29tcG9uZW50cy1mb3JtLWNvbnRyb2xzLXJhZGlvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,76 @@
1
+ import { Component, ViewEncapsulation, EventEmitter, 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 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
+ this.currentSelection = [];
24
+ }
25
+ clearSelection() {
26
+ this.currentSelection = [];
27
+ this._currentTerm = undefined;
28
+ this.updateActiveItemsOnList();
29
+ }
30
+ onSelectItem(item) {
31
+ const selectedItem = this.currentSelection.find(cs => cs.value === item.id);
32
+ if (!!selectedItem) {
33
+ this.onRemoveItem(selectedItem);
34
+ return;
35
+ }
36
+ for (const localBackupItem of this._localBackupItems) {
37
+ if ((localBackupItem.children?.length || 0) > 0) {
38
+ const child = localBackupItem.children?.find(c => c.value === item.id);
39
+ if (!!child) {
40
+ this.currentSelection.push(child);
41
+ break;
42
+ }
43
+ }
44
+ else if (localBackupItem.value === item.id) {
45
+ this.currentSelection.push(localBackupItem);
46
+ break;
47
+ }
48
+ }
49
+ this.updateActiveItemsOnList();
50
+ this.selectedItems.emit(this.currentSelection);
51
+ this.selectedIds.emit(this.currentSelection.map(cs => cs.value));
52
+ }
53
+ onRemoveItem(item) {
54
+ const idx = this.currentSelection.findIndex(cs => cs.value === item.value);
55
+ this.currentSelection.splice(idx, 1);
56
+ this.updateActiveItemsOnList();
57
+ }
58
+ updateActiveItemsOnList() {
59
+ for (const backupItem of this._localBackupItems) {
60
+ const selectedItem = this.currentSelection.find(cs => cs.value === backupItem.value);
61
+ backupItem.listItem.isActive = !!selectedItem;
62
+ }
63
+ this._setupLocalItems(this._localBackupItems);
64
+ }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectMultipleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SelectMultipleComponent, selector: "upd-select-multiple", 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:24px}.select-loader-wrapper .select-loader{height:24px;width:24px}.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"], outputs: ["clicked"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectMultipleComponent, decorators: [{
69
+ type: Component,
70
+ 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:24px}.select-loader-wrapper .select-loader{height:24px;width:24px}.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"] }]
71
+ }], ctorParameters: () => [], propDecorators: { selectedItems: [{
72
+ type: Output
73
+ }], selectedIds: [{
74
+ type: Output
75
+ }] } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW11bHRpcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdC9zcmMvY29tcG9uZW50cy9tdWx0aXBsZS9zZWxlY3QtbXVsdGlwbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvc2VsZWN0L3NyYy9jb21wb25lbnRzL211bHRpcGxlL3NlbGVjdC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7Ozs7O0FBU3RGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFjNUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWRaOzs7V0FHRztRQUNnQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBQ3BFOzs7V0FHRztRQUNnQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFFM0QscUJBQWdCLEdBQWlCLEVBQUUsQ0FBQztJQUlwQyxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFFOUIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFjO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU1RSxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hDLE9BQU87UUFDWCxDQUFDO1FBRUQsS0FBSyxNQUFNLGVBQWUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBRXZFLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2xDLE1BQU07Z0JBQ1YsQ0FBQztZQUNMLENBQUM7aUJBQU0sSUFBSSxlQUFlLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDNUMsTUFBTTtZQUNWLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBZ0I7UUFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTyx1QkFBdUI7UUFDM0IsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM5QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckYsVUFBVSxDQUFDLFFBQVMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNuRCxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7OEdBbEVRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDJKQ1pwQywwa0dBNkRBOzsyRkRqRGEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNJLHFCQUFxQixpQkFHaEIsaUJBQWlCLENBQUMsSUFBSTt3REFPbEIsYUFBYTtzQkFBL0IsTUFBTTtnQkFLWSxXQUFXO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2xpc3QnO1xuXG5pbXBvcnQgeyBCYXNlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Fic3RyYWN0aW9ucy9iYXNlLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9zZWxlY3QtaXRlbSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLXNlbGVjdC1tdWx0aXBsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LW11bHRpcGxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RNdWx0aXBsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VTZWxlY3RDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHNlbGVjdGVkIGl0ZW1zLlxuICAgICAqIFRyaWdnZXJlZCB3aGVuIGl0ZW1zIGFyZSBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtcyA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0SXRlbVtdPigpO1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHNlbGVjdGVkIElkcy5cbiAgICAgKiBUcmlnZ2VyZWQgd2hlbiBpdGVtcyBhcmUgc2VsZWN0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGVkSWRzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcblxuICAgIGN1cnJlbnRTZWxlY3Rpb246IFNlbGVjdEl0ZW1bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IFtdO1xuICAgICAgICB0aGlzLl9jdXJyZW50VGVybSA9IHVuZGVmaW5lZDtcblxuICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZUl0ZW1zT25MaXN0KCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RJdGVtKGl0ZW06IExpc3RJdGVtKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuY3VycmVudFNlbGVjdGlvbi5maW5kKGNzID0+IGNzLnZhbHVlID09PSBpdGVtLmlkKTtcblxuICAgICAgICBpZiAoISFzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMub25SZW1vdmVJdGVtKHNlbGVjdGVkSXRlbSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGxvY2FsQmFja3VwSXRlbSBvZiB0aGlzLl9sb2NhbEJhY2t1cEl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAoKGxvY2FsQmFja3VwSXRlbS5jaGlsZHJlbj8ubGVuZ3RoIHx8IDApID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbG9jYWxCYWNrdXBJdGVtLmNoaWxkcmVuPy5maW5kKGMgPT4gYy52YWx1ZSA9PT0gaXRlbS5pZCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoISFjaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24ucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jYWxCYWNrdXBJdGVtLnZhbHVlID09PSBpdGVtLmlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uLnB1c2gobG9jYWxCYWNrdXBJdGVtKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlQWN0aXZlSXRlbXNPbkxpc3QoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmVtaXQodGhpcy5jdXJyZW50U2VsZWN0aW9uKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5lbWl0KHRoaXMuY3VycmVudFNlbGVjdGlvbi5tYXAoY3MgPT4gY3MudmFsdWUpKTtcbiAgICB9XG5cbiAgICBvblJlbW92ZUl0ZW0oaXRlbTogU2VsZWN0SXRlbSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpZHggPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb24uZmluZEluZGV4KGNzID0+IGNzLnZhbHVlID09PSBpdGVtLnZhbHVlKTtcblxuICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24uc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgIHRoaXMudXBkYXRlQWN0aXZlSXRlbXNPbkxpc3QoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUFjdGl2ZUl0ZW1zT25MaXN0KCk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IGJhY2t1cEl0ZW0gb2YgdGhpcy5fbG9jYWxCYWNrdXBJdGVtcykge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy5jdXJyZW50U2VsZWN0aW9uLmZpbmQoY3MgPT4gY3MudmFsdWUgPT09IGJhY2t1cEl0ZW0udmFsdWUpO1xuICAgICAgICAgICAgYmFja3VwSXRlbS5saXN0SXRlbSEuaXNBY3RpdmUgPSAhIXNlbGVjdGVkSXRlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NldHVwTG9jYWxJdGVtcyh0aGlzLl9sb2NhbEJhY2t1cEl0ZW1zKTtcbiAgICB9XG59XG4iLCJAaWYgKCEhbGFiZWxUZXh0KSB7XG4gICAgQGlmICghIWhpbnRUZXh0IHx8ICEhaGludFRlbXBsYXRlKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBbbmdDbGFzc109XCJsYWJlbFNpemVDbGFzc2VzXCI+e3sgbGFiZWxUZXh0IH19PC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWhlbHBcIiBbdXBkUG9wb3Zlcl09XCJoaW50VGV4dFwiIFt1cGRQb3BvdmVyVGVtcGxhdGVdPVwiaGludFRlbXBsYXRlKClcIlxuICAgICAgICAgICAgICAgICAgICBbdXBkUG9wb3ZlckFjdEFzVG9vbHRpcF09XCJoaW50QXNUb29sdGlwKClcIj5cbiAgICAgICAgICAgICAgICAgICAgP1xuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGxhYmVsIFtuZ0NsYXNzXT1cImxhYmVsU2l6ZUNsYXNzZXNcIj57eyBsYWJlbFRleHQgfX08L2xhYmVsPlxuICAgIH1cbn1cblxuPGRpdiBjbGFzcz1cImRyb3Bkb3duXCIgW2F0dHIuaWRdPVwibmFtZSgpXCI+XG4gICAgPGRpdiAjY29tcG9uZW50Qm94IGNsYXNzPVwiaW5wdXQtZ3JvdXAgaW5wdXQtZ3JvdXAtZmxhdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW2NsYXNzLnJlbW92ZS1ib3R0b20tcmFkaXVzXT1cImlzRHJvcGRvd25PcGVuXCIgW2NsYXNzLmRpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICBbY2xhc3MucGUtbm9uZV09XCJpc0Rpc2FibGVkKClcIiBbYXR0ci5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKCkgPyAnZGlzYWJsZWQnIDogdW5kZWZpbmVkXCIgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigpXCI+XG4gICAgICAgICAgICBAZm9yIChzZWwgb2YgY3VycmVudFNlbGVjdGlvbjsgdHJhY2sgc2VsKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiZy1wcmltYXJ5IHNlbGVjdC1tdWx0aXBsZS12YWx1ZVwiPnt7IHNlbC50ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIFtpc0ljb25dPVwidHJ1ZVwiIFtzaG91bGRJZ25vcmVCdG5DbGFzc109XCJ0cnVlXCIgKGNsaWNrZWQpPVwib25SZW1vdmVJdGVtKHNlbClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx1cGQtaWNvbiB0YWJsZXJJY29uPVwieFwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj48L3NwYW4+Jm5ic3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiIFtjbGFzcy5yZW1vdmUtYm90dG9tLXJhZGl1c109XCJpc0Ryb3Bkb3duT3BlblwiPlxuICAgICAgICAgICAgQGlmIChjdXJyZW50U2VsZWN0aW9uLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICA8dXBkLWJ1dHRvbiBbc2hvdWxkSWdub3JlQnRuQ2xhc3NdPVwidHJ1ZVwiIFtpc0Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiIChjbGlja2VkKT1cImNsZWFyU2VsZWN0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICBjdXN0b21DbGFzc2VzPVwibGluay1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVwZC1pY29uIHRhYmxlckljb249XCJ4XCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCFpc0xvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICA8dXBkLWJ1dHRvbiBbc2hvdWxkSWdub3JlQnRuQ2xhc3NdPVwidHJ1ZVwiIFtpc0Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiIChjbGlja2VkKT1cIm9wZW5Ecm9wZG93bigpXCJcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tQ2xhc3Nlcz1cImxpbmstc2Vjb25kYXJ5IG1zLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVwZC1pY29uIHRhYmxlckljb249XCJjaGV2cm9uLWRvd25cIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtbG9hZGVyLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIHRleHQtbXV0ZWQgc2VsZWN0LWxvYWRlclwiIHJvbGU9XCJzdGF0dXNcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAjc2VhcmNoQm94PlxuICAgICAgICA8ZGl2ICNzZWFyY2hCb3hDaGlsZCBbc3R5bGUudmlzaWJpbGl0eV09XCJpc0Ryb3Bkb3duT3BlbiA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCIgY2xhc3M9XCJzZWxlY3Qtc2VhcmNoLWJveFwiPlxuICAgICAgICAgICAgPHVwZC1pbnB1dCBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiIFtpc0lucHV0R3JvdXBGbGF0XT1cInRydWVcIiAodmFsdWVDaGFuZ2UpPVwic2VhcmNoKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdXBkSW5wdXRQcmVwZW5kPlxuICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cInNlYXJjaFwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvdXBkLWlucHV0PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8dXBkLWxpc3QgI2xpc3QgW2l0ZW1zXT1cImxpc3RJdGVtc1wiIFttYXhIZWlnaHRdPVwiZHJvcGRvd25NYXhIZWlnaHQoKSArICdweCdcIiAoc2VsZWN0ZWRJdGVtKT1cIm9uU2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgW3dyYXBwZXJDbGFzc2VzXT1cImRyb3Bkb3duQ2xhc3Nlc1wiIFtpc1Zpc2libGVdPVwiaXNEcm9wZG93bk9wZW5cIiBbc2hvdWxkT3ZlcmZsb3ddPVwidHJ1ZVwiIFtzaG91bGREaXNwbGF5SXRlbXNDb3VudGVyXT1cInRydWVcIj5cbiAgICA8L3VwZC1saXN0PlxuPC9kaXY+XG4iXX0=