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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (813) hide show
  1. package/README.md +5 -4
  2. package/assets/styles/_bootstrap-components.scss +18 -1
  3. package/assets/styles/_seven-columns.scss +73 -0
  4. package/assets/styles/_updevs.scss +4 -0
  5. package/assets/styles/_variables.scss +1 -1
  6. package/assets/styles/utils/_colors.scss +1 -1
  7. package/badge/badge-config.model.d.ts +14 -0
  8. package/badge/badge.component.d.ts +24 -0
  9. package/badge/badge.config.d.ts +12 -0
  10. package/badge/public-api.d.ts +3 -0
  11. package/badge/upd-badge.module.d.ts +8 -0
  12. package/button/button.component.d.ts +61 -0
  13. package/button/upd-button.module.d.ts +10 -0
  14. package/calendar/calendar.component.d.ts +127 -0
  15. package/calendar/components/calendar-body/calendar-body.component.d.ts +263 -0
  16. package/calendar/components/calendar-header/calendar-header.component.d.ts +57 -0
  17. package/calendar/components/calendar-month-view/calendar-month-view.component.d.ts +151 -0
  18. package/calendar/components/calendar-multi-year-view/calendar-multi-year-view.component.d.ts +10 -0
  19. package/calendar/components/calendar-year-view/calendar-year-view.component.d.ts +9 -0
  20. package/calendar/models/calendar-cell.model.d.ts +16 -0
  21. package/calendar/models/calendar-user-event.model.d.ts +4 -0
  22. package/calendar/models/date-range.model.d.ts +26 -0
  23. package/calendar/models/public-api.d.ts +2 -0
  24. package/calendar/public-api.d.ts +5 -0
  25. package/calendar/services/calendar-range-strategy.service.d.ts +35 -0
  26. package/calendar/services/calendar-signals.service.d.ts +24 -0
  27. package/calendar/services/calendar.service.d.ts +15 -0
  28. package/calendar/services/public-api.d.ts +1 -0
  29. package/calendar/tools/events-options.d.ts +12 -0
  30. package/calendar/tools/keyboard-tools.d.ts +9 -0
  31. package/calendar/tools/passive-listeners.d.ts +16 -0
  32. package/calendar/types/calendar-cell-class-function.type.d.ts +3 -0
  33. package/calendar/types/calendar-cell-css-classes.type.d.ts +3 -0
  34. package/calendar/types/calendar-view.type.d.ts +1 -0
  35. package/calendar/types/modifier-key.type.d.ts +1 -0
  36. package/calendar/types/public-api.d.ts +1 -0
  37. package/calendar/upd-calendar.module.d.ts +18 -0
  38. package/card/card.component.d.ts +54 -0
  39. package/card/directives/card-actions.directive.d.ts +7 -0
  40. package/card/directives/card-footer.directive.d.ts +7 -0
  41. package/card/directives/card-header.directive.d.ts +7 -0
  42. package/card/directives/card-image.directive.d.ts +7 -0
  43. package/card/upd-card.module.d.ts +14 -0
  44. package/drag-and-drop/drag-and-drop.component.d.ts +26 -0
  45. package/drag-and-drop/models/drag-and-drop-column.config.d.ts +8 -0
  46. package/drag-and-drop/models/drag-and-drop-column.model.d.ts +10 -0
  47. package/drag-and-drop/models/drag-and-drop-item.d.ts +7 -0
  48. package/drag-and-drop/models/drag-and-drop-item.model.d.ts +13 -0
  49. package/drag-and-drop/models/drag-and-drop.config.d.ts +6 -0
  50. package/drag-and-drop/models/public-api.d.ts +4 -0
  51. package/drag-and-drop/public-api.d.ts +3 -0
  52. package/drag-and-drop/upd-drag-and-drop.module.d.ts +9 -0
  53. package/dropdown/dropdown.component.d.ts +76 -0
  54. package/dropdown/models/dropdown-action-clicked.model.d.ts +6 -0
  55. package/dropdown/{src/models/dropdown-item.ts → models/dropdown-item.d.ts} +7 -4
  56. package/dropdown/{src/models/dropdown-item.type.ts → models/dropdown-item.type.d.ts} +1 -1
  57. package/dropdown/models/public-api.d.ts +4 -0
  58. package/dropdown/models/toolbar.type.d.ts +1 -0
  59. package/dropdown/upd-dropdown.module.d.ts +12 -0
  60. package/esm2022/badge/badge-config.model.mjs +14 -0
  61. package/esm2022/badge/badge.component.mjs +50 -0
  62. package/esm2022/badge/badge.config.mjs +2 -0
  63. package/esm2022/badge/index.mjs +2 -0
  64. package/esm2022/badge/public-api.mjs +4 -0
  65. package/esm2022/badge/upd-badge.module.mjs +24 -0
  66. package/esm2022/badge/updevs-components-badge.mjs +5 -0
  67. package/esm2022/button/button.component.mjs +157 -0
  68. package/esm2022/button/index.mjs +2 -0
  69. package/esm2022/button/public-api.mjs +3 -0
  70. package/esm2022/button/upd-button.module.mjs +32 -0
  71. package/esm2022/button/updevs-components-button.mjs +5 -0
  72. package/esm2022/calendar/assets/i18n/en.json +16 -0
  73. package/esm2022/calendar/assets/i18n/pt.json +16 -0
  74. package/esm2022/calendar/calendar.component.mjs +247 -0
  75. package/esm2022/calendar/components/calendar-body/calendar-body.component.mjs +515 -0
  76. package/esm2022/calendar/components/calendar-header/calendar-header.component.mjs +144 -0
  77. package/esm2022/calendar/components/calendar-month-view/calendar-month-view.component.mjs +423 -0
  78. package/esm2022/calendar/components/calendar-multi-year-view/calendar-multi-year-view.component.mjs +18 -0
  79. package/esm2022/calendar/components/calendar-year-view/calendar-year-view.component.mjs +17 -0
  80. package/esm2022/calendar/index.mjs +2 -0
  81. package/esm2022/calendar/models/calendar-cell.model.mjs +18 -0
  82. package/esm2022/calendar/models/calendar-user-event.model.mjs +2 -0
  83. package/esm2022/calendar/models/date-range.model.mjs +18 -0
  84. package/esm2022/calendar/models/public-api.mjs +3 -0
  85. package/esm2022/calendar/public-api.mjs +6 -0
  86. package/esm2022/calendar/services/calendar-range-strategy.service.mjs +99 -0
  87. package/esm2022/calendar/services/calendar-signals.service.mjs +47 -0
  88. package/esm2022/calendar/services/calendar.service.mjs +40 -0
  89. package/esm2022/calendar/services/public-api.mjs +2 -0
  90. package/esm2022/calendar/tools/events-options.mjs +14 -0
  91. package/esm2022/calendar/tools/keyboard-tools.mjs +14 -0
  92. package/esm2022/calendar/tools/passive-listeners.mjs +29 -0
  93. package/esm2022/calendar/types/calendar-cell-class-function.type.mjs +2 -0
  94. package/esm2022/calendar/types/calendar-cell-css-classes.type.mjs +2 -0
  95. package/esm2022/calendar/types/calendar-view.type.mjs +2 -0
  96. package/esm2022/calendar/types/modifier-key.type.mjs +2 -0
  97. package/esm2022/calendar/types/public-api.mjs +2 -0
  98. package/esm2022/calendar/upd-calendar.module.mjs +70 -0
  99. package/esm2022/calendar/updevs-components-calendar.mjs +5 -0
  100. package/esm2022/card/card.component.mjs +136 -0
  101. package/esm2022/card/directives/card-actions.directive.mjs +16 -0
  102. package/esm2022/card/directives/card-footer.directive.mjs +16 -0
  103. package/esm2022/card/directives/card-header.directive.mjs +16 -0
  104. package/esm2022/card/directives/card-image.directive.mjs +16 -0
  105. package/esm2022/card/directives/public-api.mjs +5 -0
  106. package/esm2022/card/index.mjs +2 -0
  107. package/esm2022/card/public-api.mjs +4 -0
  108. package/esm2022/card/types/card-state.type.mjs +2 -0
  109. package/esm2022/card/types/card-style.type.mjs +2 -0
  110. package/esm2022/card/types/hover-effect.type.mjs +2 -0
  111. package/esm2022/card/types/ribbon-style.type.mjs +2 -0
  112. package/esm2022/card/types/status-position.type.mjs +2 -0
  113. package/esm2022/card/upd-card.module.mjs +50 -0
  114. package/esm2022/card/updevs-components-card.mjs +5 -0
  115. package/esm2022/drag-and-drop/drag-and-drop.component.mjs +134 -0
  116. package/esm2022/drag-and-drop/index.mjs +2 -0
  117. package/esm2022/drag-and-drop/models/drag-and-drop-column.config.mjs +2 -0
  118. package/esm2022/drag-and-drop/models/drag-and-drop-column.model.mjs +9 -0
  119. package/esm2022/drag-and-drop/models/drag-and-drop-item.mjs +2 -0
  120. package/esm2022/drag-and-drop/models/drag-and-drop-item.model.mjs +14 -0
  121. package/esm2022/drag-and-drop/models/drag-and-drop.config.mjs +2 -0
  122. package/esm2022/drag-and-drop/models/public-api.mjs +5 -0
  123. package/esm2022/drag-and-drop/public-api.mjs +4 -0
  124. package/esm2022/drag-and-drop/upd-drag-and-drop.module.mjs +28 -0
  125. package/esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs +5 -0
  126. package/esm2022/dropdown/dropdown.component.mjs +182 -0
  127. package/esm2022/dropdown/index.mjs +2 -0
  128. package/esm2022/dropdown/models/dropdown-action-clicked.model.mjs +2 -0
  129. package/esm2022/dropdown/models/dropdown-item.mjs +2 -0
  130. package/esm2022/dropdown/models/dropdown-item.type.mjs +2 -0
  131. package/esm2022/dropdown/models/public-api.mjs +5 -0
  132. package/esm2022/dropdown/models/toolbar.type.mjs +2 -0
  133. package/esm2022/dropdown/public-api.mjs +4 -0
  134. package/esm2022/dropdown/upd-dropdown.module.mjs +40 -0
  135. package/esm2022/dropdown/updevs-components-dropdown.mjs +5 -0
  136. package/esm2022/form/assets/i18n/en.json +17 -0
  137. package/esm2022/form/assets/i18n/pt.json +17 -0
  138. package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +127 -0
  139. package/esm2022/form/form.component.mjs +122 -0
  140. package/esm2022/form/index.mjs +2 -0
  141. package/esm2022/form/models/checkbox-field.model.mjs +2 -0
  142. package/esm2022/form/models/checkbox-group-field.model.mjs +2 -0
  143. package/esm2022/form/models/dynamic-field.model.mjs +2 -0
  144. package/esm2022/form/models/enums/dynamic-field.type.mjs +14 -0
  145. package/esm2022/form/models/enums/public-api.mjs +2 -0
  146. package/esm2022/form/models/file-upload-field.model.mjs +2 -0
  147. package/esm2022/form/models/form-config.mjs +2 -0
  148. package/esm2022/form/models/form-row.model.mjs +2 -0
  149. package/esm2022/form/models/input-field.model.mjs +2 -0
  150. package/esm2022/form/models/public-api.mjs +15 -0
  151. package/esm2022/form/models/radio-field.model.mjs +2 -0
  152. package/esm2022/form/models/radio-group-field.model.mjs +2 -0
  153. package/esm2022/form/models/select-field.model.mjs +2 -0
  154. package/esm2022/form/models/single-select-field.model.mjs +2 -0
  155. package/esm2022/form/models/textarea-field.model.mjs +2 -0
  156. package/esm2022/form/models/validator-config.mjs +2 -0
  157. package/esm2022/form/public-api.mjs +4 -0
  158. package/esm2022/form/tools/errors-helper.mjs +54 -0
  159. package/esm2022/form/upd-form.module.mjs +84 -0
  160. package/esm2022/form/updevs-components-form.mjs +5 -0
  161. package/esm2022/form-controls/abstractions/base-control.mjs +46 -0
  162. package/esm2022/form-controls/abstractions/index.mjs +2 -0
  163. package/esm2022/form-controls/abstractions/public-api.mjs +2 -0
  164. package/esm2022/form-controls/abstractions/updevs-components-form-controls-abstractions.mjs +5 -0
  165. package/esm2022/form-controls/checkbox/checkbox.component.mjs +51 -0
  166. package/esm2022/form-controls/checkbox/index.mjs +2 -0
  167. package/esm2022/form-controls/checkbox/public-api.mjs +3 -0
  168. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +32 -0
  169. package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +5 -0
  170. package/esm2022/form-controls/date-picker/date-picker.component.mjs +147 -0
  171. package/esm2022/form-controls/date-picker/index.mjs +2 -0
  172. package/esm2022/form-controls/date-picker/public-api.mjs +3 -0
  173. package/esm2022/form-controls/date-picker/upd-date-picker.module.mjs +40 -0
  174. package/esm2022/form-controls/date-picker/updevs-components-form-controls-date-picker.mjs +5 -0
  175. package/esm2022/form-controls/file-upload/assets/i18n/en.json +15 -0
  176. package/esm2022/form-controls/file-upload/assets/i18n/pt.json +15 -0
  177. package/esm2022/form-controls/file-upload/file-upload-changed.event.mjs +2 -0
  178. package/esm2022/form-controls/file-upload/file-upload.component.mjs +169 -0
  179. package/esm2022/form-controls/file-upload/index.mjs +2 -0
  180. package/esm2022/form-controls/file-upload/public-api.mjs +4 -0
  181. package/esm2022/form-controls/file-upload/upd-file-upload.module.mjs +48 -0
  182. package/esm2022/form-controls/file-upload/updevs-components-form-controls-file-upload.mjs +5 -0
  183. package/esm2022/form-controls/input/directives/input-append.directive.mjs +16 -0
  184. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +16 -0
  185. package/esm2022/form-controls/input/directives/public-api.mjs +3 -0
  186. package/esm2022/form-controls/input/index.mjs +2 -0
  187. package/esm2022/form-controls/input/input.component.mjs +185 -0
  188. package/esm2022/form-controls/input/public-api.mjs +5 -0
  189. package/esm2022/form-controls/input/types/input.type.mjs +2 -0
  190. package/esm2022/form-controls/input/types/loader-position.type.mjs +2 -0
  191. package/esm2022/form-controls/input/types/public-api.mjs +3 -0
  192. package/esm2022/form-controls/input/upd-input.module.mjs +46 -0
  193. package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +5 -0
  194. package/esm2022/form-controls/radio/index.mjs +2 -0
  195. package/esm2022/form-controls/radio/public-api.mjs +3 -0
  196. package/esm2022/form-controls/radio/radio.component.mjs +51 -0
  197. package/esm2022/form-controls/radio/upd-radio.module.mjs +32 -0
  198. package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +5 -0
  199. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +76 -0
  200. package/esm2022/form-controls/select/components/single/select.component.mjs +72 -0
  201. package/esm2022/form-controls/select/index.mjs +2 -0
  202. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +215 -0
  203. package/esm2022/form-controls/select/models/defaults.mjs +8 -0
  204. package/esm2022/form-controls/select/models/public-api.mjs +3 -0
  205. package/esm2022/form-controls/select/models/select-item.mjs +2 -0
  206. package/esm2022/form-controls/select/public-api.mjs +5 -0
  207. package/esm2022/form-controls/select/upd-select.module.mjs +57 -0
  208. package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +5 -0
  209. package/esm2022/form-controls/textarea/index.mjs +2 -0
  210. package/esm2022/form-controls/textarea/public-api.mjs +3 -0
  211. package/esm2022/form-controls/textarea/textarea.component.mjs +44 -0
  212. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +24 -0
  213. package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +5 -0
  214. package/esm2022/form-controls/time-picker/index.mjs +2 -0
  215. package/esm2022/form-controls/time-picker/public-api.mjs +4 -0
  216. package/esm2022/form-controls/time-picker/time-picker.component.mjs +130 -0
  217. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +124 -0
  218. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +61 -0
  219. package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +5 -0
  220. package/esm2022/index.mjs +2 -0
  221. package/esm2022/layout/abstractions/base-page.component.mjs +23 -0
  222. package/esm2022/layout/abstractions/base.layout.mjs +31 -0
  223. package/esm2022/layout/abstractions/public-api.mjs +2 -0
  224. package/esm2022/layout/assets/i18n/en.json +27 -0
  225. package/esm2022/layout/assets/i18n/pt.json +27 -0
  226. package/esm2022/layout/index.mjs +2 -0
  227. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +22 -0
  228. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +50 -0
  229. package/esm2022/layout/layouts/public-api.mjs +5 -0
  230. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +17 -0
  231. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +83 -0
  232. package/esm2022/layout/models/login-page-config.model.mjs +20 -0
  233. package/esm2022/layout/models/login-page.config.mjs +2 -0
  234. package/esm2022/layout/models/public-api.mjs +3 -0
  235. package/esm2022/layout/models/security-layout-config.model.mjs +10 -0
  236. package/esm2022/layout/models/security-layout.config.mjs +2 -0
  237. package/esm2022/layout/models/upd-layout-config.model.mjs +24 -0
  238. package/esm2022/layout/models/upd-layout.config.mjs +2 -0
  239. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +28 -0
  240. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +73 -0
  241. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +11 -0
  242. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +110 -0
  243. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +11 -0
  244. package/esm2022/layout/pages/auth-flow/public-api.mjs +6 -0
  245. package/esm2022/layout/pages/public-api.mjs +2 -0
  246. package/esm2022/layout/partials/footer/footer-copyright.directive.mjs +13 -0
  247. package/esm2022/layout/partials/footer/footer.component.mjs +55 -0
  248. package/esm2022/layout/partials/footer/footer.module.mjs +28 -0
  249. package/esm2022/layout/partials/footer/public-api.mjs +4 -0
  250. package/esm2022/layout/partials/header/header-style.type.mjs +2 -0
  251. package/esm2022/layout/partials/header/header.component.mjs +129 -0
  252. package/esm2022/layout/partials/header/header.module.mjs +40 -0
  253. package/esm2022/layout/partials/header/public-api.mjs +4 -0
  254. package/esm2022/layout/partials/page-header/page-header.component.mjs +15 -0
  255. package/esm2022/layout/partials/page-header/public-api.mjs +2 -0
  256. package/esm2022/layout/partials/public-api.mjs +5 -0
  257. package/esm2022/layout/partials/sidebar/public-api.mjs +2 -0
  258. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +114 -0
  259. package/esm2022/layout/public-api.mjs +8 -0
  260. package/esm2022/layout/services/public-api.mjs +2 -0
  261. package/esm2022/layout/services/upd-layout-config.service.mjs +21 -0
  262. package/esm2022/layout/tools/layout.constants.mjs +15 -0
  263. package/esm2022/layout/upd-layout.module.mjs +47 -0
  264. package/esm2022/layout/updevs-components-layout.mjs +5 -0
  265. package/esm2022/lib/index.mjs +2 -0
  266. package/esm2022/lib/models/public-api.mjs +2 -0
  267. package/esm2022/lib/models/row-column-size.mjs +2 -0
  268. package/esm2022/lib/public-api.mjs +5 -0
  269. package/esm2022/lib/tools/column-size.helper.mjs +12 -0
  270. package/esm2022/lib/tools/public-api.mjs +2 -0
  271. package/esm2022/lib/types/component-size.type.mjs +2 -0
  272. package/esm2022/lib/types/horizontal-vertical.type.mjs +2 -0
  273. package/esm2022/lib/types/public-api.mjs +4 -0
  274. package/esm2022/lib/types/validation-status.type.mjs +2 -0
  275. package/esm2022/lib/upd-components.module.mjs +14 -0
  276. package/esm2022/link/index.mjs +2 -0
  277. package/esm2022/link/link.component.mjs +51 -0
  278. package/esm2022/link/public-api.mjs +4 -0
  279. package/esm2022/link/target.type.mjs +2 -0
  280. package/esm2022/link/upd-link.module.mjs +24 -0
  281. package/esm2022/link/updevs-components-link.mjs +5 -0
  282. package/esm2022/list/assets/i18n/en.json +9 -0
  283. package/esm2022/list/assets/i18n/pt.json +9 -0
  284. package/esm2022/list/index.mjs +2 -0
  285. package/esm2022/list/list.component.mjs +113 -0
  286. package/esm2022/list/models/badge-position.type.mjs +2 -0
  287. package/esm2022/list/models/list-item.mjs +2 -0
  288. package/esm2022/list/models/list-item.model.mjs +15 -0
  289. package/esm2022/list/models/public-api.mjs +3 -0
  290. package/esm2022/list/public-api.mjs +4 -0
  291. package/esm2022/list/upd-list.module.mjs +44 -0
  292. package/esm2022/list/updevs-components-list.mjs +5 -0
  293. package/esm2022/modal/assets/i18n/en.json +17 -0
  294. package/esm2022/modal/assets/i18n/pt.json +17 -0
  295. package/esm2022/modal/components/modal-container/modal-container.component.mjs +216 -0
  296. package/esm2022/modal/index.mjs +2 -0
  297. package/esm2022/modal/models/base.modal.mjs +14 -0
  298. package/esm2022/modal/models/modal-config.model.mjs +20 -0
  299. package/esm2022/modal/models/modal-ref.mjs +2 -0
  300. package/esm2022/modal/models/modal.config.mjs +2 -0
  301. package/esm2022/modal/models/public-api.mjs +4 -0
  302. package/esm2022/modal/public-api.mjs +4 -0
  303. package/esm2022/modal/services/modal-alert.service.mjs +99 -0
  304. package/esm2022/modal/services/modal.service.mjs +30 -0
  305. package/esm2022/modal/services/public-api.mjs +3 -0
  306. package/esm2022/modal/types/modal-footer-style.type.mjs +2 -0
  307. package/esm2022/modal/types/modal-size.type.mjs +2 -0
  308. package/esm2022/modal/upd-modal.module.mjs +90 -0
  309. package/esm2022/modal/updevs-components-modal.mjs +5 -0
  310. package/esm2022/paginator/assets/i18n/en.json +15 -0
  311. package/esm2022/paginator/assets/i18n/pt.json +15 -0
  312. package/esm2022/paginator/index.mjs +2 -0
  313. package/esm2022/paginator/paginator.component.mjs +66 -0
  314. package/esm2022/paginator/public-api.mjs +3 -0
  315. package/esm2022/paginator/upd-paginator.module.mjs +47 -0
  316. package/esm2022/paginator/updevs-components-paginator.mjs +5 -0
  317. package/esm2022/popover/index.mjs +2 -0
  318. package/esm2022/popover/popover.component.mjs +65 -0
  319. package/esm2022/popover/popover.directive.mjs +129 -0
  320. package/esm2022/popover/public-api.mjs +4 -0
  321. package/esm2022/popover/upd-popover.module.mjs +29 -0
  322. package/esm2022/popover/updevs-components-popover.mjs +5 -0
  323. package/esm2022/public-api.mjs +2 -0
  324. package/esm2022/table/abstractions/base-column.model.mjs +52 -0
  325. package/esm2022/table/abstractions/base.column.mjs +98 -0
  326. package/esm2022/table/abstractions/filters-operands.service.mjs +3 -0
  327. package/esm2022/table/abstractions/public-api.mjs +3 -0
  328. package/esm2022/table/assets/i18n/en.json +74 -0
  329. package/esm2022/table/assets/i18n/pt.json +74 -0
  330. package/esm2022/table/components/columns/boolean-column/boolean-column.component.mjs +26 -0
  331. package/esm2022/table/components/columns/date-time-column/date-time-column.component.mjs +13 -0
  332. package/esm2022/table/components/columns/number-column/number-column.component.mjs +13 -0
  333. package/esm2022/table/components/columns/text-column/text-column.component.mjs +31 -0
  334. package/esm2022/table/components/columns-manager/columns-manager.component.mjs +36 -0
  335. package/esm2022/table/components/filter-row/filter-row.component.mjs +114 -0
  336. package/esm2022/table/components/save-search/save-search.component.mjs +72 -0
  337. package/esm2022/table/components/search-section/search-section.component.mjs +93 -0
  338. package/esm2022/table/directives/public-api.mjs +2 -0
  339. package/esm2022/table/directives/table-column.directive.mjs +51 -0
  340. package/esm2022/table/index.mjs +2 -0
  341. package/esm2022/table/models/columns/boolean-column.model.mjs +22 -0
  342. package/esm2022/table/models/columns/date-time-column.model.mjs +16 -0
  343. package/esm2022/table/models/columns/guid-column.model.mjs +13 -0
  344. package/esm2022/table/models/columns/image-column.model.mjs +11 -0
  345. package/esm2022/table/models/columns/number-column.model.mjs +17 -0
  346. package/esm2022/table/models/columns/public-api.mjs +7 -0
  347. package/esm2022/table/models/columns/text-column.model.mjs +11 -0
  348. package/esm2022/table/models/enums/column-type.enum.mjs +15 -0
  349. package/esm2022/table/models/enums/public-api.mjs +2 -0
  350. package/esm2022/table/models/filter-item.model.mjs +2 -0
  351. package/esm2022/table/models/filter-operand.config.mjs +2 -0
  352. package/esm2022/table/models/operands-lists/boolean-filter-operands-list.model.mjs +25 -0
  353. package/esm2022/table/models/operands-lists/date-filter-operands-list.model.mjs +25 -0
  354. package/esm2022/table/models/operands-lists/date-or-number-operands-list.config.mjs +31 -0
  355. package/esm2022/table/models/operands-lists/filter-operands-list.config.mjs +31 -0
  356. package/esm2022/table/models/operands-lists/guid-filter-operands-list.model.mjs +16 -0
  357. package/esm2022/table/models/operands-lists/number-filter-operands-list.model.mjs +25 -0
  358. package/esm2022/table/models/operands-lists/string-filter-operands-list.model.mjs +45 -0
  359. package/esm2022/table/models/public-api.mjs +5 -0
  360. package/esm2022/table/models/saved-view.model.mjs +2 -0
  361. package/esm2022/table/models/table-config.model.mjs +22 -0
  362. package/esm2022/table/models/table.config.mjs +2 -0
  363. package/esm2022/table/models/upd-table-config.model.mjs +9 -0
  364. package/esm2022/table/models/upd-table.config.mjs +2 -0
  365. package/esm2022/table/public-api.mjs +6 -0
  366. package/esm2022/table/services/default-filters-operands.service.mjs +60 -0
  367. package/esm2022/table/services/storages/saved-views.storage.mjs +56 -0
  368. package/esm2022/table/services/stores/filters-operands.store.mjs +19 -0
  369. package/esm2022/table/services/upd-table-config.service.mjs +18 -0
  370. package/esm2022/table/table.component.mjs +386 -0
  371. package/esm2022/table/tools/filters.tools.mjs +48 -0
  372. package/esm2022/table/tools/table.constants.mjs +15 -0
  373. package/esm2022/table/upd-table.module.mjs +150 -0
  374. package/esm2022/table/updevs-components-table.mjs +5 -0
  375. package/esm2022/updevs-components.mjs +5 -0
  376. package/fesm2022/updevs-components-badge.mjs +91 -0
  377. package/fesm2022/updevs-components-badge.mjs.map +1 -0
  378. package/fesm2022/updevs-components-button.mjs +193 -0
  379. package/fesm2022/updevs-components-button.mjs.map +1 -0
  380. package/fesm2022/updevs-components-calendar.mjs +1712 -0
  381. package/fesm2022/updevs-components-calendar.mjs.map +1 -0
  382. package/fesm2022/updevs-components-card.mjs +238 -0
  383. package/fesm2022/updevs-components-card.mjs.map +1 -0
  384. package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
  385. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
  386. package/fesm2022/updevs-components-dropdown.mjs +226 -0
  387. package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
  388. package/fesm2022/updevs-components-form-controls-abstractions.mjs +53 -0
  389. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
  390. package/fesm2022/updevs-components-form-controls-checkbox.mjs +87 -0
  391. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
  392. package/fesm2022/updevs-components-form-controls-date-picker.mjs +190 -0
  393. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
  394. package/fesm2022/updevs-components-form-controls-file-upload.mjs +264 -0
  395. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  396. package/fesm2022/updevs-components-form-controls-input.mjs +259 -0
  397. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
  398. package/fesm2022/updevs-components-form-controls-radio.mjs +87 -0
  399. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
  400. package/fesm2022/updevs-components-form-controls-select.mjs +417 -0
  401. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
  402. package/fesm2022/updevs-components-form-controls-textarea.mjs +72 -0
  403. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
  404. package/fesm2022/updevs-components-form-controls-time-picker.mjs +345 -0
  405. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
  406. package/fesm2022/updevs-components-form.mjs +436 -0
  407. package/fesm2022/updevs-components-form.mjs.map +1 -0
  408. package/fesm2022/updevs-components-layout.mjs +940 -0
  409. package/fesm2022/updevs-components-layout.mjs.map +1 -0
  410. package/fesm2022/updevs-components-link.mjs +79 -0
  411. package/fesm2022/updevs-components-link.mjs.map +1 -0
  412. package/fesm2022/updevs-components-list.mjs +206 -0
  413. package/fesm2022/updevs-components-list.mjs.map +1 -0
  414. package/fesm2022/updevs-components-modal.mjs +504 -0
  415. package/fesm2022/updevs-components-modal.mjs.map +1 -0
  416. package/fesm2022/updevs-components-paginator.mjs +160 -0
  417. package/fesm2022/updevs-components-paginator.mjs.map +1 -0
  418. package/fesm2022/updevs-components-popover.mjs +223 -0
  419. package/fesm2022/updevs-components-popover.mjs.map +1 -0
  420. package/fesm2022/updevs-components-table.mjs +1714 -0
  421. package/fesm2022/updevs-components-table.mjs.map +1 -0
  422. package/fesm2022/updevs-components.mjs +33 -0
  423. package/fesm2022/updevs-components.mjs.map +1 -0
  424. package/form/components/dynamic-field/dynamic-field.component.d.ts +55 -0
  425. package/form/form.component.d.ts +60 -0
  426. package/form/models/checkbox-field.model.d.ts +4 -0
  427. package/form/models/checkbox-group-field.model.d.ts +6 -0
  428. package/form/models/dynamic-field.model.d.ts +28 -0
  429. package/form/models/enums/dynamic-field.type.d.ts +12 -0
  430. package/form/models/enums/public-api.d.ts +1 -0
  431. package/form/models/file-upload-field.model.d.ts +16 -0
  432. package/form/models/form-config.d.ts +2 -0
  433. package/form/models/form-row.model.d.ts +10 -0
  434. package/form/models/input-field.model.d.ts +9 -0
  435. package/form/models/public-api.d.ts +14 -0
  436. package/form/models/radio-field.model.d.ts +4 -0
  437. package/form/models/radio-group-field.model.d.ts +6 -0
  438. package/form/models/select-field.model.d.ts +28 -0
  439. package/form/models/single-select-field.model.d.ts +4 -0
  440. package/form/models/textarea-field.model.d.ts +10 -0
  441. package/form/models/validator-config.d.ts +5 -0
  442. package/form/public-api.d.ts +3 -0
  443. package/form/tools/errors-helper.d.ts +11 -0
  444. package/form/upd-form.module.d.ts +22 -0
  445. package/form-controls/abstractions/base-control.d.ts +29 -0
  446. package/form-controls/abstractions/index.d.ts +2 -0
  447. package/form-controls/abstractions/public-api.d.ts +2 -0
  448. package/form-controls/checkbox/checkbox.component.d.ts +19 -0
  449. package/form-controls/checkbox/{src/public-api.ts → public-api.d.ts} +0 -1
  450. package/form-controls/checkbox/upd-checkbox.module.d.ts +10 -0
  451. package/form-controls/date-picker/date-picker.component.d.ts +87 -0
  452. package/form-controls/date-picker/public-api.d.ts +2 -0
  453. package/form-controls/date-picker/upd-date-picker.module.d.ts +12 -0
  454. package/form-controls/file-upload/file-upload-changed.event.d.ts +4 -0
  455. package/form-controls/file-upload/file-upload.component.d.ts +46 -0
  456. package/form-controls/file-upload/public-api.d.ts +3 -0
  457. package/form-controls/file-upload/upd-file-upload.module.d.ts +14 -0
  458. package/form-controls/input/directives/input-append.directive.d.ts +7 -0
  459. package/form-controls/input/directives/input-prepend.directive.d.ts +7 -0
  460. package/form-controls/input/input.component.d.ts +64 -0
  461. package/form-controls/input/upd-input.module.d.ts +13 -0
  462. package/form-controls/radio/radio.component.d.ts +17 -0
  463. package/form-controls/radio/upd-radio.module.d.ts +10 -0
  464. package/form-controls/select/components/multiple/select-multiple.component.d.ts +25 -0
  465. package/form-controls/select/components/single/select.component.d.ts +26 -0
  466. package/form-controls/select/models/abstractions/base-select.component.d.ts +77 -0
  467. package/form-controls/select/models/defaults.d.ts +8 -0
  468. package/form-controls/select/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  469. package/form-controls/select/{src/models/select-item.ts → models/select-item.d.ts} +0 -1
  470. package/form-controls/select/upd-select.module.d.ts +16 -0
  471. package/form-controls/textarea/textarea.component.d.ts +19 -0
  472. package/form-controls/textarea/upd-textarea.module.d.ts +8 -0
  473. package/form-controls/time-picker/time-picker.component.d.ts +78 -0
  474. package/form-controls/time-picker/time-selector/time-selector.component.d.ts +69 -0
  475. package/form-controls/time-picker/upd-time-picker.module.d.ts +17 -0
  476. package/index.d.ts +2 -0
  477. package/layout/abstractions/base-page.component.d.ts +12 -0
  478. package/layout/abstractions/base.layout.d.ts +15 -0
  479. package/layout/index.d.ts +1 -0
  480. package/layout/layouts/blank-layout/blank-layout.component.d.ts +9 -0
  481. package/layout/layouts/blank-layout/blank-layout.module.d.ts +15 -0
  482. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +6 -0
  483. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +22 -0
  484. package/layout/models/login-page-config.model.d.ts +46 -0
  485. package/layout/models/login-page.config.d.ts +44 -0
  486. package/layout/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  487. package/layout/models/security-layout-config.model.d.ts +12 -0
  488. package/layout/models/security-layout.config.d.ts +10 -0
  489. package/layout/models/upd-layout-config.model.d.ts +48 -0
  490. package/layout/{src/models/upd-layout.config.ts → models/upd-layout.config.d.ts} +9 -0
  491. package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +12 -0
  492. package/layout/pages/auth-flow/auth-flow.module.d.ts +20 -0
  493. package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +5 -0
  494. package/layout/pages/auth-flow/login/login.component.d.ts +26 -0
  495. package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +5 -0
  496. package/layout/partials/footer/footer-copyright.directive.d.ts +5 -0
  497. package/layout/partials/footer/footer.component.d.ts +34 -0
  498. package/layout/partials/footer/footer.module.d.ts +9 -0
  499. package/layout/{src/partials/footer/public-api.ts → partials/footer/public-api.d.ts} +1 -0
  500. package/layout/partials/header/header.component.d.ts +48 -0
  501. package/layout/partials/header/header.module.d.ts +12 -0
  502. package/layout/{src/partials/header/public-api.ts → partials/header/public-api.d.ts} +1 -0
  503. package/layout/partials/page-header/page-header.component.d.ts +7 -0
  504. package/layout/partials/sidebar/sidebar.component.d.ts +24 -0
  505. package/layout/services/upd-layout-config.service.d.ts +15 -0
  506. package/layout/{src/tools/layout.constants.ts → tools/layout.constants.d.ts} +3 -6
  507. package/layout/upd-layout.module.d.ts +19 -0
  508. package/lib/index.d.ts +2 -0
  509. package/lib/models/public-api.d.ts +2 -0
  510. package/lib/models/row-column-size.d.ts +6 -0
  511. package/lib/public-api.d.ts +5 -0
  512. package/lib/tools/column-size.helper.d.ts +6 -0
  513. package/lib/tools/public-api.d.ts +2 -0
  514. package/{src/lib/types/component-size.type.ts → lib/types/component-size.type.d.ts} +1 -0
  515. package/lib/types/horizontal-vertical.type.d.ts +2 -0
  516. package/lib/types/public-api.d.ts +4 -0
  517. package/lib/types/validation-status.type.d.ts +2 -0
  518. package/lib/upd-components.module.d.ts +7 -0
  519. package/link/index.d.ts +1 -0
  520. package/link/link.component.d.ts +22 -0
  521. package/link/upd-link.module.d.ts +8 -0
  522. package/list/index.d.ts +1 -0
  523. package/list/list.component.d.ts +46 -0
  524. package/list/{src/models/list-item.ts → models/list-item.d.ts} +3 -4
  525. package/list/models/list-item.model.d.ts +25 -0
  526. package/list/upd-list.module.d.ts +13 -0
  527. package/modal/components/modal-container/modal-container.component.d.ts +74 -0
  528. package/modal/index.d.ts +1 -0
  529. package/modal/models/base.modal.d.ts +8 -0
  530. package/modal/models/modal-config.model.d.ts +32 -0
  531. package/modal/models/modal-ref.d.ts +6 -0
  532. package/modal/models/modal.config.d.ts +30 -0
  533. package/modal/models/public-api.d.ts +3 -0
  534. package/modal/public-api.d.ts +3 -0
  535. package/modal/services/modal-alert.service.d.ts +22 -0
  536. package/modal/services/modal.service.d.ts +12 -0
  537. package/modal/services/public-api.d.ts +2 -0
  538. package/modal/types/modal-footer-style.type.d.ts +1 -0
  539. package/modal/types/modal-size.type.d.ts +1 -0
  540. package/modal/upd-modal.module.d.ts +18 -0
  541. package/package.json +169 -21
  542. package/paginator/index.d.ts +1 -0
  543. package/paginator/paginator.component.d.ts +42 -0
  544. package/paginator/public-api.d.ts +2 -0
  545. package/paginator/upd-paginator.module.d.ts +14 -0
  546. package/popover/index.d.ts +1 -0
  547. package/popover/popover.component.d.ts +22 -0
  548. package/popover/popover.directive.d.ts +33 -0
  549. package/popover/upd-popover.module.d.ts +9 -0
  550. package/public-api.d.ts +2 -0
  551. package/table/abstractions/base-column.model.d.ts +31 -0
  552. package/table/abstractions/base.column.d.ts +22 -0
  553. package/table/abstractions/filters-operands.service.d.ts +8 -0
  554. package/table/abstractions/public-api.d.ts +2 -0
  555. package/table/components/columns/boolean-column/boolean-column.component.d.ts +9 -0
  556. package/table/components/columns/date-time-column/date-time-column.component.d.ts +7 -0
  557. package/table/components/columns/number-column/number-column.component.d.ts +7 -0
  558. package/table/components/columns/text-column/text-column.component.d.ts +9 -0
  559. package/table/components/columns-manager/columns-manager.component.d.ts +15 -0
  560. package/table/components/filter-row/filter-row.component.d.ts +40 -0
  561. package/table/components/save-search/save-search.component.d.ts +17 -0
  562. package/table/components/search-section/search-section.component.d.ts +36 -0
  563. package/table/directives/public-api.d.ts +1 -0
  564. package/table/directives/table-column.directive.d.ts +14 -0
  565. package/table/index.d.ts +1 -0
  566. package/table/models/columns/boolean-column.model.d.ts +15 -0
  567. package/table/models/columns/date-time-column.model.d.ts +8 -0
  568. package/table/models/columns/guid-column.model.d.ts +4 -0
  569. package/table/models/columns/image-column.model.d.ts +6 -0
  570. package/table/models/columns/number-column.model.d.ts +8 -0
  571. package/table/models/columns/public-api.d.ts +6 -0
  572. package/table/models/columns/text-column.model.d.ts +6 -0
  573. package/table/models/enums/column-type.enum.d.ts +13 -0
  574. package/table/models/enums/public-api.d.ts +1 -0
  575. package/table/models/filter-item.model.d.ts +6 -0
  576. package/table/models/filter-operand.config.d.ts +9 -0
  577. package/table/models/operands-lists/boolean-filter-operands-list.model.d.ts +6 -0
  578. package/table/models/operands-lists/date-filter-operands-list.model.d.ts +6 -0
  579. package/table/models/operands-lists/date-or-number-operands-list.config.d.ts +5 -0
  580. package/table/models/operands-lists/filter-operands-list.config.d.ts +5 -0
  581. package/table/models/operands-lists/guid-filter-operands-list.model.d.ts +6 -0
  582. package/table/models/operands-lists/number-filter-operands-list.model.d.ts +6 -0
  583. package/table/models/operands-lists/string-filter-operands-list.model.d.ts +6 -0
  584. package/table/models/public-api.d.ts +4 -0
  585. package/table/models/saved-view.model.d.ts +11 -0
  586. package/table/models/table-config.model.d.ts +26 -0
  587. package/table/models/table.config.d.ts +24 -0
  588. package/table/models/upd-table-config.model.d.ts +6 -0
  589. package/table/models/upd-table.config.d.ts +6 -0
  590. package/table/public-api.d.ts +5 -0
  591. package/table/services/default-filters-operands.service.d.ts +17 -0
  592. package/table/services/storages/saved-views.storage.d.ts +19 -0
  593. package/table/services/stores/filters-operands.store.d.ts +11 -0
  594. package/table/services/upd-table-config.service.d.ts +12 -0
  595. package/table/table.component.d.ts +79 -0
  596. package/table/tools/filters.tools.d.ts +9 -0
  597. package/table/tools/table.constants.d.ts +15 -0
  598. package/table/upd-table.module.d.ts +40 -0
  599. package/CHANGELOG.md +0 -8
  600. package/button/ng-package.json +0 -7
  601. package/button/src/button.component.html +0 -8
  602. package/button/src/button.component.scss +0 -5
  603. package/button/src/button.component.spec.ts +0 -23
  604. package/button/src/button.component.ts +0 -154
  605. package/button/src/upd-button.module.ts +0 -17
  606. package/card/ng-package.json +0 -7
  607. package/card/src/card.component.html +0 -105
  608. package/card/src/card.component.scss +0 -47
  609. package/card/src/card.component.spec.ts +0 -23
  610. package/card/src/card.component.ts +0 -112
  611. package/card/src/directives/card-actions.directive.spec.ts +0 -8
  612. package/card/src/directives/card-actions.directive.ts +0 -11
  613. package/card/src/directives/card-footer.directive.spec.ts +0 -8
  614. package/card/src/directives/card-footer.directive.ts +0 -11
  615. package/card/src/directives/card-header.directive.spec.ts +0 -8
  616. package/card/src/directives/card-header.directive.ts +0 -11
  617. package/card/src/directives/card-image.directive.spec.ts +0 -8
  618. package/card/src/directives/card-image.directive.ts +0 -11
  619. package/card/src/types/public-api.ts +0 -5
  620. package/card/src/upd-card.module.ts +0 -32
  621. package/dropdown/ng-package.json +0 -7
  622. package/dropdown/src/dropdown.component.html +0 -32
  623. package/dropdown/src/dropdown.component.scss +0 -19
  624. package/dropdown/src/dropdown.component.spec.ts +0 -23
  625. package/dropdown/src/dropdown.component.ts +0 -182
  626. package/dropdown/src/models/public-api.ts +0 -2
  627. package/dropdown/src/upd-dropdown.module.ts +0 -25
  628. package/form/ng-package.json +0 -7
  629. package/form/src/form.module.ts +0 -10
  630. package/form/src/public-api.ts +0 -1
  631. package/form-controls/checkbox/ng-package.json +0 -7
  632. package/form-controls/checkbox/src/checkbox.component.html +0 -7
  633. package/form-controls/checkbox/src/checkbox.component.scss +0 -0
  634. package/form-controls/checkbox/src/checkbox.component.spec.ts +0 -23
  635. package/form-controls/checkbox/src/checkbox.component.ts +0 -48
  636. package/form-controls/checkbox/src/upd-checkbox.module.ts +0 -19
  637. package/form-controls/input/ng-package.json +0 -7
  638. package/form-controls/input/src/directives/input-append.directive.spec.ts +0 -8
  639. package/form-controls/input/src/directives/input-append.directive.ts +0 -11
  640. package/form-controls/input/src/directives/input-prepend.directive.spec.ts +0 -8
  641. package/form-controls/input/src/directives/input-prepend.directive.ts +0 -11
  642. package/form-controls/input/src/input.component.html +0 -82
  643. package/form-controls/input/src/input.component.scss +0 -13
  644. package/form-controls/input/src/input.component.spec.ts +0 -23
  645. package/form-controls/input/src/input.component.ts +0 -124
  646. package/form-controls/input/src/upd-input.module.ts +0 -29
  647. package/form-controls/radio/ng-package.json +0 -7
  648. package/form-controls/radio/src/radio.component.html +0 -7
  649. package/form-controls/radio/src/radio.component.scss +0 -0
  650. package/form-controls/radio/src/radio.component.spec.ts +0 -23
  651. package/form-controls/radio/src/radio.component.ts +0 -47
  652. package/form-controls/radio/src/upd-radio.module.ts +0 -17
  653. package/form-controls/select/ng-package.json +0 -7
  654. package/form-controls/select/src/components/multiple/select-multiple.component.html +0 -41
  655. package/form-controls/select/src/components/multiple/select-multiple.component.scss +0 -6
  656. package/form-controls/select/src/components/multiple/select-multiple.component.spec.ts +0 -21
  657. package/form-controls/select/src/components/multiple/select-multiple.component.ts +0 -69
  658. package/form-controls/select/src/components/shared.scss +0 -40
  659. package/form-controls/select/src/components/single/select.component.html +0 -53
  660. package/form-controls/select/src/components/single/select.component.scss +0 -3
  661. package/form-controls/select/src/components/single/select.component.spec.ts +0 -23
  662. package/form-controls/select/src/components/single/select.component.ts +0 -58
  663. package/form-controls/select/src/models/abstractions/base-select.component.ts +0 -259
  664. package/form-controls/select/src/upd-select.module.ts +0 -32
  665. package/form-controls/textarea/ng-package.json +0 -7
  666. package/form-controls/textarea/src/textarea.component.html +0 -8
  667. package/form-controls/textarea/src/textarea.component.scss +0 -0
  668. package/form-controls/textarea/src/textarea.component.spec.ts +0 -23
  669. package/form-controls/textarea/src/textarea.component.ts +0 -47
  670. package/form-controls/textarea/src/upd-textarea.module.ts +0 -17
  671. package/form-controls/time-picker/ng-package.json +0 -7
  672. package/form-controls/time-picker/src/time-picker.component.html +0 -17
  673. package/form-controls/time-picker/src/time-picker.component.scss +0 -10
  674. package/form-controls/time-picker/src/time-picker.component.spec.ts +0 -21
  675. package/form-controls/time-picker/src/time-picker.component.ts +0 -110
  676. package/form-controls/time-picker/src/time-selector/time-selector.component.html +0 -44
  677. package/form-controls/time-picker/src/time-selector/time-selector.component.scss +0 -47
  678. package/form-controls/time-picker/src/time-selector/time-selector.component.spec.ts +0 -21
  679. package/form-controls/time-picker/src/time-selector/time-selector.component.ts +0 -107
  680. package/form-controls/time-picker/src/upd-time-picker.module.ts +0 -39
  681. package/layout/ng-package.json +0 -7
  682. package/layout/src/abstractions/base-page.component.ts +0 -21
  683. package/layout/src/assets/i18n/en.json +0 -5
  684. package/layout/src/assets/i18n/pt.json +0 -5
  685. package/layout/src/layouts/blank-layout/blank-layout.component.html +0 -1
  686. package/layout/src/layouts/blank-layout/blank-layout.component.scss +0 -0
  687. package/layout/src/layouts/blank-layout/blank-layout.component.spec.ts +0 -23
  688. package/layout/src/layouts/blank-layout/blank-layout.component.ts +0 -10
  689. package/layout/src/layouts/blank-layout/blank-layout.module.ts +0 -17
  690. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.html +0 -14
  691. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.scss +0 -0
  692. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.spec.ts +0 -23
  693. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.ts +0 -31
  694. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.ts +0 -52
  695. package/layout/src/models/upd-layout-config.model.ts +0 -71
  696. package/layout/src/pages/auth-flow/auth-flow-routing.module.ts +0 -21
  697. package/layout/src/pages/auth-flow/auth-flow.module.ts +0 -29
  698. package/layout/src/pages/auth-flow/logged-out/logged-out.component.html +0 -1
  699. package/layout/src/pages/auth-flow/logged-out/logged-out.component.scss +0 -0
  700. package/layout/src/pages/auth-flow/logged-out/logged-out.component.spec.ts +0 -23
  701. package/layout/src/pages/auth-flow/logged-out/logged-out.component.ts +0 -10
  702. package/layout/src/pages/auth-flow/login/login.component.html +0 -96
  703. package/layout/src/pages/auth-flow/login/login.component.scss +0 -0
  704. package/layout/src/pages/auth-flow/login/login.component.spec.ts +0 -23
  705. package/layout/src/pages/auth-flow/login/login.component.ts +0 -26
  706. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.html +0 -1
  707. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.scss +0 -0
  708. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.spec.ts +0 -23
  709. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.ts +0 -10
  710. package/layout/src/partials/footer/footer-copyright.directive.spec.ts +0 -8
  711. package/layout/src/partials/footer/footer-copyright.directive.ts +0 -9
  712. package/layout/src/partials/footer/footer.component.html +0 -30
  713. package/layout/src/partials/footer/footer.component.scss +0 -0
  714. package/layout/src/partials/footer/footer.component.spec.ts +0 -23
  715. package/layout/src/partials/footer/footer.component.ts +0 -73
  716. package/layout/src/partials/header/header.component.html +0 -163
  717. package/layout/src/partials/header/header.component.scss +0 -0
  718. package/layout/src/partials/header/header.component.spec.ts +0 -23
  719. package/layout/src/partials/header/header.component.ts +0 -86
  720. package/layout/src/partials/page-header/page-header.component.html +0 -19
  721. package/layout/src/partials/page-header/page-header.component.scss +0 -0
  722. package/layout/src/partials/page-header/page-header.component.spec.ts +0 -23
  723. package/layout/src/partials/page-header/page-header.component.ts +0 -11
  724. package/layout/src/partials/sidebar/sidebar.component.html +0 -62
  725. package/layout/src/partials/sidebar/sidebar.component.scss +0 -0
  726. package/layout/src/partials/sidebar/sidebar.component.spec.ts +0 -23
  727. package/layout/src/partials/sidebar/sidebar.component.ts +0 -161
  728. package/layout/src/services/upd-layout-config.service.spec.ts +0 -16
  729. package/layout/src/services/upd-layout-config.service.ts +0 -20
  730. package/layout/src/upd-layout.module.ts +0 -34
  731. package/link/ng-package.json +0 -7
  732. package/link/src/link.component.html +0 -3
  733. package/link/src/link.component.scss +0 -3
  734. package/link/src/link.component.spec.ts +0 -23
  735. package/link/src/link.component.ts +0 -48
  736. package/link/src/upd-link.module.ts +0 -17
  737. package/list/ng-package.json +0 -7
  738. package/list/src/assets/i18n/en.json +0 -5
  739. package/list/src/assets/i18n/pt.json +0 -5
  740. package/list/src/list.component.html +0 -58
  741. package/list/src/list.component.scss +0 -21
  742. package/list/src/list.component.spec.ts +0 -23
  743. package/list/src/list.component.ts +0 -147
  744. package/list/src/models/list-item.model.ts +0 -35
  745. package/list/src/upd-list.module.ts +0 -30
  746. package/ng-package.json +0 -10
  747. package/popover/ng-package.json +0 -7
  748. package/popover/src/popover.component.html +0 -20
  749. package/popover/src/popover.component.scss +0 -8
  750. package/popover/src/popover.component.spec.ts +0 -23
  751. package/popover/src/popover.component.ts +0 -53
  752. package/popover/src/popover.directive.spec.ts +0 -8
  753. package/popover/src/popover.directive.ts +0 -128
  754. package/popover/src/upd-popover.module.ts +0 -20
  755. package/src/lib/public-api.ts +0 -2
  756. package/src/lib/types/public-api.ts +0 -2
  757. package/src/lib/types/validation-status.type.ts +0 -1
  758. package/src/lib/upd-components.module.ts +0 -6
  759. package/src/public-api.ts +0 -1
  760. package/tsconfig.lib.json +0 -14
  761. package/tsconfig.lib.prod.json +0 -10
  762. package/tsconfig.spec.json +0 -14
  763. /package/{button/src/index.ts → badge/index.d.ts} +0 -0
  764. /package/{card/src/index.ts → button/index.d.ts} +0 -0
  765. /package/button/{src/public-api.ts → public-api.d.ts} +0 -0
  766. /package/{dropdown/src/index.ts → calendar/index.d.ts} +0 -0
  767. /package/card/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  768. /package/{form-controls/checkbox/src/index.ts → card/index.d.ts} +0 -0
  769. /package/card/{src/public-api.ts → public-api.d.ts} +0 -0
  770. /package/card/{src/types/card-state.type.ts → types/card-state.type.d.ts} +0 -0
  771. /package/card/{src/types/card-style.type.ts → types/card-style.type.d.ts} +0 -0
  772. /package/card/{src/types/hover-effect.type.ts → types/hover-effect.type.d.ts} +0 -0
  773. /package/card/{src/types/ribbon-style.type.ts → types/ribbon-style.type.d.ts} +0 -0
  774. /package/card/{src/types/status-position.type.ts → types/status-position.type.d.ts} +0 -0
  775. /package/{form-controls/input/src/index.ts → drag-and-drop/index.d.ts} +0 -0
  776. /package/{form-controls/radio/src/index.ts → dropdown/index.d.ts} +0 -0
  777. /package/dropdown/{src/public-api.ts → public-api.d.ts} +0 -0
  778. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/en.json +0 -0
  779. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/pt.json +0 -0
  780. /package/{src/lib/index.ts → form/index.d.ts} +0 -0
  781. /package/form-controls/{select/src/index.ts → checkbox/index.d.ts} +0 -0
  782. /package/form-controls/{textarea/src/index.ts → date-picker/index.d.ts} +0 -0
  783. /package/form-controls/{time-picker/src/index.ts → file-upload/index.d.ts} +0 -0
  784. /package/form-controls/input/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  785. /package/{form/src/index.ts → form-controls/input/index.d.ts} +0 -0
  786. /package/form-controls/input/{src/public-api.ts → public-api.d.ts} +0 -0
  787. /package/form-controls/input/{src/types/input.type.ts → types/input.type.d.ts} +0 -0
  788. /package/form-controls/input/{src/types/loader-position.type.ts → types/loader-position.type.d.ts} +0 -0
  789. /package/form-controls/input/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
  790. /package/{layout/src/index.ts → form-controls/radio/index.d.ts} +0 -0
  791. /package/form-controls/radio/{src/public-api.ts → public-api.d.ts} +0 -0
  792. /package/{link/src/index.ts → form-controls/select/index.d.ts} +0 -0
  793. /package/form-controls/select/{src/public-api.ts → public-api.d.ts} +0 -0
  794. /package/{list/src/index.ts → form-controls/textarea/index.d.ts} +0 -0
  795. /package/form-controls/textarea/{src/public-api.ts → public-api.d.ts} +0 -0
  796. /package/{popover/src/index.ts → form-controls/time-picker/index.d.ts} +0 -0
  797. /package/form-controls/time-picker/{src/public-api.ts → public-api.d.ts} +0 -0
  798. /package/layout/{src/abstractions/public-api.ts → abstractions/public-api.d.ts} +0 -0
  799. /package/layout/{src/layouts/public-api.ts → layouts/public-api.d.ts} +0 -0
  800. /package/layout/{src/pages/auth-flow/public-api.ts → pages/auth-flow/public-api.d.ts} +0 -0
  801. /package/layout/{src/pages/public-api.ts → pages/public-api.d.ts} +0 -0
  802. /package/layout/{src/partials/header/header-style.type.ts → partials/header/header-style.type.d.ts} +0 -0
  803. /package/layout/{src/partials/page-header/public-api.ts → partials/page-header/public-api.d.ts} +0 -0
  804. /package/layout/{src/partials/public-api.ts → partials/public-api.d.ts} +0 -0
  805. /package/layout/{src/partials/sidebar/public-api.ts → partials/sidebar/public-api.d.ts} +0 -0
  806. /package/layout/{src/public-api.ts → public-api.d.ts} +0 -0
  807. /package/layout/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
  808. /package/link/{src/public-api.ts → public-api.d.ts} +0 -0
  809. /package/link/{src/target.type.ts → target.type.d.ts} +0 -0
  810. /package/list/{src/models/badge-position.type.ts → models/badge-position.type.d.ts} +0 -0
  811. /package/list/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  812. /package/list/{src/public-api.ts → public-api.d.ts} +0 -0
  813. /package/popover/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,157 @@
1
+ import { Component, ViewEncapsulation, Output, EventEmitter, HostBinding, HostListener, inject, input, computed } from '@angular/core';
2
+ import { TextService } from '@updevs/sdk';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@updevs/icons";
6
+ import * as i3 from "@updevs/components/badge";
7
+ export class ButtonComponent {
8
+ constructor() {
9
+ /**
10
+ * Emitted when the button is clicked.
11
+ * **NOTE:** The name of the event can not be 'click'. It would generate a conflict with the HTML event of same name.
12
+ * That would cause strange behaviors like preventing `isDisabled` from working correctly.
13
+ */
14
+ this.clicked = new EventEmitter();
15
+ this.model = input();
16
+ this.text = input();
17
+ this.brandColorStyle = input();
18
+ this.customClasses = input();
19
+ this.isOutline = input(false);
20
+ this.isGhost = input(false);
21
+ this.isSquare = input(false);
22
+ this.isPill = input(false);
23
+ this.isIcon = input(false);
24
+ this.isLoading = input(false);
25
+ /**
26
+ * Whether the button should act as a list (top-bottom alignment instead of left-right related to neighbors).
27
+ */
28
+ this.isList = input(false);
29
+ /**
30
+ * Whether the button should be floating in the bottom right corner.
31
+ */
32
+ this.isFloating = input(false);
33
+ this.isAction = input(false);
34
+ this.isNavigationLink = input(false);
35
+ this.isLink = input(false);
36
+ this.shouldIgnoreBtnClass = input(false);
37
+ this.iconModel = input();
38
+ this.iconPosition = input('left');
39
+ this.isDisabled = input(false);
40
+ this.isActive = input(false);
41
+ this.badgeConfig = input();
42
+ this.colorStyle = input();
43
+ this.size = input('regular');
44
+ this.title = input();
45
+ this._size = computed(() => !!this.model() ? this.model().size() : this.size());
46
+ this._title = computed(() => !!this.model() && !!this.model()?.title ? this.model().title() : this.title());
47
+ this._colorStyle = computed(() => !!this.model() && !!this.model()?.colorStyle ? this.model().colorStyle() : this.colorStyle());
48
+ this._brandColorStyle = computed(() => !!this.model() && !!this.model()?.brandColorStyle ? this.model().brandColorStyle() : this.brandColorStyle());
49
+ this.buttonClasses = computed(() => {
50
+ const isLink = this.model()?.isLink() || this.isLink();
51
+ const outlineCls = this.model()?.isOutline() || this.isOutline() ? 'outline-' : '';
52
+ const ghostCls = this.model()?.isGhost() || this.isGhost() ? 'ghost-' : '';
53
+ const lClasses = this.model()?.shouldIgnoreBtnClass() || this.shouldIgnoreBtnClass() ? [] : ['btn'];
54
+ const customClasses = this.model()?.customClasses?.().split(' ') || this.customClasses()?.split(' ') || [];
55
+ if (!isLink && (!!outlineCls || !!ghostCls || !!this._colorStyle() || !!this._brandColorStyle())) {
56
+ lClasses.push(`btn-${outlineCls || ghostCls}${this._colorStyle() || this._brandColorStyle()}`);
57
+ }
58
+ else if (!!this._colorStyle() || !!this._brandColorStyle()) {
59
+ lClasses.push(`link-${this._colorStyle() || this._brandColorStyle()}`);
60
+ }
61
+ if (this.model()?.isSquare() || this.isSquare()) {
62
+ lClasses.push('btn-square');
63
+ }
64
+ if (this.model()?.isPill() || this.isPill()) {
65
+ lClasses.push('btn-pill');
66
+ }
67
+ if (this._isIcon) {
68
+ lClasses.push('btn-icon');
69
+ }
70
+ if (this.model()?.isLoading() || this.isLoading()) {
71
+ lClasses.push('btn-loading');
72
+ }
73
+ if (this.model()?.isList() || this.isList()) {
74
+ lClasses.push('btn-list');
75
+ }
76
+ if (this.model()?.isFloating() || this.isFloating()) {
77
+ lClasses.push('btn-floating');
78
+ }
79
+ if (this.model()?.isAction() || this.isAction()) {
80
+ lClasses.push('btn-action');
81
+ }
82
+ if (this.model()?.isNavigationLink() || this.isNavigationLink()) {
83
+ lClasses.push('nav-link');
84
+ }
85
+ if (isLink) {
86
+ lClasses.push('btn-link');
87
+ }
88
+ if (this.model()?.isActive() || this.isActive()) {
89
+ lClasses.push('active');
90
+ }
91
+ if (this.model()?.isDisabled() || this.isDisabled()) {
92
+ lClasses.push('disabled');
93
+ }
94
+ if (!!this.badgeConfig() && (this.badgeConfig().isBlinking || this.badgeConfig().isNotification)) {
95
+ lClasses.push('position-relative');
96
+ }
97
+ lClasses.push(this.sizeClass);
98
+ return [...lClasses, ...customClasses];
99
+ });
100
+ this.textService = inject(TextService);
101
+ }
102
+ get classes() {
103
+ return this.buttonClasses();
104
+ }
105
+ get titleAttr() {
106
+ return this.textService.getText(this._title());
107
+ }
108
+ get mainText() {
109
+ return this.textService.getText(this.model()?.text?.() || this.text());
110
+ }
111
+ get _iconModel() {
112
+ return this.model()?.iconModel?.() || this.iconModel();
113
+ }
114
+ get _iconPosition() {
115
+ return this.model()?.iconPosition() || this.iconPosition();
116
+ }
117
+ get _isIcon() {
118
+ return this.model()?.isIcon() || this.isIcon();
119
+ }
120
+ get sizeClass() {
121
+ switch (this._size()) {
122
+ case 'large':
123
+ return 'btn-lg';
124
+ case 'small':
125
+ return 'btn-sm';
126
+ default:
127
+ return '';
128
+ }
129
+ }
130
+ onClick(event) {
131
+ if (!!this.model() && !!this.model()?.clickFunction) {
132
+ this.model().clickFunction({ event, data: this });
133
+ }
134
+ else {
135
+ this.clicked.emit(event);
136
+ }
137
+ event.stopPropagation();
138
+ }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ButtonComponent, selector: "upd-button", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, brandColorStyle: { classPropertyName: "brandColorStyle", publicName: "brandColorStyle", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null }, isOutline: { classPropertyName: "isOutline", publicName: "isOutline", isSignal: true, isRequired: false, transformFunction: null }, isGhost: { classPropertyName: "isGhost", publicName: "isGhost", isSignal: true, isRequired: false, transformFunction: null }, isSquare: { classPropertyName: "isSquare", publicName: "isSquare", isSignal: true, isRequired: false, transformFunction: null }, isPill: { classPropertyName: "isPill", publicName: "isPill", isSignal: true, isRequired: false, transformFunction: null }, isIcon: { classPropertyName: "isIcon", publicName: "isIcon", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isList: { classPropertyName: "isList", publicName: "isList", isSignal: true, isRequired: false, transformFunction: null }, isFloating: { classPropertyName: "isFloating", publicName: "isFloating", isSignal: true, isRequired: false, transformFunction: null }, isAction: { classPropertyName: "isAction", publicName: "isAction", isSignal: true, isRequired: false, transformFunction: null }, isNavigationLink: { classPropertyName: "isNavigationLink", publicName: "isNavigationLink", isSignal: true, isRequired: false, transformFunction: null }, isLink: { classPropertyName: "isLink", publicName: "isLink", isSignal: true, isRequired: false, transformFunction: null }, shouldIgnoreBtnClass: { classPropertyName: "shouldIgnoreBtnClass", publicName: "shouldIgnoreBtnClass", isSignal: true, isRequired: false, transformFunction: null }, iconModel: { classPropertyName: "iconModel", publicName: "iconModel", isSignal: true, isRequired: false, transformFunction: null }, iconPosition: { classPropertyName: "iconPosition", publicName: "iconPosition", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null }, badgeConfig: { classPropertyName: "badgeConfig", publicName: "badgeConfig", isSignal: true, isRequired: false, transformFunction: null }, colorStyle: { classPropertyName: "colorStyle", publicName: "colorStyle", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.classes", "title": "this.titleAttr" } }, ngImport: i0, template: "<ng-template #userContentTpl>\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <div [class.mx-1]=\"!!_iconModel && !_isIcon\">\n <ng-content></ng-content>\n </div>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n</ng-template>\n\n@if (!mainText) {\n <ng-container [ngTemplateOutlet]=\"userContentTpl\"></ng-container>\n} @else {\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <span [class.mx-1]=\"!!_iconModel\">\n {{ mainText }}\n </span>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n}\n", styles: [".btn-icon .icon{margin:0 calc(-1 * var(--upd-btn-padding-x)) 0 calc(-1 * var(--upd-btn-padding-x))!important}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i3.BadgeComponent, selector: "upd-badge", inputs: ["config", "bgColor", "textColor", "text", "isOutline", "isPill", "isNotification", "isBlinking", "customClasses"] }], encapsulation: i0.ViewEncapsulation.None }); }
141
+ }
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ButtonComponent, decorators: [{
143
+ type: Component,
144
+ args: [{ selector: 'upd-button', encapsulation: ViewEncapsulation.None, template: "<ng-template #userContentTpl>\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <div [class.mx-1]=\"!!_iconModel && !_isIcon\">\n <ng-content></ng-content>\n </div>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n</ng-template>\n\n@if (!mainText) {\n <ng-container [ngTemplateOutlet]=\"userContentTpl\"></ng-container>\n} @else {\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <span [class.mx-1]=\"!!_iconModel\">\n {{ mainText }}\n </span>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n}\n", styles: [".btn-icon .icon{margin:0 calc(-1 * var(--upd-btn-padding-x)) 0 calc(-1 * var(--upd-btn-padding-x))!important}\n"] }]
145
+ }], propDecorators: { classes: [{
146
+ type: HostBinding,
147
+ args: ['class']
148
+ }], titleAttr: [{
149
+ type: HostBinding,
150
+ args: ['title']
151
+ }], clicked: [{
152
+ type: Output
153
+ }], onClick: [{
154
+ type: HostListener,
155
+ args: ['click', ['$event']]
156
+ }] } });
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9idXR0b24vc3JjL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYnV0dG9uL3NyYy9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBV3JELE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBZUk7Ozs7V0FJRztRQUNnQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRCxVQUFLLEdBQUcsS0FBSyxFQUFlLENBQUM7UUFDN0IsU0FBSSxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxjQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixXQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsY0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6Qjs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEI7O1dB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QUFXO3VCQUFDLE9BQU87Z0JBSU0sU0FBUztzQkFBbEMsV0FBVzt1QkFBQyxPQUFPO2dCQVNELE9BQU87c0JBQXpCLE1BQU07Z0JBc0lQLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgY29tcHV0ZWRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uTW9kZWwgfSBmcm9tICdAdXBkZXZzL2ljb25zJztcbmltcG9ydCB7IFRleHRNb2RlbCwgVGV4dFNlcnZpY2UgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBCdXR0b25Nb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBMZWZ0UmlnaHRUeXBlLCBPcHRpb25hbFR5cGUsIEJyYW5kVHlwZSwgQmdDb2xvclN0eWxlVHlwZSwgQnV0dG9uU2l6ZVR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5pbXBvcnQgeyBCYWRnZUNvbmZpZyB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9iYWRnZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1dHRvbkNsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3RpdGxlJykgZ2V0IHRpdGxlQXR0cigpOiBPcHRpb25hbFR5cGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy5fdGl0bGUoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZC5cbiAgICAgKiAqKk5PVEU6KiogVGhlIG5hbWUgb2YgdGhlIGV2ZW50IGNhbiBub3QgYmUgJ2NsaWNrJy4gSXQgd291bGQgZ2VuZXJhdGUgYSBjb25mbGljdCB3aXRoIHRoZSBIVE1MIGV2ZW50IG9mIHNhbWUgbmFtZS5cbiAgICAgKiBUaGF0IHdvdWxkIGNhdXNlIHN0cmFuZ2UgYmVoYXZpb3JzIGxpa2UgcHJldmVudGluZyBgaXNEaXNhYmxlZGAgZnJvbSB3b3JraW5nIGNvcnJlY3RseS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgbW9kZWwgPSBpbnB1dDxCdXR0b25Nb2RlbD4oKTtcbiAgICB0ZXh0ID0gaW5wdXQ8VGV4dE1vZGVsPigpO1xuICAgIGJyYW5kQ29sb3JTdHlsZSA9IGlucHV0PEJyYW5kVHlwZT4oKTtcbiAgICBjdXN0b21DbGFzc2VzID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGlzT3V0bGluZSA9IGlucHV0KGZhbHNlKTtcbiAgICBpc0dob3N0ID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzU3F1YXJlID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzUGlsbCA9IGlucHV0KGZhbHNlKTtcbiAgICBpc0ljb24gPSBpbnB1dChmYWxzZSk7XG4gICAgaXNMb2FkaW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGJ1dHRvbiBzaG91bGQgYWN0IGFzIGEgbGlzdCAodG9wLWJvdHRvbSBhbGlnbm1lbnQgaW5zdGVhZCBvZiBsZWZ0LXJpZ2h0IHJlbGF0ZWQgdG8gbmVpZ2hib3JzKS5cbiAgICAgKi9cbiAgICBpc0xpc3QgPSBpbnB1dChmYWxzZSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYnV0dG9uIHNob3VsZCBiZSBmbG9hdGluZyBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lci5cbiAgICAgKi9cbiAgICBpc0Zsb2F0aW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzQWN0aW9uID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzTmF2aWdhdGlvbkxpbmsgPSBpbnB1dChmYWxzZSk7XG4gICAgaXNMaW5rID0gaW5wdXQoZmFsc2UpO1xuICAgIHNob3VsZElnbm9yZUJ0bkNsYXNzID0gaW5wdXQoZmFsc2UpO1xuICAgIGljb25Nb2RlbCA9IGlucHV0PEljb25Nb2RlbD4oKTtcbiAgICBpY29uUG9zaXRpb24gPSBpbnB1dDxMZWZ0UmlnaHRUeXBlPignbGVmdCcpO1xuICAgIGlzRGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gICAgaXNBY3RpdmUgPSBpbnB1dChmYWxzZSk7XG4gICAgYmFkZ2VDb25maWcgPSBpbnB1dDxCYWRnZUNvbmZpZz4oKTtcbiAgICBjb2xvclN0eWxlID0gaW5wdXQ8QmdDb2xvclN0eWxlVHlwZT4oKTtcbiAgICBzaXplID0gaW5wdXQ8QnV0dG9uU2l6ZVR5cGU+KCdyZWd1bGFyJyk7XG4gICAgdGl0bGUgPSBpbnB1dDxUZXh0TW9kZWw+KCk7XG5cbiAgICBnZXQgbWFpblRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dFNlcnZpY2UuZ2V0VGV4dCh0aGlzLm1vZGVsKCk/LnRleHQ/LigpIHx8IHRoaXMudGV4dCgpKTtcbiAgICB9XG5cbiAgICBnZXQgX2ljb25Nb2RlbCgpOiBPcHRpb25hbFR5cGU8SWNvbk1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsKCk/Lmljb25Nb2RlbD8uKCkgfHwgdGhpcy5pY29uTW9kZWwoKTtcbiAgICB9XG5cbiAgICBnZXQgX2ljb25Qb3NpdGlvbigpOiBMZWZ0UmlnaHRUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwoKT8uaWNvblBvc2l0aW9uKCkgfHwgdGhpcy5pY29uUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICBnZXQgX2lzSWNvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwoKT8uaXNJY29uKCkgfHwgdGhpcy5pc0ljb24oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBzaXplQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9zaXplKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2J0bi1sZyc7XG4gICAgICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdidG4tc20nO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaXplID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLm1vZGVsKCkgPyB0aGlzLm1vZGVsKCkhLnNpemUoKSA6IHRoaXMuc2l6ZSgpKTtcbiAgICBwcml2YXRlIF90aXRsZSA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5tb2RlbCgpICYmICEhdGhpcy5tb2RlbCgpPy50aXRsZSA/IHRoaXMubW9kZWwoKSEudGl0bGUhKCkgOiB0aGlzLnRpdGxlKCkpO1xuICAgIHByaXZhdGUgX2NvbG9yU3R5bGUgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMubW9kZWwoKSAmJiAhIXRoaXMubW9kZWwoKT8uY29sb3JTdHlsZSA/IHRoaXMubW9kZWwoKSEuY29sb3JTdHlsZSEoKSA6IHRoaXMuY29sb3JTdHlsZSgpKTtcbiAgICBwcml2YXRlIF9icmFuZENvbG9yU3R5bGUgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICAhIXRoaXMubW9kZWwoKSAmJiAhIXRoaXMubW9kZWwoKT8uYnJhbmRDb2xvclN0eWxlID8gdGhpcy5tb2RlbCgpIS5icmFuZENvbG9yU3R5bGUhKCkgOiB0aGlzLmJyYW5kQ29sb3JTdHlsZSgpXG4gICAgKTtcbiAgICBwcml2YXRlIGJ1dHRvbkNsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzTGluayA9IHRoaXMubW9kZWwoKT8uaXNMaW5rKCkgfHwgdGhpcy5pc0xpbmsoKTtcbiAgICAgICAgY29uc3Qgb3V0bGluZUNscyA9IHRoaXMubW9kZWwoKT8uaXNPdXRsaW5lKCkgfHwgdGhpcy5pc091dGxpbmUoKSA/ICdvdXRsaW5lLScgOiAnJztcbiAgICAgICAgY29uc3QgZ2hvc3RDbHMgPSB0aGlzLm1vZGVsKCk/LmlzR2hvc3QoKSB8fCB0aGlzLmlzR2hvc3QoKSA/ICdnaG9zdC0nIDogJyc7XG4gICAgICAgIGNvbnN0IGxDbGFzc2VzOiBzdHJpbmdbXSA9IHRoaXMubW9kZWwoKT8uc2hvdWxkSWdub3JlQnRuQ2xhc3MoKSB8fCB0aGlzLnNob3VsZElnbm9yZUJ0bkNsYXNzKCkgPyBbXSA6IFsnYnRuJ107XG4gICAgICAgIGNvbnN0IGN1c3RvbUNsYXNzZXMgPSB0aGlzLm1vZGVsKCk/LmN1c3RvbUNsYXNzZXM/LigpLnNwbGl0KCcgJykgfHwgdGhpcy5jdXN0b21DbGFzc2VzKCk/LnNwbGl0KCcgJykgfHwgW107XG5cbiAgICAgICAgaWYgKCFpc0xpbmsgJiYgKCEhb3V0bGluZUNscyB8fCAhIWdob3N0Q2xzIHx8ICEhdGhpcy5fY29sb3JTdHlsZSgpIHx8ICEhdGhpcy5fYnJhbmRDb2xvclN0eWxlKCkpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKGBidG4tJHtvdXRsaW5lQ2xzIHx8IGdob3N0Q2xzfSR7dGhpcy5fY29sb3JTdHlsZSgpIHx8IHRoaXMuX2JyYW5kQ29sb3JTdHlsZSgpfWApO1xuICAgICAgICB9IGVsc2UgaWYgKCEhdGhpcy5fY29sb3JTdHlsZSgpIHx8ICEhdGhpcy5fYnJhbmRDb2xvclN0eWxlKCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goYGxpbmstJHt0aGlzLl9jb2xvclN0eWxlKCkgfHwgdGhpcy5fYnJhbmRDb2xvclN0eWxlKCl9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc1NxdWFyZSgpIHx8IHRoaXMuaXNTcXVhcmUoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLXNxdWFyZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNQaWxsKCkgfHwgdGhpcy5pc1BpbGwoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLXBpbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9pc0ljb24pIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2J0bi1pY29uJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc0xvYWRpbmcoKSB8fCB0aGlzLmlzTG9hZGluZygpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdidG4tbG9hZGluZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNMaXN0KCkgfHwgdGhpcy5pc0xpc3QoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWxpc3QnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzRmxvYXRpbmcoKSB8fCB0aGlzLmlzRmxvYXRpbmcoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWZsb2F0aW5nJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc0FjdGlvbigpIHx8IHRoaXMuaXNBY3Rpb24oKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWFjdGlvbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNOYXZpZ2F0aW9uTGluaygpIHx8IHRoaXMuaXNOYXZpZ2F0aW9uTGluaygpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCduYXYtbGluaycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzTGluaykge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWxpbmsnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzQWN0aXZlKCkgfHwgdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdhY3RpdmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzRGlzYWJsZWQoKSB8fCB0aGlzLmlzRGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnZGlzYWJsZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIXRoaXMuYmFkZ2VDb25maWcoKSAmJiAodGhpcy5iYWRnZUNvbmZpZygpIS5pc0JsaW5raW5nIHx8IHRoaXMuYmFkZ2VDb25maWcoKSEuaXNOb3RpZmljYXRpb24pKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdwb3NpdGlvbi1yZWxhdGl2ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgbENsYXNzZXMucHVzaCh0aGlzLnNpemVDbGFzcyk7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5sQ2xhc3NlcywgLi4uY3VzdG9tQ2xhc3Nlc107XG4gICAgfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0U2VydmljZSA9IGluamVjdChUZXh0U2VydmljZSk7XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLm1vZGVsKCkgJiYgISF0aGlzLm1vZGVsKCk/LmNsaWNrRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwoKSEuY2xpY2tGdW5jdGlvbiEoeyBldmVudCwgZGF0YTogdGhpcyB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdXNlckNvbnRlbnRUcGw+XG4gICAgQGlmICghIV9pY29uTW9kZWwgJiYgX2ljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwiX2ljb25Nb2RlbFwiIFt0YWJsZXJJY29uU2l6ZV09XCJfaWNvbk1vZGVsLnRhYmxlckljb25TaXplIHx8IDIwXCJcbiAgICAgICAgICAgIFtoZXJvSWNvblNpemVdPVwiX2ljb25Nb2RlbC5oZXJvSWNvblNpemUgfHwgJ3NtYWxsJ1wiPlxuICAgICAgICA8L3VwZC1pY29uPlxuICAgIH1cblxuICAgIDxkaXYgW2NsYXNzLm14LTFdPVwiISFfaWNvbk1vZGVsICYmICFfaXNJY29uXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoISFiYWRnZUNvbmZpZygpKSB7XG4gICAgICAgIDx1cGQtYmFkZ2UgW2NvbmZpZ109XCJiYWRnZUNvbmZpZygpXCI+PC91cGQtYmFkZ2U+XG4gICAgfVxuXG4gICAgQGlmICghIV9pY29uTW9kZWwgJiYgX2ljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cIl9pY29uTW9kZWxcIiBbdGFibGVySWNvblNpemVdPVwiX2ljb25Nb2RlbC50YWJsZXJJY29uU2l6ZSB8fCAyMFwiXG4gICAgICAgICAgICBbaGVyb0ljb25TaXplXT1cIl9pY29uTW9kZWwuaGVyb0ljb25TaXplIHx8ICdzbWFsbCdcIj5cbiAgICAgICAgPC91cGQtaWNvbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG5AaWYgKCFtYWluVGV4dCkge1xuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidXNlckNvbnRlbnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbn0gQGVsc2Uge1xuICAgIEBpZiAoISFfaWNvbk1vZGVsICYmIF9pY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cIl9pY29uTW9kZWxcIiBbdGFibGVySWNvblNpemVdPVwiX2ljb25Nb2RlbC50YWJsZXJJY29uU2l6ZSB8fCAyMFwiXG4gICAgICAgICAgICBbaGVyb0ljb25TaXplXT1cIl9pY29uTW9kZWwuaGVyb0ljb25TaXplIHx8ICdzbWFsbCdcIj5cbiAgICAgICAgPC91cGQtaWNvbj5cbiAgICB9XG5cbiAgICA8c3BhbiBbY2xhc3MubXgtMV09XCIhIV9pY29uTW9kZWxcIj5cbiAgICAgICAge3sgbWFpblRleHQgfX1cbiAgICA8L3NwYW4+XG5cbiAgICBAaWYgKCEhYmFkZ2VDb25maWcoKSkge1xuICAgICAgICA8dXBkLWJhZGdlIFtjb25maWddPVwiYmFkZ2VDb25maWcoKVwiPjwvdXBkLWJhZGdlPlxuICAgIH1cblxuICAgIEBpZiAoISFfaWNvbk1vZGVsICYmIF9pY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJfaWNvbk1vZGVsXCIgW3RhYmxlckljb25TaXplXT1cIl9pY29uTW9kZWwudGFibGVySWNvblNpemUgfHwgMjBcIlxuICAgICAgICAgICAgW2hlcm9JY29uU2l6ZV09XCJfaWNvbk1vZGVsLmhlcm9JY29uU2l6ZSB8fCAnc21hbGwnXCI+XG4gICAgICAgIDwvdXBkLWljb24+XG4gICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYnV0dG9uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './upd-button.module';
2
+ export * from './button.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9idXR0b24vc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91cGQtYnV0dG9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,32 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { UpdIconsModule } from '@updevs/icons';
4
+ import { UpdBadgeModule } from '@updevs/components/badge';
5
+ import { ButtonComponent } from './button.component';
6
+ import * as i0 from "@angular/core";
7
+ export class UpdButtonModule {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UpdButtonModule, declarations: [ButtonComponent], imports: [CommonModule,
10
+ UpdIconsModule,
11
+ UpdBadgeModule], exports: [ButtonComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdButtonModule, imports: [CommonModule,
13
+ UpdIconsModule,
14
+ UpdBadgeModule] }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdButtonModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ imports: [
20
+ CommonModule,
21
+ UpdIconsModule,
22
+ UpdBadgeModule
23
+ ],
24
+ declarations: [
25
+ ButtonComponent
26
+ ],
27
+ exports: [
28
+ ButtonComponent
29
+ ]
30
+ }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLWJ1dHRvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYnV0dG9uL3NyYy91cGQtYnV0dG9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBZXJELE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSxpQkFOcEIsZUFBZSxhQUxmLFlBQVk7WUFDWixjQUFjO1lBQ2QsY0FBYyxhQU1kLGVBQWU7K0dBR1YsZUFBZSxZQVhwQixZQUFZO1lBQ1osY0FBYztZQUNkLGNBQWM7OzJGQVNULGVBQWU7a0JBYjNCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3FCQUNqQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsZUFBZTtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGVBQWU7cUJBQ2xCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBVcGRJY29uc01vZHVsZSB9IGZyb20gJ0B1cGRldnMvaWNvbnMnO1xuaW1wb3J0IHsgVXBkQmFkZ2VNb2R1bGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvYmFkZ2UnO1xuXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBVcGRJY29uc01vZHVsZSxcbiAgICAgICAgVXBkQmFkZ2VNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBCdXR0b25Db21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBVcGRCdXR0b25Nb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkZXZzLWNvbXBvbmVudHMtYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2J1dHRvbi9zcmMvdXBkZXZzLWNvbXBvbmVudHMtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,16 @@
1
+ {
2
+ "UpDevs": {
3
+ "Calendar": {
4
+ "PreviousMonth": "Previous month",
5
+ "PreviousYear": "Previous year",
6
+ "PreviousMultiYear": "Previous 24 years",
7
+ "NextMonth": "Next month",
8
+ "NextYear": "Next year",
9
+ "NextMultiYear": "Next 24 years",
10
+ "SwitchToMultiYearView": "Choose month and year",
11
+ "SwitchToMonthView": "Choose date",
12
+ "YearRange": "{{start}} \u2013 {{end}}",
13
+ "YearRangeLabel": "{{start}} to {{end}}"
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "UpDevs": {
3
+ "Calendar": {
4
+ "PreviousMonth": "Mês anterior",
5
+ "PreviousYear": "Ano anterior",
6
+ "PreviousMultiYear": "24 anos anteriores",
7
+ "NextMonth": "Próximo mês",
8
+ "NextYear": "Próximo ano",
9
+ "NextMultiYear": "Próximos 24 anos",
10
+ "SwitchToMultiYearView": "Escolha mês e ano",
11
+ "SwitchToMonthView": "Escolha uma data",
12
+ "YearRange": "{{start}} \u2013 {{end}}",
13
+ "YearRangeLabel": "{{start}} até {{end}}"
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,247 @@
1
+ import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild, inject } from '@angular/core';
2
+ import { DateService } from '@updevs/sdk/core';
3
+ import { DateRangeModel } from './models/date-range.model';
4
+ import { CalendarMonthViewComponent } from './components/calendar-month-view/calendar-month-view.component';
5
+ import { CalendarYearViewComponent } from './components/calendar-year-view/calendar-year-view.component';
6
+ import { CalendarMultiYearViewComponent } from './components/calendar-multi-year-view/calendar-multi-year-view.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./components/calendar-month-view/calendar-month-view.component";
9
+ export class CalendarComponent {
10
+ constructor() {
11
+ /**
12
+ * Whether the calendar should be started in month or year view.
13
+ */
14
+ this.startView = 'month';
15
+ /** Whether the user is currently selecting a range of dates. */
16
+ this.isRange = false;
17
+ /** Emits when the currently selected date changes. */
18
+ this.selectedChange = new EventEmitter();
19
+ /**
20
+ * Emits the year chosen in multiyear view.
21
+ * This doesn't imply a change on the selected date.
22
+ */
23
+ this.yearSelected = new EventEmitter();
24
+ /**
25
+ * Emits the month chosen in year view.
26
+ * This doesn't imply a change on the selected date.
27
+ */
28
+ this.monthSelected = new EventEmitter();
29
+ /**
30
+ * Emits when the current view changes.
31
+ */
32
+ this.viewChanged = new EventEmitter(true);
33
+ /** Emits when any date is selected. */
34
+ this.userSelection = new EventEmitter();
35
+ /** Emits a new date range value when the user completes a drag drop operation. */
36
+ this.userDragDrop = new EventEmitter();
37
+ /**
38
+ * Used for scheduling that focus should be moved to the active cell on the next tick.
39
+ * We need to schedule it, rather than do it immediately, because we have to wait
40
+ * for Angular to re-evaluate the view children.
41
+ */
42
+ this._moveFocusOnNextTick = false;
43
+ this.dateService = inject(DateService);
44
+ this._changeDetectorRef = inject(ChangeDetectorRef);
45
+ }
46
+ /** A date representing the period (month or year) to start the calendar in. */
47
+ get startAt() {
48
+ return this._startAt;
49
+ }
50
+ set startAt(value) {
51
+ this._startAt = this.dateService.getValidOrUndefined(this.dateService.deserialize(value));
52
+ }
53
+ /**
54
+ * The currently selected date.
55
+ */
56
+ get selected() {
57
+ return this._selected;
58
+ }
59
+ set selected(value) {
60
+ console.log('setting selected', value);
61
+ if (value instanceof DateRangeModel) {
62
+ this._selected = value;
63
+ }
64
+ else {
65
+ this._selected = this.dateService.getValidOrUndefined(this.dateService.deserialize(value));
66
+ }
67
+ }
68
+ /**
69
+ * The minimum selectable date.
70
+ */
71
+ get minDate() {
72
+ return this._minDate;
73
+ }
74
+ set minDate(value) {
75
+ this._minDate = this.dateService.getValidOrUndefined(this.dateService.deserialize(value));
76
+ }
77
+ /**
78
+ * The maximum selectable date.
79
+ */
80
+ get maxDate() {
81
+ return this._maxDate;
82
+ }
83
+ set maxDate(value) {
84
+ this._maxDate = this.dateService.getValidOrUndefined(this.dateService.deserialize(value));
85
+ }
86
+ /**
87
+ * The current active date. This determines which time period is shown and which date is
88
+ * highlighted when using keyboard navigation.
89
+ */
90
+ get activeDate() {
91
+ return this._clampedActiveDate;
92
+ }
93
+ set activeDate(value) {
94
+ this._clampedActiveDate = this.dateService.clamp(value, this.minDate, this.maxDate);
95
+ this._changeDetectorRef.markForCheck();
96
+ }
97
+ /** Whether the calendar is in month view. */
98
+ get currentView() {
99
+ return this._currentView;
100
+ }
101
+ set currentView(value) {
102
+ const viewChangedResult = this._currentView !== value ? value : undefined;
103
+ this._currentView = value;
104
+ this._moveFocusOnNextTick = true;
105
+ this._changeDetectorRef.markForCheck();
106
+ if (viewChangedResult) {
107
+ this.viewChanged.emit(viewChangedResult);
108
+ }
109
+ }
110
+ ngAfterContentInit() {
111
+ this.activeDate = this.startAt || new Date();
112
+ // Assign to the private property since we don't want to move focus on init.
113
+ this._currentView = this.startView;
114
+ }
115
+ ngAfterViewChecked() {
116
+ if (this._moveFocusOnNextTick) {
117
+ this._moveFocusOnNextTick = false;
118
+ this.focusActiveCell();
119
+ }
120
+ }
121
+ ngOnChanges(changes) {
122
+ // Ignore date changes that are at a different time on the same day. This fixes issues where
123
+ // the calendar re-renders when there is no meaningful change to [minDate] or [maxDate]
124
+ // (#24435).
125
+ const minDateChange = changes['minDate'] && !this.dateService.areEqual(changes['minDate'].previousValue, changes['minDate'].currentValue)
126
+ ? changes['minDate']
127
+ : undefined;
128
+ const maxDateChange = changes['maxDate'] && !this.dateService.areEqual(changes['maxDate'].previousValue, changes['maxDate'].currentValue)
129
+ ? changes['maxDate']
130
+ : undefined;
131
+ const change = minDateChange || maxDateChange || changes['dateFilter'];
132
+ if (change && !change.firstChange) {
133
+ const view = this._getCurrentViewComponent();
134
+ if (view) {
135
+ // We need to `detectChanges` manually here, because the `minDate`, `maxDate` etc. are
136
+ // passed down to the view via data bindings which won't be up-to-date when we call `_init`.
137
+ this._changeDetectorRef.detectChanges();
138
+ view.init();
139
+ }
140
+ }
141
+ }
142
+ /** Focuses the active date. */
143
+ focusActiveCell() {
144
+ this._getCurrentViewComponent().focusActiveCell(false);
145
+ }
146
+ /** Updates today's date after an update of the active date */
147
+ updateTodaysDate() {
148
+ this._getCurrentViewComponent().init();
149
+ }
150
+ /** Handles date selection in the month view. */
151
+ _dateSelected(event) {
152
+ const date = event.value;
153
+ if (this.selected instanceof DateRangeModel || (date && !this.dateService.areEqual(date, this.selected))) {
154
+ this.selectedChange.emit(date);
155
+ }
156
+ this.userSelection.emit(event);
157
+ }
158
+ /** Handles year selection in the multiyear view. */
159
+ _yearSelectedInMultiYearView(normalizedYear) {
160
+ this.yearSelected.emit(normalizedYear);
161
+ }
162
+ /** Handles month selection in the year view. */
163
+ _monthSelectedInYearView(normalizedMonth) {
164
+ this.monthSelected.emit(normalizedMonth);
165
+ }
166
+ /** Handles year/month selection in the multi-year/year views. */
167
+ _goToDateInView(date, view) {
168
+ this.activeDate = date;
169
+ this.currentView = view;
170
+ }
171
+ /** Called when the user starts dragging to change a date range. */
172
+ _dragStarted(event) {
173
+ this._activeDrag = event;
174
+ }
175
+ /**
176
+ * Called when a drag completes. It may end in cancelation or in the selection
177
+ * of a new range.
178
+ */
179
+ _dragEnded(event) {
180
+ if (!this._activeDrag) {
181
+ return;
182
+ }
183
+ if (event.value) {
184
+ this.userDragDrop.emit(event);
185
+ }
186
+ this._activeDrag = undefined;
187
+ }
188
+ /** Returns the component instance that corresponds to the current calendar view. */
189
+ _getCurrentViewComponent() {
190
+ // The return type is explicitly written as a union to ensure that the Closure compiler does
191
+ // not optimize calls to _init(). Without the explicit return type, TypeScript narrows it to
192
+ // only the first component type. See https://github.com/angular/components/issues/22996.
193
+ return (this.monthView || this.yearView || this.multiYearView);
194
+ }
195
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
196
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: CalendarComponent, selector: "upd-calendar", inputs: { startAt: "startAt", startView: "startView", selected: "selected", minDate: "minDate", maxDate: "maxDate", dateFilter: "dateFilter", dateClass: "dateClass", comparisonStart: "comparisonStart", comparisonEnd: "comparisonEnd", startDateAccessibleName: "startDateAccessibleName", endDateAccessibleName: "endDateAccessibleName", isRange: "isRange" }, outputs: { selectedChange: "selectedChange", yearSelected: "yearSelected", monthSelected: "monthSelected", viewChanged: "viewChanged", userSelection: "userSelection", userDragDrop: "userDragDrop" }, viewQueries: [{ propertyName: "monthView", first: true, predicate: CalendarMonthViewComponent, descendants: true }, { propertyName: "yearView", first: true, predicate: CalendarYearViewComponent, descendants: true }, { propertyName: "multiYearView", first: true, predicate: CalendarMultiYearViewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@switch (currentView) {\n @case ('month') {\n <upd-calendar-month-view [(activeDate)]=\"activeDate\" [isRange]=\"isRange\" [selected]=\"selected\" [dateFilter]=\"dateFilter\"\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [dateClass]=\"dateClass\" [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\" [startDateAccessibleName]=\"startDateAccessibleName\"\n [endDateAccessibleName]=\"endDateAccessibleName\" (userSelection)=\"_dateSelected($event)\" (dragStarted)=\"_dragStarted($event)\"\n (dragEnded)=\"_dragEnded($event)\" [activeDrag]=\"_activeDrag\">\n </upd-calendar-month-view>\n }\n @case ('year') {\n YEAR!\n <!-- <upd-calendar-year-view-->\n <!-- [(activeDate)]=\"activeDate\"-->\n <!-- [selected]=\"selected\"-->\n <!-- [dateFilter]=\"dateFilter\"-->\n <!-- [maxDate]=\"maxDate\"-->\n <!-- [minDate]=\"minDate\"-->\n <!-- [dateClass]=\"dateClass\"-->\n <!-- (monthSelected)=\"_monthSelectedInYearView($event)\"-->\n <!-- (selectedChange)=\"_goToDateInView($event, 'month')\"></upd-calendar-year-view>-->\n }\n @case ('multi-year') {\n MUUMUMUULTI-YEAR!\n <!-- <upd-calendar-multi-year-view-->\n <!-- [(activeDate)]=\"activeDate\"-->\n <!-- [selected]=\"selected\"-->\n <!-- [dateFilter]=\"dateFilter\"-->\n <!-- [maxDate]=\"maxDate\"-->\n <!-- [minDate]=\"minDate\"-->\n <!-- [dateClass]=\"dateClass\"-->\n <!-- (yearSelected)=\"_yearSelectedInMultiYearView($event)\"-->\n <!-- (selectedChange)=\"_goToDateInView($event, 'year')\"></upd-calendar-multi-year-view>-->\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: i1.CalendarMonthViewComponent, selector: "upd-calendar-month-view", inputs: ["activeDate", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName", "firstDayOfWeek", "activeDrag", "isRange"], outputs: ["selectedChange", "userSelection", "dragStarted", "dragEnded", "activeDateChange"] }] }); }
197
+ }
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CalendarComponent, decorators: [{
199
+ type: Component,
200
+ args: [{ selector: 'upd-calendar', template: "@switch (currentView) {\n @case ('month') {\n <upd-calendar-month-view [(activeDate)]=\"activeDate\" [isRange]=\"isRange\" [selected]=\"selected\" [dateFilter]=\"dateFilter\"\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [dateClass]=\"dateClass\" [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\" [startDateAccessibleName]=\"startDateAccessibleName\"\n [endDateAccessibleName]=\"endDateAccessibleName\" (userSelection)=\"_dateSelected($event)\" (dragStarted)=\"_dragStarted($event)\"\n (dragEnded)=\"_dragEnded($event)\" [activeDrag]=\"_activeDrag\">\n </upd-calendar-month-view>\n }\n @case ('year') {\n YEAR!\n <!-- <upd-calendar-year-view-->\n <!-- [(activeDate)]=\"activeDate\"-->\n <!-- [selected]=\"selected\"-->\n <!-- [dateFilter]=\"dateFilter\"-->\n <!-- [maxDate]=\"maxDate\"-->\n <!-- [minDate]=\"minDate\"-->\n <!-- [dateClass]=\"dateClass\"-->\n <!-- (monthSelected)=\"_monthSelectedInYearView($event)\"-->\n <!-- (selectedChange)=\"_goToDateInView($event, 'month')\"></upd-calendar-year-view>-->\n }\n @case ('multi-year') {\n MUUMUMUULTI-YEAR!\n <!-- <upd-calendar-multi-year-view-->\n <!-- [(activeDate)]=\"activeDate\"-->\n <!-- [selected]=\"selected\"-->\n <!-- [dateFilter]=\"dateFilter\"-->\n <!-- [maxDate]=\"maxDate\"-->\n <!-- [minDate]=\"minDate\"-->\n <!-- [dateClass]=\"dateClass\"-->\n <!-- (yearSelected)=\"_yearSelectedInMultiYearView($event)\"-->\n <!-- (selectedChange)=\"_goToDateInView($event, 'year')\"></upd-calendar-multi-year-view>-->\n }\n}\n" }]
201
+ }], propDecorators: { monthView: [{
202
+ type: ViewChild,
203
+ args: [CalendarMonthViewComponent]
204
+ }], yearView: [{
205
+ type: ViewChild,
206
+ args: [CalendarYearViewComponent]
207
+ }], multiYearView: [{
208
+ type: ViewChild,
209
+ args: [CalendarMultiYearViewComponent]
210
+ }], startAt: [{
211
+ type: Input
212
+ }], startView: [{
213
+ type: Input
214
+ }], selected: [{
215
+ type: Input
216
+ }], minDate: [{
217
+ type: Input
218
+ }], maxDate: [{
219
+ type: Input
220
+ }], dateFilter: [{
221
+ type: Input
222
+ }], dateClass: [{
223
+ type: Input
224
+ }], comparisonStart: [{
225
+ type: Input
226
+ }], comparisonEnd: [{
227
+ type: Input
228
+ }], startDateAccessibleName: [{
229
+ type: Input
230
+ }], endDateAccessibleName: [{
231
+ type: Input
232
+ }], isRange: [{
233
+ type: Input
234
+ }], selectedChange: [{
235
+ type: Output
236
+ }], yearSelected: [{
237
+ type: Output
238
+ }], monthSelected: [{
239
+ type: Output
240
+ }], viewChanged: [{
241
+ type: Output
242
+ }], userSelection: [{
243
+ type: Output
244
+ }], userDragDrop: [{
245
+ type: Output
246
+ }] } });
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUkzRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQzs7O0FBTzFILE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUF3Qkk7O1dBRUc7UUFDTSxjQUFTLEdBQXFCLE9BQU8sQ0FBQztRQXVEL0MsZ0VBQWdFO1FBQ3ZELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFekIsc0RBQXNEO1FBQ25DLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFM0U7OztXQUdHO1FBQ2dCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUzRDs7O1dBR0c7UUFDZ0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVEOztXQUVHO1FBQ2dCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLENBQW1CLElBQUksQ0FBQyxDQUFDO1FBRTFFLHVDQUF1QztRQUNwQixrQkFB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QUF2RCxTQUFTO3VCQUFDLDhCQUE4QjtnQkFJckMsT0FBTztzQkFEVixLQUFLO2dCQVdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0YsUUFBUTtzQkFEWCxLQUFLO2dCQWdCRixPQUFPO3NCQURWLEtBQUs7Z0JBV0YsT0FBTztzQkFEVixLQUFLO2dCQVVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUdHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR2EsY0FBYztzQkFBaEMsTUFBTTtnQkFNWSxZQUFZO3NCQUE5QixNQUFNO2dCQU1ZLGFBQWE7c0JBQS9CLE1BQU07Z0JBS1ksV0FBVztzQkFBN0IsTUFBTTtnQkFHWSxhQUFhO3NCQUEvQixNQUFNO2dCQUdZLFlBQVk7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9wdGlvbmFsVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcbmltcG9ydCB7IERhdGVTZXJ2aWNlIH0gZnJvbSAnQHVwZGV2cy9zZGsvY29yZSc7XG5cbmltcG9ydCB7IERhdGVSYW5nZU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZGF0ZS1yYW5nZS5tb2RlbCc7XG5pbXBvcnQgeyBDYWxlbmRhclZpZXdUeXBlIH0gZnJvbSAnLi90eXBlcy9jYWxlbmRhci12aWV3LnR5cGUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJVc2VyRXZlbnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2NhbGVuZGFyLXVzZXItZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDZWxsQ2xhc3NGdW5jdGlvblR5cGUgfSBmcm9tICcuL3R5cGVzL2NhbGVuZGFyLWNlbGwtY2xhc3MtZnVuY3Rpb24udHlwZSc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYWxlbmRhci1tb250aC12aWV3L2NhbGVuZGFyLW1vbnRoLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyWWVhclZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FsZW5kYXIteWVhci12aWV3L2NhbGVuZGFyLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNdWx0aVllYXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGVuZGFyLW11bHRpLXllYXItdmlldy9jYWxlbmRhci1tdWx0aS15ZWFyLXZpZXcuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1cGQtY2FsZW5kYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uQ2hhbmdlcyB7XG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBtb250aCB2aWV3IGNvbXBvbmVudC4gKi9cbiAgICBAVmlld0NoaWxkKENhbGVuZGFyTW9udGhWaWV3Q29tcG9uZW50KSBtb250aFZpZXc/OiBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudDtcblxuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgeWVhciB2aWV3IGNvbXBvbmVudC4gKi9cbiAgICBAVmlld0NoaWxkKENhbGVuZGFyWWVhclZpZXdDb21wb25lbnQpIHllYXJWaWV3PzogQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudDtcblxuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgbXVsdGkteWVhciB2aWV3IGNvbXBvbmVudC4gKi9cbiAgICBAVmlld0NoaWxkKENhbGVuZGFyTXVsdGlZZWFyVmlld0NvbXBvbmVudCkgbXVsdGlZZWFyVmlldz86IENhbGVuZGFyTXVsdGlZZWFyVmlld0NvbXBvbmVudDtcblxuICAgIC8qKiBBIGRhdGUgcmVwcmVzZW50aW5nIHRoZSBwZXJpb2QgKG1vbnRoIG9yIHllYXIpIHRvIHN0YXJ0IHRoZSBjYWxlbmRhciBpbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBzdGFydEF0KCk6IE9wdGlvbmFsVHlwZTxEYXRlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFydEF0O1xuICAgIH1cbiAgICBzZXQgc3RhcnRBdCh2YWx1ZTogT3B0aW9uYWxUeXBlPERhdGU+KSB7XG4gICAgICAgIHRoaXMuX3N0YXJ0QXQgPSB0aGlzLmRhdGVTZXJ2aWNlLmdldFZhbGlkT3JVbmRlZmluZWQodGhpcy5kYXRlU2VydmljZS5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNhbGVuZGFyIHNob3VsZCBiZSBzdGFydGVkIGluIG1vbnRoIG9yIHllYXIgdmlldy5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdGFydFZpZXc6IENhbGVuZGFyVmlld1R5cGUgPSAnbW9udGgnO1xuICAgIC8qKlxuICAgICAqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBzZWxlY3RlZCgpOiBEYXRlUmFuZ2VNb2RlbCB8IE9wdGlvbmFsVHlwZTxEYXRlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgICB9XG4gICAgc2V0IHNlbGVjdGVkKHZhbHVlOiBEYXRlUmFuZ2VNb2RlbCB8IE9wdGlvbmFsVHlwZTxEYXRlPikge1xuICAgICAgICBjb25zb2xlLmxvZygnc2V0dGluZyBzZWxlY3RlZCcsIHZhbHVlKTtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZVJhbmdlTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHRoaXMuZGF0ZVNlcnZpY2UuZ2V0VmFsaWRPclVuZGVmaW5lZCh0aGlzLmRhdGVTZXJ2aWNlLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIG1pbmltdW0gc2VsZWN0YWJsZSBkYXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG1pbkRhdGUoKTogT3B0aW9uYWxUeXBlPERhdGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XG4gICAgfVxuICAgIHNldCBtaW5EYXRlKHZhbHVlOiBPcHRpb25hbFR5cGU8RGF0ZT4pIHtcbiAgICAgICAgdGhpcy5fbWluRGF0ZSA9IHRoaXMuZGF0ZVNlcnZpY2UuZ2V0VmFsaWRPclVuZGVmaW5lZCh0aGlzLmRhdGVTZXJ2aWNlLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIHNlbGVjdGFibGUgZGF0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBtYXhEYXRlKCk6IE9wdGlvbmFsVHlwZTxEYXRlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhEYXRlO1xuICAgIH1cbiAgICBzZXQgbWF4RGF0ZSh2YWx1ZTogT3B0aW9uYWxUeXBlPERhdGU+KSB7XG4gICAgICAgIHRoaXMuX21heERhdGUgPSB0aGlzLmRhdGVTZXJ2aWNlLmdldFZhbGlkT3JVbmRlZmluZWQodGhpcy5kYXRlU2VydmljZS5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGZpbHRlciB3aGljaCBkYXRlcyBhcmUgc2VsZWN0YWJsZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBkYXRlRmlsdGVyPzogKGRhdGU6IERhdGUpID0+IGJvb2xlYW47XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCB0byBhZGQgY3VzdG9tIENTUyBjbGFzc2VzIHRvIGRhdGVzLiAqL1xuICAgIEBJbnB1dCgpIGRhdGVDbGFzcz86IENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb25UeXBlO1xuXG4gICAgLyoqIFN0YXJ0IG9mIHRoZSBjb21wYXJpc29uIHJhbmdlLiAqL1xuICAgIEBJbnB1dCgpIGNvbXBhcmlzb25TdGFydD86IERhdGU7XG5cbiAgICAvKiogRW5kIG9mIHRoZSBjb21wYXJpc29uIHJhbmdlLiAqL1xuICAgIEBJbnB1dCgpIGNvbXBhcmlzb25FbmQ/OiBEYXRlO1xuXG4gICAgLyoqIEFSSUEgQWNjZXNzaWJsZSBuYW1lIG9mIHRoZSBgPGlucHV0IG1hdFN0YXJ0RGF0ZS8+YCAqL1xuICAgIEBJbnB1dCgpIHN0YXJ0RGF0ZUFjY2Vzc2libGVOYW1lPzogc3RyaW5nO1xuXG4gICAgLyoqIEFSSUEgQWNjZXNzaWJsZSBuYW1lIG9mIHRoZSBgPGlucHV0IG1hdEVuZERhdGUvPmAgKi9cbiAgICBASW5wdXQoKSBlbmREYXRlQWNjZXNzaWJsZU5hbWU/OiBzdHJpbmc7XG4gICAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaXMgY3VycmVudGx5IHNlbGVjdGluZyBhIHJhbmdlIG9mIGRhdGVzLiAqL1xuICAgIEBJbnB1dCgpIGlzUmFuZ2UgPSBmYWxzZTtcblxuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZSBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8T3B0aW9uYWxUeXBlPERhdGU+PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgdGhlIHllYXIgY2hvc2VuIGluIG11bHRpeWVhciB2aWV3LlxuICAgICAqIFRoaXMgZG9lc24ndCBpbXBseSBhIGNoYW5nZSBvbiB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgeWVhclNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgdGhlIG1vbnRoIGNob3NlbiBpbiB5ZWFyIHZpZXcuXG4gICAgICogVGhpcyBkb2Vzbid0IGltcGx5IGEgY2hhbmdlIG9uIHRoZSBzZWxlY3RlZCBkYXRlLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBtb250aFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiB0aGUgY3VycmVudCB2aWV3IGNoYW5nZXMuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHZpZXdDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhclZpZXdUeXBlPih0cnVlKTtcblxuICAgIC8qKiBFbWl0cyB3aGVuIGFueSBkYXRlIGlzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB1c2VyU2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhclVzZXJFdmVudE1vZGVsPE9wdGlvbmFsVHlwZTxEYXRlPj4+KCk7XG5cbiAgICAvKiogRW1pdHMgYSBuZXcgZGF0ZSByYW5nZSB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNvbXBsZXRlcyBhIGRyYWcgZHJvcCBvcGVyYXRpb24uICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHVzZXJEcmFnRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FsZW5kYXJVc2VyRXZlbnRNb2RlbDxEYXRlUmFuZ2VNb2RlbD4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCBhY3RpdmUgZGF0ZS4gVGhpcyBkZXRlcm1pbmVzIHdoaWNoIHRpbWUgcGVyaW9kIGlzIHNob3duIGFuZCB3aGljaCBkYXRlIGlzXG4gICAgICogaGlnaGxpZ2h0ZWQgd2hlbiB1c2luZyBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICAgICAqL1xuICAgIGdldCBhY3RpdmVEYXRlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xhbXBlZEFjdGl2ZURhdGU7XG4gICAgfVxuICAgIHNldCBhY3RpdmVEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIHRoaXMuX2NsYW1wZWRBY3RpdmVEYXRlID0gdGhpcy5kYXRlU2VydmljZS5jbGFtcCh2YWx1ZSwgdGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgY2FsZW5kYXIgaXMgaW4gbW9udGggdmlldy4gKi9cbiAgICBnZXQgY3VycmVudFZpZXcoKTogQ2FsZW5kYXJWaWV3VHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50VmlldztcbiAgICB9XG4gICAgc2V0IGN1cnJlbnRWaWV3KHZhbHVlOiBDYWxlbmRhclZpZXdUeXBlKSB7XG4gICAgICAgIGNvbnN0IHZpZXdDaGFuZ2VkUmVzdWx0ID0gdGhpcy5fY3VycmVudFZpZXcgIT09IHZhbHVlID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRWaWV3ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX21vdmVGb2N1c09uTmV4dFRpY2sgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIGlmICh2aWV3Q2hhbmdlZFJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy52aWV3Q2hhbmdlZC5lbWl0KHZpZXdDaGFuZ2VkUmVzdWx0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBPcmlnaW4gb2YgYWN0aXZlIGRyYWcsIG9yIG51bGwgd2hlbiBkcmFnZ2luZyBpcyBub3QgYWN0aXZlLiAqL1xuICAgIHByb3RlY3RlZCBfYWN0aXZlRHJhZz86IENhbGVuZGFyVXNlckV2ZW50TW9kZWw8RGF0ZT47XG5cbiAgICBwcml2YXRlIF9jbGFtcGVkQWN0aXZlRGF0ZSE6IERhdGU7XG4gICAgcHJpdmF0ZSBfc3RhcnRBdD86IERhdGU7XG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQ/OiBEYXRlUmFuZ2VNb2RlbCB8IERhdGU7XG4gICAgcHJpdmF0ZSBfbWluRGF0ZT86IERhdGU7XG4gICAgcHJpdmF0ZSBfbWF4RGF0ZT86IERhdGU7XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGZvciBzY2hlZHVsaW5nIHRoYXQgZm9jdXMgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBhY3RpdmUgY2VsbCBvbiB0aGUgbmV4dCB0aWNrLlxuICAgICAqIFdlIG5lZWQgdG8gc2NoZWR1bGUgaXQsIHJhdGhlciB0aGFuIGRvIGl0IGltbWVkaWF0ZWx5LCBiZWNhdXNlIHdlIGhhdmUgdG8gd2FpdFxuICAgICAqIGZvciBBbmd1bGFyIHRvIHJlLWV2YWx1YXRlIHRoZSB2aWV3IGNoaWxkcmVuLlxuICAgICAqL1xuICAgIHByaXZhdGUgX21vdmVGb2N1c09uTmV4dFRpY2sgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9jdXJyZW50VmlldyE6IENhbGVuZGFyVmlld1R5cGU7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVTZXJ2aWNlID0gaW5qZWN0KERhdGVTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuc3RhcnRBdCB8fCBuZXcgRGF0ZSgpO1xuICAgICAgICAvLyBBc3NpZ24gdG8gdGhlIHByaXZhdGUgcHJvcGVydHkgc2luY2Ugd2UgZG9uJ3Qgd2FudCB0byBtb3ZlIGZvY3VzIG9uIGluaXQuXG4gICAgICAgIHRoaXMuX2N1cnJlbnRWaWV3ID0gdGhpcy5zdGFydFZpZXc7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fbW92ZUZvY3VzT25OZXh0VGljaykge1xuICAgICAgICAgICAgdGhpcy5fbW92ZUZvY3VzT25OZXh0VGljayA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5mb2N1c0FjdGl2ZUNlbGwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgLy8gSWdub3JlIGRhdGUgY2hhbmdlcyB0aGF0IGFyZSBhdCBhIGRpZmZlcmVudCB0aW1lIG9uIHRoZSBzYW1lIGRheS4gVGhpcyBmaXhlcyBpc3N1ZXMgd2hlcmVcbiAgICAgICAgLy8gdGhlIGNhbGVuZGFyIHJlLXJlbmRlcnMgd2hlbiB0aGVyZSBpcyBubyBtZWFuaW5nZnVsIGNoYW5nZSB0byBbbWluRGF0ZV0gb3IgW21heERhdGVdXG4gICAgICAgIC8vICgjMjQ0MzUpLlxuICAgICAgICBjb25zdCBtaW5EYXRlQ2hhbmdlOiBPcHRpb25hbFR5cGU8U2ltcGxlQ2hhbmdlPiA9XG4gICAgICAgICAgICBjaGFuZ2VzWydtaW5EYXRlJ10gJiYgIXRoaXMuZGF0ZVNlcnZpY2UuYXJlRXF1YWwoY2hhbmdlc1snbWluRGF0ZSddLnByZXZpb3VzVmFsdWUsIGNoYW5nZXNbJ21pbkRhdGUnXS5jdXJyZW50VmFsdWUpXG4gICAgICAgICAgICAgICAgPyBjaGFuZ2VzWydtaW5EYXRlJ11cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgbWF4RGF0ZUNoYW5nZTogT3B0aW9uYWxUeXBlPFNpbXBsZUNoYW5nZT4gPVxuICAgICAgICAgICAgY2hhbmdlc1snbWF4RGF0ZSddICYmICF0aGlzLmRhdGVTZXJ2aWNlLmFyZUVxdWFsKGNoYW5nZXNbJ21heERhdGUnXS5wcmV2aW91c1ZhbHVlLCBjaGFuZ2VzWydtYXhEYXRlJ10uY3VycmVudFZhbHVlKVxuICAgICAgICAgICAgICAgID8gY2hhbmdlc1snbWF4RGF0ZSddXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3QgY2hhbmdlID0gbWluRGF0ZUNoYW5nZSB8fCBtYXhEYXRlQ2hhbmdlIHx8IGNoYW5nZXNbJ2RhdGVGaWx0ZXInXTtcblxuICAgICAgICBpZiAoY2hhbmdlICYmICFjaGFuZ2UuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLl9nZXRDdXJyZW50Vmlld0NvbXBvbmVudCgpO1xuXG4gICAgICAgICAgICBpZiAodmlldykge1xuICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gYGRldGVjdENoYW5nZXNgIG1hbnVhbGx5IGhlcmUsIGJlY2F1c2UgdGhlIGBtaW5EYXRlYCwgYG1heERhdGVgIGV0Yy4gYXJlXG4gICAgICAgICAgICAgICAgLy8gcGFzc2VkIGRvd24gdG8gdGhlIHZpZXcgdmlhIGRhdGEgYmluZGluZ3Mgd2hpY2ggd29uJ3QgYmUgdXAtdG8tZGF0ZSB3aGVuIHdlIGNhbGwgYF9pbml0YC5cbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgdmlldy5pbml0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRm9jdXNlcyB0aGUgYWN0aXZlIGRhdGUuICovXG4gICAgZm9jdXNBY3RpdmVDZWxsKCkge1xuICAgICAgICB0aGlzLl9nZXRDdXJyZW50Vmlld0NvbXBvbmVudCgpLmZvY3VzQWN0aXZlQ2VsbChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZXMgdG9kYXkncyBkYXRlIGFmdGVyIGFuIHVwZGF0ZSBvZiB0aGUgYWN0aXZlIGRhdGUgKi9cbiAgICB1cGRhdGVUb2RheXNEYXRlKCkge1xuICAgICAgICB0aGlzLl9nZXRDdXJyZW50Vmlld0NvbXBvbmVudCgpLmluaXQoKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyBkYXRlIHNlbGVjdGlvbiBpbiB0aGUgbW9udGggdmlldy4gKi9cbiAgICBfZGF0ZVNlbGVjdGVkKGV2ZW50OiBDYWxlbmRhclVzZXJFdmVudE1vZGVsPE9wdGlvbmFsVHlwZTxEYXRlPj4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IGV2ZW50LnZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkIGluc3RhbmNlb2YgRGF0ZVJhbmdlTW9kZWwgfHwgKGRhdGUgJiYgIXRoaXMuZGF0ZVNlcnZpY2UuYXJlRXF1YWwoZGF0ZSwgdGhpcy5zZWxlY3RlZCkpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQoZGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVzZXJTZWxlY3Rpb24uZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXMgeWVhciBzZWxlY3Rpb24gaW4gdGhlIG11bHRpeWVhciB2aWV3LiAqL1xuICAgIF95ZWFyU2VsZWN0ZWRJbk11bHRpWWVhclZpZXcobm9ybWFsaXplZFllYXI6IERhdGUpIHtcbiAgICAgICAgdGhpcy55ZWFyU2VsZWN0ZWQuZW1pdChub3JtYWxpemVkWWVhcik7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXMgbW9udGggc2VsZWN0aW9uIGluIHRoZSB5ZWFyIHZpZXcuICovXG4gICAgX21vbnRoU2VsZWN0ZWRJblllYXJWaWV3KG5vcm1hbGl6ZWRNb250aDogRGF0ZSkge1xuICAgICAgICB0aGlzLm1vbnRoU2VsZWN0ZWQuZW1pdChub3JtYWxpemVkTW9udGgpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIHllYXIvbW9udGggc2VsZWN0aW9uIGluIHRoZSBtdWx0aS15ZWFyL3llYXIgdmlld3MuICovXG4gICAgX2dvVG9EYXRlSW5WaWV3KGRhdGU6IERhdGUsIHZpZXc6IENhbGVuZGFyVmlld1R5cGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5jdXJyZW50VmlldyA9IHZpZXc7XG4gICAgfVxuXG4gICAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHN0YXJ0cyBkcmFnZ2luZyB0byBjaGFuZ2UgYSBkYXRlIHJhbmdlLiAqL1xuICAgIF9kcmFnU3RhcnRlZChldmVudDogQ2FsZW5kYXJVc2VyRXZlbnRNb2RlbDxEYXRlPikge1xuICAgICAgICB0aGlzLl9hY3RpdmVEcmFnID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gYSBkcmFnIGNvbXBsZXRlcy4gSXQgbWF5IGVuZCBpbiBjYW5jZWxhdGlvbiBvciBpbiB0aGUgc2VsZWN0aW9uXG4gICAgICogb2YgYSBuZXcgcmFuZ2UuXG4gICAgICovXG4gICAgX2RyYWdFbmRlZChldmVudDogQ2FsZW5kYXJVc2VyRXZlbnRNb2RlbDxPcHRpb25hbFR5cGU8RGF0ZVJhbmdlTW9kZWw+Pikge1xuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZURyYWcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51c2VyRHJhZ0Ryb3AuZW1pdChldmVudCBhcyBDYWxlbmRhclVzZXJFdmVudE1vZGVsPERhdGVSYW5nZU1vZGVsPik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9hY3RpdmVEcmFnID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBjb21wb25lbnQgaW5zdGFuY2UgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgY3VycmVudCBjYWxlbmRhciB2aWV3LiAqL1xuICAgIHByaXZhdGUgX2dldEN1cnJlbnRWaWV3Q29tcG9uZW50KCk6IENhbGVuZGFyTW9udGhWaWV3Q29tcG9uZW50IHwgQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudCB8IENhbGVuZGFyTXVsdGlZZWFyVmlld0NvbXBvbmVudCB7XG4gICAgICAgIC8vIFRoZSByZXR1cm4gdHlwZSBpcyBleHBsaWNpdGx5IHdyaXR0ZW4gYXMgYSB1bmlvbiB0byBlbnN1cmUgdGhhdCB0aGUgQ2xvc3VyZSBjb21waWxlciBkb2VzXG4gICAgICAgIC8vIG5vdCBvcHRpbWl6ZSBjYWxscyB0byBfaW5pdCgpLiBXaXRob3V0IHRoZSBleHBsaWNpdCByZXR1cm4gdHlwZSwgVHlwZVNjcmlwdCBuYXJyb3dzIGl0IHRvXG4gICAgICAgIC8vIG9ubHkgdGhlIGZpcnN0IGNvbXBvbmVudCB0eXBlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvMjI5OTYuXG4gICAgICAgIHJldHVybiAodGhpcy5tb250aFZpZXcgfHwgdGhpcy55ZWFyVmlldyB8fCB0aGlzLm11bHRpWWVhclZpZXcpITtcbiAgICB9XG59XG4iLCJAc3dpdGNoIChjdXJyZW50Vmlldykge1xuICAgIEBjYXNlICgnbW9udGgnKSB7XG4gICAgICAgIDx1cGQtY2FsZW5kYXItbW9udGgtdmlldyBbKGFjdGl2ZURhdGUpXT1cImFjdGl2ZURhdGVcIiBbaXNSYW5nZV09XCJpc1JhbmdlXCIgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCIgW2RhdGVGaWx0ZXJdPVwiZGF0ZUZpbHRlclwiXG4gICAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCIgW21pbkRhdGVdPVwibWluRGF0ZVwiIFtkYXRlQ2xhc3NdPVwiZGF0ZUNsYXNzXCIgW2NvbXBhcmlzb25TdGFydF09XCJjb21wYXJpc29uU3RhcnRcIlxuICAgICAgICAgICAgW2NvbXBhcmlzb25FbmRdPVwiY29tcGFyaXNvbkVuZFwiIFtzdGFydERhdGVBY2Nlc3NpYmxlTmFtZV09XCJzdGFydERhdGVBY2Nlc3NpYmxlTmFtZVwiXG4gICAgICAgICAgICBbZW5kRGF0ZUFjY2Vzc2libGVOYW1lXT1cImVuZERhdGVBY2Nlc3NpYmxlTmFtZVwiICh1c2VyU2VsZWN0aW9uKT1cIl9kYXRlU2VsZWN0ZWQoJGV2ZW50KVwiIChkcmFnU3RhcnRlZCk9XCJfZHJhZ1N0YXJ0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoZHJhZ0VuZGVkKT1cIl9kcmFnRW5kZWQoJGV2ZW50KVwiIFthY3RpdmVEcmFnXT1cIl9hY3RpdmVEcmFnXCI+XG4gICAgICAgIDwvdXBkLWNhbGVuZGFyLW1vbnRoLXZpZXc+XG4gICAgfVxuICAgIEBjYXNlICgneWVhcicpIHtcbiAgICAgICAgWUVBUiFcbiAgICAgICAgICAgIDwhLS0gICAgICAgIDx1cGQtY2FsZW5kYXIteWVhci12aWV3LS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgWyhhY3RpdmVEYXRlKV09XCJhY3RpdmVEYXRlXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIFtkYXRlRmlsdGVyXT1cImRhdGVGaWx0ZXJcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIFtkYXRlQ2xhc3NdPVwiZGF0ZUNsYXNzXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJfbW9udGhTZWxlY3RlZEluWWVhclZpZXcoJGV2ZW50KVwiLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIl9nb1RvRGF0ZUluVmlldygkZXZlbnQsICdtb250aCcpXCI+PC91cGQtY2FsZW5kYXIteWVhci12aWV3Pi0tPlxuICAgIH1cbiAgICBAY2FzZSAoJ211bHRpLXllYXInKSB7XG4gICAgICAgIE1VVU1VTVVVTFRJLVlFQVIhXG4gICAgICAgICAgICA8IS0tICAgICAgICA8dXBkLWNhbGVuZGFyLW11bHRpLXllYXItdmlldy0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIFsoYWN0aXZlRGF0ZSldPVwiYWN0aXZlRGF0ZVwiLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICBbZGF0ZUZpbHRlcl09XCJkYXRlRmlsdGVyXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICBbZGF0ZUNsYXNzXT1cImRhdGVDbGFzc1wiLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJfeWVhclNlbGVjdGVkSW5NdWx0aVllYXJWaWV3KCRldmVudClcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJfZ29Ub0RhdGVJblZpZXcoJGV2ZW50LCAneWVhcicpXCI+PC91cGQtY2FsZW5kYXItbXVsdGkteWVhci12aWV3Pi0tPlxuICAgIH1cbn1cbiJdfQ==