@updevs/components 1.0.0-alpha.10 → 1.0.0-alpha.100

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 (736) hide show
  1. package/README.md +1 -8
  2. package/assets/styles/_core.scss +9 -0
  3. package/assets/styles/_debug.scss +49 -0
  4. package/assets/styles/_props.scss +91 -0
  5. package/assets/styles/_updevs.scss +12 -0
  6. package/assets/styles/_utilities-marketing.scss +209 -0
  7. package/assets/styles/_utilities.scss +127 -92
  8. package/assets/styles/_variables-dark.scss +8 -6
  9. package/assets/styles/_variables.scss +326 -257
  10. package/assets/styles/helpers/_index.scss +143 -0
  11. package/assets/styles/layout/_core.scss +3 -2
  12. package/assets/styles/layout/_dark.scss +40 -35
  13. package/assets/styles/layout/_footer.scss +1 -1
  14. package/assets/styles/layout/_navbar.scss +31 -19
  15. package/assets/styles/layout/_page.scss +6 -5
  16. package/assets/styles/layout/_root.scss +26 -34
  17. package/assets/styles/marketing/_browser.scss +67 -0
  18. package/assets/styles/marketing/_core.scss +8 -0
  19. package/assets/styles/marketing/_filters.scss +0 -0
  20. package/assets/styles/marketing/_hero.scss +70 -0
  21. package/assets/styles/marketing/_pricing.scss +111 -0
  22. package/assets/styles/marketing/_sections.scss +124 -0
  23. package/assets/styles/marketing/_shape.scss +31 -0
  24. package/assets/styles/mixins/_functions.scss +53 -0
  25. package/assets/styles/mixins/_mixins.scss +9 -9
  26. package/assets/styles/ui/_accordion.scss +165 -11
  27. package/assets/styles/ui/_alerts.scss +80 -38
  28. package/assets/styles/ui/_avatars.scss +36 -9
  29. package/assets/styles/ui/_badges.scss +47 -13
  30. package/assets/styles/ui/_button-group.scss +1 -1
  31. package/assets/styles/ui/_buttons.scss +33 -37
  32. package/assets/styles/ui/_calendars.scss +2 -2
  33. package/assets/styles/ui/_cards.scss +9 -0
  34. package/assets/styles/ui/_carousel.scss +1 -1
  35. package/assets/styles/ui/_charts.scss +1 -1
  36. package/assets/styles/ui/_chat.scss +38 -0
  37. package/assets/styles/ui/_close.scss +54 -1
  38. package/assets/styles/ui/_datagrid.scss +1 -1
  39. package/assets/styles/ui/_dropdowns.scss +3 -0
  40. package/assets/styles/ui/_empty.scss +0 -5
  41. package/assets/styles/ui/_flags.scss +2 -2
  42. package/assets/styles/ui/_forms.scss +33 -7
  43. package/assets/styles/ui/_grid.scss +1 -1
  44. package/assets/styles/ui/_icons.scss +1 -1
  45. package/assets/styles/ui/_images.scss +4 -0
  46. package/assets/styles/ui/_lists.scss +12 -16
  47. package/assets/styles/ui/_loaders.scss +1 -1
  48. package/assets/styles/ui/_markdown.scss +15 -4
  49. package/assets/styles/ui/_modals.scss +2 -2
  50. package/assets/styles/ui/_nav.scss +17 -3
  51. package/assets/styles/ui/_offcanvas.scss +2 -2
  52. package/assets/styles/ui/_pagination.scss +2 -0
  53. package/assets/styles/ui/_payments.scss +1 -1
  54. package/assets/styles/ui/_placeholder.scss +1 -1
  55. package/assets/styles/ui/_progress.scss +1 -1
  56. package/assets/styles/ui/_ribbons.scss +1 -0
  57. package/assets/styles/ui/_segmented.scss +101 -0
  58. package/assets/styles/ui/_signature.scss +15 -0
  59. package/assets/styles/ui/_social.scss +52 -0
  60. package/assets/styles/ui/_status.scss +1 -1
  61. package/assets/styles/ui/_steps.scss +5 -1
  62. package/assets/styles/ui/_switch-icon.scss +1 -1
  63. package/assets/styles/ui/_tables.scss +27 -1
  64. package/assets/styles/ui/_tags.scss +1 -1
  65. package/assets/styles/ui/_timeline.scss +1 -1
  66. package/assets/styles/ui/_toasts.scss +0 -1
  67. package/assets/styles/ui/_tracking.scss +1 -1
  68. package/assets/styles/ui/_type.scss +169 -8
  69. package/assets/styles/ui/forms/_form-check.scss +1 -1
  70. package/assets/styles/ui/forms/_form-colorinput.scss +1 -1
  71. package/assets/styles/ui/forms/_form-custom.scss +1 -1
  72. package/assets/styles/ui/forms/_form-imagecheck.scss +6 -5
  73. package/assets/styles/ui/forms/_form-selectgroup.scss +2 -2
  74. package/assets/styles/ui/typo/_hr.scss +4 -2
  75. package/assets/styles/utils/_colors.scss +72 -11
  76. package/assets/styles/utils/_opacity.scss +1 -1
  77. package/assets/styles/utils/_scroll.scss +0 -2
  78. package/assets/styles/utils/_sizing.scss +1 -1
  79. package/assets/styles/utils/_text.scss +1 -2
  80. package/assets/styles/vendor/_apexcharts.scss +52 -0
  81. package/assets/styles/vendor/_coloris.scss +72 -0
  82. package/assets/styles/vendor/_dropzone.scss +27 -0
  83. package/assets/styles/vendor/_fslightbox.scss +13 -0
  84. package/assets/styles/vendor/_jsvectormap.scss +47 -0
  85. package/assets/styles/vendor/_litepicker.scss +69 -0
  86. package/assets/styles/vendor/_nouislider.scss +49 -0
  87. package/assets/styles/vendor/_plyr.scss +3 -0
  88. package/assets/styles/vendor/_stars-rating.scss +22 -0
  89. package/assets/styles/vendor/_tom-select.scss +81 -0
  90. package/assets/styles/vendor/_turbo.scss +3 -0
  91. package/assets/styles/vendor/_typed.scss +4 -0
  92. package/assets/styles/vendor/_wysiwyg.scss +46 -0
  93. package/fesm2022/updevs-components-badge.mjs +29 -31
  94. package/fesm2022/updevs-components-badge.mjs.map +1 -1
  95. package/fesm2022/updevs-components-button.mjs +41 -41
  96. package/fesm2022/updevs-components-button.mjs.map +1 -1
  97. package/fesm2022/updevs-components-calendar.mjs +327 -1456
  98. package/fesm2022/updevs-components-calendar.mjs.map +1 -1
  99. package/fesm2022/updevs-components-card.mjs +25 -21
  100. package/fesm2022/updevs-components-card.mjs.map +1 -1
  101. package/fesm2022/updevs-components-drag-and-drop.mjs +17 -17
  102. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -1
  103. package/fesm2022/updevs-components-dropdown.mjs +41 -20
  104. package/fesm2022/updevs-components-dropdown.mjs.map +1 -1
  105. package/fesm2022/updevs-components-form-controls-abstractions.mjs +77 -18
  106. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -1
  107. package/fesm2022/updevs-components-form-controls-checkbox.mjs +31 -21
  108. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -1
  109. package/fesm2022/updevs-components-form-controls-date-picker.mjs +51 -66
  110. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -1
  111. package/fesm2022/updevs-components-form-controls-file-upload.mjs +272 -0
  112. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  113. package/fesm2022/updevs-components-form-controls-input.mjs +46 -28
  114. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -1
  115. package/fesm2022/updevs-components-form-controls-radio.mjs +20 -14
  116. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -1
  117. package/fesm2022/updevs-components-form-controls-select.mjs +288 -111
  118. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -1
  119. package/fesm2022/updevs-components-form-controls-textarea.mjs +25 -20
  120. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -1
  121. package/fesm2022/updevs-components-form-controls-time-picker.mjs +14 -13
  122. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -1
  123. package/fesm2022/updevs-components-form.mjs +255 -71
  124. package/fesm2022/updevs-components-form.mjs.map +1 -1
  125. package/fesm2022/updevs-components-layout.mjs +597 -330
  126. package/fesm2022/updevs-components-layout.mjs.map +1 -1
  127. package/fesm2022/updevs-components-link.mjs +9 -9
  128. package/fesm2022/updevs-components-link.mjs.map +1 -1
  129. package/fesm2022/updevs-components-list.mjs +20 -10
  130. package/fesm2022/updevs-components-list.mjs.map +1 -1
  131. package/fesm2022/updevs-components-modal.mjs +27 -25
  132. package/fesm2022/updevs-components-modal.mjs.map +1 -1
  133. package/fesm2022/updevs-components-paginator.mjs +38 -37
  134. package/fesm2022/updevs-components-paginator.mjs.map +1 -1
  135. package/fesm2022/updevs-components-popover.mjs +32 -40
  136. package/fesm2022/updevs-components-popover.mjs.map +1 -1
  137. package/fesm2022/updevs-components-pricing.mjs +130 -0
  138. package/fesm2022/updevs-components-pricing.mjs.map +1 -0
  139. package/fesm2022/updevs-components-table.mjs +678 -333
  140. package/fesm2022/updevs-components-table.mjs.map +1 -1
  141. package/fesm2022/updevs-components.mjs +5 -5
  142. package/fesm2022/updevs-components.mjs.map +1 -1
  143. package/package.json +70 -101
  144. package/types/updevs-components-badge.d.ts +44 -0
  145. package/types/updevs-components-button.d.ts +75 -0
  146. package/types/updevs-components-calendar.d.ts +175 -0
  147. package/{card/card.component.d.ts → types/updevs-components-card.d.ts} +52 -14
  148. package/types/updevs-components-drag-and-drop.d.ts +74 -0
  149. package/{dropdown/dropdown.component.d.ts → types/updevs-components-dropdown.d.ts} +56 -8
  150. package/types/updevs-components-form-controls-abstractions.d.ts +49 -0
  151. package/types/updevs-components-form-controls-checkbox.d.ts +33 -0
  152. package/types/updevs-components-form-controls-date-picker.d.ts +80 -0
  153. package/types/updevs-components-form-controls-file-upload.d.ts +69 -0
  154. package/types/updevs-components-form-controls-input.d.ts +95 -0
  155. package/types/updevs-components-form-controls-radio.d.ts +32 -0
  156. package/types/updevs-components-form-controls-select.d.ts +200 -0
  157. package/types/updevs-components-form-controls-textarea.d.ts +31 -0
  158. package/types/updevs-components-form-controls-time-picker.d.ts +164 -0
  159. package/types/updevs-components-form.d.ts +356 -0
  160. package/types/updevs-components-layout.d.ts +490 -0
  161. package/{link/link.component.d.ts → types/updevs-components-link.d.ts} +16 -4
  162. package/types/updevs-components-list.d.ts +107 -0
  163. package/types/updevs-components-modal.d.ts +155 -0
  164. package/types/updevs-components-paginator.d.ts +58 -0
  165. package/types/updevs-components-popover.d.ts +63 -0
  166. package/types/updevs-components-pricing.d.ts +91 -0
  167. package/types/updevs-components-table.d.ts +619 -0
  168. package/types/updevs-components.d.ts +44 -0
  169. package/badge/badge-config.model.d.ts +0 -14
  170. package/badge/badge.component.d.ts +0 -24
  171. package/badge/badge.config.d.ts +0 -12
  172. package/badge/index.d.ts +0 -1
  173. package/badge/public-api.d.ts +0 -3
  174. package/badge/upd-badge.module.d.ts +0 -8
  175. package/button/button.component.d.ts +0 -61
  176. package/button/index.d.ts +0 -1
  177. package/button/public-api.d.ts +0 -2
  178. package/button/upd-button.module.d.ts +0 -10
  179. package/calendar/calendar.component.d.ts +0 -127
  180. package/calendar/components/calendar-body/calendar-body.component.d.ts +0 -263
  181. package/calendar/components/calendar-header/calendar-header.component.d.ts +0 -57
  182. package/calendar/components/calendar-month-view/calendar-month-view.component.d.ts +0 -151
  183. package/calendar/components/calendar-multi-year-view/calendar-multi-year-view.component.d.ts +0 -10
  184. package/calendar/components/calendar-year-view/calendar-year-view.component.d.ts +0 -9
  185. package/calendar/index.d.ts +0 -1
  186. package/calendar/models/calendar-cell.model.d.ts +0 -16
  187. package/calendar/models/calendar-user-event.model.d.ts +0 -4
  188. package/calendar/models/date-range.model.d.ts +0 -26
  189. package/calendar/models/public-api.d.ts +0 -2
  190. package/calendar/public-api.d.ts +0 -5
  191. package/calendar/services/calendar-range-strategy.service.d.ts +0 -35
  192. package/calendar/services/calendar-signals.service.d.ts +0 -24
  193. package/calendar/services/calendar.service.d.ts +0 -15
  194. package/calendar/services/public-api.d.ts +0 -1
  195. package/calendar/tools/events-options.d.ts +0 -12
  196. package/calendar/tools/keyboard-tools.d.ts +0 -9
  197. package/calendar/tools/passive-listeners.d.ts +0 -16
  198. package/calendar/types/calendar-cell-class-function.type.d.ts +0 -3
  199. package/calendar/types/calendar-cell-css-classes.type.d.ts +0 -3
  200. package/calendar/types/calendar-view.type.d.ts +0 -1
  201. package/calendar/types/modifier-key.type.d.ts +0 -1
  202. package/calendar/types/public-api.d.ts +0 -1
  203. package/calendar/upd-calendar.module.d.ts +0 -18
  204. package/card/directives/card-actions.directive.d.ts +0 -7
  205. package/card/directives/card-footer.directive.d.ts +0 -7
  206. package/card/directives/card-header.directive.d.ts +0 -7
  207. package/card/directives/card-image.directive.d.ts +0 -7
  208. package/card/directives/public-api.d.ts +0 -4
  209. package/card/index.d.ts +0 -1
  210. package/card/public-api.d.ts +0 -3
  211. package/card/types/card-state.type.d.ts +0 -1
  212. package/card/types/card-style.type.d.ts +0 -1
  213. package/card/types/hover-effect.type.d.ts +0 -1
  214. package/card/types/ribbon-style.type.d.ts +0 -1
  215. package/card/types/status-position.type.d.ts +0 -1
  216. package/card/upd-card.module.d.ts +0 -14
  217. package/drag-and-drop/drag-and-drop.component.d.ts +0 -26
  218. package/drag-and-drop/index.d.ts +0 -1
  219. package/drag-and-drop/models/drag-and-drop-column.config.d.ts +0 -8
  220. package/drag-and-drop/models/drag-and-drop-column.model.d.ts +0 -10
  221. package/drag-and-drop/models/drag-and-drop-item.d.ts +0 -7
  222. package/drag-and-drop/models/drag-and-drop-item.model.d.ts +0 -13
  223. package/drag-and-drop/models/drag-and-drop.config.d.ts +0 -6
  224. package/drag-and-drop/models/public-api.d.ts +0 -4
  225. package/drag-and-drop/public-api.d.ts +0 -3
  226. package/drag-and-drop/upd-drag-and-drop.module.d.ts +0 -9
  227. package/dropdown/index.d.ts +0 -1
  228. package/dropdown/models/dropdown-action-clicked.model.d.ts +0 -6
  229. package/dropdown/models/dropdown-item.d.ts +0 -24
  230. package/dropdown/models/dropdown-item.type.d.ts +0 -1
  231. package/dropdown/models/public-api.d.ts +0 -4
  232. package/dropdown/models/toolbar.type.d.ts +0 -1
  233. package/dropdown/public-api.d.ts +0 -3
  234. package/dropdown/upd-dropdown.module.d.ts +0 -12
  235. package/esm2022/badge/badge-config.model.mjs +0 -14
  236. package/esm2022/badge/badge.component.mjs +0 -50
  237. package/esm2022/badge/badge.config.mjs +0 -2
  238. package/esm2022/badge/index.mjs +0 -2
  239. package/esm2022/badge/public-api.mjs +0 -4
  240. package/esm2022/badge/upd-badge.module.mjs +0 -24
  241. package/esm2022/badge/updevs-components-badge.mjs +0 -5
  242. package/esm2022/button/button.component.mjs +0 -157
  243. package/esm2022/button/index.mjs +0 -2
  244. package/esm2022/button/public-api.mjs +0 -3
  245. package/esm2022/button/upd-button.module.mjs +0 -32
  246. package/esm2022/button/updevs-components-button.mjs +0 -5
  247. package/esm2022/calendar/assets/i18n/en.json +0 -16
  248. package/esm2022/calendar/assets/i18n/pt.json +0 -16
  249. package/esm2022/calendar/calendar.component.mjs +0 -247
  250. package/esm2022/calendar/components/calendar-body/calendar-body.component.mjs +0 -515
  251. package/esm2022/calendar/components/calendar-header/calendar-header.component.mjs +0 -144
  252. package/esm2022/calendar/components/calendar-month-view/calendar-month-view.component.mjs +0 -423
  253. package/esm2022/calendar/components/calendar-multi-year-view/calendar-multi-year-view.component.mjs +0 -18
  254. package/esm2022/calendar/components/calendar-year-view/calendar-year-view.component.mjs +0 -17
  255. package/esm2022/calendar/index.mjs +0 -2
  256. package/esm2022/calendar/models/calendar-cell.model.mjs +0 -18
  257. package/esm2022/calendar/models/calendar-user-event.model.mjs +0 -2
  258. package/esm2022/calendar/models/date-range.model.mjs +0 -18
  259. package/esm2022/calendar/models/public-api.mjs +0 -3
  260. package/esm2022/calendar/public-api.mjs +0 -6
  261. package/esm2022/calendar/services/calendar-range-strategy.service.mjs +0 -99
  262. package/esm2022/calendar/services/calendar-signals.service.mjs +0 -47
  263. package/esm2022/calendar/services/calendar.service.mjs +0 -40
  264. package/esm2022/calendar/services/public-api.mjs +0 -2
  265. package/esm2022/calendar/tools/events-options.mjs +0 -14
  266. package/esm2022/calendar/tools/keyboard-tools.mjs +0 -14
  267. package/esm2022/calendar/tools/passive-listeners.mjs +0 -29
  268. package/esm2022/calendar/types/calendar-cell-class-function.type.mjs +0 -2
  269. package/esm2022/calendar/types/calendar-cell-css-classes.type.mjs +0 -2
  270. package/esm2022/calendar/types/calendar-view.type.mjs +0 -2
  271. package/esm2022/calendar/types/modifier-key.type.mjs +0 -2
  272. package/esm2022/calendar/types/public-api.mjs +0 -2
  273. package/esm2022/calendar/upd-calendar.module.mjs +0 -69
  274. package/esm2022/calendar/updevs-components-calendar.mjs +0 -5
  275. package/esm2022/card/card.component.mjs +0 -136
  276. package/esm2022/card/directives/card-actions.directive.mjs +0 -16
  277. package/esm2022/card/directives/card-footer.directive.mjs +0 -16
  278. package/esm2022/card/directives/card-header.directive.mjs +0 -16
  279. package/esm2022/card/directives/card-image.directive.mjs +0 -16
  280. package/esm2022/card/directives/public-api.mjs +0 -5
  281. package/esm2022/card/index.mjs +0 -2
  282. package/esm2022/card/public-api.mjs +0 -4
  283. package/esm2022/card/types/card-state.type.mjs +0 -2
  284. package/esm2022/card/types/card-style.type.mjs +0 -2
  285. package/esm2022/card/types/hover-effect.type.mjs +0 -2
  286. package/esm2022/card/types/ribbon-style.type.mjs +0 -2
  287. package/esm2022/card/types/status-position.type.mjs +0 -2
  288. package/esm2022/card/upd-card.module.mjs +0 -50
  289. package/esm2022/card/updevs-components-card.mjs +0 -5
  290. package/esm2022/drag-and-drop/drag-and-drop.component.mjs +0 -134
  291. package/esm2022/drag-and-drop/index.mjs +0 -2
  292. package/esm2022/drag-and-drop/models/drag-and-drop-column.config.mjs +0 -2
  293. package/esm2022/drag-and-drop/models/drag-and-drop-column.model.mjs +0 -9
  294. package/esm2022/drag-and-drop/models/drag-and-drop-item.mjs +0 -2
  295. package/esm2022/drag-and-drop/models/drag-and-drop-item.model.mjs +0 -14
  296. package/esm2022/drag-and-drop/models/drag-and-drop.config.mjs +0 -2
  297. package/esm2022/drag-and-drop/models/public-api.mjs +0 -5
  298. package/esm2022/drag-and-drop/public-api.mjs +0 -4
  299. package/esm2022/drag-and-drop/upd-drag-and-drop.module.mjs +0 -28
  300. package/esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs +0 -5
  301. package/esm2022/dropdown/dropdown.component.mjs +0 -182
  302. package/esm2022/dropdown/index.mjs +0 -2
  303. package/esm2022/dropdown/models/dropdown-action-clicked.model.mjs +0 -2
  304. package/esm2022/dropdown/models/dropdown-item.mjs +0 -2
  305. package/esm2022/dropdown/models/dropdown-item.type.mjs +0 -2
  306. package/esm2022/dropdown/models/public-api.mjs +0 -5
  307. package/esm2022/dropdown/models/toolbar.type.mjs +0 -2
  308. package/esm2022/dropdown/public-api.mjs +0 -4
  309. package/esm2022/dropdown/upd-dropdown.module.mjs +0 -40
  310. package/esm2022/dropdown/updevs-components-dropdown.mjs +0 -5
  311. package/esm2022/form/assets/i18n/en.json +0 -17
  312. package/esm2022/form/assets/i18n/pt.json +0 -17
  313. package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +0 -96
  314. package/esm2022/form/form.component.mjs +0 -102
  315. package/esm2022/form/index.mjs +0 -2
  316. package/esm2022/form/models/checkbox-field.model.mjs +0 -2
  317. package/esm2022/form/models/checkbox-group-field.model.mjs +0 -2
  318. package/esm2022/form/models/dynamic-field.model.mjs +0 -2
  319. package/esm2022/form/models/enums/dynamic-field.type.mjs +0 -14
  320. package/esm2022/form/models/enums/public-api.mjs +0 -2
  321. package/esm2022/form/models/form-row.model.mjs +0 -2
  322. package/esm2022/form/models/public-api.mjs +0 -6
  323. package/esm2022/form/models/radio-field.model.mjs +0 -2
  324. package/esm2022/form/models/radio-group-field.model.mjs +0 -2
  325. package/esm2022/form/models/select-field.model.mjs +0 -2
  326. package/esm2022/form/models/single-select-field.model.mjs +0 -2
  327. package/esm2022/form/models/textarea-field.model.mjs +0 -2
  328. package/esm2022/form/models/validator-config.mjs +0 -2
  329. package/esm2022/form/public-api.mjs +0 -4
  330. package/esm2022/form/tools/errors-helper.mjs +0 -54
  331. package/esm2022/form/upd-form.module.mjs +0 -75
  332. package/esm2022/form/updevs-components-form.mjs +0 -5
  333. package/esm2022/form-controls/abstractions/base-control.mjs +0 -40
  334. package/esm2022/form-controls/abstractions/index.mjs +0 -2
  335. package/esm2022/form-controls/abstractions/public-api.mjs +0 -2
  336. package/esm2022/form-controls/abstractions/updevs-components-form-controls-abstractions.mjs +0 -5
  337. package/esm2022/form-controls/checkbox/checkbox.component.mjs +0 -53
  338. package/esm2022/form-controls/checkbox/index.mjs +0 -2
  339. package/esm2022/form-controls/checkbox/public-api.mjs +0 -3
  340. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +0 -32
  341. package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +0 -5
  342. package/esm2022/form-controls/date-picker/date-picker.component.mjs +0 -147
  343. package/esm2022/form-controls/date-picker/index.mjs +0 -2
  344. package/esm2022/form-controls/date-picker/public-api.mjs +0 -3
  345. package/esm2022/form-controls/date-picker/upd-date-picker.module.mjs +0 -40
  346. package/esm2022/form-controls/date-picker/updevs-components-form-controls-date-picker.mjs +0 -5
  347. package/esm2022/form-controls/input/directives/input-append.directive.mjs +0 -16
  348. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +0 -16
  349. package/esm2022/form-controls/input/directives/public-api.mjs +0 -3
  350. package/esm2022/form-controls/input/index.mjs +0 -2
  351. package/esm2022/form-controls/input/input.component.mjs +0 -189
  352. package/esm2022/form-controls/input/public-api.mjs +0 -5
  353. package/esm2022/form-controls/input/types/input.type.mjs +0 -2
  354. package/esm2022/form-controls/input/types/loader-position.type.mjs +0 -2
  355. package/esm2022/form-controls/input/types/public-api.mjs +0 -3
  356. package/esm2022/form-controls/input/upd-input.module.mjs +0 -46
  357. package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +0 -5
  358. package/esm2022/form-controls/radio/index.mjs +0 -2
  359. package/esm2022/form-controls/radio/public-api.mjs +0 -3
  360. package/esm2022/form-controls/radio/radio.component.mjs +0 -56
  361. package/esm2022/form-controls/radio/upd-radio.module.mjs +0 -32
  362. package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +0 -5
  363. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +0 -76
  364. package/esm2022/form-controls/select/components/single/select.component.mjs +0 -72
  365. package/esm2022/form-controls/select/index.mjs +0 -2
  366. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +0 -221
  367. package/esm2022/form-controls/select/models/defaults.mjs +0 -8
  368. package/esm2022/form-controls/select/models/public-api.mjs +0 -3
  369. package/esm2022/form-controls/select/models/select-item.mjs +0 -2
  370. package/esm2022/form-controls/select/public-api.mjs +0 -5
  371. package/esm2022/form-controls/select/upd-select.module.mjs +0 -57
  372. package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +0 -5
  373. package/esm2022/form-controls/textarea/index.mjs +0 -2
  374. package/esm2022/form-controls/textarea/public-api.mjs +0 -3
  375. package/esm2022/form-controls/textarea/textarea.component.mjs +0 -46
  376. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +0 -24
  377. package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +0 -5
  378. package/esm2022/form-controls/time-picker/assets/i18n/en.json +0 -5
  379. package/esm2022/form-controls/time-picker/assets/i18n/pt.json +0 -5
  380. package/esm2022/form-controls/time-picker/index.mjs +0 -2
  381. package/esm2022/form-controls/time-picker/public-api.mjs +0 -4
  382. package/esm2022/form-controls/time-picker/time-picker.component.mjs +0 -130
  383. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +0 -124
  384. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +0 -60
  385. package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +0 -5
  386. package/esm2022/index.mjs +0 -2
  387. package/esm2022/layout/abstractions/base-page.component.mjs +0 -23
  388. package/esm2022/layout/abstractions/base.layout.mjs +0 -31
  389. package/esm2022/layout/abstractions/public-api.mjs +0 -2
  390. package/esm2022/layout/assets/i18n/en.json +0 -20
  391. package/esm2022/layout/assets/i18n/pt.json +0 -20
  392. package/esm2022/layout/index.mjs +0 -2
  393. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +0 -11
  394. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +0 -24
  395. package/esm2022/layout/layouts/public-api.mjs +0 -5
  396. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +0 -31
  397. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +0 -80
  398. package/esm2022/layout/models/login-page-config.model.mjs +0 -20
  399. package/esm2022/layout/models/login-page.config.mjs +0 -2
  400. package/esm2022/layout/models/public-api.mjs +0 -3
  401. package/esm2022/layout/models/security-layout-config.model.mjs +0 -10
  402. package/esm2022/layout/models/security-layout.config.mjs +0 -2
  403. package/esm2022/layout/models/upd-layout-config.model.mjs +0 -24
  404. package/esm2022/layout/models/upd-layout.config.mjs +0 -2
  405. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +0 -28
  406. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +0 -65
  407. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +0 -11
  408. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +0 -99
  409. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +0 -11
  410. package/esm2022/layout/pages/auth-flow/public-api.mjs +0 -6
  411. package/esm2022/layout/pages/public-api.mjs +0 -2
  412. package/esm2022/layout/partials/footer/footer-copyright.directive.mjs +0 -13
  413. package/esm2022/layout/partials/footer/footer.component.mjs +0 -55
  414. package/esm2022/layout/partials/footer/public-api.mjs +0 -3
  415. package/esm2022/layout/partials/header/header-style.type.mjs +0 -2
  416. package/esm2022/layout/partials/header/header.component.mjs +0 -77
  417. package/esm2022/layout/partials/header/public-api.mjs +0 -3
  418. package/esm2022/layout/partials/page-header/page-header.component.mjs +0 -15
  419. package/esm2022/layout/partials/page-header/public-api.mjs +0 -2
  420. package/esm2022/layout/partials/public-api.mjs +0 -5
  421. package/esm2022/layout/partials/sidebar/public-api.mjs +0 -2
  422. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +0 -112
  423. package/esm2022/layout/public-api.mjs +0 -8
  424. package/esm2022/layout/services/public-api.mjs +0 -2
  425. package/esm2022/layout/services/upd-layout-config.service.mjs +0 -21
  426. package/esm2022/layout/tools/layout.constants.mjs +0 -15
  427. package/esm2022/layout/upd-layout.module.mjs +0 -43
  428. package/esm2022/layout/updevs-components-layout.mjs +0 -5
  429. package/esm2022/lib/index.mjs +0 -2
  430. package/esm2022/lib/models/public-api.mjs +0 -2
  431. package/esm2022/lib/models/row-column-size.mjs +0 -2
  432. package/esm2022/lib/public-api.mjs +0 -5
  433. package/esm2022/lib/tools/column-size.helper.mjs +0 -12
  434. package/esm2022/lib/tools/public-api.mjs +0 -2
  435. package/esm2022/lib/types/component-size.type.mjs +0 -2
  436. package/esm2022/lib/types/horizontal-vertical.type.mjs +0 -2
  437. package/esm2022/lib/types/public-api.mjs +0 -4
  438. package/esm2022/lib/types/validation-status.type.mjs +0 -2
  439. package/esm2022/lib/upd-components.module.mjs +0 -14
  440. package/esm2022/link/index.mjs +0 -2
  441. package/esm2022/link/link.component.mjs +0 -51
  442. package/esm2022/link/public-api.mjs +0 -4
  443. package/esm2022/link/target.type.mjs +0 -2
  444. package/esm2022/link/upd-link.module.mjs +0 -24
  445. package/esm2022/link/updevs-components-link.mjs +0 -5
  446. package/esm2022/list/assets/i18n/en.json +0 -9
  447. package/esm2022/list/assets/i18n/pt.json +0 -9
  448. package/esm2022/list/index.mjs +0 -2
  449. package/esm2022/list/list.component.mjs +0 -113
  450. package/esm2022/list/models/badge-position.type.mjs +0 -2
  451. package/esm2022/list/models/list-item.mjs +0 -2
  452. package/esm2022/list/models/list-item.model.mjs +0 -15
  453. package/esm2022/list/models/public-api.mjs +0 -3
  454. package/esm2022/list/public-api.mjs +0 -4
  455. package/esm2022/list/upd-list.module.mjs +0 -43
  456. package/esm2022/list/updevs-components-list.mjs +0 -5
  457. package/esm2022/modal/assets/i18n/en.json +0 -17
  458. package/esm2022/modal/assets/i18n/pt.json +0 -17
  459. package/esm2022/modal/components/modal-container/modal-container.component.mjs +0 -216
  460. package/esm2022/modal/index.mjs +0 -2
  461. package/esm2022/modal/models/base.modal.mjs +0 -14
  462. package/esm2022/modal/models/modal-config.model.mjs +0 -20
  463. package/esm2022/modal/models/modal-ref.mjs +0 -2
  464. package/esm2022/modal/models/modal.config.mjs +0 -2
  465. package/esm2022/modal/models/public-api.mjs +0 -4
  466. package/esm2022/modal/public-api.mjs +0 -4
  467. package/esm2022/modal/services/modal-alert.service.mjs +0 -99
  468. package/esm2022/modal/services/modal.service.mjs +0 -30
  469. package/esm2022/modal/services/public-api.mjs +0 -3
  470. package/esm2022/modal/types/modal-footer-style.type.mjs +0 -2
  471. package/esm2022/modal/types/modal-size.type.mjs +0 -2
  472. package/esm2022/modal/upd-modal.module.mjs +0 -89
  473. package/esm2022/modal/updevs-components-modal.mjs +0 -5
  474. package/esm2022/paginator/assets/i18n/en.json +0 -15
  475. package/esm2022/paginator/assets/i18n/pt.json +0 -15
  476. package/esm2022/paginator/index.mjs +0 -2
  477. package/esm2022/paginator/paginator.component.mjs +0 -66
  478. package/esm2022/paginator/public-api.mjs +0 -3
  479. package/esm2022/paginator/upd-paginator.module.mjs +0 -46
  480. package/esm2022/paginator/updevs-components-paginator.mjs +0 -5
  481. package/esm2022/popover/index.mjs +0 -2
  482. package/esm2022/popover/popover.component.mjs +0 -65
  483. package/esm2022/popover/popover.directive.mjs +0 -129
  484. package/esm2022/popover/public-api.mjs +0 -4
  485. package/esm2022/popover/upd-popover.module.mjs +0 -29
  486. package/esm2022/popover/updevs-components-popover.mjs +0 -5
  487. package/esm2022/public-api.mjs +0 -2
  488. package/esm2022/table/abstractions/base-column.model.mjs +0 -52
  489. package/esm2022/table/abstractions/base.column.mjs +0 -98
  490. package/esm2022/table/abstractions/filters-operands.service.mjs +0 -3
  491. package/esm2022/table/abstractions/public-api.mjs +0 -3
  492. package/esm2022/table/assets/i18n/en.json +0 -74
  493. package/esm2022/table/assets/i18n/pt.json +0 -74
  494. package/esm2022/table/components/columns/boolean-column/boolean-column.component.mjs +0 -26
  495. package/esm2022/table/components/columns/date-time-column/date-time-column.component.mjs +0 -13
  496. package/esm2022/table/components/columns/number-column/number-column.component.mjs +0 -13
  497. package/esm2022/table/components/columns/text-column/text-column.component.mjs +0 -31
  498. package/esm2022/table/components/columns-manager/columns-manager.component.mjs +0 -36
  499. package/esm2022/table/components/filter-row/filter-row.component.mjs +0 -114
  500. package/esm2022/table/components/save-search/save-search.component.mjs +0 -72
  501. package/esm2022/table/components/search-section/search-section.component.mjs +0 -93
  502. package/esm2022/table/directives/public-api.mjs +0 -2
  503. package/esm2022/table/directives/table-column.directive.mjs +0 -51
  504. package/esm2022/table/index.mjs +0 -2
  505. package/esm2022/table/models/columns/boolean-column.model.mjs +0 -22
  506. package/esm2022/table/models/columns/date-time-column.model.mjs +0 -16
  507. package/esm2022/table/models/columns/guid-column.model.mjs +0 -13
  508. package/esm2022/table/models/columns/image-column.model.mjs +0 -11
  509. package/esm2022/table/models/columns/number-column.model.mjs +0 -17
  510. package/esm2022/table/models/columns/public-api.mjs +0 -7
  511. package/esm2022/table/models/columns/text-column.model.mjs +0 -11
  512. package/esm2022/table/models/enums/column-type.enum.mjs +0 -15
  513. package/esm2022/table/models/enums/public-api.mjs +0 -2
  514. package/esm2022/table/models/filter-item.model.mjs +0 -2
  515. package/esm2022/table/models/filter-operand.config.mjs +0 -2
  516. package/esm2022/table/models/operands-lists/boolean-filter-operands-list.model.mjs +0 -25
  517. package/esm2022/table/models/operands-lists/date-filter-operands-list.model.mjs +0 -25
  518. package/esm2022/table/models/operands-lists/date-or-number-operands-list.config.mjs +0 -31
  519. package/esm2022/table/models/operands-lists/filter-operands-list.config.mjs +0 -31
  520. package/esm2022/table/models/operands-lists/guid-filter-operands-list.model.mjs +0 -16
  521. package/esm2022/table/models/operands-lists/number-filter-operands-list.model.mjs +0 -25
  522. package/esm2022/table/models/operands-lists/string-filter-operands-list.model.mjs +0 -45
  523. package/esm2022/table/models/public-api.mjs +0 -5
  524. package/esm2022/table/models/saved-view.model.mjs +0 -2
  525. package/esm2022/table/models/table-config.model.mjs +0 -21
  526. package/esm2022/table/models/table.config.mjs +0 -2
  527. package/esm2022/table/models/upd-table-config.model.mjs +0 -9
  528. package/esm2022/table/models/upd-table.config.mjs +0 -2
  529. package/esm2022/table/public-api.mjs +0 -6
  530. package/esm2022/table/services/default-filters-operands.service.mjs +0 -60
  531. package/esm2022/table/services/storages/saved-views.storage.mjs +0 -63
  532. package/esm2022/table/services/stores/filters-operands.store.mjs +0 -19
  533. package/esm2022/table/services/upd-table-config.service.mjs +0 -18
  534. package/esm2022/table/table.component.mjs +0 -382
  535. package/esm2022/table/tools/filters.tools.mjs +0 -48
  536. package/esm2022/table/tools/table.constants.mjs +0 -15
  537. package/esm2022/table/upd-table.module.mjs +0 -149
  538. package/esm2022/table/updevs-components-table.mjs +0 -5
  539. package/esm2022/updevs-components.mjs +0 -5
  540. package/form/components/dynamic-field/dynamic-field.component.d.ts +0 -45
  541. package/form/form.component.d.ts +0 -60
  542. package/form/index.d.ts +0 -1
  543. package/form/models/checkbox-field.model.d.ts +0 -4
  544. package/form/models/checkbox-group-field.model.d.ts +0 -6
  545. package/form/models/dynamic-field.model.d.ts +0 -30
  546. package/form/models/enums/dynamic-field.type.d.ts +0 -12
  547. package/form/models/enums/public-api.d.ts +0 -1
  548. package/form/models/form-row.model.d.ts +0 -8
  549. package/form/models/public-api.d.ts +0 -5
  550. package/form/models/radio-field.model.d.ts +0 -4
  551. package/form/models/radio-group-field.model.d.ts +0 -6
  552. package/form/models/select-field.model.d.ts +0 -28
  553. package/form/models/single-select-field.model.d.ts +0 -4
  554. package/form/models/textarea-field.model.d.ts +0 -10
  555. package/form/models/validator-config.d.ts +0 -5
  556. package/form/public-api.d.ts +0 -3
  557. package/form/tools/errors-helper.d.ts +0 -11
  558. package/form/upd-form.module.d.ts +0 -20
  559. package/form-controls/abstractions/base-control.d.ts +0 -24
  560. package/form-controls/abstractions/index.d.ts +0 -2
  561. package/form-controls/abstractions/public-api.d.ts +0 -2
  562. package/form-controls/checkbox/checkbox.component.d.ts +0 -21
  563. package/form-controls/checkbox/index.d.ts +0 -1
  564. package/form-controls/checkbox/public-api.d.ts +0 -2
  565. package/form-controls/checkbox/upd-checkbox.module.d.ts +0 -10
  566. package/form-controls/date-picker/date-picker.component.d.ts +0 -87
  567. package/form-controls/date-picker/index.d.ts +0 -1
  568. package/form-controls/date-picker/public-api.d.ts +0 -2
  569. package/form-controls/date-picker/upd-date-picker.module.d.ts +0 -12
  570. package/form-controls/input/directives/input-append.directive.d.ts +0 -7
  571. package/form-controls/input/directives/input-prepend.directive.d.ts +0 -7
  572. package/form-controls/input/directives/public-api.d.ts +0 -2
  573. package/form-controls/input/index.d.ts +0 -1
  574. package/form-controls/input/input.component.d.ts +0 -66
  575. package/form-controls/input/public-api.d.ts +0 -4
  576. package/form-controls/input/types/input.type.d.ts +0 -1
  577. package/form-controls/input/types/loader-position.type.d.ts +0 -1
  578. package/form-controls/input/types/public-api.d.ts +0 -2
  579. package/form-controls/input/upd-input.module.d.ts +0 -13
  580. package/form-controls/radio/index.d.ts +0 -1
  581. package/form-controls/radio/public-api.d.ts +0 -2
  582. package/form-controls/radio/radio.component.d.ts +0 -19
  583. package/form-controls/radio/upd-radio.module.d.ts +0 -10
  584. package/form-controls/select/components/multiple/select-multiple.component.d.ts +0 -25
  585. package/form-controls/select/components/single/select.component.d.ts +0 -26
  586. package/form-controls/select/index.d.ts +0 -1
  587. package/form-controls/select/models/abstractions/base-select.component.d.ts +0 -83
  588. package/form-controls/select/models/defaults.d.ts +0 -8
  589. package/form-controls/select/models/public-api.d.ts +0 -2
  590. package/form-controls/select/models/select-item.d.ts +0 -25
  591. package/form-controls/select/public-api.d.ts +0 -4
  592. package/form-controls/select/upd-select.module.d.ts +0 -16
  593. package/form-controls/textarea/index.d.ts +0 -1
  594. package/form-controls/textarea/public-api.d.ts +0 -2
  595. package/form-controls/textarea/textarea.component.d.ts +0 -21
  596. package/form-controls/textarea/upd-textarea.module.d.ts +0 -8
  597. package/form-controls/time-picker/index.d.ts +0 -1
  598. package/form-controls/time-picker/public-api.d.ts +0 -3
  599. package/form-controls/time-picker/time-picker.component.d.ts +0 -78
  600. package/form-controls/time-picker/time-selector/time-selector.component.d.ts +0 -69
  601. package/form-controls/time-picker/upd-time-picker.module.d.ts +0 -17
  602. package/index.d.ts +0 -2
  603. package/layout/abstractions/base-page.component.d.ts +0 -12
  604. package/layout/abstractions/base.layout.d.ts +0 -15
  605. package/layout/abstractions/public-api.d.ts +0 -1
  606. package/layout/index.d.ts +0 -1
  607. package/layout/layouts/blank-layout/blank-layout.component.d.ts +0 -5
  608. package/layout/layouts/blank-layout/blank-layout.module.d.ts +0 -8
  609. package/layout/layouts/public-api.d.ts +0 -4
  610. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +0 -12
  611. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +0 -21
  612. package/layout/models/login-page-config.model.d.ts +0 -37
  613. package/layout/models/login-page.config.d.ts +0 -35
  614. package/layout/models/public-api.d.ts +0 -2
  615. package/layout/models/security-layout-config.model.d.ts +0 -12
  616. package/layout/models/security-layout.config.d.ts +0 -10
  617. package/layout/models/upd-layout-config.model.d.ts +0 -48
  618. package/layout/models/upd-layout.config.d.ts +0 -46
  619. package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +0 -12
  620. package/layout/pages/auth-flow/auth-flow.module.d.ts +0 -18
  621. package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +0 -5
  622. package/layout/pages/auth-flow/login/login.component.d.ts +0 -23
  623. package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +0 -5
  624. package/layout/pages/auth-flow/public-api.d.ts +0 -5
  625. package/layout/pages/public-api.d.ts +0 -1
  626. package/layout/partials/footer/footer-copyright.directive.d.ts +0 -5
  627. package/layout/partials/footer/footer.component.d.ts +0 -34
  628. package/layout/partials/footer/public-api.d.ts +0 -2
  629. package/layout/partials/header/header-style.type.d.ts +0 -1
  630. package/layout/partials/header/header.component.d.ts +0 -31
  631. package/layout/partials/header/public-api.d.ts +0 -2
  632. package/layout/partials/page-header/page-header.component.d.ts +0 -7
  633. package/layout/partials/page-header/public-api.d.ts +0 -1
  634. package/layout/partials/public-api.d.ts +0 -4
  635. package/layout/partials/sidebar/public-api.d.ts +0 -1
  636. package/layout/partials/sidebar/sidebar.component.d.ts +0 -22
  637. package/layout/public-api.d.ts +0 -7
  638. package/layout/services/public-api.d.ts +0 -1
  639. package/layout/services/upd-layout-config.service.d.ts +0 -15
  640. package/layout/tools/layout.constants.d.ts +0 -15
  641. package/layout/upd-layout.module.d.ts +0 -18
  642. package/lib/index.d.ts +0 -2
  643. package/lib/models/public-api.d.ts +0 -2
  644. package/lib/models/row-column-size.d.ts +0 -6
  645. package/lib/public-api.d.ts +0 -5
  646. package/lib/tools/column-size.helper.d.ts +0 -6
  647. package/lib/tools/public-api.d.ts +0 -2
  648. package/lib/types/component-size.type.d.ts +0 -2
  649. package/lib/types/horizontal-vertical.type.d.ts +0 -2
  650. package/lib/types/public-api.d.ts +0 -4
  651. package/lib/types/validation-status.type.d.ts +0 -2
  652. package/lib/upd-components.module.d.ts +0 -7
  653. package/link/index.d.ts +0 -1
  654. package/link/public-api.d.ts +0 -3
  655. package/link/target.type.d.ts +0 -1
  656. package/link/upd-link.module.d.ts +0 -8
  657. package/list/index.d.ts +0 -1
  658. package/list/list.component.d.ts +0 -46
  659. package/list/models/badge-position.type.d.ts +0 -1
  660. package/list/models/list-item.d.ts +0 -20
  661. package/list/models/list-item.model.d.ts +0 -25
  662. package/list/models/public-api.d.ts +0 -2
  663. package/list/public-api.d.ts +0 -3
  664. package/list/upd-list.module.d.ts +0 -13
  665. package/modal/components/modal-container/modal-container.component.d.ts +0 -74
  666. package/modal/index.d.ts +0 -1
  667. package/modal/models/base.modal.d.ts +0 -8
  668. package/modal/models/modal-config.model.d.ts +0 -32
  669. package/modal/models/modal-ref.d.ts +0 -6
  670. package/modal/models/modal.config.d.ts +0 -30
  671. package/modal/models/public-api.d.ts +0 -3
  672. package/modal/public-api.d.ts +0 -3
  673. package/modal/services/modal-alert.service.d.ts +0 -22
  674. package/modal/services/modal.service.d.ts +0 -12
  675. package/modal/services/public-api.d.ts +0 -2
  676. package/modal/types/modal-footer-style.type.d.ts +0 -1
  677. package/modal/types/modal-size.type.d.ts +0 -1
  678. package/modal/upd-modal.module.d.ts +0 -18
  679. package/paginator/index.d.ts +0 -1
  680. package/paginator/paginator.component.d.ts +0 -42
  681. package/paginator/public-api.d.ts +0 -2
  682. package/paginator/upd-paginator.module.d.ts +0 -14
  683. package/popover/index.d.ts +0 -1
  684. package/popover/popover.component.d.ts +0 -22
  685. package/popover/popover.directive.d.ts +0 -33
  686. package/popover/public-api.d.ts +0 -3
  687. package/popover/upd-popover.module.d.ts +0 -9
  688. package/public-api.d.ts +0 -2
  689. package/table/abstractions/base-column.model.d.ts +0 -31
  690. package/table/abstractions/base.column.d.ts +0 -22
  691. package/table/abstractions/filters-operands.service.d.ts +0 -8
  692. package/table/abstractions/public-api.d.ts +0 -2
  693. package/table/components/columns/boolean-column/boolean-column.component.d.ts +0 -9
  694. package/table/components/columns/date-time-column/date-time-column.component.d.ts +0 -7
  695. package/table/components/columns/number-column/number-column.component.d.ts +0 -7
  696. package/table/components/columns/text-column/text-column.component.d.ts +0 -9
  697. package/table/components/columns-manager/columns-manager.component.d.ts +0 -15
  698. package/table/components/filter-row/filter-row.component.d.ts +0 -40
  699. package/table/components/save-search/save-search.component.d.ts +0 -17
  700. package/table/components/search-section/search-section.component.d.ts +0 -36
  701. package/table/directives/public-api.d.ts +0 -1
  702. package/table/directives/table-column.directive.d.ts +0 -14
  703. package/table/index.d.ts +0 -1
  704. package/table/models/columns/boolean-column.model.d.ts +0 -15
  705. package/table/models/columns/date-time-column.model.d.ts +0 -8
  706. package/table/models/columns/guid-column.model.d.ts +0 -4
  707. package/table/models/columns/image-column.model.d.ts +0 -6
  708. package/table/models/columns/number-column.model.d.ts +0 -8
  709. package/table/models/columns/public-api.d.ts +0 -6
  710. package/table/models/columns/text-column.model.d.ts +0 -6
  711. package/table/models/enums/column-type.enum.d.ts +0 -13
  712. package/table/models/enums/public-api.d.ts +0 -1
  713. package/table/models/filter-item.model.d.ts +0 -6
  714. package/table/models/filter-operand.config.d.ts +0 -9
  715. package/table/models/operands-lists/boolean-filter-operands-list.model.d.ts +0 -6
  716. package/table/models/operands-lists/date-filter-operands-list.model.d.ts +0 -6
  717. package/table/models/operands-lists/date-or-number-operands-list.config.d.ts +0 -5
  718. package/table/models/operands-lists/filter-operands-list.config.d.ts +0 -5
  719. package/table/models/operands-lists/guid-filter-operands-list.model.d.ts +0 -6
  720. package/table/models/operands-lists/number-filter-operands-list.model.d.ts +0 -6
  721. package/table/models/operands-lists/string-filter-operands-list.model.d.ts +0 -6
  722. package/table/models/public-api.d.ts +0 -4
  723. package/table/models/saved-view.model.d.ts +0 -11
  724. package/table/models/table-config.model.d.ts +0 -24
  725. package/table/models/table.config.d.ts +0 -22
  726. package/table/models/upd-table-config.model.d.ts +0 -6
  727. package/table/models/upd-table.config.d.ts +0 -6
  728. package/table/public-api.d.ts +0 -5
  729. package/table/services/default-filters-operands.service.d.ts +0 -17
  730. package/table/services/storages/saved-views.storage.d.ts +0 -22
  731. package/table/services/stores/filters-operands.store.d.ts +0 -11
  732. package/table/services/upd-table-config.service.d.ts +0 -12
  733. package/table/table.component.d.ts +0 -78
  734. package/table/tools/filters.tools.d.ts +0 -9
  735. package/table/tools/table.constants.d.ts +0 -15
  736. package/table/upd-table.module.d.ts +0 -40
@@ -1,247 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUkzRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQzs7O0FBTzFILE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUF3Qkk7O1dBRUc7UUFDTSxjQUFTLEdBQXFCLE9BQU8sQ0FBQztRQXVEL0MsZ0VBQWdFO1FBQ3ZELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFekIsc0RBQXNEO1FBQ25DLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFM0U7OztXQUdHO1FBQ2dCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUzRDs7O1dBR0c7UUFDZ0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVEOztXQUVHO1FBQ2dCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLENBQW1CLElBQUksQ0FBQyxDQUFDO1FBRTFFLHVDQUF1QztRQUNwQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUE4QyxDQUFDO1FBRWxHLGtGQUFrRjtRQUMvRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUEwQyxDQUFDO1FBdUM3Rjs7OztXQUlHO1FBQ0sseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBR3BCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBMkduRTtJQXpQRywrRUFBK0U7SUFDL0UsSUFDSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUF5QjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBTUQ7O09BRUc7SUFDSCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQTBDO1FBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxLQUFLLFlBQVksY0FBYyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO0lBQ0wsQ0FBQztJQUNEOztPQUVHO0lBQ0gsSUFDSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUF5QjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0Q7O09BRUc7SUFDSCxJQUNJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQXlCO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFpREQ7OztPQUdHO0lBQ0gsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQVc7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQXVCO1FBQ25DLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFlBQVksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzFFLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFFakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXZDLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDO0lBc0JELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdDLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkMsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsNEZBQTRGO1FBQzVGLHVGQUF1RjtRQUN2RixZQUFZO1FBQ1osTUFBTSxhQUFhLEdBQ2YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQy9HLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDcEIsTUFBTSxhQUFhLEdBQ2YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQy9HLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFcEIsTUFBTSxNQUFNLEdBQUcsYUFBYSxJQUFJLGFBQWEsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdkUsSUFBSSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFFN0MsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxzRkFBc0Y7Z0JBQ3RGLDRGQUE0RjtnQkFDNUYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLGVBQWU7UUFDWCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsZ0RBQWdEO0lBQ2hELGFBQWEsQ0FBQyxLQUFpRDtRQUMzRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBRXpCLElBQUksSUFBSSxDQUFDLFFBQVEsWUFBWSxjQUFjLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2RyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCw0QkFBNEIsQ0FBQyxjQUFvQjtRQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsZ0RBQWdEO0lBQ2hELHdCQUF3QixDQUFDLGVBQXFCO1FBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxpRUFBaUU7SUFDakUsZUFBZSxDQUFDLElBQVUsRUFBRSxJQUFzQjtRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsbUVBQW1FO0lBQ25FLFlBQVksQ0FBQyxLQUFtQztRQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLEtBQTJEO1FBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQStDLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7SUFDakMsQ0FBQztJQUVELG9GQUFvRjtJQUM1RSx3QkFBd0I7UUFDNUIsNEZBQTRGO1FBQzVGLDRGQUE0RjtRQUM1Rix5RkFBeUY7UUFDekYsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFFLENBQUM7SUFDcEUsQ0FBQzs4R0FsUVEsaUJBQWlCO2tHQUFqQixpQkFBaUIsMG9CQUVmLDBCQUEwQiwyRUFHMUIseUJBQXlCLGdGQUd6Qiw4QkFBOEIscUVDdEM3QyxnOERBa0NBOzsyRkRKYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0ksY0FBYzs4QkFNZSxTQUFTO3NCQUEvQyxTQUFTO3VCQUFDLDBCQUEwQjtnQkFHQyxRQUFRO3NCQUE3QyxTQUFTO3VCQUFDLHlCQUF5QjtnQkFHTyxhQUFhO3NCQUF2RCxTQUFTO3VCQUFDLDhCQUE4QjtnQkFJckMsT0FBTztzQkFEVixLQUFLO2dCQVdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0YsUUFBUTtzQkFEWCxLQUFLO2dCQWdCRixPQUFPO3NCQURWLEtBQUs7Z0JBV0YsT0FBTztzQkFEVixLQUFLO2dCQVVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUdHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR2EsY0FBYztzQkFBaEMsTUFBTTtnQkFNWSxZQUFZO3NCQUE5QixNQUFNO2dCQU1ZLGFBQWE7c0JBQS9CLE1BQU07Z0JBS1ksV0FBVztzQkFBN0IsTUFBTTtnQkFHWSxhQUFhO3NCQUEvQixNQUFNO2dCQUdZLFlBQVk7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9wdGlvbmFsVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcbmltcG9ydCB7IERhdGVTZXJ2aWNlIH0gZnJvbSAnQHVwZGV2cy9zZGsvY29yZSc7XG5cbmltcG9ydCB7IERhdGVSYW5nZU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZGF0ZS1yYW5nZS5tb2RlbCc7XG5pbXBvcnQgeyBDYWxlbmRhclZpZXdUeXBlIH0gZnJvbSAnLi90eXBlcy9jYWxlbmRhci12aWV3LnR5cGUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJVc2VyRXZlbnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2NhbGVuZGFyLXVzZXItZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDZWxsQ2xhc3NGdW5jdGlvblR5cGUgfSBmcm9tICcuL3R5cGVzL2NhbGVuZGFyLWNlbGwtY2xhc3MtZnVuY3Rpb24udHlwZSc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYWxlbmRhci1tb250aC12aWV3L2NhbGVuZGFyLW1vbnRoLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyWWVhclZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FsZW5kYXIteWVhci12aWV3L2NhbGVuZGFyLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNdWx0aVllYXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGVuZGFyLW11bHRpLXllYXItdmlldy9jYWxlbmRhci1tdWx0aS15ZWFyLXZpZXcuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1cGQtY2FsZW5kYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uQ2hhbmdlcyB7XG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBtb250aCB2aWV3IGNvbXBvbmVudC4gKi9cbiAgICBAVmlld0NoaWxkKENhbGVuZGFyTW9udGhWaWV3Q29tcG9uZW50KSBtb250aFZpZXc/OiBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudDtcblxuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgeWVhciB2aWV3IGNvbXBvbmVudC4gKi9cbiAgICBAVmlld0NoaWxkKENhbGVuZGFyWWVhclZpZXdDb21wb25lbnQpIHllYXJWaWV3PzogQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudDtcblxuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgbXVsdGkteWVhciB2aWV3IGNvbXBvbmVudC4gKi9cbiAgICBAVmlld0NoaWxkKENhbGVuZGFyTXVsdGlZZWFyVmlld0NvbXBvbmVudCkgbXVsdGlZZWFyVmlldz86IENhbGVuZGFyTXVsdGlZZWFyVmlld0NvbXBvbmVudDtcblxuICAgIC8qKiBBIGRhdGUgcmVwcmVzZW50aW5nIHRoZSBwZXJpb2QgKG1vbnRoIG9yIHllYXIpIHRvIHN0YXJ0IHRoZSBjYWxlbmRhciBpbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBzdGFydEF0KCk6IE9wdGlvbmFsVHlwZTxEYXRlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFydEF0O1xuICAgIH1cbiAgICBzZXQgc3RhcnRBdCh2YWx1ZTogT3B0aW9uYWxUeXBlPERhdGU+KSB7XG4gICAgICAgIHRoaXMuX3N0YXJ0QXQgPSB0aGlzLmRhdGVTZXJ2aWNlLmdldFZhbGlkT3JVbmRlZmluZWQodGhpcy5kYXRlU2VydmljZS5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNhbGVuZGFyIHNob3VsZCBiZSBzdGFydGVkIGluIG1vbnRoIG9yIHllYXIgdmlldy5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdGFydFZpZXc6IENhbGVuZGFyVmlld1R5cGUgPSAnbW9udGgnO1xuICAgIC8qKlxuICAgICAqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBzZWxlY3RlZCgpOiBEYXRlUmFuZ2VNb2RlbCB8IE9wdGlvbmFsVHlwZTxEYXRlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgICB9XG4gICAgc2V0IHNlbGVjdGVkKHZhbHVlOiBEYXRlUmFuZ2VNb2RlbCB8IE9wdGlvbmFsVHlwZTxEYXRlPikge1xuICAgICAgICBjb25zb2xlLmxvZygnc2V0dGluZyBzZWxlY3RlZCcsIHZhbHVlKTtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZVJhbmdlTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHRoaXMuZGF0ZVNlcnZpY2UuZ2V0VmFsaWRPclVuZGVmaW5lZCh0aGlzLmRhdGVTZXJ2aWNlLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIG1pbmltdW0gc2VsZWN0YWJsZSBkYXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG1pbkRhdGUoKTogT3B0aW9uYWxUeXBlPERhdGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XG4gICAgfVxuICAgIHNldCBtaW5EYXRlKHZhbHVlOiBPcHRpb25hbFR5cGU8RGF0ZT4pIHtcbiAgICAgICAgdGhpcy5fbWluRGF0ZSA9IHRoaXMuZGF0ZVNlcnZpY2UuZ2V0VmFsaWRPclVuZGVmaW5lZCh0aGlzLmRhdGVTZXJ2aWNlLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIHNlbGVjdGFibGUgZGF0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBtYXhEYXRlKCk6IE9wdGlvbmFsVHlwZTxEYXRlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhEYXRlO1xuICAgIH1cbiAgICBzZXQgbWF4RGF0ZSh2YWx1ZTogT3B0aW9uYWxUeXBlPERhdGU+KSB7XG4gICAgICAgIHRoaXMuX21heERhdGUgPSB0aGlzLmRhdGVTZXJ2aWNlLmdldFZhbGlkT3JVbmRlZmluZWQodGhpcy5kYXRlU2VydmljZS5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGZpbHRlciB3aGljaCBkYXRlcyBhcmUgc2VsZWN0YWJsZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBkYXRlRmlsdGVyPzogKGRhdGU6IERhdGUpID0+IGJvb2xlYW47XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCB0byBhZGQgY3VzdG9tIENTUyBjbGFzc2VzIHRvIGRhdGVzLiAqL1xuICAgIEBJbnB1dCgpIGRhdGVDbGFzcz86IENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb25UeXBlO1xuXG4gICAgLyoqIFN0YXJ0IG9mIHRoZSBjb21wYXJpc29uIHJhbmdlLiAqL1xuICAgIEBJbnB1dCgpIGNvbXBhcmlzb25TdGFydD86IERhdGU7XG5cbiAgICAvKiogRW5kIG9mIHRoZSBjb21wYXJpc29uIHJhbmdlLiAqL1xuICAgIEBJbnB1dCgpIGNvbXBhcmlzb25FbmQ/OiBEYXRlO1xuXG4gICAgLyoqIEFSSUEgQWNjZXNzaWJsZSBuYW1lIG9mIHRoZSBgPGlucHV0IG1hdFN0YXJ0RGF0ZS8+YCAqL1xuICAgIEBJbnB1dCgpIHN0YXJ0RGF0ZUFjY2Vzc2libGVOYW1lPzogc3RyaW5nO1xuXG4gICAgLyoqIEFSSUEgQWNjZXNzaWJsZSBuYW1lIG9mIHRoZSBgPGlucHV0IG1hdEVuZERhdGUvPmAgKi9cbiAgICBASW5wdXQoKSBlbmREYXRlQWNjZXNzaWJsZU5hbWU/OiBzdHJpbmc7XG4gICAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaXMgY3VycmVudGx5IHNlbGVjdGluZyBhIHJhbmdlIG9mIGRhdGVzLiAqL1xuICAgIEBJbnB1dCgpIGlzUmFuZ2UgPSBmYWxzZTtcblxuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZSBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8T3B0aW9uYWxUeXBlPERhdGU+PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgdGhlIHllYXIgY2hvc2VuIGluIG11bHRpeWVhciB2aWV3LlxuICAgICAqIFRoaXMgZG9lc24ndCBpbXBseSBhIGNoYW5nZSBvbiB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgeWVhclNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgdGhlIG1vbnRoIGNob3NlbiBpbiB5ZWFyIHZpZXcuXG4gICAgICogVGhpcyBkb2Vzbid0IGltcGx5IGEgY2hhbmdlIG9uIHRoZSBzZWxlY3RlZCBkYXRlLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBtb250aFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiB0aGUgY3VycmVudCB2aWV3IGNoYW5nZXMuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHZpZXdDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhclZpZXdUeXBlPih0cnVlKTtcblxuICAgIC8qKiBFbWl0cyB3aGVuIGFueSBkYXRlIGlzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB1c2VyU2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhclVzZXJFdmVudE1vZGVsPE9wdGlvbmFsVHlwZTxEYXRlPj4+KCk7XG5cbiAgICAvKiogRW1pdHMgYSBuZXcgZGF0ZSByYW5nZSB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNvbXBsZXRlcyBhIGRyYWcgZHJvcCBvcGVyYXRpb24uICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHVzZXJEcmFnRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FsZW5kYXJVc2VyRXZlbnRNb2RlbDxEYXRlUmFuZ2VNb2RlbD4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCBhY3RpdmUgZGF0ZS4gVGhpcyBkZXRlcm1pbmVzIHdoaWNoIHRpbWUgcGVyaW9kIGlzIHNob3duIGFuZCB3aGljaCBkYXRlIGlzXG4gICAgICogaGlnaGxpZ2h0ZWQgd2hlbiB1c2luZyBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICAgICAqL1xuICAgIGdldCBhY3RpdmVEYXRlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xhbXBlZEFjdGl2ZURhdGU7XG4gICAgfVxuICAgIHNldCBhY3RpdmVEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIHRoaXMuX2NsYW1wZWRBY3RpdmVEYXRlID0gdGhpcy5kYXRlU2VydmljZS5jbGFtcCh2YWx1ZSwgdGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgY2FsZW5kYXIgaXMgaW4gbW9udGggdmlldy4gKi9cbiAgICBnZXQgY3VycmVudFZpZXcoKTogQ2FsZW5kYXJWaWV3VHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50VmlldztcbiAgICB9XG4gICAgc2V0IGN1cnJlbnRWaWV3KHZhbHVlOiBDYWxlbmRhclZpZXdUeXBlKSB7XG4gICAgICAgIGNvbnN0IHZpZXdDaGFuZ2VkUmVzdWx0ID0gdGhpcy5fY3VycmVudFZpZXcgIT09IHZhbHVlID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRWaWV3ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX21vdmVGb2N1c09uTmV4dFRpY2sgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIGlmICh2aWV3Q2hhbmdlZFJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy52aWV3Q2hhbmdlZC5lbWl0KHZpZXdDaGFuZ2VkUmVzdWx0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBPcmlnaW4gb2YgYWN0aXZlIGRyYWcsIG9yIG51bGwgd2hlbiBkcmFnZ2luZyBpcyBub3QgYWN0aXZlLiAqL1xuICAgIHByb3RlY3RlZCBfYWN0aXZlRHJhZz86IENhbGVuZGFyVXNlckV2ZW50TW9kZWw8RGF0ZT47XG5cbiAgICBwcml2YXRlIF9jbGFtcGVkQWN0aXZlRGF0ZSE6IERhdGU7XG4gICAgcHJpdmF0ZSBfc3RhcnRBdD86IERhdGU7XG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQ/OiBEYXRlUmFuZ2VNb2RlbCB8IERhdGU7XG4gICAgcHJpdmF0ZSBfbWluRGF0ZT86IERhdGU7XG4gICAgcHJpdmF0ZSBfbWF4RGF0ZT86IERhdGU7XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGZvciBzY2hlZHVsaW5nIHRoYXQgZm9jdXMgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBhY3RpdmUgY2VsbCBvbiB0aGUgbmV4dCB0aWNrLlxuICAgICAqIFdlIG5lZWQgdG8gc2NoZWR1bGUgaXQsIHJhdGhlciB0aGFuIGRvIGl0IGltbWVkaWF0ZWx5LCBiZWNhdXNlIHdlIGhhdmUgdG8gd2FpdFxuICAgICAqIGZvciBBbmd1bGFyIHRvIHJlLWV2YWx1YXRlIHRoZSB2aWV3IGNoaWxkcmVuLlxuICAgICAqL1xuICAgIHByaXZhdGUgX21vdmVGb2N1c09uTmV4dFRpY2sgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9jdXJyZW50VmlldyE6IENhbGVuZGFyVmlld1R5cGU7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVTZXJ2aWNlID0gaW5qZWN0KERhdGVTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuc3RhcnRBdCB8fCBuZXcgRGF0ZSgpO1xuICAgICAgICAvLyBBc3NpZ24gdG8gdGhlIHByaXZhdGUgcHJvcGVydHkgc2luY2Ugd2UgZG9uJ3Qgd2FudCB0byBtb3ZlIGZvY3VzIG9uIGluaXQuXG4gICAgICAgIHRoaXMuX2N1cnJlbnRWaWV3ID0gdGhpcy5zdGFydFZpZXc7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fbW92ZUZvY3VzT25OZXh0VGljaykge1xuICAgICAgICAgICAgdGhpcy5fbW92ZUZvY3VzT25OZXh0VGljayA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5mb2N1c0FjdGl2ZUNlbGwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgLy8gSWdub3JlIGRhdGUgY2hhbmdlcyB0aGF0IGFyZSBhdCBhIGRpZmZlcmVudCB0aW1lIG9uIHRoZSBzYW1lIGRheS4gVGhpcyBmaXhlcyBpc3N1ZXMgd2hlcmVcbiAgICAgICAgLy8gdGhlIGNhbGVuZGFyIHJlLXJlbmRlcnMgd2hlbiB0aGVyZSBpcyBubyBtZWFuaW5nZnVsIGNoYW5nZSB0byBbbWluRGF0ZV0gb3IgW21heERhdGVdXG4gICAgICAgIC8vICgjMjQ0MzUpLlxuICAgICAgICBjb25zdCBtaW5EYXRlQ2hhbmdlOiBPcHRpb25hbFR5cGU8U2ltcGxlQ2hhbmdlPiA9XG4gICAgICAgICAgICBjaGFuZ2VzWydtaW5EYXRlJ10gJiYgIXRoaXMuZGF0ZVNlcnZpY2UuYXJlRXF1YWwoY2hhbmdlc1snbWluRGF0ZSddLnByZXZpb3VzVmFsdWUsIGNoYW5nZXNbJ21pbkRhdGUnXS5jdXJyZW50VmFsdWUpXG4gICAgICAgICAgICAgICAgPyBjaGFuZ2VzWydtaW5EYXRlJ11cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgbWF4RGF0ZUNoYW5nZTogT3B0aW9uYWxUeXBlPFNpbXBsZUNoYW5nZT4gPVxuICAgICAgICAgICAgY2hhbmdlc1snbWF4RGF0ZSddICYmICF0aGlzLmRhdGVTZXJ2aWNlLmFyZUVxdWFsKGNoYW5nZXNbJ21heERhdGUnXS5wcmV2aW91c1ZhbHVlLCBjaGFuZ2VzWydtYXhEYXRlJ10uY3VycmVudFZhbHVlKVxuICAgICAgICAgICAgICAgID8gY2hhbmdlc1snbWF4RGF0ZSddXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3QgY2hhbmdlID0gbWluRGF0ZUNoYW5nZSB8fCBtYXhEYXRlQ2hhbmdlIHx8IGNoYW5nZXNbJ2RhdGVGaWx0ZXInXTtcblxuICAgICAgICBpZiAoY2hhbmdlICYmICFjaGFuZ2UuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLl9nZXRDdXJyZW50Vmlld0NvbXBvbmVudCgpO1xuXG4gICAgICAgICAgICBpZiAodmlldykge1xuICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gYGRldGVjdENoYW5nZXNgIG1hbnVhbGx5IGhlcmUsIGJlY2F1c2UgdGhlIGBtaW5EYXRlYCwgYG1heERhdGVgIGV0Yy4gYXJlXG4gICAgICAgICAgICAgICAgLy8gcGFzc2VkIGRvd24gdG8gdGhlIHZpZXcgdmlhIGRhdGEgYmluZGluZ3Mgd2hpY2ggd29uJ3QgYmUgdXAtdG8tZGF0ZSB3aGVuIHdlIGNhbGwgYF9pbml0YC5cbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgdmlldy5pbml0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRm9jdXNlcyB0aGUgYWN0aXZlIGRhdGUuICovXG4gICAgZm9jdXNBY3RpdmVDZWxsKCkge1xuICAgICAgICB0aGlzLl9nZXRDdXJyZW50Vmlld0NvbXBvbmVudCgpLmZvY3VzQWN0aXZlQ2VsbChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZXMgdG9kYXkncyBkYXRlIGFmdGVyIGFuIHVwZGF0ZSBvZiB0aGUgYWN0aXZlIGRhdGUgKi9cbiAgICB1cGRhdGVUb2RheXNEYXRlKCkge1xuICAgICAgICB0aGlzLl9nZXRDdXJyZW50Vmlld0NvbXBvbmVudCgpLmluaXQoKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyBkYXRlIHNlbGVjdGlvbiBpbiB0aGUgbW9udGggdmlldy4gKi9cbiAgICBfZGF0ZVNlbGVjdGVkKGV2ZW50OiBDYWxlbmRhclVzZXJFdmVudE1vZGVsPE9wdGlvbmFsVHlwZTxEYXRlPj4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IGV2ZW50LnZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkIGluc3RhbmNlb2YgRGF0ZVJhbmdlTW9kZWwgfHwgKGRhdGUgJiYgIXRoaXMuZGF0ZVNlcnZpY2UuYXJlRXF1YWwoZGF0ZSwgdGhpcy5zZWxlY3RlZCkpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQoZGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVzZXJTZWxlY3Rpb24uZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXMgeWVhciBzZWxlY3Rpb24gaW4gdGhlIG11bHRpeWVhciB2aWV3LiAqL1xuICAgIF95ZWFyU2VsZWN0ZWRJbk11bHRpWWVhclZpZXcobm9ybWFsaXplZFllYXI6IERhdGUpIHtcbiAgICAgICAgdGhpcy55ZWFyU2VsZWN0ZWQuZW1pdChub3JtYWxpemVkWWVhcik7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXMgbW9udGggc2VsZWN0aW9uIGluIHRoZSB5ZWFyIHZpZXcuICovXG4gICAgX21vbnRoU2VsZWN0ZWRJblllYXJWaWV3KG5vcm1hbGl6ZWRNb250aDogRGF0ZSkge1xuICAgICAgICB0aGlzLm1vbnRoU2VsZWN0ZWQuZW1pdChub3JtYWxpemVkTW9udGgpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIHllYXIvbW9udGggc2VsZWN0aW9uIGluIHRoZSBtdWx0aS15ZWFyL3llYXIgdmlld3MuICovXG4gICAgX2dvVG9EYXRlSW5WaWV3KGRhdGU6IERhdGUsIHZpZXc6IENhbGVuZGFyVmlld1R5cGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5jdXJyZW50VmlldyA9IHZpZXc7XG4gICAgfVxuXG4gICAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHN0YXJ0cyBkcmFnZ2luZyB0byBjaGFuZ2UgYSBkYXRlIHJhbmdlLiAqL1xuICAgIF9kcmFnU3RhcnRlZChldmVudDogQ2FsZW5kYXJVc2VyRXZlbnRNb2RlbDxEYXRlPikge1xuICAgICAgICB0aGlzLl9hY3RpdmVEcmFnID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gYSBkcmFnIGNvbXBsZXRlcy4gSXQgbWF5IGVuZCBpbiBjYW5jZWxhdGlvbiBvciBpbiB0aGUgc2VsZWN0aW9uXG4gICAgICogb2YgYSBuZXcgcmFuZ2UuXG4gICAgICovXG4gICAgX2RyYWdFbmRlZChldmVudDogQ2FsZW5kYXJVc2VyRXZlbnRNb2RlbDxPcHRpb25hbFR5cGU8RGF0ZVJhbmdlTW9kZWw+Pikge1xuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZURyYWcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51c2VyRHJhZ0Ryb3AuZW1pdChldmVudCBhcyBDYWxlbmRhclVzZXJFdmVudE1vZGVsPERhdGVSYW5nZU1vZGVsPik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9hY3RpdmVEcmFnID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBjb21wb25lbnQgaW5zdGFuY2UgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgY3VycmVudCBjYWxlbmRhciB2aWV3LiAqL1xuICAgIHByaXZhdGUgX2dldEN1cnJlbnRWaWV3Q29tcG9uZW50KCk6IENhbGVuZGFyTW9udGhWaWV3Q29tcG9uZW50IHwgQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudCB8IENhbGVuZGFyTXVsdGlZZWFyVmlld0NvbXBvbmVudCB7XG4gICAgICAgIC8vIFRoZSByZXR1cm4gdHlwZSBpcyBleHBsaWNpdGx5IHdyaXR0ZW4gYXMgYSB1bmlvbiB0byBlbnN1cmUgdGhhdCB0aGUgQ2xvc3VyZSBjb21waWxlciBkb2VzXG4gICAgICAgIC8vIG5vdCBvcHRpbWl6ZSBjYWxscyB0byBfaW5pdCgpLiBXaXRob3V0IHRoZSBleHBsaWNpdCByZXR1cm4gdHlwZSwgVHlwZVNjcmlwdCBuYXJyb3dzIGl0IHRvXG4gICAgICAgIC8vIG9ubHkgdGhlIGZpcnN0IGNvbXBvbmVudCB0eXBlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvMjI5OTYuXG4gICAgICAgIHJldHVybiAodGhpcy5tb250aFZpZXcgfHwgdGhpcy55ZWFyVmlldyB8fCB0aGlzLm11bHRpWWVhclZpZXcpITtcbiAgICB9XG59XG4iLCJAc3dpdGNoIChjdXJyZW50Vmlldykge1xuICAgIEBjYXNlICgnbW9udGgnKSB7XG4gICAgICAgIDx1cGQtY2FsZW5kYXItbW9udGgtdmlldyBbKGFjdGl2ZURhdGUpXT1cImFjdGl2ZURhdGVcIiBbaXNSYW5nZV09XCJpc1JhbmdlXCIgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCIgW2RhdGVGaWx0ZXJdPVwiZGF0ZUZpbHRlclwiXG4gICAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCIgW21pbkRhdGVdPVwibWluRGF0ZVwiIFtkYXRlQ2xhc3NdPVwiZGF0ZUNsYXNzXCIgW2NvbXBhcmlzb25TdGFydF09XCJjb21wYXJpc29uU3RhcnRcIlxuICAgICAgICAgICAgW2NvbXBhcmlzb25FbmRdPVwiY29tcGFyaXNvbkVuZFwiIFtzdGFydERhdGVBY2Nlc3NpYmxlTmFtZV09XCJzdGFydERhdGVBY2Nlc3NpYmxlTmFtZVwiXG4gICAgICAgICAgICBbZW5kRGF0ZUFjY2Vzc2libGVOYW1lXT1cImVuZERhdGVBY2Nlc3NpYmxlTmFtZVwiICh1c2VyU2VsZWN0aW9uKT1cIl9kYXRlU2VsZWN0ZWQoJGV2ZW50KVwiIChkcmFnU3RhcnRlZCk9XCJfZHJhZ1N0YXJ0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoZHJhZ0VuZGVkKT1cIl9kcmFnRW5kZWQoJGV2ZW50KVwiIFthY3RpdmVEcmFnXT1cIl9hY3RpdmVEcmFnXCI+XG4gICAgICAgIDwvdXBkLWNhbGVuZGFyLW1vbnRoLXZpZXc+XG4gICAgfVxuICAgIEBjYXNlICgneWVhcicpIHtcbiAgICAgICAgWUVBUiFcbiAgICAgICAgICAgIDwhLS0gICAgICAgIDx1cGQtY2FsZW5kYXIteWVhci12aWV3LS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgWyhhY3RpdmVEYXRlKV09XCJhY3RpdmVEYXRlXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIFtkYXRlRmlsdGVyXT1cImRhdGVGaWx0ZXJcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIFtkYXRlQ2xhc3NdPVwiZGF0ZUNsYXNzXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJfbW9udGhTZWxlY3RlZEluWWVhclZpZXcoJGV2ZW50KVwiLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIl9nb1RvRGF0ZUluVmlldygkZXZlbnQsICdtb250aCcpXCI+PC91cGQtY2FsZW5kYXIteWVhci12aWV3Pi0tPlxuICAgIH1cbiAgICBAY2FzZSAoJ211bHRpLXllYXInKSB7XG4gICAgICAgIE1VVU1VTVVVTFRJLVlFQVIhXG4gICAgICAgICAgICA8IS0tICAgICAgICA8dXBkLWNhbGVuZGFyLW11bHRpLXllYXItdmlldy0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIFsoYWN0aXZlRGF0ZSldPVwiYWN0aXZlRGF0ZVwiLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICBbZGF0ZUZpbHRlcl09XCJkYXRlRmlsdGVyXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICBbZGF0ZUNsYXNzXT1cImRhdGVDbGFzc1wiLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJfeWVhclNlbGVjdGVkSW5NdWx0aVllYXJWaWV3KCRldmVudClcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJfZ29Ub0RhdGVJblZpZXcoJGV2ZW50LCAneWVhcicpXCI+PC91cGQtY2FsZW5kYXItbXVsdGkteWVhci12aWV3Pi0tPlxuICAgIH1cbn1cbiJdfQ==