@pepperi-addons/ngx-lib 0.4.2-beta.32 → 0.4.2-beta.320

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 (410) hide show
  1. package/README.md +35 -0
  2. package/address/address.component.d.ts +9 -2
  3. package/attachment/attachment.component.d.ts +3 -1
  4. package/carousel/carousel.component.d.ts +3 -2
  5. package/checkbox/checkbox.component.d.ts +8 -1
  6. package/chips/chips.component.d.ts +4 -7
  7. package/chips/chips.service.d.ts +0 -3
  8. package/core/common/directives/auto-width.directive.d.ts +6 -2
  9. package/core/common/directives/base-destroyer.directive.d.ts +10 -0
  10. package/core/common/directives/public-api.d.ts +1 -0
  11. package/core/common/pipes/common-pipes.d.ts +5 -2
  12. package/core/common/services/addon.service.d.ts +6 -4
  13. package/core/common/services/file.service.d.ts +7 -2
  14. package/core/common/services/session.service.d.ts +2 -0
  15. package/core/common/services/utilities.service.d.ts +4 -4
  16. package/core/customization/customization.model.d.ts +4 -1
  17. package/core/customization/customization.service.d.ts +4 -0
  18. package/date/date.component.d.ts +4 -2
  19. package/draggable-items/draggable-item/draggable-item.component.d.ts +16 -2
  20. package/draggable-items/draggable-items.component.d.ts +3 -6
  21. package/draggable-items/draggable-items.module.d.ts +4 -3
  22. package/elements/README.md +256 -0
  23. package/esm2020/address/address.component.mjs +93 -5
  24. package/esm2020/assets/i18n/ar.ngx-lib.json +180 -0
  25. package/esm2020/assets/i18n/de.ngx-lib.json +180 -0
  26. package/esm2020/assets/i18n/en.ngx-lib.json +189 -0
  27. package/esm2020/assets/i18n/es.ngx-lib.json +180 -0
  28. package/esm2020/assets/i18n/fr.ngx-lib.json +180 -0
  29. package/esm2020/assets/i18n/he.ngx-lib.json +180 -0
  30. package/esm2020/assets/i18n/hu.ngx-lib.json +79 -0
  31. package/esm2020/assets/i18n/it.ngx-lib.json +180 -0
  32. package/esm2020/assets/i18n/ja.ngx-lib.json +180 -0
  33. package/esm2020/assets/i18n/nl.ngx-lib.json +79 -0
  34. package/esm2020/assets/i18n/pl.ngx-lib.json +180 -0
  35. package/esm2020/assets/i18n/pt.ngx-lib.json +180 -0
  36. package/esm2020/assets/i18n/ru.ngx-lib.json +79 -0
  37. package/esm2020/assets/i18n/sr.ngx-lib.json +180 -0
  38. package/esm2020/assets/i18n/zh.ngx-lib.json +180 -0
  39. package/esm2020/attachment/attachment.component.mjs +16 -6
  40. package/esm2020/carousel/carousel.component.mjs +14 -4
  41. package/esm2020/checkbox/checkbox.component.mjs +37 -3
  42. package/esm2020/chips/chips.component.mjs +11 -16
  43. package/esm2020/chips/chips.service.mjs +2 -11
  44. package/esm2020/color/color-picker.component.mjs +3 -3
  45. package/esm2020/color/color.component.mjs +3 -3
  46. package/esm2020/core/common/directives/auto-width.directive.mjs +29 -9
  47. package/esm2020/core/common/directives/base-destroyer.directive.mjs +22 -0
  48. package/esm2020/core/common/directives/public-api.mjs +2 -1
  49. package/esm2020/core/common/pipes/common-pipes.mjs +18 -8
  50. package/esm2020/core/common/services/addon.service.mjs +31 -7
  51. package/esm2020/core/common/services/data-convertor.service.mjs +3 -3
  52. package/esm2020/core/common/services/file.service.mjs +57 -20
  53. package/esm2020/core/common/services/session.service.mjs +5 -1
  54. package/esm2020/core/common/services/utilities.service.mjs +7 -7
  55. package/esm2020/core/customization/customization.model.mjs +46 -10
  56. package/esm2020/core/customization/customization.service.mjs +29 -1
  57. package/esm2020/core/http/services/http.service.mjs +17 -8
  58. package/esm2020/core/http/services/loader.service.mjs +3 -3
  59. package/esm2020/date/date.component.mjs +35 -13
  60. package/esm2020/dialog/dialog.component.mjs +3 -3
  61. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +44 -4
  62. package/esm2020/draggable-items/draggable-items.component.mjs +7 -15
  63. package/esm2020/draggable-items/draggable-items.module.mjs +5 -1
  64. package/esm2020/field-title/field-title.component.mjs +6 -3
  65. package/esm2020/files-uploader/files-uploader.component.mjs +23 -32
  66. package/esm2020/form/field-generator.component.mjs +3 -3
  67. package/esm2020/form/form.component.mjs +7 -4
  68. package/esm2020/form/internal-button.component.mjs +2 -2
  69. package/esm2020/form/internal-carusel.component.mjs +10 -6
  70. package/esm2020/form/internal-field-generator.component.mjs +3 -3
  71. package/esm2020/form/internal-form.component.mjs +5 -3
  72. package/esm2020/form/internal-list.component.mjs +2 -2
  73. package/esm2020/form/internal-menu.component.mjs +4 -6
  74. package/esm2020/form/internal-page.component.mjs +3 -4
  75. package/esm2020/group-buttons/group-buttons.component.mjs +2 -2
  76. package/esm2020/icon/icon.component.mjs +36 -6
  77. package/esm2020/icon/icon.service.mjs +5 -1
  78. package/esm2020/image/image.component.mjs +15 -3
  79. package/esm2020/image/image.service.mjs +2 -4
  80. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +99 -25
  81. package/esm2020/json-editor/json-editor.component.mjs +288 -0
  82. package/esm2020/json-editor/json-editor.module.mjs +83 -0
  83. package/esm2020/json-editor/json-tree-node.component.mjs +32 -0
  84. package/esm2020/json-editor/pepperi-addons-ngx-lib-json-editor.mjs +5 -0
  85. package/esm2020/json-editor/public-api.mjs +6 -0
  86. package/esm2020/lib/i18n/embedded-i18n.mjs +33 -0
  87. package/esm2020/link/link.component.mjs +25 -4
  88. package/esm2020/list/list-actions.component.mjs +1 -1
  89. package/esm2020/list/list-chooser.component.mjs +1 -1
  90. package/esm2020/list/list-pager.component.mjs +56 -9
  91. package/esm2020/list/list-sorting.component.mjs +1 -1
  92. package/esm2020/list/list-total.component.mjs +6 -3
  93. package/esm2020/list/list-views.component.mjs +1 -1
  94. package/esm2020/list/list.component.mjs +280 -50
  95. package/esm2020/list/list.model.mjs +1 -1
  96. package/esm2020/list/list.module.mjs +5 -1
  97. package/esm2020/list/virtual-scroller.mjs +16 -2
  98. package/esm2020/menu/menu-item.component.mjs +3 -3
  99. package/esm2020/menu/menu.component.mjs +6 -3
  100. package/esm2020/menu/menu.model.mjs +2 -1
  101. package/esm2020/page-layout/page-layout.component.mjs +28 -7
  102. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +1 -1
  103. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +25 -9
  104. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +58 -26
  105. package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +1 -1
  106. package/esm2020/public-api.mjs +2 -1
  107. package/esm2020/quantity-selector/quantity-selector.component.mjs +67 -33
  108. package/esm2020/query-builder/common/model/legacy.mjs +1 -1
  109. package/esm2020/query-builder/common/model/operator.mjs +76 -64
  110. package/esm2020/query-builder/common/services/output-query.service.mjs +5 -3
  111. package/esm2020/query-builder/common/services/query-structure.service.mjs +34 -2
  112. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +14 -12
  113. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +3 -3
  114. package/esm2020/query-builder/query-builder.module.mjs +14 -3
  115. package/esm2020/query-builder/query-builder.service.mjs +4 -3
  116. package/esm2020/remote-loader/addon-block-loader.component.mjs +26 -16
  117. package/esm2020/remote-loader/addon-block-loader.service.mjs +5 -2
  118. package/esm2020/remote-loader/remote-loader-element.component.mjs +148 -27
  119. package/esm2020/remote-loader/remote-loader.component.mjs +1 -4
  120. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  121. package/esm2020/remote-loader/remote-loader.service.mjs +49 -26
  122. package/esm2020/reset-configuration-field/pepperi-addons-ngx-lib-reset-configuration-field.mjs +5 -0
  123. package/esm2020/reset-configuration-field/public-api.mjs +3 -0
  124. package/esm2020/reset-configuration-field/reset-configuration-field.component.mjs +55 -0
  125. package/esm2020/reset-configuration-field/reset-configuration-field.module.mjs +36 -0
  126. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +19 -3
  127. package/esm2020/search/search.component.mjs +43 -16
  128. package/esm2020/select/select.component.mjs +124 -53
  129. package/esm2020/select-panel/select-panel.component.mjs +4 -6
  130. package/esm2020/side-bar/side-bar.component.mjs +18 -4
  131. package/esm2020/signature/signature-dialog.component.mjs +9 -4
  132. package/esm2020/signature/signature.component.mjs +14 -7
  133. package/esm2020/size-detector/size-detector.component.mjs +16 -6
  134. package/esm2020/skeleton-loader/public-api.mjs +2 -2
  135. package/esm2020/skeleton-loader/skeleton-loader.component.mjs +33 -9
  136. package/esm2020/slider/slider.component.mjs +2 -2
  137. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +1 -1
  138. package/esm2020/smart-filters/common/model/base-filter-component.mjs +5 -11
  139. package/esm2020/smart-filters/common/model/operator.mjs +15 -6
  140. package/esm2020/smart-filters/common/model/type.mjs +1 -1
  141. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
  142. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +3 -3
  143. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
  144. package/esm2020/smart-filters/smart-filters.component.mjs +2 -2
  145. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +27 -7
  146. package/esm2020/snack-bar/snack-bar.component.mjs +21 -6
  147. package/esm2020/textarea/textarea.component.mjs +12 -3
  148. package/esm2020/textbox/textbox-validation.directive.mjs +2 -4
  149. package/esm2020/textbox/textbox.component.mjs +85 -10
  150. package/esm2020/textbox-icon/textbox-icon.component.mjs +3 -3
  151. package/esm2020/top-bar/top-bar.component.mjs +26 -15
  152. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +92 -5
  153. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  154. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +15 -5
  155. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  156. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +13 -3
  157. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  158. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +37 -2
  159. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  160. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +11 -25
  161. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  162. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +4 -4
  163. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  164. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +35 -12
  165. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  166. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +2 -2
  167. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  168. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +54 -19
  169. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  170. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  171. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  172. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +22 -31
  173. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  174. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +31 -25
  175. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  176. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +2 -2
  177. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  178. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +40 -5
  179. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  180. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +15 -5
  181. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  182. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +101 -24
  183. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  184. package/fesm2015/pepperi-addons-ngx-lib-json-editor.mjs +407 -0
  185. package/fesm2015/pepperi-addons-ngx-lib-json-editor.mjs.map +1 -0
  186. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +24 -3
  187. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  188. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +367 -66
  189. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  190. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +8 -4
  191. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  192. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +27 -6
  193. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  194. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
  195. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  196. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +66 -31
  197. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  198. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +152 -84
  199. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  200. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +237 -85
  201. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  202. package/fesm2015/pepperi-addons-ngx-lib-reset-configuration-field.mjs +95 -0
  203. package/fesm2015/pepperi-addons-ngx-lib-reset-configuration-field.mjs.map +1 -0
  204. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +18 -2
  205. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  206. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +45 -15
  207. package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  208. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +3 -5
  209. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  210. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +123 -51
  211. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  212. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +17 -3
  213. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  214. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +23 -9
  215. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  216. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +15 -5
  217. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  218. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +33 -9
  219. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  220. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +2 -2
  221. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  222. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +53 -30
  223. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  224. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +20 -5
  225. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  226. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +11 -2
  227. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  228. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +2 -2
  229. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  230. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +87 -12
  231. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  232. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +26 -15
  233. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  234. package/fesm2015/pepperi-addons-ngx-lib.mjs +3441 -574
  235. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  236. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +92 -5
  237. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  238. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +15 -5
  239. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  240. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +13 -3
  241. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  242. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +36 -2
  243. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  244. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +11 -25
  245. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  246. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +4 -4
  247. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  248. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +34 -12
  249. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  250. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +2 -2
  251. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  252. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +54 -19
  253. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  254. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  255. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  256. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +22 -31
  257. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  258. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +31 -25
  259. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  260. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +2 -2
  261. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  262. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +39 -5
  263. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  264. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +15 -5
  265. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  266. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +98 -24
  267. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  268. package/fesm2020/pepperi-addons-ngx-lib-json-editor.mjs +403 -0
  269. package/fesm2020/pepperi-addons-ngx-lib-json-editor.mjs.map +1 -0
  270. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +24 -3
  271. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  272. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +362 -65
  273. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  274. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +8 -4
  275. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  276. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +27 -6
  277. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  278. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
  279. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  280. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +65 -31
  281. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  282. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +141 -82
  283. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  284. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +224 -70
  285. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  286. package/fesm2020/pepperi-addons-ngx-lib-reset-configuration-field.mjs +95 -0
  287. package/fesm2020/pepperi-addons-ngx-lib-reset-configuration-field.mjs.map +1 -0
  288. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +18 -2
  289. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  290. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +42 -15
  291. package/fesm2020/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  292. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +3 -5
  293. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  294. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +122 -51
  295. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  296. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +17 -3
  297. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  298. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +21 -9
  299. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  300. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +15 -5
  301. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  302. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +33 -9
  303. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  304. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +2 -2
  305. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  306. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +53 -30
  307. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  308. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +20 -5
  309. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  310. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +11 -2
  311. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  312. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +2 -2
  313. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  314. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +85 -12
  315. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  316. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +25 -14
  317. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  318. package/fesm2020/pepperi-addons-ngx-lib.mjs +3436 -571
  319. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  320. package/field-title/field-title.component.d.ts +2 -1
  321. package/files-uploader/files-uploader.component.d.ts +4 -2
  322. package/form/internal-carusel.component.d.ts +1 -0
  323. package/form/internal-menu.component.d.ts +1 -2
  324. package/icon/icon.component.d.ts +4 -0
  325. package/image/image.component.d.ts +3 -1
  326. package/images-filmstrip/images-filmstrip.component.d.ts +24 -8
  327. package/json-editor/index.d.ts +5 -0
  328. package/json-editor/json-editor.component.d.ts +75 -0
  329. package/json-editor/json-editor.component.theme.scss +5 -0
  330. package/json-editor/json-editor.module.d.ts +24 -0
  331. package/json-editor/json-tree-node.component.d.ts +18 -0
  332. package/json-editor/public-api.d.ts +2 -0
  333. package/lib/i18n/embedded-i18n.d.ts +1 -0
  334. package/link/link.component.d.ts +7 -2
  335. package/list/list-pager.component.d.ts +16 -6
  336. package/list/list-total.component.d.ts +2 -1
  337. package/list/list.component.d.ts +26 -5
  338. package/list/list.model.d.ts +2 -1
  339. package/list/list.module.d.ts +4 -3
  340. package/menu/menu.component.d.ts +2 -1
  341. package/menu/menu.model.d.ts +1 -0
  342. package/package.json +18 -2
  343. package/page-layout/page-layout.component.d.ts +8 -2
  344. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +3 -3
  345. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +5 -4
  346. package/profile-data-views-list/profile-data-views-list.component.d.ts +13 -10
  347. package/profile-data-views-list/profile-data-views-list.model.d.ts +8 -0
  348. package/public-api.d.ts +1 -0
  349. package/quantity-selector/quantity-selector.component.d.ts +9 -9
  350. package/query-builder/common/model/legacy.d.ts +3 -0
  351. package/query-builder/common/model/operator.d.ts +11 -1
  352. package/query-builder/common/services/query-structure.service.d.ts +1 -0
  353. package/query-builder/query-builder-item/query-builder-item.component.d.ts +3 -1
  354. package/query-builder/query-builder.module.d.ts +7 -3
  355. package/remote-loader/addon-block-loader.component.d.ts +4 -2
  356. package/remote-loader/remote-loader-element.component.d.ts +8 -1
  357. package/remote-loader/remote-loader.model.d.ts +1 -0
  358. package/remote-loader/remote-loader.service.d.ts +3 -1
  359. package/reset-configuration-field/index.d.ts +5 -0
  360. package/reset-configuration-field/public-api.d.ts +2 -0
  361. package/reset-configuration-field/reset-configuration-field.component.d.ts +23 -0
  362. package/reset-configuration-field/reset-configuration-field.module.d.ts +12 -0
  363. package/rich-html-textarea/rich-html-textarea.component.d.ts +4 -1
  364. package/rich-html-textarea/rich-html-textarea.component.theme.scss +4 -2
  365. package/search/search.component.d.ts +9 -3
  366. package/select/select.component.d.ts +18 -2
  367. package/select-panel/select-panel.component.d.ts +1 -2
  368. package/side-bar/side-bar.component.d.ts +4 -1
  369. package/signature/signature-dialog.component.d.ts +2 -1
  370. package/signature/signature.component.d.ts +2 -1
  371. package/size-detector/size-detector.component.d.ts +6 -3
  372. package/skeleton-loader/skeleton-loader.component.d.ts +15 -7
  373. package/slider/slider.component.theme.scss +4 -0
  374. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +3 -0
  375. package/smart-filters/common/model/base-filter-component.d.ts +2 -4
  376. package/smart-filters/common/model/operator.d.ts +3 -0
  377. package/smart-filters/common/model/type.d.ts +1 -1
  378. package/smart-filters/date-filter/date-filter.component.d.ts +3 -0
  379. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +3 -0
  380. package/smart-filters/number-filter/number-filter.component.d.ts +3 -0
  381. package/smart-filters/text-filter/text-filter.component.d.ts +4 -0
  382. package/snack-bar/snack-bar.component.d.ts +9 -4
  383. package/src/assets/i18n/ar.ngx-lib.json +180 -0
  384. package/src/assets/i18n/de.ngx-lib.json +106 -4
  385. package/src/assets/i18n/en.ngx-lib.json +17 -3
  386. package/src/assets/i18n/es.ngx-lib.json +113 -11
  387. package/src/assets/i18n/fr.ngx-lib.json +105 -4
  388. package/src/assets/i18n/he.ngx-lib.json +105 -4
  389. package/src/assets/i18n/it.ngx-lib.json +114 -13
  390. package/src/assets/i18n/ja.ngx-lib.json +105 -4
  391. package/src/assets/i18n/pl.ngx-lib.json +105 -4
  392. package/src/assets/i18n/pt.ngx-lib.json +105 -4
  393. package/src/assets/i18n/sr.ngx-lib.json +180 -0
  394. package/src/assets/i18n/zh.ngx-lib.json +105 -2
  395. package/src/core/style/abstracts/mixins.scss +135 -26
  396. package/src/core/style/abstracts/variables.scss +10 -1
  397. package/src/core/style/base/Spacing.stories.mdx +22 -22
  398. package/src/core/style/base/base.scss +24 -15
  399. package/src/core/style/base/typography.scss +2 -1
  400. package/src/core/style/components/button.scss +11 -0
  401. package/src/core/style/components/checkbox.scss +13 -63
  402. package/src/core/style/components/file.scss +4 -4
  403. package/src/core/style/components/general.scss +27 -9
  404. package/src/core/style/components/textarea.scss +13 -0
  405. package/textarea/textarea.component.d.ts +2 -1
  406. package/textbox/textbox.component.d.ts +10 -3
  407. package/theming.scss +5 -1
  408. package/top-bar/top-bar.component.d.ts +2 -0
  409. package/src/assets/images/sail-away.jpg +0 -0
  410. package/src/core/style/abstracts/AbstractsIntro.stories.mdx +0 -7
@@ -5,10 +5,11 @@ import * as i1 from "@pepperi-addons/ngx-lib";
5
5
  import * as i2 from "@angular/common";
6
6
  import * as i3 from "@angular/flex-layout/extended";
7
7
  export class PepSizeDetectorComponent {
8
- constructor(hostElement, layoutService) {
8
+ constructor(hostElement, layoutService, cdr) {
9
9
  this.hostElement = hostElement;
10
10
  this.layoutService = layoutService;
11
- this.showScreenSize = false;
11
+ this.cdr = cdr;
12
+ this._showScreenSize = false;
12
13
  this._useAsWebComponent = false;
13
14
  this.sizeChange = new EventEmitter();
14
15
  this.prefix = 'is-';
@@ -44,6 +45,13 @@ export class PepSizeDetectorComponent {
44
45
  this.sizeChange.emit(this.currentSize);
45
46
  });
46
47
  }
48
+ set showScreenSize(value) {
49
+ this._showScreenSize = value;
50
+ this.cdr.detectChanges();
51
+ }
52
+ get showScreenSize() {
53
+ return this._showScreenSize;
54
+ }
47
55
  set useAsWebComponent(value) {
48
56
  if (value) {
49
57
  this.exportFunctionsOnHostElement();
@@ -53,7 +61,9 @@ export class PepSizeDetectorComponent {
53
61
  return this._useAsWebComponent;
54
62
  }
55
63
  onResize(event) {
56
- this.detectScreenSize();
64
+ setTimeout(() => {
65
+ this.detectScreenSize();
66
+ }, 0);
57
67
  }
58
68
  ngAfterViewInit() {
59
69
  this.detectScreenSize();
@@ -74,12 +84,12 @@ export class PepSizeDetectorComponent {
74
84
  return this.currentSize;
75
85
  }
76
86
  }
77
- PepSizeDetectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSizeDetectorComponent, deps: [{ token: i0.ElementRef }, { token: i1.PepLayoutService }], target: i0.ɵɵFactoryTarget.Component });
87
+ PepSizeDetectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSizeDetectorComponent, deps: [{ token: i0.ElementRef }, { token: i1.PepLayoutService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
78
88
  PepSizeDetectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepSizeDetectorComponent, selector: "pep-size-detector", inputs: { showScreenSize: "showScreenSize", useAsWebComponent: "useAsWebComponent" }, outputs: { sizeChange: "sizeChange" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<!-- Bootstrap -->\n<!-- <div *ngFor=\"let s of sizes\" class=\"{{s.css + ' ' + (prefix + s.id) }}\">{{s.name}}</div> -->\n\n<!-- Angular flex-layout -->\n<div *ngFor=\"let s of sizes\" fxShow.xs=\"{{s.name == 'xs'}}\" fxShow.sm=\"{{s.name == 'sm'}}\"\n fxShow.md=\"{{s.name == 'md'}}\" fxShow.lg=\"{{s.name == 'lg'}}\" fxShow.xl=\"{{s.name == 'xl'}}\"\n class=\"{{s.css + ' ' + (prefix + s.id) }}\">\n <ng-container *ngIf=\"showScreenSize\"> The current screen size is - {{s.name}}</ng-container>\n</div>", dependencies: [{ 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: i3.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }] });
79
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSizeDetectorComponent, decorators: [{
80
90
  type: Component,
81
91
  args: [{ selector: 'pep-size-detector', template: "<!-- Bootstrap -->\n<!-- <div *ngFor=\"let s of sizes\" class=\"{{s.css + ' ' + (prefix + s.id) }}\">{{s.name}}</div> -->\n\n<!-- Angular flex-layout -->\n<div *ngFor=\"let s of sizes\" fxShow.xs=\"{{s.name == 'xs'}}\" fxShow.sm=\"{{s.name == 'sm'}}\"\n fxShow.md=\"{{s.name == 'md'}}\" fxShow.lg=\"{{s.name == 'lg'}}\" fxShow.xl=\"{{s.name == 'xl'}}\"\n class=\"{{s.css + ' ' + (prefix + s.id) }}\">\n <ng-container *ngIf=\"showScreenSize\"> The current screen size is - {{s.name}}</ng-container>\n</div>" }]
82
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PepLayoutService }]; }, propDecorators: { showScreenSize: [{
92
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PepLayoutService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { showScreenSize: [{
83
93
  type: Input
84
94
  }], useAsWebComponent: [{
85
95
  type: Input
@@ -89,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
89
99
  type: HostListener,
90
100
  args: ['window:resize', ['$event']]
91
101
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS1kZXRlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NpemUtZGV0ZWN0b3Ivc2l6ZS1kZXRlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NpemUtZGV0ZWN0b3Ivc2l6ZS1kZXRlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUdULFlBQVksRUFFWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW9CLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBWTlFLE1BQU0sT0FBTyx3QkFBd0I7SUFnRGpDLFlBQ1ksV0FBdUIsRUFDdkIsYUFBK0I7UUFEL0IsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBakRsQyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV4Qix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFZbkMsZUFBVSxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUUxRixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsVUFBSyxHQUFnQztZQUNqQztnQkFDSSxFQUFFLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsR0FBRyxFQUFFLG1CQUFtQjthQUMzQjtZQUNEO2dCQUNJLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO2dCQUN4QixJQUFJLEVBQUUsSUFBSTtnQkFDVixHQUFHLEVBQUUsNkJBQTZCO2FBQ3JDO1lBQ0Q7Z0JBQ0ksRUFBRSxFQUFFLGlCQUFpQixDQUFDLEVBQUU7Z0JBQ3hCLElBQUksRUFBRSxJQUFJO2dCQUNWLEdBQUcsRUFBRSw2QkFBNkI7YUFDckM7WUFDRDtnQkFDSSxFQUFFLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsR0FBRyxFQUFFLDZCQUE2QjthQUNyQztZQUNEO2dCQUNJLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO2dCQUN4QixJQUFJLEVBQUUsSUFBSTtnQkFDVixHQUFHLEVBQUUsbUJBQW1CO2FBQzNCO1NBQ0osQ0FBQztRQVFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQXVCLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFwREQsSUFDSSxpQkFBaUIsQ0FBQyxLQUFjO1FBQ2hDLElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDbkMsQ0FBQztJQStDRCxRQUFRLENBQUMsS0FBSztRQUNWLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUNuRCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQixDQUFDO1lBQ0YsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQztZQUUxRCxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLDRCQUE0QjtRQUNoQywyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNwRSxJQUFJLENBQ1AsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7O3FIQXpGUSx3QkFBd0I7eUdBQXhCLHdCQUF3QixvUEN0QnJDLDhmQVFNOzJGRGNPLHdCQUF3QjtrQkFKcEMsU0FBUzsrQkFDSSxtQkFBbUI7Z0lBSXBCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBSUYsaUJBQWlCO3NCQURwQixLQUFLO2dCQVdOLFVBQVU7c0JBRFQsTUFBTTtnQkE2Q1AsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGVwTGF5b3V0U2VydmljZSwgUGVwU2NyZWVuU2l6ZVR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5cbmludGVyZmFjZSBJUGVwU2l6ZURldGVjdG9ySXRlbSB7XG4gICAgaWQ6IFBlcFNjcmVlblNpemVUeXBlO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjc3M6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtc2l6ZS1kZXRlY3RvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpemUtZGV0ZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBTaXplRGV0ZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBzaG93U2NyZWVuU2l6ZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBfdXNlQXNXZWJDb21wb25lbnQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCB1c2VBc1dlYkNvbXBvbmVudCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwb3J0RnVuY3Rpb25zT25Ib3N0RWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB1c2VBc1dlYkNvbXBvbmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZUFzV2ViQ29tcG9uZW50O1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIHNpemVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUGVwU2l6ZURldGVjdG9ySXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBTaXplRGV0ZWN0b3JJdGVtPigpO1xuXG4gICAgcHJlZml4ID0gJ2lzLSc7XG4gICAgc2l6ZXM6IEFycmF5PElQZXBTaXplRGV0ZWN0b3JJdGVtPiA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6IFBlcFNjcmVlblNpemVUeXBlLlhTLFxuICAgICAgICAgICAgbmFtZTogJ3hzJyxcbiAgICAgICAgICAgIGNzczogYGQtYmxvY2sgZC1zbS1ub25lYCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6IFBlcFNjcmVlblNpemVUeXBlLlNNLFxuICAgICAgICAgICAgbmFtZTogJ3NtJyxcbiAgICAgICAgICAgIGNzczogYGQtbm9uZSBkLXNtLWJsb2NrIGQtbWQtbm9uZWAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBQZXBTY3JlZW5TaXplVHlwZS5NRCxcbiAgICAgICAgICAgIG5hbWU6ICdtZCcsXG4gICAgICAgICAgICBjc3M6IGBkLW5vbmUgZC1tZC1ibG9jayBkLWxnLW5vbmVgLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpZDogUGVwU2NyZWVuU2l6ZVR5cGUuTEcsXG4gICAgICAgICAgICBuYW1lOiAnbGcnLFxuICAgICAgICAgICAgY3NzOiBgZC1ub25lIGQtbGctYmxvY2sgZC14bC1ub25lYCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6IFBlcFNjcmVlblNpemVUeXBlLlhMLFxuICAgICAgICAgICAgbmFtZTogJ3hsJyxcbiAgICAgICAgICAgIGNzczogYGQtbm9uZSBkLXhsLWJsb2NrYCxcbiAgICAgICAgfSxcbiAgICBdO1xuXG4gICAgcHJpdmF0ZSBjdXJyZW50U2l6ZTogSVBlcFNpemVEZXRlY3Rvckl0ZW07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBQZXBMYXlvdXRTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5vblJlc2l6ZSQuc3Vic2NyaWJlKChzaXplOiBQZXBTY3JlZW5TaXplVHlwZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2l6ZSA9IHRoaXMuc2l6ZXMuZmluZCgocykgPT4gcy5pZCA9PT0gc2l6ZSk7XG4gICAgICAgICAgICB0aGlzLnNpemVDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRTaXplKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXRlY3RTY3JlZW5TaXplKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRldGVjdFNjcmVlblNpemUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRldGVjdFNjcmVlblNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFNpemUgPSB0aGlzLnNpemVzLmZpbmQoKHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgYC4ke3RoaXMucHJlZml4fSR7eC5pZH1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbCkuZGlzcGxheSAhPT0gJ25vbmUnO1xuXG4gICAgICAgICAgICByZXR1cm4gaXNWaXNpYmxlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uub25SZXNpemUodGhpcy5jdXJyZW50U2l6ZS5pZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHBvcnRGdW5jdGlvbnNPbkhvc3RFbGVtZW50KCkge1xuICAgICAgICAvLyBUaGlzIGlzIGZvciB3ZWIgY29tcG9uZW50IHVzYWdlIGZvciB1c2UgdGhvc2UgZnVuY3Rpb25zLlxuICAgICAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Q3VycmVudFNpemUgPSB0aGlzLmdldEN1cnJlbnRTaXplLmJpbmQoXG4gICAgICAgICAgICB0aGlzXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFNpemUoKTogSVBlcFNpemVEZXRlY3Rvckl0ZW0ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2l6ZTtcbiAgICB9XG59XG4iLCI8IS0tIEJvb3RzdHJhcCAtLT5cbjwhLS0gPGRpdiAqbmdGb3I9XCJsZXQgcyBvZiBzaXplc1wiIGNsYXNzPVwie3tzLmNzcyArICcgJyArIChwcmVmaXggKyBzLmlkKSB9fVwiPnt7cy5uYW1lfX08L2Rpdj4gLS0+XG5cbjwhLS0gQW5ndWxhciBmbGV4LWxheW91dCAtLT5cbjxkaXYgKm5nRm9yPVwibGV0IHMgb2Ygc2l6ZXNcIiBmeFNob3cueHM9XCJ7e3MubmFtZSA9PSAneHMnfX1cIiBmeFNob3cuc209XCJ7e3MubmFtZSA9PSAnc20nfX1cIlxuICBmeFNob3cubWQ9XCJ7e3MubmFtZSA9PSAnbWQnfX1cIiBmeFNob3cubGc9XCJ7e3MubmFtZSA9PSAnbGcnfX1cIiBmeFNob3cueGw9XCJ7e3MubmFtZSA9PSAneGwnfX1cIlxuICBjbGFzcz1cInt7cy5jc3MgKyAnICcgKyAocHJlZml4ICsgcy5pZCkgfX1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dTY3JlZW5TaXplXCI+IFRoZSBjdXJyZW50IHNjcmVlbiBzaXplIGlzIC0ge3tzLm5hbWV9fTwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS1kZXRlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NpemUtZGV0ZWN0b3Ivc2l6ZS1kZXRlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NpemUtZGV0ZWN0b3Ivc2l6ZS1kZXRlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUdULFlBQVksRUFFWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FFZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW9CLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBWTlFLE1BQU0sT0FBTyx3QkFBd0I7SUF3RGpDLFlBQ1ksV0FBdUIsRUFDdkIsYUFBK0IsRUFDL0IsR0FBc0I7UUFGdEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBMUQxQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQVV4Qix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFZbkMsZUFBVSxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUUxRixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsVUFBSyxHQUFnQztZQUNqQztnQkFDSSxFQUFFLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsR0FBRyxFQUFFLG1CQUFtQjthQUMzQjtZQUNEO2dCQUNJLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO2dCQUN4QixJQUFJLEVBQUUsSUFBSTtnQkFDVixHQUFHLEVBQUUsNkJBQTZCO2FBQ3JDO1lBQ0Q7Z0JBQ0ksRUFBRSxFQUFFLGlCQUFpQixDQUFDLEVBQUU7Z0JBQ3hCLElBQUksRUFBRSxJQUFJO2dC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ICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQZXBMYXlvdXRTZXJ2aWNlLCBQZXBTY3JlZW5TaXplVHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcblxuaW50ZXJmYWNlIElQZXBTaXplRGV0ZWN0b3JJdGVtIHtcbiAgICBpZDogUGVwU2NyZWVuU2l6ZVR5cGU7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNzczogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1zaXplLWRldGVjdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2l6ZS1kZXRlY3Rvci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcFNpemVEZXRlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgX3Nob3dTY3JlZW5TaXplID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBzZXQgc2hvd1NjcmVlblNpemUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvd1NjcmVlblNpemUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICBnZXQgc2hvd1NjcmVlblNpemUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93U2NyZWVuU2l6ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91c2VBc1dlYkNvbXBvbmVudCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHVzZUFzV2ViQ29tcG9uZW50KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5leHBvcnRGdW5jdGlvbnNPbkhvc3RFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHVzZUFzV2ViQ29tcG9uZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXNlQXNXZWJDb21wb25lbnQ7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgc2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPElQZXBTaXplRGV0ZWN0b3JJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcFNpemVEZXRlY3Rvckl0ZW0+KCk7XG5cbiAgICBwcmVmaXggPSAnaXMtJztcbiAgICBzaXplczogQXJyYXk8SVBlcFNpemVEZXRlY3Rvckl0ZW0+ID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBpZDogUGVwU2NyZWVuU2l6ZVR5cGUuWFMsXG4gICAgICAgICAgICBuYW1lOiAneHMnLFxuICAgICAgICAgICAgY3NzOiBgZC1ibG9jayBkLXNtLW5vbmVgLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpZDogUGVwU2NyZWVuU2l6ZVR5cGUuU00sXG4gICAgICAgICAgICBuYW1lOiAnc20nLFxuICAgICAgICAgICAgY3NzOiBgZC1ub25lIGQtc20tYmxvY2sgZC1tZC1ub25lYCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6IFBlcFNjcmVlblNpemVUeXBlLk1ELFxuICAgICAgICAgICAgbmFtZTogJ21kJyxcbiAgICAgICAgICAgIGNzczogYGQtbm9uZSBkLW1kLWJsb2NrIGQtbGctbm9uZWAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBQZXBTY3JlZW5TaXplVHlwZS5MRyxcbiAgICAgICAgICAgIG5hbWU6ICdsZycsXG4gICAgICAgICAgICBjc3M6IGBkLW5vbmUgZC1sZy1ibG9jayBkLXhsLW5vbmVgLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpZDogUGVwU2NyZWVuU2l6ZVR5cGUuWEwsXG4gICAgICAgICAgICBuYW1lOiAneGwnLFxuICAgICAgICAgICAgY3NzOiBgZC1ub25lIGQteGwtYmxvY2tgLFxuICAgICAgICB9LFxuICAgIF07XG5cbiAgICBwcml2YXRlIGN1cnJlbnRTaXplOiBJUGVwU2l6ZURldGVjdG9ySXRlbTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IFBlcExheW91dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uub25SZXNpemUkLnN1YnNjcmliZSgoc2l6ZTogUGVwU2NyZWVuU2l6ZVR5cGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNpemUgPSB0aGlzLnNpemVzLmZpbmQoKHMpID0+IHMuaWQgPT09IHNpemUpO1xuICAgICAgICAgICAgdGhpcy5zaXplQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50U2l6ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAgIG9uUmVzaXplKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXRlY3RTY3JlZW5TaXplKCk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXRlY3RTY3JlZW5TaXplKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXRlY3RTY3JlZW5TaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRTaXplID0gdGhpcy5zaXplcy5maW5kKCh4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgIGAuJHt0aGlzLnByZWZpeH0ke3guaWR9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IGdldENvbXB1dGVkU3R5bGUoZWwpLmRpc3BsYXkgIT09ICdub25lJztcblxuICAgICAgICAgICAgcmV0dXJuIGlzVmlzaWJsZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLm9uUmVzaXplKHRoaXMuY3VycmVudFNpemUuaWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXhwb3J0RnVuY3Rpb25zT25Ib3N0RWxlbWVudCgpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBmb3Igd2ViIGNvbXBvbmVudCB1c2FnZSBmb3IgdXNlIHRob3NlIGZ1bmN0aW9ucy5cbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEN1cnJlbnRTaXplID0gdGhpcy5nZXRDdXJyZW50U2l6ZS5iaW5kKFxuICAgICAgICAgICAgdGhpc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRTaXplKCk6IElQZXBTaXplRGV0ZWN0b3JJdGVtIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNpemU7XG4gICAgfVxufVxuIiwiPCEtLSBCb290c3RyYXAgLS0+XG48IS0tIDxkaXYgKm5nRm9yPVwibGV0IHMgb2Ygc2l6ZXNcIiBjbGFzcz1cInt7cy5jc3MgKyAnICcgKyAocHJlZml4ICsgcy5pZCkgfX1cIj57e3MubmFtZX19PC9kaXY+IC0tPlxuXG48IS0tIEFuZ3VsYXIgZmxleC1sYXlvdXQgLS0+XG48ZGl2ICpuZ0Zvcj1cImxldCBzIG9mIHNpemVzXCIgZnhTaG93LnhzPVwie3tzLm5hbWUgPT0gJ3hzJ319XCIgZnhTaG93LnNtPVwie3tzLm5hbWUgPT0gJ3NtJ319XCJcbiAgZnhTaG93Lm1kPVwie3tzLm5hbWUgPT0gJ21kJ319XCIgZnhTaG93LmxnPVwie3tzLm5hbWUgPT0gJ2xnJ319XCIgZnhTaG93LnhsPVwie3tzLm5hbWUgPT0gJ3hsJ319XCJcbiAgY2xhc3M9XCJ7e3MuY3NzICsgJyAnICsgKHByZWZpeCArIHMuaWQpIH19XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93U2NyZWVuU2l6ZVwiPiBUaGUgY3VycmVudCBzY3JlZW4gc2l6ZSBpcyAtIHt7cy5uYW1lfX08L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
@@ -1,6 +1,6 @@
1
1
  /*
2
- * Public API Surface of ngx-lib/group-buttons
2
+ * Public API Surface of ngx-lib/skeleton-loader
3
3
  */
4
4
  export * from './skeleton-loader.module';
5
5
  export * from './skeleton-loader.component';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc2tlbGV0b24tbG9hZGVyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1saWIvZ3JvdXAtYnV0dG9uc1xuICovXG5leHBvcnQgKiBmcm9tICcuL3NrZWxldG9uLWxvYWRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50JztcbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc2tlbGV0b24tbG9hZGVyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1saWIvc2tlbGV0b24tbG9hZGVyXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vc2tlbGV0b24tbG9hZGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NrZWxldG9uLWxvYWRlci5jb21wb25lbnQnO1xuIl19
@@ -4,12 +4,13 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/material/dialog";
5
5
  import * as i2 from "@angular/common";
6
6
  export class PepSkeletonLoaderComponent {
7
- constructor(dialogRef, data) {
7
+ constructor(dialogRef, data, cdr) {
8
8
  this.dialogRef = dialogRef;
9
9
  this.data = data;
10
- this.rowHeightType = 'md'; // Each row heigth
11
- this.rowsNumber = 3; // number of rows
12
- this.lastRowOffset = true; // If the last row is with offset or not
10
+ this.cdr = cdr;
11
+ this._rowHeightType = 'md';
12
+ this._rowsNumber = 3;
13
+ this._lastRowOffset = true;
13
14
  if (dialogRef && data) {
14
15
  this.rowsNumber = data.rowsNumber || 3;
15
16
  this.rowHeightType = data.rowHeightType || 'md';
@@ -17,16 +18,39 @@ export class PepSkeletonLoaderComponent {
17
18
  }
18
19
  // num of rectangles - User defined, default → 3, Minimum → 2
19
20
  this.rowsNumber = this.rowsNumber >= 2 ? this.rowsNumber : 2;
21
+ // Trigger initial render
22
+ setTimeout(() => this.cdr.detectChanges(), 0);
23
+ }
24
+ set rowHeightType(value) {
25
+ this._rowHeightType = value;
26
+ setTimeout(() => this.cdr.detectChanges(), 0);
27
+ }
28
+ get rowHeightType() {
29
+ return this._rowHeightType;
30
+ }
31
+ set rowsNumber(value) {
32
+ this._rowsNumber = value >= 2 ? value : 2;
33
+ setTimeout(() => this.cdr.detectChanges(), 0);
34
+ }
35
+ get rowsNumber() {
36
+ return this._rowsNumber;
37
+ }
38
+ set lastRowOffset(value) {
39
+ this._lastRowOffset = value;
40
+ setTimeout(() => this.cdr.detectChanges(), 0);
41
+ }
42
+ get lastRowOffset() {
43
+ return this._lastRowOffset;
20
44
  }
21
45
  counter(i) {
22
46
  return new Array(i);
23
47
  }
24
48
  }
25
- PepSkeletonLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSkeletonLoaderComponent, deps: [{ token: i1.MatDialogRef, optional: true }, { token: MAT_DIALOG_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
26
- PepSkeletonLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepSkeletonLoaderComponent, selector: "pep-skeleton-loader", inputs: { rowHeightType: "rowHeightType", rowsNumber: "rowsNumber", lastRowOffset: "lastRowOffset" }, ngImport: i0, template: "<div class=\"skeleton-loader\">\n <div *ngFor='let in of counter(rowsNumber) ;let last = last' class=\"row\" [ngClass]=\"[\n lastRowOffset === true && last == true ? 'last-row-offset' : '', 'height-' + rowHeightType ]\">\n </div>\n</div>", styles: [".skeleton-loader{display:flex;flex-direction:column;gap:var(--pep-spacing-lg, 1rem)}.skeleton-loader .row{height:var(--pep-spacing-xl, 1.5rem);background-color:#f0f0f0;border-radius:var(--pep-border-radius-md, .25rem);background:linear-gradient(.25turn,rgb(240,240,240) 0%,rgb(250,250,250) 25%,rgb(240,240,240) 50%);background-size:200% 200%;transition:.5s;animation:2s infinite ease-in-out slidein}.skeleton-loader .row.last-row-offset{width:75%}.skeleton-loader .row.height-xs{height:var(--pep-spacing-md, .75rem)}.skeleton-loader .row.height-sm{height:var(--pep-spacing-lg, 1rem)}.skeleton-loader .row.height-md{height:var(--pep-spacing-xl, 1.5rem)}.skeleton-loader .row.height-lg{height:var(--pep-spacing-2xl, 2rem)}.skeleton-loader .row.height-xl{height:var(--pep-spacing-4xl, 3rem)}@keyframes slidein{0%{background-position:100%}50%{background-position:-100%}to{background-position:-100%}}\n", ".group-buttons-container .toggle-buttons .is-selected.weak{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),98%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),calc(var(--pep-color-regular-l, 10%) + 30%))}.group-buttons-container .toggle-buttons .is-selected.weak:hover{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),98%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),calc(var(--pep-color-regular-l, 10%) + 20%))}.group-buttons-container .toggle-buttons .is-selected.weak:focus{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%));box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.group-buttons-container .toggle-buttons .is-selected.weak:active{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.32);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)!important;background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%)!important;box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.04)!important;border:1px solid hsla(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%),.08)}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled):after{border:unset}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled) .svg-icon{fill:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.regular{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.group-buttons-container .toggle-buttons .is-selected.regular:hover{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.16)}.group-buttons-container .toggle-buttons .is-selected.regular:focus{box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);position:relative;box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.group-buttons-container .toggle-buttons .is-selected.regular:focus:not(.keep-background-on-focus){background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.group-buttons-container .toggle-buttons .is-selected.regular:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;inset:0;border-radius:inherit;border:1px solid hsl(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.regular:active{box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);position:relative}.group-buttons-container .toggle-buttons .is-selected.regular:active:not(.keep-background-on-focus){background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.group-buttons-container .toggle-buttons .is-selected.regular:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;inset:0;border-radius:inherit;border:1px solid hsl(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)!important;background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.04)!important}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled):after{border:unset}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled) .svg-icon{fill:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
49
+ PepSkeletonLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSkeletonLoaderComponent, deps: [{ token: i1.MatDialogRef, optional: true }, { token: MAT_DIALOG_DATA, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
50
+ PepSkeletonLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepSkeletonLoaderComponent, selector: "pep-skeleton-loader", inputs: { rowHeightType: "rowHeightType", rowsNumber: "rowsNumber", lastRowOffset: "lastRowOffset" }, ngImport: i0, template: "<div class=\"skeleton-loader\">\n <div *ngFor='let in of counter(rowsNumber) ;let last = last' class=\"skeleton-row\" [ngClass]=\"[\n lastRowOffset === true && last == true ? 'last-row-offset' : '', 'height-' + rowHeightType ]\">\n </div>\n</div>", styles: [":host{display:block;height:inherit}.skeleton-loader{display:flex;height:inherit;flex-direction:column;gap:var(--pep-spacing-lg, 1rem)}.skeleton-loader .skeleton-row{height:var(--pep-spacing-xl, 1.5rem);background-color:#f0f0f0;border-radius:var(--pep-border-radius-md, .25rem);background:linear-gradient(.25turn,rgb(240,240,240) 0%,rgb(250,250,250) 25%,rgb(240,240,240) 50%);background-size:200% 200%;transition:.5s;animation:2s infinite ease-in-out slidein}.skeleton-loader .skeleton-row.last-row-offset{width:75%}.skeleton-loader .skeleton-row.height-xs{height:var(--pep-spacing-md, .75rem)}.skeleton-loader .skeleton-row.height-sm{height:var(--pep-spacing-lg, 1rem)}.skeleton-loader .skeleton-row.height-md{height:var(--pep-spacing-xl, 1.5rem)}.skeleton-loader .skeleton-row.height-lg{height:var(--pep-spacing-2xl, 2rem)}.skeleton-loader .skeleton-row.height-xl{height:var(--pep-spacing-4xl, 3rem)}.skeleton-loader .skeleton-row.height-max{height:100%}@keyframes slidein{0%{background-position:100%}50%{background-position:-100%}to{background-position:-100%}}\n", ".group-buttons-container .toggle-buttons .is-selected.weak{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),98%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),calc(var(--pep-color-regular-l, 10%) + 30%))}.group-buttons-container .toggle-buttons .is-selected.weak:hover{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),98%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),calc(var(--pep-color-regular-l, 10%) + 20%))}.group-buttons-container .toggle-buttons .is-selected.weak:focus{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%));box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.group-buttons-container .toggle-buttons .is-selected.weak:active{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.32);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.04)!important;border:1px solid hsla(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%),.08)}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled):after{border:unset}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled) .svg-icon{fill:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled):not(.disabled-no-background-no-color){color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)!important;background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%)!important}.group-buttons-container .toggle-buttons .is-selected.regular{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.08)}.group-buttons-container .toggle-buttons .is-selected.regular:hover{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.16)}.group-buttons-container .toggle-buttons .is-selected.regular:focus{box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);position:relative;box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.group-buttons-container .toggle-buttons .is-selected.regular:focus:not(.keep-background-on-focus){background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.group-buttons-container .toggle-buttons .is-selected.regular:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;inset:0;border-radius:inherit;border:1px solid hsl(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.regular:active{box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);position:relative}.group-buttons-container .toggle-buttons .is-selected.regular:active:not(.keep-background-on-focus){background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.group-buttons-container .toggle-buttons .is-selected.regular:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;inset:0;border-radius:inherit;border:1px solid hsl(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled){box-shadow:unset;border:unset}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled):after{border:unset}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled) .svg-icon{fill:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled):not(.disabled-no-background-no-color){color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)!important;background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.04)!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
27
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSkeletonLoaderComponent, decorators: [{
28
52
  type: Component,
29
- args: [{ selector: 'pep-skeleton-loader', template: "<div class=\"skeleton-loader\">\n <div *ngFor='let in of counter(rowsNumber) ;let last = last' class=\"row\" [ngClass]=\"[\n lastRowOffset === true && last == true ? 'last-row-offset' : '', 'height-' + rowHeightType ]\">\n </div>\n</div>", styles: [".skeleton-loader{display:flex;flex-direction:column;gap:var(--pep-spacing-lg, 1rem)}.skeleton-loader .row{height:var(--pep-spacing-xl, 1.5rem);background-color:#f0f0f0;border-radius:var(--pep-border-radius-md, .25rem);background:linear-gradient(.25turn,rgb(240,240,240) 0%,rgb(250,250,250) 25%,rgb(240,240,240) 50%);background-size:200% 200%;transition:.5s;animation:2s infinite ease-in-out slidein}.skeleton-loader .row.last-row-offset{width:75%}.skeleton-loader .row.height-xs{height:var(--pep-spacing-md, .75rem)}.skeleton-loader .row.height-sm{height:var(--pep-spacing-lg, 1rem)}.skeleton-loader .row.height-md{height:var(--pep-spacing-xl, 1.5rem)}.skeleton-loader .row.height-lg{height:var(--pep-spacing-2xl, 2rem)}.skeleton-loader .row.height-xl{height:var(--pep-spacing-4xl, 3rem)}@keyframes slidein{0%{background-position:100%}50%{background-position:-100%}to{background-position:-100%}}\n", ".group-buttons-container .toggle-buttons .is-selected.weak{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),98%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),calc(var(--pep-color-regular-l, 10%) + 30%))}.group-buttons-container .toggle-buttons .is-selected.weak:hover{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),98%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),calc(var(--pep-color-regular-l, 10%) + 20%))}.group-buttons-container .toggle-buttons .is-selected.weak:focus{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%));box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.group-buttons-container .toggle-buttons .is-selected.weak:active{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.32);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)!important;background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%)!important;box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.04)!important;border:1px solid hsla(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%),.08)}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled):after{border:unset}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled) .svg-icon{fill:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.regular{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.group-buttons-container .toggle-buttons .is-selected.regular:hover{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.16)}.group-buttons-container .toggle-buttons .is-selected.regular:focus{box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);position:relative;box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.group-buttons-container .toggle-buttons .is-selected.regular:focus:not(.keep-background-on-focus){background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.group-buttons-container .toggle-buttons .is-selected.regular:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;inset:0;border-radius:inherit;border:1px solid hsl(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.regular:active{box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);position:relative}.group-buttons-container .toggle-buttons .is-selected.regular:active:not(.keep-background-on-focus){background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.group-buttons-container .toggle-buttons .is-selected.regular:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;inset:0;border-radius:inherit;border:1px solid hsl(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)!important;background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.04)!important}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled):after{border:unset}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled) .svg-icon{fill:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}\n"] }]
53
+ args: [{ selector: 'pep-skeleton-loader', template: "<div class=\"skeleton-loader\">\n <div *ngFor='let in of counter(rowsNumber) ;let last = last' class=\"skeleton-row\" [ngClass]=\"[\n lastRowOffset === true && last == true ? 'last-row-offset' : '', 'height-' + rowHeightType ]\">\n </div>\n</div>", styles: [":host{display:block;height:inherit}.skeleton-loader{display:flex;height:inherit;flex-direction:column;gap:var(--pep-spacing-lg, 1rem)}.skeleton-loader .skeleton-row{height:var(--pep-spacing-xl, 1.5rem);background-color:#f0f0f0;border-radius:var(--pep-border-radius-md, .25rem);background:linear-gradient(.25turn,rgb(240,240,240) 0%,rgb(250,250,250) 25%,rgb(240,240,240) 50%);background-size:200% 200%;transition:.5s;animation:2s infinite ease-in-out slidein}.skeleton-loader .skeleton-row.last-row-offset{width:75%}.skeleton-loader .skeleton-row.height-xs{height:var(--pep-spacing-md, .75rem)}.skeleton-loader .skeleton-row.height-sm{height:var(--pep-spacing-lg, 1rem)}.skeleton-loader .skeleton-row.height-md{height:var(--pep-spacing-xl, 1.5rem)}.skeleton-loader .skeleton-row.height-lg{height:var(--pep-spacing-2xl, 2rem)}.skeleton-loader .skeleton-row.height-xl{height:var(--pep-spacing-4xl, 3rem)}.skeleton-loader .skeleton-row.height-max{height:100%}@keyframes slidein{0%{background-position:100%}50%{background-position:-100%}to{background-position:-100%}}\n", ".group-buttons-container .toggle-buttons .is-selected.weak{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),98%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),calc(var(--pep-color-regular-l, 10%) + 30%))}.group-buttons-container .toggle-buttons .is-selected.weak:hover{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),98%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),calc(var(--pep-color-regular-l, 10%) + 20%))}.group-buttons-container .toggle-buttons .is-selected.weak:focus{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%));box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.group-buttons-container .toggle-buttons .is-selected.weak:active{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.32);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.04)!important;border:1px solid hsla(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),var(--pep-color-regular-l, 10%),.08)}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled):after{border:unset}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled) .svg-icon{fill:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.weak:disabled:not(.ignore-disabled):not(.disabled-no-background-no-color){color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)!important;background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),88%)!important}.group-buttons-container .toggle-buttons .is-selected.regular{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.08)}.group-buttons-container .toggle-buttons .is-selected.regular:hover{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.16)}.group-buttons-container .toggle-buttons .is-selected.regular:focus{box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);position:relative;box-shadow:0 0 0 var(--pep-spacing-xs, .25rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}.group-buttons-container .toggle-buttons .is-selected.regular:focus:not(.keep-background-on-focus){background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.group-buttons-container .toggle-buttons .is-selected.regular:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;inset:0;border-radius:inherit;border:1px solid hsl(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.regular:active{box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);position:relative}.group-buttons-container .toggle-buttons .is-selected.regular:active:not(.keep-background-on-focus){background:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%))}.group-buttons-container .toggle-buttons .is-selected.regular:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;inset:0;border-radius:inherit;border:1px solid hsl(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%))}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled){box-shadow:unset;border:unset}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled):after{border:unset}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled) .svg-icon{fill:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)}.group-buttons-container .toggle-buttons .is-selected.regular:disabled:not(.ignore-disabled):not(.disabled-no-background-no-color){color:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.35)!important;background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.04)!important}\n"] }]
30
54
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef, decorators: [{
31
55
  type: Optional
32
56
  }] }, { type: undefined, decorators: [{
@@ -34,11 +58,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
34
58
  }, {
35
59
  type: Inject,
36
60
  args: [MAT_DIALOG_DATA]
37
- }] }]; }, propDecorators: { rowHeightType: [{
61
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { rowHeightType: [{
38
62
  type: Input
39
63
  }], rowsNumber: [{
40
64
  type: Input
41
65
  }], lastRowOffset: [{
42
66
  type: Input
43
67
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc2tlbGV0b24tbG9hZGVyL3NrZWxldG9uLWxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NrZWxldG9uLWxvYWRlci9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7O0FBY3pFLE1BQU0sT0FBTywwQkFBMEI7SUFLbkMsWUFDWSxTQUFtRCxFQUduRCxJQUFrQztRQUhsQyxjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUduRCxTQUFJLEdBQUosSUFBSSxDQUE4QjtRQVJyQyxrQkFBYSxHQUFnQixJQUFJLENBQUMsQ0FBQyxrQkFBa0I7UUFDckQsZUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtRQUNqQyxrQkFBYSxHQUFHLElBQUksQ0FBQyxDQUFDLHdDQUF3QztRQVFuRSxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO1lBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7U0FDbkQ7UUFFRCw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBUztRQUNiLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7dUhBdkJRLDBCQUEwQiw4REFRdkIsZUFBZTsyR0FSbEIsMEJBQTBCLGlLQ2Z2Qyx3UEFJTTsyRkRXTywwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0kscUJBQXFCOzswQkFTbEIsUUFBUTs7MEJBRWhCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZTs0Q0FQbEIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsSW5qZWN0LElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgUGVwU2l6ZVR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5cbmludGVyZmFjZSBJUGVwU2tlbGV0b25Mb2FkZXJEaWFsb2dEYXRhIHtcbiAgICByb3dIZWlnaHRUeXBlOiBQZXBTaXplVHlwZTtcbiAgICByb3dzTnVtYmVyOiBudW1iZXI7XG4gICAgbGFzdFJvd09mZnNldDogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtc2tlbGV0b24tbG9hZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50LnNjc3MnLCAnLi9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50LnRoZW1lLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwU2tlbGV0b25Mb2FkZXJDb21wb25lbnR7XG4gICAgQElucHV0KCkgcm93SGVpZ2h0VHlwZTogUGVwU2l6ZVR5cGUgPSAnbWQnOyAvLyBFYWNoIHJvdyBoZWlndGhcbiAgICBASW5wdXQoKSByb3dzTnVtYmVyID0gMzsgLy8gbnVtYmVyIG9mIHJvd3NcbiAgICBASW5wdXQoKSBsYXN0Um93T2Zmc2V0ID0gdHJ1ZTsgLy8gSWYgdGhlIGxhc3Qgcm93IGlzIHdpdGggb2Zmc2V0IG9yIG5vdFxuICAgIFxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpXG4gICAgICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UGVwU2tlbGV0b25Mb2FkZXJDb21wb25lbnQ+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcbiAgICAgICAgcHJpdmF0ZSBkYXRhOiBJUGVwU2tlbGV0b25Mb2FkZXJEaWFsb2dEYXRhKSB7XG5cbiAgICAgICAgaWYgKGRpYWxvZ1JlZiAmJiBkYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnJvd3NOdW1iZXIgPSBkYXRhLnJvd3NOdW1iZXIgfHwgMztcbiAgICAgICAgICAgIHRoaXMucm93SGVpZ2h0VHlwZSA9IGRhdGEucm93SGVpZ2h0VHlwZSB8fCAnbWQnO1xuICAgICAgICAgICAgdGhpcy5sYXN0Um93T2Zmc2V0ID0gZGF0YS5sYXN0Um93T2Zmc2V0IHx8IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBudW0gb2YgcmVjdGFuZ2xlcyAtIFVzZXIgZGVmaW5lZCwgZGVmYXVsdCDihpIgMywgTWluaW11bSDihpIgMlxuICAgICAgICB0aGlzLnJvd3NOdW1iZXIgPSB0aGlzLnJvd3NOdW1iZXIgPj0gMiA/IHRoaXMucm93c051bWJlciA6IDI7XG4gICAgfVxuXG4gICAgY291bnRlcihpOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheShpKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2tlbGV0b24tbG9hZGVyXCI+XG4gICAgPGRpdiAqbmdGb3I9J2xldCBpbiBvZiBjb3VudGVyKHJvd3NOdW1iZXIpIDtsZXQgbGFzdCA9IGxhc3QnIGNsYXNzPVwicm93XCIgW25nQ2xhc3NdPVwiW1xuICAgIGxhc3RSb3dPZmZzZXQgPT09IHRydWUgJiYgbGFzdCA9PSB0cnVlID8gJ2xhc3Qtcm93LW9mZnNldCcgOiAnJywgJ2hlaWdodC0nICsgcm93SGVpZ2h0VHlwZSBdXCI+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc2tlbGV0b24tbG9hZGVyL3NrZWxldG9uLWxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NrZWxldG9uLWxvYWRlci9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQWdCekUsTUFBTSxPQUFPLDBCQUEwQjtJQStCbkMsWUFDWSxTQUFtRCxFQUduRCxJQUFrQyxFQUNsQyxHQUFzQjtRQUp0QixjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUduRCxTQUFJLEdBQUosSUFBSSxDQUE4QjtRQUNsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQW5DMUIsbUJBQWMsR0FBd0IsSUFBSSxDQUFDO1FBVTNDLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBVWhCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBaUIxQixJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO1lBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7U0FDbkQ7UUFFRCw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdELHlCQUF5QjtRQUN6QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBL0NELElBQ0ksYUFBYSxDQUFDLEtBQTBCO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUdELElBQ0ksVUFBVSxDQUFDLEtBQWE7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFHRCxJQUNJLGFBQWEsQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQXNCRCxPQUFPLENBQUMsQ0FBUztRQUNiLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7dUhBckRRLDBCQUEwQiw4REFrQ3ZCLGVBQWU7MkdBbENsQiwwQkFBMEIsaUtDakJ2QyxpUUFJTTsyRkRhTywwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0kscUJBQXFCOzswQkFtQ2xCLFFBQVE7OzBCQUVoQixRQUFROzswQkFDUixNQUFNOzJCQUFDLGVBQWU7NEVBL0J2QixhQUFhO3NCQURoQixLQUFLO2dCQVdGLFVBQVU7c0JBRGIsS0FBSztnQkFXRixhQUFhO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LEluamVjdCxJbnB1dCwgT3B0aW9uYWwsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmV4cG9ydCB0eXBlIFBlcFNrZWxldG9uU2l6ZVR5cGUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8ICdtYXgnO1xuXG5cbmludGVyZmFjZSBJUGVwU2tlbGV0b25Mb2FkZXJEaWFsb2dEYXRhIHtcbiAgICByb3dIZWlnaHRUeXBlOiBQZXBTa2VsZXRvblNpemVUeXBlO1xuICAgIHJvd3NOdW1iZXI6IG51bWJlcjtcbiAgICBsYXN0Um93T2Zmc2V0OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1za2VsZXRvbi1sb2FkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NrZWxldG9uLWxvYWRlci5jb21wb25lbnQuc2NzcycsICcuL3NrZWxldG9uLWxvYWRlci5jb21wb25lbnQudGhlbWUuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBTa2VsZXRvbkxvYWRlckNvbXBvbmVudHtcbiAgICBwcml2YXRlIF9yb3dIZWlnaHRUeXBlOiBQZXBTa2VsZXRvblNpemVUeXBlID0gJ21kJztcbiAgICBASW5wdXQoKVxuICAgIHNldCByb3dIZWlnaHRUeXBlKHZhbHVlOiBQZXBTa2VsZXRvblNpemVUeXBlKSB7XG4gICAgICAgIHRoaXMuX3Jvd0hlaWdodFR5cGUgPSB2YWx1ZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCksIDApO1xuICAgIH1cbiAgICBnZXQgcm93SGVpZ2h0VHlwZSgpOiBQZXBTa2VsZXRvblNpemVUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd0hlaWdodFR5cGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcm93c051bWJlciA9IDM7XG4gICAgQElucHV0KClcbiAgICBzZXQgcm93c051bWJlcih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3Jvd3NOdW1iZXIgPSB2YWx1ZSA+PSAyID8gdmFsdWUgOiAyO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSwgMCk7XG4gICAgfVxuICAgIGdldCByb3dzTnVtYmVyKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dzTnVtYmVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2xhc3RSb3dPZmZzZXQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxhc3RSb3dPZmZzZXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fbGFzdFJvd09mZnNldCA9IHZhbHVlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSwgMCk7XG4gICAgfVxuICAgIGdldCBsYXN0Um93T2Zmc2V0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFzdFJvd09mZnNldDtcbiAgICB9XG4gICAgXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKClcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQZXBTa2VsZXRvbkxvYWRlckNvbXBvbmVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgICAgICBwcml2YXRlIGRhdGE6IElQZXBTa2VsZXRvbkxvYWRlckRpYWxvZ0RhdGEsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuXG4gICAgICAgIGlmIChkaWFsb2dSZWYgJiYgZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5yb3dzTnVtYmVyID0gZGF0YS5yb3dzTnVtYmVyIHx8IDM7XG4gICAgICAgICAgICB0aGlzLnJvd0hlaWdodFR5cGUgPSBkYXRhLnJvd0hlaWdodFR5cGUgfHwgJ21kJztcbiAgICAgICAgICAgIHRoaXMubGFzdFJvd09mZnNldCA9IGRhdGEubGFzdFJvd09mZnNldCB8fCB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbnVtIG9mIHJlY3RhbmdsZXMgLSBVc2VyIGRlZmluZWQsIGRlZmF1bHQg4oaSIDMsIE1pbmltdW0g4oaSIDJcbiAgICAgICAgdGhpcy5yb3dzTnVtYmVyID0gdGhpcy5yb3dzTnVtYmVyID49IDIgPyB0aGlzLnJvd3NOdW1iZXIgOiAyO1xuICAgICAgICBcbiAgICAgICAgLy8gVHJpZ2dlciBpbml0aWFsIHJlbmRlclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSwgMCk7XG4gICAgfVxuXG4gICAgY291bnRlcihpOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheShpKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2tlbGV0b24tbG9hZGVyXCI+XG4gICAgPGRpdiAqbmdGb3I9J2xldCBpbiBvZiBjb3VudGVyKHJvd3NOdW1iZXIpIDtsZXQgbGFzdCA9IGxhc3QnIGNsYXNzPVwic2tlbGV0b24tcm93XCIgW25nQ2xhc3NdPVwiW1xuICAgIGxhc3RSb3dPZmZzZXQgPT09IHRydWUgJiYgbGFzdCA9PSB0cnVlID8gJ2xhc3Qtcm93LW9mZnNldCcgOiAnJywgJ2hlaWdodC0nICsgcm93SGVpZ2h0VHlwZSBdXCI+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -73,10 +73,10 @@ export class PepSliderComponent {
73
73
  }
74
74
  }
75
75
  PepSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSliderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.PepLayoutService }], target: i0.ɵɵFactoryTarget.Component });
76
- PepSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepSliderComponent, selector: "pep-slider", inputs: { label: "label", disabled: "disabled", hint: "hint", background: "background", step: "step", minValue: "minValue", maxValue: "maxValue", value: "value" }, outputs: { valueChange: "valueChange", inputChange: "inputChange" }, ngImport: i0, template: "<div class=\"pep-slider-container\">\n <pep-field-title [label]=\"label\" [disabled]=\"disabled\" [hint]=\"hint\" [xAlignment]=\"xAlignment\">\n </pep-field-title>\n <mat-slider [min]=\"minValue\" [max]=\"maxValue\" [step]=\"step\" [value]=\"value\" [disabled]=\"disabled\" [title]=\"value\"\n (change)=\"onValueChange($event)\" (input)=\"onInputChange($event)\">\n </mat-slider>\n</div>", styles: ["", ".pep-slider-container ::ng-deep .mat-slider{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.12)}.pep-slider-container ::ng-deep .mat-slider.mat-slider-horizontal{height:1rem;width:100%;padding:.5rem .25rem;border-radius:var(--pep-border-radius-lg, .5rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper{height:.375rem;position:relative;top:-.1875rem;left:unset;right:unset;border-radius:var(--pep-border-radius-md, .25rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-track-wrapper{display:none}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container{width:94%;left:3%}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb{width:18px;height:18px;right:-9px;bottom:-9px;transform:scale(.7)!important;border-color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));border-width:5px;background-color:transparent!important;box-shadow:0 0 0 var(--pep-spacing-2xs, .125rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}\n"], dependencies: [{ kind: "component", type: i2.MatSlider, selector: "mat-slider", inputs: ["disabled", "color", "tabIndex", "invert", "max", "min", "step", "thumbLabel", "tickInterval", "value", "displayWith", "valueText", "vertical"], outputs: ["change", "input", "valueChange"], exportAs: ["matSlider"] }, { kind: "component", type: i3.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength", "fontBodyType"] }] });
76
+ PepSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepSliderComponent, selector: "pep-slider", inputs: { label: "label", disabled: "disabled", hint: "hint", background: "background", step: "step", minValue: "minValue", maxValue: "maxValue", value: "value" }, outputs: { valueChange: "valueChange", inputChange: "inputChange" }, ngImport: i0, template: "<div class=\"pep-slider-container\">\n <pep-field-title [label]=\"label\" [disabled]=\"disabled\" [hint]=\"hint\" [xAlignment]=\"xAlignment\">\n </pep-field-title>\n <mat-slider [min]=\"minValue\" [max]=\"maxValue\" [step]=\"step\" [value]=\"value\" [disabled]=\"disabled\" [title]=\"value\"\n (change)=\"onValueChange($event)\" (input)=\"onInputChange($event)\">\n </mat-slider>\n</div>", styles: ["", ".pep-slider-container ::ng-deep .mat-slider{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.12)}.pep-slider-container ::ng-deep .mat-slider.mat-slider-disabled{opacity:.5}.pep-slider-container ::ng-deep .mat-slider.mat-slider-horizontal{height:1rem;width:100%;padding:.5rem .25rem;border-radius:var(--pep-border-radius-lg, .5rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper{height:.375rem;position:relative;top:-.1875rem;left:unset;right:unset;border-radius:var(--pep-border-radius-md, .25rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-track-wrapper{display:none}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container{width:94%;left:3%}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb{width:18px;height:18px;right:-9px;bottom:-9px;transform:scale(.7)!important;border-color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));border-width:5px;background-color:transparent!important;box-shadow:0 0 0 var(--pep-spacing-2xs, .125rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}\n"], dependencies: [{ kind: "component", type: i2.MatSlider, selector: "mat-slider", inputs: ["disabled", "color", "tabIndex", "invert", "max", "min", "step", "thumbLabel", "tickInterval", "value", "displayWith", "valueText", "vertical"], outputs: ["change", "input", "valueChange"], exportAs: ["matSlider"] }, { kind: "component", type: i3.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength", "fontBodyType", "multiLine"] }] });
77
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSliderComponent, decorators: [{
78
78
  type: Component,
79
- args: [{ selector: 'pep-slider', template: "<div class=\"pep-slider-container\">\n <pep-field-title [label]=\"label\" [disabled]=\"disabled\" [hint]=\"hint\" [xAlignment]=\"xAlignment\">\n </pep-field-title>\n <mat-slider [min]=\"minValue\" [max]=\"maxValue\" [step]=\"step\" [value]=\"value\" [disabled]=\"disabled\" [title]=\"value\"\n (change)=\"onValueChange($event)\" (input)=\"onInputChange($event)\">\n </mat-slider>\n</div>", styles: [".pep-slider-container ::ng-deep .mat-slider{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.12)}.pep-slider-container ::ng-deep .mat-slider.mat-slider-horizontal{height:1rem;width:100%;padding:.5rem .25rem;border-radius:var(--pep-border-radius-lg, .5rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper{height:.375rem;position:relative;top:-.1875rem;left:unset;right:unset;border-radius:var(--pep-border-radius-md, .25rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-track-wrapper{display:none}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container{width:94%;left:3%}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb{width:18px;height:18px;right:-9px;bottom:-9px;transform:scale(.7)!important;border-color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));border-width:5px;background-color:transparent!important;box-shadow:0 0 0 var(--pep-spacing-2xs, .125rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}\n"] }]
79
+ args: [{ selector: 'pep-slider', template: "<div class=\"pep-slider-container\">\n <pep-field-title [label]=\"label\" [disabled]=\"disabled\" [hint]=\"hint\" [xAlignment]=\"xAlignment\">\n </pep-field-title>\n <mat-slider [min]=\"minValue\" [max]=\"maxValue\" [step]=\"step\" [value]=\"value\" [disabled]=\"disabled\" [title]=\"value\"\n (change)=\"onValueChange($event)\" (input)=\"onInputChange($event)\">\n </mat-slider>\n</div>", styles: [".pep-slider-container ::ng-deep .mat-slider{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.12)}.pep-slider-container ::ng-deep .mat-slider.mat-slider-disabled{opacity:.5}.pep-slider-container ::ng-deep .mat-slider.mat-slider-horizontal{height:1rem;width:100%;padding:.5rem .25rem;border-radius:var(--pep-border-radius-lg, .5rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper{height:.375rem;position:relative;top:-.1875rem;left:unset;right:unset;border-radius:var(--pep-border-radius-md, .25rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-track-wrapper{display:none}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container{width:94%;left:3%}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb{width:18px;height:18px;right:-9px;bottom:-9px;transform:scale(.7)!important;border-color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));border-width:5px;background-color:transparent!important;box-shadow:0 0 0 var(--pep-spacing-2xs, .125rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}\n"] }]
80
80
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.PepLayoutService }]; }, propDecorators: { label: [{
81
81
  type: Input
82
82
  }], disabled: [{
@@ -65,7 +65,7 @@ export class PepBooleanFilterComponent extends BaseFilterComponent {
65
65
  }
66
66
  }
67
67
  PepBooleanFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepBooleanFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
68
- PepBooleanFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepBooleanFilterComponent, selector: "pep-boolean-filter", inputs: { options: "options" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"inline; then inlineBlock; else notInlineBlock\"></ng-container>\n<ng-template #inlineBlock>\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\"\n [options]=\"options\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\" [options]=\"options\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n</ng-template>\n<ng-template #notInlineBlock>\n <div [formGroup]=\"form\">\n <mat-radio-group class=\"radio-group \" [formControlName]=\"firstControlKey\">\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"true\">\n <span class=\"body-sm ellipsis\">{{ 'CHECKBOX.TRUE' | translate }}</span>\n </mat-radio-button>\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"false\">\n <span class=\"body-sm ellipsis\">{{ 'CHECKBOX.FALSE' | translate }}</span>\n </mat-radio-button>\n </mat-radio-group>\n </div>\n</ng-template>", styles: [".radio-group{display:flex;flex-direction:column}.radio-group .pep-radio-button.pep-input{height:2.25rem;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i5.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "options", "visible", "emptyOption", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "renderTitle", "typeaheadDebounceInterval"], outputs: ["valueChange"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
68
+ PepBooleanFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepBooleanFilterComponent, selector: "pep-boolean-filter", inputs: { options: "options" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"inline; then inlineBlock; else notInlineBlock\"></ng-container>\n<ng-template #inlineBlock>\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\"\n [options]=\"options\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\" [options]=\"options\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n</ng-template>\n<ng-template #notInlineBlock>\n <div [formGroup]=\"form\">\n <mat-radio-group class=\"radio-group \" [formControlName]=\"firstControlKey\">\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"true\">\n <span class=\"body-sm ellipsis\">{{ 'CHECKBOX.TRUE' | translate }}</span>\n </mat-radio-button>\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"false\">\n <span class=\"body-sm ellipsis\">{{ 'CHECKBOX.FALSE' | translate }}</span>\n </mat-radio-button>\n </mat-radio-group>\n </div>\n</ng-template>", styles: [".radio-group{display:flex;flex-direction:column}.radio-group .pep-radio-button.pep-input{height:2.25rem;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i5.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "placeholder", "placeholderWhenDisabled", "autoSortOptions", "options", "visible", "emptyOption", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "renderTitle", "typeaheadDebounceInterval", "addValueToOptionsIfNotExist"], outputs: ["valueChange", "validationChange"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepBooleanFilterComponent, decorators: [{
70
70
  type: Component,
71
71
  args: [{ selector: 'pep-boolean-filter', template: "<ng-container *ngIf=\"inline; then inlineBlock; else notInlineBlock\"></ng-container>\n<ng-template #inlineBlock>\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\"\n [options]=\"options\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\" [options]=\"options\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n</ng-template>\n<ng-template #notInlineBlock>\n <div [formGroup]=\"form\">\n <mat-radio-group class=\"radio-group \" [formControlName]=\"firstControlKey\">\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"true\">\n <span class=\"body-sm ellipsis\">{{ 'CHECKBOX.TRUE' | translate }}</span>\n </mat-radio-button>\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"false\">\n <span class=\"body-sm ellipsis\">{{ 'CHECKBOX.FALSE' | translate }}</span>\n </mat-radio-button>\n </mat-radio-group>\n </div>\n</ng-template>", styles: [".radio-group{display:flex;flex-direction:column}.radio-group .pep-radio-button.pep-input{height:2.25rem;display:flex}\n"] }]
@@ -1,15 +1,15 @@
1
1
  import { Directive, EventEmitter, Input, Output, } from '@angular/core';
2
2
  import { Validators, } from '@angular/forms';
3
- import { Subject } from 'rxjs';
3
+ import { BaseDestroyerDirective } from '@pepperi-addons/ngx-lib';
4
4
  import { PepSmartFilterOperators, PepSmartFilterAdditionalOperators, PepSmartFilterVariableOperators, PepSmartFilterOperatorUnits, } from './operator';
5
- import { takeUntil } from 'rxjs/operators';
6
5
  import { PepFilterActionsComponent } from '../filter-actions.component';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@angular/forms";
9
8
  import * as i2 from "@ngx-translate/core";
10
9
  import * as i3 from "@pepperi-addons/ngx-lib";
11
- export class BaseFilterComponent {
10
+ export class BaseFilterComponent extends BaseDestroyerDirective {
12
11
  constructor(viewContainerRef, injector, resolver, builder, translate, validator, utilitiesService, renderer) {
12
+ super();
13
13
  this.viewContainerRef = viewContainerRef;
14
14
  this.injector = injector;
15
15
  this.resolver = resolver;
@@ -29,7 +29,6 @@ export class BaseFilterComponent {
29
29
  this.filterChange = new EventEmitter();
30
30
  this.OPERATORS_TRANSLATION_PREFIX = 'SMART_FILTERS.OPERATORS';
31
31
  this.OPERATOR_UNITS_TRANSLATION_PREFIX = 'SMART_FILTERS.OPERATOR_UNITS';
32
- this._destroyed = new Subject();
33
32
  }
34
33
  set field(value) {
35
34
  this._field = value;
@@ -197,9 +196,6 @@ export class BaseFilterComponent {
197
196
  second: this.secondControl
198
197
  }));
199
198
  }
200
- getDestroyer() {
201
- return takeUntil(this._destroyed);
202
- }
203
199
  updateValidity() {
204
200
  this.setFieldsStateAndValidators();
205
201
  this.firstControl.updateValueAndValidity();
@@ -258,15 +254,13 @@ export class BaseFilterComponent {
258
254
  // }
259
255
  }
260
256
  ngOnDestroy() {
261
- this._destroyed.next();
262
- this._destroyed.complete();
263
257
  if (this.showActionButtons) {
264
258
  this.actionsContainerRef.destroy();
265
259
  }
266
260
  }
267
261
  }
268
262
  BaseFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BaseFilterComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }, { token: i1.FormBuilder }, { token: i2.TranslateService }, { token: i3.PepValidatorService }, { token: i3.PepUtilitiesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
269
- BaseFilterComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: BaseFilterComponent, inputs: { field: "field", variableField: "variableField", filter: "filter", parentForm: "parentForm", emitOnChange: "emitOnChange", inline: "inline", showActionButtons: "showActionButtons", renderTitle: "renderTitle", showAdditionalOperators: "showAdditionalOperators" }, outputs: { filterClear: "filterClear", filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0 });
263
+ BaseFilterComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: BaseFilterComponent, inputs: { field: "field", variableField: "variableField", filter: "filter", parentForm: "parentForm", emitOnChange: "emitOnChange", inline: "inline", showActionButtons: "showActionButtons", renderTitle: "renderTitle", showAdditionalOperators: "showAdditionalOperators" }, outputs: { filterClear: "filterClear", filterChange: "filterChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
270
264
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BaseFilterComponent, decorators: [{
271
265
  type: Directive,
272
266
  args: [{}]
@@ -293,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
293
287
  }], filterChange: [{
294
288
  type: Output
295
289
  }] } });
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWx0ZXItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2NvbW1vbi9tb2RlbC9iYXNlLWZpbHRlci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sR0FXVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUgsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU0zQyxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0IsMkJBQTJCLEdBQzlCLE1BQU0sWUFBWSxDQUFDO0FBSXBCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFJeEUsTUFBTSxPQUFnQixtQkFBbUI7SUFxSHJDLFlBQ1ksZ0JBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLFFBQWtDLEVBQ2xDLE9BQW9CLEVBQ2xCLFNBQTJCLEVBQzNCLFNBQThCLEVBQzlCLGdCQUFxQyxFQUNyQyxRQUFtQjtRQVByQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGFBQVEsR0FBUixRQUFRLENBQVc7UUF4SHpCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQVlo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RSxDQUFDO1FBRTNCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QztJQUNMLENBQUM7O2dIQWpWaUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFOzBUQVNMLEtBQUs7c0JBRFIsS0FBSztnQkFZRixhQUFhO3NCQURoQixLQUFLO2dCQWVGLE1BQU07c0JBRFQsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE91dHB1dCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgUGVwVmFsaWRhdG9yU2VydmljZSxcbiAgICBJUGVwT3B0aW9uLFxuICAgIFBlcFV0aWxpdGllc1NlcnZpY2Vcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHtcbiAgICBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcixcbiAgICBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQsXG4gICAgUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMsXG4gICAgUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnMsXG4gICAgUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzLFxufSBmcm9tICcuL29wZXJhdG9yJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQZXBTbWFydEZpbHRlckRhdGEsIElQZXBTbWFydEZpbHRlckRhdGFWYWx1ZSB9IGZyb20gJy4vZmlsdGVyJztcbmltcG9ydCB7IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkIH0gZnJvbSAnLi9maWVsZCc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVyLWFjdGlvbnMuY29tcG9uZW50JztcblxuXG5ARGlyZWN0aXZlKHt9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGaWx0ZXJDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3llZDogU3ViamVjdDx2b2lkPjtcbiAgICBwcml2YXRlIGFjdGlvbnNDb250YWluZXJSZWY6IENvbXBvbmVudFJlZjxQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50PjtcblxuICAgIHByaXZhdGUgX2ZpZWxkSWRXaXRoTm9Eb3RzID0gJyc7XG4gICAgcHJpdmF0ZSBfZmllbGQ6IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpZWxkKHZhbHVlOiBQZXBTbWFydEZpbHRlckJhc2VGaWVsZCkge1xuICAgICAgICB0aGlzLl9maWVsZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9maWVsZElkV2l0aE5vRG90cyA9IHZhbHVlID8gdmFsdWUuaWQucmVwbGFjZSgvXFwuL2csICdfJykgOiAnJztcbiAgICAgICAgdGhpcy5zZXR1cEZvcm0oKTtcbiAgICB9XG4gICAgZ2V0IGZpZWxkKCk6IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkO1xuICAgIH1cblxuICAgIHZhcmlhYmxlRmllbGRPcHRpb25zOiBBcnJheTxJUGVwT3B0aW9uPiA9IFtdO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhcmlhYmxlRmllbGQobGlzdDogYW55W10pIHtcbiAgICAgICAgaWYgKGxpc3Q/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZUZpZWxkT3B0aW9ucyA9IGxpc3QubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcblxuICAgIHByaXZhdGUgX2ZpbHRlcjogSVBlcFNtYXJ0RmlsdGVyRGF0YTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBmaWx0ZXIodmFsdWU6IElQZXBTbWFydEZpbHRlckRhdGEpIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0dXBGaWx0ZXIoKTtcbiAgICB9XG4gICAgZ2V0IGZpbHRlcigpOiBJUGVwU21hcnRGaWx0ZXJEYXRhIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcjtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9wYXJlbnRGb3JtOiBGb3JtR3JvdXA7XG4gICAgQElucHV0KClcbiAgICBzZXQgcGFyZW50Rm9ybShmb3JtOiBGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybSA9IGZvcm07XG4gICAgICAgIHRoaXMudXBkYXRlUGFyZW50Rm9ybSgpO1xuICAgIH1cbiAgICBASW5wdXQoKSBlbWl0T25DaGFuZ2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpbmxpbmUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzaG93QWN0aW9uQnV0dG9ucyA9IHRydWU7XG4gICAgQElucHV0KCkgcmVuZGVyVGl0bGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHNob3dBZGRpdGlvbmFsT3BlcmF0b3JzID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgZmlsdGVyQ2xlYXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KClcbiAgICBmaWx0ZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUGVwU21hcnRGaWx0ZXJEYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcFNtYXJ0RmlsdGVyRGF0YT4oKTtcblxuICAgIHByaXZhdGUgX29wZXJhdG9yOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcjtcbiAgICBzZXQgb3BlcmF0b3Iob3BlcmF0b3I6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yKSB7XG4gICAgICAgIGlmIChvcGVyYXRvcj8uaWQgIT0gdGhpcy5fb3BlcmF0b3I/LmlkKSB7XG4gICAgICAgICAgICAvLyBWYWxpZGF0ZSBvcGVyYXRvclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZXJhdG9ycy5maW5kSW5kZXgoKG8pID0+IG8uaWQgPT09IG9wZXJhdG9yLmlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9yc1tpbmRleF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yID0gdGhpcy5vcGVyYXRvcnNbMF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBvcGVyYXRvcigpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9vcGVyYXRvclVuaXQ6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdDtcbiAgICBzZXQgb3BlcmF0b3JVbml0KG9wZXJhdG9yVW5pdDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0KSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIG9wZXJhdG9yIHVuaXRcbiAgICAgICAgaWYgKG9wZXJhdG9yVW5pdCkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZXJhdG9yVW5pdHMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgIChvdSkgPT4gb3UuaWQgPT09IG9wZXJhdG9yVW5pdC5pZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JVbml0ID0gdGhpcy5vcGVyYXRvclVuaXRzW2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JVbml0ID0gdGhpcy5vcGVyYXRvclVuaXRzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JVbml0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBvcGVyYXRvclVuaXQoKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yVW5pdDtcbiAgICB9XG5cbiAgICBnZXQgZmlyc3RDb250cm9sS2V5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCA/IGAke3RoaXMuX2ZpZWxkSWRXaXRoTm9Eb3RzfV9maXJzdGAgOiAnZmlyc3QnO1xuICAgIH1cbiAgICBnZXQgZmlyc3RDb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KHRoaXMuZmlyc3RDb250cm9sS2V5KTtcbiAgICB9XG4gICAgZ2V0IHNlY29uZENvbnRyb2xLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkID8gYCR7dGhpcy5fZmllbGRJZFdpdGhOb0RvdHN9X3NlY29uZGAgOiAnc2Vjb25kJztcbiAgICB9XG4gICAgZ2V0IHNlY29uZENvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQodGhpcy5zZWNvbmRDb250cm9sS2V5KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3BlcmF0b3JzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcltdO1xuICAgIHByb3RlY3RlZCBvcGVyYXRvclVuaXRzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRbXTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBPUEVSQVRPUlNfVFJBTlNMQVRJT05fUFJFRklYID0gJ1NNQVJUX0ZJTFRFUlMuT1BFUkFUT1JTJztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgT1BFUkFUT1JfVU5JVFNfVFJBTlNMQVRJT05fUFJFRklYID1cbiAgICAgICAgJ1NNQVJUX0ZJTFRFUlMuT1BFUkFUT1JfVU5JVFMnO1xuXG4gICAgZm9ybTogRm9ybUdyb3VwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBidWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHZhbGlkYXRvcjogUGVwVmFsaWRhdG9yU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHV0aWxpdGllc1NlcnZpY2U6IFBlcFV0aWxpdGllc1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICkge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQWN0aW9uc0NvbXBvbmVudCgpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50PiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgICAgICBQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmID0gZmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5mb3JtID0gdGhpcy5mb3JtO1xuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaW5zdGFuY2UuYXBwbHlDbGljay5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaW5zdGFuY2UuY2xlYXJDbGljay5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuY2xlYXJGaWx0ZXIoKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5pbnNlcnQodGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmhvc3RWaWV3KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRm9ybSgpIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0ge307XG4gICAgICAgIGZvcm1WYWx1ZVt0aGlzLmZpcnN0Q29udHJvbEtleV0gPSBbXTtcbiAgICAgICAgZm9ybVZhbHVlW3RoaXMuc2Vjb25kQ29udHJvbEtleV0gPSBbXTtcbiAgICAgICAgLy8gdGhpcy5mb3JtLnBhdGNoVmFsdWUoZm9ybVZhbHVlKTsgICAgICAgIFxuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmJ1aWxkZXIuZ3JvdXAoZm9ybVZhbHVlKTtcbiAgICAgICAgLy8gdGhpcy5mb3JtW3RoaXMuZmlyc3RDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICAvLyB0aGlzLmZvcm1bdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IFtdO1xuXG4gICAgICAgIHRoaXMuc2V0dXBPcGVyYXRvcnMoKTtcblxuICAgICAgICBpZiAodGhpcy5zaG93QWN0aW9uQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25zQ29tcG9uZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwT3BlcmF0b3JzKCkge1xuICAgICAgICAvLyBHZXQgdGhlIG9wZXJhdG9ycyBieSBjb21wb25lbnRUeXBlLlxuICAgICAgICB0aGlzLm9wZXJhdG9ycyA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzW2tleV0uY29tcG9uZW50VHlwZS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5jb21wb25lbnRUeXBlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAubWFwKChrZXkpID0+IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzW2tleV0pO1xuXG4gICAgICAgIC8vIEFkZCBhZGRpdGlvbmFsIG9wZXJhdG9yc1xuICAgICAgICBpZiAodGhpcy5zaG93QWRkaXRpb25hbE9wZXJhdG9ycykge1xuICAgICAgICAgICAgY29uc3QgYWRkaXRpb25hbDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JbXSA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9yc1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzW2tleV0pO1xuXG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9ycyA9IFsuLi50aGlzLm9wZXJhdG9ycywgLi4uYWRkaXRpb25hbF07XG4gICAgICAgIH1cblxuICAgICAgICAvL2FkZCB2YXJpYWJsZSBvcGVyYXRvcnNcbiAgICAgICAgaWYgKHRoaXMudmFyaWFibGVGaWVsZE9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgdmFyaWFibGVzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcltdID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5jb21wb25lbnRUeXBlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAubWFwKChrZXkpID0+IFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gWy4uLnRoaXMub3BlcmF0b3JzLCAuLi52YXJpYWJsZXNdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlsdGVyIGJ5IGZyb20gZmllbGQub3BlcmF0b3JzIGlucHV0IGlmIGV4aXN0LlxuICAgICAgICBpZiAodGhpcy5maWVsZC5vcGVyYXRvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gdGhpcy5vcGVyYXRvcnMuZmlsdGVyKChvMSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm9wZXJhdG9ycy5zb21lKChvMikgPT4gbzEuaWQgPT09IG8yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICAvLyBHZXQgdGhlIG9wZXJhdG9yIHVuaXRzIGJ5IGNvbXBvbmVudFR5cGUuXG4gICAgICAgIHRoaXMub3BlcmF0b3JVbml0cyA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0cylcbiAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzW2tleV0pO1xuXG4gICAgICAgIC8vIEZpbHRlciBieSBmcm9tIGZpZWxkLm9wZXJhdG9yc1VuaXRzIGlucHV0IGlmIGV4aXN0LlxuICAgICAgICBpZiAodGhpcy5maWVsZC5vcGVyYXRvclVuaXRzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yVW5pdHMgPSB0aGlzLm9wZXJhdG9yVW5pdHMuZmlsdGVyKChvMSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm9wZXJhdG9yVW5pdHMuc29tZSgobzIpID0+IG8xLmlkID09PSBvMilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMb2FkIHRyYW5zbGF0aW9uIGJlZm9yZSBnZXQgdGhlIG9wdGlvbnMgaW4gdGhlIGNoaWxkcmVuLlxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ1NNQVJUX0ZJTFRFUlMuVElUTEUnKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkT3BlcmF0b3JzT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRmlsdGVyKCkge1xuICAgICAgICBpZiAodGhpcy5fZmlsdGVyKSB7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yID0gdGhpcy5fZmlsdGVyLm9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvclVuaXQgPSB0aGlzLl9maWx0ZXIub3BlcmF0b3JVbml0O1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlID0ge307XG4gICAgICAgICAgICBmb3JtVmFsdWVbdGhpcy5maXJzdENvbnRyb2xLZXldID0gdGhpcy5fZmlsdGVyLnZhbHVlLmZpcnN0O1xuICAgICAgICAgICAgZm9ybVZhbHVlW3RoaXMuc2Vjb25kQ29udHJvbEtleV0gPSB0aGlzLl9maWx0ZXIudmFsdWUuc2Vjb25kO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoZm9ybVZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSB0aGlzLmdldERlZmF1bHRPcGVyYXRvcigpO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvclVuaXQgPSB0aGlzLmdldERlZmF1bHRPcGVyYXRvclVuaXQoKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJGaWx0ZXIoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVBhcmVudEZvcm0oKSB7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgnZmllbGRJZCcsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMuZmllbGQuaWQpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdmaWVsZFR5cGUnLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLmZpZWxkLnR5cGUpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdvcGVyYXRvcicsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMub3BlcmF0b3IpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdvcGVyYXRvclVuaXQnLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLm9wZXJhdG9yVW5pdCkpO1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ3ZhbHVlcycsIHRoaXMuYnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBmaXJzdDogdGhpcy5maXJzdENvbnRyb2wsXG4gICAgICAgICAgICBzZWNvbmQ6IHRoaXMuc2Vjb25kQ29udHJvbFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldERlc3Ryb3llcigpIHtcbiAgICAgICAgcmV0dXJuIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsaWRpdHkoKSB7XG4gICAgICAgIHRoaXMuc2V0RmllbGRzU3RhdGVBbmRWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgdGhpcy5maXJzdENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgICAvLyBMb2FkIHRoZSBvcGVyYXRvcnMgb3B0aW9ucyBmcm9tIHRoZSB0cmFuc2xhdGlvbi5cbiAgICBwcm90ZWN0ZWQgbG9hZE9wZXJhdG9yc09wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgYmFzZVxuICAgIH1cblxuICAgIC8vIFNldCBkZWZhdWx0IHZhbGlkYXRvcnMgLSBzb21lIGNoaWxkcyBvdmVycmlkZSB0aGlzLlxuICAgIHByb3RlY3RlZCBzZXRGaWVsZHNTdGF0ZUFuZFZhbGlkYXRvcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlyc3RDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIHRoaXMuc2Vjb25kQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB1bmRlZmluZWQgLSBzb21lIGNoaWxkcyBvdmVycmlkZSB0aGlzLlxuICAgIHByb3RlY3RlZCBnZXREZWZhdWx0T3BlcmF0b3JVbml0KCk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRGaWx0ZXIoKSB7XG4gICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgYmFzZVxuICAgIH1cblxuICAgIGFic3RyYWN0IGdldERlZmF1bHRPcGVyYXRvcigpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcjtcbiAgICBhYnN0cmFjdCBnZXRGaWx0ZXJWYWx1ZSgpOiBJUGVwU21hcnRGaWx0ZXJEYXRhVmFsdWU7XG5cbiAgICBjbGVhckZpbHRlcihlbWl0RXZlbnQgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlciA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICB0aGlzLmluaXRGaWx0ZXIoKTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNsZWFyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFwcGx5RmlsdGVyKCkge1xuICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMuZ2V0RmlsdGVyVmFsdWUoKTtcblxuICAgICAgICAvLyBJZiB0aGUgZmlsdGVyIGlzIG5vdCBudWxsIGRlY2xhcmUgaXQsIGVsc2UgLSBjbGVhciBpdC5cbiAgICAgICAgaWYgKGZpbHRlclZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgZmllbGRJZDogdGhpcy5maWVsZC5pZCxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5vcGVyYXRvcixcbiAgICAgICAgICAgICAgICBvcGVyYXRvclVuaXQ6IHRoaXMub3BlcmF0b3JVbml0LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXJWYWx1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXIgPSBmaWx0ZXI7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KGZpbHRlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIC8vIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgLy8gICAgIHRoaXMudXBkYXRlVmFsaWRpdHkoKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcblxuICAgICAgICBpZiAodGhpcy5zaG93QWN0aW9uQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHdyaXRlVmFsdWUodmFsdWU6IElQZXBTbWFydEZpbHRlckRhdGFWYWx1ZSk6IHZvaWQge1xuICAgIC8vICAgICBpZiAodmFsdWUpIHtcbiAgICAvLyAgICAgICAgIHRoaXMuZm9ybS5zZXRWYWx1ZShcbiAgICAvLyAgICAgICAgICAgICB7XG4gICAgLy8gICAgICAgICAgICAgICAgIGZpcnN0OiB2YWx1ZS5maXJzdCxcbiAgICAvLyAgICAgICAgICAgICAgICAgc2Vjb25kOiB2YWx1ZS5zZWNvbmQgfHwgbnVsbCxcbiAgICAvLyAgICAgICAgICAgICB9LFxuICAgIC8vICAgICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XG4gICAgLy8gICAgICAgICApO1xuICAgIC8vICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG5cbiAgICAvLyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAvLyAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoZm4pO1xuICAgIC8vIH1cblxuICAgIC8vIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAvLyAgICAgLyogRG8gbm90aGluZyAqL1xuICAgIC8vIH07XG5cbiAgICAvLyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgLy8gICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgLy8gfVxuXG4gICAgLy8gc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vICAgICBpc0Rpc2FibGVkID8gdGhpcy5mb3JtLmRpc2FibGUoKSA6IHRoaXMuZm9ybS5lbmFibGUoKTtcbiAgICAvLyB9XG5cbiAgICAvLyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZm9ybS52YWxpZCA/IG51bGwgOiB7IFBlcEZpbHRlcklzTm90VmFsaWQ6IHRydWUgfTtcbiAgICAvLyB9XG59XG4iXX0=
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWx0ZXItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2NvbW1vbi9tb2RlbC9iYXNlLWZpbHRlci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sR0FXVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUgsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUlILHNCQUFzQixFQUN6QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUNBQWlDLEVBQ2pDLCtCQUErQixFQUMvQiwyQkFBMkIsR0FDOUIsTUFBTSxZQUFZLENBQUM7QUFLcEIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBSXhFLE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsc0JBQXNCO0lBb0hwRSxZQUNZLGdCQUFrQyxFQUNsQyxRQUFrQixFQUNsQixRQUFrQyxFQUNsQyxPQUFvQixFQUNsQixTQUEyQixFQUMzQixTQUE4QixFQUM5QixnQkFBcUMsRUFDckMsUUFBbUI7UUFFN0IsS0FBSyxFQUFFLENBQUM7UUFUQSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGFBQVEsR0FBUixRQUFRLENBQVc7UUF4SHpCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQVloQyx5QkFB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QURoQixLQUFLO2dCQWVGLE1BQU07c0JBRFQsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE91dHB1dCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgUGVwVmFsaWRhdG9yU2VydmljZSxcbiAgICBJUGVwT3B0aW9uLFxuICAgIFBlcFV0aWxpdGllc1NlcnZpY2UsXG4gICAgQmFzZURlc3Ryb3llckRpcmVjdGl2ZVxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQge1xuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yLFxuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCxcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnMsXG4gICAgUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHMsXG59IGZyb20gJy4vb3BlcmF0b3InO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBlcFNtYXJ0RmlsdGVyRGF0YSwgSVBlcFNtYXJ0RmlsdGVyRGF0YVZhbHVlIH0gZnJvbSAnLi9maWx0ZXInO1xuaW1wb3J0IHsgUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQgfSBmcm9tICcuL2ZpZWxkJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXItYWN0aW9ucy5jb21wb25lbnQnO1xuXG5cbkBEaXJlY3RpdmUoe30pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZpbHRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VEZXN0cm95ZXJEaXJlY3RpdmVcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgYWN0aW9uc0NvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSBfZmllbGRJZFdpdGhOb0RvdHMgPSAnJztcbiAgICBwcml2YXRlIF9maWVsZDogUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQ7XG4gICAgQElucHV0KClcbiAgICBzZXQgZmllbGQodmFsdWU6IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkKSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2ZpZWxkSWRXaXRoTm9Eb3RzID0gdmFsdWUgPyB2YWx1ZS5pZC5yZXBsYWNlKC9cXC4vZywgJ18nKSA6ICcnO1xuICAgICAgICB0aGlzLnNldHVwRm9ybSgpO1xuICAgIH1cbiAgICBnZXQgZmllbGQoKTogUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmllbGQ7XG4gICAgfVxuXG4gICAgdmFyaWFibGVGaWVsZE9wdGlvbnM6IEFycmF5PElQZXBPcHRpb24+ID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgdmFyaWFibGVGaWVsZChsaXN0OiBhbnlbXSkge1xuICAgICAgICBpZiAobGlzdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnZhcmlhYmxlRmllbGRPcHRpb25zID0gbGlzdC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuXG4gICAgcHJpdmF0ZSBfZmlsdGVyOiBJUGVwU21hcnRGaWx0ZXJEYXRhO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpbHRlcih2YWx1ZTogSVBlcFNtYXJ0RmlsdGVyRGF0YSkge1xuICAgICAgICB0aGlzLl9maWx0ZXIgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXR1cEZpbHRlcigpO1xuICAgIH1cbiAgICBnZXQgZmlsdGVyKCk6IElQZXBTbWFydEZpbHRlckRhdGEge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3BhcmVudEZvcm06IEZvcm1Hcm91cDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBwYXJlbnRGb3JtKGZvcm06IEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtID0gZm9ybTtcbiAgICAgICAgdGhpcy51cGRhdGVQYXJlbnRGb3JtKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGVtaXRPbkNoYW5nZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlubGluZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNob3dBY3Rpb25CdXR0b25zID0gdHJ1ZTtcbiAgICBASW5wdXQoKSByZW5kZXJUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgc2hvd0FkZGl0aW9uYWxPcGVyYXRvcnMgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBmaWx0ZXJDbGVhcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPElQZXBTbWFydEZpbHRlckRhdGE+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwU21hcnRGaWx0ZXJEYXRhPigpO1xuXG4gICAgcHJpdmF0ZSBfb3BlcmF0b3I6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yO1xuICAgIHNldCBvcGVyYXRvcihvcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IpIHtcbiAgICAgICAgaWYgKG9wZXJhdG9yPy5pZCAhPSB0aGlzLl9vcGVyYXRvcj8uaWQpIHtcbiAgICAgICAgICAgIC8vIFZhbGlkYXRlIG9wZXJhdG9yXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlcmF0b3JzLmZpbmRJbmRleCgobykgPT4gby5pZCA9PT0gb3BlcmF0b3IuaWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzW2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9yc1swXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG9wZXJhdG9yKCk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgX29wZXJhdG9yVW5pdDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0O1xuICAgIHNldCBvcGVyYXRvclVuaXQob3BlcmF0b3JVbml0OiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQpIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgb3BlcmF0b3IgdW5pdFxuICAgICAgICBpZiAob3BlcmF0b3JVbml0KSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlcmF0b3JVbml0cy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgKG91KSA9PiBvdS5pZCA9PT0gb3BlcmF0b3JVbml0LmlkXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB0aGlzLm9wZXJhdG9yVW5pdHNbaW5kZXhdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB0aGlzLm9wZXJhdG9yVW5pdHNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG9wZXJhdG9yVW5pdCgpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0b3JVbml0O1xuICAgIH1cblxuICAgIGdldCBmaXJzdENvbnRyb2xLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkID8gYCR7dGhpcy5fZmllbGRJZFdpdGhOb0RvdHN9X2ZpcnN0YCA6ICdmaXJzdCc7XG4gICAgfVxuICAgIGdldCBmaXJzdENvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQodGhpcy5maXJzdENvbnRyb2xLZXkpO1xuICAgIH1cbiAgICBnZXQgc2Vjb25kQ29udHJvbEtleSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQgPyBgJHt0aGlzLl9maWVsZElkV2l0aE5vRG90c31fc2Vjb25kYCA6ICdzZWNvbmQnO1xuICAgIH1cbiAgICBnZXQgc2Vjb25kQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCh0aGlzLnNlY29uZENvbnRyb2xLZXkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvcGVyYXRvcnM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yW107XG4gICAgcHJvdGVjdGVkIG9wZXJhdG9yVW5pdHM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdFtdO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IE9QRVJBVE9SU19UUkFOU0xBVElPTl9QUkVGSVggPSAnU01BUlRfRklMVEVSUy5PUEVSQVRPUlMnO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBPUEVSQVRPUl9VTklUU19UUkFOU0xBVElPTl9QUkVGSVggPVxuICAgICAgICAnU01BUlRfRklMVEVSUy5PUEVSQVRPUl9VTklUUyc7XG5cbiAgICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdG9yOiBQZXBWYWxpZGF0b3JTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgdXRpbGl0aWVzU2VydmljZTogUGVwVXRpbGl0aWVzU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBY3Rpb25zQ29tcG9uZW50KCkge1xuICAgICAgICBjb25zdCBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQ+ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgICAgICAgIFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnRcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYgPSBmYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmluc3RhbmNlLmZvcm0gPSB0aGlzLmZvcm07XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5hcHBseUNsaWNrLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcigpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5jbGVhckNsaWNrLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5jbGVhckZpbHRlcigpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmluc2VydCh0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaG9zdFZpZXcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBGb3JtKCkge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB7fTtcbiAgICAgICAgZm9ybVZhbHVlW3RoaXMuZmlyc3RDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICBmb3JtVmFsdWVbdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICAvLyB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShmb3JtVmFsdWUpOyAgICAgICAgXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuYnVpbGRlci5ncm91cChmb3JtVmFsdWUpO1xuICAgICAgICAvLyB0aGlzLmZvcm1bdGhpcy5maXJzdENvbnRyb2xLZXldID0gW107XG4gICAgICAgIC8vIHRoaXMuZm9ybVt0aGlzLnNlY29uZENvbnRyb2xLZXldID0gW107XG5cbiAgICAgICAgdGhpcy5zZXR1cE9wZXJhdG9ycygpO1xuXG4gICAgICAgIGlmICh0aGlzLnNob3dBY3Rpb25CdXR0b25zKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbnNDb21wb25lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBPcGVyYXRvcnMoKSB7XG4gICAgICAgIC8vIEdldCB0aGUgb3BlcmF0b3JzIGJ5IGNvbXBvbmVudFR5cGUuXG4gICAgICAgIHRoaXMub3BlcmF0b3JzID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMpXG4gICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgLy8gQWRkIGFkZGl0aW9uYWwgb3BlcmF0b3JzXG4gICAgICAgIGlmICh0aGlzLnNob3dBZGRpdGlvbmFsT3BlcmF0b3JzKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRpdGlvbmFsOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcltdID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzW2tleV0uY29tcG9uZW50VHlwZS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuY29tcG9uZW50VHlwZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gWy4uLnRoaXMub3BlcmF0b3JzLCAuLi5hZGRpdGlvbmFsXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vYWRkIHZhcmlhYmxlIG9wZXJhdG9yc1xuICAgICAgICBpZiAodGhpcy52YXJpYWJsZUZpZWxkT3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZXM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yW10gPSBPYmplY3Qua2V5cyhQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9yc1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9yc1trZXldKTtcblxuICAgICAgICAgICAgdGhpcy5vcGVyYXRvcnMgPSBbLi4udGhpcy5vcGVyYXRvcnMsIC4uLnZhcmlhYmxlc107XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaWx0ZXIgYnkgZnJvbSBmaWVsZC5vcGVyYXRvcnMgaW5wdXQgaWYgZXhpc3QuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLm9wZXJhdG9ycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvcnMgPSB0aGlzLm9wZXJhdG9ycy5maWx0ZXIoKG8xKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQub3BlcmF0b3JzLnNvbWUoKG8yKSA9PiBvMS5pZCA9PT0gbzIpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIC8vIEdldCB0aGUgb3BlcmF0b3IgdW5pdHMgYnkgY29tcG9uZW50VHlwZS5cbiAgICAgICAgdGhpcy5vcGVyYXRvclVuaXRzID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0c1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuY29tcG9uZW50VHlwZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHNba2V5XSk7XG5cbiAgICAgICAgLy8gRmlsdGVyIGJ5IGZyb20gZmllbGQub3BlcmF0b3JzVW5pdHMgaW5wdXQgaWYgZXhpc3QuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLm9wZXJhdG9yVW5pdHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JVbml0cyA9IHRoaXMub3BlcmF0b3JVbml0cy5maWx0ZXIoKG8xKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQub3BlcmF0b3JVbml0cy5zb21lKChvMikgPT4gbzEuaWQgPT09IG8yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvYWQgdHJhbnNsYXRpb24gYmVmb3JlIGdldCB0aGUgb3B0aW9ucyBpbiB0aGUgY2hpbGRyZW4uXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnU01BUlRfRklMVEVSUy5USVRMRScpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRPcGVyYXRvcnNPcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBGaWx0ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSB0aGlzLl9maWx0ZXIub3BlcmF0b3I7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yVW5pdCA9IHRoaXMuX2ZpbHRlci5vcGVyYXRvclVuaXQ7XG4gICAgICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB7fTtcbiAgICAgICAgICAgIGZvcm1WYWx1ZVt0aGlzLmZpcnN0Q29udHJvbEtleV0gPSB0aGlzLl9maWx0ZXIudmFsdWUuZmlyc3Q7XG4gICAgICAgICAgICBmb3JtVmFsdWVbdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IHRoaXMuX2ZpbHRlci52YWx1ZS5zZWNvbmQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShmb3JtVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvciA9IHRoaXMuZ2V0RGVmYXVsdE9wZXJhdG9yKCk7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yVW5pdCA9IHRoaXMuZ2V0RGVmYXVsdE9wZXJhdG9yVW5pdCgpO1xuICAgICAgICAgICAgdGhpcy5jbGVhckZpbHRlcihmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlUGFyZW50Rm9ybSgpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdmaWVsZElkJywgdGhpcy5idWlsZGVyLmNvbnRyb2wodGhpcy5maWVsZC5pZCkpO1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ2ZpZWxkVHlwZScsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMuZmllbGQudHlwZSkpO1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ29wZXJhdG9yJywgdGhpcy5idWlsZGVyLmNvbnRyb2wodGhpcy5vcGVyYXRvcikpO1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ29wZXJhdG9yVW5pdCcsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMub3BlcmF0b3JVbml0KSk7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgndmFsdWVzJywgdGhpcy5idWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGZpcnN0OiB0aGlzLmZpcnN0Q29udHJvbCxcbiAgICAgICAgICAgIHNlY29uZDogdGhpcy5zZWNvbmRDb250cm9sXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkaXR5KCkge1xuICAgICAgICB0aGlzLnNldEZpZWxkc1N0YXRlQW5kVmFsaWRhdG9ycygpO1xuXG4gICAgICAgIHRoaXMuZmlyc3RDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgdGhpcy5zZWNvbmRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gICAgLy8gTG9hZCB0aGUgb3BlcmF0b3JzIG9wdGlvbnMgZnJvbSB0aGUgdHJhbnNsYXRpb24uXG4gICAgcHJvdGVjdGVkIGxvYWRPcGVyYXRvcnNPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICAvLyBOb3QgaW1wbGVtZW50ZWQgaW4gdGhlIGJhc2VcbiAgICB9XG5cbiAgICAvLyBTZXQgZGVmYXVsdCB2YWxpZGF0b3JzIC0gc29tZSBjaGlsZHMgb3ZlcnJpZGUgdGhpcy5cbiAgICBwcm90ZWN0ZWQgc2V0RmllbGRzU3RhdGVBbmRWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpcnN0Q29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgdGhpcy5zZWNvbmRDb250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdW5kZWZpbmVkIC0gc29tZSBjaGlsZHMgb3ZlcnJpZGUgdGhpcy5cbiAgICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdE9wZXJhdG9yVW5pdCgpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0RmlsdGVyKCkge1xuICAgICAgICAvLyBOb3QgaW1wbGVtZW50ZWQgaW4gdGhlIGJhc2VcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0T3BlcmF0b3IoKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3I7XG4gICAgYWJzdHJhY3QgZ2V0RmlsdGVyVmFsdWUoKTogSVBlcFNtYXJ0RmlsdGVyRGF0YVZhbHVlO1xuXG4gICAgY2xlYXJGaWx0ZXIoZW1pdEV2ZW50ID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLl9maWx0ZXIgPSBudWxsO1xuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5pbml0RmlsdGVyKCk7XG5cbiAgICAgICAgaWYgKGVtaXRFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJDbGVhci5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhcHBseUZpbHRlcigpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLmdldEZpbHRlclZhbHVlKCk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGZpbHRlciBpcyBub3QgbnVsbCBkZWNsYXJlIGl0LCBlbHNlIC0gY2xlYXIgaXQuXG4gICAgICAgIGlmIChmaWx0ZXJWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0ge1xuICAgICAgICAgICAgICAgIGZpZWxkSWQ6IHRoaXMuZmllbGQuaWQsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMub3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3JVbml0OiB0aGlzLm9wZXJhdG9yVW5pdCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyVmFsdWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5fZmlsdGVyID0gZmlsdGVyO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdChmaWx0ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbGVhckZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICAvLyBpZiAodGhpcy5mb3JtKSB7XG4gICAgICAgIC8vICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5KCk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB3cml0ZVZhbHVlKHZhbHVlOiBJUGVwU21hcnRGaWx0ZXJEYXRhVmFsdWUpOiB2b2lkIHtcbiAgICAvLyAgICAgaWYgKHZhbHVlKSB7XG4gICAgLy8gICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoXG4gICAgLy8gICAgICAgICAgICAge1xuICAgIC8vICAgICAgICAgICAgICAgICBmaXJzdDogdmFsdWUuZmlyc3QsXG4gICAgLy8gICAgICAgICAgICAgICAgIHNlY29uZDogdmFsdWUuc2Vjb25kIHx8IG51bGwsXG4gICAgLy8gICAgICAgICAgICAgfSxcbiAgICAvLyAgICAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxuICAgIC8vICAgICAgICAgKTtcbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIC8vICAgICB9XG4gICAgLy8gfVxuXG4gICAgLy8gcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgLy8gICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGZuKTtcbiAgICAvLyB9XG5cbiAgICAvLyBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgLy8gICAgIC8qIERvIG5vdGhpbmcgKi9cbiAgICAvLyB9O1xuXG4gICAgLy8gcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIC8vICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIC8vIH1cblxuICAgIC8vIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyAgICAgaXNEaXNhYmxlZCA/IHRoaXMuZm9ybS5kaXNhYmxlKCkgOiB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgLy8gfVxuXG4gICAgLy8gdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWQgPyBudWxsIDogeyBQZXBGaWx0ZXJJc05vdFZhbGlkOiB0cnVlIH07XG4gICAgLy8gfVxufVxuIl19