@updevs/components 1.0.0-alpha.4 → 1.0.0-alpha.40

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 (827) hide show
  1. package/README.md +4 -7
  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 +78 -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.component.mjs +52 -0
  247. package/esm2022/layout/partials/footer/footer.module.mjs +28 -0
  248. package/esm2022/layout/partials/footer/public-api.mjs +3 -0
  249. package/esm2022/layout/partials/header/header-style.type.mjs +2 -0
  250. package/esm2022/layout/partials/header/header.component.mjs +130 -0
  251. package/esm2022/layout/partials/header/header.module.mjs +40 -0
  252. package/esm2022/layout/partials/header/public-api.mjs +4 -0
  253. package/esm2022/layout/partials/page-header/page-header.component.mjs +15 -0
  254. package/esm2022/layout/partials/page-header/public-api.mjs +2 -0
  255. package/esm2022/layout/partials/public-api.mjs +5 -0
  256. package/esm2022/layout/partials/sidebar/public-api.mjs +2 -0
  257. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +123 -0
  258. package/esm2022/layout/public-api.mjs +8 -0
  259. package/esm2022/layout/services/public-api.mjs +2 -0
  260. package/esm2022/layout/services/upd-layout-config.service.mjs +21 -0
  261. package/esm2022/layout/tools/layout.constants.mjs +15 -0
  262. package/esm2022/layout/upd-layout.module.mjs +47 -0
  263. package/esm2022/layout/updevs-components-layout.mjs +5 -0
  264. package/esm2022/lib/index.mjs +2 -0
  265. package/esm2022/lib/models/public-api.mjs +2 -0
  266. package/esm2022/lib/models/row-column-size.mjs +2 -0
  267. package/esm2022/lib/public-api.mjs +5 -0
  268. package/esm2022/lib/tools/column-size.helper.mjs +12 -0
  269. package/esm2022/lib/tools/public-api.mjs +2 -0
  270. package/esm2022/lib/types/component-size.type.mjs +2 -0
  271. package/esm2022/lib/types/horizontal-vertical.type.mjs +2 -0
  272. package/esm2022/lib/types/public-api.mjs +4 -0
  273. package/esm2022/lib/types/validation-status.type.mjs +2 -0
  274. package/esm2022/lib/upd-components.module.mjs +14 -0
  275. package/esm2022/link/index.mjs +2 -0
  276. package/esm2022/link/link.component.mjs +51 -0
  277. package/esm2022/link/public-api.mjs +4 -0
  278. package/esm2022/link/target.type.mjs +2 -0
  279. package/esm2022/link/upd-link.module.mjs +24 -0
  280. package/esm2022/link/updevs-components-link.mjs +5 -0
  281. package/esm2022/list/assets/i18n/en.json +9 -0
  282. package/esm2022/list/assets/i18n/pt.json +9 -0
  283. package/esm2022/list/index.mjs +2 -0
  284. package/esm2022/list/list.component.mjs +113 -0
  285. package/esm2022/list/models/badge-position.type.mjs +2 -0
  286. package/esm2022/list/models/list-item.mjs +2 -0
  287. package/esm2022/list/models/list-item.model.mjs +15 -0
  288. package/esm2022/list/models/public-api.mjs +3 -0
  289. package/esm2022/list/public-api.mjs +4 -0
  290. package/esm2022/list/upd-list.module.mjs +44 -0
  291. package/esm2022/list/updevs-components-list.mjs +5 -0
  292. package/esm2022/modal/assets/i18n/en.json +17 -0
  293. package/esm2022/modal/assets/i18n/pt.json +17 -0
  294. package/esm2022/modal/components/modal-container/modal-container.component.mjs +216 -0
  295. package/esm2022/modal/index.mjs +2 -0
  296. package/esm2022/modal/models/base.modal.mjs +14 -0
  297. package/esm2022/modal/models/modal-config.model.mjs +20 -0
  298. package/esm2022/modal/models/modal-ref.mjs +2 -0
  299. package/esm2022/modal/models/modal.config.mjs +2 -0
  300. package/esm2022/modal/models/public-api.mjs +4 -0
  301. package/esm2022/modal/public-api.mjs +4 -0
  302. package/esm2022/modal/services/modal-alert.service.mjs +99 -0
  303. package/esm2022/modal/services/modal.service.mjs +30 -0
  304. package/esm2022/modal/services/public-api.mjs +3 -0
  305. package/esm2022/modal/types/modal-footer-style.type.mjs +2 -0
  306. package/esm2022/modal/types/modal-size.type.mjs +2 -0
  307. package/esm2022/modal/upd-modal.module.mjs +90 -0
  308. package/esm2022/modal/updevs-components-modal.mjs +5 -0
  309. package/esm2022/paginator/assets/i18n/en.json +15 -0
  310. package/esm2022/paginator/assets/i18n/pt.json +15 -0
  311. package/esm2022/paginator/index.mjs +2 -0
  312. package/esm2022/paginator/paginator.component.mjs +66 -0
  313. package/esm2022/paginator/public-api.mjs +3 -0
  314. package/esm2022/paginator/upd-paginator.module.mjs +47 -0
  315. package/esm2022/paginator/updevs-components-paginator.mjs +5 -0
  316. package/esm2022/popover/index.mjs +2 -0
  317. package/esm2022/popover/popover.component.mjs +65 -0
  318. package/esm2022/popover/popover.directive.mjs +129 -0
  319. package/esm2022/popover/public-api.mjs +4 -0
  320. package/esm2022/popover/upd-popover.module.mjs +29 -0
  321. package/esm2022/popover/updevs-components-popover.mjs +5 -0
  322. package/esm2022/public-api.mjs +2 -0
  323. package/esm2022/table/abstractions/base-column.model.mjs +52 -0
  324. package/esm2022/table/abstractions/base.column.mjs +98 -0
  325. package/esm2022/table/abstractions/filters-operands.service.mjs +3 -0
  326. package/esm2022/table/abstractions/public-api.mjs +3 -0
  327. package/esm2022/table/assets/i18n/en.json +74 -0
  328. package/esm2022/table/assets/i18n/pt.json +74 -0
  329. package/esm2022/table/components/columns/boolean-column/boolean-column.component.mjs +26 -0
  330. package/esm2022/table/components/columns/date-time-column/date-time-column.component.mjs +13 -0
  331. package/esm2022/table/components/columns/number-column/number-column.component.mjs +13 -0
  332. package/esm2022/table/components/columns/text-column/text-column.component.mjs +31 -0
  333. package/esm2022/table/components/columns-manager/columns-manager.component.mjs +36 -0
  334. package/esm2022/table/components/filter-row/filter-row.component.mjs +114 -0
  335. package/esm2022/table/components/save-search/save-search.component.mjs +72 -0
  336. package/esm2022/table/components/search-section/search-section.component.mjs +93 -0
  337. package/esm2022/table/directives/public-api.mjs +2 -0
  338. package/esm2022/table/directives/table-column.directive.mjs +52 -0
  339. package/esm2022/table/index.mjs +2 -0
  340. package/esm2022/table/models/columns/boolean-column.model.mjs +22 -0
  341. package/esm2022/table/models/columns/date-time-column.model.mjs +16 -0
  342. package/esm2022/table/models/columns/guid-column.model.mjs +13 -0
  343. package/esm2022/table/models/columns/image-column.model.mjs +11 -0
  344. package/esm2022/table/models/columns/number-column.model.mjs +17 -0
  345. package/esm2022/table/models/columns/public-api.mjs +7 -0
  346. package/esm2022/table/models/columns/text-column.model.mjs +11 -0
  347. package/esm2022/table/models/enums/column-type.enum.mjs +15 -0
  348. package/esm2022/table/models/enums/public-api.mjs +2 -0
  349. package/esm2022/table/models/filter-item.model.mjs +2 -0
  350. package/esm2022/table/models/filter-operand.config.mjs +2 -0
  351. package/esm2022/table/models/operands-lists/boolean-filter-operands-list.model.mjs +25 -0
  352. package/esm2022/table/models/operands-lists/date-filter-operands-list.model.mjs +25 -0
  353. package/esm2022/table/models/operands-lists/date-or-number-operands-list.config.mjs +31 -0
  354. package/esm2022/table/models/operands-lists/filter-operands-list.config.mjs +31 -0
  355. package/esm2022/table/models/operands-lists/guid-filter-operands-list.model.mjs +16 -0
  356. package/esm2022/table/models/operands-lists/number-filter-operands-list.model.mjs +25 -0
  357. package/esm2022/table/models/operands-lists/string-filter-operands-list.model.mjs +45 -0
  358. package/esm2022/table/models/public-api.mjs +5 -0
  359. package/esm2022/table/models/saved-view.model.mjs +2 -0
  360. package/esm2022/table/models/table-config.model.mjs +29 -0
  361. package/esm2022/table/models/table.config.mjs +2 -0
  362. package/esm2022/table/models/upd-table-config.model.mjs +9 -0
  363. package/esm2022/table/models/upd-table.config.mjs +2 -0
  364. package/esm2022/table/public-api.mjs +6 -0
  365. package/esm2022/table/services/default-filters-operands.service.mjs +60 -0
  366. package/esm2022/table/services/storages/saved-views.storage.mjs +56 -0
  367. package/esm2022/table/services/stores/filters-operands.store.mjs +19 -0
  368. package/esm2022/table/services/upd-table-config.service.mjs +18 -0
  369. package/esm2022/table/table.component.mjs +442 -0
  370. package/esm2022/table/tools/filters.tools.mjs +48 -0
  371. package/esm2022/table/tools/table.constants.mjs +15 -0
  372. package/esm2022/table/upd-table.module.mjs +150 -0
  373. package/esm2022/table/updevs-components-table.mjs +5 -0
  374. package/esm2022/updevs-components.mjs +5 -0
  375. package/fesm2022/updevs-components-badge.mjs +91 -0
  376. package/fesm2022/updevs-components-badge.mjs.map +1 -0
  377. package/fesm2022/updevs-components-button.mjs +193 -0
  378. package/fesm2022/updevs-components-button.mjs.map +1 -0
  379. package/fesm2022/updevs-components-calendar.mjs +1712 -0
  380. package/fesm2022/updevs-components-calendar.mjs.map +1 -0
  381. package/fesm2022/updevs-components-card.mjs +238 -0
  382. package/fesm2022/updevs-components-card.mjs.map +1 -0
  383. package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
  384. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
  385. package/fesm2022/updevs-components-dropdown.mjs +226 -0
  386. package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
  387. package/fesm2022/updevs-components-form-controls-abstractions.mjs +53 -0
  388. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
  389. package/fesm2022/updevs-components-form-controls-checkbox.mjs +87 -0
  390. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
  391. package/fesm2022/updevs-components-form-controls-date-picker.mjs +190 -0
  392. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
  393. package/fesm2022/updevs-components-form-controls-file-upload.mjs +264 -0
  394. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  395. package/fesm2022/updevs-components-form-controls-input.mjs +259 -0
  396. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
  397. package/fesm2022/updevs-components-form-controls-radio.mjs +87 -0
  398. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
  399. package/fesm2022/updevs-components-form-controls-select.mjs +417 -0
  400. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
  401. package/fesm2022/updevs-components-form-controls-textarea.mjs +72 -0
  402. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
  403. package/fesm2022/updevs-components-form-controls-time-picker.mjs +345 -0
  404. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
  405. package/fesm2022/updevs-components-form.mjs +436 -0
  406. package/fesm2022/updevs-components-form.mjs.map +1 -0
  407. package/fesm2022/updevs-components-layout.mjs +933 -0
  408. package/fesm2022/updevs-components-layout.mjs.map +1 -0
  409. package/fesm2022/updevs-components-link.mjs +79 -0
  410. package/fesm2022/updevs-components-link.mjs.map +1 -0
  411. package/fesm2022/updevs-components-list.mjs +206 -0
  412. package/fesm2022/updevs-components-list.mjs.map +1 -0
  413. package/fesm2022/updevs-components-modal.mjs +504 -0
  414. package/fesm2022/updevs-components-modal.mjs.map +1 -0
  415. package/fesm2022/updevs-components-paginator.mjs +160 -0
  416. package/fesm2022/updevs-components-paginator.mjs.map +1 -0
  417. package/fesm2022/updevs-components-popover.mjs +223 -0
  418. package/fesm2022/updevs-components-popover.mjs.map +1 -0
  419. package/fesm2022/updevs-components-table.mjs +1771 -0
  420. package/fesm2022/updevs-components-table.mjs.map +1 -0
  421. package/fesm2022/updevs-components.mjs +33 -0
  422. package/fesm2022/updevs-components.mjs.map +1 -0
  423. package/form/components/dynamic-field/dynamic-field.component.d.ts +55 -0
  424. package/form/form.component.d.ts +60 -0
  425. package/form/models/checkbox-field.model.d.ts +4 -0
  426. package/form/models/checkbox-group-field.model.d.ts +6 -0
  427. package/form/models/dynamic-field.model.d.ts +28 -0
  428. package/form/models/enums/dynamic-field.type.d.ts +12 -0
  429. package/form/models/enums/public-api.d.ts +1 -0
  430. package/form/models/file-upload-field.model.d.ts +16 -0
  431. package/form/models/form-config.d.ts +2 -0
  432. package/form/models/form-row.model.d.ts +10 -0
  433. package/form/models/input-field.model.d.ts +9 -0
  434. package/form/models/public-api.d.ts +14 -0
  435. package/form/models/radio-field.model.d.ts +4 -0
  436. package/form/models/radio-group-field.model.d.ts +6 -0
  437. package/form/models/select-field.model.d.ts +28 -0
  438. package/form/models/single-select-field.model.d.ts +4 -0
  439. package/form/models/textarea-field.model.d.ts +10 -0
  440. package/form/models/validator-config.d.ts +5 -0
  441. package/form/public-api.d.ts +3 -0
  442. package/form/tools/errors-helper.d.ts +11 -0
  443. package/form/upd-form.module.d.ts +22 -0
  444. package/form-controls/abstractions/base-control.d.ts +29 -0
  445. package/form-controls/abstractions/index.d.ts +2 -0
  446. package/form-controls/abstractions/public-api.d.ts +2 -0
  447. package/form-controls/checkbox/checkbox.component.d.ts +19 -0
  448. package/form-controls/checkbox/{src/public-api.ts → public-api.d.ts} +0 -1
  449. package/form-controls/checkbox/upd-checkbox.module.d.ts +10 -0
  450. package/form-controls/date-picker/date-picker.component.d.ts +87 -0
  451. package/form-controls/date-picker/public-api.d.ts +2 -0
  452. package/form-controls/date-picker/upd-date-picker.module.d.ts +12 -0
  453. package/form-controls/file-upload/file-upload-changed.event.d.ts +4 -0
  454. package/form-controls/file-upload/file-upload.component.d.ts +46 -0
  455. package/form-controls/file-upload/public-api.d.ts +3 -0
  456. package/form-controls/file-upload/upd-file-upload.module.d.ts +14 -0
  457. package/form-controls/input/directives/input-append.directive.d.ts +7 -0
  458. package/form-controls/input/directives/input-prepend.directive.d.ts +7 -0
  459. package/form-controls/input/input.component.d.ts +64 -0
  460. package/form-controls/input/upd-input.module.d.ts +13 -0
  461. package/form-controls/radio/radio.component.d.ts +17 -0
  462. package/form-controls/radio/upd-radio.module.d.ts +10 -0
  463. package/form-controls/select/components/multiple/select-multiple.component.d.ts +25 -0
  464. package/form-controls/select/components/single/select.component.d.ts +26 -0
  465. package/form-controls/select/models/abstractions/base-select.component.d.ts +77 -0
  466. package/form-controls/select/models/defaults.d.ts +8 -0
  467. package/form-controls/select/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  468. package/form-controls/select/{src/models/select-item.ts → models/select-item.d.ts} +0 -1
  469. package/form-controls/select/upd-select.module.d.ts +16 -0
  470. package/form-controls/textarea/textarea.component.d.ts +19 -0
  471. package/form-controls/textarea/upd-textarea.module.d.ts +8 -0
  472. package/form-controls/time-picker/time-picker.component.d.ts +78 -0
  473. package/form-controls/time-picker/time-selector/time-selector.component.d.ts +69 -0
  474. package/form-controls/time-picker/upd-time-picker.module.d.ts +17 -0
  475. package/index.d.ts +2 -0
  476. package/layout/abstractions/base-page.component.d.ts +12 -0
  477. package/layout/abstractions/base.layout.d.ts +15 -0
  478. package/layout/index.d.ts +1 -0
  479. package/layout/layouts/blank-layout/blank-layout.component.d.ts +9 -0
  480. package/layout/layouts/blank-layout/blank-layout.module.d.ts +15 -0
  481. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +6 -0
  482. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +21 -0
  483. package/layout/models/login-page-config.model.d.ts +46 -0
  484. package/layout/models/login-page.config.d.ts +44 -0
  485. package/layout/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  486. package/layout/models/security-layout-config.model.d.ts +12 -0
  487. package/layout/models/security-layout.config.d.ts +10 -0
  488. package/layout/models/upd-layout-config.model.d.ts +48 -0
  489. package/layout/{src/models/upd-layout.config.ts → models/upd-layout.config.d.ts} +9 -0
  490. package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +12 -0
  491. package/layout/pages/auth-flow/auth-flow.module.d.ts +20 -0
  492. package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +5 -0
  493. package/layout/pages/auth-flow/login/login.component.d.ts +26 -0
  494. package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +5 -0
  495. package/layout/partials/footer/footer.component.d.ts +34 -0
  496. package/layout/partials/footer/footer.module.d.ts +9 -0
  497. package/layout/partials/footer/public-api.d.ts +2 -0
  498. package/layout/partials/header/header.component.d.ts +48 -0
  499. package/layout/partials/header/header.module.d.ts +12 -0
  500. package/layout/{src/partials/header/public-api.ts → partials/header/public-api.d.ts} +1 -0
  501. package/layout/partials/page-header/page-header.component.d.ts +7 -0
  502. package/layout/partials/sidebar/sidebar.component.d.ts +25 -0
  503. package/layout/services/upd-layout-config.service.d.ts +15 -0
  504. package/layout/{src/tools/layout.constants.ts → tools/layout.constants.d.ts} +3 -6
  505. package/layout/upd-layout.module.d.ts +19 -0
  506. package/lib/index.d.ts +2 -0
  507. package/lib/models/public-api.d.ts +2 -0
  508. package/lib/models/row-column-size.d.ts +6 -0
  509. package/lib/public-api.d.ts +5 -0
  510. package/lib/tools/column-size.helper.d.ts +6 -0
  511. package/lib/tools/public-api.d.ts +2 -0
  512. package/{src/lib/types/component-size.type.ts → lib/types/component-size.type.d.ts} +1 -0
  513. package/lib/types/horizontal-vertical.type.d.ts +2 -0
  514. package/lib/types/public-api.d.ts +4 -0
  515. package/lib/types/validation-status.type.d.ts +2 -0
  516. package/lib/upd-components.module.d.ts +7 -0
  517. package/link/index.d.ts +1 -0
  518. package/link/link.component.d.ts +22 -0
  519. package/link/upd-link.module.d.ts +8 -0
  520. package/list/index.d.ts +1 -0
  521. package/list/list.component.d.ts +46 -0
  522. package/list/{src/models/list-item.ts → models/list-item.d.ts} +3 -4
  523. package/list/models/list-item.model.d.ts +25 -0
  524. package/list/upd-list.module.d.ts +13 -0
  525. package/modal/components/modal-container/modal-container.component.d.ts +74 -0
  526. package/modal/index.d.ts +1 -0
  527. package/modal/models/base.modal.d.ts +8 -0
  528. package/modal/models/modal-config.model.d.ts +32 -0
  529. package/modal/models/modal-ref.d.ts +6 -0
  530. package/modal/models/modal.config.d.ts +30 -0
  531. package/modal/models/public-api.d.ts +3 -0
  532. package/modal/public-api.d.ts +3 -0
  533. package/modal/services/modal-alert.service.d.ts +22 -0
  534. package/modal/services/modal.service.d.ts +12 -0
  535. package/modal/services/public-api.d.ts +2 -0
  536. package/modal/types/modal-footer-style.type.d.ts +1 -0
  537. package/modal/types/modal-size.type.d.ts +1 -0
  538. package/modal/upd-modal.module.d.ts +18 -0
  539. package/package.json +169 -21
  540. package/paginator/index.d.ts +1 -0
  541. package/paginator/paginator.component.d.ts +42 -0
  542. package/paginator/public-api.d.ts +2 -0
  543. package/paginator/upd-paginator.module.d.ts +14 -0
  544. package/popover/index.d.ts +1 -0
  545. package/popover/popover.component.d.ts +22 -0
  546. package/popover/popover.directive.d.ts +33 -0
  547. package/popover/upd-popover.module.d.ts +9 -0
  548. package/public-api.d.ts +2 -0
  549. package/table/abstractions/base-column.model.d.ts +31 -0
  550. package/table/abstractions/base.column.d.ts +22 -0
  551. package/table/abstractions/filters-operands.service.d.ts +8 -0
  552. package/table/abstractions/public-api.d.ts +2 -0
  553. package/table/components/columns/boolean-column/boolean-column.component.d.ts +9 -0
  554. package/table/components/columns/date-time-column/date-time-column.component.d.ts +7 -0
  555. package/table/components/columns/number-column/number-column.component.d.ts +7 -0
  556. package/table/components/columns/text-column/text-column.component.d.ts +9 -0
  557. package/table/components/columns-manager/columns-manager.component.d.ts +15 -0
  558. package/table/components/filter-row/filter-row.component.d.ts +40 -0
  559. package/table/components/save-search/save-search.component.d.ts +17 -0
  560. package/table/components/search-section/search-section.component.d.ts +36 -0
  561. package/table/directives/public-api.d.ts +1 -0
  562. package/table/directives/table-column.directive.d.ts +14 -0
  563. package/table/index.d.ts +1 -0
  564. package/table/models/columns/boolean-column.model.d.ts +15 -0
  565. package/table/models/columns/date-time-column.model.d.ts +8 -0
  566. package/table/models/columns/guid-column.model.d.ts +4 -0
  567. package/table/models/columns/image-column.model.d.ts +6 -0
  568. package/table/models/columns/number-column.model.d.ts +8 -0
  569. package/table/models/columns/public-api.d.ts +6 -0
  570. package/table/models/columns/text-column.model.d.ts +6 -0
  571. package/table/models/enums/column-type.enum.d.ts +13 -0
  572. package/table/models/enums/public-api.d.ts +1 -0
  573. package/table/models/filter-item.model.d.ts +6 -0
  574. package/table/models/filter-operand.config.d.ts +9 -0
  575. package/table/models/operands-lists/boolean-filter-operands-list.model.d.ts +6 -0
  576. package/table/models/operands-lists/date-filter-operands-list.model.d.ts +6 -0
  577. package/table/models/operands-lists/date-or-number-operands-list.config.d.ts +5 -0
  578. package/table/models/operands-lists/filter-operands-list.config.d.ts +5 -0
  579. package/table/models/operands-lists/guid-filter-operands-list.model.d.ts +6 -0
  580. package/table/models/operands-lists/number-filter-operands-list.model.d.ts +6 -0
  581. package/table/models/operands-lists/string-filter-operands-list.model.d.ts +6 -0
  582. package/table/models/public-api.d.ts +4 -0
  583. package/table/models/saved-view.model.d.ts +11 -0
  584. package/table/models/table-config.model.d.ts +33 -0
  585. package/table/models/table.config.d.ts +31 -0
  586. package/table/models/upd-table-config.model.d.ts +6 -0
  587. package/table/models/upd-table.config.d.ts +6 -0
  588. package/table/public-api.d.ts +5 -0
  589. package/table/services/default-filters-operands.service.d.ts +17 -0
  590. package/table/services/storages/saved-views.storage.d.ts +19 -0
  591. package/table/services/stores/filters-operands.store.d.ts +11 -0
  592. package/table/services/upd-table-config.service.d.ts +12 -0
  593. package/table/table.component.d.ts +81 -0
  594. package/table/tools/filters.tools.d.ts +9 -0
  595. package/table/tools/table.constants.d.ts +15 -0
  596. package/table/upd-table.module.d.ts +40 -0
  597. package/CHANGELOG.md +0 -8
  598. package/button/index.ts +0 -1
  599. package/button/ng-package.json +0 -7
  600. package/button/src/button.component.html +0 -8
  601. package/button/src/button.component.scss +0 -5
  602. package/button/src/button.component.spec.ts +0 -23
  603. package/button/src/button.component.ts +0 -154
  604. package/button/src/upd-button.module.ts +0 -17
  605. package/card/index.ts +0 -1
  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/index.ts +0 -1
  622. package/dropdown/ng-package.json +0 -7
  623. package/dropdown/src/dropdown.component.html +0 -32
  624. package/dropdown/src/dropdown.component.scss +0 -19
  625. package/dropdown/src/dropdown.component.spec.ts +0 -23
  626. package/dropdown/src/dropdown.component.ts +0 -182
  627. package/dropdown/src/models/public-api.ts +0 -2
  628. package/dropdown/src/upd-dropdown.module.ts +0 -25
  629. package/form/index.ts +0 -1
  630. package/form/ng-package.json +0 -7
  631. package/form/src/form.module.ts +0 -10
  632. package/form/src/public-api.ts +0 -1
  633. package/form-controls/checkbox/index.ts +0 -1
  634. package/form-controls/checkbox/ng-package.json +0 -7
  635. package/form-controls/checkbox/src/checkbox.component.html +0 -7
  636. package/form-controls/checkbox/src/checkbox.component.scss +0 -0
  637. package/form-controls/checkbox/src/checkbox.component.spec.ts +0 -23
  638. package/form-controls/checkbox/src/checkbox.component.ts +0 -48
  639. package/form-controls/checkbox/src/upd-checkbox.module.ts +0 -19
  640. package/form-controls/input/index.ts +0 -1
  641. package/form-controls/input/ng-package.json +0 -7
  642. package/form-controls/input/src/directives/input-append.directive.spec.ts +0 -8
  643. package/form-controls/input/src/directives/input-append.directive.ts +0 -11
  644. package/form-controls/input/src/directives/input-prepend.directive.spec.ts +0 -8
  645. package/form-controls/input/src/directives/input-prepend.directive.ts +0 -11
  646. package/form-controls/input/src/input.component.html +0 -82
  647. package/form-controls/input/src/input.component.scss +0 -13
  648. package/form-controls/input/src/input.component.spec.ts +0 -23
  649. package/form-controls/input/src/input.component.ts +0 -124
  650. package/form-controls/input/src/upd-input.module.ts +0 -29
  651. package/form-controls/radio/index.ts +0 -1
  652. package/form-controls/radio/ng-package.json +0 -7
  653. package/form-controls/radio/src/radio.component.html +0 -7
  654. package/form-controls/radio/src/radio.component.scss +0 -0
  655. package/form-controls/radio/src/radio.component.spec.ts +0 -23
  656. package/form-controls/radio/src/radio.component.ts +0 -47
  657. package/form-controls/radio/src/upd-radio.module.ts +0 -17
  658. package/form-controls/select/index.ts +0 -1
  659. package/form-controls/select/ng-package.json +0 -7
  660. package/form-controls/select/src/components/multiple/select-multiple.component.html +0 -41
  661. package/form-controls/select/src/components/multiple/select-multiple.component.scss +0 -6
  662. package/form-controls/select/src/components/multiple/select-multiple.component.spec.ts +0 -21
  663. package/form-controls/select/src/components/multiple/select-multiple.component.ts +0 -69
  664. package/form-controls/select/src/components/shared.scss +0 -40
  665. package/form-controls/select/src/components/single/select.component.html +0 -53
  666. package/form-controls/select/src/components/single/select.component.scss +0 -3
  667. package/form-controls/select/src/components/single/select.component.spec.ts +0 -23
  668. package/form-controls/select/src/components/single/select.component.ts +0 -58
  669. package/form-controls/select/src/models/abstractions/base-select.component.ts +0 -259
  670. package/form-controls/select/src/upd-select.module.ts +0 -32
  671. package/form-controls/textarea/index.ts +0 -1
  672. package/form-controls/textarea/ng-package.json +0 -7
  673. package/form-controls/textarea/src/textarea.component.html +0 -8
  674. package/form-controls/textarea/src/textarea.component.scss +0 -0
  675. package/form-controls/textarea/src/textarea.component.spec.ts +0 -23
  676. package/form-controls/textarea/src/textarea.component.ts +0 -47
  677. package/form-controls/textarea/src/upd-textarea.module.ts +0 -17
  678. package/form-controls/time-picker/index.ts +0 -1
  679. package/form-controls/time-picker/ng-package.json +0 -7
  680. package/form-controls/time-picker/src/time-picker.component.html +0 -17
  681. package/form-controls/time-picker/src/time-picker.component.scss +0 -10
  682. package/form-controls/time-picker/src/time-picker.component.spec.ts +0 -21
  683. package/form-controls/time-picker/src/time-picker.component.ts +0 -110
  684. package/form-controls/time-picker/src/time-selector/time-selector.component.html +0 -44
  685. package/form-controls/time-picker/src/time-selector/time-selector.component.scss +0 -47
  686. package/form-controls/time-picker/src/time-selector/time-selector.component.spec.ts +0 -21
  687. package/form-controls/time-picker/src/time-selector/time-selector.component.ts +0 -107
  688. package/form-controls/time-picker/src/upd-time-picker.module.ts +0 -39
  689. package/index.ts +0 -1
  690. package/layout/index.ts +0 -1
  691. package/layout/ng-package.json +0 -7
  692. package/layout/src/abstractions/base-page.component.ts +0 -21
  693. package/layout/src/assets/i18n/en.json +0 -5
  694. package/layout/src/assets/i18n/pt.json +0 -5
  695. package/layout/src/layouts/blank-layout/blank-layout.component.html +0 -1
  696. package/layout/src/layouts/blank-layout/blank-layout.component.scss +0 -0
  697. package/layout/src/layouts/blank-layout/blank-layout.component.spec.ts +0 -23
  698. package/layout/src/layouts/blank-layout/blank-layout.component.ts +0 -10
  699. package/layout/src/layouts/blank-layout/blank-layout.module.ts +0 -17
  700. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.html +0 -14
  701. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.scss +0 -0
  702. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.spec.ts +0 -23
  703. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.ts +0 -31
  704. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.ts +0 -52
  705. package/layout/src/models/upd-layout-config.model.ts +0 -71
  706. package/layout/src/pages/auth-flow/auth-flow-routing.module.ts +0 -21
  707. package/layout/src/pages/auth-flow/auth-flow.module.ts +0 -29
  708. package/layout/src/pages/auth-flow/logged-out/logged-out.component.html +0 -1
  709. package/layout/src/pages/auth-flow/logged-out/logged-out.component.scss +0 -0
  710. package/layout/src/pages/auth-flow/logged-out/logged-out.component.spec.ts +0 -23
  711. package/layout/src/pages/auth-flow/logged-out/logged-out.component.ts +0 -10
  712. package/layout/src/pages/auth-flow/login/login.component.html +0 -96
  713. package/layout/src/pages/auth-flow/login/login.component.scss +0 -0
  714. package/layout/src/pages/auth-flow/login/login.component.spec.ts +0 -23
  715. package/layout/src/pages/auth-flow/login/login.component.ts +0 -26
  716. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.html +0 -1
  717. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.scss +0 -0
  718. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.spec.ts +0 -23
  719. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.ts +0 -10
  720. package/layout/src/partials/footer/footer-copyright.directive.spec.ts +0 -8
  721. package/layout/src/partials/footer/footer-copyright.directive.ts +0 -9
  722. package/layout/src/partials/footer/footer.component.html +0 -30
  723. package/layout/src/partials/footer/footer.component.scss +0 -0
  724. package/layout/src/partials/footer/footer.component.spec.ts +0 -23
  725. package/layout/src/partials/footer/footer.component.ts +0 -73
  726. package/layout/src/partials/footer/public-api.ts +0 -2
  727. package/layout/src/partials/header/header.component.html +0 -163
  728. package/layout/src/partials/header/header.component.scss +0 -0
  729. package/layout/src/partials/header/header.component.spec.ts +0 -23
  730. package/layout/src/partials/header/header.component.ts +0 -86
  731. package/layout/src/partials/page-header/page-header.component.html +0 -19
  732. package/layout/src/partials/page-header/page-header.component.scss +0 -0
  733. package/layout/src/partials/page-header/page-header.component.spec.ts +0 -23
  734. package/layout/src/partials/page-header/page-header.component.ts +0 -11
  735. package/layout/src/partials/sidebar/sidebar.component.html +0 -62
  736. package/layout/src/partials/sidebar/sidebar.component.scss +0 -0
  737. package/layout/src/partials/sidebar/sidebar.component.spec.ts +0 -23
  738. package/layout/src/partials/sidebar/sidebar.component.ts +0 -161
  739. package/layout/src/services/upd-layout-config.service.spec.ts +0 -16
  740. package/layout/src/services/upd-layout-config.service.ts +0 -20
  741. package/layout/src/upd-layout.module.ts +0 -34
  742. package/link/index.ts +0 -1
  743. package/link/ng-package.json +0 -7
  744. package/link/src/link.component.html +0 -3
  745. package/link/src/link.component.scss +0 -3
  746. package/link/src/link.component.spec.ts +0 -23
  747. package/link/src/link.component.ts +0 -48
  748. package/link/src/upd-link.module.ts +0 -17
  749. package/list/index.ts +0 -1
  750. package/list/ng-package.json +0 -7
  751. package/list/src/assets/i18n/en.json +0 -5
  752. package/list/src/assets/i18n/pt.json +0 -5
  753. package/list/src/list.component.html +0 -58
  754. package/list/src/list.component.scss +0 -21
  755. package/list/src/list.component.spec.ts +0 -23
  756. package/list/src/list.component.ts +0 -147
  757. package/list/src/models/list-item.model.ts +0 -35
  758. package/list/src/upd-list.module.ts +0 -30
  759. package/ng-package.json +0 -10
  760. package/popover/index.ts +0 -1
  761. package/popover/ng-package.json +0 -7
  762. package/popover/src/popover.component.html +0 -20
  763. package/popover/src/popover.component.scss +0 -8
  764. package/popover/src/popover.component.spec.ts +0 -23
  765. package/popover/src/popover.component.ts +0 -53
  766. package/popover/src/popover.directive.spec.ts +0 -8
  767. package/popover/src/popover.directive.ts +0 -128
  768. package/popover/src/upd-popover.module.ts +0 -20
  769. package/src/lib/public-api.ts +0 -2
  770. package/src/lib/types/public-api.ts +0 -2
  771. package/src/lib/types/validation-status.type.ts +0 -1
  772. package/src/lib/upd-components.module.ts +0 -6
  773. package/src/public-api.ts +0 -1
  774. package/tsconfig.lib.json +0 -14
  775. package/tsconfig.lib.prod.json +0 -10
  776. package/tsconfig.spec.json +0 -14
  777. /package/{button/src/index.ts → badge/index.d.ts} +0 -0
  778. /package/{card/src/index.ts → button/index.d.ts} +0 -0
  779. /package/button/{src/public-api.ts → public-api.d.ts} +0 -0
  780. /package/{dropdown/src/index.ts → calendar/index.d.ts} +0 -0
  781. /package/card/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  782. /package/{form-controls/checkbox/src/index.ts → card/index.d.ts} +0 -0
  783. /package/card/{src/public-api.ts → public-api.d.ts} +0 -0
  784. /package/card/{src/types/card-state.type.ts → types/card-state.type.d.ts} +0 -0
  785. /package/card/{src/types/card-style.type.ts → types/card-style.type.d.ts} +0 -0
  786. /package/card/{src/types/hover-effect.type.ts → types/hover-effect.type.d.ts} +0 -0
  787. /package/card/{src/types/ribbon-style.type.ts → types/ribbon-style.type.d.ts} +0 -0
  788. /package/card/{src/types/status-position.type.ts → types/status-position.type.d.ts} +0 -0
  789. /package/{form-controls/input/src/index.ts → drag-and-drop/index.d.ts} +0 -0
  790. /package/{form-controls/radio/src/index.ts → dropdown/index.d.ts} +0 -0
  791. /package/dropdown/{src/public-api.ts → public-api.d.ts} +0 -0
  792. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/en.json +0 -0
  793. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/pt.json +0 -0
  794. /package/{src/lib/index.ts → form/index.d.ts} +0 -0
  795. /package/form-controls/{select/src/index.ts → checkbox/index.d.ts} +0 -0
  796. /package/form-controls/{textarea/src/index.ts → date-picker/index.d.ts} +0 -0
  797. /package/form-controls/{time-picker/src/index.ts → file-upload/index.d.ts} +0 -0
  798. /package/form-controls/input/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  799. /package/{form/src/index.ts → form-controls/input/index.d.ts} +0 -0
  800. /package/form-controls/input/{src/public-api.ts → public-api.d.ts} +0 -0
  801. /package/form-controls/input/{src/types/input.type.ts → types/input.type.d.ts} +0 -0
  802. /package/form-controls/input/{src/types/loader-position.type.ts → types/loader-position.type.d.ts} +0 -0
  803. /package/form-controls/input/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
  804. /package/{layout/src/index.ts → form-controls/radio/index.d.ts} +0 -0
  805. /package/form-controls/radio/{src/public-api.ts → public-api.d.ts} +0 -0
  806. /package/{link/src/index.ts → form-controls/select/index.d.ts} +0 -0
  807. /package/form-controls/select/{src/public-api.ts → public-api.d.ts} +0 -0
  808. /package/{list/src/index.ts → form-controls/textarea/index.d.ts} +0 -0
  809. /package/form-controls/textarea/{src/public-api.ts → public-api.d.ts} +0 -0
  810. /package/{popover/src/index.ts → form-controls/time-picker/index.d.ts} +0 -0
  811. /package/form-controls/time-picker/{src/public-api.ts → public-api.d.ts} +0 -0
  812. /package/layout/{src/abstractions/public-api.ts → abstractions/public-api.d.ts} +0 -0
  813. /package/layout/{src/layouts/public-api.ts → layouts/public-api.d.ts} +0 -0
  814. /package/layout/{src/pages/auth-flow/public-api.ts → pages/auth-flow/public-api.d.ts} +0 -0
  815. /package/layout/{src/pages/public-api.ts → pages/public-api.d.ts} +0 -0
  816. /package/layout/{src/partials/header/header-style.type.ts → partials/header/header-style.type.d.ts} +0 -0
  817. /package/layout/{src/partials/page-header/public-api.ts → partials/page-header/public-api.d.ts} +0 -0
  818. /package/layout/{src/partials/public-api.ts → partials/public-api.d.ts} +0 -0
  819. /package/layout/{src/partials/sidebar/public-api.ts → partials/sidebar/public-api.d.ts} +0 -0
  820. /package/layout/{src/public-api.ts → public-api.d.ts} +0 -0
  821. /package/layout/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
  822. /package/link/{src/public-api.ts → public-api.d.ts} +0 -0
  823. /package/link/{src/target.type.ts → target.type.d.ts} +0 -0
  824. /package/list/{src/models/badge-position.type.ts → models/badge-position.type.d.ts} +0 -0
  825. /package/list/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  826. /package/list/{src/public-api.ts → public-api.d.ts} +0 -0
  827. /package/popover/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,144 @@
1
+ import { Component, inject } from '@angular/core';
2
+ import { DateService } from '@updevs/sdk/core';
3
+ import { CalendarService } from '../../services/calendar.service';
4
+ import { CalendarSignalsService } from '../../services/calendar-signals.service';
5
+ import { yearsPerPage } from '../calendar-multi-year-view/calendar-multi-year-view.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@updevs/components/button";
8
+ import * as i2 from "@jsverse/transloco";
9
+ import * as i3 from "@updevs/icons";
10
+ let calendarHeaderId = 1;
11
+ export class CalendarHeaderComponent {
12
+ constructor() {
13
+ this.id = `upd-calendar-header-${calendarHeaderId++}`;
14
+ this.calendarService = inject(CalendarService);
15
+ this.calendarSignalsService = inject(CalendarSignalsService);
16
+ this.dateService = inject(DateService);
17
+ }
18
+ /**
19
+ * The `aria-label` for changing the calendar view.
20
+ */
21
+ get periodButtonLabel() {
22
+ return this.calendarSignalsService.currentView() === 'month' ? 'SwitchToMultiYearView' : 'SwitchToMonthView';
23
+ }
24
+ /**
25
+ * The label for the previous button.
26
+ */
27
+ get prevButtonLabel() {
28
+ return {
29
+ 'month': 'PreviousMonth',
30
+ 'year': 'PreviousYear',
31
+ 'multi-year': 'PreviousMultiYear'
32
+ }[this.calendarSignalsService.currentView()];
33
+ }
34
+ /**
35
+ * The label for the next button.
36
+ */
37
+ get nextButtonLabel() {
38
+ return {
39
+ 'month': 'NextMonth',
40
+ 'year': 'NextYear',
41
+ 'multi-year': 'NextMultiYear'
42
+ }[this.calendarSignalsService.currentView()];
43
+ }
44
+ /**
45
+ * Whether the selected view is not a month.
46
+ */
47
+ get isNotMonth() {
48
+ return this.calendarSignalsService.currentView() !== 'month';
49
+ }
50
+ /**
51
+ * ID of the label of the period button.
52
+ */
53
+ get periodButtonLabelId() {
54
+ return `${this.id}-period-label`;
55
+ }
56
+ get minYearOfPageLabel() {
57
+ return this.dateService.getYearName(this.dateService.create(this.minYearOfPage, 0, 1));
58
+ }
59
+ get maxYearOfPageLabel() {
60
+ const maxYearOfPage = this.minYearOfPage + yearsPerPage - 1;
61
+ return this.dateService.getYearName(this.dateService.create(maxYearOfPage, 0, 1));
62
+ }
63
+ get periodText() {
64
+ if (this.calendarSignalsService.currentView() === 'month') {
65
+ return this.dateService
66
+ .format(this.calendarSignalsService.activeDate(), { year: 'numeric', month: 'short' })
67
+ .toLocaleUpperCase();
68
+ }
69
+ if (this.calendarSignalsService.currentView() === 'year') {
70
+ return this.dateService.getYearName(this.calendarSignalsService.activeDate());
71
+ }
72
+ return '';
73
+ }
74
+ get minYearOfPage() {
75
+ // The offset from the active year to the "slot" for the starting year is the
76
+ // *actual* first rendered year in the multi-year view, and the last year is
77
+ // just yearsPerPage - 1 away.
78
+ const activeDate = this.calendarSignalsService.activeDate();
79
+ const activeYear = activeDate.getFullYear();
80
+ const offset = this.calendarService.getMultiYearActiveOffset(activeDate, this.calendarSignalsService.minDate(), this.calendarSignalsService.maxDate());
81
+ return activeYear - offset;
82
+ }
83
+ /**
84
+ * Handles user clicks on the period label.
85
+ */
86
+ currentPeriodClicked() {
87
+ this.calendarSignalsService.currentView = this.calendarSignalsService.currentView() === 'month' ? 'multi-year' : 'month';
88
+ }
89
+ /**
90
+ * Handles user clicks on the previous button.
91
+ */
92
+ previousClicked() {
93
+ this.calendarSignalsService.activeDate =
94
+ this.calendarSignalsService.currentView() === 'month'
95
+ ? this.dateService.addMonths(this.calendarSignalsService.activeDate(), -1)
96
+ : this.dateService.addYears(this.calendarSignalsService.activeDate(), this.calendarSignalsService.currentView() === 'year' ? -1 : -yearsPerPage);
97
+ }
98
+ /**
99
+ * Handles user clicks on the next button.
100
+ */
101
+ nextClicked() {
102
+ this.calendarSignalsService.activeDate =
103
+ this.calendarSignalsService.currentView() === 'month'
104
+ ? this.dateService.addMonths(this.calendarSignalsService.activeDate(), 1)
105
+ : this.dateService.addYears(this.calendarSignalsService.activeDate(), this.calendarSignalsService.currentView() === 'year' ? 1 : yearsPerPage);
106
+ }
107
+ /**
108
+ * Whether the previous period button is enabled.
109
+ */
110
+ previousEnabled() {
111
+ if (!this.calendarSignalsService.minDate()) {
112
+ return true;
113
+ }
114
+ return !this.calendarSignalsService.minDate()
115
+ || !this.isSameView(this.calendarSignalsService.activeDate(), this.calendarSignalsService.minDate());
116
+ }
117
+ /**
118
+ * Whether the next period button is enabled.
119
+ */
120
+ nextEnabled() {
121
+ return !this.calendarSignalsService.maxDate()
122
+ || !this.isSameView(this.calendarSignalsService.activeDate(), this.calendarSignalsService.maxDate());
123
+ }
124
+ /**
125
+ * Whether the two dates represent the same view in the current view mode (month or year).
126
+ */
127
+ isSameView(date1, date2) {
128
+ if (this.calendarSignalsService.currentView() === 'month') {
129
+ return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth();
130
+ }
131
+ if (this.calendarSignalsService.currentView() === 'year') {
132
+ return date1.getFullYear() === date2.getFullYear();
133
+ }
134
+ // Otherwise we are in 'multi-year' view.
135
+ return this.calendarService.isSameMultiYearView(date1, date2, this.calendarSignalsService.minDate(), this.calendarSignalsService.maxDate());
136
+ }
137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CalendarHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: CalendarHeaderComponent, selector: "upd-calendar-header", ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Calendar'\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col d-flex\">\n <label [id]=\"periodButtonLabelId\" class=\"visually-hidden\" aria-live=\"polite\">\n {{ periodText || t('YearRangeLabel', { start: minYearOfPageLabel, end: maxYearOfPageLabel }) }}\n </label>\n\n <upd-button [isIcon]=\"true\" [iconModel]=\"{tablerIcon:'chevron-left'}\" [isDisabled]=\"!previousEnabled()\"\n (clicked)=\"previousClicked()\" [attr.aria-label]=\"t(prevButtonLabel)\">\n </upd-button>\n\n <upd-button (click)=\"currentPeriodClicked()\" [attr.aria-label]=\"t(periodButtonLabel)\"\n [attr.aria-describedby]=\"periodButtonLabelId\" customClasses=\"mx-1 flex-grow-1\">\n <span aria-hidden=\"true\">\n {{ periodText || t('YearRange', { start: minYearOfPageLabel, end: maxYearOfPageLabel }) }}\n </span>\n <upd-icon [tablerIcon]=\"!isNotMonth ? 'chevron-down' : 'chevron-up'\"></upd-icon>\n </upd-button>\n\n <upd-button [isIcon]=\"true\" [iconModel]=\"{tablerIcon:'chevron-right'}\" [isDisabled]=\"!nextEnabled()\"\n (clicked)=\"nextClicked()\" [attr.aria-label]=\"t(nextButtonLabel)\">\n </upd-button>\n </div>\n </div>\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i3.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }] }); }
139
+ }
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CalendarHeaderComponent, decorators: [{
141
+ type: Component,
142
+ args: [{ selector: 'upd-calendar-header', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Calendar'\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col d-flex\">\n <label [id]=\"periodButtonLabelId\" class=\"visually-hidden\" aria-live=\"polite\">\n {{ periodText || t('YearRangeLabel', { start: minYearOfPageLabel, end: maxYearOfPageLabel }) }}\n </label>\n\n <upd-button [isIcon]=\"true\" [iconModel]=\"{tablerIcon:'chevron-left'}\" [isDisabled]=\"!previousEnabled()\"\n (clicked)=\"previousClicked()\" [attr.aria-label]=\"t(prevButtonLabel)\">\n </upd-button>\n\n <upd-button (click)=\"currentPeriodClicked()\" [attr.aria-label]=\"t(periodButtonLabel)\"\n [attr.aria-describedby]=\"periodButtonLabelId\" customClasses=\"mx-1 flex-grow-1\">\n <span aria-hidden=\"true\">\n {{ periodText || t('YearRange', { start: minYearOfPageLabel, end: maxYearOfPageLabel }) }}\n </span>\n <upd-icon [tablerIcon]=\"!isNotMonth ? 'chevron-down' : 'chevron-up'\"></upd-icon>\n </upd-button>\n\n <upd-button [isIcon]=\"true\" [iconModel]=\"{tablerIcon:'chevron-right'}\" [isDisabled]=\"!nextEnabled()\"\n (clicked)=\"nextClicked()\" [attr.aria-label]=\"t(nextButtonLabel)\">\n </upd-button>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
143
+ }] });
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvY29tcG9uZW50cy9jYWxlbmRhci1oZWFkZXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvY29tcG9uZW50cy9jYWxlbmRhci1oZWFkZXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7OztBQUU5RixJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQU96QixNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBdUZZLE9BQUUsR0FBRyx1QkFBdUIsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDO1FBQ3hDLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFDLDJCQUFzQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3hELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBMkV0RDtJQS9KRzs7T0FFRztJQUNILElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMs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QXVCO2tHQUF2Qix1QkFBdUIsMkRDZHBDLGkvQ0EyQkE7OzJGRGJhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDSSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZVNlcnZpY2UgfSBmcm9tICdAdXBkZXZzL3Nkay9jb3JlJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBDYWxlbmRhclNpZ25hbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FsZW5kYXItc2lnbmFscy5zZXJ2aWNlJztcbmltcG9ydCB7IHllYXJzUGVyUGFnZSB9IGZyb20gJy4uL2NhbGVuZGFyLW11bHRpLXllYXItdmlldy9jYWxlbmRhci1tdWx0aS15ZWFyLXZpZXcuY29tcG9uZW50JztcblxubGV0IGNhbGVuZGFySGVhZGVySWQgPSAxO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1jYWxlbmRhci1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFySGVhZGVyQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBUaGUgYGFyaWEtbGFiZWxgIGZvciBjaGFuZ2luZyB0aGUgY2FsZW5kYXIgdmlldy5cbiAgICAgKi9cbiAgICBnZXQgcGVyaW9kQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsZW5kYXJTaWduYWxzU2VydmljZS5jdXJyZW50VmlldygpID09PSAnbW9udGgnID8gJ1N3aXRjaFRvTXVsdGlZZWFyVmlldycgOiAnU3dpdGNoVG9Nb250aFZpZXcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBmb3IgdGhlIHByZXZpb3VzIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBnZXQgcHJldkJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnbW9udGgnOiAnUHJldmlvdXNNb250aCcsXG4gICAgICAgICAgICAneWVhcic6ICdQcmV2aW91c1llYXInLFxuICAgICAgICAgICAgJ211bHRpLXllYXInOiAnUHJldmlvdXNNdWx0aVllYXInXG4gICAgICAgIH1bdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLmN1cnJlbnRWaWV3KCldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBmb3IgdGhlIG5leHQgYnV0dG9uLlxuICAgICAqL1xuICAgIGdldCBuZXh0QnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdtb250aCc6ICdOZXh0TW9udGgnLFxuICAgICAgICAgICAgJ3llYXInOiAnTmV4dFllYXInLFxuICAgICAgICAgICAgJ211bHRpLXllYXInOiAnTmV4dE11bHRpWWVhcidcbiAgICAgICAgfVt0aGlzLmNhbGVuZGFyU2lnbmFsc1NlcnZpY2UuY3VycmVudFZpZXcoKV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgc2VsZWN0ZWQgdmlldyBpcyBub3QgYSBtb250aC5cbiAgICAgKi9cbiAgICBnZXQgaXNOb3RNb250aCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsZW5kYXJTaWduYWxzU2VydmljZS5jdXJyZW50VmlldygpICE9PSAnbW9udGgnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElEIG9mIHRoZSBsYWJlbCBvZiB0aGUgcGVyaW9kIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBnZXQgcGVyaW9kQnV0dG9uTGFiZWxJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5pZH0tcGVyaW9kLWxhYmVsYDtcbiAgICB9XG5cbiAgICBnZXQgbWluWWVhck9mUGFnZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVTZXJ2aWNlLmdldFllYXJOYW1lKHRoaXMuZGF0ZVNlcnZpY2UuY3JlYXRlKHRoaXMubWluWWVhck9mUGFnZSwgMCwgMSkpO1xuICAgIH1cblxuICAgIGdldCBtYXhZZWFyT2ZQYWdlTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbWF4WWVhck9mUGFnZSA9IHRoaXMubWluWWVhck9mUGFnZSArIHllYXJzUGVyUGFnZSAtIDE7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVTZXJ2aWNlLmdldFllYXJOYW1lKHRoaXMuZGF0ZVNlcnZpY2UuY3JlYXRlKG1heFllYXJPZlBhZ2UsIDAsIDEpKTtcbiAgICB9XG5cbiAgICBnZXQgcGVyaW9kVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLmN1cnJlbnRWaWV3KCkgPT09ICdtb250aCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGVTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmZvcm1hdCh0aGlzLmNhbGVuZGFyU2lnbmFsc1NlcnZpY2UuYWN0aXZlRGF0ZSgpLCB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICdzaG9ydCcgfSlcbiAgICAgICAgICAgICAgICAudG9Mb2NhbGVVcHBlckNhc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNhbGVuZGFyU2lnbmFsc1NlcnZpY2UuY3VycmVudFZpZXcoKSA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlU2VydmljZS5nZXRZZWFyTmFtZSh0aGlzLmNhbGVuZGFyU2lnbmFsc1NlcnZpY2UuYWN0aXZlRGF0ZSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBtaW5ZZWFyT2ZQYWdlKCk6IG51bWJlciB7XG4gICAgICAgIC8vIFRoZSBvZmZzZXQgZnJvbSB0aGUgYWN0aXZlIHllYXIgdG8gdGhlIFwic2xvdFwiIGZvciB0aGUgc3RhcnRpbmcgeWVhciBpcyB0aGVcbiAgICAgICAgLy8gKmFjdHVhbCogZmlyc3QgcmVuZGVyZWQgeWVhciBpbiB0aGUgbXVsdGkteWVhciB2aWV3LCBhbmQgdGhlIGxhc3QgeWVhciBpc1xuICAgICAgICAvLyBqdXN0IHllYXJzUGVyUGFnZSAtIDEgYXdheS5cbiAgICAgICAgY29uc3QgYWN0aXZlRGF0ZSA9IHRoaXMuY2FsZW5kYXJTaWduYWxzU2VydmljZS5hY3RpdmVEYXRlKCk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVllYXIgPSBhY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmdldE11bHRpWWVhckFjdGl2ZU9mZnNldChcbiAgICAgICAgICAgIGFjdGl2ZURhdGUsXG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyU2lnbmFsc1NlcnZpY2UubWluRGF0ZSgpLFxuICAgICAgICAgICAgdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLm1heERhdGUoKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBhY3RpdmVZZWFyIC0gb2Zmc2V0O1xuICAgIH1cblxuICAgIHByaXZhdGUgaWQgPSBgdXBkLWNhbGVuZGFyLWhlYWRlci0ke2NhbGVuZGFySGVhZGVySWQrK31gO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KENhbGVuZGFyU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWxlbmRhclNpZ25hbHNTZXJ2aWNlID0gaW5qZWN0KENhbGVuZGFyU2lnbmFsc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGF0ZVNlcnZpY2UgPSBpbmplY3QoRGF0ZVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyB1c2VyIGNsaWNrcyBvbiB0aGUgcGVyaW9kIGxhYmVsLlxuICAgICAqL1xuICAgIGN1cnJlbnRQZXJpb2RDbGlja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbGVuZGFyU2lnbmFsc1NlcnZpY2UuY3VycmVudFZpZXcgPSB0aGlzLmNhbGVuZGFyU2lnbmFsc1NlcnZpY2UuY3VycmVudFZpZXcoKSA9PT0gJ21vbnRoJyA/ICdtdWx0aS15ZWFyJyA6ICdtb250aCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyB1c2VyIGNsaWNrcyBvbiB0aGUgcHJldmlvdXMgYnV0dG9uLlxuICAgICAqL1xuICAgIHByZXZpb3VzQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLmFjdGl2ZURhdGUgPVxuICAgICAgICAgICAgdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLmN1cnJlbnRWaWV3KCkgPT09ICdtb250aCdcbiAgICAgICAgICAgICAgICA/IHRoaXMuZGF0ZVNlcnZpY2UuYWRkTW9udGhzKHRoaXMuY2FsZW5kYXJTaWduYWxzU2VydmljZS5hY3RpdmVEYXRlKCksIC0xKVxuICAgICAgICAgICAgICAgIDogdGhpcy5kYXRlU2VydmljZS5hZGRZZWFycyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLmFjdGl2ZURhdGUoKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLmN1cnJlbnRWaWV3KCkgPT09ICd5ZWFyJyA/IC0xIDogLXllYXJzUGVyUGFnZVxuICAgICAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyB1c2VyIGNsaWNrcyBvbiB0aGUgbmV4dCBidXR0b24uXG4gICAgICovXG4gICAgbmV4dENsaWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJTaWduYWxzU2VydmljZS5hY3RpdmVEYXRlID1cbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJTaWduYWxzU2VydmljZS5jdXJyZW50VmlldygpID09PSAnbW9udGgnXG4gICAgICAgICAgICAgICAgPyB0aGlzLmRhdGVTZXJ2aWNlLmFkZE1vbnRocyh0aGlzLmNhbGVuZGFyU2lnbmFsc1NlcnZpY2UuYWN0aXZlRGF0ZSgpLCAxKVxuICAgICAgICAgICAgICAgIDogdGhpcy5kYXRlU2VydmljZS5hZGRZZWFycyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLmFjdGl2ZURhdGUoKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLmN1cnJlbnRWaWV3KCkgPT09ICd5ZWFyJyA/IDEgOiB5ZWFyc1BlclBhZ2VcbiAgICAgICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHByZXZpb3VzIHBlcmlvZCBidXR0b24gaXMgZW5hYmxlZC5cbiAgICAgKi9cbiAgICBwcmV2aW91c0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLm1pbkRhdGUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gIXRoaXMuY2FsZW5kYXJTaWduYWxzU2VydmljZS5taW5EYXRlKClcbiAgICAgICAgICAgIHx8ICF0aGlzLmlzU2FtZVZpZXcodGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLmFjdGl2ZURhdGUoKSwgdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLm1pbkRhdGUoKSEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIG5leHQgcGVyaW9kIGJ1dHRvbiBpcyBlbmFibGVkLlxuICAgICAqL1xuICAgIG5leHRFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY2FsZW5kYXJTaWduYWxzU2VydmljZS5tYXhEYXRlKClcbiAgICAgICAgICAgIHx8ICF0aGlzLmlzU2FtZVZpZXcodGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLmFjdGl2ZURhdGUoKSwgdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLm1heERhdGUoKSEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHR3byBkYXRlcyByZXByZXNlbnQgdGhlIHNhbWUgdmlldyBpbiB0aGUgY3VycmVudCB2aWV3IG1vZGUgKG1vbnRoIG9yIHllYXIpLlxuICAgICAqL1xuICAgIHByaXZhdGUgaXNTYW1lVmlldyhkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuY2FsZW5kYXJTaWduYWxzU2VydmljZS5jdXJyZW50VmlldygpID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZTEuZ2V0RnVsbFllYXIoKSA9PT0gZGF0ZTIuZ2V0RnVsbFllYXIoKSAmJiBkYXRlMS5nZXRNb250aCgpID09PSBkYXRlMi5nZXRNb250aCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY2FsZW5kYXJTaWduYWxzU2VydmljZS5jdXJyZW50VmlldygpID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlMS5nZXRGdWxsWWVhcigpID09PSBkYXRlMi5nZXRGdWxsWWVhcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3RoZXJ3aXNlIHdlIGFyZSBpbiAnbXVsdGkteWVhcicgdmlldy5cbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmlzU2FtZU11bHRpWWVhclZpZXcoXG4gICAgICAgICAgICBkYXRlMSxcbiAgICAgICAgICAgIGRhdGUyLFxuICAgICAgICAgICAgdGhpcy5jYWxlbmRhclNpZ25hbHNTZXJ2aWNlLm1pbkRhdGUoKSxcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJTaWduYWxzU2VydmljZS5tYXhEYXRlKClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcHJlZml4OiAnVXBEZXZzLkNhbGVuZGFyJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBkLWZsZXhcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgW2lkXT1cInBlcmlvZEJ1dHRvbkxhYmVsSWRcIiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBwZXJpb2RUZXh0IHx8IHQoJ1llYXJSYW5nZUxhYmVsJywgeyBzdGFydDogbWluWWVhck9mUGFnZUxhYmVsLCBlbmQ6IG1heFllYXJPZlBhZ2VMYWJlbCB9KSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICA8dXBkLWJ1dHRvbiBbaXNJY29uXT1cInRydWVcIiBbaWNvbk1vZGVsXT1cInt0YWJsZXJJY29uOidjaGV2cm9uLWxlZnQnfVwiIFtpc0Rpc2FibGVkXT1cIiFwcmV2aW91c0VuYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cInByZXZpb3VzQ2xpY2tlZCgpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KHByZXZCdXR0b25MYWJlbClcIj5cbiAgICAgICAgICAgICAgICA8L3VwZC1idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8dXBkLWJ1dHRvbiAoY2xpY2spPVwiY3VycmVudFBlcmlvZENsaWNrZWQoKVwiIFthdHRyLmFyaWEtbGFiZWxdPVwidChwZXJpb2RCdXR0b25MYWJlbClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cInBlcmlvZEJ1dHRvbkxhYmVsSWRcIiBjdXN0b21DbGFzc2VzPVwibXgtMSBmbGV4LWdyb3ctMVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBlcmlvZFRleHQgfHwgdCgnWWVhclJhbmdlJywgeyBzdGFydDogbWluWWVhck9mUGFnZUxhYmVsLCBlbmQ6IG1heFllYXJPZlBhZ2VMYWJlbCB9KSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDx1cGQtaWNvbiBbdGFibGVySWNvbl09XCIhaXNOb3RNb250aCA/ICdjaGV2cm9uLWRvd24nIDogJ2NoZXZyb24tdXAnXCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L3VwZC1idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8dXBkLWJ1dHRvbiBbaXNJY29uXT1cInRydWVcIiBbaWNvbk1vZGVsXT1cInt0YWJsZXJJY29uOidjaGV2cm9uLXJpZ2h0J31cIiBbaXNEaXNhYmxlZF09XCIhbmV4dEVuYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIm5leHRDbGlja2VkKClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQobmV4dEJ1dHRvbkxhYmVsKVwiPlxuICAgICAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19