@updevs/components 1.0.0-alpha.2 → 1.0.0-alpha.20

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 (811) hide show
  1. package/README.md +6 -1
  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 +69 -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 +111 -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/public-api.mjs +14 -0
  150. package/esm2022/form/models/radio-field.model.mjs +2 -0
  151. package/esm2022/form/models/radio-group-field.model.mjs +2 -0
  152. package/esm2022/form/models/select-field.model.mjs +2 -0
  153. package/esm2022/form/models/single-select-field.model.mjs +2 -0
  154. package/esm2022/form/models/textarea-field.model.mjs +2 -0
  155. package/esm2022/form/models/validator-config.mjs +2 -0
  156. package/esm2022/form/public-api.mjs +4 -0
  157. package/esm2022/form/tools/errors-helper.mjs +54 -0
  158. package/esm2022/form/upd-form.module.mjs +79 -0
  159. package/esm2022/form/updevs-components-form.mjs +5 -0
  160. package/esm2022/form-controls/abstractions/base-control.mjs +46 -0
  161. package/esm2022/form-controls/abstractions/index.mjs +2 -0
  162. package/esm2022/form-controls/abstractions/public-api.mjs +2 -0
  163. package/esm2022/form-controls/abstractions/updevs-components-form-controls-abstractions.mjs +5 -0
  164. package/esm2022/form-controls/checkbox/checkbox.component.mjs +51 -0
  165. package/esm2022/form-controls/checkbox/index.mjs +2 -0
  166. package/esm2022/form-controls/checkbox/public-api.mjs +3 -0
  167. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +32 -0
  168. package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +5 -0
  169. package/esm2022/form-controls/date-picker/date-picker.component.mjs +147 -0
  170. package/esm2022/form-controls/date-picker/index.mjs +2 -0
  171. package/esm2022/form-controls/date-picker/public-api.mjs +3 -0
  172. package/esm2022/form-controls/date-picker/upd-date-picker.module.mjs +40 -0
  173. package/esm2022/form-controls/date-picker/updevs-components-form-controls-date-picker.mjs +5 -0
  174. package/esm2022/form-controls/file-upload/assets/i18n/en.json +15 -0
  175. package/esm2022/form-controls/file-upload/assets/i18n/pt.json +15 -0
  176. package/esm2022/form-controls/file-upload/file-upload-changed.event.mjs +2 -0
  177. package/esm2022/form-controls/file-upload/file-upload.component.mjs +169 -0
  178. package/esm2022/form-controls/file-upload/index.mjs +2 -0
  179. package/esm2022/form-controls/file-upload/public-api.mjs +4 -0
  180. package/esm2022/form-controls/file-upload/upd-file-upload.module.mjs +47 -0
  181. package/esm2022/form-controls/file-upload/updevs-components-form-controls-file-upload.mjs +5 -0
  182. package/esm2022/form-controls/input/directives/input-append.directive.mjs +16 -0
  183. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +16 -0
  184. package/esm2022/form-controls/input/directives/public-api.mjs +3 -0
  185. package/esm2022/form-controls/input/index.mjs +2 -0
  186. package/esm2022/form-controls/input/input.component.mjs +179 -0
  187. package/esm2022/form-controls/input/public-api.mjs +5 -0
  188. package/esm2022/form-controls/input/types/input.type.mjs +2 -0
  189. package/esm2022/form-controls/input/types/loader-position.type.mjs +2 -0
  190. package/esm2022/form-controls/input/types/public-api.mjs +3 -0
  191. package/esm2022/form-controls/input/upd-input.module.mjs +46 -0
  192. package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +5 -0
  193. package/esm2022/form-controls/radio/index.mjs +2 -0
  194. package/esm2022/form-controls/radio/public-api.mjs +3 -0
  195. package/esm2022/form-controls/radio/radio.component.mjs +51 -0
  196. package/esm2022/form-controls/radio/upd-radio.module.mjs +32 -0
  197. package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +5 -0
  198. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +76 -0
  199. package/esm2022/form-controls/select/components/single/select.component.mjs +72 -0
  200. package/esm2022/form-controls/select/index.mjs +2 -0
  201. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +215 -0
  202. package/esm2022/form-controls/select/models/defaults.mjs +8 -0
  203. package/esm2022/form-controls/select/models/public-api.mjs +3 -0
  204. package/esm2022/form-controls/select/models/select-item.mjs +2 -0
  205. package/esm2022/form-controls/select/public-api.mjs +5 -0
  206. package/esm2022/form-controls/select/upd-select.module.mjs +57 -0
  207. package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +5 -0
  208. package/esm2022/form-controls/textarea/index.mjs +2 -0
  209. package/esm2022/form-controls/textarea/public-api.mjs +3 -0
  210. package/esm2022/form-controls/textarea/textarea.component.mjs +44 -0
  211. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +24 -0
  212. package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +5 -0
  213. package/esm2022/form-controls/time-picker/index.mjs +2 -0
  214. package/esm2022/form-controls/time-picker/public-api.mjs +4 -0
  215. package/esm2022/form-controls/time-picker/time-picker.component.mjs +130 -0
  216. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +124 -0
  217. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +60 -0
  218. package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +5 -0
  219. package/esm2022/index.mjs +2 -0
  220. package/esm2022/layout/abstractions/base-page.component.mjs +23 -0
  221. package/esm2022/layout/abstractions/base.layout.mjs +31 -0
  222. package/esm2022/layout/abstractions/public-api.mjs +2 -0
  223. package/esm2022/layout/assets/i18n/en.json +27 -0
  224. package/esm2022/layout/assets/i18n/pt.json +27 -0
  225. package/esm2022/layout/index.mjs +2 -0
  226. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +22 -0
  227. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +50 -0
  228. package/esm2022/layout/layouts/public-api.mjs +5 -0
  229. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +17 -0
  230. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +82 -0
  231. package/esm2022/layout/models/login-page-config.model.mjs +20 -0
  232. package/esm2022/layout/models/login-page.config.mjs +2 -0
  233. package/esm2022/layout/models/public-api.mjs +3 -0
  234. package/esm2022/layout/models/security-layout-config.model.mjs +10 -0
  235. package/esm2022/layout/models/security-layout.config.mjs +2 -0
  236. package/esm2022/layout/models/upd-layout-config.model.mjs +24 -0
  237. package/esm2022/layout/models/upd-layout.config.mjs +2 -0
  238. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +28 -0
  239. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +73 -0
  240. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +11 -0
  241. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +108 -0
  242. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +11 -0
  243. package/esm2022/layout/pages/auth-flow/public-api.mjs +6 -0
  244. package/esm2022/layout/pages/public-api.mjs +2 -0
  245. package/esm2022/layout/partials/footer/footer-copyright.directive.mjs +13 -0
  246. package/esm2022/layout/partials/footer/footer.component.mjs +55 -0
  247. package/esm2022/layout/partials/footer/footer.module.mjs +28 -0
  248. package/esm2022/layout/partials/footer/public-api.mjs +4 -0
  249. package/esm2022/layout/partials/header/header-style.type.mjs +2 -0
  250. package/esm2022/layout/partials/header/header.component.mjs +129 -0
  251. package/esm2022/layout/partials/header/header.module.mjs +40 -0
  252. package/esm2022/layout/partials/header/public-api.mjs +4 -0
  253. package/esm2022/layout/partials/page-header/page-header.component.mjs +15 -0
  254. package/esm2022/layout/partials/page-header/public-api.mjs +2 -0
  255. package/esm2022/layout/partials/public-api.mjs +5 -0
  256. package/esm2022/layout/partials/sidebar/public-api.mjs +2 -0
  257. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +112 -0
  258. package/esm2022/layout/public-api.mjs +8 -0
  259. package/esm2022/layout/services/public-api.mjs +2 -0
  260. package/esm2022/layout/services/upd-layout-config.service.mjs +21 -0
  261. package/esm2022/layout/tools/layout.constants.mjs +15 -0
  262. package/esm2022/layout/upd-layout.module.mjs +47 -0
  263. package/esm2022/layout/updevs-components-layout.mjs +5 -0
  264. package/esm2022/lib/index.mjs +2 -0
  265. package/esm2022/lib/models/public-api.mjs +2 -0
  266. package/esm2022/lib/models/row-column-size.mjs +2 -0
  267. package/esm2022/lib/public-api.mjs +5 -0
  268. package/esm2022/lib/tools/column-size.helper.mjs +12 -0
  269. package/esm2022/lib/tools/public-api.mjs +2 -0
  270. package/esm2022/lib/types/component-size.type.mjs +2 -0
  271. package/esm2022/lib/types/horizontal-vertical.type.mjs +2 -0
  272. package/esm2022/lib/types/public-api.mjs +4 -0
  273. package/esm2022/lib/types/validation-status.type.mjs +2 -0
  274. package/esm2022/lib/upd-components.module.mjs +14 -0
  275. package/esm2022/link/index.mjs +2 -0
  276. package/esm2022/link/link.component.mjs +51 -0
  277. package/esm2022/link/public-api.mjs +4 -0
  278. package/esm2022/link/target.type.mjs +2 -0
  279. package/esm2022/link/upd-link.module.mjs +24 -0
  280. package/esm2022/link/updevs-components-link.mjs +5 -0
  281. package/esm2022/list/assets/i18n/en.json +9 -0
  282. package/esm2022/list/assets/i18n/pt.json +9 -0
  283. package/esm2022/list/index.mjs +2 -0
  284. package/esm2022/list/list.component.mjs +113 -0
  285. package/esm2022/list/models/badge-position.type.mjs +2 -0
  286. package/esm2022/list/models/list-item.mjs +2 -0
  287. package/esm2022/list/models/list-item.model.mjs +15 -0
  288. package/esm2022/list/models/public-api.mjs +3 -0
  289. package/esm2022/list/public-api.mjs +4 -0
  290. package/esm2022/list/upd-list.module.mjs +43 -0
  291. package/esm2022/list/updevs-components-list.mjs +5 -0
  292. package/esm2022/modal/assets/i18n/en.json +17 -0
  293. package/esm2022/modal/assets/i18n/pt.json +17 -0
  294. package/esm2022/modal/components/modal-container/modal-container.component.mjs +216 -0
  295. package/esm2022/modal/index.mjs +2 -0
  296. package/esm2022/modal/models/base.modal.mjs +14 -0
  297. package/esm2022/modal/models/modal-config.model.mjs +20 -0
  298. package/esm2022/modal/models/modal-ref.mjs +2 -0
  299. package/esm2022/modal/models/modal.config.mjs +2 -0
  300. package/esm2022/modal/models/public-api.mjs +4 -0
  301. package/esm2022/modal/public-api.mjs +4 -0
  302. package/esm2022/modal/services/modal-alert.service.mjs +99 -0
  303. package/esm2022/modal/services/modal.service.mjs +30 -0
  304. package/esm2022/modal/services/public-api.mjs +3 -0
  305. package/esm2022/modal/types/modal-footer-style.type.mjs +2 -0
  306. package/esm2022/modal/types/modal-size.type.mjs +2 -0
  307. package/esm2022/modal/upd-modal.module.mjs +89 -0
  308. package/esm2022/modal/updevs-components-modal.mjs +5 -0
  309. package/esm2022/paginator/assets/i18n/en.json +15 -0
  310. package/esm2022/paginator/assets/i18n/pt.json +15 -0
  311. package/esm2022/paginator/index.mjs +2 -0
  312. package/esm2022/paginator/paginator.component.mjs +66 -0
  313. package/esm2022/paginator/public-api.mjs +3 -0
  314. package/esm2022/paginator/upd-paginator.module.mjs +46 -0
  315. package/esm2022/paginator/updevs-components-paginator.mjs +5 -0
  316. package/esm2022/popover/index.mjs +2 -0
  317. package/esm2022/popover/popover.component.mjs +65 -0
  318. package/esm2022/popover/popover.directive.mjs +129 -0
  319. package/esm2022/popover/public-api.mjs +4 -0
  320. package/esm2022/popover/upd-popover.module.mjs +29 -0
  321. package/esm2022/popover/updevs-components-popover.mjs +5 -0
  322. package/esm2022/public-api.mjs +2 -0
  323. package/esm2022/table/abstractions/base-column.model.mjs +52 -0
  324. package/esm2022/table/abstractions/base.column.mjs +98 -0
  325. package/esm2022/table/abstractions/filters-operands.service.mjs +3 -0
  326. package/esm2022/table/abstractions/public-api.mjs +3 -0
  327. package/esm2022/table/assets/i18n/en.json +74 -0
  328. package/esm2022/table/assets/i18n/pt.json +74 -0
  329. package/esm2022/table/components/columns/boolean-column/boolean-column.component.mjs +26 -0
  330. package/esm2022/table/components/columns/date-time-column/date-time-column.component.mjs +13 -0
  331. package/esm2022/table/components/columns/number-column/number-column.component.mjs +13 -0
  332. package/esm2022/table/components/columns/text-column/text-column.component.mjs +31 -0
  333. package/esm2022/table/components/columns-manager/columns-manager.component.mjs +36 -0
  334. package/esm2022/table/components/filter-row/filter-row.component.mjs +114 -0
  335. package/esm2022/table/components/save-search/save-search.component.mjs +72 -0
  336. package/esm2022/table/components/search-section/search-section.component.mjs +93 -0
  337. package/esm2022/table/directives/public-api.mjs +2 -0
  338. package/esm2022/table/directives/table-column.directive.mjs +51 -0
  339. package/esm2022/table/index.mjs +2 -0
  340. package/esm2022/table/models/columns/boolean-column.model.mjs +22 -0
  341. package/esm2022/table/models/columns/date-time-column.model.mjs +16 -0
  342. package/esm2022/table/models/columns/guid-column.model.mjs +13 -0
  343. package/esm2022/table/models/columns/image-column.model.mjs +11 -0
  344. package/esm2022/table/models/columns/number-column.model.mjs +17 -0
  345. package/esm2022/table/models/columns/public-api.mjs +7 -0
  346. package/esm2022/table/models/columns/text-column.model.mjs +11 -0
  347. package/esm2022/table/models/enums/column-type.enum.mjs +15 -0
  348. package/esm2022/table/models/enums/public-api.mjs +2 -0
  349. package/esm2022/table/models/filter-item.model.mjs +2 -0
  350. package/esm2022/table/models/filter-operand.config.mjs +2 -0
  351. package/esm2022/table/models/operands-lists/boolean-filter-operands-list.model.mjs +25 -0
  352. package/esm2022/table/models/operands-lists/date-filter-operands-list.model.mjs +25 -0
  353. package/esm2022/table/models/operands-lists/date-or-number-operands-list.config.mjs +31 -0
  354. package/esm2022/table/models/operands-lists/filter-operands-list.config.mjs +31 -0
  355. package/esm2022/table/models/operands-lists/guid-filter-operands-list.model.mjs +16 -0
  356. package/esm2022/table/models/operands-lists/number-filter-operands-list.model.mjs +25 -0
  357. package/esm2022/table/models/operands-lists/string-filter-operands-list.model.mjs +45 -0
  358. package/esm2022/table/models/public-api.mjs +5 -0
  359. package/esm2022/table/models/saved-view.model.mjs +2 -0
  360. package/esm2022/table/models/table-config.model.mjs +21 -0
  361. package/esm2022/table/models/table.config.mjs +2 -0
  362. package/esm2022/table/models/upd-table-config.model.mjs +9 -0
  363. package/esm2022/table/models/upd-table.config.mjs +2 -0
  364. package/esm2022/table/public-api.mjs +6 -0
  365. package/esm2022/table/services/default-filters-operands.service.mjs +60 -0
  366. package/esm2022/table/services/storages/saved-views.storage.mjs +56 -0
  367. package/esm2022/table/services/stores/filters-operands.store.mjs +19 -0
  368. package/esm2022/table/services/upd-table-config.service.mjs +18 -0
  369. package/esm2022/table/table.component.mjs +382 -0
  370. package/esm2022/table/tools/filters.tools.mjs +48 -0
  371. package/esm2022/table/tools/table.constants.mjs +15 -0
  372. package/esm2022/table/upd-table.module.mjs +149 -0
  373. package/esm2022/table/updevs-components-table.mjs +5 -0
  374. package/esm2022/updevs-components.mjs +5 -0
  375. package/fesm2022/updevs-components-badge.mjs +91 -0
  376. package/fesm2022/updevs-components-badge.mjs.map +1 -0
  377. package/fesm2022/updevs-components-button.mjs +193 -0
  378. package/fesm2022/updevs-components-button.mjs.map +1 -0
  379. package/fesm2022/updevs-components-calendar.mjs +1711 -0
  380. package/fesm2022/updevs-components-calendar.mjs.map +1 -0
  381. package/fesm2022/updevs-components-card.mjs +238 -0
  382. package/fesm2022/updevs-components-card.mjs.map +1 -0
  383. package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
  384. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
  385. package/fesm2022/updevs-components-dropdown.mjs +226 -0
  386. package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
  387. package/fesm2022/updevs-components-form-controls-abstractions.mjs +53 -0
  388. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
  389. package/fesm2022/updevs-components-form-controls-checkbox.mjs +87 -0
  390. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
  391. package/fesm2022/updevs-components-form-controls-date-picker.mjs +190 -0
  392. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
  393. package/fesm2022/updevs-components-form-controls-file-upload.mjs +263 -0
  394. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  395. package/fesm2022/updevs-components-form-controls-input.mjs +253 -0
  396. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
  397. package/fesm2022/updevs-components-form-controls-radio.mjs +87 -0
  398. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
  399. package/fesm2022/updevs-components-form-controls-select.mjs +417 -0
  400. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
  401. package/fesm2022/updevs-components-form-controls-textarea.mjs +72 -0
  402. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
  403. package/fesm2022/updevs-components-form-controls-time-picker.mjs +344 -0
  404. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
  405. package/fesm2022/updevs-components-form.mjs +416 -0
  406. package/fesm2022/updevs-components-form.mjs.map +1 -0
  407. package/fesm2022/updevs-components-layout.mjs +936 -0
  408. package/fesm2022/updevs-components-layout.mjs.map +1 -0
  409. package/fesm2022/updevs-components-link.mjs +79 -0
  410. package/fesm2022/updevs-components-link.mjs.map +1 -0
  411. package/fesm2022/updevs-components-list.mjs +205 -0
  412. package/fesm2022/updevs-components-list.mjs.map +1 -0
  413. package/fesm2022/updevs-components-modal.mjs +503 -0
  414. package/fesm2022/updevs-components-modal.mjs.map +1 -0
  415. package/fesm2022/updevs-components-paginator.mjs +159 -0
  416. package/fesm2022/updevs-components-paginator.mjs.map +1 -0
  417. package/fesm2022/updevs-components-popover.mjs +223 -0
  418. package/fesm2022/updevs-components-popover.mjs.map +1 -0
  419. package/fesm2022/updevs-components-table.mjs +1708 -0
  420. package/fesm2022/updevs-components-table.mjs.map +1 -0
  421. package/fesm2022/updevs-components.mjs +33 -0
  422. package/fesm2022/updevs-components.mjs.map +1 -0
  423. package/form/components/dynamic-field/dynamic-field.component.d.ts +50 -0
  424. package/form/form.component.d.ts +60 -0
  425. package/form/models/checkbox-field.model.d.ts +4 -0
  426. package/form/models/checkbox-group-field.model.d.ts +6 -0
  427. package/form/models/dynamic-field.model.d.ts +30 -0
  428. package/form/models/enums/dynamic-field.type.d.ts +12 -0
  429. package/form/models/enums/public-api.d.ts +1 -0
  430. package/form/models/file-upload-field.model.d.ts +16 -0
  431. package/form/models/form-config.d.ts +2 -0
  432. package/form/models/form-row.model.d.ts +8 -0
  433. package/form/models/public-api.d.ts +13 -0
  434. package/form/models/radio-field.model.d.ts +4 -0
  435. package/form/models/radio-group-field.model.d.ts +6 -0
  436. package/form/models/select-field.model.d.ts +28 -0
  437. package/form/models/single-select-field.model.d.ts +4 -0
  438. package/form/models/textarea-field.model.d.ts +10 -0
  439. package/form/models/validator-config.d.ts +5 -0
  440. package/form/public-api.d.ts +3 -0
  441. package/form/tools/errors-helper.d.ts +11 -0
  442. package/form/upd-form.module.d.ts +21 -0
  443. package/form-controls/abstractions/base-control.d.ts +29 -0
  444. package/form-controls/abstractions/index.d.ts +2 -0
  445. package/form-controls/abstractions/public-api.d.ts +2 -0
  446. package/form-controls/checkbox/checkbox.component.d.ts +19 -0
  447. package/form-controls/checkbox/{src/public-api.ts → public-api.d.ts} +0 -1
  448. package/form-controls/checkbox/upd-checkbox.module.d.ts +10 -0
  449. package/form-controls/date-picker/date-picker.component.d.ts +87 -0
  450. package/form-controls/date-picker/public-api.d.ts +2 -0
  451. package/form-controls/date-picker/upd-date-picker.module.d.ts +12 -0
  452. package/form-controls/file-upload/file-upload-changed.event.d.ts +4 -0
  453. package/form-controls/file-upload/file-upload.component.d.ts +46 -0
  454. package/form-controls/file-upload/public-api.d.ts +3 -0
  455. package/form-controls/file-upload/upd-file-upload.module.d.ts +14 -0
  456. package/form-controls/input/directives/input-append.directive.d.ts +7 -0
  457. package/form-controls/input/directives/input-prepend.directive.d.ts +7 -0
  458. package/form-controls/input/input.component.d.ts +62 -0
  459. package/form-controls/input/upd-input.module.d.ts +13 -0
  460. package/form-controls/radio/radio.component.d.ts +17 -0
  461. package/form-controls/radio/upd-radio.module.d.ts +10 -0
  462. package/form-controls/select/components/multiple/select-multiple.component.d.ts +25 -0
  463. package/form-controls/select/components/single/select.component.d.ts +26 -0
  464. package/form-controls/select/models/abstractions/base-select.component.d.ts +77 -0
  465. package/form-controls/select/models/defaults.d.ts +8 -0
  466. package/form-controls/select/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  467. package/form-controls/select/{src/models/select-item.ts → models/select-item.d.ts} +0 -1
  468. package/form-controls/select/upd-select.module.d.ts +16 -0
  469. package/form-controls/textarea/textarea.component.d.ts +19 -0
  470. package/form-controls/textarea/upd-textarea.module.d.ts +8 -0
  471. package/form-controls/time-picker/time-picker.component.d.ts +78 -0
  472. package/form-controls/time-picker/time-selector/time-selector.component.d.ts +69 -0
  473. package/form-controls/time-picker/upd-time-picker.module.d.ts +17 -0
  474. package/index.d.ts +2 -0
  475. package/layout/abstractions/base-page.component.d.ts +12 -0
  476. package/layout/abstractions/base.layout.d.ts +15 -0
  477. package/layout/index.d.ts +1 -0
  478. package/layout/layouts/blank-layout/blank-layout.component.d.ts +9 -0
  479. package/layout/layouts/blank-layout/blank-layout.module.d.ts +15 -0
  480. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +6 -0
  481. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +22 -0
  482. package/layout/models/login-page-config.model.d.ts +46 -0
  483. package/layout/models/login-page.config.d.ts +44 -0
  484. package/layout/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  485. package/layout/models/security-layout-config.model.d.ts +12 -0
  486. package/layout/models/security-layout.config.d.ts +10 -0
  487. package/layout/models/upd-layout-config.model.d.ts +48 -0
  488. package/layout/{src/models/upd-layout.config.ts → models/upd-layout.config.d.ts} +9 -0
  489. package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +12 -0
  490. package/layout/pages/auth-flow/auth-flow.module.d.ts +20 -0
  491. package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +5 -0
  492. package/layout/pages/auth-flow/login/login.component.d.ts +26 -0
  493. package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +5 -0
  494. package/layout/partials/footer/footer-copyright.directive.d.ts +5 -0
  495. package/layout/partials/footer/footer.component.d.ts +34 -0
  496. package/layout/partials/footer/footer.module.d.ts +9 -0
  497. package/layout/{src/partials/footer/public-api.ts → partials/footer/public-api.d.ts} +1 -0
  498. package/layout/partials/header/header.component.d.ts +48 -0
  499. package/layout/partials/header/header.module.d.ts +12 -0
  500. package/layout/{src/partials/header/public-api.ts → partials/header/public-api.d.ts} +1 -0
  501. package/layout/partials/page-header/page-header.component.d.ts +7 -0
  502. package/layout/partials/sidebar/sidebar.component.d.ts +22 -0
  503. package/layout/services/upd-layout-config.service.d.ts +15 -0
  504. package/layout/{src/tools/layout.constants.ts → tools/layout.constants.d.ts} +3 -6
  505. package/layout/upd-layout.module.d.ts +19 -0
  506. package/lib/index.d.ts +2 -0
  507. package/lib/models/public-api.d.ts +2 -0
  508. package/lib/models/row-column-size.d.ts +6 -0
  509. package/lib/public-api.d.ts +5 -0
  510. package/lib/tools/column-size.helper.d.ts +6 -0
  511. package/lib/tools/public-api.d.ts +2 -0
  512. package/{src/lib/types/component-size.type.ts → lib/types/component-size.type.d.ts} +1 -0
  513. package/lib/types/horizontal-vertical.type.d.ts +2 -0
  514. package/lib/types/public-api.d.ts +4 -0
  515. package/lib/types/validation-status.type.d.ts +2 -0
  516. package/lib/upd-components.module.d.ts +7 -0
  517. package/link/index.d.ts +1 -0
  518. package/link/link.component.d.ts +22 -0
  519. package/link/upd-link.module.d.ts +8 -0
  520. package/list/index.d.ts +1 -0
  521. package/list/list.component.d.ts +46 -0
  522. package/list/{src/models/list-item.ts → models/list-item.d.ts} +3 -4
  523. package/list/models/list-item.model.d.ts +25 -0
  524. package/list/upd-list.module.d.ts +13 -0
  525. package/modal/components/modal-container/modal-container.component.d.ts +74 -0
  526. package/modal/index.d.ts +1 -0
  527. package/modal/models/base.modal.d.ts +8 -0
  528. package/modal/models/modal-config.model.d.ts +32 -0
  529. package/modal/models/modal-ref.d.ts +6 -0
  530. package/modal/models/modal.config.d.ts +30 -0
  531. package/modal/models/public-api.d.ts +3 -0
  532. package/modal/public-api.d.ts +3 -0
  533. package/modal/services/modal-alert.service.d.ts +22 -0
  534. package/modal/services/modal.service.d.ts +12 -0
  535. package/modal/services/public-api.d.ts +2 -0
  536. package/modal/types/modal-footer-style.type.d.ts +1 -0
  537. package/modal/types/modal-size.type.d.ts +1 -0
  538. package/modal/upd-modal.module.d.ts +18 -0
  539. package/package.json +169 -21
  540. package/paginator/index.d.ts +1 -0
  541. package/paginator/paginator.component.d.ts +42 -0
  542. package/paginator/public-api.d.ts +2 -0
  543. package/paginator/upd-paginator.module.d.ts +14 -0
  544. package/popover/index.d.ts +1 -0
  545. package/popover/popover.component.d.ts +22 -0
  546. package/popover/popover.directive.d.ts +33 -0
  547. package/popover/upd-popover.module.d.ts +9 -0
  548. package/public-api.d.ts +2 -0
  549. package/table/abstractions/base-column.model.d.ts +31 -0
  550. package/table/abstractions/base.column.d.ts +22 -0
  551. package/table/abstractions/filters-operands.service.d.ts +8 -0
  552. package/table/abstractions/public-api.d.ts +2 -0
  553. package/table/components/columns/boolean-column/boolean-column.component.d.ts +9 -0
  554. package/table/components/columns/date-time-column/date-time-column.component.d.ts +7 -0
  555. package/table/components/columns/number-column/number-column.component.d.ts +7 -0
  556. package/table/components/columns/text-column/text-column.component.d.ts +9 -0
  557. package/table/components/columns-manager/columns-manager.component.d.ts +15 -0
  558. package/table/components/filter-row/filter-row.component.d.ts +40 -0
  559. package/table/components/save-search/save-search.component.d.ts +17 -0
  560. package/table/components/search-section/search-section.component.d.ts +36 -0
  561. package/table/directives/public-api.d.ts +1 -0
  562. package/table/directives/table-column.directive.d.ts +14 -0
  563. package/table/index.d.ts +1 -0
  564. package/table/models/columns/boolean-column.model.d.ts +15 -0
  565. package/table/models/columns/date-time-column.model.d.ts +8 -0
  566. package/table/models/columns/guid-column.model.d.ts +4 -0
  567. package/table/models/columns/image-column.model.d.ts +6 -0
  568. package/table/models/columns/number-column.model.d.ts +8 -0
  569. package/table/models/columns/public-api.d.ts +6 -0
  570. package/table/models/columns/text-column.model.d.ts +6 -0
  571. package/table/models/enums/column-type.enum.d.ts +13 -0
  572. package/table/models/enums/public-api.d.ts +1 -0
  573. package/table/models/filter-item.model.d.ts +6 -0
  574. package/table/models/filter-operand.config.d.ts +9 -0
  575. package/table/models/operands-lists/boolean-filter-operands-list.model.d.ts +6 -0
  576. package/table/models/operands-lists/date-filter-operands-list.model.d.ts +6 -0
  577. package/table/models/operands-lists/date-or-number-operands-list.config.d.ts +5 -0
  578. package/table/models/operands-lists/filter-operands-list.config.d.ts +5 -0
  579. package/table/models/operands-lists/guid-filter-operands-list.model.d.ts +6 -0
  580. package/table/models/operands-lists/number-filter-operands-list.model.d.ts +6 -0
  581. package/table/models/operands-lists/string-filter-operands-list.model.d.ts +6 -0
  582. package/table/models/public-api.d.ts +4 -0
  583. package/table/models/saved-view.model.d.ts +11 -0
  584. package/table/models/table-config.model.d.ts +24 -0
  585. package/table/models/table.config.d.ts +22 -0
  586. package/table/models/upd-table-config.model.d.ts +6 -0
  587. package/table/models/upd-table.config.d.ts +6 -0
  588. package/table/public-api.d.ts +5 -0
  589. package/table/services/default-filters-operands.service.d.ts +17 -0
  590. package/table/services/storages/saved-views.storage.d.ts +19 -0
  591. package/table/services/stores/filters-operands.store.d.ts +11 -0
  592. package/table/services/upd-table-config.service.d.ts +12 -0
  593. package/table/table.component.d.ts +78 -0
  594. package/table/tools/filters.tools.d.ts +9 -0
  595. package/table/tools/table.constants.d.ts +15 -0
  596. package/table/upd-table.module.d.ts +40 -0
  597. package/CHANGELOG.md +0 -8
  598. package/button/ng-package.json +0 -7
  599. package/button/src/button.component.html +0 -8
  600. package/button/src/button.component.scss +0 -5
  601. package/button/src/button.component.spec.ts +0 -23
  602. package/button/src/button.component.ts +0 -154
  603. package/button/src/upd-button.module.ts +0 -17
  604. package/card/ng-package.json +0 -7
  605. package/card/src/card.component.html +0 -105
  606. package/card/src/card.component.scss +0 -47
  607. package/card/src/card.component.spec.ts +0 -23
  608. package/card/src/card.component.ts +0 -112
  609. package/card/src/directives/card-actions.directive.spec.ts +0 -8
  610. package/card/src/directives/card-actions.directive.ts +0 -11
  611. package/card/src/directives/card-footer.directive.spec.ts +0 -8
  612. package/card/src/directives/card-footer.directive.ts +0 -11
  613. package/card/src/directives/card-header.directive.spec.ts +0 -8
  614. package/card/src/directives/card-header.directive.ts +0 -11
  615. package/card/src/directives/card-image.directive.spec.ts +0 -8
  616. package/card/src/directives/card-image.directive.ts +0 -11
  617. package/card/src/types/public-api.ts +0 -5
  618. package/card/src/upd-card.module.ts +0 -32
  619. package/dropdown/ng-package.json +0 -7
  620. package/dropdown/src/dropdown.component.html +0 -32
  621. package/dropdown/src/dropdown.component.scss +0 -19
  622. package/dropdown/src/dropdown.component.spec.ts +0 -23
  623. package/dropdown/src/dropdown.component.ts +0 -182
  624. package/dropdown/src/models/public-api.ts +0 -2
  625. package/dropdown/src/upd-dropdown.module.ts +0 -25
  626. package/form/ng-package.json +0 -7
  627. package/form/src/form.module.ts +0 -10
  628. package/form/src/public-api.ts +0 -1
  629. package/form-controls/checkbox/ng-package.json +0 -7
  630. package/form-controls/checkbox/src/checkbox.component.html +0 -7
  631. package/form-controls/checkbox/src/checkbox.component.scss +0 -0
  632. package/form-controls/checkbox/src/checkbox.component.spec.ts +0 -23
  633. package/form-controls/checkbox/src/checkbox.component.ts +0 -48
  634. package/form-controls/checkbox/src/upd-checkbox.module.ts +0 -19
  635. package/form-controls/input/ng-package.json +0 -7
  636. package/form-controls/input/src/directives/input-append.directive.spec.ts +0 -8
  637. package/form-controls/input/src/directives/input-append.directive.ts +0 -11
  638. package/form-controls/input/src/directives/input-prepend.directive.spec.ts +0 -8
  639. package/form-controls/input/src/directives/input-prepend.directive.ts +0 -11
  640. package/form-controls/input/src/input.component.html +0 -82
  641. package/form-controls/input/src/input.component.scss +0 -13
  642. package/form-controls/input/src/input.component.spec.ts +0 -23
  643. package/form-controls/input/src/input.component.ts +0 -124
  644. package/form-controls/input/src/upd-input.module.ts +0 -29
  645. package/form-controls/radio/ng-package.json +0 -7
  646. package/form-controls/radio/src/radio.component.html +0 -7
  647. package/form-controls/radio/src/radio.component.scss +0 -0
  648. package/form-controls/radio/src/radio.component.spec.ts +0 -23
  649. package/form-controls/radio/src/radio.component.ts +0 -47
  650. package/form-controls/radio/src/upd-radio.module.ts +0 -17
  651. package/form-controls/select/ng-package.json +0 -7
  652. package/form-controls/select/src/components/multiple/select-multiple.component.html +0 -41
  653. package/form-controls/select/src/components/multiple/select-multiple.component.scss +0 -6
  654. package/form-controls/select/src/components/multiple/select-multiple.component.spec.ts +0 -21
  655. package/form-controls/select/src/components/multiple/select-multiple.component.ts +0 -69
  656. package/form-controls/select/src/components/shared.scss +0 -40
  657. package/form-controls/select/src/components/single/select.component.html +0 -53
  658. package/form-controls/select/src/components/single/select.component.scss +0 -3
  659. package/form-controls/select/src/components/single/select.component.spec.ts +0 -23
  660. package/form-controls/select/src/components/single/select.component.ts +0 -58
  661. package/form-controls/select/src/models/abstractions/base-select.component.ts +0 -259
  662. package/form-controls/select/src/upd-select.module.ts +0 -32
  663. package/form-controls/textarea/ng-package.json +0 -7
  664. package/form-controls/textarea/src/textarea.component.html +0 -8
  665. package/form-controls/textarea/src/textarea.component.scss +0 -0
  666. package/form-controls/textarea/src/textarea.component.spec.ts +0 -23
  667. package/form-controls/textarea/src/textarea.component.ts +0 -47
  668. package/form-controls/textarea/src/upd-textarea.module.ts +0 -17
  669. package/form-controls/time-picker/ng-package.json +0 -7
  670. package/form-controls/time-picker/src/time-picker.component.html +0 -17
  671. package/form-controls/time-picker/src/time-picker.component.scss +0 -10
  672. package/form-controls/time-picker/src/time-picker.component.spec.ts +0 -21
  673. package/form-controls/time-picker/src/time-picker.component.ts +0 -110
  674. package/form-controls/time-picker/src/time-selector/time-selector.component.html +0 -44
  675. package/form-controls/time-picker/src/time-selector/time-selector.component.scss +0 -47
  676. package/form-controls/time-picker/src/time-selector/time-selector.component.spec.ts +0 -21
  677. package/form-controls/time-picker/src/time-selector/time-selector.component.ts +0 -107
  678. package/form-controls/time-picker/src/upd-time-picker.module.ts +0 -39
  679. package/layout/ng-package.json +0 -7
  680. package/layout/src/abstractions/base-page.component.ts +0 -21
  681. package/layout/src/assets/i18n/en.json +0 -5
  682. package/layout/src/assets/i18n/pt.json +0 -5
  683. package/layout/src/layouts/blank-layout/blank-layout.component.html +0 -1
  684. package/layout/src/layouts/blank-layout/blank-layout.component.scss +0 -0
  685. package/layout/src/layouts/blank-layout/blank-layout.component.spec.ts +0 -23
  686. package/layout/src/layouts/blank-layout/blank-layout.component.ts +0 -10
  687. package/layout/src/layouts/blank-layout/blank-layout.module.ts +0 -17
  688. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.html +0 -14
  689. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.scss +0 -0
  690. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.spec.ts +0 -23
  691. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.ts +0 -31
  692. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.ts +0 -52
  693. package/layout/src/models/upd-layout-config.model.ts +0 -71
  694. package/layout/src/pages/auth-flow/auth-flow-routing.module.ts +0 -21
  695. package/layout/src/pages/auth-flow/auth-flow.module.ts +0 -29
  696. package/layout/src/pages/auth-flow/logged-out/logged-out.component.html +0 -1
  697. package/layout/src/pages/auth-flow/logged-out/logged-out.component.scss +0 -0
  698. package/layout/src/pages/auth-flow/logged-out/logged-out.component.spec.ts +0 -23
  699. package/layout/src/pages/auth-flow/logged-out/logged-out.component.ts +0 -10
  700. package/layout/src/pages/auth-flow/login/login.component.html +0 -96
  701. package/layout/src/pages/auth-flow/login/login.component.scss +0 -0
  702. package/layout/src/pages/auth-flow/login/login.component.spec.ts +0 -23
  703. package/layout/src/pages/auth-flow/login/login.component.ts +0 -26
  704. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.html +0 -1
  705. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.scss +0 -0
  706. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.spec.ts +0 -23
  707. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.ts +0 -10
  708. package/layout/src/partials/footer/footer-copyright.directive.spec.ts +0 -8
  709. package/layout/src/partials/footer/footer-copyright.directive.ts +0 -9
  710. package/layout/src/partials/footer/footer.component.html +0 -30
  711. package/layout/src/partials/footer/footer.component.scss +0 -0
  712. package/layout/src/partials/footer/footer.component.spec.ts +0 -23
  713. package/layout/src/partials/footer/footer.component.ts +0 -73
  714. package/layout/src/partials/header/header.component.html +0 -163
  715. package/layout/src/partials/header/header.component.scss +0 -0
  716. package/layout/src/partials/header/header.component.spec.ts +0 -23
  717. package/layout/src/partials/header/header.component.ts +0 -86
  718. package/layout/src/partials/page-header/page-header.component.html +0 -19
  719. package/layout/src/partials/page-header/page-header.component.scss +0 -0
  720. package/layout/src/partials/page-header/page-header.component.spec.ts +0 -23
  721. package/layout/src/partials/page-header/page-header.component.ts +0 -11
  722. package/layout/src/partials/sidebar/sidebar.component.html +0 -62
  723. package/layout/src/partials/sidebar/sidebar.component.scss +0 -0
  724. package/layout/src/partials/sidebar/sidebar.component.spec.ts +0 -23
  725. package/layout/src/partials/sidebar/sidebar.component.ts +0 -161
  726. package/layout/src/services/upd-layout-config.service.spec.ts +0 -16
  727. package/layout/src/services/upd-layout-config.service.ts +0 -20
  728. package/layout/src/upd-layout.module.ts +0 -34
  729. package/link/ng-package.json +0 -7
  730. package/link/src/link.component.html +0 -3
  731. package/link/src/link.component.scss +0 -3
  732. package/link/src/link.component.spec.ts +0 -23
  733. package/link/src/link.component.ts +0 -48
  734. package/link/src/upd-link.module.ts +0 -17
  735. package/list/ng-package.json +0 -7
  736. package/list/src/assets/i18n/en.json +0 -5
  737. package/list/src/assets/i18n/pt.json +0 -5
  738. package/list/src/list.component.html +0 -58
  739. package/list/src/list.component.scss +0 -21
  740. package/list/src/list.component.spec.ts +0 -23
  741. package/list/src/list.component.ts +0 -147
  742. package/list/src/models/list-item.model.ts +0 -35
  743. package/list/src/upd-list.module.ts +0 -30
  744. package/ng-package.json +0 -10
  745. package/popover/ng-package.json +0 -7
  746. package/popover/src/popover.component.html +0 -20
  747. package/popover/src/popover.component.scss +0 -8
  748. package/popover/src/popover.component.spec.ts +0 -23
  749. package/popover/src/popover.component.ts +0 -53
  750. package/popover/src/popover.directive.spec.ts +0 -8
  751. package/popover/src/popover.directive.ts +0 -128
  752. package/popover/src/upd-popover.module.ts +0 -20
  753. package/src/lib/public-api.ts +0 -2
  754. package/src/lib/types/public-api.ts +0 -2
  755. package/src/lib/types/validation-status.type.ts +0 -1
  756. package/src/lib/upd-components.module.ts +0 -6
  757. package/src/public-api.ts +0 -1
  758. package/tsconfig.lib.json +0 -14
  759. package/tsconfig.lib.prod.json +0 -10
  760. package/tsconfig.spec.json +0 -14
  761. /package/{button/src/index.ts → badge/index.d.ts} +0 -0
  762. /package/{card/src/index.ts → button/index.d.ts} +0 -0
  763. /package/button/{src/public-api.ts → public-api.d.ts} +0 -0
  764. /package/{dropdown/src/index.ts → calendar/index.d.ts} +0 -0
  765. /package/card/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  766. /package/{form-controls/checkbox/src/index.ts → card/index.d.ts} +0 -0
  767. /package/card/{src/public-api.ts → public-api.d.ts} +0 -0
  768. /package/card/{src/types/card-state.type.ts → types/card-state.type.d.ts} +0 -0
  769. /package/card/{src/types/card-style.type.ts → types/card-style.type.d.ts} +0 -0
  770. /package/card/{src/types/hover-effect.type.ts → types/hover-effect.type.d.ts} +0 -0
  771. /package/card/{src/types/ribbon-style.type.ts → types/ribbon-style.type.d.ts} +0 -0
  772. /package/card/{src/types/status-position.type.ts → types/status-position.type.d.ts} +0 -0
  773. /package/{form-controls/input/src/index.ts → drag-and-drop/index.d.ts} +0 -0
  774. /package/{form-controls/radio/src/index.ts → dropdown/index.d.ts} +0 -0
  775. /package/dropdown/{src/public-api.ts → public-api.d.ts} +0 -0
  776. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/en.json +0 -0
  777. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/pt.json +0 -0
  778. /package/{src/lib/index.ts → form/index.d.ts} +0 -0
  779. /package/form-controls/{select/src/index.ts → checkbox/index.d.ts} +0 -0
  780. /package/form-controls/{textarea/src/index.ts → date-picker/index.d.ts} +0 -0
  781. /package/form-controls/{time-picker/src/index.ts → file-upload/index.d.ts} +0 -0
  782. /package/form-controls/input/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  783. /package/{form/src/index.ts → form-controls/input/index.d.ts} +0 -0
  784. /package/form-controls/input/{src/public-api.ts → public-api.d.ts} +0 -0
  785. /package/form-controls/input/{src/types/input.type.ts → types/input.type.d.ts} +0 -0
  786. /package/form-controls/input/{src/types/loader-position.type.ts → types/loader-position.type.d.ts} +0 -0
  787. /package/form-controls/input/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
  788. /package/{layout/src/index.ts → form-controls/radio/index.d.ts} +0 -0
  789. /package/form-controls/radio/{src/public-api.ts → public-api.d.ts} +0 -0
  790. /package/{link/src/index.ts → form-controls/select/index.d.ts} +0 -0
  791. /package/form-controls/select/{src/public-api.ts → public-api.d.ts} +0 -0
  792. /package/{list/src/index.ts → form-controls/textarea/index.d.ts} +0 -0
  793. /package/form-controls/textarea/{src/public-api.ts → public-api.d.ts} +0 -0
  794. /package/{popover/src/index.ts → form-controls/time-picker/index.d.ts} +0 -0
  795. /package/form-controls/time-picker/{src/public-api.ts → public-api.d.ts} +0 -0
  796. /package/layout/{src/abstractions/public-api.ts → abstractions/public-api.d.ts} +0 -0
  797. /package/layout/{src/layouts/public-api.ts → layouts/public-api.d.ts} +0 -0
  798. /package/layout/{src/pages/auth-flow/public-api.ts → pages/auth-flow/public-api.d.ts} +0 -0
  799. /package/layout/{src/pages/public-api.ts → pages/public-api.d.ts} +0 -0
  800. /package/layout/{src/partials/header/header-style.type.ts → partials/header/header-style.type.d.ts} +0 -0
  801. /package/layout/{src/partials/page-header/public-api.ts → partials/page-header/public-api.d.ts} +0 -0
  802. /package/layout/{src/partials/public-api.ts → partials/public-api.d.ts} +0 -0
  803. /package/layout/{src/partials/sidebar/public-api.ts → partials/sidebar/public-api.d.ts} +0 -0
  804. /package/layout/{src/public-api.ts → public-api.d.ts} +0 -0
  805. /package/layout/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
  806. /package/link/{src/public-api.ts → public-api.d.ts} +0 -0
  807. /package/link/{src/target.type.ts → target.type.d.ts} +0 -0
  808. /package/list/{src/models/badge-position.type.ts → models/badge-position.type.d.ts} +0 -0
  809. /package/list/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  810. /package/list/{src/public-api.ts → public-api.d.ts} +0 -0
  811. /package/popover/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,32 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { UpdPopoverModule } from '@updevs/components/popover';
5
+ import { CheckboxComponent } from './checkbox.component';
6
+ import * as i0 from "@angular/core";
7
+ export class UpdCheckboxModule {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UpdCheckboxModule, declarations: [CheckboxComponent], imports: [CommonModule,
10
+ FormsModule,
11
+ UpdPopoverModule], exports: [CheckboxComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdCheckboxModule, imports: [CommonModule,
13
+ FormsModule,
14
+ UpdPopoverModule] }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdCheckboxModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ imports: [
20
+ CommonModule,
21
+ FormsModule,
22
+ UpdPopoverModule
23
+ ],
24
+ declarations: [
25
+ CheckboxComponent
26
+ ],
27
+ exports: [
28
+ CheckboxComponent
29
+ ]
30
+ }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLWNoZWNrYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2NoZWNrYm94L3NyYy91cGQtY2hlY2tib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFlekQsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBTnRCLGlCQUFpQixhQUxqQixZQUFZO1lBQ1osV0FBVztZQUNYLGdCQUFnQixhQU1oQixpQkFBaUI7K0dBR1osaUJBQWlCLFlBWHRCLFlBQVk7WUFDWixXQUFXO1lBQ1gsZ0JBQWdCOzsyRkFTWCxpQkFBaUI7a0JBYjdCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7cUJBQ25CO29CQUNELFlBQVksRUFBRTt3QkFDVixpQkFBaUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxpQkFBaUI7cUJBQ3BCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVwZFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvcG9wb3Zlcic7XG5cbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgVXBkUG9wb3Zlck1vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIENoZWNrYm94Q29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIENoZWNrYm94Q29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBVcGRDaGVja2JveE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkZXZzLWNvbXBvbmVudHMtZm9ybS1jb250cm9scy1jaGVja2JveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2NoZWNrYm94L3NyYy91cGRldnMtY29tcG9uZW50cy1mb3JtLWNvbnRyb2xzLWNoZWNrYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,147 @@
1
+ import { Component, ElementRef, EventEmitter, Input, NgZone, Output, Renderer2, RendererStyleFlags2, ViewChild, inject } from '@angular/core';
2
+ import { BaseComponent, PositioningService, DomEventsService } from '@updevs/sdk/layout';
3
+ import { DateService } from '@updevs/sdk/core';
4
+ import { CalendarRangeStrategyService, DateRangeModel } from '@updevs/components/calendar';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@updevs/components/button";
7
+ import * as i2 from "@updevs/components/calendar";
8
+ import * as i3 from "@updevs/icons";
9
+ import * as i4 from "@updevs/components/form-controls/input";
10
+ let datepickerId = 0;
11
+ export class DatePickerComponent extends BaseComponent {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.shouldCloseOnOutsideClick = true;
15
+ /**
16
+ * The view that the calendar should start in.
17
+ */
18
+ this.startView = 'month';
19
+ /**
20
+ * Whether the user is currently selecting a range of dates.
21
+ */
22
+ this.isRange = false;
23
+ /**
24
+ * Emits the year chosen in multiyear view.
25
+ * This doesn't imply a change on the selected date.
26
+ */
27
+ this.yearSelected = new EventEmitter();
28
+ /**
29
+ * Emits the month chosen in year view.
30
+ * This doesn't imply a change on the selected date.
31
+ */
32
+ this.monthSelected = new EventEmitter();
33
+ /**
34
+ * Emits when the current view changes.
35
+ */
36
+ this.viewChanged = new EventEmitter(true);
37
+ /**
38
+ * Whether the dropdown is open.
39
+ */
40
+ this.isDropdownOpen = false;
41
+ this.selectedData = new DateRangeModel();
42
+ this.id = `upd-datepicker-${datepickerId++}`;
43
+ this.rangeSelectionStrategy = inject(CalendarRangeStrategyService);
44
+ this.dateService = inject(DateService);
45
+ this.domEventsService = inject(DomEventsService);
46
+ this.positioningService = inject(PositioningService);
47
+ this.ngZone = inject(NgZone);
48
+ this.renderer = inject(Renderer2);
49
+ }
50
+ /**
51
+ * The date to open the calendar to initially
52
+ */
53
+ get startAt() {
54
+ // If an explicit startAt is set we start there, otherwise we start at whatever the currently
55
+ // selected value is.
56
+ return this._startAt || this.selectedData.start;
57
+ }
58
+ set startAt(value) {
59
+ this._startAt = this.dateService.getValidOrUndefined(this.dateService.deserialize(value));
60
+ }
61
+ get hasSelectedData() {
62
+ return !!this.selectedData.start || !!this.selectedData.end;
63
+ }
64
+ get startDate() {
65
+ return !!this.selectedData.start ? this.dateService.format(this.selectedData.start) : '';
66
+ }
67
+ get endDate() {
68
+ return !!this.selectedData.end ? this.dateService.format(this.selectedData.end) : '';
69
+ }
70
+ clearSelection() {
71
+ }
72
+ openDropdown() {
73
+ this.isDropdownOpen = true;
74
+ if (this.shouldCloseOnOutsideClick) {
75
+ const outsideClickSub = this.domEventsService.startOutsideClickListener(() => this.ngZone.run(() => this.isDropdownOpen = false), this.calendar?.nativeElement, true, this.componentBox?.nativeElement);
76
+ this.addSubscriptions(outsideClickSub);
77
+ }
78
+ this.ngZone.runOutsideAngular(() => this.positioningService
79
+ .computePosition(this.componentBox, this.calendar, { placement: 'bottom' })
80
+ .subscribe(resp => this.updatePosition(resp)));
81
+ }
82
+ handleUserSelection(event) {
83
+ const value = event.value;
84
+ // If we're selecting a range and we have a selection strategy, always pass the value through
85
+ // there. Otherwise don't assign null values to the model, unless we're selecting a range.
86
+ // A null value when picking a range means that the user cancelled the selection (e.g. by
87
+ // pressing escape), whereas when selecting a single value it means that the value didn't
88
+ // change. This isn't very intuitive, but it's here for backwards-compatibility.
89
+ if (this.isRange) {
90
+ this.selectedData = this.rangeSelectionStrategy.selectionFinished(value, this.selectedData);
91
+ }
92
+ else if (!!value && !this.dateService.areEqual(value, this.selectedData.start)) {
93
+ this.selectedData = new DateRangeModel(value);
94
+ }
95
+ // Delegate closing the overlay to the actions.
96
+ if (this.isRange && !this.selectedData.start || !!this.selectedData.end) {
97
+ this.isDropdownOpen = false;
98
+ }
99
+ }
100
+ handleUserDragDrop(event) {
101
+ this.selectedData = event.value;
102
+ }
103
+ updateStartDate(value) {
104
+ this.selectedData = new DateRangeModel(this.dateService.getValidOrUndefined(new Date(value)), this.selectedData.end);
105
+ }
106
+ updateEndDate(value) {
107
+ this.selectedData = new DateRangeModel(this.selectedData.start, this.dateService.getValidOrUndefined(new Date(value)));
108
+ }
109
+ updatePosition(result) {
110
+ const ddElement = this.calendar.nativeElement;
111
+ this.renderer.setStyle(ddElement, 'top', `${result.y}px`, RendererStyleFlags2.Important);
112
+ this.renderer.setStyle(ddElement, 'left', 0, RendererStyleFlags2.Important);
113
+ }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DatePickerComponent, selector: "upd-date-picker", inputs: { shouldCloseOnOutsideClick: "shouldCloseOnOutsideClick", minDate: "minDate", maxDate: "maxDate", startAt: "startAt", startView: "startView", dateFilter: "dateFilter", isRange: "isRange" }, outputs: { yearSelected: "yearSelected", monthSelected: "monthSelected", viewChanged: "viewChanged" }, viewQueries: [{ propertyName: "componentBox", first: true, predicate: ["componentBox"], descendants: true, read: ElementRef }, { propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"dropdown\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n <div class=\"d-flex flex-row\">\n <upd-input [value]=\"startDate\" (valueChange)=\"updateStartDate($event)\" customClasses=\"date-input\" class=\"px-1\"\n [isPlainText]=\"true\">\n </upd-input>\n\n @if (isRange) {\n <span class=\"px-1\"> - </span>\n <upd-input [value]=\"endDate\" (valueChange)=\"updateEndDate($event)\" customClasses=\"date-input\" class=\"px-1\"\n [isPlainText]=\"true\">\n </upd-input>\n }\n </div>\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (hasSelectedData) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"clearSelection()\" customClasses=\"link-secondary\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"openDropdown()\" customClasses=\"link-secondary ms-2\">\n <upd-icon [model]=\"{tablerIcon:'calendar'}\"></upd-icon>\n </upd-button>\n </div>\n </div>\n <div #calendar class=\"dropdown-content remove-top-radius\" [style.display]=\"isDropdownOpen ? 'block' : 'none'\">\n <upd-calendar class=\"p-2\" [id]=\"id\" [startAt]=\"startAt\" [startView]=\"startView\" [minDate]=\"minDate\" [maxDate]=\"maxDate\"\n [dateFilter]=\"dateFilter\" [selected]=\"selectedData\" [comparisonStart]=\"comparisonStart\" [comparisonEnd]=\"comparisonEnd\"\n [startDateAccessibleName]=\"startDateAccessibleName\" [endDateAccessibleName]=\"endDateAccessibleName\" [isRange]=\"isRange\"\n (yearSelected)=\"yearSelected.emit($event)\" (monthSelected)=\"monthSelected.emit($event)\" (viewChanged)=\"viewChanged.emit($event)\"\n (userSelection)=\"handleUserSelection($event)\" (userDragDrop)=\"handleUserDragDrop($event)\">\n </upd-calendar>\n </div>\n</div>\n", styles: [".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;width:350px!important}.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}::ng-deep .date-input{padding:0!important;width:80px!important}\n"], dependencies: [{ kind: "component", type: i1.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: "component", type: i2.CalendarComponent, selector: "upd-calendar", inputs: ["startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName", "isRange"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "userSelection", "userDragDrop"] }, { kind: "component", type: i3.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i4.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"] }] }); }
116
+ }
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatePickerComponent, decorators: [{
118
+ type: Component,
119
+ args: [{ selector: 'upd-date-picker', template: "<div class=\"dropdown\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n <div class=\"d-flex flex-row\">\n <upd-input [value]=\"startDate\" (valueChange)=\"updateStartDate($event)\" customClasses=\"date-input\" class=\"px-1\"\n [isPlainText]=\"true\">\n </upd-input>\n\n @if (isRange) {\n <span class=\"px-1\"> - </span>\n <upd-input [value]=\"endDate\" (valueChange)=\"updateEndDate($event)\" customClasses=\"date-input\" class=\"px-1\"\n [isPlainText]=\"true\">\n </upd-input>\n }\n </div>\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (hasSelectedData) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"clearSelection()\" customClasses=\"link-secondary\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"openDropdown()\" customClasses=\"link-secondary ms-2\">\n <upd-icon [model]=\"{tablerIcon:'calendar'}\"></upd-icon>\n </upd-button>\n </div>\n </div>\n <div #calendar class=\"dropdown-content remove-top-radius\" [style.display]=\"isDropdownOpen ? 'block' : 'none'\">\n <upd-calendar class=\"p-2\" [id]=\"id\" [startAt]=\"startAt\" [startView]=\"startView\" [minDate]=\"minDate\" [maxDate]=\"maxDate\"\n [dateFilter]=\"dateFilter\" [selected]=\"selectedData\" [comparisonStart]=\"comparisonStart\" [comparisonEnd]=\"comparisonEnd\"\n [startDateAccessibleName]=\"startDateAccessibleName\" [endDateAccessibleName]=\"endDateAccessibleName\" [isRange]=\"isRange\"\n (yearSelected)=\"yearSelected.emit($event)\" (monthSelected)=\"monthSelected.emit($event)\" (viewChanged)=\"viewChanged.emit($event)\"\n (userSelection)=\"handleUserSelection($event)\" (userDragDrop)=\"handleUserDragDrop($event)\">\n </upd-calendar>\n </div>\n</div>\n", styles: [".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;width:350px!important}.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}::ng-deep .date-input{padding:0!important;width:80px!important}\n"] }]
120
+ }], propDecorators: { componentBox: [{
121
+ type: ViewChild,
122
+ args: ['componentBox', { read: ElementRef }]
123
+ }], calendar: [{
124
+ type: ViewChild,
125
+ args: ['calendar', { read: ElementRef }]
126
+ }], shouldCloseOnOutsideClick: [{
127
+ type: Input
128
+ }], minDate: [{
129
+ type: Input
130
+ }], maxDate: [{
131
+ type: Input
132
+ }], startAt: [{
133
+ type: Input
134
+ }], startView: [{
135
+ type: Input
136
+ }], dateFilter: [{
137
+ type: Input
138
+ }], isRange: [{
139
+ type: Input
140
+ }], yearSelected: [{
141
+ type: Output
142
+ }], monthSelected: [{
143
+ type: Output
144
+ }], viewChanged: [{
145
+ type: Output
146
+ }] } });
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvZGF0ZS1waWNrZXIvc3JjL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2RhdGUtcGlja2VyL3NyYy9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULG1CQUFtQixFQUNuQixTQUFTLEVBQ1QsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQXlCLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFBRSw0QkFBNEIsRUFBNEMsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7OztBQUVySSxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFPckIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGFBQWE7SUFMdEQ7O1FBU2EsOEJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBcUIxQzs7V0FFRztRQUNNLGNBQVMsR0FBcUIsT0FBTyxDQUFDO1FBRS9DOztXQUVHO1FBQ00sWUFBTyxHQUFHLEtBQUssQ0FBQztRQUV6Qjs7O1dBR0c7UUFDZ0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzNEOzs7V0FHRztRQUNnQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUQ7O1dBRUc7UUFDZ0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVks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bXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBSZW5kZXJlclN0eWxlRmxhZ3MyLFxuICAgIFZpZXdDaGlsZCxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBQb3NpdGlvbmluZ1NlcnZpY2UsIENvbXB1dGVQb3NpdGlvblJlc3VsdCwgRG9tRXZlbnRzU2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBEYXRlU2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9uYWxUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJSYW5nZVN0cmF0ZWd5U2VydmljZSwgQ2FsZW5kYXJWaWV3VHlwZSwgQ2FsZW5kYXJVc2VyRXZlbnRNb2RlbCwgRGF0ZVJhbmdlTW9kZWwgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvY2FsZW5kYXInO1xuXG5sZXQgZGF0ZXBpY2tlcklkID0gMDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1cGQtZGF0ZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgnY29tcG9uZW50Qm94JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGNvbXBvbmVudEJveD86IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnY2FsZW5kYXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgY2FsZW5kYXI/OiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KCkgc2hvdWxkQ2xvc2VPbk91dHNpZGVDbGljayA9IHRydWU7XG4gICAgLyoqXG4gICAgICogVGhlIG1pbmltdW0gc2VsZWN0YWJsZSBkYXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIG1pbkRhdGU/OiBEYXRlO1xuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIHNlbGVjdGFibGUgZGF0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBtYXhEYXRlPzogRGF0ZTtcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0ZSB0byBvcGVuIHRoZSBjYWxlbmRhciB0byBpbml0aWFsbHlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBzdGFydEF0KCk6IE9wdGlvbmFsVHlwZTxEYXRlPiB7XG4gICAgICAgIC8vIElmIGFuIGV4cGxpY2l0IHN0YXJ0QXQgaXMgc2V0IHdlIHN0YXJ0IHRoZXJlLCBvdGhlcndpc2Ugd2Ugc3RhcnQgYXQgd2hhdGV2ZXIgdGhlIGN1cnJlbnRseVxuICAgICAgICAvLyBzZWxlY3RlZCB2YWx1ZSBpcy5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXJ0QXQgfHwgdGhpcy5zZWxlY3RlZERhdGEuc3RhcnQ7XG4gICAgfVxuICAgIHNldCBzdGFydEF0KHZhbHVlOiBPcHRpb25hbFR5cGU8RGF0ZT4pIHtcbiAgICAgICAgdGhpcy5fc3RhcnRBdCA9IHRoaXMuZGF0ZVNlcnZpY2UuZ2V0VmFsaWRPclVuZGVmaW5lZCh0aGlzLmRhdGVTZXJ2aWNlLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZSB2aWV3IHRoYXQgdGhlIGNhbGVuZGFyIHNob3VsZCBzdGFydCBpbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdGFydFZpZXc6IENhbGVuZGFyVmlld1R5cGUgPSAnbW9udGgnO1xuICAgIEBJbnB1dCgpIGRhdGVGaWx0ZXI/OiAoZGF0ZTogRGF0ZSkgPT4gYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB1c2VyIGlzIGN1cnJlbnRseSBzZWxlY3RpbmcgYSByYW5nZSBvZiBkYXRlcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBpc1JhbmdlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB0aGUgeWVhciBjaG9zZW4gaW4gbXVsdGl5ZWFyIHZpZXcuXG4gICAgICogVGhpcyBkb2Vzbid0IGltcGx5IGEgY2hhbmdlIG9uIHRoZSBzZWxlY3RlZCBkYXRlLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB5ZWFyU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gICAgLyoqXG4gICAgICogRW1pdHMgdGhlIG1vbnRoIGNob3NlbiBpbiB5ZWFyIHZpZXcuXG4gICAgICogVGhpcyBkb2Vzbid0IGltcGx5IGEgY2hhbmdlIG9uIHRoZSBzZWxlY3RlZCBkYXRlLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBtb250aFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gdGhlIGN1cnJlbnQgdmlldyBjaGFuZ2VzLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB2aWV3Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FsZW5kYXJWaWV3VHlwZT4odHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBkcm9wZG93biBpcyBvcGVuLlxuICAgICAqL1xuICAgIGlzRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogU3RhcnQgb2YgdGhlIGNvbXBhcmlzb24gcmFuZ2UuXG4gICAgICovXG4gICAgY29tcGFyaXNvblN0YXJ0PzogRGF0ZTtcbiAgICAvKipcbiAgICAgKiBFbmQgb2YgdGhlIGNvbXBhcmlzb24gcmFuZ2UuXG4gICAgICovXG4gICAgY29tcGFyaXNvbkVuZD86IERhdGU7XG4gICAgLyoqXG4gICAgICogQVJJQSBBY2Nlc3NpYmxlIG5hbWUgb2YgdGhlIGA8aW5wdXQgbWF0U3RhcnREYXRlLz5gXG4gICAgICovXG4gICAgc3RhcnREYXRlQWNjZXNzaWJsZU5hbWU/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQVJJQSBBY2Nlc3NpYmxlIG5hbWUgb2YgdGhlIGA8aW5wdXQgbWF0RW5kRGF0ZS8+YFxuICAgICAqL1xuICAgIGVuZERhdGVBY2Nlc3NpYmxlTmFtZT86IHN0cmluZztcbiAgICBzZWxlY3RlZERhdGEgPSBuZXcgRGF0ZVJhbmdlTW9kZWwoKTtcbiAgICBnZXQgaGFzU2VsZWN0ZWREYXRhKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnNlbGVjdGVkRGF0YS5zdGFydCB8fCAhIXRoaXMuc2VsZWN0ZWREYXRhLmVuZDtcbiAgICB9XG4gICAgZ2V0IHN0YXJ0RGF0ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gISF0aGlzLnNlbGVjdGVkRGF0YS5zdGFydCA/IHRoaXMuZGF0ZVNlcnZpY2UuZm9ybWF0KHRoaXMuc2VsZWN0ZWREYXRhLnN0YXJ0KSA6ICcnO1xuICAgIH1cbiAgICBnZXQgZW5kRGF0ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gISF0aGlzLnNlbGVjdGVkRGF0YS5lbmQgPyB0aGlzLmRhdGVTZXJ2aWNlLmZvcm1hdCh0aGlzLnNlbGVjdGVkRGF0YS5lbmQpIDogJyc7XG4gICAgfVxuICAgIHJlYWRvbmx5IGlkID0gYHVwZC1kYXRlcGlja2VyLSR7ZGF0ZXBpY2tlcklkKyt9YDtcblxuICAgIHByaXZhdGUgX3N0YXJ0QXQ/OiBEYXRlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmFuZ2VTZWxlY3Rpb25TdHJhdGVneSA9IGluamVjdChDYWxlbmRhclJhbmdlU3RyYXRlZ3lTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVTZXJ2aWNlID0gaW5qZWN0KERhdGVTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvbUV2ZW50c1NlcnZpY2UgPSBpbmplY3QoRG9tRXZlbnRzU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3NpdGlvbmluZ1NlcnZpY2UgPSBpbmplY3QoUG9zaXRpb25pbmdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuXG4gICAgfVxuXG4gICAgb3BlbkRyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRHJvcGRvd25PcGVuID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5zaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrKSB7XG4gICAgICAgICAgICBjb25zdCBvdXRzaWRlQ2xpY2tTdWIgPSB0aGlzLmRvbUV2ZW50c1NlcnZpY2Uuc3RhcnRPdXRzaWRlQ2xpY2tMaXN0ZW5lcihcbiAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlKSxcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyPy5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRCb3g/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbnMob3V0c2lkZUNsaWNrU3ViKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uaW5nU2VydmljZVxuICAgICAgICAgICAgICAgIC5jb21wdXRlUG9zaXRpb24odGhpcy5jb21wb25lbnRCb3ghLCB0aGlzLmNhbGVuZGFyISwgeyBwbGFjZW1lbnQ6ICdib3R0b20nIH0pXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwID0+IHRoaXMudXBkYXRlUG9zaXRpb24ocmVzcCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaGFuZGxlVXNlclNlbGVjdGlvbihldmVudDogQ2FsZW5kYXJVc2VyRXZlbnRNb2RlbDxPcHRpb25hbFR5cGU8RGF0ZT4+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudmFsdWU7XG5cbiAgICAgICAgLy8gSWYgd2UncmUgc2VsZWN0aW5nIGEgcmFuZ2UgYW5kIHdlIGhhdmUgYSBzZWxlY3Rpb24gc3RyYXRlZ3ksIGFsd2F5cyBwYXNzIHRoZSB2YWx1ZSB0aHJvdWdoXG4gICAgICAgIC8vIHRoZXJlLiBPdGhlcndpc2UgZG9uJ3QgYXNzaWduIG51bGwgdmFsdWVzIHRvIHRoZSBtb2RlbCwgdW5sZXNzIHdlJ3JlIHNlbGVjdGluZyBhIHJhbmdlLlxuICAgICAgICAvLyBBIG51bGwgdmFsdWUgd2hlbiBwaWNraW5nIGEgcmFuZ2UgbWVhbnMgdGhhdCB0aGUgdXNlciBjYW5jZWxsZWQgdGhlIHNlbGVjdGlvbiAoZS5nLiBieVxuICAgICAgICAvLyBwcmVzc2luZyBlc2NhcGUpLCB3aGVyZWFzIHdoZW4gc2VsZWN0aW5nIGEgc2luZ2xlIHZhbHVlIGl0IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGRpZG4ndFxuICAgICAgICAvLyBjaGFuZ2UuIFRoaXMgaXNuJ3QgdmVyeSBpbnR1aXRpdmUsIGJ1dCBpdCdzIGhlcmUgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LlxuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IHRoaXMucmFuZ2VTZWxlY3Rpb25TdHJhdGVneS5zZWxlY3Rpb25GaW5pc2hlZCh2YWx1ZSwgdGhpcy5zZWxlY3RlZERhdGEpO1xuICAgICAgICB9IGVsc2UgaWYgKCEhdmFsdWUgJiYgIXRoaXMuZGF0ZVNlcnZpY2UuYXJlRXF1YWwodmFsdWUsIHRoaXMuc2VsZWN0ZWREYXRhLnN0YXJ0KSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGEgPSBuZXcgRGF0ZVJhbmdlTW9kZWwodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVsZWdhdGUgY2xvc2luZyB0aGUgb3ZlcmxheSB0byB0aGUgYWN0aW9ucy5cbiAgICAgICAgaWYgKHRoaXMuaXNSYW5nZSAmJiAhdGhpcy5zZWxlY3RlZERhdGEuc3RhcnQgfHwgISF0aGlzLnNlbGVjdGVkRGF0YS5lbmQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVVzZXJEcmFnRHJvcChldmVudDogQ2FsZW5kYXJVc2VyRXZlbnRNb2RlbDxEYXRlUmFuZ2VNb2RlbD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGEgPSBldmVudC52YWx1ZTtcbiAgICB9XG5cbiAgICB1cGRhdGVTdGFydERhdGUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IG5ldyBEYXRlUmFuZ2VNb2RlbCh0aGlzLmRhdGVTZXJ2aWNlLmdldFZhbGlkT3JVbmRlZmluZWQobmV3IERhdGUodmFsdWUpKSwgdGhpcy5zZWxlY3RlZERhdGEuZW5kKTtcbiAgICB9XG5cbiAgICB1cGRhdGVFbmREYXRlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGEgPSBuZXcgRGF0ZVJhbmdlTW9kZWwodGhpcy5zZWxlY3RlZERhdGEuc3RhcnQsIHRoaXMuZGF0ZVNlcnZpY2UuZ2V0VmFsaWRPclVuZGVmaW5lZChuZXcgRGF0ZSh2YWx1ZSkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uKHJlc3VsdDogQ29tcHV0ZVBvc2l0aW9uUmVzdWx0KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRkRWxlbWVudCA9IHRoaXMuY2FsZW5kYXIhLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkZEVsZW1lbnQsICd0b3AnLCBgJHtyZXN1bHQueX1weGAsIFJlbmRlcmVyU3R5bGVGbGFnczIuSW1wb3J0YW50KTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkZEVsZW1lbnQsICdsZWZ0JywgMCwgUmVuZGVyZXJTdHlsZUZsYWdzMi5JbXBvcnRhbnQpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkcm9wZG93blwiPlxuICAgIDxkaXYgI2NvbXBvbmVudEJveCBjbGFzcz1cImlucHV0LWdyb3VwIGlucHV0LWdyb3VwLWZsYXRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtjbGFzcy5yZW1vdmUtYm90dG9tLXJhZGl1c109XCJpc0Ryb3Bkb3duT3BlblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgICAgIDx1cGQtaW5wdXQgW3ZhbHVlXT1cInN0YXJ0RGF0ZVwiICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVTdGFydERhdGUoJGV2ZW50KVwiIGN1c3RvbUNsYXNzZXM9XCJkYXRlLWlucHV0XCIgY2xhc3M9XCJweC0xXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzUGxhaW5UZXh0XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8L3VwZC1pbnB1dD5cblxuICAgICAgICAgICAgICAgIEBpZiAoaXNSYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInB4LTFcIj4gLSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDx1cGQtaW5wdXQgW3ZhbHVlXT1cImVuZERhdGVcIiAodmFsdWVDaGFuZ2UpPVwidXBkYXRlRW5kRGF0ZSgkZXZlbnQpXCIgY3VzdG9tQ2xhc3Nlcz1cImRhdGUtaW5wdXRcIiBjbGFzcz1cInB4LTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzUGxhaW5UZXh0XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPC91cGQtaW5wdXQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiIFtjbGFzcy5yZW1vdmUtYm90dG9tLXJhZGl1c109XCJpc0Ryb3Bkb3duT3BlblwiPlxuICAgICAgICAgICAgQGlmIChoYXNTZWxlY3RlZERhdGEpIHtcbiAgICAgICAgICAgICAgICA8dXBkLWJ1dHRvbiBbc2hvdWxkSWdub3JlQnRuQ2xhc3NdPVwidHJ1ZVwiIChjbGlja2VkKT1cImNsZWFyU2VsZWN0aW9uKClcIiBjdXN0b21DbGFzc2VzPVwibGluay1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJ7dGFibGVySWNvbjoneCd9XCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8dXBkLWJ1dHRvbiBbc2hvdWxkSWdub3JlQnRuQ2xhc3NdPVwidHJ1ZVwiIChjbGlja2VkKT1cIm9wZW5Ecm9wZG93bigpXCIgY3VzdG9tQ2xhc3Nlcz1cImxpbmstc2Vjb25kYXJ5IG1zLTJcIj5cbiAgICAgICAgICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cInt0YWJsZXJJY29uOidjYWxlbmRhcid9XCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAjY2FsZW5kYXIgY2xhc3M9XCJkcm9wZG93bi1jb250ZW50IHJlbW92ZS10b3AtcmFkaXVzXCIgW3N0eWxlLmRpc3BsYXldPVwiaXNEcm9wZG93bk9wZW4gPyAnYmxvY2snIDogJ25vbmUnXCI+XG4gICAgICAgIDx1cGQtY2FsZW5kYXIgY2xhc3M9XCJwLTJcIiBbaWRdPVwiaWRcIiBbc3RhcnRBdF09XCJzdGFydEF0XCIgW3N0YXJ0Vmlld109XCJzdGFydFZpZXdcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICAgICBbZGF0ZUZpbHRlcl09XCJkYXRlRmlsdGVyXCIgW3NlbGVjdGVkXT1cInNlbGVjdGVkRGF0YVwiIFtjb21wYXJpc29uU3RhcnRdPVwiY29tcGFyaXNvblN0YXJ0XCIgW2NvbXBhcmlzb25FbmRdPVwiY29tcGFyaXNvbkVuZFwiXG4gICAgICAgICAgICBbc3RhcnREYXRlQWNjZXNzaWJsZU5hbWVdPVwic3RhcnREYXRlQWNjZXNzaWJsZU5hbWVcIiBbZW5kRGF0ZUFjY2Vzc2libGVOYW1lXT1cImVuZERhdGVBY2Nlc3NpYmxlTmFtZVwiIFtpc1JhbmdlXT1cImlzUmFuZ2VcIlxuICAgICAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJ5ZWFyU2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCIgKG1vbnRoU2VsZWN0ZWQpPVwibW9udGhTZWxlY3RlZC5lbWl0KCRldmVudClcIiAodmlld0NoYW5nZWQpPVwidmlld0NoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICh1c2VyU2VsZWN0aW9uKT1cImhhbmRsZVVzZXJTZWxlY3Rpb24oJGV2ZW50KVwiICh1c2VyRHJhZ0Ryb3ApPVwiaGFuZGxlVXNlckRyYWdEcm9wKCRldmVudClcIj5cbiAgICAgICAgPC91cGQtY2FsZW5kYXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9kYXRlLXBpY2tlci9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './date-picker.component';
2
+ export * from './upd-date-picker.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2RhdGUtcGlja2VyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXBkLWRhdGUtcGlja2VyLm1vZHVsZSc7XG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { UpdButtonModule } from '@updevs/components/button';
4
+ import { UpdCalendarModule } from '@updevs/components/calendar';
5
+ import { UpdInputModule } from '@updevs/components/form-controls/input';
6
+ import { UpdIconsModule } from '@updevs/icons';
7
+ import { DatePickerComponent } from './date-picker.component';
8
+ import * as i0 from "@angular/core";
9
+ export class UpdDatePickerModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UpdDatePickerModule, declarations: [DatePickerComponent], imports: [CommonModule,
12
+ UpdButtonModule,
13
+ UpdCalendarModule,
14
+ UpdIconsModule,
15
+ UpdInputModule], exports: [DatePickerComponent] }); }
16
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdDatePickerModule, imports: [CommonModule,
17
+ UpdButtonModule,
18
+ UpdCalendarModule,
19
+ UpdIconsModule,
20
+ UpdInputModule] }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdDatePickerModule, decorators: [{
23
+ type: NgModule,
24
+ args: [{
25
+ imports: [
26
+ CommonModule,
27
+ UpdButtonModule,
28
+ UpdCalendarModule,
29
+ UpdIconsModule,
30
+ UpdInputModule
31
+ ],
32
+ exports: [
33
+ DatePickerComponent
34
+ ],
35
+ declarations: [
36
+ DatePickerComponent
37
+ ]
38
+ }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLWRhdGUtcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2RhdGUtcGlja2VyL3NyYy91cGQtZGF0ZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFpQjlELE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1CLGlCQUh4QixtQkFBbUIsYUFWbkIsWUFBWTtZQUNaLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGNBQWMsYUFHZCxtQkFBbUI7K0dBTWQsbUJBQW1CLFlBYnhCLFlBQVk7WUFDWixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxjQUFjOzsyRkFTVCxtQkFBbUI7a0JBZi9CLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsY0FBYztxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLG1CQUFtQjtxQkFDdEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLG1CQUFtQjtxQkFDdEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFVwZEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgVXBkQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvY2FsZW5kYXInO1xuaW1wb3J0IHsgVXBkSW5wdXRNb2R1bGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9pbnB1dCc7XG5pbXBvcnQgeyBVcGRJY29uc01vZHVsZSB9IGZyb20gJ0B1cGRldnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBVcGRCdXR0b25Nb2R1bGUsXG4gICAgICAgIFVwZENhbGVuZGFyTW9kdWxlLFxuICAgICAgICBVcGRJY29uc01vZHVsZSxcbiAgICAgICAgVXBkSW5wdXRNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRGF0ZVBpY2tlckNvbXBvbmVudFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIERhdGVQaWNrZXJDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFVwZERhdGVQaWNrZXJNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkZXZzLWNvbXBvbmVudHMtZm9ybS1jb250cm9scy1kYXRlLXBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2RhdGUtcGlja2VyL3NyYy91cGRldnMtY29tcG9uZW50cy1mb3JtLWNvbnRyb2xzLWRhdGUtcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,15 @@
1
+ {
2
+ "UpDevs": {
3
+ "FormControls": {
4
+ "FileUpload": {
5
+ "DropzoneDesktopDescription": "Drop {isMultiple, select, true {files} other {a file}} here or <u>click</u> to select {isMultiple, select, true {them} other {it}}",
6
+ "DropzoneMobileDescription": "Touch to select {isMultiple, select, true {files} other {a file}} to upload",
7
+ "SelectFile": "Select {isMultiple, select, true {files} other {a file}}",
8
+ "NoFileSelected": "No {isMultiple, select, true {files} other {file}} selected",
9
+ "ExtensionNotAllowed": "The file ({{fileName}}) with the extension '{{extension}}' is not allowed. Allowed {hasMultipleExt, select, true {extensions are} other {extension is}}: {{allowedExtensions}}.",
10
+ "MinSizeNotMet": "The file ({{fileName}}) of size {{fileSize}} is smaller than the allowed of {{minAllowedSize}}.",
11
+ "MaxSizeExceeded": "The file ({{fileName}}) of size {{fileSize}} is bigger than the allowed of {{maxAllowedSize}}."
12
+ }
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "UpDevs": {
3
+ "FormControls": {
4
+ "FileUpload": {
5
+ "DropzoneDesktopDescription": "Arraste {isMultiple, select, true {arquivos} other {um arquivo}} para cá ou <u>clique</u> para selecioná-lo{isMultiple, select, true {s} other {}}",
6
+ "DropzoneMobileDescription": "Toque para selecionar {isMultiple, select, true {arquivos} other {um arquivo}} to upload",
7
+ "SelectFile": "Selecione {isMultiple, select, true {arquivos} other {um arquivo}}",
8
+ "NoFileSelected": "Nenhum arquivo selecionado",
9
+ "ExtensionNotAllowed": "O arquivo ({{fileName}}) tem a extensão '{{extension}}' que não é permitida. {hasMultipleExt, select, true {As extensões de arquivo permitidas são} other {A extensão de arquivo permitida é}}: {{allowedExtensions}}.",
10
+ "MinSizeNotMet": "O arquivo ({{fileName}}) de tamanho {{fileSize}} é menor do que o permitido de {{minAllowedSize}}.",
11
+ "MaxSizeExceeded": "O arquivo ({{fileName}}) de tamanho {{fileSize}} é maior do que o permitido de {{maxAllowedSize}}."
12
+ }
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtY2hhbmdlZC5ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2ZpbGUtdXBsb2FkL3NyYy9maWxlLXVwbG9hZC1jaGFuZ2VkLmV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWRDaGFuZ2VkRXZlbnQge1xuICAgIGZpbGU6IEZpbGU7XG4gICAgZGF0YVVybDogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,169 @@
1
+ import { Component, computed, EventEmitter, HostBinding, inject, input, Output, signal } from '@angular/core';
2
+ import { ColumnSizeHelper } from '@updevs/components';
3
+ import { PlatformService, Tools } from '@updevs/sdk/core';
4
+ import { BaseControl } from '@updevs/components/form-controls/abstractions';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@jsverse/transloco";
8
+ import * as i3 from "@updevs/components/button";
9
+ import * as i4 from "@updevs/icons";
10
+ import * as i5 from "@updevs/components/popover";
11
+ export class FileUploadComponent extends BaseControl {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.hostWrapperClasses = '';
15
+ this.fileChanged = new EventEmitter();
16
+ this.fileName = input();
17
+ this.title = input();
18
+ this.allowFilesDrop = input(false);
19
+ this.isMultiple = input(false); // TODO: implement
20
+ this.allowedExtensions = input('*');
21
+ this.minFileSize = input();
22
+ this.maxFileSize = input();
23
+ this.layout = input('vertical');
24
+ this.isOver = signal(false);
25
+ this.showValidationStatus = computed(() => !!this.validationStatus() && (this.validationStatus() === 'invalid' || this.showValidStatus()));
26
+ this.validationStatusClass = computed(() => {
27
+ if (this.showValidationStatus()) {
28
+ return `is-${this.validationStatus()}`;
29
+ }
30
+ return '';
31
+ });
32
+ this.validationStatusBorderClass = computed(() => {
33
+ if (this.showValidationStatus()) {
34
+ return this.validationStatus() === 'invalid' ? 'border-danger' : 'border-success';
35
+ }
36
+ return '';
37
+ });
38
+ this.errorsList = computed(() => [...this.validationStatusTexts.concat(this.fileUploadErrors())]);
39
+ this.currentFiles = signal(undefined);
40
+ this.labelSizeClasses = computed(() => {
41
+ if (this.layout() !== 'horizontal') {
42
+ return 'form-label';
43
+ }
44
+ return ColumnSizeHelper.getClasses('col-form-label', ColumnSizeHelper.getSizeClasses(this.labelColSize(), 3));
45
+ });
46
+ this.firstFileName = computed(() => (this.currentFiles()?.length || 0) > 0 ? this.currentFiles()[0].name : this.fileName());
47
+ this.defaultMobileDesc = {
48
+ text: 'UpDevs.FormControls.FileUpload.DropzoneMobileDescription',
49
+ isTranslated: false
50
+ };
51
+ this.defaultDesktopDesc = {
52
+ text: 'UpDevs.FormControls.FileUpload.DropzoneDesktopDescription',
53
+ isTranslated: false
54
+ };
55
+ this.fileUploadErrors = signal([]);
56
+ this.platformService = inject(PlatformService);
57
+ }
58
+ get titleText() {
59
+ return this._textService.getText(this.title(), { isMultiple: this.isMultiple() });
60
+ }
61
+ get dropDescriptionText() {
62
+ return !!this.descriptionText
63
+ ? this.descriptionText
64
+ : this._textService.getText(this.platformService.isMobile ? this.defaultMobileDesc : this.defaultDesktopDesc, { isMultiple: this.isMultiple() });
65
+ }
66
+ get supportsAdvancedUpload() {
67
+ const div = document.createElement('div');
68
+ return (('draggable' in div) || ('ondragstart' in div && 'ondrop' in div)) && 'FormData' in window && 'FileReader' in window;
69
+ }
70
+ onFileChange(event) {
71
+ event.stopPropagation();
72
+ const files = Array.from(event.target.files);
73
+ if (!!files) {
74
+ this.currentFiles.set([...files]);
75
+ const errors = files.map(f => this.getFileErrors(f)).reduce((acc, e) => acc.concat(e), []);
76
+ if (errors.length > 0) {
77
+ this.fileUploadErrors.set([...errors]);
78
+ return;
79
+ }
80
+ if (this.isMultiple()) {
81
+ // TODO: implement
82
+ }
83
+ else {
84
+ const file = files[0];
85
+ const reader = new FileReader();
86
+ reader.onload = (fileReader) => this.fileChanged.emit({ file: file, dataUrl: fileReader.target.result });
87
+ reader.readAsDataURL(file);
88
+ }
89
+ }
90
+ }
91
+ removeFile() {
92
+ this.currentFiles.set([]);
93
+ this.fileChanged.emit(undefined);
94
+ }
95
+ onDrag(event) {
96
+ event.preventDefault();
97
+ event.stopPropagation();
98
+ }
99
+ onDragStart(event) {
100
+ event.preventDefault();
101
+ event.stopPropagation();
102
+ }
103
+ onDragEnd(event) {
104
+ event.preventDefault();
105
+ event.stopPropagation();
106
+ this.isOver.set(false);
107
+ }
108
+ onDragOver(event) {
109
+ event.preventDefault();
110
+ event.stopPropagation();
111
+ this.isOver.set(true);
112
+ }
113
+ onDragEnter(event) {
114
+ event.preventDefault();
115
+ event.stopPropagation();
116
+ this.isOver.set(true);
117
+ }
118
+ onDragLeave(event) {
119
+ event.preventDefault();
120
+ event.stopPropagation();
121
+ this.isOver.set(false);
122
+ }
123
+ onDrop(event) {
124
+ event.preventDefault();
125
+ event.stopPropagation();
126
+ this.isOver.set(false);
127
+ const droppedFiles = event.dataTransfer.files;
128
+ }
129
+ getFileErrors(file) {
130
+ const extension = `.${file.name.split('.').pop() || ''}`;
131
+ const fileSizeInKB = Math.round(file.size / 1024);
132
+ const errors = [];
133
+ if (this.allowedExtensions() !== '*' && !this.allowedExtensions().includes(extension)) {
134
+ errors.push(this._textService.getText({ text: 'UpDevs.FormControls.FileUpload.ExtensionNotAllowed', isTranslated: false }, {
135
+ fileName: file.name,
136
+ extension,
137
+ hasMultipleExt: this.allowedExtensions().includes(','),
138
+ allowedExtensions: this.allowedExtensions()
139
+ }));
140
+ }
141
+ if (!!this.minFileSize() && fileSizeInKB < this.minFileSize()) {
142
+ errors.push(this._textService.getText({ text: 'UpDevs.FormControls.FileUpload.MinSizeNotMet', isTranslated: false }, {
143
+ fileName: file.name,
144
+ fileSize: Tools.Text.formatKilobytes(fileSizeInKB),
145
+ minAllowedSize: Tools.Text.formatKilobytes(this.minFileSize())
146
+ }));
147
+ }
148
+ if (!!this.maxFileSize() && fileSizeInKB > this.maxFileSize()) {
149
+ errors.push(this._textService.getText({ text: 'UpDevs.FormControls.FileUpload.MaxSizeExceeded', isTranslated: false }, {
150
+ fileName: file.name,
151
+ fileSize: Tools.Text.formatKilobytes(fileSizeInKB),
152
+ maxAllowedSize: Tools.Text.formatKilobytes(this.maxFileSize())
153
+ }));
154
+ }
155
+ return errors;
156
+ }
157
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FileUploadComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
158
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FileUploadComponent, selector: "upd-file-upload", inputs: { fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, allowFilesDrop: { classPropertyName: "allowFilesDrop", publicName: "allowFilesDrop", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, allowedExtensions: { classPropertyName: "allowedExtensions", publicName: "allowedExtensions", isSignal: true, isRequired: false, transformFunction: null }, minFileSize: { classPropertyName: "minFileSize", publicName: "minFileSize", isSignal: true, isRequired: false, transformFunction: null }, maxFileSize: { classPropertyName: "maxFileSize", publicName: "maxFileSize", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileChanged: "fileChanged" }, host: { properties: { "class": "this.hostWrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "<input class=\"d-none\" [attr.id]=\"name()\" [attr.name]=\"name()\" type=\"file\" [attr.multiple]=\"isMultiple() ? true : undefined\"\n [accept]=\"allowedExtensions()\" (change)=\"onFileChange($event)\" />\n\n<div class=\"row\">\n <ng-container *transloco=\"let t; prefix: 'UpDevs.FormControls.FileUpload'\">\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\n @if (supportsAdvancedUpload && allowFilesDrop()) {\n <div class=\"d-flex flex-column border rounded-2 p-2 w-100 h-100\" [ngClass]=\"validationStatusBorderClass()\"\n [class.bg-muted-lt]=\"!isOver()\" [class.bg-primary-lt]=\"isOver()\" (drag)=\"onDrag($event)\" (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragEnd($event)\" (dragover)=\"onDragOver($event)\" (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n @if (!!titleText) {\n <span class=\"fw-bold align-self-center cursor-pointer\" [innerHTML]=\"titleText\"></span>\n }\n\n <label [for]=\"name()\" class=\"text-secondary align-self-center cursor-pointer\" [innerHTML]=\"dropDescriptionText\"></label>\n\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n } @else {\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n }\n }\n @if (validationStatus() === 'invalid' && errorsList().length > 0) {\n @for (desc of errorsList(); track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n\n <ng-template #inputTpl>\n <div class=\"input-group col\">\n <label class=\"input-group-text cursor-pointer\" [ngClass]=\"validationStatusBorderClass()\" [for]=\"name()\">\n {{ t('SelectFile', { isMultiple: isMultiple() }) }}\n </label>\n <input type=\"text\" class=\"form-control text-truncate\" [class.border-end-0]=\"!!firstFileName()\"\n [value]=\"firstFileName() || ''\"\n [ngClass]=\"validationStatusClass()\" placeholder=\"{{ t('NoFileSelected', { isMultiple: isMultiple() }) }}\"\n [attr.disabled]=\"isDisabled() || undefined\" readonly>\n\n @if (!!firstFileName()) {\n <div class=\"input-group-text bg-transparent\" [ngClass]=\"validationStatusBorderClass()\">\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"removeFile()\" customClasses=\"link-secondary cursor-pointer\">\n <upd-icon tablerIcon=\"trash\" [tablerIconSize]=\"18\"></upd-icon>\n </upd-button>\n </div>\n }\n </div>\n </ng-template>\n </ng-container>\n</div>\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", 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.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i3.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: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i5.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }] }); }
159
+ }
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FileUploadComponent, decorators: [{
161
+ type: Component,
162
+ args: [{ selector: 'upd-file-upload', template: "<input class=\"d-none\" [attr.id]=\"name()\" [attr.name]=\"name()\" type=\"file\" [attr.multiple]=\"isMultiple() ? true : undefined\"\n [accept]=\"allowedExtensions()\" (change)=\"onFileChange($event)\" />\n\n<div class=\"row\">\n <ng-container *transloco=\"let t; prefix: 'UpDevs.FormControls.FileUpload'\">\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\n @if (supportsAdvancedUpload && allowFilesDrop()) {\n <div class=\"d-flex flex-column border rounded-2 p-2 w-100 h-100\" [ngClass]=\"validationStatusBorderClass()\"\n [class.bg-muted-lt]=\"!isOver()\" [class.bg-primary-lt]=\"isOver()\" (drag)=\"onDrag($event)\" (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragEnd($event)\" (dragover)=\"onDragOver($event)\" (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n @if (!!titleText) {\n <span class=\"fw-bold align-self-center cursor-pointer\" [innerHTML]=\"titleText\"></span>\n }\n\n <label [for]=\"name()\" class=\"text-secondary align-self-center cursor-pointer\" [innerHTML]=\"dropDescriptionText\"></label>\n\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n } @else {\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n }\n }\n @if (validationStatus() === 'invalid' && errorsList().length > 0) {\n @for (desc of errorsList(); track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n\n <ng-template #inputTpl>\n <div class=\"input-group col\">\n <label class=\"input-group-text cursor-pointer\" [ngClass]=\"validationStatusBorderClass()\" [for]=\"name()\">\n {{ t('SelectFile', { isMultiple: isMultiple() }) }}\n </label>\n <input type=\"text\" class=\"form-control text-truncate\" [class.border-end-0]=\"!!firstFileName()\"\n [value]=\"firstFileName() || ''\"\n [ngClass]=\"validationStatusClass()\" placeholder=\"{{ t('NoFileSelected', { isMultiple: isMultiple() }) }}\"\n [attr.disabled]=\"isDisabled() || undefined\" readonly>\n\n @if (!!firstFileName()) {\n <div class=\"input-group-text bg-transparent\" [ngClass]=\"validationStatusBorderClass()\">\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"removeFile()\" customClasses=\"link-secondary cursor-pointer\">\n <upd-icon tablerIcon=\"trash\" [tablerIconSize]=\"18\"></upd-icon>\n </upd-button>\n </div>\n }\n </div>\n </ng-template>\n </ng-container>\n</div>\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" }]
163
+ }], propDecorators: { hostWrapperClasses: [{
164
+ type: HostBinding,
165
+ args: ['class']
166
+ }], fileChanged: [{
167
+ type: Output
168
+ }] } });
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvZmlsZS11cGxvYWQvc3JjL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2ZpbGUtdXBsb2FkL3NyYy9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQTBCLE1BQU0sb0JBQW9CLENBQUM7QUFFOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7Ozs7QUFVNUUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQVc7SUFMcEQ7O1FBTTBCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUUzQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUF3QyxDQUFDO1FBRWpGLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsbUJBQWMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsZUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtRQUM3QyxzQkFBaUIsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUM5QixnQkFBVyxHQUFHLEtBQUss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LEVBQUUsS0FBSyxFQUFFLEVBQy9FO2dCQUNJLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDbkIsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztnQkFDbEQsY0FBYyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUcsQ0FBQzthQUNsRSxDQUNKLENBQ0osQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOzhHQTlMUSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwrdkNDZGhDLGc3SEE2RUE7OzJGRC9EYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0ksaUJBQWlCOzhCQUtMLGtCQUFrQjtzQkFBdkMsV0FBVzt1QkFBQyxPQUFPO2dCQUVELFdBQVc7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBpbmplY3QsIGlucHV0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sdW1uU2l6ZUhlbHBlciwgSG9yaXpvbnRhbFZlcnRpY2FsVHlwZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUZXh0TW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2UsIFRvb2xzIH0gZnJvbSAnQHVwZGV2cy9zZGsvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2Fic3RyYWN0aW9ucyc7XG5pbXBvcnQgeyBPcHRpb25hbFR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5cbmltcG9ydCB7IEZpbGVVcGxvYWRDaGFuZ2VkRXZlbnQgfSBmcm9tICcuL2ZpbGUtdXBsb2FkLWNoYW5nZWQuZXZlbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1maWxlLXVwbG9hZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29udHJvbCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGhvc3RXcmFwcGVyQ2xhc3NlcyA9ICcnO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGZpbGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxPcHRpb25hbFR5cGU8RmlsZVVwbG9hZENoYW5nZWRFdmVudD4+KCk7XG5cbiAgICByZWFkb25seSBmaWxlTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICByZWFkb25seSB0aXRsZSA9IGlucHV0PFRleHRNb2RlbD4oKTtcbiAgICByZWFkb25seSBhbGxvd0ZpbGVzRHJvcCA9IGlucHV0KGZhbHNlKTtcbiAgICByZWFkb25seSBpc011bHRpcGxlID0gaW5wdXQoZmFsc2UpOyAvLyBUT0RPOiBpbXBsZW1lbnRcbiAgICByZWFkb25seSBhbGxvd2VkRXh0ZW5zaW9ucyA9IGlucHV0KCcqJyk7XG4gICAgcmVhZG9ubHkgbWluRmlsZVNpemUgPSBpbnB1dDxudW1iZXI+KCk7XG4gICAgcmVhZG9ubHkgbWF4RmlsZVNpemUgPSBpbnB1dDxudW1iZXI+KCk7XG4gICAgcmVhZG9ubHkgbGF5b3V0ID0gaW5wdXQ8SG9yaXpvbnRhbFZlcnRpY2FsVHlwZT4oJ3ZlcnRpY2FsJyk7XG4gICAgcmVhZG9ubHkgaXNPdmVyID0gc2lnbmFsKGZhbHNlKTtcbiAgICByZWFkb25seSBzaG93VmFsaWRhdGlvblN0YXR1cyA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICEhdGhpcy52YWxpZGF0aW9uU3RhdHVzKCkgJiYgKHRoaXMudmFsaWRhdGlvblN0YXR1cygpID09PSAnaW52YWxpZCcgfHwgdGhpcy5zaG93VmFsaWRTdGF0dXMoKSlcbiAgICApO1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb25TdGF0dXNDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd1ZhbGlkYXRpb25TdGF0dXMoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGBpcy0ke3RoaXMudmFsaWRhdGlvblN0YXR1cygpfWA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfSk7XG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvblN0YXR1c0JvcmRlckNsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zaG93VmFsaWRhdGlvblN0YXR1cygpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0aW9uU3RhdHVzKCkgPT09ICdpbnZhbGlkJyA/ICdib3JkZXItZGFuZ2VyJyA6ICdib3JkZXItc3VjY2Vzcyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfSk7XG4gICAgcmVhZG9ubHkgZXJyb3JzTGlzdCA9IGNvbXB1dGVkKCgpID0+IFsuLi50aGlzLnZhbGlkYXRpb25TdGF0dXNUZXh0cy5jb25jYXQodGhpcy5maWxlVXBsb2FkRXJyb3JzKCkpXSk7XG4gICAgcmVhZG9ubHkgY3VycmVudEZpbGVzID0gc2lnbmFsPE9wdGlvbmFsVHlwZTxGaWxlW10+Pih1bmRlZmluZWQpO1xuICAgIHJlYWRvbmx5IGxhYmVsU2l6ZUNsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmxheW91dCgpICE9PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIHJldHVybiAnZm9ybS1sYWJlbCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQ29sdW1uU2l6ZUhlbHBlci5nZXRDbGFzc2VzKFxuICAgICAgICAgICAgJ2NvbC1mb3JtLWxhYmVsJyxcbiAgICAgICAgICAgIENvbHVtblNpemVIZWxwZXIuZ2V0U2l6ZUNsYXNzZXModGhpcy5sYWJlbENvbFNpemUoKSwgMylcbiAgICAgICAgKTtcbiAgICB9KTtcbiAgICByZWFkb25seSBmaXJzdEZpbGVOYW1lID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuY3VycmVudEZpbGVzKCk/Lmxlbmd0aCB8fCAwKSA+IDAgPyB0aGlzLmN1cnJlbnRGaWxlcygpIVswXS5uYW1lIDogdGhpcy5maWxlTmFtZSgpKTtcblxuICAgIGdldCB0aXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RleHRTZXJ2aWNlLmdldFRleHQodGhpcy50aXRsZSgpLCB7IGlzTXVsdGlwbGU6IHRoaXMuaXNNdWx0aXBsZSgpIH0pO1xuICAgIH1cbiAgICBnZXQgZHJvcERlc2NyaXB0aW9uVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gISF0aGlzLmRlc2NyaXB0aW9uVGV4dFxuICAgICAgICAgICAgPyB0aGlzLmRlc2NyaXB0aW9uVGV4dFxuICAgICAgICAgICAgOiB0aGlzLl90ZXh0U2VydmljZS5nZXRUZXh0KFxuICAgICAgICAgICAgICAgIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmlzTW9iaWxlID8gdGhpcy5kZWZhdWx0TW9iaWxlRGVzYyA6IHRoaXMuZGVmYXVsdERlc2t0b3BEZXNjLCB7IGlzTXVsdGlwbGU6IHRoaXMuaXNNdWx0aXBsZSgpIH1cbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldCBzdXBwb3J0c0FkdmFuY2VkVXBsb2FkKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgcmV0dXJuICgoJ2RyYWdnYWJsZScgaW4gZGl2KSB8fCAoJ29uZHJhZ3N0YXJ0JyBpbiBkaXYgJiYgJ29uZHJvcCcgaW4gZGl2KSkgJiYgJ0Zvcm1EYXRhJyBpbiB3aW5kb3cgJiYgJ0ZpbGVSZWFkZXInIGluIHdpbmRvdztcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRNb2JpbGVEZXNjOiBUZXh0TW9kZWwgPSB7XG4gICAgICAgIHRleHQ6ICdVcERldnMuRm9ybUNvbnRyb2xzLkZpbGVVcGxvYWQuRHJvcHpvbmVNb2JpbGVEZXNjcmlwdGlvbicsXG4gICAgICAgIGlzVHJhbnNsYXRlZDogZmFsc2VcbiAgICB9O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdERlc2t0b3BEZXNjOiBUZXh0TW9kZWwgPSB7XG4gICAgICAgIHRleHQ6ICdVcERldnMuRm9ybUNvbnRyb2xzLkZpbGVVcGxvYWQuRHJvcHpvbmVEZXNrdG9wRGVzY3JpcHRpb24nLFxuICAgICAgICBpc1RyYW5zbGF0ZWQ6IGZhbHNlXG4gICAgfTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVVcGxvYWRFcnJvcnMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtU2VydmljZSA9IGluamVjdChQbGF0Zm9ybVNlcnZpY2UpO1xuXG4gICAgb25GaWxlQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb20oKGV2ZW50LnRhcmdldCBhcyBhbnkpLmZpbGVzIGFzIEZpbGVMaXN0KTtcblxuICAgICAgICBpZiAoISFmaWxlcykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50RmlsZXMuc2V0KFsuLi5maWxlc10pO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gZmlsZXMubWFwKGYgPT4gdGhpcy5nZXRGaWxlRXJyb3JzKGYpKS5yZWR1Y2UoKGFjYywgZSkgPT4gYWNjLmNvbmNhdChlKSwgW10pO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFcnJvcnMuc2V0KFsuLi5lcnJvcnNdKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzTXVsdGlwbGUoKSkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IGltcGxlbWVudFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gZmlsZXNbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gKGZpbGVSZWFkZXI6IGFueSkgPT4gdGhpcy5maWxlQ2hhbmdlZC5lbWl0KHsgZmlsZTogZmlsZSwgZGF0YVVybDogZmlsZVJlYWRlci50YXJnZXQucmVzdWx0IH0pO1xuXG4gICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmVGaWxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRGaWxlcy5zZXQoW10pO1xuICAgICAgICB0aGlzLmZpbGVDaGFuZ2VkLmVtaXQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBvbkRyYWcoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBvbkRyYWdTdGFydChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIG9uRHJhZ0VuZChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmlzT3Zlci5zZXQoZmFsc2UpO1xuICAgIH1cblxuICAgIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5pc092ZXIuc2V0KHRydWUpO1xuICAgIH1cblxuICAgIG9uRHJhZ0VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaXNPdmVyLnNldCh0cnVlKTtcbiAgICB9XG5cbiAgICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmlzT3Zlci5zZXQoZmFsc2UpO1xuICAgIH1cblxuICAgIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmlzT3Zlci5zZXQoZmFsc2UpO1xuXG4gICAgICAgIGNvbnN0IGRyb3BwZWRGaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2ZlciEuZmlsZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaWxlRXJyb3JzKGZpbGU6IEZpbGUpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IGAuJHtmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJ31gO1xuICAgICAgICBjb25zdCBmaWxlU2l6ZUluS0IgPSBNYXRoLnJvdW5kKGZpbGUuc2l6ZSAvIDEwMjQpO1xuICAgICAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMoKSAhPT0gJyonICYmICF0aGlzLmFsbG93ZWRFeHRlbnNpb25zKCkuaW5jbHVkZXMoZXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5fdGV4dFNlcnZpY2UuZ2V0VGV4dChcbiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAnVXBEZXZzLkZvcm1Db250cm9scy5GaWxlVXBsb2FkLkV4dGVuc2lvbk5vdEFsbG93ZWQnLCBpc1RyYW5zbGF0ZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNNdWx0aXBsZUV4dDogdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucygpLmluY2x1ZGVzKCcsJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkRXh0ZW5zaW9uczogdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucygpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy5taW5GaWxlU2l6ZSgpICYmIGZpbGVTaXplSW5LQiA8IHRoaXMubWluRmlsZVNpemUoKSEpIHtcbiAgICAgICAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMuX3RleHRTZXJ2aWNlLmdldFRleHQoXG4gICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ1VwRGV2cy5Gb3JtQ29udHJvbHMuRmlsZVVwbG9hZC5NaW5TaXplTm90TWV0JywgaXNUcmFuc2xhdGVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZVNpemU6IFRvb2xzLlRleHQuZm9ybWF0S2lsb2J5dGVzKGZpbGVTaXplSW5LQiksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5BbGxvd2VkU2l6ZTogVG9vbHMuVGV4dC5mb3JtYXRLaWxvYnl0ZXModGhpcy5taW5GaWxlU2l6ZSgpISlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISF0aGlzLm1heEZpbGVTaXplKCkgJiYgZmlsZVNpemVJbktCID4gdGhpcy5tYXhGaWxlU2l6ZSgpISkge1xuICAgICAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5fdGV4dFNlcnZpY2UuZ2V0VGV4dChcbiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAnVXBEZXZzLkZvcm1Db250cm9scy5GaWxlVXBsb2FkLk1heFNpemVFeGNlZWRlZCcsIGlzVHJhbnNsYXRlZDogZmFsc2UgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVTaXplOiBUb29scy5UZXh0LmZvcm1hdEtpbG9ieXRlcyhmaWxlU2l6ZUluS0IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4QWxsb3dlZFNpemU6IFRvb2xzLlRleHQuZm9ybWF0S2lsb2J5dGVzKHRoaXMubWF4RmlsZVNpemUoKSEpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9ycztcbiAgICB9XG59XG4iLCI8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIiBbYXR0ci5pZF09XCJuYW1lKClcIiBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiIHR5cGU9XCJmaWxlXCIgW2F0dHIubXVsdGlwbGVdPVwiaXNNdWx0aXBsZSgpID8gdHJ1ZSA6IHVuZGVmaW5lZFwiXG4gICAgW2FjY2VwdF09XCJhbGxvd2VkRXh0ZW5zaW9ucygpXCIgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiIC8+XG5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcHJlZml4OiAnVXBEZXZzLkZvcm1Db250cm9scy5GaWxlVXBsb2FkJ1wiPlxuICAgICAgICBAaWYgKCEhbGFiZWxUZXh0KSB7XG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImxhYmVsU2l6ZUNsYXNzZXMoKVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBbY2xhc3MucmVxdWlyZWRdPVwiaXNSZXF1aXJlZCgpXCI+e3sgbGFiZWxUZXh0IH19PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIEBpZiAoISFoaW50VGV4dCB8fCAhIXRoaXMuaGludFRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhpbnRUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChzdXBwb3J0c0FkdmFuY2VkVXBsb2FkICYmIGFsbG93RmlsZXNEcm9wKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYm9yZGVyIHJvdW5kZWQtMiBwLTIgdy0xMDAgaC0xMDBcIiBbbmdDbGFzc109XCJ2YWxpZGF0aW9uU3RhdHVzQm9yZGVyQ2xhc3MoKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmJnLW11dGVkLWx0XT1cIiFpc092ZXIoKVwiIFtjbGFzcy5iZy1wcmltYXJ5LWx0XT1cImlzT3ZlcigpXCIgKGRyYWcpPVwib25EcmFnKCRldmVudClcIiAoZHJhZ3N0YXJ0KT1cIm9uRHJhZ1N0YXJ0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChkcmFnZW5kKT1cIm9uRHJhZ0VuZCgkZXZlbnQpXCIgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiIChkcmFnZW50ZXIpPVwib25EcmFnRW50ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCIgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICBAaWYgKCEhdGl0bGVUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZCBhbGlnbi1zZWxmLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiIFtpbm5lckhUTUxdPVwidGl0bGVUZXh0XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIm5hbWUoKVwiIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgYWxpZ24tc2VsZi1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIiBbaW5uZXJIVE1MXT1cImRyb3BEZXNjcmlwdGlvblRleHRcIj48L2xhYmVsPlxuXG4gICAgICAgICAgICAgICAgQGlmICghbGFiZWxUZXh0ICYmICghIWhpbnRUZXh0IHx8ICEhdGhpcy5oaW50VGVtcGxhdGUoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhpbnRUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoIWxhYmVsVGV4dCAmJiAoISFoaW50VGV4dCB8fCAhIXRoaXMuaGludFRlbXBsYXRlKCkpKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0VHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBhbGlnbi1zZWxmLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhpbnRUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnB1dFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmICh2YWxpZGF0aW9uU3RhdHVzKCkgPT09ICdpbnZhbGlkJyAmJiBlcnJvcnNMaXN0KCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgQGZvciAoZGVzYyBvZiBlcnJvcnNMaXN0KCk7IHRyYWNrIGRlc2MpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPnt7IGRlc2MgfX08L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRUcGw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgY29sXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dCBjdXJzb3ItcG9pbnRlclwiIFtuZ0NsYXNzXT1cInZhbGlkYXRpb25TdGF0dXNCb3JkZXJDbGFzcygpXCIgW2Zvcl09XCJuYW1lKClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdCgnU2VsZWN0RmlsZScsIHsgaXNNdWx0aXBsZTogaXNNdWx0aXBsZSgpIH0pIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCB0ZXh0LXRydW5jYXRlXCIgW2NsYXNzLmJvcmRlci1lbmQtMF09XCIhIWZpcnN0RmlsZU5hbWUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmaXJzdEZpbGVOYW1lKCkgfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ2YWxpZGF0aW9uU3RhdHVzQ2xhc3MoKVwiIHBsYWNlaG9sZGVyPVwie3sgdCgnTm9GaWxlU2VsZWN0ZWQnLCB7IGlzTXVsdGlwbGU6IGlzTXVsdGlwbGUoKSB9KSB9fVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImlzRGlzYWJsZWQoKSB8fCB1bmRlZmluZWRcIiByZWFkb25seT5cblxuICAgICAgICAgICAgICAgIEBpZiAoISFmaXJzdEZpbGVOYW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHQgYmctdHJhbnNwYXJlbnRcIiBbbmdDbGFzc109XCJ2YWxpZGF0aW9uU3RhdHVzQm9yZGVyQ2xhc3MoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1idXR0b24gW3Nob3VsZElnbm9yZUJ0bkNsYXNzXT1cInRydWVcIiAoY2xpY2tlZCk9XCJyZW1vdmVGaWxlKClcIiBjdXN0b21DbGFzc2VzPVwibGluay1zZWNvbmRhcnkgY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cInRyYXNoXCIgW3RhYmxlckljb25TaXplXT1cIjE4XCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNoaW50VHBsPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1oZWxwIG1zLTJcIiBbdXBkUG9wb3Zlcl09XCJoaW50VGV4dFwiIFt1cGRQb3BvdmVyVGVtcGxhdGVdPVwiaGludFRlbXBsYXRlKClcIiBbdXBkUG9wb3ZlckFjdEFzVG9vbHRpcF09XCJoaW50QXNUb29sdGlwKClcIj5cbiAgICAgICAgP1xuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9maWxlLXVwbG9hZC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,4 @@
1
+ export * from './file-upload.component';
2
+ export * from './file-upload-changed.event';
3
+ export * from './upd-file-upload.module';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2ZpbGUtdXBsb2FkL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXVwbG9hZC1jaGFuZ2VkLmV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXBkLWZpbGUtdXBsb2FkLm1vZHVsZSc7XG4iXX0=