@f1falcha/stimulus 1.0.0

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 (576) hide show
  1. package/accordion/accordion-config.scss +18 -0
  2. package/accordion/accordion-item/accordion-item.component.d.ts +11 -0
  3. package/accordion/accordion-item-body/accordion-item-body.component.d.ts +10 -0
  4. package/accordion/accordion-item-header/accordion-item-header.component.d.ts +15 -0
  5. package/accordion/accordion.d.ts +12 -0
  6. package/accordion/accordion.icon.d.ts +3 -0
  7. package/accordion/accordion.scss +41 -0
  8. package/account-card/account-card-config.scss +36 -0
  9. package/account-card/account-card-header/account-card-header-config.scss +9 -0
  10. package/account-card/account-card-header/account-card-header.component.d.ts +12 -0
  11. package/account-card/account-card-header/account-card-header.scss +11 -0
  12. package/account-card/account-card.component.d.ts +16 -0
  13. package/account-card/account-card.scss +19 -0
  14. package/alert/alert-animation.d.ts +6 -0
  15. package/alert/alert-config.d.ts +26 -0
  16. package/alert/alert-config.scss +43 -0
  17. package/alert/alert-icon.d.ts +3 -0
  18. package/alert/alert-ref.d.ts +11 -0
  19. package/alert/alert.d.ts +23 -0
  20. package/alert/alert.scss +91 -0
  21. package/alert/alert.service.d.ts +31 -0
  22. package/avatar/avatar-config.scss +12 -0
  23. package/avatar/avatar.d.ts +21 -0
  24. package/avatar/avatar.scss +2 -0
  25. package/badge/badge-config.scss +68 -0
  26. package/badge/badge.d.ts +17 -0
  27. package/badge/badge.scss +21 -0
  28. package/bank-logo.provider.d.ts +7 -0
  29. package/bordered-section/bordered-section-config.scss +24 -0
  30. package/bordered-section/bordered-section.d.ts +15 -0
  31. package/bordered-section/bordered-section.scss +22 -0
  32. package/box-shadow/box-shadow-config.scss +18 -0
  33. package/button/button-config.scss +342 -0
  34. package/button/button.d.ts +10 -0
  35. package/button/button.scss +62 -0
  36. package/button-group/button-group-config.scss +12 -0
  37. package/button-group/button-group-header/button-group-header-config.scss +9 -0
  38. package/button-group/button-group-header/button-group-header.d.ts +8 -0
  39. package/button-group/button-group-header/button-group-header.scss +5 -0
  40. package/button-group/button-group.d.ts +11 -0
  41. package/button-group/buttton-group.scss +19 -0
  42. package/button-spinner/button-spinner-config.scss +15 -0
  43. package/button-spinner/button-spinner.scss +30 -0
  44. package/card/card-config.scss +15 -0
  45. package/card/card.component.d.ts +8 -0
  46. package/card/card.scss +14 -0
  47. package/chart/chart-config.scss +21 -0
  48. package/chart/chart.component.d.ts +21 -0
  49. package/chart/chart.component.scss +34 -0
  50. package/checkbox/checkbox-config.scss +62 -0
  51. package/checkbox/checkbox.scss +45 -0
  52. package/checkbox-dropdown/checkbox-dropdown.component.d.ts +139 -0
  53. package/checkbox-dropdown/checkbox-dropdown.component.scss +11 -0
  54. package/checkbox-dropdown/checkbox-dropdown.icon.d.ts +3 -0
  55. package/clipboard/clipboard-config.scss +23 -0
  56. package/clipboard/clipboard.component.d.ts +15 -0
  57. package/clipboard/clipboard.component.scss +37 -0
  58. package/clipboard/clipboard.icon.d.ts +3 -0
  59. package/color/cherry.scss +19 -0
  60. package/color/chilli.scss +19 -0
  61. package/color/comet.scss +19 -0
  62. package/color/cotton-candy.scss +19 -0
  63. package/color/default.scss +154 -0
  64. package/color/emerald.scss +19 -0
  65. package/color/goblin.scss +19 -0
  66. package/color/jacaranda.scss +19 -0
  67. package/color/mars.scss +19 -0
  68. package/color/orchid.scss +19 -0
  69. package/color/spaceship.scss +19 -0
  70. package/color/summer.scss +19 -0
  71. package/color/tiger-lily.scss +19 -0
  72. package/color-wrapper/color-wrapper-config.scss +37 -0
  73. package/color-wrapper/color-wrapper.d.ts +17 -0
  74. package/color-wrapper/color-wrapper.scss +23 -0
  75. package/column-seperator/column-separator-config.scss +16 -0
  76. package/column-seperator/column-separator.d.ts +14 -0
  77. package/column-seperator/column-separator.scss +25 -0
  78. package/column-text/column-text.config.scss +12 -0
  79. package/column-text/column-text.d.ts +11 -0
  80. package/column-text/column-text.scss +22 -0
  81. package/container/container-config.scss +12 -0
  82. package/container/container.component.d.ts +12 -0
  83. package/container/container.scss +19 -0
  84. package/custom-datepicker/custom-datepicker-config.scss +50 -0
  85. package/custom-datepicker/custom-datepicker.component.d.ts +80 -0
  86. package/custom-datepicker/custom-datepicker.component.scss +127 -0
  87. package/custom-datepicker/custom-datepicker.model.d.ts +18 -0
  88. package/custom-datepicker/datepicker.icon.d.ts +3 -0
  89. package/custom-datepicker/timepicker/timepicker.component.d.ts +37 -0
  90. package/custom-datepicker/timepicker/timepicker.component.scss +79 -0
  91. package/data-list/data-list.config.scss +35 -0
  92. package/data-list/data-list.d.ts +13 -0
  93. package/data-list/data-list.scss +67 -0
  94. package/date-range-picker/date-range-picker.d.ts +40 -0
  95. package/datepicker/datepicker.config.scss +0 -0
  96. package/datepicker/datepicker.d.ts +45 -0
  97. package/datepicker/datepicker.scss +0 -0
  98. package/datepicker-icon/datepicker-icon-config.scss +10 -0
  99. package/datepicker-icon/datepicker-icon.d.ts +6 -0
  100. package/datepicker-icon/datepicker-icon.scss +7 -0
  101. package/datepicker.provider.d.ts +2 -0
  102. package/detail-panel/detail-panel-config.scss +16 -0
  103. package/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column-config.scss +11 -0
  104. package/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column.d.ts +6 -0
  105. package/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column.scss +15 -0
  106. package/detail-panel/detail-panel-row/detail-panel-row.d.ts +6 -0
  107. package/detail-panel/detail-panel-row/detail-panel-row.scss +5 -0
  108. package/detail-panel/detail-panel-title/detail-panel-title-config.scss +14 -0
  109. package/detail-panel/detail-panel-title/detail-panel-title.d.ts +7 -0
  110. package/detail-panel/detail-panel-title/detail-panel-title.scss +16 -0
  111. package/detail-panel/detail-panel.d.ts +11 -0
  112. package/detail-panel/detail-panel.scss +50 -0
  113. package/dialog/dialog-body/dialog-body.component.d.ts +6 -0
  114. package/dialog/dialog-config.scss +24 -0
  115. package/dialog/dialog-container/dialog-container-config.scss +9 -0
  116. package/dialog/dialog-container/dialog-container.component.d.ts +6 -0
  117. package/dialog/dialog-container/dialog-container.scss +6 -0
  118. package/dialog/dialog-footer/dialog-footer.component.d.ts +6 -0
  119. package/dialog/dialog-footer/dialog-footer.scss +6 -0
  120. package/dialog/dialog-header/dialog-header-config.scss +14 -0
  121. package/dialog/dialog-header/dialog-header.component.d.ts +10 -0
  122. package/dialog/dialog-header/dialog-header.scss +16 -0
  123. package/dialog/dialog-icon.d.ts +3 -0
  124. package/dialog/dialog.component.d.ts +12 -0
  125. package/dialog/dialog.scss +27 -0
  126. package/dialog.provider.d.ts +3 -0
  127. package/dialog.ref.d.ts +4 -0
  128. package/dialog.service.d.ts +7 -0
  129. package/dropdown/context-menu-config.scss +23 -0
  130. package/dropdown/context-menu-content/context-menu-content.d.ts +9 -0
  131. package/dropdown/context-menu-item.d.ts +10 -0
  132. package/dropdown/context-menu-list/context-menu-list.d.ts +9 -0
  133. package/dropdown/context-menu.d.ts +19 -0
  134. package/dropdown/context-menu.scss +41 -0
  135. package/error-page-container/error-content/error-content-config.scss +29 -0
  136. package/error-page-container/error-content/error-content.d.ts +24 -0
  137. package/error-page-container/error-content/error-content.scss +58 -0
  138. package/error-page-container/error-page-container.d.ts +6 -0
  139. package/error-page-container/error-page-container.scss +15 -0
  140. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +23 -0
  141. package/esm2022/accordion/accordion-item-body/accordion-item-body.component.mjs +18 -0
  142. package/esm2022/accordion/accordion-item-header/accordion-item-header.component.mjs +41 -0
  143. package/esm2022/accordion/accordion.icon.mjs +25 -0
  144. package/esm2022/accordion/accordion.mjs +14 -0
  145. package/esm2022/account-card/account-card-header/account-card-header.component.mjs +30 -0
  146. package/esm2022/account-card/account-card.component.mjs +64 -0
  147. package/esm2022/alert/alert-animation.mjs +9 -0
  148. package/esm2022/alert/alert-config.mjs +13 -0
  149. package/esm2022/alert/alert-icon.mjs +33 -0
  150. package/esm2022/alert/alert-ref.mjs +23 -0
  151. package/esm2022/alert/alert.mjs +50 -0
  152. package/esm2022/alert/alert.service.mjs +112 -0
  153. package/esm2022/avatar/avatar.mjs +91 -0
  154. package/esm2022/badge/badge.mjs +77 -0
  155. package/esm2022/bank-logo.provider.mjs +12 -0
  156. package/esm2022/bordered-section/bordered-section.mjs +70 -0
  157. package/esm2022/button/button.mjs +26 -0
  158. package/esm2022/button-group/button-group-header/button-group-header.mjs +24 -0
  159. package/esm2022/button-group/button-group.mjs +41 -0
  160. package/esm2022/card/card.component.mjs +28 -0
  161. package/esm2022/chart/chart.component.mjs +70 -0
  162. package/esm2022/checkbox-dropdown/checkbox-dropdown.component.mjs +232 -0
  163. package/esm2022/checkbox-dropdown/checkbox-dropdown.icon.mjs +14 -0
  164. package/esm2022/clipboard/clipboard.component.mjs +36 -0
  165. package/esm2022/clipboard/clipboard.icon.mjs +6 -0
  166. package/esm2022/color-wrapper/color-wrapper.mjs +82 -0
  167. package/esm2022/column-seperator/column-separator.mjs +62 -0
  168. package/esm2022/column-text/column-text.mjs +38 -0
  169. package/esm2022/container/container.component.mjs +46 -0
  170. package/esm2022/custom-datepicker/custom-datepicker.component.mjs +364 -0
  171. package/esm2022/custom-datepicker/custom-datepicker.model.mjs +12 -0
  172. package/esm2022/custom-datepicker/datepicker.icon.mjs +7 -0
  173. package/esm2022/custom-datepicker/timepicker/timepicker.component.mjs +195 -0
  174. package/esm2022/data-list/data-list.mjs +46 -0
  175. package/esm2022/date-range-picker/date-range-picker.mjs +207 -0
  176. package/esm2022/datepicker/datepicker.mjs +153 -0
  177. package/esm2022/datepicker-icon/datepicker-icon.mjs +18 -0
  178. package/esm2022/datepicker.provider.mjs +6 -0
  179. package/esm2022/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column.mjs +15 -0
  180. package/esm2022/detail-panel/detail-panel-row/detail-panel-row.mjs +15 -0
  181. package/esm2022/detail-panel/detail-panel-title/detail-panel-title.mjs +19 -0
  182. package/esm2022/detail-panel/detail-panel.mjs +36 -0
  183. package/esm2022/dialog/dialog-body/dialog-body.component.mjs +16 -0
  184. package/esm2022/dialog/dialog-container/dialog-container.component.mjs +16 -0
  185. package/esm2022/dialog/dialog-footer/dialog-footer.component.mjs +16 -0
  186. package/esm2022/dialog/dialog-header/dialog-header.component.mjs +25 -0
  187. package/esm2022/dialog/dialog-icon.mjs +8 -0
  188. package/esm2022/dialog/dialog.component.mjs +36 -0
  189. package/esm2022/dialog.provider.mjs +5 -0
  190. package/esm2022/dialog.ref.mjs +4 -0
  191. package/esm2022/dialog.service.mjs +15 -0
  192. package/esm2022/dropdown/context-menu-content/context-menu-content.mjs +18 -0
  193. package/esm2022/dropdown/context-menu-item.mjs +28 -0
  194. package/esm2022/dropdown/context-menu-list/context-menu-list.mjs +18 -0
  195. package/esm2022/dropdown/context-menu.mjs +61 -0
  196. package/esm2022/error-page-container/error-content/error-content.mjs +49 -0
  197. package/esm2022/error-page-container/error-page-container.mjs +18 -0
  198. package/esm2022/extract-inital/extract-initial.mjs +21 -0
  199. package/esm2022/f1softinternational-stimulus.mjs +5 -0
  200. package/esm2022/file-uploader/file-uploader-icon.mjs +13 -0
  201. package/esm2022/file-uploader/file-uploader.mjs +274 -0
  202. package/esm2022/file-uploader/file-uploader.ref.mjs +3 -0
  203. package/esm2022/file-uploader/file-uploader.service.mjs +26 -0
  204. package/esm2022/filter/filter.mjs +173 -0
  205. package/esm2022/form/form-control/form-control-action.mjs +18 -0
  206. package/esm2022/form/form-control/form-control-icon.mjs +18 -0
  207. package/esm2022/form/form-control/form-field.mjs +86 -0
  208. package/esm2022/form/form-control-wrapper/form-control-wrapper.component.mjs +22 -0
  209. package/esm2022/form/form-error-messages.mjs +43 -0
  210. package/esm2022/form/form-message/form-message.mjs +30 -0
  211. package/esm2022/form/select-input-field/select-input-field.mjs +14 -0
  212. package/esm2022/form/validate-and-submit.mjs +54 -0
  213. package/esm2022/full-container/full-container.component.mjs +30 -0
  214. package/esm2022/grid/grid-item.component.mjs +24 -0
  215. package/esm2022/grid/grid.component.mjs +56 -0
  216. package/esm2022/grid-row/grid-row.mjs +18 -0
  217. package/esm2022/icon/icons.mjs +619 -0
  218. package/esm2022/image-card/illustration.pipe.mjs +57 -0
  219. package/esm2022/image-card/image-card.component.mjs +22 -0
  220. package/esm2022/image-panel/image-panel.component.mjs +88 -0
  221. package/esm2022/info-column/info-column.mjs +18 -0
  222. package/esm2022/info-slider/info-slider.component.mjs +50 -0
  223. package/esm2022/inline-alert/inline-alert.mjs +51 -0
  224. package/esm2022/inline-group/inline-group.component.mjs +32 -0
  225. package/esm2022/input/input.mjs +25 -0
  226. package/esm2022/label/label.mjs +18 -0
  227. package/esm2022/layout/layout.component.mjs +23 -0
  228. package/esm2022/link/link.mjs +79 -0
  229. package/esm2022/media-preview/media-preview-icon.mjs +41 -0
  230. package/esm2022/media-preview/media-preview-modal/media-preview-modal.mjs +128 -0
  231. package/esm2022/media-preview/media-preview.mjs +131 -0
  232. package/esm2022/media-preview/media_preview.service.mjs +31 -0
  233. package/esm2022/menu/menu-icon.mjs +29 -0
  234. package/esm2022/menu/menu.component.mjs +151 -0
  235. package/esm2022/nebular-icon.mjs +179 -0
  236. package/esm2022/otp-input/otp-input.component.mjs +106 -0
  237. package/esm2022/otp-input/otp-input.icon.mjs +13 -0
  238. package/esm2022/page-container/page-container-info/page-container-info.component.mjs +28 -0
  239. package/esm2022/page-container/page-container.component.mjs +63 -0
  240. package/esm2022/page-header/page-header.component.mjs +47 -0
  241. package/esm2022/page-header/page-header.icons.mjs +8 -0
  242. package/esm2022/page-header/page-sub-heading/page-sub-heading.component.mjs +12 -0
  243. package/esm2022/page-loader/page-loader.component.mjs +47 -0
  244. package/esm2022/pagination/pagination.icon.mjs +11 -0
  245. package/esm2022/pagination/pagination.mjs +170 -0
  246. package/esm2022/popover-content/popover-content-item/popover-content-item.component.mjs +15 -0
  247. package/esm2022/popover-content/popover-content.component.mjs +23 -0
  248. package/esm2022/preview-box/preview-box.component.mjs +73 -0
  249. package/esm2022/progress-bar/progress-bar.component.mjs +31 -0
  250. package/esm2022/progress-chart/progress-chart.component.mjs +87 -0
  251. package/esm2022/public-api.mjs +141 -0
  252. package/esm2022/radio-card-group/radio-card/radio-card.component.mjs +86 -0
  253. package/esm2022/radio-card-group/radio-card-group.component.mjs +61 -0
  254. package/esm2022/regex-checker/regex-checker-icon.mjs +18 -0
  255. package/esm2022/regex-checker/regex-checker.mjs +77 -0
  256. package/esm2022/regex-checker/regex-validity-icon.pipe.mjs +25 -0
  257. package/esm2022/ribbon/ribbon-icon.mjs +8 -0
  258. package/esm2022/ribbon/ribbon.mjs +37 -0
  259. package/esm2022/round-checkbox/round-checkbox.component.mjs +43 -0
  260. package/esm2022/row/column/column.component.mjs +19 -0
  261. package/esm2022/row/row.component.mjs +32 -0
  262. package/esm2022/scrollable-content/scrollable-content.component.mjs +22 -0
  263. package/esm2022/section-header/section-header.component.mjs +29 -0
  264. package/esm2022/section-row/section-row.mjs +35 -0
  265. package/esm2022/section-separator/section-separator.mjs +69 -0
  266. package/esm2022/section-shell/section-shell.component.mjs +45 -0
  267. package/esm2022/select/select.component.mjs +137 -0
  268. package/esm2022/select-card/select-card-icon.mjs +24 -0
  269. package/esm2022/select-card/select-card.component.mjs +117 -0
  270. package/esm2022/select-country/select-country.component.mjs +86 -0
  271. package/esm2022/shell/checker-sidebar/checker-sidebar.component.mjs +19 -0
  272. package/esm2022/shell/maker-sidebar/maker-sidebar.component.mjs +19 -0
  273. package/esm2022/shell/nebular-icons.mjs +180 -0
  274. package/esm2022/shell/shell-icons.mjs +474 -0
  275. package/esm2022/shell/shell-sidebar/shell-sidebar.component.mjs +38 -0
  276. package/esm2022/shell/shell.component.mjs +77 -0
  277. package/esm2022/side-drawer/side-drawer.mjs +15 -0
  278. package/esm2022/side-drawer/side-drawer.service.mjs +71 -0
  279. package/esm2022/size/component-size.mjs +2 -0
  280. package/esm2022/spinner/spinner.mjs +32 -0
  281. package/esm2022/stepper/step/step.mjs +20 -0
  282. package/esm2022/stepper/step/step.pipe.mjs +21 -0
  283. package/esm2022/stepper/step-header/step-header.mjs +29 -0
  284. package/esm2022/stepper/stepper-button/stepper-next.mjs +21 -0
  285. package/esm2022/stepper/stepper-button/stepper-previous.mjs +21 -0
  286. package/esm2022/stepper/stepper.mjs +56 -0
  287. package/esm2022/stimulus.module.mjs +891 -0
  288. package/esm2022/table/table-column/scl-table-column.mjs +54 -0
  289. package/esm2022/table/table-icon.mjs +13 -0
  290. package/esm2022/table/table-text/scl-table-text.mjs +51 -0
  291. package/esm2022/table/table.config.mjs +15 -0
  292. package/esm2022/table/table.mjs +186 -0
  293. package/esm2022/table-action-control/table-action-control.component.mjs +20 -0
  294. package/esm2022/tabset/tab/tab.component.mjs +29 -0
  295. package/esm2022/tabset/tab-directive/tabset.directive.mjs +22 -0
  296. package/esm2022/tabset/tabset.component.mjs +40 -0
  297. package/esm2022/taglist/tag/tag.component.mjs +51 -0
  298. package/esm2022/taglist/tag/tag.directive.mjs +30 -0
  299. package/esm2022/taglist/taglist.component.mjs +39 -0
  300. package/esm2022/text-decoration/text-decoration.component.mjs +26 -0
  301. package/esm2022/text-editor/text-editor.mjs +263 -0
  302. package/esm2022/theme.provider.mjs +9 -0
  303. package/esm2022/timeline/timeline.component.mjs +66 -0
  304. package/esm2022/timepicker/timepicker.component.mjs +377 -0
  305. package/esm2022/timepicker/timepicker.icon.mjs +7 -0
  306. package/esm2022/timepicker/timepicker.model.mjs +6 -0
  307. package/esm2022/toggle/toggle-description/toggle-description.mjs +18 -0
  308. package/esm2022/toggle/toggle.mjs +75 -0
  309. package/esm2022/toggle-password/toggle-password.component.mjs +54 -0
  310. package/esm2022/toggle-password/toggle-password.directive.mjs +26 -0
  311. package/esm2022/toggle-password/toggle-password.icon.mjs +13 -0
  312. package/esm2022/treeview/treeview-header/treeview-header.mjs +26 -0
  313. package/esm2022/treeview/treeview.icon.mjs +53 -0
  314. package/esm2022/treeview/treeview.mjs +319 -0
  315. package/esm2022/truncate/truncate.component.mjs +53 -0
  316. package/esm2022/typography/typography.mjs +168 -0
  317. package/extract-inital/extract-initial.d.ts +8 -0
  318. package/f1softinternational-stimulus-1.0.0.tgz +0 -0
  319. package/fesm2022/f1softinternational-stimulus.mjs +10275 -0
  320. package/file-uploader/file-upload-config.scss +48 -0
  321. package/file-uploader/file-upload.scss +77 -0
  322. package/file-uploader/file-uploader-icon.d.ts +3 -0
  323. package/file-uploader/file-uploader.d.ts +84 -0
  324. package/file-uploader/file-uploader.ref.d.ts +6 -0
  325. package/file-uploader/file-uploader.service.d.ts +11 -0
  326. package/filter/filter.d.ts +48 -0
  327. package/flag/_flags.scss +9 -0
  328. package/form/form-config.scss +14 -0
  329. package/form/form-control/form-control-action.d.ts +6 -0
  330. package/form/form-control/form-control-config.scss +9 -0
  331. package/form/form-control/form-control-icon.d.ts +6 -0
  332. package/form/form-control/form-control.scss +17 -0
  333. package/form/form-control/form-field.d.ts +26 -0
  334. package/form/form-control-wrapper/form-control-wrapper-config.scss +11 -0
  335. package/form/form-control-wrapper/form-control-wrapper.component.d.ts +8 -0
  336. package/form/form-control-wrapper/form-control-wrapper.scss +17 -0
  337. package/form/form-error-messages.d.ts +8 -0
  338. package/form/form-message/form-message-config.scss +7 -0
  339. package/form/form-message/form-message.d.ts +15 -0
  340. package/form/form-message/form-message.scss +6 -0
  341. package/form/form.scss +22 -0
  342. package/form/select-input-field/select-input-field-config.scss +13 -0
  343. package/form/select-input-field/select-input-field.d.ts +6 -0
  344. package/form/select-input-field/select-input-field.scss +43 -0
  345. package/form/validate-and-submit.d.ts +14 -0
  346. package/full-container/full-container-config.scss +16 -0
  347. package/full-container/full-container.component.d.ts +11 -0
  348. package/full-container/full-container.component.scss +54 -0
  349. package/grid/grid-config.scss +14 -0
  350. package/grid/grid-item.component.d.ts +8 -0
  351. package/grid/grid.component.d.ts +10 -0
  352. package/grid/grid.component.scss +26 -0
  353. package/grid-row/grid-row.config.scss +9 -0
  354. package/grid-row/grid-row.d.ts +6 -0
  355. package/grid-row/grid-row.scss +7 -0
  356. package/icon/icon.config.scss +9 -0
  357. package/icon/icon.scss +9 -0
  358. package/icon/icons.d.ts +3 -0
  359. package/image-card/illustration.pipe.d.ts +8 -0
  360. package/image-card/image-card-config.scss +29 -0
  361. package/image-card/image-card.component.d.ts +8 -0
  362. package/image-card/image-card.scss +37 -0
  363. package/image-panel/image-panel-config.scss +30 -0
  364. package/image-panel/image-panel.component.d.ts +26 -0
  365. package/image-panel/image-panel.component.scss +80 -0
  366. package/index.d.ts +6 -0
  367. package/info-column/info-column-config.scss +14 -0
  368. package/info-column/info-column.d.ts +7 -0
  369. package/info-column/info-column.scss +17 -0
  370. package/info-slider/info-slider-config.scss +10 -0
  371. package/info-slider/info-slider.component.d.ts +16 -0
  372. package/info-slider/info-slider.component.scss +21 -0
  373. package/inline-alert/inline-alert-config.scss +12 -0
  374. package/inline-alert/inline-alert.d.ts +20 -0
  375. package/inline-alert/inline-alert.scss +16 -0
  376. package/inline-group/inline-group.component.d.ts +10 -0
  377. package/inline-group/inline-group.component.scss +15 -0
  378. package/input/input-config.scss +57 -0
  379. package/input/input.d.ts +10 -0
  380. package/input/input.scss +68 -0
  381. package/label/label-config.scss +13 -0
  382. package/label/label.d.ts +6 -0
  383. package/label/label.scss +10 -0
  384. package/layout/layout.component.d.ts +9 -0
  385. package/link/link-config.scss +89 -0
  386. package/link/link.d.ts +19 -0
  387. package/link/link.scss +157 -0
  388. package/media-preview/media-preview-config.scss +15 -0
  389. package/media-preview/media-preview-icon.d.ts +3 -0
  390. package/media-preview/media-preview-modal/media-preview-modal.d.ts +31 -0
  391. package/media-preview/media-preview-modal/media-preview-modal.scss +148 -0
  392. package/media-preview/media-preview-modal/media-previw-modal-config.scss +44 -0
  393. package/media-preview/media-preview.d.ts +48 -0
  394. package/media-preview/media-preview.scss +59 -0
  395. package/media-preview/media_preview.service.d.ts +16 -0
  396. package/menu/menu-config.scss +33 -0
  397. package/menu/menu-icon.d.ts +3 -0
  398. package/menu/menu.component.d.ts +47 -0
  399. package/menu/menu.component.scss +80 -0
  400. package/nebular-icon.d.ts +3 -0
  401. package/otp-input/otp-input-config.scss +22 -0
  402. package/otp-input/otp-input.component.d.ts +33 -0
  403. package/otp-input/otp-input.component.scss +52 -0
  404. package/otp-input/otp-input.icon.d.ts +3 -0
  405. package/package.json +57 -0
  406. package/page-container/page-container-config.scss +9 -0
  407. package/page-container/page-container-info/page-container-info-config.scss +9 -0
  408. package/page-container/page-container-info/page-container-info.component.d.ts +10 -0
  409. package/page-container/page-container-info/page-container-info.scss +6 -0
  410. package/page-container/page-container.component.d.ts +14 -0
  411. package/page-container/page-container.component.scss +11 -0
  412. package/page-header/page-header-config.scss +28 -0
  413. package/page-header/page-header.component.d.ts +18 -0
  414. package/page-header/page-header.component.scss +37 -0
  415. package/page-header/page-header.icons.d.ts +3 -0
  416. package/page-header/page-sub-heading/page-sub-heading.component.d.ts +6 -0
  417. package/page-loader/page-loader-config.scss +23 -0
  418. package/page-loader/page-loader.component.d.ts +13 -0
  419. package/page-loader/page-loader.component.scss +44 -0
  420. package/pagination/pagination-config.scss +24 -0
  421. package/pagination/pagination.d.ts +47 -0
  422. package/pagination/pagination.icon.d.ts +3 -0
  423. package/pagination/pagination.scss +67 -0
  424. package/popover-content/popover-content-item/popover-content-item-config.scss +22 -0
  425. package/popover-content/popover-content-item/popover-content-item.component.d.ts +6 -0
  426. package/popover-content/popover-content-item/popover-content-item.scss +36 -0
  427. package/popover-content/popover-content.component.d.ts +14 -0
  428. package/preview-box/preview-box-config.scss +52 -0
  429. package/preview-box/preview-box.component.d.ts +31 -0
  430. package/preview-box/preview-box.component.scss +101 -0
  431. package/progress-bar/progress-bar-config.scss +14 -0
  432. package/progress-bar/progress-bar.component.d.ts +10 -0
  433. package/progress-bar/progress-bar.component.scss +13 -0
  434. package/progress-chart/progress-chart-config.scss +15 -0
  435. package/progress-chart/progress-chart.component.d.ts +21 -0
  436. package/progress-chart/progress-chart.component.scss +41 -0
  437. package/public-api.d.ts +135 -0
  438. package/radio-button/radio-button-config.scss +47 -0
  439. package/radio-button/radio-button.scss +89 -0
  440. package/radio-card-group/radio-card/radio-card-config.scss +31 -0
  441. package/radio-card-group/radio-card/radio-card.component.d.ts +30 -0
  442. package/radio-card-group/radio-card/radio-card.component.scss +88 -0
  443. package/radio-card-group/radio-card-group-config.scss +9 -0
  444. package/radio-card-group/radio-card-group.component.d.ts +20 -0
  445. package/radio-card-group/radio-card-group.scss +7 -0
  446. package/regex-checker/regex-checker-config.scss +24 -0
  447. package/regex-checker/regex-checker-icon.d.ts +3 -0
  448. package/regex-checker/regex-checker.d.ts +29 -0
  449. package/regex-checker/regex-checker.scss +38 -0
  450. package/regex-checker/regex-validity-icon.pipe.d.ts +8 -0
  451. package/ribbon/ribbon-config.scss +21 -0
  452. package/ribbon/ribbon-icon.d.ts +3 -0
  453. package/ribbon/ribbon.d.ts +14 -0
  454. package/ribbon/ribbon.scss +29 -0
  455. package/round-checkbox/round-checkbox-config.scss +15 -0
  456. package/round-checkbox/round-checkbox.component.d.ts +16 -0
  457. package/round-checkbox/round-checkbox.component.scss +23 -0
  458. package/row/column/column.component.d.ts +9 -0
  459. package/row/row-config.scss +10 -0
  460. package/row/row.component.d.ts +9 -0
  461. package/row/row.scss +22 -0
  462. package/scrollable-content/scrollable-content-config.scss +11 -0
  463. package/scrollable-content/scrollable-content.component.d.ts +8 -0
  464. package/scrollable-content/scrollable-content.component.scss +28 -0
  465. package/section-header/section-header-config.scss +18 -0
  466. package/section-header/section-header.component.d.ts +9 -0
  467. package/section-header/section-header.component.scss +32 -0
  468. package/section-row/section-row-config.scss +9 -0
  469. package/section-row/section-row.d.ts +9 -0
  470. package/section-row/section-row.scss +23 -0
  471. package/section-separator/section-separator-config.scss +19 -0
  472. package/section-separator/section-separator.d.ts +15 -0
  473. package/section-separator/section-separator.scss +28 -0
  474. package/section-shell/section-shell-config.scss +23 -0
  475. package/section-shell/section-shell.component.d.ts +12 -0
  476. package/section-shell/section-shell.component.scss +30 -0
  477. package/select/select-config.scss +78 -0
  478. package/select/select.component.d.ts +44 -0
  479. package/select/select.scss +174 -0
  480. package/select-card/select-card-config.scss +32 -0
  481. package/select-card/select-card-icon.d.ts +3 -0
  482. package/select-card/select-card.component.d.ts +38 -0
  483. package/select-card/select-card.component.scss +66 -0
  484. package/select-country/select-country-config.scss +10 -0
  485. package/select-country/select-country.component.d.ts +33 -0
  486. package/select-country/select-country.component.scss +34 -0
  487. package/shell/checker-sidebar/checker-sidebar-config.scss +21 -0
  488. package/shell/checker-sidebar/checker-sidebar.component.d.ts +8 -0
  489. package/shell/checker-sidebar/checker-sidebar.component.scss +34 -0
  490. package/shell/maker-sidebar/maker-sidebar-config.scss +21 -0
  491. package/shell/maker-sidebar/maker-sidebar.component.d.ts +8 -0
  492. package/shell/maker-sidebar/maker-sidebar.component.scss +34 -0
  493. package/shell/nebular-icons.d.ts +3 -0
  494. package/shell/shell-config.component.scss +25 -0
  495. package/shell/shell-icons.d.ts +3 -0
  496. package/shell/shell-sidebar/shell-sidebar-config.scss +43 -0
  497. package/shell/shell-sidebar/shell-sidebar.component.d.ts +14 -0
  498. package/shell/shell-sidebar/shell-sidebar.component.scss +106 -0
  499. package/shell/shell-sidebar-menu/shell-sidebar-menu-config.scss +56 -0
  500. package/shell/shell-sidebar-menu/shell-sidebar-menu.scss +76 -0
  501. package/shell/shell.component.d.ts +21 -0
  502. package/shell/shell.component.scss +55 -0
  503. package/side-drawer/side-drawer-config.scss +20 -0
  504. package/side-drawer/side-drawer.d.ts +8 -0
  505. package/side-drawer/side-drawer.scss +52 -0
  506. package/side-drawer/side-drawer.service.d.ts +20 -0
  507. package/size/component-size.d.ts +2 -0
  508. package/spinner/spinner.d.ts +11 -0
  509. package/stepper/step/step.d.ts +8 -0
  510. package/stepper/step/step.pipe.d.ts +8 -0
  511. package/stepper/step-header/step-header.d.ts +12 -0
  512. package/stepper/stepper-button/stepper-next.d.ts +7 -0
  513. package/stepper/stepper-button/stepper-previous.d.ts +7 -0
  514. package/stepper/stepper.config.scss +37 -0
  515. package/stepper/stepper.d.ts +19 -0
  516. package/stepper/stepper.scss +149 -0
  517. package/stimulus-config.scss +98 -0
  518. package/stimulus.module.d.ts +136 -0
  519. package/stimulus.scss +107 -0
  520. package/table/table-column/scl-table-column.d.ts +26 -0
  521. package/table/table-config.scss +63 -0
  522. package/table/table-icon.d.ts +3 -0
  523. package/table/table-text/scl-table-text.d.ts +13 -0
  524. package/table/table.config.d.ts +19 -0
  525. package/table/table.d.ts +58 -0
  526. package/table/table.scss +232 -0
  527. package/table-action-control/table-action-control-config.scss +12 -0
  528. package/table-action-control/table-action-control.component.d.ts +8 -0
  529. package/table-action-control/table-action-control.component.scss +14 -0
  530. package/tabset/route-tab/route-tab-config.scss +30 -0
  531. package/tabset/route-tab/route-tab.scss +44 -0
  532. package/tabset/tab/tab.component.d.ts +9 -0
  533. package/tabset/tab-directive/tabset-config.scss +49 -0
  534. package/tabset/tab-directive/tabset.directive.d.ts +7 -0
  535. package/tabset/tab-directive/tabset.scss +154 -0
  536. package/tabset/tabset.component.d.ts +14 -0
  537. package/tabset/tabset.component.scss +79 -0
  538. package/taglist/tag/tag-config.scss +30 -0
  539. package/taglist/tag/tag.component.d.ts +17 -0
  540. package/taglist/tag/tag.directive.d.ts +16 -0
  541. package/taglist/tag/tag.scss +43 -0
  542. package/taglist/taglist.component.d.ts +12 -0
  543. package/text-decoration/text-decoration.component.d.ts +9 -0
  544. package/text-decoration/text-decoration.scss +7 -0
  545. package/text-editor/text-editor.config.scss +23 -0
  546. package/text-editor/text-editor.d.ts +60 -0
  547. package/text-editor/text-editor.scss +74 -0
  548. package/theme.provider.d.ts +2 -0
  549. package/timeline/timeline-config.scss +49 -0
  550. package/timeline/timeline.component.d.ts +26 -0
  551. package/timeline/timeline.component.scss +126 -0
  552. package/timepicker/timepicker-config.scss +41 -0
  553. package/timepicker/timepicker.component.d.ts +74 -0
  554. package/timepicker/timepicker.component.scss +111 -0
  555. package/timepicker/timepicker.icon.d.ts +3 -0
  556. package/timepicker/timepicker.model.d.ts +13 -0
  557. package/toggle/toggle-config.scss +51 -0
  558. package/toggle/toggle-description/toggle-description.d.ts +6 -0
  559. package/toggle/toggle.d.ts +19 -0
  560. package/toggle/toggle.scss +31 -0
  561. package/toggle-password/toggle-password-config.scss +12 -0
  562. package/toggle-password/toggle-password.component.d.ts +21 -0
  563. package/toggle-password/toggle-password.directive.d.ts +13 -0
  564. package/toggle-password/toggle-password.icon.d.ts +3 -0
  565. package/toggle-password/toggle-password.scss +16 -0
  566. package/treeview/treeview-config.scss +86 -0
  567. package/treeview/treeview-header/treeview-header.d.ts +12 -0
  568. package/treeview/treeview.d.ts +66 -0
  569. package/treeview/treeview.icon.d.ts +3 -0
  570. package/treeview/treeview.scss +278 -0
  571. package/truncate/truncate.component.d.ts +16 -0
  572. package/truncate/truncate.scss +18 -0
  573. package/typography/font.scss +28 -0
  574. package/typography/typography-config.scss +73 -0
  575. package/typography/typography.d.ts +37 -0
  576. package/typography/typography.scss +47 -0
@@ -0,0 +1,319 @@
1
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
+ import { CdkTreeModule } from '@angular/cdk/tree';
3
+ import { CommonModule } from '@angular/common';
4
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
5
+ import { NbButtonModule, NbCheckboxModule, NbIconModule, NbInputModule, NbTreeGridModule } from '@nebular/theme';
6
+ import { debounceTime, distinctUntilChanged, filter, fromEvent, tap } from 'rxjs';
7
+ import { StimulusNebularEssentialsIcons } from '../nebular-icon';
8
+ import { SclTreeviewHeader } from './treeview-header/treeview-header';
9
+ import { SclTreeViewIcons } from './treeview.icon';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@nebular/theme";
12
+ import * as i2 from "@angular/common";
13
+ class SclTreeview {
14
+ set showSearchFilter(value) {
15
+ this.displaySearchFilter = coerceBooleanProperty(value);
16
+ }
17
+ get showSearchFilter() {
18
+ return this.displaySearchFilter;
19
+ }
20
+ set showUnchecked(value) {
21
+ this.displayUnchecked = coerceBooleanProperty(value);
22
+ }
23
+ get showUnchecked() {
24
+ return this.displayUnchecked;
25
+ }
26
+ set readOnly(value) {
27
+ this.isReadonly = coerceBooleanProperty(value);
28
+ }
29
+ get readOnly() {
30
+ return this.isReadonly;
31
+ }
32
+ getId(name) {
33
+ if (this.id != '') {
34
+ return `${this.id}_${name}`;
35
+ }
36
+ return `${name}`;
37
+ }
38
+ set dataSource(data) {
39
+ if (data) {
40
+ this.treeNodes = this.updateNodeState(data);
41
+ this.filteredNode = this.treeNodes;
42
+ this.isEveryNodeExpanded = this.areEveryNodeExpanded();
43
+ this.showExpandButton = this.showExpandAllButton();
44
+ }
45
+ }
46
+ get dataSource() {
47
+ return this.treeNodes;
48
+ }
49
+ constructor(iconLibraries) {
50
+ this.iconLibraries = iconLibraries;
51
+ this.selectionChange = new EventEmitter();
52
+ this.bindLabel = 'label';
53
+ this.bindValue = 'id';
54
+ this.id = '';
55
+ this.displaySearchFilter = false;
56
+ this.displayUnchecked = false;
57
+ this.isReadonly = false;
58
+ this.isEveryNodeExpanded = false;
59
+ this.filteredNode = [];
60
+ this.showClearButton = false;
61
+ this.showExpandButton = false;
62
+ this.iconLibraries.registerSvgPack('scl-treeview', SclTreeViewIcons);
63
+ this.iconLibraries.registerSvgPack('nebular-essentials', StimulusNebularEssentialsIcons);
64
+ }
65
+ ngAfterViewInit() {
66
+ if (this.searchField) {
67
+ fromEvent(this.searchField.nativeElement, 'keyup')
68
+ .pipe(filter(Boolean), debounceTime(500), distinctUntilChanged(), tap(() => {
69
+ this.showClearButton = this.searchField.nativeElement.value !== '';
70
+ this.searchValue = this.searchField.nativeElement.value;
71
+ this.onSearchNode(this.searchValue);
72
+ }))
73
+ .subscribe();
74
+ }
75
+ }
76
+ onSearchNode(searchValue) {
77
+ if (searchValue) {
78
+ const searchKeyword = searchValue.toLowerCase();
79
+ this.filteredNode = this.filterNodes(this.dataSource, searchKeyword);
80
+ }
81
+ else {
82
+ this.filteredNode = this.dataSource;
83
+ }
84
+ }
85
+ filterNodes(nodes, searchKeyword) {
86
+ const filteredNodes = [];
87
+ nodes.forEach(node => {
88
+ if (node.name.toLowerCase().includes(searchKeyword)) {
89
+ filteredNodes.push(node);
90
+ }
91
+ if (node.children) {
92
+ const filteredChildren = this.filterNodes(node.children, searchKeyword);
93
+ if (filteredChildren.length > 0) {
94
+ filteredNodes.push({
95
+ ...node,
96
+ children: filteredChildren,
97
+ });
98
+ }
99
+ }
100
+ });
101
+ return filteredNodes;
102
+ }
103
+ onClearSearch() {
104
+ this.showClearButton = false;
105
+ this.searchField.nativeElement.value = '';
106
+ this.filteredNode = this.dataSource;
107
+ }
108
+ updateNodeState(nodes) {
109
+ return nodes.map(node => {
110
+ if (node?.children?.length) {
111
+ const childResults = this.updateNodeState(node.children);
112
+ const countChecked = childResults.filter(childNode => childNode.checked).length;
113
+ const countIndeterminate = childResults.filter(childNode => childNode.indeterminate).length;
114
+ if (countChecked === node.children.length) {
115
+ node.checked = true;
116
+ node.indeterminate = false;
117
+ }
118
+ else if (countChecked > 0 || countIndeterminate > 0) {
119
+ node.indeterminate = true;
120
+ node.checked = false;
121
+ }
122
+ else {
123
+ node.checked = false;
124
+ node.indeterminate = false;
125
+ }
126
+ }
127
+ return node;
128
+ });
129
+ }
130
+ treeviewItemExpandCollapse(node) {
131
+ node.expanded = !node.expanded;
132
+ this.isEveryNodeExpanded = this.areEveryNodeExpanded();
133
+ }
134
+ areEveryNodeExpanded() {
135
+ const filteredData = this.dataSource.filter(item => item?.children?.length);
136
+ return filteredData?.every(item => item.expanded === true);
137
+ }
138
+ toggleAllNodes() {
139
+ const nodes = this.dataSource.filter(item => item?.children?.length);
140
+ this.recursivelyToggleNodes(nodes, this.isEveryNodeExpanded);
141
+ this.isEveryNodeExpanded = !this.isEveryNodeExpanded;
142
+ }
143
+ recursivelyToggleNodes(nodes, allNodesExpanded) {
144
+ for (const node of nodes) {
145
+ node.expanded = !allNodesExpanded;
146
+ if (node.children?.length) {
147
+ this.recursivelyToggleNodes(node.children, allNodesExpanded);
148
+ }
149
+ }
150
+ }
151
+ toggleAllSelection() {
152
+ const allSelected = this.isAllSelected(this.dataSource);
153
+ if (allSelected) {
154
+ this.uncheckAllNodes(this.dataSource);
155
+ }
156
+ else {
157
+ this.checkAllNodes(this.dataSource);
158
+ }
159
+ this.emitCheckedNodes();
160
+ }
161
+ checkAllNodes(nodes) {
162
+ for (const node of nodes) {
163
+ node.checked = true;
164
+ node.indeterminate = false;
165
+ if (node.children) {
166
+ this.checkAllNodes(node.children);
167
+ console.log('check all nodes');
168
+ }
169
+ }
170
+ }
171
+ uncheckAllNodes(nodes) {
172
+ for (const node of nodes) {
173
+ node.checked = false;
174
+ node.indeterminate = false;
175
+ if (node.children) {
176
+ this.uncheckAllNodes(node.children);
177
+ }
178
+ }
179
+ }
180
+ isAllSelected(nodes) {
181
+ for (const node of nodes) {
182
+ if (!node.checked) {
183
+ return false;
184
+ }
185
+ if (node.children) {
186
+ if (!this.isAllSelected(node.children)) {
187
+ return false;
188
+ }
189
+ }
190
+ }
191
+ return true;
192
+ }
193
+ toggleNodeSelection(node) {
194
+ if (node.checked) {
195
+ node.checked = false;
196
+ node.indeterminate = false;
197
+ this.uncheckChildren(node);
198
+ this.updateParentNode(node);
199
+ }
200
+ else {
201
+ node.checked = true;
202
+ node.indeterminate = false;
203
+ this.checkChildren(node);
204
+ this.updateParentNode(node);
205
+ }
206
+ this.emitCheckedNodes();
207
+ }
208
+ updateParentNode(node) {
209
+ const parentNode = this.getParentNode(node);
210
+ if (parentNode) {
211
+ const allSelected = parentNode.children.every((child) => child.checked);
212
+ const someSelected = parentNode.children.some((child) => child.checked || child.indeterminate);
213
+ parentNode.checked = allSelected;
214
+ parentNode.indeterminate = !allSelected && someSelected;
215
+ this.updateParentNode(parentNode);
216
+ }
217
+ }
218
+ getParentNode(node) {
219
+ const stack = [...this.dataSource];
220
+ while (stack.length > 0) {
221
+ const currNode = stack.pop();
222
+ if (currNode && currNode.children) {
223
+ for (const child of currNode.children) {
224
+ if (child === node) {
225
+ return currNode;
226
+ }
227
+ stack.push(child);
228
+ }
229
+ }
230
+ }
231
+ return null;
232
+ }
233
+ checkChildren(node) {
234
+ if (node.children) {
235
+ for (const child of node.children) {
236
+ child.checked = true;
237
+ child.indeterminate = false;
238
+ this.checkChildren(child);
239
+ }
240
+ }
241
+ }
242
+ uncheckChildren(node) {
243
+ if (node.children) {
244
+ for (const child of node.children) {
245
+ child.checked = false;
246
+ child.indeterminate = false;
247
+ this.uncheckChildren(child);
248
+ }
249
+ }
250
+ }
251
+ emitCheckedNodes() {
252
+ const selectedValues = [];
253
+ const treeViewItems = [];
254
+ this.traverseCheckedNodes(this.dataSource, selectedValues);
255
+ this.traverseCheckedItems(this.dataSource, treeViewItems);
256
+ this.selectionChange.emit({ selectedValues, treeViewItems });
257
+ }
258
+ traverseCheckedNodes(nodes, selectedValues) {
259
+ for (const node of nodes) {
260
+ if (node.checked && node[this.bindValue] !== undefined) {
261
+ selectedValues.push(node[this.bindValue]);
262
+ }
263
+ if (node.children) {
264
+ this.traverseCheckedNodes(node.children, selectedValues);
265
+ }
266
+ }
267
+ }
268
+ traverseCheckedItems(nodes, treeViewItems) {
269
+ for (const node of nodes) {
270
+ if (node.checked || node.indeterminate) {
271
+ const parentNode = {
272
+ id: node.id,
273
+ name: node.name,
274
+ label: node.label,
275
+ checked: true,
276
+ children: [],
277
+ };
278
+ treeViewItems.push(parentNode);
279
+ if (node.children) {
280
+ this.traverseCheckedItems(node.children, parentNode.children);
281
+ }
282
+ }
283
+ else if (node.children) {
284
+ this.traverseCheckedItems(node.children, treeViewItems);
285
+ }
286
+ }
287
+ }
288
+ showExpandAllButton() {
289
+ const hasChildren = this.dataSource.some(item => item.children && item.children.length > 0);
290
+ return hasChildren;
291
+ }
292
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTreeview, deps: [{ token: i1.NbIconLibraries }], target: i0.ɵɵFactoryTarget.Component }); }
293
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclTreeview, isStandalone: true, selector: "scl-treeview", inputs: { bindLabel: "bindLabel", bindValue: "bindValue", id: "id", showSearchFilter: "showSearchFilter", showUnchecked: "showUnchecked", readOnly: "readOnly", dataSource: "dataSource" }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "searchField", first: true, predicate: ["searchField"], descendants: true }], exportAs: ["sclTreeview"], ngImport: i0, template: "<div class=\"scl-filter__input-wrapper\" *ngIf=\"displaySearchFilter\">\n <nb-icon icon=\"search\" pack=\"scl-treeview\" class=\"scl-filter__icon\"></nb-icon>\n <input type=\"text\" nbInput fullWidth class=\"scl-filter__inputbox\" placeholder=\"Search\" #searchField />\n\n <div class=\"scl-filter__button-wrapper\" *ngIf=\"showClearButton\">\n <button type=\"button\" nbButton class=\"scl-filter__button\" size=\"small\" ghost (click)=\"onClearSearch()\">\n <nb-icon icon=\"cross\" pack=\"scl-treeview\"></nb-icon>\n </button>\n </div>\n</div>\n\n<div class=\"scl-treeview-table\">\n <div class=\"scl-treeview-table__body\">\n <ng-container *ngTemplateOutlet=\"recursiveNode; context:{ $implicit: filteredNode, isParentNode: true }\"></ng-container>\n </div>\n</div>\n\n<ng-template #recursiveNode let-nodes let-parentNode=\"isParentNode\">\n <ng-container *ngFor=\"let node of nodes\">\n <div class=\"scl-treeview-table__row\" *ngIf=\"(displayUnchecked && isReadonly) || (!isReadonly || node?.checked || node?.indeterminate)\">\n <div class=\"scl-treeview-table__data\">\n <div\n class=\"scl-treeview-table__title\"\n (click)=\"treeviewItemExpandCollapse(node)\"\n [class.scl-treeview-table__childnode]=\"!node.children\"\n [class.scl-treeview-table__parent]=\"node.children && !parentNode\"\n [id]=\"getId(node[bindValue])\">\n <button type=\"button\" *ngIf=\"node?.children?.length && parentNode\" class=\"scl-treeview-table__button\">\n <nb-icon [icon]=\"node.expanded ? 'arrow-down' : 'arrow-right'\" pack=\"scl-treeview\"></nb-icon>\n </button>\n <nb-checkbox\n [disabled]=\"isReadonly\"\n [checked]=\"node.checked\"\n (checkedChange)=\"toggleNodeSelection(node)\"\n [indeterminate]=\"node.indeterminate\"\n [ngClass]=\"isReadonly? 'scl-readonly__checkbox' : '' \"\n (click)=\"$event.stopPropagation()\">\n <nb-icon\n pack=\"scl-treeview\"\n icon=\"check\"\n class=\"scl-readonly__icon scl-readonly__icon--success\"\n *ngIf=\"isReadonly && node.checked\"></nb-icon>\n <nb-icon\n pack=\"scl-treeview\"\n icon=\"cross\"\n class=\"scl-readonly__icon scl-readonly__icon--danger\"\n *ngIf=\"displayUnchecked && isReadonly && !node.checked\"></nb-icon>\n {{ node[bindLabel] }}</nb-checkbox\n >\n </div>\n <div class=\"scl-treeview-table\" *ngIf=\"!parentNode || (node.children && node.expanded)\">\n <div class=\"scl-treeview-table__body\">\n <ng-container *ngTemplateOutlet=\"recursiveNode; context:{ $implicit: node.children, isParentNode: false}\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<div class=\"scl-image-card\" *ngIf=\"!filteredNode.length\">\n <div class=\"scl-image-info\">\n <div class=\"scl-image-card__image\">\n <svg width=\"150\" height=\"150\" viewBox=\"0 0 150 150\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#npqxa4czga)\">\n <path\n d=\"M75 129.75c30.238 0 54.75-24.513 54.75-54.75 0-30.238-24.512-54.75-54.75-54.75-30.237 0-54.75 24.512-54.75 54.75 0 30.237 24.513 54.75 54.75 54.75z\"\n fill=\"#F5F5F5\" />\n <path\n d=\"M96.195 83.455S86.387 73.014 77.441 69.49c-8.948-3.525-18.788 3.663-9.43 13.26 9.36 9.597 9.56 10.79 9.56 10.79s-2.778 14.104 10.235 23.881\"\n stroke=\"#111827\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M53.855 76.447c-1.077 1.563-1.682 3.827-1.373 7.08.771 8.114 7.248 11.838 10.611 13.377 4.976 2.277 12.49.686 10.247-8.24\"\n stroke=\"#111827\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M53.567 87.766s-9.69 2.77-5.363 12.974c1.914 4.513 6.936 7.741 12.488 8.485 6.691.897 11.313-6.378 6.135-11.398\"\n stroke=\"#111827\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M100.426 70.664a.75.75 0 0 1 1.058.082 218.322 218.322 0 0 1 20.326 28.006 178.111 178.111 0 0 1 5.079 8.864c.564 1.059.988 1.889 1.272 2.454a66.177 66.177 0 0 1 .4.813l.021.043.005.011.001.003c.001.001.001.002-.677.322l.678-.32a.75.75 0 1 1-1.356.641l-.001-.002-.005-.01-.018-.039a67.59 67.59 0 0 0-.389-.79c-.278-.555-.697-1.373-1.255-2.421a176.397 176.397 0 0 0-5.035-8.788 216.749 216.749 0 0 0-20.186-27.812.751.751 0 0 1 .082-1.057zM56.356 107.942a.75.75 0 0 1 1.054.114c3.717 4.621 8.638 14.088 12.603 22.321a451.12 451.12 0 0 1 6.904 15.068l.104.241.036.083-.689.296-.689.296-.035-.08-.103-.239-.4-.916a449.354 449.354 0 0 0-6.48-14.098c-3.98-8.266-8.83-17.569-12.42-22.032a.75.75 0 0 1 .115-1.054zm20.308 38.812a.75.75 0 0 1-.985-.393l.69-.296.688-.296a.75.75 0 0 1-.393.985zM30.293 29.63a.75.75 0 0 1 .828.663l4.527 41.233a5.805 5.805 0 0 0 6.388 5.16l21.932-2.336a.75.75 0 1 1 .158 1.492l-21.93 2.335a7.305 7.305 0 0 1-8.04-6.491v-.001L29.63 30.457a.75.75 0 0 1 .663-.828z\"\n fill=\"#111827\" />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M103.747 22.645a3.43 3.43 0 0 0-3.775-3.049.75.75 0 1 1-.159-1.491 4.931 4.931 0 0 1 5.426 4.382l4.635 43.523a4.932 4.932 0 0 1-4.382 5.426l-20.97 2.234a.75.75 0 0 1-.159-1.492l20.97-2.233a3.43 3.43 0 0 0 3.049-3.776l-4.635-43.524z\"\n fill=\"#111827\" />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M103.955 26.734a.75.75 0 0 0-.822-.671s.001 0 0 0c-1.294.13-2.709-1.1-2.916-3.154l-.381-3.787a5.114 5.114 0 0 0-5.601-4.576L58.12 18.188a4.25 4.25 0 0 1-3.417-1.21l-3.55-3.523a5.744 5.744 0 0 0-4.623-1.639L33.102 13.17a5.594 5.594 0 0 0-5.005 6.127l.892 8.843a6.87 6.87 0 0 0 7.524 6.146l66.771-6.73a.75.75 0 0 0 .671-.821zm-3.756-.376-63.837 6.434a5.37 5.37 0 0 1-5.88-4.804l-.893-8.843a4.094 4.094 0 0 1 3.663-4.483l13.428-1.353a4.244 4.244 0 0 1 3.416 1.21l3.55 3.523a5.748 5.748 0 0 0 4.623 1.639l36.116-3.642a3.614 3.614 0 0 1 3.958 3.233l.382 3.787c.128 1.274.665 2.462 1.474 3.3zM105.875 69.89a1.476 1.476 0 0 0-.142.002.74.74 0 0 0-.124.021 1.407 1.407 0 0 0-.044.01.75.75 0 0 0 .223 1.483l.192-.021a.75.75 0 0 0-.105-1.495z\"\n fill=\"#111827\" />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M104.853 25.945a.75.75 0 0 1 .825.667l4.196 39.399c.278 2.618-1.442 5.031-3.973 5.37a.712.712 0 0 1-.041.005c-2.545.202-4.737-1.795-5.015-4.414l-4.196-39.4a.75.75 0 0 1 .667-.824l7.537-.803zM98.22 28.16l4.116 38.653c.202 1.895 1.747 3.197 3.386 3.079 1.626-.23 2.861-1.827 2.66-3.723l-4.116-38.653-6.046.644zM62.54 41.105a.75.75 0 0 1 .55.16l5.326 4.284 4.282-5.325a.75.75 0 0 1 1.055-.115l5.815 4.677a.75.75 0 0 1 .114 1.055l-4.283 5.325 5.325 4.283a.75.75 0 0 1 .114 1.054l-4.677 5.815a.75.75 0 0 1-1.054.114l-5.325-4.283-4.283 5.325a.75.75 0 0 1-1.055.114l-5.814-4.676a.75.75 0 0 1-.114-1.055l4.282-5.325-5.324-4.283a.75.75 0 0 1-.114-1.054l4.676-5.815a.75.75 0 0 1 .503-.275zm.195 1.8-3.736 4.646 5.324 4.282a.75.75 0 0 1 .114 1.055l-4.282 5.325L64.8 61.95l4.284-5.324a.75.75 0 0 1 1.054-.115l5.325 4.283 3.736-4.645-5.325-4.284a.75.75 0 0 1-.114-1.054l4.283-5.325-4.646-3.737-4.282 5.326a.75.75 0 0 1-1.055.114l-5.325-4.283z\"\n fill=\"#111827\" />\n </g>\n <defs>\n <clipPath id=\"npqxa4czga\">\n <path fill=\"#fff\" d=\"M0 0h150v150H0z\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n <div class=\"scl-image-card__description\">\n <div class=\"scl-image-card__title\">Couldn't find any records</div>\n <div class=\"scl-image-card__content\">We couldn't find any records for your request.</div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: CdkTreeModule }, { kind: "ngmodule", type: NbTreeGridModule }, { kind: "ngmodule", type: NbButtonModule }, { kind: "component", type: i1.NbButtonComponent, selector: "button[nbButton],a[nbButton],input[type=\"button\"][nbButton],input[type=\"submit\"][nbButton]", inputs: ["hero"] }, { kind: "ngmodule", type: NbCheckboxModule }, { kind: "component", type: i1.NbCheckboxComponent, selector: "nb-checkbox", inputs: ["checked", "disabled", "status", "indeterminate"], outputs: ["checkedChange"] }, { kind: "ngmodule", type: NbIconModule }, { kind: "component", type: i1.NbIconComponent, selector: "nb-icon", inputs: ["icon", "pack", "options", "status", "config"] }, { kind: "ngmodule", type: NbInputModule }, { kind: "directive", type: i1.NbInputDirective, selector: "input[nbInput],textarea[nbInput]", inputs: ["fieldSize", "status", "shape", "fullWidth"] }] }); }
294
+ }
295
+ export { SclTreeview };
296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTreeview, decorators: [{
297
+ type: Component,
298
+ args: [{ selector: 'scl-treeview', standalone: true, imports: [CommonModule, CdkTreeModule, NbTreeGridModule, NbButtonModule, NbCheckboxModule, NbIconModule, SclTreeviewHeader, NbInputModule], exportAs: 'sclTreeview', template: "<div class=\"scl-filter__input-wrapper\" *ngIf=\"displaySearchFilter\">\n <nb-icon icon=\"search\" pack=\"scl-treeview\" class=\"scl-filter__icon\"></nb-icon>\n <input type=\"text\" nbInput fullWidth class=\"scl-filter__inputbox\" placeholder=\"Search\" #searchField />\n\n <div class=\"scl-filter__button-wrapper\" *ngIf=\"showClearButton\">\n <button type=\"button\" nbButton class=\"scl-filter__button\" size=\"small\" ghost (click)=\"onClearSearch()\">\n <nb-icon icon=\"cross\" pack=\"scl-treeview\"></nb-icon>\n </button>\n </div>\n</div>\n\n<div class=\"scl-treeview-table\">\n <div class=\"scl-treeview-table__body\">\n <ng-container *ngTemplateOutlet=\"recursiveNode; context:{ $implicit: filteredNode, isParentNode: true }\"></ng-container>\n </div>\n</div>\n\n<ng-template #recursiveNode let-nodes let-parentNode=\"isParentNode\">\n <ng-container *ngFor=\"let node of nodes\">\n <div class=\"scl-treeview-table__row\" *ngIf=\"(displayUnchecked && isReadonly) || (!isReadonly || node?.checked || node?.indeterminate)\">\n <div class=\"scl-treeview-table__data\">\n <div\n class=\"scl-treeview-table__title\"\n (click)=\"treeviewItemExpandCollapse(node)\"\n [class.scl-treeview-table__childnode]=\"!node.children\"\n [class.scl-treeview-table__parent]=\"node.children && !parentNode\"\n [id]=\"getId(node[bindValue])\">\n <button type=\"button\" *ngIf=\"node?.children?.length && parentNode\" class=\"scl-treeview-table__button\">\n <nb-icon [icon]=\"node.expanded ? 'arrow-down' : 'arrow-right'\" pack=\"scl-treeview\"></nb-icon>\n </button>\n <nb-checkbox\n [disabled]=\"isReadonly\"\n [checked]=\"node.checked\"\n (checkedChange)=\"toggleNodeSelection(node)\"\n [indeterminate]=\"node.indeterminate\"\n [ngClass]=\"isReadonly? 'scl-readonly__checkbox' : '' \"\n (click)=\"$event.stopPropagation()\">\n <nb-icon\n pack=\"scl-treeview\"\n icon=\"check\"\n class=\"scl-readonly__icon scl-readonly__icon--success\"\n *ngIf=\"isReadonly && node.checked\"></nb-icon>\n <nb-icon\n pack=\"scl-treeview\"\n icon=\"cross\"\n class=\"scl-readonly__icon scl-readonly__icon--danger\"\n *ngIf=\"displayUnchecked && isReadonly && !node.checked\"></nb-icon>\n {{ node[bindLabel] }}</nb-checkbox\n >\n </div>\n <div class=\"scl-treeview-table\" *ngIf=\"!parentNode || (node.children && node.expanded)\">\n <div class=\"scl-treeview-table__body\">\n <ng-container *ngTemplateOutlet=\"recursiveNode; context:{ $implicit: node.children, isParentNode: false}\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<div class=\"scl-image-card\" *ngIf=\"!filteredNode.length\">\n <div class=\"scl-image-info\">\n <div class=\"scl-image-card__image\">\n <svg width=\"150\" height=\"150\" viewBox=\"0 0 150 150\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#npqxa4czga)\">\n <path\n d=\"M75 129.75c30.238 0 54.75-24.513 54.75-54.75 0-30.238-24.512-54.75-54.75-54.75-30.237 0-54.75 24.512-54.75 54.75 0 30.237 24.513 54.75 54.75 54.75z\"\n fill=\"#F5F5F5\" />\n <path\n d=\"M96.195 83.455S86.387 73.014 77.441 69.49c-8.948-3.525-18.788 3.663-9.43 13.26 9.36 9.597 9.56 10.79 9.56 10.79s-2.778 14.104 10.235 23.881\"\n stroke=\"#111827\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M53.855 76.447c-1.077 1.563-1.682 3.827-1.373 7.08.771 8.114 7.248 11.838 10.611 13.377 4.976 2.277 12.49.686 10.247-8.24\"\n stroke=\"#111827\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n d=\"M53.567 87.766s-9.69 2.77-5.363 12.974c1.914 4.513 6.936 7.741 12.488 8.485 6.691.897 11.313-6.378 6.135-11.398\"\n stroke=\"#111827\"\n stroke-width=\"1.5\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M100.426 70.664a.75.75 0 0 1 1.058.082 218.322 218.322 0 0 1 20.326 28.006 178.111 178.111 0 0 1 5.079 8.864c.564 1.059.988 1.889 1.272 2.454a66.177 66.177 0 0 1 .4.813l.021.043.005.011.001.003c.001.001.001.002-.677.322l.678-.32a.75.75 0 1 1-1.356.641l-.001-.002-.005-.01-.018-.039a67.59 67.59 0 0 0-.389-.79c-.278-.555-.697-1.373-1.255-2.421a176.397 176.397 0 0 0-5.035-8.788 216.749 216.749 0 0 0-20.186-27.812.751.751 0 0 1 .082-1.057zM56.356 107.942a.75.75 0 0 1 1.054.114c3.717 4.621 8.638 14.088 12.603 22.321a451.12 451.12 0 0 1 6.904 15.068l.104.241.036.083-.689.296-.689.296-.035-.08-.103-.239-.4-.916a449.354 449.354 0 0 0-6.48-14.098c-3.98-8.266-8.83-17.569-12.42-22.032a.75.75 0 0 1 .115-1.054zm20.308 38.812a.75.75 0 0 1-.985-.393l.69-.296.688-.296a.75.75 0 0 1-.393.985zM30.293 29.63a.75.75 0 0 1 .828.663l4.527 41.233a5.805 5.805 0 0 0 6.388 5.16l21.932-2.336a.75.75 0 1 1 .158 1.492l-21.93 2.335a7.305 7.305 0 0 1-8.04-6.491v-.001L29.63 30.457a.75.75 0 0 1 .663-.828z\"\n fill=\"#111827\" />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M103.747 22.645a3.43 3.43 0 0 0-3.775-3.049.75.75 0 1 1-.159-1.491 4.931 4.931 0 0 1 5.426 4.382l4.635 43.523a4.932 4.932 0 0 1-4.382 5.426l-20.97 2.234a.75.75 0 0 1-.159-1.492l20.97-2.233a3.43 3.43 0 0 0 3.049-3.776l-4.635-43.524z\"\n fill=\"#111827\" />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M103.955 26.734a.75.75 0 0 0-.822-.671s.001 0 0 0c-1.294.13-2.709-1.1-2.916-3.154l-.381-3.787a5.114 5.114 0 0 0-5.601-4.576L58.12 18.188a4.25 4.25 0 0 1-3.417-1.21l-3.55-3.523a5.744 5.744 0 0 0-4.623-1.639L33.102 13.17a5.594 5.594 0 0 0-5.005 6.127l.892 8.843a6.87 6.87 0 0 0 7.524 6.146l66.771-6.73a.75.75 0 0 0 .671-.821zm-3.756-.376-63.837 6.434a5.37 5.37 0 0 1-5.88-4.804l-.893-8.843a4.094 4.094 0 0 1 3.663-4.483l13.428-1.353a4.244 4.244 0 0 1 3.416 1.21l3.55 3.523a5.748 5.748 0 0 0 4.623 1.639l36.116-3.642a3.614 3.614 0 0 1 3.958 3.233l.382 3.787c.128 1.274.665 2.462 1.474 3.3zM105.875 69.89a1.476 1.476 0 0 0-.142.002.74.74 0 0 0-.124.021 1.407 1.407 0 0 0-.044.01.75.75 0 0 0 .223 1.483l.192-.021a.75.75 0 0 0-.105-1.495z\"\n fill=\"#111827\" />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M104.853 25.945a.75.75 0 0 1 .825.667l4.196 39.399c.278 2.618-1.442 5.031-3.973 5.37a.712.712 0 0 1-.041.005c-2.545.202-4.737-1.795-5.015-4.414l-4.196-39.4a.75.75 0 0 1 .667-.824l7.537-.803zM98.22 28.16l4.116 38.653c.202 1.895 1.747 3.197 3.386 3.079 1.626-.23 2.861-1.827 2.66-3.723l-4.116-38.653-6.046.644zM62.54 41.105a.75.75 0 0 1 .55.16l5.326 4.284 4.282-5.325a.75.75 0 0 1 1.055-.115l5.815 4.677a.75.75 0 0 1 .114 1.055l-4.283 5.325 5.325 4.283a.75.75 0 0 1 .114 1.054l-4.677 5.815a.75.75 0 0 1-1.054.114l-5.325-4.283-4.283 5.325a.75.75 0 0 1-1.055.114l-5.814-4.676a.75.75 0 0 1-.114-1.055l4.282-5.325-5.324-4.283a.75.75 0 0 1-.114-1.054l4.676-5.815a.75.75 0 0 1 .503-.275zm.195 1.8-3.736 4.646 5.324 4.282a.75.75 0 0 1 .114 1.055l-4.282 5.325L64.8 61.95l4.284-5.324a.75.75 0 0 1 1.054-.115l5.325 4.283 3.736-4.645-5.325-4.284a.75.75 0 0 1-.114-1.054l4.283-5.325-4.646-3.737-4.282 5.326a.75.75 0 0 1-1.055.114l-5.325-4.283z\"\n fill=\"#111827\" />\n </g>\n <defs>\n <clipPath id=\"npqxa4czga\">\n <path fill=\"#fff\" d=\"M0 0h150v150H0z\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n <div class=\"scl-image-card__description\">\n <div class=\"scl-image-card__title\">Couldn't find any records</div>\n <div class=\"scl-image-card__content\">We couldn't find any records for your request.</div>\n </div>\n </div>\n</div>\n" }]
299
+ }], ctorParameters: function () { return [{ type: i1.NbIconLibraries }]; }, propDecorators: { searchField: [{
300
+ type: ViewChild,
301
+ args: ['searchField']
302
+ }], selectionChange: [{
303
+ type: Output
304
+ }], bindLabel: [{
305
+ type: Input
306
+ }], bindValue: [{
307
+ type: Input
308
+ }], id: [{
309
+ type: Input
310
+ }], showSearchFilter: [{
311
+ type: Input
312
+ }], showUnchecked: [{
313
+ type: Input
314
+ }], readOnly: [{
315
+ type: Input
316
+ }], dataSource: [{
317
+ type: Input
318
+ }] } });
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvdHJlZXZpZXcvdHJlZXZpZXcudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvdHJlZXZpZXcvdHJlZXZpZXcuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQW1CLFlBQVksRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsSSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBY25ELE1BT2EsV0FBVztJQVNwQixJQUNJLGdCQUFnQixDQUFDLEtBQXVCO1FBQ3hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUdELElBQ0ksYUFBYSxDQUFDLEtBQXVC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Q0FBQztpQkFDakU7YUFDSjtpQkFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2FBQzNEO1NBQ0o7SUFDTCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVGLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7OEdBdFVRLFdBQVc7a0dBQVgsV0FBVyw0YkM3QnhCLG90U0EySEEsMkNEakdjLFlBQVksb2dCQUFFLGFBQWEsOEJBQUUsZ0JBQWdCLDhCQUFFLGNBQWMsK01BQUUsZ0JBQWdCLG9NQUFFLFlBQVksNkpBQXFCLGFBQWE7O1NBR2hJLFdBQVc7MkZBQVgsV0FBVztrQkFQdkIsU0FBUzsrQkFDSSxjQUFjLGNBRVosSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxZQUNoSSxhQUFhO3NHQUdHLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDZCxlQUFlO3NCQUF4QixNQUFNO2dCQUVFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBSUYsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVVGLGFBQWE7c0JBRGhCLEtBQUs7Z0JBVUYsUUFBUTtzQkFEWCxLQUFLO2dCQWlCTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENka1RyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmJCdXR0b25Nb2R1bGUsIE5iQ2hlY2tib3hNb2R1bGUsIE5iSWNvbkxpYnJhcmllcywgTmJJY29uTW9kdWxlLCBOYklucHV0TW9kdWxlLCBOYlRyZWVHcmlkTW9kdWxlIH0gZnJvbSAnQG5lYnVsYXIvdGhlbWUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmcm9tRXZlbnQsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RpbXVsdXNOZWJ1bGFyRXNzZW50aWFsc0ljb25zIH0gZnJvbSAnLi4vbmVidWxhci1pY29uJztcbmltcG9ydCB7IFNjbFRyZWV2aWV3SGVhZGVyIH0gZnJvbSAnLi90cmVldmlldy1oZWFkZXIvdHJlZXZpZXctaGVhZGVyJztcbmltcG9ydCB7IFNjbFRyZWVWaWV3SWNvbnMgfSBmcm9tICcuL3RyZWV2aWV3Lmljb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVOb2RlIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY2hpbGRyZW4/OiBUcmVlTm9kZVtdO1xuICAgIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgICBjaGVja2VkPzogYm9vbGVhbjtcbiAgICBpbmRldGVybWluYXRlPzogYm9vbGVhbjtcbiAgICBpZD86IG51bWJlcjtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzY2wtdHJlZXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmVldmlldy5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENka1RyZWVNb2R1bGUsIE5iVHJlZUdyaWRNb2R1bGUsIE5iQnV0dG9uTW9kdWxlLCBOYkNoZWNrYm94TW9kdWxlLCBOYkljb25Nb2R1bGUsIFNjbFRyZWV2aWV3SGVhZGVyLCBOYklucHV0TW9kdWxlXSxcbiAgICBleHBvcnRBczogJ3NjbFRyZWV2aWV3Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NsVHJlZXZpZXcge1xuICAgIEBWaWV3Q2hpbGQoJ3NlYXJjaEZpZWxkJykgc2VhcmNoRmllbGQhOiBFbGVtZW50UmVmO1xuICAgIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBASW5wdXQoKSBiaW5kTGFiZWwgPSAnbGFiZWwnO1xuICAgIEBJbnB1dCgpIGJpbmRWYWx1ZSA9ICdpZCc7XG4gICAgQElucHV0KCkgaWQgPSAnJztcblxuICAgIGRpc3BsYXlTZWFyY2hGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBzaG93U2VhcmNoRmlsdGVyKHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVNlYXJjaEZpbHRlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzaG93U2VhcmNoRmlsdGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5U2VhcmNoRmlsdGVyO1xuICAgIH1cblxuICAgIGRpc3BsYXlVbmNoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBzaG93VW5jaGVja2VkKHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVVuY2hlY2tlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzaG93VW5jaGVja2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5VW5jaGVja2VkO1xuICAgIH1cblxuICAgIGlzUmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCByZWFkT25seSh2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzUmVhZG9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCByZWFkT25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZWFkb25seTtcbiAgICB9XG5cbiAgICBnZXRJZChuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuaWQgIT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmlkfV8ke25hbWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtuYW1lfWA7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRhdGFTb3VyY2UoZGF0YTogVHJlZU5vZGVbXSkge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgdGhpcy50cmVlTm9kZXMgPSB0aGlzLnVwZGF0ZU5vZGVTdGF0ZShkYXRhKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWROb2RlID0gdGhpcy50cmVlTm9kZXM7XG4gICAgICAgICAgICB0aGlzLmlzRXZlcnlOb2RlRXhwYW5kZWQgPSB0aGlzLmFyZUV2ZXJ5Tm9kZUV4cGFuZGVkKCk7XG4gICAgICAgICAgICB0aGlzLnNob3dFeHBhbmRCdXR0b24gPSB0aGlzLnNob3dFeHBhbmRBbGxCdXR0b24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBkYXRhU291cmNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmVlTm9kZXM7XG4gICAgfVxuXG4gICAgaXNFdmVyeU5vZGVFeHBhbmRlZCA9IGZhbHNlO1xuICAgIGZpbHRlcmVkTm9kZTogVHJlZU5vZGVbXSA9IFtdO1xuICAgIHNob3dDbGVhckJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHNlYXJjaFZhbHVlITogc3RyaW5nO1xuICAgIHNob3dFeHBhbmRCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaWNvbkxpYnJhcmllczogTmJJY29uTGlicmFyaWVzKSB7XG4gICAgICAgIHRoaXMuaWNvbkxpYnJhcmllcy5yZWdpc3RlclN2Z1BhY2soJ3NjbC10cmVldmlldycsIFNjbFRyZWVWaWV3SWNvbnMpO1xuICAgICAgICB0aGlzLmljb25MaWJyYXJpZXMucmVnaXN0ZXJTdmdQYWNrKCduZWJ1bGFyLWVzc2VudGlhbHMnLCBTdGltdWx1c05lYnVsYXJFc3NlbnRpYWxzSWNvbnMpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoRmllbGQpIHtcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLnNlYXJjaEZpZWxkLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dDbGVhckJ1dHRvbiA9IHRoaXMuc2VhcmNoRmllbGQubmF0aXZlRWxlbWVudC52YWx1ZSAhPT0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hGaWVsZC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblNlYXJjaE5vZGUodGhpcy5zZWFyY2hWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VhcmNoTm9kZShzZWFyY2hWYWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmIChzZWFyY2hWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3Qgc2VhcmNoS2V5d29yZCA9IHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTm9kZSA9IHRoaXMuZmlsdGVyTm9kZXModGhpcy5kYXRhU291cmNlLCBzZWFyY2hLZXl3b3JkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWROb2RlID0gdGhpcy5kYXRhU291cmNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmlsdGVyTm9kZXMobm9kZXM6IFRyZWVOb2RlW10sIHNlYXJjaEtleXdvcmQ6IHN0cmluZyk6IFRyZWVOb2RlW10ge1xuICAgICAgICBjb25zdCBmaWx0ZXJlZE5vZGVzOiBUcmVlTm9kZVtdID0gW107XG5cbiAgICAgICAgbm9kZXMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICAgIGlmIChub2RlLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hLZXl3b3JkKSkge1xuICAgICAgICAgICAgICAgIGZpbHRlcmVkTm9kZXMucHVzaChub2RlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maWx0ZXJOb2Rlcyhub2RlLmNoaWxkcmVuLCBzZWFyY2hLZXl3b3JkKTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRDaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkTm9kZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5ub2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGZpbHRlcmVkQ2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkTm9kZXM7XG4gICAgfVxuXG4gICAgb25DbGVhclNlYXJjaCgpIHtcbiAgICAgICAgdGhpcy5zaG93Q2xlYXJCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWFyY2hGaWVsZC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMuZmlsdGVyZWROb2RlID0gdGhpcy5kYXRhU291cmNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdHJlZU5vZGVzITogVHJlZU5vZGVbXTtcblxuICAgIHVwZGF0ZU5vZGVTdGF0ZShub2RlczogVHJlZU5vZGVbXSk6IFRyZWVOb2RlW10ge1xuICAgICAgICByZXR1cm4gbm9kZXMubWFwKG5vZGUgPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGU/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZFJlc3VsdHMgPSB0aGlzLnVwZGF0ZU5vZGVTdGF0ZShub2RlLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb3VudENoZWNrZWQgPSBjaGlsZFJlc3VsdHMuZmlsdGVyKGNoaWxkTm9kZSA9PiBjaGlsZE5vZGUuY2hlY2tlZCkubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvdW50SW5kZXRlcm1pbmF0ZSA9IGNoaWxkUmVzdWx0cy5maWx0ZXIoY2hpbGROb2RlID0+IGNoaWxkTm9kZS5pbmRldGVybWluYXRlKS5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICBpZiAoY291bnRDaGVja2VkID09PSBub2RlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBub2RlLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvdW50Q2hlY2tlZCA+IDAgfHwgY291bnRJbmRldGVybWluYXRlID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBub2RlLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBub2RlLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdHJlZXZpZXdJdGVtRXhwYW5kQ29sbGFwc2Uobm9kZTogVHJlZU5vZGUpIHtcbiAgICAgICAgbm9kZS5leHBhbmRlZCA9ICFub2RlLmV4cGFuZGVkO1xuICAgICAgICB0aGlzLmlzRXZlcnlOb2RlRXhwYW5kZWQgPSB0aGlzLmFyZUV2ZXJ5Tm9kZUV4cGFuZGVkKCk7XG4gICAgfVxuXG4gICAgYXJlRXZlcnlOb2RlRXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoaXRlbSA9PiBpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkRGF0YT8uZXZlcnkoaXRlbSA9PiBpdGVtLmV4cGFuZGVkID09PSB0cnVlKTtcbiAgICB9XG5cbiAgICB0b2dnbGVBbGxOb2RlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKGl0ZW0gPT4gaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCk7XG4gICAgICAgIHRoaXMucmVjdXJzaXZlbHlUb2dnbGVOb2Rlcyhub2RlcywgdGhpcy5pc0V2ZXJ5Tm9kZUV4cGFuZGVkKTtcbiAgICAgICAgdGhpcy5pc0V2ZXJ5Tm9kZUV4cGFuZGVkID0gIXRoaXMuaXNFdmVyeU5vZGVFeHBhbmRlZDtcbiAgICB9XG5cbiAgICByZWN1cnNpdmVseVRvZ2dsZU5vZGVzKG5vZGVzOiBUcmVlTm9kZVtdLCBhbGxOb2Rlc0V4cGFuZGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xuICAgICAgICAgICAgbm9kZS5leHBhbmRlZCA9ICFhbGxOb2Rlc0V4cGFuZGVkO1xuICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVjdXJzaXZlbHlUb2dnbGVOb2Rlcyhub2RlLmNoaWxkcmVuLCBhbGxOb2Rlc0V4cGFuZGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZUFsbFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSB0aGlzLmlzQWxsU2VsZWN0ZWQodGhpcy5kYXRhU291cmNlKTtcblxuICAgICAgICBpZiAoYWxsU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudW5jaGVja0FsbE5vZGVzKHRoaXMuZGF0YVNvdXJjZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrQWxsTm9kZXModGhpcy5kYXRhU291cmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdENoZWNrZWROb2RlcygpO1xuICAgIH1cblxuICAgIGNoZWNrQWxsTm9kZXMobm9kZXM6IFRyZWVOb2RlW10pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICAgICAgICBub2RlLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgbm9kZS5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tBbGxOb2Rlcyhub2RlLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnY2hlY2sgYWxsIG5vZGVzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmNoZWNrQWxsTm9kZXMobm9kZXM6IFRyZWVOb2RlW10pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICAgICAgICBub2RlLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIG5vZGUuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVuY2hlY2tBbGxOb2Rlcyhub2RlLmNoaWxkcmVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzQWxsU2VsZWN0ZWQobm9kZXM6IFRyZWVOb2RlW10pOiBib29sZWFuIHtcbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICAgICAgICBpZiAoIW5vZGUuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzQWxsU2VsZWN0ZWQobm9kZS5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0b2dnbGVOb2RlU2VsZWN0aW9uKG5vZGU6IFRyZWVOb2RlKTogdm9pZCB7XG4gICAgICAgIGlmIChub2RlLmNoZWNrZWQpIHtcbiAgICAgICAgICAgIG5vZGUuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgbm9kZS5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnVuY2hlY2tDaGlsZHJlbihub2RlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFyZW50Tm9kZShub2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5vZGUuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICBub2RlLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tDaGlsZHJlbihub2RlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFyZW50Tm9kZShub2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdENoZWNrZWROb2RlcygpO1xuICAgIH1cblxuICAgIHVwZGF0ZVBhcmVudE5vZGUobm9kZTogVHJlZU5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50Tm9kZTogYW55ID0gdGhpcy5nZXRQYXJlbnROb2RlKG5vZGUpO1xuICAgICAgICBpZiAocGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBwYXJlbnROb2RlLmNoaWxkcmVuLmV2ZXJ5KChjaGlsZDogYW55KSA9PiBjaGlsZC5jaGVja2VkKTtcbiAgICAgICAgICAgIGNvbnN0IHNvbWVTZWxlY3RlZCA9IHBhcmVudE5vZGUuY2hpbGRyZW4uc29tZSgoY2hpbGQ6IGFueSkgPT4gY2hpbGQuY2hlY2tlZCB8fCBjaGlsZC5pbmRldGVybWluYXRlKTtcblxuICAgICAgICAgICAgcGFyZW50Tm9kZS5jaGVja2VkID0gYWxsU2VsZWN0ZWQ7XG4gICAgICAgICAgICBwYXJlbnROb2RlLmluZGV0ZXJtaW5hdGUgPSAhYWxsU2VsZWN0ZWQgJiYgc29tZVNlbGVjdGVkO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBhcmVudE5vZGUocGFyZW50Tm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRQYXJlbnROb2RlKG5vZGU6IFRyZWVOb2RlKTogVHJlZU5vZGUgfCBudWxsIHtcbiAgICAgICAgY29uc3Qgc3RhY2s6IFRyZWVOb2RlW10gPSBbLi4udGhpcy5kYXRhU291cmNlXTtcbiAgICAgICAgd2hpbGUgKHN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJOb2RlID0gc3RhY2sucG9wKCk7XG4gICAgICAgICAgICBpZiAoY3Vyck5vZGUgJiYgY3Vyck5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGN1cnJOb2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZCA9PT0gbm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJOb2RlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjaGVja0NoaWxkcmVuKG5vZGU6IFRyZWVOb2RlKTogdm9pZCB7XG4gICAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjaGlsZC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja0NoaWxkcmVuKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuY2hlY2tDaGlsZHJlbihub2RlOiBUcmVlTm9kZSk6IHZvaWQge1xuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNoaWxkLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnVuY2hlY2tDaGlsZHJlbihjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbWl0Q2hlY2tlZE5vZGVzKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWVzOiBudW1iZXJbXSA9IFtdO1xuICAgICAgICBjb25zdCB0cmVlVmlld0l0ZW1zOiBUcmVlTm9kZVtdID0gW107XG4gICAgICAgIHRoaXMudHJhdmVyc2VDaGVja2VkTm9kZXModGhpcy5kYXRhU291cmNlLCBzZWxlY3RlZFZhbHVlcyk7XG4gICAgICAgIHRoaXMudHJhdmVyc2VDaGVja2VkSXRlbXModGhpcy5kYXRhU291cmNlLCB0cmVlVmlld0l0ZW1zKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh7IHNlbGVjdGVkVmFsdWVzLCB0cmVlVmlld0l0ZW1zIH0pO1xuICAgIH1cblxuICAgIHRyYXZlcnNlQ2hlY2tlZE5vZGVzKG5vZGVzOiBUcmVlTm9kZVtdLCBzZWxlY3RlZFZhbHVlczogbnVtYmVyW10pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICAgICAgICBpZiAobm9kZS5jaGVja2VkICYmIG5vZGVbdGhpcy5iaW5kVmFsdWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlcy5wdXNoKG5vZGVbdGhpcy5iaW5kVmFsdWVdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmF2ZXJzZUNoZWNrZWROb2Rlcyhub2RlLmNoaWxkcmVuLCBzZWxlY3RlZFZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmF2ZXJzZUNoZWNrZWRJdGVtcyhub2RlczogVHJlZU5vZGVbXSwgdHJlZVZpZXdJdGVtczogVHJlZU5vZGVbXSk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgICAgICAgIGlmIChub2RlLmNoZWNrZWQgfHwgbm9kZS5pbmRldGVybWluYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IG5vZGUuaWQsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG5vZGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IG5vZGUubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRyZWVWaWV3SXRlbXMucHVzaChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYXZlcnNlQ2hlY2tlZEl0ZW1zKG5vZGUuY2hpbGRyZW4sIHBhcmVudE5vZGUuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhdmVyc2VDaGVja2VkSXRlbXMobm9kZS5jaGlsZHJlbiwgdHJlZVZpZXdJdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93RXhwYW5kQWxsQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBoYXNDaGlsZHJlbiA9IHRoaXMuZGF0YVNvdXJjZS5zb21lKGl0ZW0gPT4gaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApO1xuICAgICAgICByZXR1cm4gaGFzQ2hpbGRyZW47XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNjbC1maWx0ZXJfX2lucHV0LXdyYXBwZXJcIiAqbmdJZj1cImRpc3BsYXlTZWFyY2hGaWx0ZXJcIj5cbiAgICA8bmItaWNvbiBpY29uPVwic2VhcmNoXCIgcGFjaz1cInNjbC10cmVldmlld1wiIGNsYXNzPVwic2NsLWZpbHRlcl9faWNvblwiPjwvbmItaWNvbj5cbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYklucHV0IGZ1bGxXaWR0aCBjbGFzcz1cInNjbC1maWx0ZXJfX2lucHV0Ym94XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAjc2VhcmNoRmllbGQgLz5cblxuICAgIDxkaXYgY2xhc3M9XCJzY2wtZmlsdGVyX19idXR0b24td3JhcHBlclwiICpuZ0lmPVwic2hvd0NsZWFyQnV0dG9uXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG5iQnV0dG9uIGNsYXNzPVwic2NsLWZpbHRlcl9fYnV0dG9uXCIgc2l6ZT1cInNtYWxsXCIgZ2hvc3QgKGNsaWNrKT1cIm9uQ2xlYXJTZWFyY2goKVwiPlxuICAgICAgICAgICAgPG5iLWljb24gaWNvbj1cImNyb3NzXCIgcGFjaz1cInNjbC10cmVldmlld1wiPjwvbmItaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInNjbC10cmVldmlldy10YWJsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzY2wtdHJlZXZpZXctdGFibGVfX2JvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZU5vZGU7IGNvbnRleHQ6eyAkaW1wbGljaXQ6IGZpbHRlcmVkTm9kZSwgaXNQYXJlbnROb2RlOiB0cnVlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3JlY3Vyc2l2ZU5vZGUgbGV0LW5vZGVzIGxldC1wYXJlbnROb2RlPVwiaXNQYXJlbnROb2RlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbm9kZSBvZiBub2Rlc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLXRyZWV2aWV3LXRhYmxlX19yb3dcIiAqbmdJZj1cIihkaXNwbGF5VW5jaGVja2VkICYmIGlzUmVhZG9ubHkpIHx8ICghaXNSZWFkb25seSB8fCBub2RlPy5jaGVja2VkIHx8IG5vZGU/LmluZGV0ZXJtaW5hdGUpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLXRyZWV2aWV3LXRhYmxlX19kYXRhXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNjbC10cmVldmlldy10YWJsZV9fdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidHJlZXZpZXdJdGVtRXhwYW5kQ29sbGFwc2Uobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2NsLXRyZWV2aWV3LXRhYmxlX19jaGlsZG5vZGVdPVwiIW5vZGUuY2hpbGRyZW5cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2NsLXRyZWV2aWV3LXRhYmxlX19wYXJlbnRdPVwibm9kZS5jaGlsZHJlbiAmJiAhcGFyZW50Tm9kZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJnZXRJZChub2RlW2JpbmRWYWx1ZV0pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwibm9kZT8uY2hpbGRyZW4/Lmxlbmd0aCAmJiBwYXJlbnROb2RlXCIgY2xhc3M9XCJzY2wtdHJlZXZpZXctdGFibGVfX2J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5iLWljb24gW2ljb25dPVwibm9kZS5leHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCdcIiBwYWNrPVwic2NsLXRyZWV2aWV3XCI+PC9uYi1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPG5iLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNSZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJub2RlLmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoZWNrZWRDaGFuZ2UpPVwidG9nZ2xlTm9kZVNlbGVjdGlvbihub2RlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJub2RlLmluZGV0ZXJtaW5hdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXNSZWFkb25seT8gJ3NjbC1yZWFkb25seV9fY2hlY2tib3gnIDogJycgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuYi1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFjaz1cInNjbC10cmVldmlld1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNjbC1yZWFkb25seV9faWNvbiBzY2wtcmVhZG9ubHlfX2ljb24tLXN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNSZWFkb25seSAmJiBub2RlLmNoZWNrZWRcIj48L25iLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmItaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2s9XCJzY2wtdHJlZXZpZXdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJjcm9zc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzY2wtcmVhZG9ubHlfX2ljb24gc2NsLXJlYWRvbmx5X19pY29uLS1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheVVuY2hlY2tlZCAmJiBpc1JlYWRvbmx5ICYmICFub2RlLmNoZWNrZWRcIj48L25iLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlW2JpbmRMYWJlbF0gfX08L25iLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLXRyZWV2aWV3LXRhYmxlXCIgKm5nSWY9XCIhcGFyZW50Tm9kZSB8fCAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmV4cGFuZGVkKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLXRyZWV2aWV3LXRhYmxlX19ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlTm9kZTsgY29udGV4dDp7ICRpbXBsaWNpdDogbm9kZS5jaGlsZHJlbiwgaXNQYXJlbnROb2RlOiBmYWxzZX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48ZGl2IGNsYXNzPVwic2NsLWltYWdlLWNhcmRcIiAqbmdJZj1cIiFmaWx0ZXJlZE5vZGUubGVuZ3RoXCI+XG4gICAgPGRpdiBjbGFzcz1cInNjbC1pbWFnZS1pbmZvXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY2wtaW1hZ2UtY2FyZF9faW1hZ2VcIj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNTBcIiBoZWlnaHQ9XCIxNTBcIiB2aWV3Qm94PVwiMCAwIDE1MCAxNTBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI25wcXhhNGN6Z2EpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTc1IDEyOS43NWMzMC4yMzggMCA1NC43NS0yNC41MTMgNTQuNzUtNTQuNzUgMC0zMC4yMzgtMjQuNTEyLTU0Ljc1LTU0Ljc1LTU0Ljc1LTMwLjIzNyAwLTU0Ljc1IDI0LjUxMi01NC43NSA1NC43NSAwIDMwLjIzNyAyNC41MTMgNTQuNzUgNTQuNzUgNTQuNzV6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRjVGNUY1XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOTYuMTk1IDgzLjQ1NVM4Ni4zODcgNzMuMDE0IDc3LjQ0MSA2OS40OWMtOC45NDgtMy41MjUtMTguNzg4IDMuNjYzLTkuNDMgMTMuMjYgOS4zNiA5LjU5NyA5LjU2IDEwLjc5IDkuNTYgMTAuNzlzLTIuNzc4IDE0LjEwNCAxMC4yMzUgMjMuODgxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxMTE4MjdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUzLjg1NSA3Ni40NDdjLTEuMDc3IDEuNTYzLTEuNjgyIDMuODI3LTEuMzczIDcuMDguNzcxIDguMTE0IDcuMjQ4IDExLjgzOCAxMC42MTEgMTMuMzc3IDQuOTc2IDIuMjc3IDEyLjQ5LjY4NiAxMC4yNDctOC4yNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMTExODI3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk01My41NjcgODcuNzY2cy05LjY5IDIuNzctNS4zNjMgMTIuOTc0YzEuOTE0IDQuNTEzIDYuOTM2IDcuNzQxIDEyLjQ4OCA4LjQ4NSA2LjY5MS44OTcgMTEuMzEzLTYuMzc4IDYuMTM1LTExLjM5OFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMTExODI3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAwLjQyNiA3MC42NjRhLjc1Ljc1IDAgMCAxIDEuMDU4LjA4MiAyMTguMzIyIDIxOC4zMjIgMCAwIDEgMjAuMzI2IDI4LjAwNiAxNzguMTExIDE3OC4xMTEgMCAwIDEgNS4wNzkgOC44NjRjLjU2NCAxLjA1OS45ODggMS44ODkgMS4yNzIgMi40NTRhNjYuMTc3IDY2LjE3NyAwIDAgMSAuNC44MTNsLjAyMS4wNDMuMDA1LjAxMS4wMDEuMDAzYy4wMDEuMDAxLjAwMS4wMDItLjY3Ny4zMjJsLjY3OC0uMzJhLjc1Ljc1IDAgMSAxLTEuMzU2LjY0MWwtLjAwMS0uMDAyLS4wMDUtLjAxLS4wMTgtLjAzOWE2Ny41OSA2Ny41OSAwIDAgMC0uMzg5LS43OWMtLjI3OC0uNTU1LS42OTctMS4zNzMtMS4yNTUtMi40MjFhMTc2LjM5NyAxNzYuMzk3IDAgMCAwLTUuMDM1LTguNzg4IDIxNi43NDkgMjE2Ljc0OSAwIDAgMC0yMC4xODYtMjcuODEyLjc1MS43NTEgMCAwIDEgLjA4Mi0xLjA1N3pNNTYuMzU2IDEwNy45NDJhLjc1Ljc1IDAgMCAxIDEuMDU0LjExNGMzLjcxNyA0LjYyMSA4LjYzOCAxNC4wODggMTIuNjAzIDIyLjMyMWE0NTEuMTIgNDUxLjEyIDAgMCAxIDYuOTA0IDE1LjA2OGwuMTA0LjI0MS4wMzYuMDgzLS42ODkuMjk2LS42ODkuMjk2LS4wMzUtLjA4LS4xMDMtLjIzOS0uNC0uOTE2YTQ0OS4zNTQgNDQ5LjM1NCAwIDAgMC02LjQ4LTE0LjA5OGMtMy45OC04LjI2Ni04LjgzLTE3LjU2OS0xMi40Mi0yMi4wMzJhLjc1Ljc1IDAgMCAxIC4xMTUtMS4wNTR6bTIwLjMwOCAzOC44MTJhLjc1Ljc1IDAgMCAxLS45ODUtLjM5M2wuNjktLjI5Ni42ODgtLjI5NmEuNzUuNzUgMCAwIDEtLjM5My45ODV6TTMwLjI5MyAyOS42M2EuNzUuNzUgMCAwIDEgLjgyOC42NjNsNC41MjcgNDEuMjMzYTUuODA1IDUuODA1IDAgMCAwIDYuMzg4IDUuMTZsMjEuOTMyLTIuMzM2YS43NS43NSAwIDEgMSAuMTU4IDEuNDkybC0yMS45MyAyLjMzNWE3LjMwNSA3LjMwNSAwIDAgMS04LjA0LTYuNDkxdi0uMDAxTDI5LjYzIDMwLjQ1N2EuNzUuNzUgMCAwIDEgLjY2My0uODI4elwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzExMTgyN1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMDMuNzQ3IDIyLjY0NWEzLjQzIDMuNDMgMCAwIDAtMy43NzUtMy4wNDkuNzUuNzUgMCAxIDEtLjE1OS0xLjQ5MSA0LjkzMSA0LjkzMSAwIDAgMSA1LjQyNiA0LjM4Mmw0LjYzNSA0My41MjNhNC45MzIgNC45MzIgMCAwIDEtNC4zODIgNS40MjZsLTIwLjk3IDIuMjM0YS43NS43NSAwIDAgMS0uMTU5LTEuNDkybDIwLjk3LTIuMjMzYTMuNDMgMy40MyAwIDAgMCAzLjA0OS0zLjc3NmwtNC42MzUtNDMuNTI0elwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzExMTgyN1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMDMuOTU1IDI2LjczNGEuNzUuNzUgMCAwIDAtLjgyMi0uNjcxcy4wMDEgMCAwIDBjLTEuMjk0LjEzLTIuNzA5LTEuMS0yLjkxNi0zLjE1NGwtLjM4MS0zLjc4N2E1LjExNCA1LjExNCAwIDAgMC01LjYwMS00LjU3Nkw1OC4xMiAxOC4xODhhNC4yNSA0LjI1IDAgMCAxLTMuNDE3LTEuMjFsLTMuNTUtMy41MjNhNS43NDQgNS43NDQgMCAwIDAtNC42MjMtMS42MzlMMzMuMTAyIDEzLjE3YTUuNTk0IDUuNTk0IDAgMCAwLTUuMDA1IDYuMTI3bC44OTIgOC44NDNhNi44NyA2Ljg3IDAgMCAwIDcuNTI0IDYuMTQ2bDY2Ljc3MS02LjczYS43NS43NSAwIDAgMCAuNjcxLS44MjF6bS0zLjc1Ni0uMzc2LTYzLjgzNyA2LjQzNGE1LjM3IDUuMzcgMCAwIDEtNS44OC00LjgwNGwtLjg5My04Ljg0M2E0LjA5NCA0LjA5NCAwIDAgMSAzLjY2My00LjQ4M2wxMy40MjgtMS4zNTNhNC4yNDQgNC4yNDQgMCAwIDEgMy40MTYgMS4yMWwzLjU1IDMuNTIzYTUuNzQ4IDUuNzQ4IDAgMCAwIDQuNjIzIDEuNjM5bDM2LjExNi0zLjY0MmEzLjYxNCAzLjYxNCAwIDAgMSAzLjk1OCAzLjIzM2wuMzgyIDMuNzg3Yy4xMjggMS4yNzQuNjY1IDIuNDYyIDEuNDc0IDMuM3pNMTA1Ljg3NSA2OS44OWExLjQ3NiAxLjQ3NiAwIDAgMC0uMTQyLjAwMi43NC43NCAwIDAgMC0uMTI0LjAyMSAxLjQwNyAxLjQwNyAwIDAgMC0uMDQ0LjAxLjc1Ljc1IDAgMCAwIC4yMjMgMS40ODNsLjE5Mi0uMDIxYS43NS43NSAwIDAgMC0uMTA1LTEuNDk1elwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzExMTgyN1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMDQuODUzIDI1Ljk0NWEuNzUuNzUgMCAwIDEgLjgyNS42NjdsNC4xOTYgMzkuMzk5Yy4yNzggMi42MTgtMS40NDIgNS4wMzEtMy45NzMgNS4zN2EuNzEyLjcxMiAwIDAgMS0uMDQxLjAwNWMtMi41NDUuMjAyLTQuNzM3LTEuNzk1LTUuMDE1LTQuNDE0bC00LjE5Ni0zOS40YS43NS43NSAwIDAgMSAuNjY3LS44MjRsNy41MzctLjgwM3pNOTguMjIgMjguMTZsNC4xMTYgMzguNjUzYy4yMDIgMS44OTUgMS43NDcgMy4xOTcgMy4zODYgMy4wNzkgMS42MjYtLjIzIDIuODYxLTEuODI3IDIuNjYtMy43MjNsLTQuMTE2LTM4LjY1My02LjA0Ni42NDR6TTYyLjU0IDQxLjEwNWEuNzUuNzUgMCAwIDEgLjU1LjE2bDUuMzI2IDQuMjg0IDQuMjgyLTUuMzI1YS43NS43NSAwIDAgMSAxLjA1NS0uMTE1bDUuODE1IDQuNjc3YS43NS43NSAwIDAgMSAuMTE0IDEuMDU1bC00LjI4MyA1LjMyNSA1LjMyNSA0LjI4M2EuNzUuNzUgMCAwIDEgLjExNCAxLjA1NGwtNC42NzcgNS44MTVhLjc1Ljc1IDAgMCAxLTEuMDU0LjExNGwtNS4zMjUtNC4yODMtNC4yODMgNS4zMjVhLjc1Ljc1IDAgMCAxLTEuMDU1LjExNGwtNS44MTQtNC42NzZhLjc1Ljc1IDAgMCAxLS4xMTQtMS4wNTVsNC4yODItNS4zMjUtNS4zMjQtNC4yODNhLjc1Ljc1IDAgMCAxLS4xMTQtMS4wNTRsNC42NzYtNS44MTVhLjc1Ljc1IDAgMCAxIC41MDMtLjI3NXptLjE5NSAxLjgtMy43MzYgNC42NDYgNS4zMjQgNC4yODJhLjc1Ljc1IDAgMCAxIC4xMTQgMS4wNTVsLTQuMjgyIDUuMzI1TDY0LjggNjEuOTVsNC4yODQtNS4zMjRhLjc1Ljc1IDAgMCAxIDEuMDU0LS4xMTVsNS4zMjUgNC4yODMgMy43MzYtNC42NDUtNS4zMjUtNC4yODRhLjc1Ljc1IDAgMCAxLS4xMTQtMS4wNTRsNC4yODMtNS4zMjUtNC42NDYtMy43MzctNC4yODIgNS4zMjZhLjc1Ljc1IDAgMCAxLTEuMDU1LjExNGwtNS4zMjUtNC4yODN6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMTExODI3XCIgLz5cbiAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cIm5wcXhhNGN6Z2FcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCIjZmZmXCIgZD1cIk0wIDBoMTUwdjE1MEgwelwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XG4gICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLWltYWdlLWNhcmRfX2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLWltYWdlLWNhcmRfX3RpdGxlXCI+Q291bGRuJ3QgZmluZCBhbnkgcmVjb3JkczwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjbC1pbWFnZS1jYXJkX19jb250ZW50XCI+V2UgY291bGRuJ3QgZmluZCBhbnkgcmVjb3JkcyBmb3IgeW91ciByZXF1ZXN0LjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,53 @@
1
+ import { Directive, HostBinding, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class SclTruncate {
4
+ set lines(value) {
5
+ this._lines = +value;
6
+ }
7
+ get lines() {
8
+ return this._lines;
9
+ }
10
+ constructor(el, renderer) {
11
+ this.el = el;
12
+ this.renderer = renderer;
13
+ this._lines = 1;
14
+ }
15
+ get truncateClass() {
16
+ return `scl-truncate--${this.lines}`;
17
+ }
18
+ ngAfterViewInit() {
19
+ this.updateTooltip();
20
+ }
21
+ updateTooltip() {
22
+ const element = this.el.nativeElement;
23
+ const isTruncated = element.scrollWidth > element.clientWidth || element.scrollHeight > element.clientHeight;
24
+ if (isTruncated) {
25
+ // Set the title attribute to show the tooltip with full content
26
+ this.renderer.setAttribute(element, 'title', element.textContent.trim());
27
+ }
28
+ else {
29
+ // Remove title attribute if no truncation occurs
30
+ this.renderer.removeAttribute(element, 'title');
31
+ }
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTruncate, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: SclTruncate, isStandalone: true, selector: "[sclTruncate]", inputs: { lines: ["sclTruncate", "lines"] }, host: { properties: { "class": "this.truncateClass" }, classAttribute: "scl-truncate" }, ngImport: i0 }); }
35
+ }
36
+ export { SclTruncate };
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTruncate, decorators: [{
38
+ type: Directive,
39
+ args: [{
40
+ selector: '[sclTruncate]',
41
+ host: {
42
+ class: 'scl-truncate',
43
+ },
44
+ standalone: true,
45
+ }]
46
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { lines: [{
47
+ type: Input,
48
+ args: ['sclTruncate']
49
+ }], truncateClass: [{
50
+ type: HostBinding,
51
+ args: ['class']
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2VzL3RydW5jYXRlL3RydW5jYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDOztBQUVwRyxNQU9hLFdBQVc7SUFDcEIsSUFDSSxLQUFLLENBQUMsS0FBc0I7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxZQUNZLEVBQWMsRUFDZCxRQUFtQjtRQURuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUp2QixXQUFNLEdBQVcsQ0FBQyxDQUFDO0lBS3hCLENBQUM7SUFFSixJQUNJLGFBQWE7UUFDYixPQUFPLGlCQUFpQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGFBQWE7UUFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDdEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUU3RyxJQUFJLFdBQVcsRUFBRTtZQUNiLGdFQUFnRTtZQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUM1RTthQUFNO1lBQ0gsaURBQWlEO1lBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNuRDtJQUNMLENBQUM7OEdBbkNRLFdBQVc7a0dBQVgsV0FBVzs7U0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBUHZCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsY0FBYztxQkFDeEI7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3lIQUdPLEtBQUs7c0JBRFIsS0FBSzt1QkFBQyxhQUFhO2dCQWVoQixhQUFhO3NCQURoQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgUmVuZGVyZXIyLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3NjbFRydW5jYXRlXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3NjbC10cnVuY2F0ZScsXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTY2xUcnVuY2F0ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgnc2NsVHJ1bmNhdGUnKVxuICAgIHNldCBsaW5lcyh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xpbmVzID0gK3ZhbHVlO1xuICAgIH1cbiAgICBnZXQgbGluZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xpbmVzO1xuICAgIH1cbiAgICBwcml2YXRlIF9saW5lczogbnVtYmVyID0gMTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgICApIHt9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgdHJ1bmNhdGVDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYHNjbC10cnVuY2F0ZS0tJHt0aGlzLmxpbmVzfWA7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVRvb2x0aXAoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRvb2x0aXAoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGlzVHJ1bmNhdGVkID0gZWxlbWVudC5zY3JvbGxXaWR0aCA+IGVsZW1lbnQuY2xpZW50V2lkdGggfHwgZWxlbWVudC5zY3JvbGxIZWlnaHQgPiBlbGVtZW50LmNsaWVudEhlaWdodDtcblxuICAgICAgICBpZiAoaXNUcnVuY2F0ZWQpIHtcbiAgICAgICAgICAgIC8vIFNldCB0aGUgdGl0bGUgYXR0cmlidXRlIHRvIHNob3cgdGhlIHRvb2x0aXAgd2l0aCBmdWxsIGNvbnRlbnRcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICd0aXRsZScsIGVsZW1lbnQudGV4dENvbnRlbnQudHJpbSgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFJlbW92ZSB0aXRsZSBhdHRyaWJ1dGUgaWYgbm8gdHJ1bmNhdGlvbiBvY2N1cnNcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQsICd0aXRsZScpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19