@pepperi-addons/ngx-lib 0.4.0-angular14.36 → 0.4.0-angular14.39

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 (732) hide show
  1. package/address/address.component.d.ts +30 -30
  2. package/address/address.module.d.ts +15 -15
  3. package/address/index.d.ts +5 -5
  4. package/address/public-api.d.ts +2 -2
  5. package/attachment/attachment.component.d.ts +85 -85
  6. package/attachment/attachment.module.d.ts +14 -14
  7. package/attachment/index.d.ts +5 -5
  8. package/attachment/public-api.d.ts +2 -2
  9. package/bread-crumbs/bread-crumbs.component.d.ts +27 -27
  10. package/bread-crumbs/bread-crumbs.model.d.ts +11 -11
  11. package/bread-crumbs/bread-crumbs.module.d.ts +15 -15
  12. package/bread-crumbs/index.d.ts +5 -5
  13. package/bread-crumbs/public-api.d.ts +3 -3
  14. package/button/button.component.d.ts +102 -102
  15. package/button/button.model.d.ts +14 -14
  16. package/button/button.module.d.ts +13 -13
  17. package/button/index.d.ts +5 -5
  18. package/button/public-api.d.ts +3 -3
  19. package/carousel/carousel-item.directive.d.ts +12 -12
  20. package/carousel/carousel.component.d.ts +148 -148
  21. package/carousel/carousel.module.d.ts +8 -8
  22. package/carousel/index.d.ts +5 -5
  23. package/carousel/public-api.d.ts +3 -3
  24. package/checkbox/checkbox.component.d.ts +50 -50
  25. package/checkbox/checkbox.module.d.ts +19 -19
  26. package/checkbox/index.d.ts +5 -5
  27. package/checkbox/public-api.d.ts +2 -2
  28. package/chip/chip.component.d.ts +18 -0
  29. package/chip/chip.module.d.ts +19 -0
  30. package/chip/index.d.ts +5 -0
  31. package/chip/public-api.d.ts +2 -0
  32. package/color/color-picker.component.d.ts +57 -57
  33. package/color/color.component.d.ts +30 -30
  34. package/color/color.model.d.ts +1 -1
  35. package/color/color.module.d.ts +26 -26
  36. package/color/index.d.ts +5 -5
  37. package/color/public-api.d.ts +3 -3
  38. package/core/clipboard/clipboard.directive.d.ts +5 -5
  39. package/core/clipboard/clipboard.service.d.ts +5 -5
  40. package/core/clipboard/index.d.ts +1 -1
  41. package/core/clipboard/public-api.d.ts +2 -2
  42. package/core/common/directives/auto-width.directive.d.ts +19 -19
  43. package/core/common/directives/button-blur.directive.d.ts +9 -9
  44. package/core/common/directives/button-loader.directive.d.ts +26 -26
  45. package/core/common/directives/data-qa.directive.d.ts +11 -11
  46. package/core/common/directives/index.d.ts +1 -1
  47. package/core/common/directives/menu-blur.directive.d.ts +10 -10
  48. package/core/common/directives/prevent-multi-click.directive.d.ts +7 -7
  49. package/core/common/directives/print.directive.d.ts +75 -75
  50. package/core/common/directives/public-api.d.ts +7 -7
  51. package/core/common/index.d.ts +1 -1
  52. package/core/common/model/index.d.ts +1 -1
  53. package/core/common/model/papi.model.d.ts +2 -2
  54. package/core/common/model/public-api.d.ts +3 -3
  55. package/core/common/model/utilities.model.d.ts +5 -5
  56. package/core/common/model/wapi.model.d.ts +200 -200
  57. package/core/common/pipes/common-pipes.d.ts +57 -57
  58. package/core/common/pipes/date-ago.pipe.d.ts +11 -11
  59. package/core/common/pipes/index.d.ts +1 -1
  60. package/core/common/pipes/public-api.d.ts +2 -2
  61. package/core/common/public-api.d.ts +4 -4
  62. package/core/common/services/addon.service.d.ts +38 -38
  63. package/core/common/services/color.service.d.ts +51 -51
  64. package/core/common/services/cookie.service.d.ts +53 -53
  65. package/core/common/services/data-convertor.service.d.ts +44 -44
  66. package/core/common/services/file.service.d.ts +27 -27
  67. package/core/common/services/index.d.ts +1 -1
  68. package/core/common/services/jwt-helper.service.d.ts +13 -13
  69. package/core/common/services/public-api.d.ts +11 -11
  70. package/core/common/services/session.service.d.ts +18 -18
  71. package/core/common/services/translate.service.d.ts +12 -12
  72. package/core/common/services/utilities.service.d.ts +37 -37
  73. package/core/common/services/validator.service.d.ts +31 -31
  74. package/core/common/services/window-scrolling.service.d.ts +10 -10
  75. package/core/customization/customization.model.d.ts +266 -266
  76. package/core/customization/customization.service.d.ts +159 -159
  77. package/core/customization/index.d.ts +1 -1
  78. package/core/customization/public-api.d.ts +2 -2
  79. package/core/http/index.d.ts +1 -1
  80. package/core/http/interceptors/error.interceptor.d.ts +8 -8
  81. package/core/http/interceptors/index.d.ts +11 -11
  82. package/core/http/interceptors/loader.interceptor.d.ts +11 -11
  83. package/core/http/interceptors/profiler.interceptor.d.ts +8 -8
  84. package/core/http/public-api.d.ts +2 -2
  85. package/core/http/services/http.service.d.ts +28 -28
  86. package/core/http/services/loader.service.d.ts +13 -13
  87. package/core/index.d.ts +1 -1
  88. package/core/layout/index.d.ts +1 -1
  89. package/core/layout/layout.service.d.ts +36 -36
  90. package/core/layout/public-api.d.ts +2 -2
  91. package/core/layout/rtl.directive.d.ts +21 -21
  92. package/core/portal/attach.directive.d.ts +13 -13
  93. package/core/portal/index.d.ts +1 -1
  94. package/core/portal/portal.service.d.ts +12 -12
  95. package/core/portal/public-api.d.ts +3 -3
  96. package/core/portal/target.directive.d.ts +12 -12
  97. package/core/public-api.d.ts +7 -7
  98. package/core/scroll-to/index.d.ts +1 -1
  99. package/core/scroll-to/public-api.d.ts +1 -1
  100. package/core/scroll-to/scroll-to.service.d.ts +11 -11
  101. package/date/date.component.d.ts +69 -69
  102. package/date/date.model.d.ts +31 -31
  103. package/date/date.module.d.ts +23 -23
  104. package/date/index.d.ts +5 -5
  105. package/date/public-api.d.ts +2 -2
  106. package/dialog/default-dialog.component.d.ts +12 -12
  107. package/dialog/dialog.component.d.ts +13 -13
  108. package/dialog/dialog.model.d.ts +31 -31
  109. package/dialog/dialog.module.d.ts +18 -18
  110. package/dialog/dialog.service.d.ts +27 -27
  111. package/dialog/index.d.ts +5 -5
  112. package/dialog/public-api.d.ts +4 -4
  113. package/draggable-items/draggable-item/draggable-item.component.d.ts +11 -11
  114. package/draggable-items/draggable-items.component.d.ts +36 -36
  115. package/draggable-items/draggable-items.model.d.ts +11 -11
  116. package/draggable-items/draggable-items.module.d.ts +18 -18
  117. package/draggable-items/index.d.ts +5 -5
  118. package/draggable-items/public-api.d.ts +4 -4
  119. package/esm2020/address/address.component.mjs +108 -108
  120. package/esm2020/address/address.module.mjs +53 -53
  121. package/esm2020/address/pepperi-addons-ngx-lib-address.mjs +4 -4
  122. package/esm2020/address/public-api.mjs +5 -5
  123. package/esm2020/attachment/attachment.component.mjs +219 -219
  124. package/esm2020/attachment/attachment.module.mjs +49 -49
  125. package/esm2020/attachment/pepperi-addons-ngx-lib-attachment.mjs +4 -4
  126. package/esm2020/attachment/public-api.mjs +5 -5
  127. package/esm2020/bread-crumbs/bread-crumbs.component.mjs +84 -84
  128. package/esm2020/bread-crumbs/bread-crumbs.model.mjs +6 -6
  129. package/esm2020/bread-crumbs/bread-crumbs.module.mjs +49 -49
  130. package/esm2020/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.mjs +4 -4
  131. package/esm2020/bread-crumbs/public-api.mjs +6 -6
  132. package/esm2020/button/button.component.mjs +137 -137
  133. package/esm2020/button/button.model.mjs +5 -5
  134. package/esm2020/button/button.module.mjs +45 -45
  135. package/esm2020/button/pepperi-addons-ngx-lib-button.mjs +4 -4
  136. package/esm2020/button/public-api.mjs +6 -6
  137. package/esm2020/carousel/carousel-item.directive.mjs +32 -32
  138. package/esm2020/carousel/carousel.component.mjs +736 -736
  139. package/esm2020/carousel/carousel.module.mjs +16 -16
  140. package/esm2020/carousel/pepperi-addons-ngx-lib-carousel.mjs +4 -4
  141. package/esm2020/carousel/public-api.mjs +7 -7
  142. package/esm2020/checkbox/checkbox.component.mjs +167 -167
  143. package/esm2020/checkbox/checkbox.module.mjs +62 -62
  144. package/esm2020/checkbox/pepperi-addons-ngx-lib-checkbox.mjs +4 -4
  145. package/esm2020/checkbox/public-api.mjs +5 -5
  146. package/esm2020/chip/chip.component.mjs +36 -0
  147. package/esm2020/chip/chip.module.mjs +60 -0
  148. package/esm2020/chip/pepperi-addons-ngx-lib-chip.mjs +5 -0
  149. package/esm2020/chip/public-api.mjs +6 -0
  150. package/esm2020/color/color-picker.component.mjs +198 -198
  151. package/esm2020/color/color.component.mjs +89 -89
  152. package/esm2020/color/color.model.mjs +1 -1
  153. package/esm2020/color/color.module.mjs +92 -92
  154. package/esm2020/color/pepperi-addons-ngx-lib-color.mjs +4 -4
  155. package/esm2020/color/public-api.mjs +6 -6
  156. package/esm2020/core/clipboard/clipboard.directive.mjs +23 -23
  157. package/esm2020/core/clipboard/clipboard.service.mjs +13 -13
  158. package/esm2020/core/clipboard/index.mjs +4 -4
  159. package/esm2020/core/clipboard/public-api.mjs +5 -5
  160. package/esm2020/core/common/directives/auto-width.directive.mjs +76 -76
  161. package/esm2020/core/common/directives/button-blur.directive.mjs +23 -23
  162. package/esm2020/core/common/directives/button-loader.directive.mjs +111 -111
  163. package/esm2020/core/common/directives/data-qa.directive.mjs +22 -22
  164. package/esm2020/core/common/directives/index.mjs +4 -4
  165. package/esm2020/core/common/directives/menu-blur.directive.mjs +31 -31
  166. package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +26 -26
  167. package/esm2020/core/common/directives/print.directive.mjs +144 -144
  168. package/esm2020/core/common/directives/public-api.mjs +11 -11
  169. package/esm2020/core/common/index.mjs +4 -4
  170. package/esm2020/core/common/model/index.mjs +4 -4
  171. package/esm2020/core/common/model/papi.model.mjs +2 -2
  172. package/esm2020/core/common/model/public-api.mjs +6 -6
  173. package/esm2020/core/common/model/utilities.model.mjs +56 -56
  174. package/esm2020/core/common/model/wapi.model.mjs +155 -155
  175. package/esm2020/core/common/pipes/common-pipes.mjs +166 -166
  176. package/esm2020/core/common/pipes/date-ago.pipe.mjs +45 -45
  177. package/esm2020/core/common/pipes/index.mjs +4 -4
  178. package/esm2020/core/common/pipes/public-api.mjs +5 -5
  179. package/esm2020/core/common/public-api.mjs +7 -7
  180. package/esm2020/core/common/services/addon.service.mjs +153 -151
  181. package/esm2020/core/common/services/color.service.mjs +358 -358
  182. package/esm2020/core/common/services/cookie.service.mjs +152 -152
  183. package/esm2020/core/common/services/data-convertor.service.mjs +118 -118
  184. package/esm2020/core/common/services/file.service.mjs +212 -212
  185. package/esm2020/core/common/services/index.mjs +4 -4
  186. package/esm2020/core/common/services/jwt-helper.service.mjs +105 -105
  187. package/esm2020/core/common/services/public-api.mjs +14 -14
  188. package/esm2020/core/common/services/session.service.mjs +70 -70
  189. package/esm2020/core/common/services/translate.service.mjs +45 -45
  190. package/esm2020/core/common/services/utilities.service.mjs +253 -253
  191. package/esm2020/core/common/services/validator.service.mjs +271 -271
  192. package/esm2020/core/common/services/window-scrolling.service.mjs +31 -31
  193. package/esm2020/core/customization/customization.model.mjs +289 -289
  194. package/esm2020/core/customization/customization.service.mjs +770 -770
  195. package/esm2020/core/customization/index.mjs +4 -4
  196. package/esm2020/core/customization/public-api.mjs +5 -5
  197. package/esm2020/core/http/index.mjs +4 -4
  198. package/esm2020/core/http/interceptors/error.interceptor.mjs +26 -26
  199. package/esm2020/core/http/interceptors/index.mjs +23 -23
  200. package/esm2020/core/http/interceptors/loader.interceptor.mjs +31 -31
  201. package/esm2020/core/http/interceptors/profiler.interceptor.mjs +31 -31
  202. package/esm2020/core/http/public-api.mjs +5 -5
  203. package/esm2020/core/http/services/http.service.mjs +154 -154
  204. package/esm2020/core/http/services/loader.service.mjs +49 -49
  205. package/esm2020/core/index.mjs +4 -4
  206. package/esm2020/core/layout/index.mjs +4 -4
  207. package/esm2020/core/layout/layout.service.mjs +167 -167
  208. package/esm2020/core/layout/public-api.mjs +5 -5
  209. package/esm2020/core/layout/rtl.directive.mjs +43 -43
  210. package/esm2020/core/portal/attach.directive.mjs +26 -26
  211. package/esm2020/core/portal/index.mjs +4 -4
  212. package/esm2020/core/portal/portal.service.mjs +35 -35
  213. package/esm2020/core/portal/public-api.mjs +6 -6
  214. package/esm2020/core/portal/target.directive.mjs +23 -23
  215. package/esm2020/core/public-api.mjs +10 -10
  216. package/esm2020/core/scroll-to/index.mjs +4 -4
  217. package/esm2020/core/scroll-to/public-api.mjs +5 -5
  218. package/esm2020/core/scroll-to/scroll-to.service.mjs +83 -83
  219. package/esm2020/date/date.component.mjs +294 -294
  220. package/esm2020/date/date.model.mjs +53 -53
  221. package/esm2020/date/date.module.mjs +87 -87
  222. package/esm2020/date/pepperi-addons-ngx-lib-date.mjs +4 -4
  223. package/esm2020/date/public-api.mjs +5 -5
  224. package/esm2020/dialog/default-dialog.component.mjs +36 -36
  225. package/esm2020/dialog/dialog.component.mjs +35 -35
  226. package/esm2020/dialog/dialog.model.mjs +32 -32
  227. package/esm2020/dialog/dialog.module.mjs +58 -58
  228. package/esm2020/dialog/dialog.service.mjs +81 -81
  229. package/esm2020/dialog/pepperi-addons-ngx-lib-dialog.mjs +4 -4
  230. package/esm2020/dialog/public-api.mjs +7 -7
  231. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +26 -26
  232. package/esm2020/draggable-items/draggable-items.component.mjs +101 -101
  233. package/esm2020/draggable-items/draggable-items.model.mjs +1 -1
  234. package/esm2020/draggable-items/draggable-items.module.mjs +59 -59
  235. package/esm2020/draggable-items/pepperi-addons-ngx-lib-draggable-items.mjs +4 -4
  236. package/esm2020/draggable-items/public-api.mjs +7 -7
  237. package/esm2020/field-title/field-title.component.mjs +41 -41
  238. package/esm2020/field-title/field-title.module.mjs +46 -46
  239. package/esm2020/field-title/pepperi-addons-ngx-lib-field-title.mjs +4 -4
  240. package/esm2020/field-title/public-api.mjs +5 -5
  241. package/esm2020/files-uploader/files-uploader.component.mjs +240 -240
  242. package/esm2020/files-uploader/files-uploader.module.mjs +78 -78
  243. package/esm2020/files-uploader/pepperi-addons-ngx-lib-files-uploader.mjs +4 -4
  244. package/esm2020/files-uploader/public-api.mjs +5 -5
  245. package/esm2020/form/field-generator.component.mjs +152 -152
  246. package/esm2020/form/form.component.mjs +1224 -1224
  247. package/esm2020/form/form.model.mjs +1 -1
  248. package/esm2020/form/form.module.mjs +175 -175
  249. package/esm2020/form/indicators.component.mjs +22 -22
  250. package/esm2020/form/internal-button.component.mjs +183 -183
  251. package/esm2020/form/internal-carusel.component.mjs +116 -116
  252. package/esm2020/form/internal-carusel.service.mjs +31 -31
  253. package/esm2020/form/internal-field-generator.component.mjs +146 -146
  254. package/esm2020/form/internal-form.component.mjs +1213 -1213
  255. package/esm2020/form/internal-list.component.mjs +509 -509
  256. package/esm2020/form/internal-menu.component.mjs +65 -65
  257. package/esm2020/form/internal-page.component.mjs +361 -361
  258. package/esm2020/form/internal-page.service.mjs +119 -119
  259. package/esm2020/form/pepperi-addons-ngx-lib-form.mjs +4 -4
  260. package/esm2020/form/public-api.mjs +6 -6
  261. package/esm2020/group-buttons/group-buttons.component.mjs +71 -71
  262. package/esm2020/group-buttons/group-buttons.module.mjs +58 -58
  263. package/esm2020/group-buttons/pepperi-addons-ngx-lib-group-buttons.mjs +4 -4
  264. package/esm2020/group-buttons/public-api.mjs +5 -5
  265. package/esm2020/icon/icon-generated-all.model.mjs +107 -105
  266. package/esm2020/icon/icon-generated.model.mjs +414 -406
  267. package/esm2020/icon/icon-registry.service.mjs +24 -24
  268. package/esm2020/icon/icon.component.mjs +90 -90
  269. package/esm2020/icon/icon.module.mjs +19 -19
  270. package/esm2020/icon/icon.service.mjs +30 -30
  271. package/esm2020/icon/pepperi-addons-ngx-lib-icon.mjs +4 -4
  272. package/esm2020/icon/public-api.mjs +10 -10
  273. package/esm2020/image/image.component.mjs +246 -246
  274. package/esm2020/image/image.module.mjs +73 -73
  275. package/esm2020/image/image.service.mjs +51 -51
  276. package/esm2020/image/pepperi-addons-ngx-lib-image.mjs +4 -4
  277. package/esm2020/image/public-api.mjs +6 -6
  278. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +336 -336
  279. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +82 -82
  280. package/esm2020/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.mjs +4 -4
  281. package/esm2020/images-filmstrip/public-api.mjs +5 -5
  282. package/esm2020/link/link.component.mjs +338 -338
  283. package/esm2020/link/link.module.mjs +79 -79
  284. package/esm2020/link/link.pipes.mjs +17 -17
  285. package/esm2020/link/pepperi-addons-ngx-lib-link.mjs +4 -4
  286. package/esm2020/link/public-api.mjs +5 -5
  287. package/esm2020/list/list-actions.component.mjs +43 -43
  288. package/esm2020/list/list-carousel.component.mjs +106 -106
  289. package/esm2020/list/list-chooser.component.mjs +63 -63
  290. package/esm2020/list/list-pager.component.mjs +119 -119
  291. package/esm2020/list/list-sorting.component.mjs +60 -60
  292. package/esm2020/list/list-total.component.mjs +29 -29
  293. package/esm2020/list/list-views.component.mjs +84 -84
  294. package/esm2020/list/list.component.mjs +1159 -1159
  295. package/esm2020/list/list.model.mjs +3 -3
  296. package/esm2020/list/list.module.mjs +143 -143
  297. package/esm2020/list/list.pipes.mjs +46 -46
  298. package/esm2020/list/pepperi-addons-ngx-lib-list.mjs +4 -4
  299. package/esm2020/list/public-api.mjs +14 -14
  300. package/esm2020/list/virtual-scroller.mjs +1060 -1060
  301. package/esm2020/menu/menu-item.component.mjs +114 -114
  302. package/esm2020/menu/menu.component.mjs +204 -204
  303. package/esm2020/menu/menu.model.mjs +18 -18
  304. package/esm2020/menu/menu.module.mjs +58 -58
  305. package/esm2020/menu/pepperi-addons-ngx-lib-menu.mjs +4 -4
  306. package/esm2020/menu/public-api.mjs +6 -6
  307. package/esm2020/ngx-lib.module.mjs +157 -157
  308. package/esm2020/page-layout/page-layout.component.mjs +34 -34
  309. package/esm2020/page-layout/page-layout.module.mjs +33 -33
  310. package/esm2020/page-layout/pepperi-addons-ngx-lib-page-layout.mjs +4 -4
  311. package/esm2020/page-layout/public-api.mjs +5 -5
  312. package/esm2020/pepperi-addons-ngx-lib.mjs +4 -4
  313. package/esm2020/plugin/pepperi-addons-ngx-lib-plugin.mjs +4 -4
  314. package/esm2020/plugin/plugin-proxy.component.mjs +93 -93
  315. package/esm2020/plugin/plugin.model.mjs +1 -1
  316. package/esm2020/plugin/public-api.mjs +5 -5
  317. package/esm2020/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.mjs +4 -4
  318. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +44 -44
  319. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +64 -64
  320. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +94 -94
  321. package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +1 -1
  322. package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +87 -87
  323. package/esm2020/profile-data-views-list/public-api.mjs +8 -8
  324. package/esm2020/public-api.mjs +5 -5
  325. package/esm2020/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.mjs +4 -4
  326. package/esm2020/quantity-selector/public-api.mjs +5 -5
  327. package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +46 -46
  328. package/esm2020/quantity-selector/quantity-selector.component.mjs +510 -510
  329. package/esm2020/quantity-selector/quantity-selector.module.mjs +81 -81
  330. package/esm2020/quantity-selector/quantity-selector.pipes.mjs +22 -22
  331. package/esm2020/query-builder/common/model/field.mjs +1 -1
  332. package/esm2020/query-builder/common/model/filter.mjs +1 -1
  333. package/esm2020/query-builder/common/model/legacy.mjs +1 -1
  334. package/esm2020/query-builder/common/model/operator-unit.mjs +41 -41
  335. package/esm2020/query-builder/common/model/operator.mjs +265 -265
  336. package/esm2020/query-builder/common/model/structure.mjs +1 -1
  337. package/esm2020/query-builder/common/model/type-map.mjs +26 -26
  338. package/esm2020/query-builder/common/model/type.mjs +5 -5
  339. package/esm2020/query-builder/common/services/output-query.service.mjs +113 -113
  340. package/esm2020/query-builder/common/services/query-structure.service.mjs +225 -225
  341. package/esm2020/query-builder/common/services/type-convertor.service.mjs +41 -41
  342. package/esm2020/query-builder/pepperi-addons-ngx-lib-query-builder.mjs +4 -4
  343. package/esm2020/query-builder/public-api.mjs +8 -8
  344. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +124 -124
  345. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +70 -70
  346. package/esm2020/query-builder/query-builder.component.mjs +109 -109
  347. package/esm2020/query-builder/query-builder.module.mjs +58 -58
  348. package/esm2020/query-builder/query-builder.service.mjs +101 -101
  349. package/esm2020/remote-loader/addon-block-loader.component.mjs +83 -83
  350. package/esm2020/remote-loader/addon-block-loader.service.mjs +59 -59
  351. package/esm2020/remote-loader/pepperi-addons-ngx-lib-remote-loader.mjs +4 -4
  352. package/esm2020/remote-loader/public-api.mjs +9 -9
  353. package/esm2020/remote-loader/remote-loader.component.mjs +105 -105
  354. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  355. package/esm2020/remote-loader/remote-loader.module.mjs +59 -59
  356. package/esm2020/remote-loader/remote-loader.service.mjs +57 -57
  357. package/esm2020/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.mjs +4 -4
  358. package/esm2020/rich-html-textarea/public-api.mjs +5 -5
  359. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +244 -244
  360. package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +94 -94
  361. package/esm2020/search/pepperi-addons-ngx-lib-search.mjs +4 -4
  362. package/esm2020/search/public-api.mjs +6 -6
  363. package/esm2020/search/search.component.mjs +316 -316
  364. package/esm2020/search/search.model.mjs +1 -1
  365. package/esm2020/search/search.module.mjs +69 -69
  366. package/esm2020/select/pepperi-addons-ngx-lib-select.mjs +4 -4
  367. package/esm2020/select/public-api.mjs +5 -5
  368. package/esm2020/select/select.component.mjs +263 -263
  369. package/esm2020/select/select.module.mjs +69 -69
  370. package/esm2020/separator/pepperi-addons-ngx-lib-separator.mjs +4 -4
  371. package/esm2020/separator/public-api.mjs +5 -5
  372. package/esm2020/separator/separator.component.mjs +62 -62
  373. package/esm2020/separator/separator.module.mjs +17 -17
  374. package/esm2020/side-bar/pepperi-addons-ngx-lib-side-bar.mjs +4 -4
  375. package/esm2020/side-bar/public-api.mjs +6 -6
  376. package/esm2020/side-bar/side-bar.component.mjs +121 -121
  377. package/esm2020/side-bar/side-bar.model.mjs +1 -1
  378. package/esm2020/side-bar/side-bar.module.mjs +54 -54
  379. package/esm2020/signature/pepperi-addons-ngx-lib-signature.mjs +4 -4
  380. package/esm2020/signature/public-api.mjs +5 -5
  381. package/esm2020/signature/signature.component.mjs +253 -253
  382. package/esm2020/signature/signature.module.mjs +89 -89
  383. package/esm2020/size-detector/pepperi-addons-ngx-lib-size-detector.mjs +4 -4
  384. package/esm2020/size-detector/public-api.mjs +5 -5
  385. package/esm2020/size-detector/size-detector.component.mjs +91 -91
  386. package/esm2020/size-detector/size-detector.module.mjs +34 -34
  387. package/esm2020/slider/pepperi-addons-ngx-lib-slider.mjs +4 -4
  388. package/esm2020/slider/public-api.mjs +5 -5
  389. package/esm2020/slider/slider.component.mjs +100 -100
  390. package/esm2020/slider/slider.module.mjs +41 -41
  391. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +74 -74
  392. package/esm2020/smart-filters/common/filter-actions.component.mjs +28 -28
  393. package/esm2020/smart-filters/common/model/base-filter-component.mjs +294 -294
  394. package/esm2020/smart-filters/common/model/creator.mjs +75 -75
  395. package/esm2020/smart-filters/common/model/field.mjs +116 -116
  396. package/esm2020/smart-filters/common/model/filter.mjs +1 -1
  397. package/esm2020/smart-filters/common/model/operator.mjs +270 -270
  398. package/esm2020/smart-filters/common/model/type.mjs +1 -1
  399. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +171 -171
  400. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +199 -199
  401. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +115 -115
  402. package/esm2020/smart-filters/pepperi-addons-ngx-lib-smart-filters.mjs +4 -4
  403. package/esm2020/smart-filters/public-api.mjs +18 -18
  404. package/esm2020/smart-filters/smart-filters.component.mjs +140 -140
  405. package/esm2020/smart-filters/smart-filters.module.mjs +157 -157
  406. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +91 -91
  407. package/esm2020/snack-bar/default-snack-bar.component.mjs +28 -28
  408. package/esm2020/snack-bar/pepperi-addons-ngx-lib-snack-bar.mjs +4 -4
  409. package/esm2020/snack-bar/public-api.mjs +7 -7
  410. package/esm2020/snack-bar/snack-bar.component.mjs +25 -25
  411. package/esm2020/snack-bar/snack-bar.model.mjs +6 -6
  412. package/esm2020/snack-bar/snack-bar.module.mjs +62 -62
  413. package/esm2020/snack-bar/snack-bar.service.mjs +59 -59
  414. package/esm2020/textarea/pepperi-addons-ngx-lib-textarea.mjs +4 -4
  415. package/esm2020/textarea/public-api.mjs +5 -5
  416. package/esm2020/textarea/textarea.component.mjs +181 -181
  417. package/esm2020/textarea/textarea.module.mjs +81 -81
  418. package/esm2020/textbox/pepperi-addons-ngx-lib-textbox.mjs +4 -4
  419. package/esm2020/textbox/public-api.mjs +5 -5
  420. package/esm2020/textbox/textbox-validation.directive.mjs +88 -88
  421. package/esm2020/textbox/textbox.component.mjs +448 -442
  422. package/esm2020/textbox/textbox.module.mjs +71 -71
  423. package/esm2020/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.mjs +4 -4
  424. package/esm2020/textbox-icon/public-api.mjs +5 -5
  425. package/esm2020/textbox-icon/textbox-icon.component.mjs +47 -47
  426. package/esm2020/textbox-icon/textbox-icon.module.mjs +63 -63
  427. package/esm2020/top-bar/pepperi-addons-ngx-lib-top-bar.mjs +4 -4
  428. package/esm2020/top-bar/public-api.mjs +6 -6
  429. package/esm2020/top-bar/top-bar.component.mjs +111 -111
  430. package/esm2020/top-bar/top-bar.model.mjs +1 -1
  431. package/esm2020/top-bar/top-bar.module.mjs +61 -61
  432. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +143 -143
  433. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  434. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +253 -253
  435. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +122 -122
  436. package/fesm2015/pepperi-addons-ngx-lib-button.mjs +171 -171
  437. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +780 -780
  438. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +206 -206
  439. package/fesm2015/pepperi-addons-ngx-lib-chip.mjs +104 -0
  440. package/fesm2015/pepperi-addons-ngx-lib-chip.mjs.map +1 -0
  441. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +336 -336
  442. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  443. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +397 -397
  444. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +207 -207
  445. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +163 -163
  446. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +73 -73
  447. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +291 -291
  448. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +4112 -4112
  449. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  450. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +109 -109
  451. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  452. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +668 -658
  453. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  454. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +340 -340
  455. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +390 -390
  456. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +401 -401
  457. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +2822 -2822
  458. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  459. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +360 -360
  460. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +59 -59
  461. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs +97 -97
  462. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +254 -254
  463. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +620 -620
  464. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +1119 -1119
  465. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +342 -342
  466. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +300 -300
  467. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +356 -356
  468. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +305 -305
  469. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +73 -73
  470. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +158 -158
  471. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +311 -311
  472. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +114 -114
  473. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +130 -130
  474. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +1602 -1602
  475. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  476. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +152 -152
  477. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +232 -232
  478. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +95 -95
  479. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +573 -567
  480. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  481. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +155 -155
  482. package/fesm2015/pepperi-addons-ngx-lib.mjs +4452 -4448
  483. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  484. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +143 -143
  485. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  486. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +253 -253
  487. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs +122 -122
  488. package/fesm2020/pepperi-addons-ngx-lib-button.mjs +171 -171
  489. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +776 -776
  490. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +206 -206
  491. package/fesm2020/pepperi-addons-ngx-lib-chip.mjs +104 -0
  492. package/fesm2020/pepperi-addons-ngx-lib-chip.mjs.map +1 -0
  493. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +333 -333
  494. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  495. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +393 -393
  496. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +203 -203
  497. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +162 -162
  498. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +73 -73
  499. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +288 -288
  500. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +4111 -4111
  501. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  502. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +109 -109
  503. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  504. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +666 -656
  505. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  506. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +338 -338
  507. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +387 -387
  508. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +401 -401
  509. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +2808 -2808
  510. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  511. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +360 -360
  512. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +59 -59
  513. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs +92 -92
  514. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +253 -253
  515. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +619 -619
  516. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +1108 -1108
  517. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +332 -332
  518. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +300 -300
  519. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +355 -355
  520. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +305 -305
  521. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs +73 -73
  522. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +158 -158
  523. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +311 -311
  524. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +114 -114
  525. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +129 -129
  526. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +1595 -1595
  527. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  528. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +149 -149
  529. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +231 -231
  530. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +95 -95
  531. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +573 -567
  532. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  533. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +154 -154
  534. package/fesm2020/pepperi-addons-ngx-lib.mjs +4432 -4430
  535. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  536. package/field-title/field-title.component.d.ts +14 -14
  537. package/field-title/field-title.module.d.ts +15 -15
  538. package/field-title/index.d.ts +5 -5
  539. package/field-title/public-api.d.ts +2 -2
  540. package/files-uploader/files-uploader.component.d.ts +57 -57
  541. package/files-uploader/files-uploader.module.d.ts +21 -21
  542. package/files-uploader/index.d.ts +5 -5
  543. package/files-uploader/public-api.d.ts +2 -2
  544. package/form/field-generator.component.d.ts +39 -39
  545. package/form/form.component.d.ts +93 -93
  546. package/form/form.model.d.ts +20 -20
  547. package/form/form.module.d.ts +49 -49
  548. package/form/index.d.ts +5 -5
  549. package/form/indicators.component.d.ts +10 -10
  550. package/form/internal-button.component.d.ts +42 -42
  551. package/form/internal-carusel.component.d.ts +39 -39
  552. package/form/internal-carusel.service.d.ts +10 -10
  553. package/form/internal-field-generator.component.d.ts +35 -35
  554. package/form/internal-form.component.d.ts +89 -89
  555. package/form/internal-list.component.d.ts +95 -95
  556. package/form/internal-menu.component.d.ts +19 -19
  557. package/form/internal-page.component.d.ts +73 -73
  558. package/form/internal-page.service.d.ts +22 -22
  559. package/form/public-api.d.ts +3 -3
  560. package/group-buttons/group-buttons.component.d.ts +24 -24
  561. package/group-buttons/group-buttons.module.d.ts +18 -18
  562. package/group-buttons/index.d.ts +5 -5
  563. package/group-buttons/public-api.d.ts +2 -2
  564. package/icon/icon-generated-all.model.d.ts +105 -103
  565. package/icon/icon-generated.model.d.ts +418 -410
  566. package/icon/icon-registry.service.d.ts +9 -9
  567. package/icon/icon.component.d.ts +49 -49
  568. package/icon/icon.module.d.ts +7 -7
  569. package/icon/icon.service.d.ts +13 -13
  570. package/icon/index.d.ts +5 -5
  571. package/icon/public-api.d.ts +6 -6
  572. package/image/image.component.d.ts +66 -66
  573. package/image/image.module.d.ts +20 -20
  574. package/image/image.service.d.ts +14 -14
  575. package/image/index.d.ts +5 -5
  576. package/image/public-api.d.ts +3 -3
  577. package/images-filmstrip/images-filmstrip.component.d.ts +87 -87
  578. package/images-filmstrip/images-filmstrip.module.d.ts +22 -22
  579. package/images-filmstrip/index.d.ts +5 -5
  580. package/images-filmstrip/public-api.d.ts +2 -2
  581. package/index.d.ts +5 -5
  582. package/link/index.d.ts +5 -5
  583. package/link/link.component.d.ts +133 -133
  584. package/link/link.module.d.ts +22 -22
  585. package/link/link.pipes.d.ts +7 -7
  586. package/link/public-api.d.ts +2 -2
  587. package/list/index.d.ts +5 -5
  588. package/list/list-actions.component.d.ts +18 -18
  589. package/list/list-carousel.component.d.ts +40 -40
  590. package/list/list-chooser.component.d.ts +29 -29
  591. package/list/list-pager.component.d.ts +39 -39
  592. package/list/list-sorting.component.d.ts +30 -30
  593. package/list/list-total.component.d.ts +11 -11
  594. package/list/list-views.component.d.ts +35 -35
  595. package/list/list.component.d.ts +164 -164
  596. package/list/list.model.d.ts +31 -31
  597. package/list/list.module.d.ts +34 -34
  598. package/list/list.pipes.d.ts +16 -16
  599. package/list/public-api.d.ts +10 -10
  600. package/list/virtual-scroller.d.ts +183 -183
  601. package/menu/index.d.ts +5 -5
  602. package/menu/menu-item.component.d.ts +28 -28
  603. package/menu/menu.component.d.ts +46 -46
  604. package/menu/menu.model.d.ts +25 -25
  605. package/menu/menu.module.d.ts +18 -18
  606. package/menu/public-api.d.ts +3 -3
  607. package/ngx-lib.module.d.ts +23 -23
  608. package/package.json +9 -1
  609. package/page-layout/index.d.ts +5 -5
  610. package/page-layout/page-layout.component.d.ts +19 -19
  611. package/page-layout/page-layout.module.d.ts +10 -10
  612. package/page-layout/public-api.d.ts +2 -2
  613. package/plugin/index.d.ts +5 -5
  614. package/plugin/plugin-proxy.component.d.ts +25 -25
  615. package/plugin/plugin.model.d.ts +6 -6
  616. package/plugin/public-api.d.ts +2 -2
  617. package/profile-data-views-list/index.d.ts +5 -5
  618. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +18 -18
  619. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +24 -24
  620. package/profile-data-views-list/profile-data-views-list.component.d.ts +35 -35
  621. package/profile-data-views-list/profile-data-views-list.model.d.ts +18 -18
  622. package/profile-data-views-list/profile-data-views-list.module.d.ts +23 -23
  623. package/profile-data-views-list/public-api.d.ts +5 -5
  624. package/public-api.d.ts +2 -2
  625. package/quantity-selector/index.d.ts +5 -5
  626. package/quantity-selector/public-api.d.ts +2 -2
  627. package/quantity-selector/quantity-selector-validation.directive.d.ts +16 -16
  628. package/quantity-selector/quantity-selector.component.d.ts +101 -101
  629. package/quantity-selector/quantity-selector.module.d.ts +23 -23
  630. package/quantity-selector/quantity-selector.pipes.d.ts +7 -7
  631. package/query-builder/common/model/field.d.ts +8 -8
  632. package/query-builder/common/model/filter.d.ts +6 -6
  633. package/query-builder/common/model/legacy.d.ts +29 -29
  634. package/query-builder/common/model/operator-unit.d.ts +13 -13
  635. package/query-builder/common/model/operator.d.ts +21 -21
  636. package/query-builder/common/model/structure.d.ts +4 -4
  637. package/query-builder/common/model/type-map.d.ts +12 -12
  638. package/query-builder/common/model/type.d.ts +4 -4
  639. package/query-builder/common/services/output-query.service.d.ts +47 -47
  640. package/query-builder/common/services/query-structure.service.d.ts +82 -82
  641. package/query-builder/common/services/type-convertor.service.d.ts +13 -13
  642. package/query-builder/index.d.ts +5 -5
  643. package/query-builder/public-api.d.ts +5 -5
  644. package/query-builder/query-builder-item/query-builder-item.component.d.ts +41 -41
  645. package/query-builder/query-builder-section/query-builder-section.component.d.ts +30 -30
  646. package/query-builder/query-builder.component.d.ts +39 -39
  647. package/query-builder/query-builder.module.d.ts +16 -16
  648. package/query-builder/query-builder.service.d.ts +30 -30
  649. package/remote-loader/addon-block-loader.component.d.ts +32 -32
  650. package/remote-loader/addon-block-loader.service.d.ts +15 -15
  651. package/remote-loader/index.d.ts +5 -5
  652. package/remote-loader/public-api.d.ts +6 -6
  653. package/remote-loader/remote-loader.component.d.ts +25 -25
  654. package/remote-loader/remote-loader.model.d.ts +37 -37
  655. package/remote-loader/remote-loader.module.d.ts +13 -13
  656. package/remote-loader/remote-loader.service.d.ts +17 -17
  657. package/rich-html-textarea/index.d.ts +5 -5
  658. package/rich-html-textarea/public-api.d.ts +2 -2
  659. package/rich-html-textarea/rich-html-textarea.component.d.ts +78 -78
  660. package/rich-html-textarea/rich-html-textarea.module.d.ts +25 -25
  661. package/search/index.d.ts +5 -5
  662. package/search/public-api.d.ts +3 -3
  663. package/search/search.component.d.ts +65 -65
  664. package/search/search.model.d.ts +14 -14
  665. package/search/search.module.d.ts +20 -20
  666. package/select/index.d.ts +5 -5
  667. package/select/public-api.d.ts +2 -2
  668. package/select/select.component.d.ts +59 -59
  669. package/select/select.module.d.ts +20 -20
  670. package/separator/index.d.ts +5 -5
  671. package/separator/public-api.d.ts +2 -2
  672. package/separator/separator.component.d.ts +22 -22
  673. package/separator/separator.module.d.ts +8 -8
  674. package/side-bar/index.d.ts +5 -5
  675. package/side-bar/public-api.d.ts +3 -3
  676. package/side-bar/side-bar.component.d.ts +42 -42
  677. package/side-bar/side-bar.model.d.ts +4 -4
  678. package/side-bar/side-bar.module.d.ts +16 -16
  679. package/signature/index.d.ts +5 -5
  680. package/signature/public-api.d.ts +2 -2
  681. package/signature/signature.component.d.ts +68 -68
  682. package/signature/signature.module.d.ts +24 -24
  683. package/size-detector/index.d.ts +5 -5
  684. package/size-detector/public-api.d.ts +2 -2
  685. package/size-detector/size-detector.component.d.ts +29 -29
  686. package/size-detector/size-detector.module.d.ts +11 -11
  687. package/slider/index.d.ts +5 -5
  688. package/slider/public-api.d.ts +2 -2
  689. package/slider/slider.component.d.ts +39 -39
  690. package/slider/slider.module.d.ts +12 -12
  691. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +28 -28
  692. package/smart-filters/common/filter-actions.component.d.ts +12 -12
  693. package/smart-filters/common/model/base-filter-component.d.ts +73 -73
  694. package/smart-filters/common/model/creator.d.ts +6 -6
  695. package/smart-filters/common/model/field.d.ts +69 -69
  696. package/smart-filters/common/model/filter.d.ts +11 -11
  697. package/smart-filters/common/model/operator.d.ts +51 -51
  698. package/smart-filters/common/model/type.d.ts +4 -4
  699. package/smart-filters/date-filter/date-filter.component.d.ts +59 -59
  700. package/smart-filters/index.d.ts +5 -5
  701. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +56 -56
  702. package/smart-filters/number-filter/number-filter.component.d.ts +51 -51
  703. package/smart-filters/public-api.d.ts +14 -14
  704. package/smart-filters/smart-filters.component.d.ts +35 -35
  705. package/smart-filters/smart-filters.module.d.ts +37 -37
  706. package/smart-filters/text-filter/text-filter.component.d.ts +28 -28
  707. package/snack-bar/default-snack-bar.component.d.ts +13 -13
  708. package/snack-bar/index.d.ts +5 -5
  709. package/snack-bar/public-api.d.ts +4 -4
  710. package/snack-bar/snack-bar.component.d.ts +12 -12
  711. package/snack-bar/snack-bar.model.d.ts +8 -8
  712. package/snack-bar/snack-bar.module.d.ts +19 -19
  713. package/snack-bar/snack-bar.service.d.ts +24 -24
  714. package/src/core/style/components/checkbox.scss +1 -1
  715. package/textarea/index.d.ts +5 -5
  716. package/textarea/public-api.d.ts +2 -2
  717. package/textarea/textarea.component.d.ts +54 -54
  718. package/textarea/textarea.module.d.ts +23 -23
  719. package/textbox/index.d.ts +5 -5
  720. package/textbox/public-api.d.ts +2 -2
  721. package/textbox/textbox-validation.directive.d.ts +21 -21
  722. package/textbox/textbox.component.d.ts +145 -143
  723. package/textbox/textbox.module.d.ts +22 -22
  724. package/textbox-icon/index.d.ts +5 -5
  725. package/textbox-icon/public-api.d.ts +2 -2
  726. package/textbox-icon/textbox-icon.component.d.ts +13 -13
  727. package/textbox-icon/textbox-icon.module.d.ts +16 -16
  728. package/top-bar/index.d.ts +5 -5
  729. package/top-bar/public-api.d.ts +3 -3
  730. package/top-bar/top-bar.component.d.ts +39 -39
  731. package/top-bar/top-bar.model.d.ts +4 -4
  732. package/top-bar/top-bar.module.d.ts +18 -18
@@ -1,141 +1,141 @@
1
- import { Component, Input, ChangeDetectionStrategy, Output, EventEmitter, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@pepperi-addons/ngx-lib";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "@angular/cdk/bidi";
6
- import * as i4 from "@angular/material/chips";
7
- import * as i5 from "@angular/material/expansion";
8
- import * as i6 from "@angular/material/icon";
9
- import * as i7 from "@pepperi-addons/ngx-lib/icon";
10
- import * as i8 from "./text-filter/text-filter.component";
11
- import * as i9 from "./boolean-filter/boolean-filter.component";
12
- import * as i10 from "./date-filter/date-filter.component";
13
- import * as i11 from "./multi-select-filter/multi-select-filter.component";
14
- import * as i12 from "./number-filter/number-filter.component";
15
- import * as i13 from "@ngx-translate/core";
16
- export class PepSmartFiltersComponent {
17
- constructor(hostElement, layoutService) {
18
- this.hostElement = hostElement;
19
- this.layoutService = layoutService;
20
- this.title = '';
21
- this.filtersDataMap = new Map();
22
- this._filters = [];
23
- this._fields = [];
24
- this._useAsWebComponent = false;
25
- // @Output()
26
- // filtersClear: EventEmitter<void> = new EventEmitter<void>();
27
- this.filtersChange = new EventEmitter();
28
- this.fieldToggleChange = new EventEmitter();
29
- this.expansionPanelHeaderHeight = '*';
30
- }
31
- set filters(value) {
32
- this._filters = value;
33
- this.setupFilters(value);
34
- }
35
- get filters() {
36
- this._filters = [...this.filtersDataMap.keys()]
37
- // .filter((key) => this.filtersDataMap.get(key) !== null)
38
- .map((key) => {
39
- if (key) {
40
- return this.filtersDataMap.get(key);
41
- }
42
- });
43
- return this._filters;
44
- }
45
- set fields(value) {
46
- this._fields = value;
47
- }
48
- get fields() {
49
- return this._fields;
50
- }
51
- set useAsWebComponent(value) {
52
- if (value) {
53
- this.exportFunctionsOnHostElement();
54
- }
55
- }
56
- get useAsWebComponent() {
57
- return this._useAsWebComponent;
58
- }
59
- exportFunctionsOnHostElement() {
60
- // This is for web component usage for use those functions.
61
- this.hostElement.nativeElement.clearFilters = this.clearFilters.bind(this);
62
- this.hostElement.nativeElement.clearFilter = this.clearFilter.bind(this);
63
- this.hostElement.nativeElement.toggleField = this.toggleField.bind(this);
64
- }
65
- setupFilters(value) {
66
- this.filtersDataMap.clear();
67
- if (value) {
68
- value.forEach((filter) => {
69
- // Validate before add the filter into the map.
70
- let currentField = null;
71
- if (this.fields && this.fields.length > 0) {
72
- currentField = this.fields.find((field) => field.id === filter.fieldId);
73
- }
74
- if (currentField) {
75
- // Only if the operator is from the same type
76
- if (filter.operator.componentType.includes(currentField.componentType)) {
77
- let isOperatorUnitValid = true;
78
- if (filter.operatorUnit) {
79
- // Only if the operator unit is not from the same type
80
- if (!filter.operatorUnit.componentType.includes(currentField.componentType)) {
81
- isOperatorUnitValid = false;
82
- }
83
- }
84
- // Add the filter.
85
- if (isOperatorUnitValid) {
86
- this.filtersDataMap.set(filter.fieldId, filter);
87
- }
88
- }
89
- }
90
- });
91
- }
92
- }
93
- raiseFiltersChange() {
94
- this.filtersChange.emit(this.filters);
95
- }
96
- toggleField(index, isOpen) {
97
- this.fields[index].isOpen = isOpen;
98
- this.fieldToggleChange.emit(this.fields[index]);
99
- }
100
- clearFilters() {
101
- this.filtersDataMap.clear();
102
- }
103
- clearFilter(fieldId) {
104
- this.filtersDataMap.delete(fieldId);
105
- }
106
- // Clear all the filters and raise event that filters has change.
107
- onFiltersClear() {
108
- this.clearFilters();
109
- this.raiseFiltersChange();
110
- }
111
- // Clear the filter and raise event that filters has change.
112
- onFilterClear(field) {
113
- this.clearFilter(field.id);
114
- this.raiseFiltersChange();
115
- }
116
- // Set the filter and raise event that filters has change.
117
- onFilterChange(field, filterData) {
118
- this.clearFilter(field.id);
119
- this.filtersDataMap.set(field.id, filterData);
120
- this.raiseFiltersChange();
121
- }
122
- }
123
- PepSmartFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSmartFiltersComponent, deps: [{ token: i0.ElementRef }, { token: i1.PepLayoutService }], target: i0.ɵɵFactoryTarget.Component });
124
- PepSmartFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepSmartFiltersComponent, selector: "pep-smart-filters", inputs: { title: "title", filters: "filters", fields: "fields", useAsWebComponent: "useAsWebComponent" }, outputs: { filtersChange: "filtersChange", fieldToggleChange: "fieldToggleChange" }, ngImport: i0, template: "<div class=\"smart-filters-container\" dir=\"{{ layoutService.isRtl() ? 'rtl' : 'ltr' }}\">\n <div *ngIf=\"fields?.length > 0\" class=\"title\">\n <span class=\"body-md bold\">{{ title?.length > 0 ? title : (\"SMART_FILTERS.TITLE\" | translate)}}</span>\n <mat-chip *ngIf=\"filtersDataMap.size > 0\" [selectable]=\"false\" [removable]=\"true\" (click)=\"onFiltersClear()\"\n class=\"clear-filter pep-button chip xs weak\">\n <span class=\"body-xs ellipsis \">\n {{ \"ACTIONS.CLEAR\" | translate}}\n </span>\n </mat-chip>\n </div>\n\n <mat-accordion [displayMode]=\"'flat'\" [multi]=\"true\" class=\"pep-accordion2\">\n <mat-expansion-panel *ngFor=\"let field of fields; let i = index\" hideToggle=\"true\" [expanded]=\"field.isOpen\"\n (opened)=\"toggleField(i, true)\" (closed)=\"toggleField(i, false)\">\n <mat-expansion-panel-header [collapsedHeight]=\"expansionPanelHeaderHeight\"\n [expandedHeight]=\"expansionPanelHeaderHeight\">\n <mat-panel-title class=\"pep-spacing-element-negative\">\n <div class=\"smart-filter-title-container\">\n <mat-icon class=\"pep-spacing-element\">\n <pep-icon [name]=\"field.isOpen ? 'number_minus' : 'number_plus'\"></pep-icon>\n </mat-icon>\n <span class=\"body-sm ellipsis\" [title]=\"field.name\">\n {{ field.name }}\n </span>\n <mat-chip *ngIf=\"filtersDataMap.get(field.id)\" [selectable]=\"false\" [removable]=\"true\"\n (click)=\"onFilterClear(field)\" class=\"clear-filter pep-button chip xs weak\">\n <span *ngIf=\"field.componentType === 'multi-select'\" class=\"body-xs pep-spacing-element\">\n {{ filtersDataMap.get(field.id).value?.first?.length }}\n <!-- {{ field.componentType === 'multi-select' ?\n filtersDataMap.get(field.id).value?.first?.length : 1 }} -->\n </span>\n <mat-icon>\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n </mat-chip>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"expansion-content smart-filter-content\">\n <ng-container [ngSwitch]=\"field.componentType\">\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-number-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-text-filter>\n </ng-container>\n <!-- <div *ngSwitchDefault>\n </div> -->\n </ng-container>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n</div>", styles: [".smart-filters-container .title{height:calc(var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));display:flex;flex-flow:wrap;align-items:center;justify-content:space-between}.smart-filters-container .title .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;margin:0 var(--pep-spacing-xs, .25rem);padding:0 var(--pep-spacing-md, .75rem)}.smart-filters-container .title .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container{display:grid;grid-auto-flow:column;grid-template-columns:auto 1fr auto;width:100%}.smart-filters-container .smart-filter-title-container>*{align-self:center}.smart-filters-container .smart-filter-title-container .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;margin-inline-end:var(--pep-spacing-sm, .5rem)}.smart-filters-container .smart-filter-title-container .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container .mat-icon pep-icon{height:.75rem;width:.75rem}\n", ".smart-filters-container .clear-filter.weak{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.smart-filters-container .clear-filter.weak:hover{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.16)}.smart-filters-container .clear-filter.weak: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)}.smart-filters-container .clear-filter.weak: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%))}.smart-filters-container .clear-filter.weak:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right: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%))}.smart-filters-container .clear-filter.weak: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}.smart-filters-container .clear-filter.weak: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%))}.smart-filters-container .clear-filter.weak:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right: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%))}.smart-filters-container .clear-filter.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:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.04)!important}.smart-filters-container .clear-filter.weak:disabled:not(.ignore-disabled):after{border:unset}.smart-filters-container .clear-filter.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)}.smart-filters-container .clear-filter.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)}\n"], 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: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i5.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i5.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i8.PepTextFilterComponent, selector: "pep-text-filter" }, { kind: "component", type: i9.PepBooleanFilterComponent, selector: "pep-boolean-filter", inputs: ["options"] }, { kind: "component", type: i10.PepDateFilterComponent, selector: "pep-date-filter" }, { kind: "component", type: i11.PepMultiSelectFilterComponent, selector: "pep-multi-select-filter" }, { kind: "component", type: i12.PepNumberFilterComponent, selector: "pep-number-filter" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSmartFiltersComponent, decorators: [{
126
- type: Component,
127
- args: [{ selector: 'pep-smart-filters', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"smart-filters-container\" dir=\"{{ layoutService.isRtl() ? 'rtl' : 'ltr' }}\">\n <div *ngIf=\"fields?.length > 0\" class=\"title\">\n <span class=\"body-md bold\">{{ title?.length > 0 ? title : (\"SMART_FILTERS.TITLE\" | translate)}}</span>\n <mat-chip *ngIf=\"filtersDataMap.size > 0\" [selectable]=\"false\" [removable]=\"true\" (click)=\"onFiltersClear()\"\n class=\"clear-filter pep-button chip xs weak\">\n <span class=\"body-xs ellipsis \">\n {{ \"ACTIONS.CLEAR\" | translate}}\n </span>\n </mat-chip>\n </div>\n\n <mat-accordion [displayMode]=\"'flat'\" [multi]=\"true\" class=\"pep-accordion2\">\n <mat-expansion-panel *ngFor=\"let field of fields; let i = index\" hideToggle=\"true\" [expanded]=\"field.isOpen\"\n (opened)=\"toggleField(i, true)\" (closed)=\"toggleField(i, false)\">\n <mat-expansion-panel-header [collapsedHeight]=\"expansionPanelHeaderHeight\"\n [expandedHeight]=\"expansionPanelHeaderHeight\">\n <mat-panel-title class=\"pep-spacing-element-negative\">\n <div class=\"smart-filter-title-container\">\n <mat-icon class=\"pep-spacing-element\">\n <pep-icon [name]=\"field.isOpen ? 'number_minus' : 'number_plus'\"></pep-icon>\n </mat-icon>\n <span class=\"body-sm ellipsis\" [title]=\"field.name\">\n {{ field.name }}\n </span>\n <mat-chip *ngIf=\"filtersDataMap.get(field.id)\" [selectable]=\"false\" [removable]=\"true\"\n (click)=\"onFilterClear(field)\" class=\"clear-filter pep-button chip xs weak\">\n <span *ngIf=\"field.componentType === 'multi-select'\" class=\"body-xs pep-spacing-element\">\n {{ filtersDataMap.get(field.id).value?.first?.length }}\n <!-- {{ field.componentType === 'multi-select' ?\n filtersDataMap.get(field.id).value?.first?.length : 1 }} -->\n </span>\n <mat-icon>\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n </mat-chip>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"expansion-content smart-filter-content\">\n <ng-container [ngSwitch]=\"field.componentType\">\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-number-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-text-filter>\n </ng-container>\n <!-- <div *ngSwitchDefault>\n </div> -->\n </ng-container>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n</div>", styles: [".smart-filters-container .title{height:calc(var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));display:flex;flex-flow:wrap;align-items:center;justify-content:space-between}.smart-filters-container .title .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;margin:0 var(--pep-spacing-xs, .25rem);padding:0 var(--pep-spacing-md, .75rem)}.smart-filters-container .title .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container{display:grid;grid-auto-flow:column;grid-template-columns:auto 1fr auto;width:100%}.smart-filters-container .smart-filter-title-container>*{align-self:center}.smart-filters-container .smart-filter-title-container .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;margin-inline-end:var(--pep-spacing-sm, .5rem)}.smart-filters-container .smart-filter-title-container .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container .mat-icon pep-icon{height:.75rem;width:.75rem}\n", ".smart-filters-container .clear-filter.weak{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.smart-filters-container .clear-filter.weak:hover{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.16)}.smart-filters-container .clear-filter.weak: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)}.smart-filters-container .clear-filter.weak: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%))}.smart-filters-container .clear-filter.weak:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right: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%))}.smart-filters-container .clear-filter.weak: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}.smart-filters-container .clear-filter.weak: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%))}.smart-filters-container .clear-filter.weak:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right: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%))}.smart-filters-container .clear-filter.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:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.04)!important}.smart-filters-container .clear-filter.weak:disabled:not(.ignore-disabled):after{border:unset}.smart-filters-container .clear-filter.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)}.smart-filters-container .clear-filter.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)}\n"] }]
128
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PepLayoutService }]; }, propDecorators: { title: [{
129
- type: Input
130
- }], filters: [{
131
- type: Input
132
- }], fields: [{
133
- type: Input
134
- }], useAsWebComponent: [{
135
- type: Input
136
- }], filtersChange: [{
137
- type: Output
138
- }], fieldToggleChange: [{
139
- type: Output
140
- }] } });
1
+ import { Component, Input, ChangeDetectionStrategy, Output, EventEmitter, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@pepperi-addons/ngx-lib";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/cdk/bidi";
6
+ import * as i4 from "@angular/material/chips";
7
+ import * as i5 from "@angular/material/expansion";
8
+ import * as i6 from "@angular/material/icon";
9
+ import * as i7 from "@pepperi-addons/ngx-lib/icon";
10
+ import * as i8 from "./text-filter/text-filter.component";
11
+ import * as i9 from "./boolean-filter/boolean-filter.component";
12
+ import * as i10 from "./date-filter/date-filter.component";
13
+ import * as i11 from "./multi-select-filter/multi-select-filter.component";
14
+ import * as i12 from "./number-filter/number-filter.component";
15
+ import * as i13 from "@ngx-translate/core";
16
+ export class PepSmartFiltersComponent {
17
+ constructor(hostElement, layoutService) {
18
+ this.hostElement = hostElement;
19
+ this.layoutService = layoutService;
20
+ this.title = '';
21
+ this.filtersDataMap = new Map();
22
+ this._filters = [];
23
+ this._fields = [];
24
+ this._useAsWebComponent = false;
25
+ // @Output()
26
+ // filtersClear: EventEmitter<void> = new EventEmitter<void>();
27
+ this.filtersChange = new EventEmitter();
28
+ this.fieldToggleChange = new EventEmitter();
29
+ this.expansionPanelHeaderHeight = '*';
30
+ }
31
+ set filters(value) {
32
+ this._filters = value;
33
+ this.setupFilters(value);
34
+ }
35
+ get filters() {
36
+ this._filters = [...this.filtersDataMap.keys()]
37
+ // .filter((key) => this.filtersDataMap.get(key) !== null)
38
+ .map((key) => {
39
+ if (key) {
40
+ return this.filtersDataMap.get(key);
41
+ }
42
+ });
43
+ return this._filters;
44
+ }
45
+ set fields(value) {
46
+ this._fields = value;
47
+ }
48
+ get fields() {
49
+ return this._fields;
50
+ }
51
+ set useAsWebComponent(value) {
52
+ if (value) {
53
+ this.exportFunctionsOnHostElement();
54
+ }
55
+ }
56
+ get useAsWebComponent() {
57
+ return this._useAsWebComponent;
58
+ }
59
+ exportFunctionsOnHostElement() {
60
+ // This is for web component usage for use those functions.
61
+ this.hostElement.nativeElement.clearFilters = this.clearFilters.bind(this);
62
+ this.hostElement.nativeElement.clearFilter = this.clearFilter.bind(this);
63
+ this.hostElement.nativeElement.toggleField = this.toggleField.bind(this);
64
+ }
65
+ setupFilters(value) {
66
+ this.filtersDataMap.clear();
67
+ if (value) {
68
+ value.forEach((filter) => {
69
+ // Validate before add the filter into the map.
70
+ let currentField = null;
71
+ if (this.fields && this.fields.length > 0) {
72
+ currentField = this.fields.find((field) => field.id === filter.fieldId);
73
+ }
74
+ if (currentField) {
75
+ // Only if the operator is from the same type
76
+ if (filter.operator.componentType.includes(currentField.componentType)) {
77
+ let isOperatorUnitValid = true;
78
+ if (filter.operatorUnit) {
79
+ // Only if the operator unit is not from the same type
80
+ if (!filter.operatorUnit.componentType.includes(currentField.componentType)) {
81
+ isOperatorUnitValid = false;
82
+ }
83
+ }
84
+ // Add the filter.
85
+ if (isOperatorUnitValid) {
86
+ this.filtersDataMap.set(filter.fieldId, filter);
87
+ }
88
+ }
89
+ }
90
+ });
91
+ }
92
+ }
93
+ raiseFiltersChange() {
94
+ this.filtersChange.emit(this.filters);
95
+ }
96
+ toggleField(index, isOpen) {
97
+ this.fields[index].isOpen = isOpen;
98
+ this.fieldToggleChange.emit(this.fields[index]);
99
+ }
100
+ clearFilters() {
101
+ this.filtersDataMap.clear();
102
+ }
103
+ clearFilter(fieldId) {
104
+ this.filtersDataMap.delete(fieldId);
105
+ }
106
+ // Clear all the filters and raise event that filters has change.
107
+ onFiltersClear() {
108
+ this.clearFilters();
109
+ this.raiseFiltersChange();
110
+ }
111
+ // Clear the filter and raise event that filters has change.
112
+ onFilterClear(field) {
113
+ this.clearFilter(field.id);
114
+ this.raiseFiltersChange();
115
+ }
116
+ // Set the filter and raise event that filters has change.
117
+ onFilterChange(field, filterData) {
118
+ this.clearFilter(field.id);
119
+ this.filtersDataMap.set(field.id, filterData);
120
+ this.raiseFiltersChange();
121
+ }
122
+ }
123
+ PepSmartFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSmartFiltersComponent, deps: [{ token: i0.ElementRef }, { token: i1.PepLayoutService }], target: i0.ɵɵFactoryTarget.Component });
124
+ PepSmartFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepSmartFiltersComponent, selector: "pep-smart-filters", inputs: { title: "title", filters: "filters", fields: "fields", useAsWebComponent: "useAsWebComponent" }, outputs: { filtersChange: "filtersChange", fieldToggleChange: "fieldToggleChange" }, ngImport: i0, template: "<div class=\"smart-filters-container\" dir=\"{{ layoutService.isRtl() ? 'rtl' : 'ltr' }}\">\n <div *ngIf=\"fields?.length > 0\" class=\"title\">\n <span class=\"body-md bold\">{{ title?.length > 0 ? title : (\"SMART_FILTERS.TITLE\" | translate)}}</span>\n <mat-chip *ngIf=\"filtersDataMap.size > 0\" [selectable]=\"false\" [removable]=\"true\" (click)=\"onFiltersClear()\"\n class=\"clear-filter pep-button chip xs weak\">\n <span class=\"body-xs ellipsis \">\n {{ \"ACTIONS.CLEAR\" | translate}}\n </span>\n </mat-chip>\n </div>\n\n <mat-accordion [displayMode]=\"'flat'\" [multi]=\"true\" class=\"pep-accordion2\">\n <mat-expansion-panel *ngFor=\"let field of fields; let i = index\" hideToggle=\"true\" [expanded]=\"field.isOpen\"\n (opened)=\"toggleField(i, true)\" (closed)=\"toggleField(i, false)\">\n <mat-expansion-panel-header [collapsedHeight]=\"expansionPanelHeaderHeight\"\n [expandedHeight]=\"expansionPanelHeaderHeight\">\n <mat-panel-title class=\"pep-spacing-element-negative\">\n <div class=\"smart-filter-title-container\">\n <mat-icon class=\"pep-spacing-element\">\n <pep-icon [name]=\"field.isOpen ? 'number_minus' : 'number_plus'\"></pep-icon>\n </mat-icon>\n <span class=\"body-sm ellipsis\" [title]=\"field.name\">\n {{ field.name }}\n </span>\n <mat-chip *ngIf=\"filtersDataMap.get(field.id)\" [selectable]=\"false\" [removable]=\"true\"\n (click)=\"onFilterClear(field)\" class=\"clear-filter pep-button chip xs weak\">\n <span *ngIf=\"field.componentType === 'multi-select'\" class=\"body-xs pep-spacing-element\">\n {{ filtersDataMap.get(field.id).value?.first?.length }}\n <!-- {{ field.componentType === 'multi-select' ?\n filtersDataMap.get(field.id).value?.first?.length : 1 }} -->\n </span>\n <mat-icon>\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n </mat-chip>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"expansion-content smart-filter-content\">\n <ng-container [ngSwitch]=\"field.componentType\">\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-number-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-text-filter>\n </ng-container>\n <!-- <div *ngSwitchDefault>\n </div> -->\n </ng-container>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n</div>", styles: [".smart-filters-container .title{height:calc(var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));display:flex;flex-flow:wrap;align-items:center;justify-content:space-between}.smart-filters-container .title .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;margin:0 var(--pep-spacing-xs, .25rem);padding:0 var(--pep-spacing-md, .75rem)}.smart-filters-container .title .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container{display:grid;grid-auto-flow:column;grid-template-columns:auto 1fr auto;width:100%}.smart-filters-container .smart-filter-title-container>*{align-self:center}.smart-filters-container .smart-filter-title-container .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;margin-inline-end:var(--pep-spacing-sm, .5rem)}.smart-filters-container .smart-filter-title-container .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container .mat-icon pep-icon{height:.75rem;width:.75rem}\n", ".smart-filters-container .clear-filter.weak{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.smart-filters-container .clear-filter.weak:hover{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.16)}.smart-filters-container .clear-filter.weak: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)}.smart-filters-container .clear-filter.weak: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%))}.smart-filters-container .clear-filter.weak:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right: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%))}.smart-filters-container .clear-filter.weak: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}.smart-filters-container .clear-filter.weak: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%))}.smart-filters-container .clear-filter.weak:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right: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%))}.smart-filters-container .clear-filter.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:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.04)!important}.smart-filters-container .clear-filter.weak:disabled:not(.ignore-disabled):after{border:unset}.smart-filters-container .clear-filter.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)}.smart-filters-container .clear-filter.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)}\n"], 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: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i5.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i5.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i8.PepTextFilterComponent, selector: "pep-text-filter" }, { kind: "component", type: i9.PepBooleanFilterComponent, selector: "pep-boolean-filter", inputs: ["options"] }, { kind: "component", type: i10.PepDateFilterComponent, selector: "pep-date-filter" }, { kind: "component", type: i11.PepMultiSelectFilterComponent, selector: "pep-multi-select-filter" }, { kind: "component", type: i12.PepNumberFilterComponent, selector: "pep-number-filter" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSmartFiltersComponent, decorators: [{
126
+ type: Component,
127
+ args: [{ selector: 'pep-smart-filters', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"smart-filters-container\" dir=\"{{ layoutService.isRtl() ? 'rtl' : 'ltr' }}\">\n <div *ngIf=\"fields?.length > 0\" class=\"title\">\n <span class=\"body-md bold\">{{ title?.length > 0 ? title : (\"SMART_FILTERS.TITLE\" | translate)}}</span>\n <mat-chip *ngIf=\"filtersDataMap.size > 0\" [selectable]=\"false\" [removable]=\"true\" (click)=\"onFiltersClear()\"\n class=\"clear-filter pep-button chip xs weak\">\n <span class=\"body-xs ellipsis \">\n {{ \"ACTIONS.CLEAR\" | translate}}\n </span>\n </mat-chip>\n </div>\n\n <mat-accordion [displayMode]=\"'flat'\" [multi]=\"true\" class=\"pep-accordion2\">\n <mat-expansion-panel *ngFor=\"let field of fields; let i = index\" hideToggle=\"true\" [expanded]=\"field.isOpen\"\n (opened)=\"toggleField(i, true)\" (closed)=\"toggleField(i, false)\">\n <mat-expansion-panel-header [collapsedHeight]=\"expansionPanelHeaderHeight\"\n [expandedHeight]=\"expansionPanelHeaderHeight\">\n <mat-panel-title class=\"pep-spacing-element-negative\">\n <div class=\"smart-filter-title-container\">\n <mat-icon class=\"pep-spacing-element\">\n <pep-icon [name]=\"field.isOpen ? 'number_minus' : 'number_plus'\"></pep-icon>\n </mat-icon>\n <span class=\"body-sm ellipsis\" [title]=\"field.name\">\n {{ field.name }}\n </span>\n <mat-chip *ngIf=\"filtersDataMap.get(field.id)\" [selectable]=\"false\" [removable]=\"true\"\n (click)=\"onFilterClear(field)\" class=\"clear-filter pep-button chip xs weak\">\n <span *ngIf=\"field.componentType === 'multi-select'\" class=\"body-xs pep-spacing-element\">\n {{ filtersDataMap.get(field.id).value?.first?.length }}\n <!-- {{ field.componentType === 'multi-select' ?\n filtersDataMap.get(field.id).value?.first?.length : 1 }} -->\n </span>\n <mat-icon>\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n </mat-chip>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"expansion-content smart-filter-content\">\n <ng-container [ngSwitch]=\"field.componentType\">\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-number-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-text-filter>\n </ng-container>\n <!-- <div *ngSwitchDefault>\n </div> -->\n </ng-container>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n</div>", styles: [".smart-filters-container .title{height:calc(var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));display:flex;flex-flow:wrap;align-items:center;justify-content:space-between}.smart-filters-container .title .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;margin:0 var(--pep-spacing-xs, .25rem);padding:0 var(--pep-spacing-md, .75rem)}.smart-filters-container .title .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container{display:grid;grid-auto-flow:column;grid-template-columns:auto 1fr auto;width:100%}.smart-filters-container .smart-filter-title-container>*{align-self:center}.smart-filters-container .smart-filter-title-container .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;margin-inline-end:var(--pep-spacing-sm, .5rem)}.smart-filters-container .smart-filter-title-container .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container .mat-icon pep-icon{height:.75rem;width:.75rem}\n", ".smart-filters-container .clear-filter.weak{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.12)}.smart-filters-container .clear-filter.weak:hover{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.16)}.smart-filters-container .clear-filter.weak: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)}.smart-filters-container .clear-filter.weak: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%))}.smart-filters-container .clear-filter.weak:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right: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%))}.smart-filters-container .clear-filter.weak: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}.smart-filters-container .clear-filter.weak: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%))}.smart-filters-container .clear-filter.weak:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right: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%))}.smart-filters-container .clear-filter.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:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.04)!important}.smart-filters-container .clear-filter.weak:disabled:not(.ignore-disabled):after{border:unset}.smart-filters-container .clear-filter.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)}.smart-filters-container .clear-filter.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)}\n"] }]
128
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PepLayoutService }]; }, propDecorators: { title: [{
129
+ type: Input
130
+ }], filters: [{
131
+ type: Input
132
+ }], fields: [{
133
+ type: Input
134
+ }], useAsWebComponent: [{
135
+ type: Input
136
+ }], filtersChange: [{
137
+ type: Output
138
+ }], fieldToggleChange: [{
139
+ type: Output
140
+ }] } });
141
141
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMvc21hcnQtZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMvc21hcnQtZmlsdGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsTUFBTSxFQUNOLFlBQVksR0FFZixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBY3ZCLE1BQU0sT0FBTyx3QkFBd0I7SUEyRGpDLFlBQ1ksV0FBdUIsRUFDeEIsYUFBK0I7UUFEOUIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBM0RqQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRXBCLG1CQUFjLEdBQXFDLElBQUksR0FBRyxFQUd2RCxDQUFDO1FBRUksYUFBUSxHQUEwQixFQUFFLENBQUM7UUFrQnJDLFlBQU8sR0FBZ0MsRUFBRSxDQUFDO1FBUzFDLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQVduQyxZQUFZO1FBQ1osK0RBQStEO1FBRS9ELGtCQUFhLEdBQXdDLElBQUksWUFBWSxFQUVsRSxDQUFDO1FBR0osc0JBQWlCLEdBQXVDLElBQUksWUFBWSxFQUF3QixDQUFDO1FBRWpHLCtCQUEwQixHQUFHLEdBQUcsQ0FBQztJQUs3QixDQUFDO0lBcERMLElBQ0ksT0FBTyxDQUFDLEtBQTRCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksT0FBTztRQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0MsMERBQTBEO2FBQ3pELEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1QsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFHRCxJQUNJLE1BQU0sQ0FBQyxLQUFrQztRQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFHRCxJQUNJLGlCQUFpQixDQUFDLEtBQWM7UUFDaEMsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztTQUN2QztJQUNMLENBQUM7SUFDRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBbUJPLDRCQUE0QjtRQUNoQywyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNoRSxJQUFJLENBQ1AsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDOUQsSUFBSSxDQUNQLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzlELElBQUksQ0FDUCxDQUFDO0lBQ04sQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUE0QjtRQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLElBQUksS0FBSyxFQUFFO1lBQ1AsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNyQiwrQ0FBK0M7Z0JBQy9DLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztnQkFFeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDdkMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUMzQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsT0FBTyxDQUNkLENBQUM7aUJBQ2hDO2dCQUVELElBQUksWUFBWSxFQUFFO29CQUNkLDZDQUE2QztvQkFDN0MsSUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQ2xDLFlBQVksQ0FBQyxhQUFhLENBQzdCLEVBQ0g7d0JBQ0UsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7d0JBQy9CLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTs0QkFDckIsc0RBQXNEOzRCQUN0RCxJQUNJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUN2QyxZQUFZLENBQUMsYUFBYSxDQUM3QixFQUNIO2dDQUNFLG1CQUFtQixHQUFHLEtBQUssQ0FBQzs2QkFDL0I7eUJBQ0o7d0JBRUQsa0JBQWtCO3dCQUNsQixJQUFJLG1CQUFtQixFQUFFOzRCQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO3lCQUNuRDtxQkFDSjtpQkFDSjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxNQUFlO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFlO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxpRUFBaUU7SUFDakUsY0FBYztRQUNWLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsNERBQTREO0lBQzVELGFBQWEsQ0FBQyxLQUEyQjtRQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsMERBQTBEO0lBQzFELGNBQWMsQ0FDVixLQUEyQixFQUMzQixVQUErQjtRQUUvQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7O3FIQTVKUSx3QkFBd0I7eUdBQXhCLHdCQUF3Qix3UENyQnJDLGttSkF1RU07MkZEbERPLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTtnSUFJdEMsS0FBSztzQkFBYixLQUFLO2dCQVNGLE9BQU87c0JBRFYsS0FBSztnQkFtQkYsTUFBTTtzQkFEVCxLQUFLO2dCQVVGLGlCQUFpQjtzQkFEcEIsS0FBSztnQkFhTixhQUFhO3NCQURaLE1BQU07Z0JBTVAsaUJBQWlCO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgSVBlcFNtYXJ0RmlsdGVyRmllbGQsXG4gICAgUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQsXG59IGZyb20gJy4vY29tbW9uL21vZGVsL2ZpZWxkJztcbmltcG9ydCB7IFBlcExheW91dFNlcnZpY2UgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBJUGVwU21hcnRGaWx0ZXJEYXRhIH0gZnJvbSAnLi9jb21tb24vbW9kZWwvZmlsdGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtc21hcnQtZmlsdGVycycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NtYXJ0LWZpbHRlcnMuY29tcG9uZW50LnNjc3MnLCAnLi9zbWFydC1maWx0ZXJzLmNvbXBvbmVudC50aGVtZS5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBlcFNtYXJ0RmlsdGVyc0NvbXBvbmVudCB7XG5cbiAgICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuXG4gICAgZmlsdGVyc0RhdGFNYXA6IE1hcDxzdHJpbmcsIElQZXBTbWFydEZpbHRlckRhdGE+ID0gbmV3IE1hcDxcbiAgICAgICAgc3RyaW5nLFxuICAgICAgICBJUGVwU21hcnRGaWx0ZXJEYXRhXG4gICAgPigpO1xuXG4gICAgcHJpdmF0ZSBfZmlsdGVyczogSVBlcFNtYXJ0RmlsdGVyRGF0YVtdID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgZmlsdGVycyh2YWx1ZTogSVBlcFNtYXJ0RmlsdGVyRGF0YVtdKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlcnMgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXR1cEZpbHRlcnModmFsdWUpO1xuICAgIH1cbiAgICBnZXQgZmlsdGVycygpOiBJUGVwU21hcnRGaWx0ZXJEYXRhW10ge1xuICAgICAgICB0aGlzLl9maWx0ZXJzID0gWy4uLnRoaXMuZmlsdGVyc0RhdGFNYXAua2V5cygpXVxuICAgICAgICAgICAgLy8gLmZpbHRlcigoa2V5KSA9PiB0aGlzLmZpbHRlcnNEYXRhTWFwLmdldChrZXkpICE9PSBudWxsKVxuICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJzRGF0YU1hcC5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVycztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9maWVsZHM6IEFycmF5PElQZXBTbWFydEZpbHRlckZpZWxkPiA9IFtdO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpZWxkcyh2YWx1ZTogQXJyYXk8SVBlcFNtYXJ0RmlsdGVyRmllbGQ+KSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkcyA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgZmllbGRzKCk6IEFycmF5PElQZXBTbWFydEZpbHRlckZpZWxkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWVsZHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXNlQXNXZWJDb21wb25lbnQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCB1c2VBc1dlYkNvbXBvbmVudCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwb3J0RnVuY3Rpb25zT25Ib3N0RWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB1c2VBc1dlYkNvbXBvbmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZUFzV2ViQ29tcG9uZW50O1xuICAgIH1cblxuICAgIC8vIEBPdXRwdXQoKVxuICAgIC8vIGZpbHRlcnNDbGVhcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGZpbHRlcnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUGVwU21hcnRGaWx0ZXJEYXRhW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICAgICAgSVBlcFNtYXJ0RmlsdGVyRGF0YVtdXG4gICAgPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZmllbGRUb2dnbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUGVwU21hcnRGaWx0ZXJGaWVsZD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBTbWFydEZpbHRlckZpZWxkPigpO1xuXG4gICAgZXhwYW5zaW9uUGFuZWxIZWFkZXJIZWlnaHQgPSAnKic7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGxheW91dFNlcnZpY2U6IFBlcExheW91dFNlcnZpY2VcbiAgICApIHsgfVxuXG4gICAgcHJpdmF0ZSBleHBvcnRGdW5jdGlvbnNPbkhvc3RFbGVtZW50KCkge1xuICAgICAgICAvLyBUaGlzIGlzIGZvciB3ZWIgY29tcG9uZW50IHVzYWdlIGZvciB1c2UgdGhvc2UgZnVuY3Rpb25zLlxuICAgICAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xlYXJGaWx0ZXJzID0gdGhpcy5jbGVhckZpbHRlcnMuYmluZChcbiAgICAgICAgICAgIHRoaXNcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNsZWFyRmlsdGVyID0gdGhpcy5jbGVhckZpbHRlci5iaW5kKFxuICAgICAgICAgICAgdGhpc1xuICAgICAgICApO1xuICAgICAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudG9nZ2xlRmllbGQgPSB0aGlzLnRvZ2dsZUZpZWxkLmJpbmQoXG4gICAgICAgICAgICB0aGlzXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cEZpbHRlcnModmFsdWU6IElQZXBTbWFydEZpbHRlckRhdGFbXSkge1xuICAgICAgICB0aGlzLmZpbHRlcnNEYXRhTWFwLmNsZWFyKCk7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gVmFsaWRhdGUgYmVmb3JlIGFkZCB0aGUgZmlsdGVyIGludG8gdGhlIG1hcC5cbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudEZpZWxkID0gbnVsbDtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkcyAmJiB0aGlzLmZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaWVsZCA9IHRoaXMuZmllbGRzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAoZmllbGQpID0+IGZpZWxkLmlkID09PSBmaWx0ZXIuZmllbGRJZFxuICAgICAgICAgICAgICAgICAgICApIGFzIFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50RmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gT25seSBpZiB0aGUgb3BlcmF0b3IgaXMgZnJvbSB0aGUgc2FtZSB0eXBlXG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5vcGVyYXRvci5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaWVsZC5jb21wb25lbnRUeXBlXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlzT3BlcmF0b3JVbml0VmFsaWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlci5vcGVyYXRvclVuaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGlmIHRoZSBvcGVyYXRvciB1bml0IGlzIG5vdCBmcm9tIHRoZSBzYW1lIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFmaWx0ZXIub3BlcmF0b3JVbml0LmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmllbGQuY29tcG9uZW50VHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzT3BlcmF0b3JVbml0VmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgZmlsdGVyLlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzT3BlcmF0b3JVbml0VmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcnNEYXRhTWFwLnNldChmaWx0ZXIuZmllbGRJZCwgZmlsdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByYWlzZUZpbHRlcnNDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyc0NoYW5nZS5lbWl0KHRoaXMuZmlsdGVycyk7XG4gICAgfVxuXG4gICAgdG9nZ2xlRmllbGQoaW5kZXg6IG51bWJlciwgaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRzW2luZGV4XS5pc09wZW4gPSBpc09wZW47XG4gICAgICAgIHRoaXMuZmllbGRUb2dnbGVDaGFuZ2UuZW1pdCh0aGlzLmZpZWxkc1tpbmRleF0pO1xuICAgIH1cblxuICAgIGNsZWFyRmlsdGVycygpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzRGF0YU1hcC5jbGVhcigpO1xuICAgIH1cblxuICAgIGNsZWFyRmlsdGVyKGZpZWxkSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZpbHRlcnNEYXRhTWFwLmRlbGV0ZShmaWVsZElkKTtcbiAgICB9XG5cbiAgICAvLyBDbGVhciBhbGwgdGhlIGZpbHRlcnMgYW5kIHJhaXNlIGV2ZW50IHRoYXQgZmlsdGVycyBoYXMgY2hhbmdlLlxuICAgIG9uRmlsdGVyc0NsZWFyKCkge1xuICAgICAgICB0aGlzLmNsZWFyRmlsdGVycygpO1xuICAgICAgICB0aGlzLnJhaXNlRmlsdGVyc0NoYW5nZSgpO1xuICAgIH1cblxuICAgIC8vIENsZWFyIHRoZSBmaWx0ZXIgYW5kIHJhaXNlIGV2ZW50IHRoYXQgZmlsdGVycyBoYXMgY2hhbmdlLlxuICAgIG9uRmlsdGVyQ2xlYXIoZmllbGQ6IElQZXBTbWFydEZpbHRlckZpZWxkKSB7XG4gICAgICAgIHRoaXMuY2xlYXJGaWx0ZXIoZmllbGQuaWQpO1xuICAgICAgICB0aGlzLnJhaXNlRmlsdGVyc0NoYW5nZSgpO1xuICAgIH1cblxuICAgIC8vIFNldCB0aGUgZmlsdGVyIGFuZCByYWlzZSBldmVudCB0aGF0IGZpbHRlcnMgaGFzIGNoYW5nZS5cbiAgICBvbkZpbHRlckNoYW5nZShcbiAgICAgICAgZmllbGQ6IElQZXBTbWFydEZpbHRlckZpZWxkLFxuICAgICAgICBmaWx0ZXJEYXRhOiBJUGVwU21hcnRGaWx0ZXJEYXRhXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY2xlYXJGaWx0ZXIoZmllbGQuaWQpO1xuICAgICAgICB0aGlzLmZpbHRlcnNEYXRhTWFwLnNldChmaWVsZC5pZCwgZmlsdGVyRGF0YSk7XG4gICAgICAgIHRoaXMucmFpc2VGaWx0ZXJzQ2hhbmdlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNtYXJ0LWZpbHRlcnMtY29udGFpbmVyXCIgZGlyPVwie3sgbGF5b3V0U2VydmljZS5pc1J0bCgpID8gJ3J0bCcgOiAnbHRyJyB9fVwiPlxuICAgIDxkaXYgKm5nSWY9XCJmaWVsZHM/Lmxlbmd0aCA+IDBcIiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS1tZCBib2xkXCI+e3sgdGl0bGU/Lmxlbmd0aCA+IDAgPyB0aXRsZSA6IChcIlNNQVJUX0ZJTFRFUlMuVElUTEVcIiB8IHRyYW5zbGF0ZSl9fTwvc3Bhbj5cbiAgICAgICAgPG1hdC1jaGlwICpuZ0lmPVwiZmlsdGVyc0RhdGFNYXAuc2l6ZSA+IDBcIiBbc2VsZWN0YWJsZV09XCJmYWxzZVwiIFtyZW1vdmFibGVdPVwidHJ1ZVwiIChjbGljayk9XCJvbkZpbHRlcnNDbGVhcigpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2xlYXItZmlsdGVyIHBlcC1idXR0b24gY2hpcCB4cyB3ZWFrXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJvZHkteHMgZWxsaXBzaXMgXCI+XG4gICAgICAgICAgICAgICAge3sgXCJBQ1RJT05TLkNMRUFSXCIgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L21hdC1jaGlwPlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1hY2NvcmRpb24gW2Rpc3BsYXlNb2RlXT1cIidmbGF0J1wiIFttdWx0aV09XCJ0cnVlXCIgY2xhc3M9XCJwZXAtYWNjb3JkaW9uMlwiPlxuICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzOyBsZXQgaSA9IGluZGV4XCIgaGlkZVRvZ2dsZT1cInRydWVcIiBbZXhwYW5kZWRdPVwiZmllbGQuaXNPcGVuXCJcbiAgICAgICAgICAgIChvcGVuZWQpPVwidG9nZ2xlRmllbGQoaSwgdHJ1ZSlcIiAoY2xvc2VkKT1cInRvZ2dsZUZpZWxkKGksIGZhbHNlKVwiPlxuICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIFtjb2xsYXBzZWRIZWlnaHRdPVwiZXhwYW5zaW9uUGFuZWxIZWFkZXJIZWlnaHRcIlxuICAgICAgICAgICAgICAgIFtleHBhbmRlZEhlaWdodF09XCJleHBhbnNpb25QYW5lbEhlYWRlckhlaWdodFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtdGl0bGUgY2xhc3M9XCJwZXAtc3BhY2luZy1lbGVtZW50LW5lZ2F0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFydC1maWx0ZXItdGl0bGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJwZXAtc3BhY2luZy1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBlcC1pY29uIFtuYW1lXT1cImZpZWxkLmlzT3BlbiA/ICdudW1iZXJfbWludXMnIDogJ251bWJlcl9wbHVzJ1wiPjwvcGVwLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2R5LXNtIGVsbGlwc2lzXCIgW3RpdGxlXT1cImZpZWxkLm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBmaWVsZC5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoaXAgKm5nSWY9XCJmaWx0ZXJzRGF0YU1hcC5nZXQoZmllbGQuaWQpXCIgW3NlbGVjdGFibGVdPVwiZmFsc2VcIiBbcmVtb3ZhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkZpbHRlckNsZWFyKGZpZWxkKVwiIGNsYXNzPVwiY2xlYXItZmlsdGVyIHBlcC1idXR0b24gY2hpcCB4cyB3ZWFrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmaWVsZC5jb21wb25lbnRUeXBlID09PSAnbXVsdGktc2VsZWN0J1wiIGNsYXNzPVwiYm9keS14cyBwZXAtc3BhY2luZy1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZpbHRlcnNEYXRhTWFwLmdldChmaWVsZC5pZCkudmFsdWU/LmZpcnN0Py5sZW5ndGggfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB7eyBmaWVsZC5jb21wb25lbnRUeXBlID09PSAnbXVsdGktc2VsZWN0JyA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnNEYXRhTWFwLmdldChmaWVsZC5pZCkudmFsdWU/LmZpcnN0Py5sZW5ndGggOiAxIH19IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwZXAtaWNvbiBuYW1lPVwic3lzdGVtX2Nsb3NlXCI+PC9wZXAtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hpcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuc2lvbi1jb250ZW50IHNtYXJ0LWZpbHRlci1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmllbGQuY29tcG9uZW50VHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwZXAtYm9vbGVhbi1maWx0ZXIgW2ZpZWxkXT1cImZpZWxkXCIgW2ZpbHRlcl09XCJmaWx0ZXJzRGF0YU1hcC5nZXQoZmllbGQuaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyQ2hhbmdlKT1cIm9uRmlsdGVyQ2hhbmdlKGZpZWxkLCAkZXZlbnQpXCIgKGZpbHRlckNsZWFyKT1cIm9uRmlsdGVyQ2xlYXIoZmllbGQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3BlcC1ib29sZWFuLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBlcC1kYXRlLWZpbHRlciBbZmllbGRdPVwiZmllbGRcIiBbZmlsdGVyXT1cImZpbHRlcnNEYXRhTWFwLmdldChmaWVsZC5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXJDaGFuZ2UpPVwib25GaWx0ZXJDaGFuZ2UoZmllbGQsICRldmVudClcIiAoZmlsdGVyQ2xlYXIpPVwib25GaWx0ZXJDbGVhcihmaWVsZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcGVwLWRhdGUtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ211bHRpLXNlbGVjdCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwZXAtbXVsdGktc2VsZWN0LWZpbHRlciBbZmllbGRdPVwiZmllbGRcIiBbZmlsdGVyXT1cImZpbHRlcnNEYXRhTWFwLmdldChmaWVsZC5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXJDaGFuZ2UpPVwib25GaWx0ZXJDaGFuZ2UoZmllbGQsICRldmVudClcIiAoZmlsdGVyQ2xlYXIpPVwib25GaWx0ZXJDbGVhcihmaWVsZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcGVwLW11bHRpLXNlbGVjdC1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBlcC1udW1iZXItZmlsdGVyIFtmaWVsZF09XCJmaWVsZFwiIFtmaWx0ZXJdPVwiZmlsdGVyc0RhdGFNYXAuZ2V0KGZpZWxkLmlkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbHRlckNoYW5nZSk9XCJvbkZpbHRlckNoYW5nZShmaWVsZCwgJGV2ZW50KVwiIChmaWx0ZXJDbGVhcik9XCJvbkZpbHRlckNsZWFyKGZpZWxkKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wZXAtbnVtYmVyLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBlcC10ZXh0LWZpbHRlciBbZmllbGRdPVwiZmllbGRcIiBbZmlsdGVyXT1cImZpbHRlcnNEYXRhTWFwLmdldChmaWVsZC5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXJDaGFuZ2UpPVwib25GaWx0ZXJDaGFuZ2UoZmllbGQsICRldmVudClcIiAoZmlsdGVyQ2xlYXIpPVwib25GaWx0ZXJDbGVhcihmaWVsZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcGVwLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG4gICAgPC9tYXQtYWNjb3JkaW9uPlxuPC9kaXY+Il19